版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
大連東軟信息學院高職畢業(yè)設計(論文)論文題目論文題目:基于ZigBee的無線通信收發(fā)GUI設計與實現(xiàn)系所:電子工程系專業(yè):嵌入式系統(tǒng)工程學生姓名:學生學號:指導教師:導師職稱:講師完成日期:2014年4月25日大連東軟信息學院DalianNeusoftUniversityofInformation大連東軟信息學院畢業(yè)設計(論文)摘要V基于ZigBee的無線通信收發(fā)GUI設計與實現(xiàn)摘要隨著我國科學技術的發(fā)展,對低功耗,遠距離通信的需求進一步增加,藍牙技術已不能滿足無線通信的需求,在這種背景下ZigBee技術應運而生,ZigBee技術應用廣泛,快速,穩(wěn)定。ZigBee無線通訊標準是一種低數據速率的短距離無線網絡通信協(xié)議?;赯igBee的無線設備工作在868MHz,915MHz和2.4GHz頻段。最大數據傳輸速率為每秒250Kb。ZigBee的主要工作對象為電池供電的系統(tǒng),ZigBee的設備在運營數年之后才需要更換電池。本文主要研究ZigBee無線通信技術在信息傳輸中的應用,使用多個ZigBee無線通訊設備,將設備通過電腦上面的USB接口與電腦進行連接,電腦分別間隔一定的距離,通過在電腦上運行的圖形用戶界面,在一臺電腦上面輸入信息并發(fā)送出去,在連接有ZigBee無線通信設備的電腦上面都能接收到信息。主要采用了CC2530芯片控制,AMS1117穩(wěn)壓芯片,PL2303USB控制芯片等。通過java語言在windows平臺下用集成開發(fā)環(huán)境Eclipse中編寫整個軟件界面,由于java語言的跨平臺性,在linux中編譯之后的源代碼也可以在linux中運行軟件界面。ZigBee無線通訊接收應用廣泛,例如可以在智能家居中使用ZigBee無線通信技術,可以通過一個顯示面板看到家中的情況,顯示室內溫度等,在家居防盜中也有廣泛應用。本論文將分為項目概述,項目實施方案,項目實施過程,項目成果及結論等幾個部分,論述ZigBee在現(xiàn)實生活中是如何使用的及其應用范圍。ZigBee應用主要是在近距離的范圍當中,因此,熟悉ZigBee應用可以為以后設計出更加方便實用的產品積累經驗,例如智能家居控制之類,通過程序界面設計,可以很方便的對各種家居產品進行控制和操作??梢酝ㄟ^ZigBee無線通信技術對家中的情況了如指掌,讓您在外旅行不必為家里的安全擔憂。關鍵詞:ZigBee,無線通信,無線網絡通信協(xié)議大連東軟信息學院畢業(yè)設計(論文)AbstractGUIDesignandImplementationofZigBeeWirelessCommunicationTransceiverAbstractAswiththedevelopmentofChina'sscienceandtechnology,furtherincreasingdemandforlong-distancecommunication,Lowpowerconsumption,BeforeBluetoothtechnologycannotmeetthedemandforwirelesscommunication,InthiscontextZigBeetechnologyemerges,ZigBeetechnologyiswidelyused,andfast,stable.ZigBeeisawirelesscommunicationstandardforlowdatarateshort-rangewirelessnetworkcommunicationprotocols.ZigBee-basedwirelessdevicesoperatein868MHz,915MHzand2.4GHzbands,Themaximumdatatransferrateof250Kbpersecond,themaintargetforthebattery-poweredZigBeesystem,ZigBeedevicesafteroperatingforseveralyearsbeforethebatteryneedstobereplaced.Inthispaper,themainresearchZigBeewirelesscommunicationtechnologyininformationtransmission,usingmultipleZigBeewirelesscommunicationdevices,ThedevicesconnectviacomputerattheUSBinterfacewithacomputer,computersarespacedadistance,byrunningonacomputergraphicaluserinterface,entertheinformationinacomputerandsenttheabove,InZigBeewirelesscommunicationdeviceconnectedtothecomputercanreceiveinformationatthe,ThemainusesCC2530chipcontrol,AMS1117regulatorchip,PL2303USBcontrolchips,Eclipseintegrateddevelopmentenvironmentwrittenbytheentiresoftwareinterfacejavalanguageusedinthewindowsplatform,Asthecross-platformjavalanguage,aftercompilinglinuxsourcecodecanalsorunthesoftwareinterfaceinlinux.ZigBeewirelesscommunicationendswidely,forexampleyoucanuseZigBeewirelesscommunicationtechnologyinthesmarthome,Youcanseethehomethroughapaneldisplaycase,showroomtemperature,inthehomesecurityalsohasawiderangeofapplications,inthispaper,anoverviewoftheprojectwillbedividedinto,projectimplementationplan,implementationoftheproject,severalpartsoftheprojectresultsandconclusions,ZigBeediscussesitsapplicationinreallifeishowtouse.ZigBeeapplicationswhicharemainlyincloserange,Therefore,afterthefamiliardesignofZigBeeapplicationscanbemoreconvenientandpracticalexperienceaccumulatedfortheproduct,suchasintelligenthomecontrolandthelike,throughtheprograminterfacedesign,caneasilybecontrolledforavarietyofhouseholdproductsandoperations,allowingyoutotraveloutsidethehomedonothavetoworryaboutsecurity.Keywords:ZigBee,Wirelesscommunication,Wirelessnetworkcommunicationprotocol大連東軟信息學院畢業(yè)設計(論文)目錄目錄TOC\o"1-3"\u摘要 IAbstract………….III第1章項目概述……………………11.1項目背景 11.1.1幾種無線通信技術比較 …………..11.1.2無線通信技術選用……….…..……11.2項目簡介 21.3應用范圍 2第2章項目實施方案 32.1概述 32.1.1ZigBee無線協(xié)議概述 32.1.2面向對象程序設計語言Java概述 42.2開發(fā)環(huán)境 52.2.1硬件開發(fā)環(huán)境…………...…………52.2.2軟件開發(fā)環(huán)境……...………………52.3硬件設計 62.3.1硬件系統(tǒng)框圖 62.3.2ZigBee無線設備主要芯片介紹 62.4軟件設計 82.4.1軟件系統(tǒng)框圖 82.4.2軟件主界面設計 9第3章項目實施過程 113.1硬件實現(xiàn)過程 113.1.1焊接準備工作及注意事項 113.1.2硬件焊接 113.2軟件實現(xiàn)過程 123.2.1軟件開發(fā)環(huán)境配置 123.2.2編寫代碼及模塊功能介紹 123.2.3SerialCommunication.java功能設計 133.2.4SerialParameters.java功能設計 143.2.5SerialConnection.java功能設計 143.2.6其他功能模塊設計 143.3調試過程 153.3.1硬件調試過程 153.3.2軟件調試過程 15第4章項目成果 164.1硬件成果物 164.2軟件成果物 16第5章結論 18參考文獻 18致謝 19大連東軟信息學院畢業(yè)設計(論文)20-第1章項目概述本論文是基于ZigBee的無線收發(fā)GUI的設計與實現(xiàn),項目能夠實現(xiàn)信息的發(fā)送與接收,可以對串口進行選擇,對串口的關閉與開啟,可以對信息顯示窗口進行清空,項目分為硬件部分和軟件部分,硬件使用ZigBee無線通信模塊,需要將ZigBee與電腦進行連接,在電腦上對程序界面上的操作。軟件使用java程序編程語言編寫,java是一種純面向對象的編程語言,并且具有安全性高,程序易讀等多種優(yōu)點,Java編程語言是一種應用十分廣泛的程序編程語言。1.1項目背景近年來發(fā)展最快的科學技術莫過于無線通信技術,在當今無線通信已近滲透到我們生活的各個部分,特別是近來移動通信的發(fā)展。毋庸置疑,無線通信已近改變了我們的生活,使我們的生活發(fā)生了翻天覆地的變化。如今每天大約有15萬人成為新的無線用戶,全球范圍內的無線用戶數量目前已經超過2億。這些人包括社會的各個層面的人,他們使用無線技術的方式和他們自身的工作一樣都在不斷地更新。1.1.1幾種無線通信技術比較藍牙技術是使用2.4GHz的ISM公用頻道的一種短距離、低成本的無線接入技術,主要應用于近距離的語言和數據的傳輸業(yè)務,藍牙設備的工作頻段選用全世界范圍內都可自由使用的2.4GHzISM頻段,用戶無需申請即可使用。Wi-Fi(WirelessFidelity),Wi-Fi使用IEEE802.11a或802.11b無線電技術提供安全、可靠、快速的無線連接通信。Wi-Fi網絡可以使用來互聯(lián)電腦鏈接電腦上互聯(lián)網,也可以使用無線移動終端連接來上互聯(lián)網,Wi-Fi網絡在無執(zhí)照的2.4和5千兆Hz的無線電頻帶經營,數據數率可達11Mbps(802.11b)~54Mbps(802.11a)或包含兩條頻帶的產品(雙重頻帶),Wi-Fi覆蓋范圍廣,可達100m,但其電波易受干擾,速度較快。ZigBee(IEEE802.15.4)是一種新興的短距離、低功耗、低速率無線接入技術,工作在2.4GHzISM頻段,速率為10M~250Kb/s,傳輸距離為10-75m,技術和藍牙接近,但大多數處于睡眠模式下,適合于不需要實時傳輸或連續(xù)更新的場合。1.1.2無線通信技術選用經過項目初期對幾種無線通信技術的比較與研究發(fā)現(xiàn),ZigBee這種近距離低功耗低速率的無線接入技術最適合本項目的需要,特別是其在大多數情況下處于的睡眠模式,節(jié)約了不少能源。本項目決定采用ZigBee無線通信技術。1.2項目簡介隨著移動通信技術的發(fā)展,人們對無線通信技術的需求也進一步加大,在目前常用的無線通信技術中,ZigBee無疑會在那些不需要實時控制、低功耗、低速率的場合得到廣泛的使用。ZigBee無線通信可以實現(xiàn)一種類似“蜂窩“式的通信方式,因此本項目需要2個或以上的ZigBee無線通信設備,由于通信界面實在windows電腦上面運行的,因此需要將ZigBee無線通信設備用USB連接線與電腦進行連接,在任何一臺電腦的GUI界面發(fā)送消息,其他連接有ZigBee無線設備的電腦GUI界面上面也會受到所發(fā)送的信息。本項目硬件使用ZigBee無線通信設備,筆記本電腦,軟件使用面向對象編程語言Java編寫,運行在windows7系統(tǒng)環(huán)境下。ZigBee的網絡拓補結構包含有主從設備的星型,樹型,網狀型三種網絡結構,其網絡結構按照OSI模型可以分為4層,從上向下分別為物理層(PHY)、媒體訪問控制層(MAC)、網絡層(NWK)和應用層(APL),本項目主要是使用第四層應用層來完成數據的接收和發(fā)送。1.3應用范圍隨著ZigBee無線通信技術的進一步發(fā)展,采用ZigBee技術的無線網絡應用領域越來越多,它可以應用在家里的照明,溫度監(jiān)控,安全控制等多個領域。ZigBee模塊可安裝在電視、燈泡、遙控器、兒童玩具、游戲機的器具中,例如在燈泡中安裝ZigBee模塊,我們就不需要再走到墻壁開關處,直接可以通過遙控便可開燈。還可以在散熱器與溫度控制設備中安裝ZigBee無線模塊,可以顯示設備的當前溫度,安裝一些其他設備還可以對溫度進行自由的調控。在工業(yè)控制領域中使用ZigBee模塊,利用傳感器和ZigBee網絡,使得數據可以自動采集、分析處理,讓操作變得更加容易。ZigBee還可以應用在智能家居控制系統(tǒng)中,使用ZigBee模塊網絡和互聯(lián)通通信,可以對家中的情況了如指掌。例如,在家中安裝濕度,溫度傳感器,然后配合ZigBee無線設備,顯示器等,可以將傳感器所檢測到的溫度、濕度等信息經過ZigBee無線設備傳出到顯示器上顯示出來,對超過一定值得數據予以報警提示,如何將ZigBee無線設備與互聯(lián)網連接,還可以知道如何調控濕度,溫度等信息,讓室內的溫度和濕度保持在正常范圍內,從而保證人體的健康狀況。ZigBee可以實現(xiàn)一端發(fā)送,多端同步顯示,這樣的好處是無論你在家中的什么地方,只要你所處的位置安裝有ZigBee無線設備,你都能知道家庭內外任何一個你所想要知道的地方的情況,及時向你反饋情況,讓你對突如其來的情況及時做出反應,從而避免了不必要的損失。第2章項目實施方案2.1概述本項目是基于ZigBee無線通信技術的GUI設計與實現(xiàn),ZigBee無線通信技術是最近才發(fā)展起來的一項新的無線通信技術,其特點是功耗低,成本低,延遲短,網絡能容量比較大,通信安全可靠;ZigBee的傳輸速率低,其發(fā)射功率僅為1mW,而且在不工作時迅速進入休眠模式,極大的減少了能源功耗,機器省電,而且還能迅速從休眠狀態(tài)切換到全速工作狀態(tài),時間僅為15ms。而且還是設置定時喚醒,保證了ZigBee能持續(xù)工作。它一般能持續(xù)工作達6個月到2年時間不等。ZigBee的成本很低,其中最重要的一個原因是ZigBee協(xié)議是免除專利費用的。ZigBee能迅速從休眠模式切換到全速工作狀態(tài)的另一個優(yōu)點就是延遲時間非常短,并且它搜索設備所用的時間僅為30ms,所以說ZigBee無線設備可以應用于那些對于延遲要求非常高的無線控制場合中,例如工業(yè)控制場合。ZigBee網絡容量非常大,一個網絡拓撲結構為星型結構的ZigBee無線網絡最多可以容納254個從設備和一個主設備,而且其網絡組成非常靈活。ZigBee的可靠性是其采取了碰撞避免策略,同時為需要固定帶寬的通信業(yè)務預留了專用時隙,避免了發(fā)送數據的競爭和沖突。MAC層采用了完全確認的數據傳輸模式,每個發(fā)送的數據包都必須經過對方確認之后才往外轉發(fā),如果遇到傳輸過程中出現(xiàn)問題可以進行重發(fā)。ZigBee的安全性是其提供了基于冗余校驗(CRC)的數據包完整性檢測功能,支持鑒權和認證,采用了AES-128加密算法,各個應用可以靈活確定其安全屬性。2.1.1ZigBee無線協(xié)議概述ZigBee標準是由ZigBee聯(lián)盟制定,其中有數百個會員公司,從半導體產業(yè)和軟件開發(fā)人員的原始設備制造商(OEM,OriginalEquipmentManufacturer)和安裝。ZigBee聯(lián)盟成立于2002年,作為一個非盈利性組織開放給每一個都想參加的人。ZigBee標準采用IEEE802.15.4作為其物理層(PHY,PhysicalLayer)和介質訪問控制(MAC,MediumAccessControl)協(xié)議。因此,一個ZigBee兼容設備符合IEEE802.15.4標準的為好。IEEE802.15.4是自主研發(fā)的ZigBee標準,它可以建立基于IEEE802.15.4的短程無線網絡并且不執(zhí)行ZigBee特定的層.在這種情況下,用戶是在IEEE802.15.4PHY和MAC頂層協(xié)議上開發(fā)自己的網絡和應用。這些自定義的網絡/應用層通常比ZigBee協(xié)議層簡單,并有針對性的具體應用。定制專有的網絡/應用層的優(yōu)點是實現(xiàn)整個協(xié)議僅需要占用很小的內存,這能降低成本。然而,實現(xiàn)完整的Zigbee協(xié)議需要保證與其他廠商的無線解決方案互通并且網狀網絡功能額外的可靠性由ZigBee支持。是否實現(xiàn)整個ZigBee協(xié)議或者只使用IEEE802.15.4PHY和MAC層則取決于應用程序和長期計劃的產品。該網絡的物理層次的特征是由PHY層規(guī)范確定;因此,一些參數像操作的頻率,數據速率,接收器靈敏度需要一定的要求,和在IEEE802.15.4標準中指定的設備類型。2.1.2面向對象程序設計語言Java概述面向對象的程序設計語言Java,由SUN公司在1995年5月推出的,Java語言有多種版本,分別是JavaSE,JavaEE,JavaME,他們分別應用于不同的場景中,JavaSE是Java的標準版,主要應用于桌面應用軟件開發(fā);JavaEE是Java企業(yè)版,主要是開發(fā)Java企業(yè)級應用;JavaME是Java的微型版,主要應用在嵌入式設備軟件開發(fā)中,例如現(xiàn)在非常流行的安卓應用程序開發(fā),在機頂盒,移動電話,PDA中也有廣泛的有應用。Java語言有許多優(yōu)點,例如,Java語言非常簡單,Java語言的語法和C/C++語言的語法非常相似,這使得C/C++程序員如果想要編寫Java程序代碼非常容易,不需要投入太多的時間和精力就能實現(xiàn)他們的需求;另外Java語言還是一種純面向對象的語言,在日益復雜,日益網絡化的環(huán)境中,編程必須采用面向對象的概念;Java語言還具有健壯性,Java語言設計的目標就是編寫出高可靠行的軟件,Java語言提供的編譯時檢測盒運行時檢測,這些特性會引導軟件開發(fā)者想成良好的編程習慣,從而編寫出高質量的代碼;Java語言還有良好的安全性,因為Java語言和Java虛擬機本身都具有非常道的安全特性,使得Java語言編寫出外部無法入侵的系統(tǒng),在網絡環(huán)境下,使用Java語言開發(fā)的應用系統(tǒng)可以阻止未經授權的代碼進入系統(tǒng)當中。Java語言不依賴體系結構,Java語言具有很好的跨平臺性,同一個經過編譯的Java應用程序可以運行在不同的硬件環(huán)境和不同的操作系統(tǒng)中。Java語言還有一個非常值得稱贊的地方就是其可移植性,Java語言的可移植性一方面體現(xiàn)在它的不依賴體系結構中,另一方面規(guī)定了它的數據類型的字節(jié)長度,不管運行在32位系統(tǒng)還是64位系統(tǒng)中,它的字節(jié)長度永遠不會改變,這就解決了在不同平臺上不兼容的問題。Java語言是一種解釋性語言,在編譯時產生的不是可執(zhí)行程序,是一種字節(jié)碼,字節(jié)碼由虛擬機解釋執(zhí)行,因此解釋字節(jié)碼是創(chuàng)建具有跨平臺性的可移植程序的一種有效方法。Java語言具有高性能的特點,Java語言能夠自動的回收垃圾,這使得內存資源得到了很大的節(jié)約,在現(xiàn)在的網絡引用程序中,同意時間可能需要做多件事情,這就需要利用Java的多線程機制了,Java語言的多線程機制能夠同時執(zhí)行多個任務,這一特性極大的提高了系統(tǒng)資源的利用率。Java的動態(tài)性是其采用動態(tài)鏈接方式,只有被需要的類被使用后才被連接,即需要時才將其加載到正在運行的程序中。2.2開發(fā)環(huán)境2.2.1硬件開發(fā)環(huán)境基于ZigBee無線GUI設計與實現(xiàn)項目采用硬件環(huán)境是使用基于CC2530的單片機,及其他外部設備,如電源,USB接口等,在IEEE802.15.4無線協(xié)議,2.5GHz工作頻率。還需要USB線,筆記本電腦等。2.2.2軟件開發(fā)環(huán)境本軟件是在windows7操作系統(tǒng)下,用Eclipse集成開發(fā)環(huán)境開發(fā)的,需要安裝java虛擬機,配置好JDK的路徑,待以上步驟做好之后,打開Eclipse,在Eclipse左上角有個File->New->JavaProject,在Projectname:文本框中輸入工程名字,并在下方選擇Finish,這時候就建議好一個Java工程,然后在新建的這個工程中選中src,緊接著進行下列操作新建一個類File->New->Class,在出現(xiàn)的標題為NewJavaClass對話框中會有一個標簽衛(wèi)Name:的文本框,在文本框中輸入類名然后點擊對話框下方的Finish,這個時候還需要進一步的環(huán)境配置才能進行本次的畢業(yè)設計項目。將提前下載好的javaComm20-win32.zip包解壓,解壓之后會得到3個文件,一個是win32com.dll,一個是perties,還有一個是comm.jar文件,需要將win32com.dll復制到C:\ProgramFiles\Java\jdk1.7.0_03\bin目錄(具體粘貼目錄根據自己的JDK的安裝目錄)下,將perties復制到C:\ProgramFiles\Java\jre7\lib目錄(具體粘貼目錄根據自己的JDK的安裝目錄)下,將comm.jar包復制到C:\ProgramFiles\Java\jre7\lib\ext目錄(具體粘貼目錄根據自己的JDK的安裝目錄)下。這個時候就可以進行畢業(yè)設計項目軟件開發(fā)了。還有一種方法是使用rxtx-2.1-7-bins-r2.zip包進行環(huán)境配置,具體方法是先下載rxtx-2.1-7-bins-r2.zip這個壓縮包,然后將其解壓出來,會得到Windows,Solaris,Mac_OS_X,Linux,RXTXcomm.jar包,INSTALL文件,根據我所選擇的操作系統(tǒng),選擇Windows文件下i386-mingw32文件下的rxtxSerial.dll文件和rxtxParallel.dll文件,首先在之前新建的Java工程中,新建一個lib文件夾,然后將RXTXcomm.jar文件拷貝到上一步所建立的lib目錄中,再將rxtxSerial.dll文件和rxtxParallel.dll文件拷貝到lib文件中,然后在工程文件上面右鍵鼠標,選擇Properties->JavaBuilderPath->Libraries->AddJARs->選擇之前建立的lib目錄下的RXTXcomm.jar->OK,最后,點擊RXTXcomm.jar前面的小加號->Nativelibrarylocation->點擊右邊一列按鈕中的Edit...->選擇lib目錄->OK。做好上面這些步驟之后就可以開始編寫代碼了。2.3硬件設計2.3.1硬件系統(tǒng)框圖ZigBee無線設備硬件是由CC2530控制芯片,PL2303驅動,AMS1117芯片,電源等主要模塊組成。硬件系統(tǒng)框圖如下圖2.1所示:圖2.1硬件系統(tǒng)框圖2.3.2ZigBee無線設備主要芯片介紹1、CC2530芯片CC2530芯片是真正用于IEEE802.15.4芯片級系統(tǒng)的解決方案,ZigBee和RF4CE應用,它能建設強大的網絡節(jié)點并能讓成本非常低廉。CC2530結合了領先的射頻收發(fā)器和業(yè)界標準的8051微控制器,具有非常出色的表現(xiàn)。在系統(tǒng)可編程方面,具有8kb的隨機存取存儲器,還有其他很多強大的功能。CC2530有不用的閃存版本,分別是32kb,64kb,128kb,256kb。CC2530還有各種操作模式,使它能適合在極低功耗場合上的使用,工作模式間的切換時間段進一步確保能量損耗低。結合業(yè)界領先的黃金單元狀態(tài)ZigBee協(xié)議棧來自于德州儀器公司,CC2530F256提供了一個強大和完整的ZigBee解決方案。CC2530原理圖如下圖2.2所示:圖2.2CC2530原理圖2、PL2303芯片PL2303芯片中包含有USB控制器、收發(fā)器、振蕩器和調制解調器控制信號的UART,如果架上電容之后就能實現(xiàn)USB信號和RS232信號間的相互轉換,它能夠很方便的使用到各種設備中,它作為USB和RS232信號的雙向轉換器,它一方面向主機接收USB數據,并將該信號轉換成RS232信息流發(fā)送給外部設備,還有一方面是接收RS232信號轉換成USB數據格式傳送給主機。PL2303能夠在目前流行的很多操作系統(tǒng)上面運行,能夠實現(xiàn)傳統(tǒng)COM端口的模擬,能夠實現(xiàn)USB端口和COM端口的轉換應用,傳輸速度達到6Mb/s,在工作模式和睡眠模式中的能量消耗都極低,廣泛應用于嵌入式設備中。PL2303原理圖如下圖2.3所示:圖2.3PL2303原理圖3、AMS1117芯片AMS1117是一個正向低壓穩(wěn)壓器,在1A電流下壓降是1.2V,它具有高效率線性穩(wěn)壓器,它具有固定輸出版本和可調版本兩種。AMS1117內部集成過熱保護盒限流電路,是電池供電和便攜式計算機的不二之選。例如AMS1117-5.0,其參數包括,最大輸出電壓18V,最大輸出電流1A,額定輸入電壓5V,功耗5W,最小輸出電壓6.2V,最大輸出電流時,AMS1117器件的壓差保證最大不超過1.3V,并隨負載電流的減小而逐漸降低。AMS1117的片上微調把基準電壓調整到1.5%的誤差以內,而且電流限制也得到了調整,以盡量減少因穩(wěn)壓器和電源電路超載而造成的壓力。AMS1117器件引腳上兼容其他三端SCSI穩(wěn)壓器,提供適用貼片安裝的SOT-223,8引腳SOIC,和TO-252(DPAK)塑料封裝其工作溫度范圍-40~120攝氏度。AMS1117原理圖如下圖2.4所示:圖2.4AMS1117原理圖2.4軟件設計2.4.1軟件系統(tǒng)框圖本項目軟件設計全部由面向對象程序設計語言Java實現(xiàn),軟件運行之后會自動識別開啟的COM端口,自行選擇COM端口,然后對軟件進行參數設置,等待設置好參數之后就可以在編輯框輸入信息,然后對信息進行發(fā)送,當接收到信息之后會將信息顯示在信息顯示區(qū)域,在發(fā)送數據的過程中可以對發(fā)送進行中斷操作。軟件系統(tǒng)框圖如下圖2.5所示:圖2.5軟件系統(tǒng)框圖2.4.2軟件主界面設計 publicSerialCommunication(){ this.setTitle("SerialCommunicationForZigBee");//設置標題欄 this.setLayout(newBorderLayout()); parameters=newSerialParameters(); addWindowListener(newCloseHandler(this)); messagePanel=newJPanel(); messagePanel.setLayout(newGridLayout(2,1)); messageAreaIn=newJTextArea(); messageAreaIn.setEditable(false); JScrollPanescrollPane=newJScrollPane();scrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAY);//總是顯示垂直滾動條scrollPane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_ASNEEDED);//需要的時候顯示水平滾動條 scrollPane.setViewportView(messageAreaIn); messagePanel.add(scrollPane); messageAreaOut=newJTextArea(); messagePanel.add(messageAreaOut); add(messagePanel,BorderLayout.CENTER); configurationPanel=newConfigurationPanel(this); add(configurationPanel,BorderLayout.EAST); buttonPanel=newJPanel(); openButton=newJButton("OpenPort"); openButton.setPreferredSize(newDimension(100,27)); //設置JButton大小openButton.setFont(newjava.awt.Font("TimesNewRoman",3,14)); //設置JButton中字體風格及大小 openButton.setBackground(Color.lightGray); //設置JButton顏色 openButton.setFocusPainted(false);//去除JButton中顯示的文字邊框 openButton.addActionListener(this); buttonPanel.add(openButton); sendButton=newJButton("SendData"); sendButton.setPreferredSize(newDimension(100,27)); sendButton.setFont(newjava.awt.Font("TimesNewRoman",3,14)); sendButton.setBackground(Color.lightGray); sendButton.setFocusPainted(false); sendButton.setEnabled(false); sendButton.addActionListener(this); buttonPanel.add(sendButton); closeButton=newJButton("ClosePort"); closeButton.setPreferredSize(newDimension(100,27)); closeButton.setFont(newjava.awt.Font("TimesNewRoman",3,14)); closeButton.setBackground(Color.lightGray); closeButton.setFocusPainted(false); closeButton.setEnabled(false); closeButton.addActionListener(this); buttonPanel.add(closeButton); breakButton=newJButton("BreakSend"); breakButton.setPreferredSize(newDimension(100,27)); breakButton.setFont(newjava.awt.Font("TimesNewRoman",3,13)); breakButton.setBackground(Color.lightGray); breakButton.setFocusPainted(false); breakButton.setEnabled(false); breakButton.addActionListener(this); buttonPanel.add(breakButton ); clearButton=newJButton("Clear"); clearButton.setPreferredSize(newDimension(100,27)); clearButton.setFont(newjava.awt.Font("TimesNewRoman",3,14)); clearButton.setBackground(Color.lightGray); clearButton.setFocusPainted(false); clearButton.setEnabled(false); clearButton.addActionListener(this); buttonPanel.add(clearButton ); add(buttonPanel,BorderLayout.SOUTH); connection=newSerialConnection(this,parameters,messageAreaOut,messageAreaIn); setConfigurationPanel();DimensionscreenSize=Toolkit.getDefaultToolkit().getScreenSize();//獲得屏幕大小 setLocation(screenSize.width/2-WIDTH/2,screenSize.height/2-HEIGHT/2);//設置軟件初始顯示位置 setSize(WIDTH,HEIGHT); //設置軟件界面大小 }第3章項目實施過程3.1硬件實現(xiàn)過程本項目硬件主要有ZigBee無線通信模塊,PL2303驅動芯片,AMX1117穩(wěn)壓芯片等部件組成,硬件原理圖采用Altiumdesigner設計原理圖和PCB版圖,在原理圖繪制完成之后,寄給PCB廠家制版,然后我們拿到板子之后,按照原理圖導出的物件清單買好元器件。待元器件,PCB板都準備好之后,再加上電烙鐵,焊錫等焊接工具準備好之后,就可以進行焊接了。3.1.1焊接準備工作及注意事項1、焊接元器件時應該注意順序,即按照先小后大的順序,例如,可以先焊接貼片電阻,貼片電容之類的小元器件,然后再焊接直插式的電阻和電容,最后在焊接稍大點的器件,一定得遵循先小后大的原則。2、在焊接帶有極性的元器件的時候,一定不要將極性弄混淆,否者會導致在焊接完成之后電路板無法正常工作或元器件被燒毀。3、在焊接時,焊錫一定不要太多或過少,焊接好的形狀以圓錐型為最好。要使引腳周圍都有焊錫,將引腳固定好,防止虛焊或脫焊的情況出現(xiàn)。4、當元器件被焊接好之后,如果原器件引腳過長,需要將多余的引腳剪短,應盡量是焊接表面看上去平整,美觀。5、最后檢查焊接表面是否存在多余的鐵屑,如有發(fā)現(xiàn)請及時將其清理干凈,防止因鐵屑連在電路板表面而引起的短路現(xiàn)象發(fā)生。6、焊接過程中最為需要注意的便是安全,防止人體被電烙鐵灼傷。在使用完電烙鐵之后不要急于將其收起,應該等待電烙鐵溫度降至常溫之后收起,應避免電烙鐵的溫度燒壞電線之類的物件。3.1.2硬件焊接在清楚整個焊接過程之后就可以開始實施焊接過程了,首先按照焊接元器件“先小后大”的原則先焊接好貼片器件,在焊接過程中貼片器件最好使用鑷子之類的工具,同時在使用電烙鐵的過程中注意安全,先將電烙鐵預熱,待合適的溫度時將焊錫融化對原件進行焊接,在焊接直插式原件時,先將元器件插入電路板中,然后將引腳掰至足以讓元器件不滑落出去,這個過程最好是一次將多個元器件重復如上操作,待元器件都固定之后對其進行統(tǒng)一的焊接工作。在焊接完成之后對電路板表面進行清理工作,保證電路板表面干凈美觀,防止電路板短路現(xiàn)象發(fā)生。3.2軟件實現(xiàn)過程3.2.1軟件開發(fā)環(huán)境配置本軟件采用Java的集成開發(fā)環(huán)境(IDE,IntegratedDevelopmentEnvironment)Eclipse開發(fā),系統(tǒng)環(huán)境為windows7,打開Eclipse按照如下步驟建立好一個工程,F(xiàn)ile->New->JavaProject->輸入工程名字->Finish,這樣建好工程之后,接著按如下步驟建立一個新的類,F(xiàn)ile->New->Class->輸入類名->Finish,現(xiàn)在就會看到圖3.1那樣的一個界面,然后將本次項目開發(fā)所需要的jar包按要求導入或者是拷貝到jdk安裝目錄之后就可以開始編寫軟件了,Eclipse建立好工程文件之后如下圖3.1Eclipse集成開發(fā)環(huán)境所示:圖3.1Eclipse集成開發(fā)環(huán)境3.2.2編寫代碼及模塊功能介紹本項目代碼設計采用目前十分流行的面向對象編程語言Java設計,使用的是JavaSE部分知識,還有用于串口通信的comm.jar包。項目代碼一共分為6個模塊,它們分別是:SerialCommunication.java,SerialParameters.java,SerialConnection.java,SerialConnectionException.java,AlertDialog.java,PortRequestedDialog.java,以下逐一對它們的各個功能進行介紹。本項目是基于windows的圖形界面軟件設計。3.2.3SerialCommunication.java功能設計SerialCommunication.java中包含了整個軟件的主界面設計,從下面開始,對這個模塊的部分代碼進行解釋,具體情況如下:messageAreaIn=newJTextArea();//信息顯示區(qū)域messageAreaIn.setEditable(false);//設置為不可編輯JScrollPanescrollPane=newJScrollPane();//添加滾動條scrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);//總是顯示垂直滾動條scrollPane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);//在需要的時候顯示水平滾動條scrollPane.setViewportView(messageAreaIn);//讓信息顯示區(qū)域顯示出來messagePanel.add(scrollPane);//將滾動條添加到容器中以上代碼是添加了一個信息顯示區(qū)域,并在上面添加了滾動條之類的屬性。下面介紹軟件上面的按鈕:buttonPanel=newJPanel();//添加容納按鈕的容器openButton=newJButton("OpenPort");//在按鈕上面添加文字openButton.setPreferredSize(newDimension(100,27));//設置JButton大小openButton.setFont(newjava.awt.Font("TimesNewRoman",3,14)); //設置JButton中字體風格及大小openButton.setBackground(Color.lightGray); //設置JButton顏色openButton.setFocusPainted(false); //去除JButton中顯示的文字邊框openButton.addActionListener(this);//為按鈕注冊監(jiān)聽器buttonPanel.add(openButton);//將按鈕添加到按鈕容器中以下代碼的功能是實現(xiàn)點擊按鈕的事件相應代碼:publicvoidactionPerformed(ActionEvente){Stringcmd=e.getActionCommand();//聲明一個字符串型變量,用于在獲得按鈕上面的文字 if(cmd.equals("OpenPort")){//如果獲得的字符串與“OpenPort”相同,則打開端口 portOpened(); } if(cmd.equals("SendData")){//如果獲得的字符串與“SendData”相同,則發(fā)送數據 openButton.setEnabled(false);//將打“OpenPort”按鈕置為不可用 configurationPanel.setParameters();//為端口設置參數 try{ connection.openConnection();//打開連接 }catch(SerialConnectionExceptione1){//捕捉異常 e1.printStackTrace();//反饋異常消息 } } if(cmd.equals("ClosePort")){//如果獲得的字符串與“ClosePort”相同,則關閉端口 portClosed(); } if(cmd.equals("BreakSend")){//如果獲得的字符串與“BreakSend”相同,則終端發(fā)送 connection.sendBreak(); } if(cmd.equals("Clear")){//如果獲得的字符串與“Clear”相同,則終端發(fā)送清除信息 clear_data(); } }3.2.4SerialParameters.java功能設計SerialParameters.java這個模塊的主要功能是對軟件的參數進行設置,它里面有兩個構造方法,一個是無參數的構造方法,還有一個是有參數的構造方法,默認調用無參數的構造方法,在手動設置參數時調用有參數的構造方法,可以設置端口名字,波特率,流控制輸入,流控制輸出,數據位,停止位,優(yōu)先級等參數3.2.5SerialConnection.java功能設計SerialConnection.java這個模塊的主要功能就是建立端口連接,首先在打開軟件之后會自動識別已經存在的端口,也可以自行設置其他端口,然后點擊“OpenPort”按鈕,在編輯框中輸入信息,后臺獲取輸入信息并轉換成字符流,點擊“SendData”按鈕之后,會將字符流發(fā)送出去,并將信息顯示在另一個設備的信息顯示區(qū)域。3.2.6其他功能模塊設計SerialConnectionException.java這個模塊的功能主要是一個異常信息類,在繼承了這個類的子類中若出現(xiàn)異常就會拋出異常信息。AlertDialog.java,PortRequestedDialog.java這兩個模塊是兩個對話框,AlertDialog.java是彈出警告信息,PortRequestedDialog.java是當串口被其他應用程序占用之后,會有提示信息出現(xiàn)。3.3調試過程由于整個項目由硬件和軟件兩部分組成,而且硬件和軟件都是由多個模塊組成,所以在整個項目調試過程中采用單個模塊單獨調試,然后將各個模塊組合在一起統(tǒng)一測試,在找到問題之后具體調試出現(xiàn)問題的模塊。3.3.1硬件調試過程硬件調試主要是測試每個模塊的電流和電壓是否符合要求,最后再用典型代碼測試硬件能否正常運行。倘若不能正確運行,則按照原理圖,進行修改,同時也按照焊接注意事項上面的要求進行實施,直至硬件能正常工作為止。3.3.2軟件調試過程軟件主要是采用Eclipse集成開發(fā)環(huán)境開發(fā),所以調試過程也是在Eclipse中進行的,在編寫完代碼之后,在代碼編輯區(qū)域點擊鼠標右鍵->RunAs->JavaApplication運行程序(操作見圖3.2運行程序),如果程序出現(xiàn)錯誤會在Eclipse下方的Console窗口出現(xiàn)紅色文字的錯誤信息,會提示錯誤具體出現(xiàn)在哪一行,雙擊藍色顯示的代碼行調至錯誤位置進行修改程序。直到程序運行之后Eclipse下方沒有錯誤提示為止,就算此程序能夠
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度新型農業(yè)機械推廣與應用合作協(xié)議4篇
- 2025年拆遷還建住宅產權變更協(xié)議范本4篇
- 二零二四臺媒披露大S汪小菲離婚協(xié)議財產分割與子女撫養(yǎng)權爭奪戰(zhàn)3篇
- 元素周期表解析
- 2025年度企業(yè)搬遷拆遷工程承包合同書(產業(yè)升級支持協(xié)議)3篇
- 2025年度智能化廠房租賃及運營管理合同4篇
- 二零二五版城區(qū)交通隔離護欄定制采購合同3篇
- 個人健身教練2024年度勞動協(xié)議樣本版A版
- 2025年度大數據分析公司100%股權轉讓及數據共享協(xié)議3篇
- 2025年度水上樂園場管理辦公室安全管理及運營合同4篇
- 河南省鄭州外國語高中-【高二】【上期中】【把握現(xiàn)在 蓄力高三】家長會【課件】
- 天津市武清區(qū)2024-2025學年八年級(上)期末物理試卷(含解析)
- 《徐霞客傳正版》課件
- 江西硅博化工有限公司年產5000噸硅樹脂項目環(huán)境影響評價
- 2025年中煤電力有限公司招聘筆試參考題庫含答案解析
- 企業(yè)內部控制與財務風險防范
- 高端民用航空復材智能制造交付中心項目環(huán)評資料環(huán)境影響
- 建設項目施工現(xiàn)場春節(jié)放假期間的安全管理方案
- 量子醫(yī)學成像學行業(yè)研究報告
- 胃潴留護理查房
- 污水處理廠運營方案計劃
評論
0/150
提交評論