李晶晶,吳學文
(河海大學 計算機與信息學院,江蘇 南京 211100)
隨著計算機技術的發(fā)展和廣泛應用,尤其是在工業(yè)控制領域的應用越來越廣泛,計算機通信顯得尤為重要。串行通信雖然使設備之間的連線大為減少,但隨之帶來串/并轉換和位計數(shù)等問題,這使串行通信技術比并行通信技術更為復雜,串/并轉換可用軟件實現(xiàn),也可用硬件實現(xiàn)。用軟件實現(xiàn)串行傳送大多采用循環(huán)移位指令將一個字節(jié)由高位到低位(或低位到高位)一位一位依次傳送,這種方法雖然簡單但速度慢,而且大量占用CPU的時間,影響系統(tǒng)的性能。更為方便的實現(xiàn)方法是用硬件,目前微處理器串行接口常用的LSI芯片是UART、USART和ACIA等,不論是哪一種芯片,它們的一種基本功能是實現(xiàn)串/并轉換。正是這些串行接口芯片彌補了串行通信較為復雜這一缺陷[1]。因此在串行通信中,傳輸接口是首先需要解決的基本問題。通用異接收發(fā)送器簡稱UART,是一種應用廣泛的異步串行通信的傳輸接口,專用UART芯片能夠實現(xiàn)比較全面的串行通信功能,而在實際應用中往往只需要使用到UART的部分功能,在設計中如果使用無線數(shù)據(jù)節(jié)點即KM-DONE 433,那么在剩余資源充足的情況下就可以充分利用剩余資源實現(xiàn)所需的UART的功能,這樣就無需再外接專門的UART芯片,從而簡化了電路,縮小了體積、提高了可靠性、并且具有了更大的靈活性。
基于以上考慮,提出一種基于CC1100和MSP430F2132的無線UART實驗設計,實現(xiàn)無線傳感器節(jié)點間的通信。
無線傳感器網絡系統(tǒng)通常包括若干個傳感器節(jié)點、一個匯聚節(jié)點和一套管理節(jié)點。大量傳感器節(jié)點隨機部署在監(jiān)測區(qū)域內部或附近,能夠通過自組織方式構成網絡。傳感器節(jié)點具有本地數(shù)據(jù)采集傳輸和轉發(fā)鄰節(jié)點數(shù)據(jù)的雙重功能,傳感器節(jié)點監(jiān)測的數(shù)據(jù)沿著其他傳感器節(jié)點逐跳的進行傳輸,在傳輸過程中監(jiān)測數(shù)據(jù)可能被多個節(jié)點處理,經過多跳后路由到匯聚節(jié)點,最后通過互聯(lián)網或衛(wèi)星到達管理節(jié)點[2]。
為簡化網絡結構,設計的網絡結構是由端節(jié)點將接收到的數(shù)據(jù)發(fā)送至路由節(jié)點,再由路由節(jié)點將數(shù)據(jù)進行轉發(fā),最后通過網關節(jié)點發(fā)送至PC機,整個過程實現(xiàn)的是數(shù)據(jù)的發(fā)送、轉發(fā)及接收,最終顯示。
實驗使用的硬件裝置有端節(jié)點、路由節(jié)點和網關節(jié)點,其中端節(jié)點和路由節(jié)點都是使用的無線通信節(jié)點即KMDONE 433,如圖1所示。
圖1 KM-DONE 433結構圖Fig.1 Framework of KM-DONE 433
KM-DONE 433硬件結構采用CC1100無線通信模塊,MCU選用MSP430F2132,具有低功耗特性,兩者的結合使用能滿足本實驗低功耗無線通信的要求。此結構的設計能實現(xiàn)串口通信透明傳輸,可配置各種數(shù)據(jù)格式,并且用戶可選擇保存配置信息,方便下次操作。同時,還能實現(xiàn)任意長度以及不間斷無線數(shù)據(jù)長度的數(shù)據(jù)發(fā)送,并具有防碰撞機制,實現(xiàn)多用戶的數(shù)據(jù)通信[3-4]。
系統(tǒng)軟件設計使用C語言在IAR[5]軟件開發(fā)平臺上通過JTAG調試功能在芯片內部進行引腳升級運行,主要包括端節(jié)點和路由節(jié)點兩部分。程序設計思路是通過UART端口配置實現(xiàn)數(shù)據(jù)收發(fā)的串口通信,在發(fā)送一個字符時,每個位周期,UART驅動一次發(fā)送信號線的狀態(tài),從起始位到8個數(shù)據(jù)位直到結束位依次設置每個位的電平。在接收一個字符時,UART在第一個下降沿開始工作,之后在每個位時隙的中央對接收線上的信號狀態(tài)進行一次采樣[6-8]。端節(jié)點和路由節(jié)點程序流程圖分別如圖2、圖3所示。
待串口配置完成后先打開路由節(jié)點,觀察現(xiàn)象和串口顯示情況,然后再打開端節(jié)點并觀察實驗現(xiàn)象和串口顯示情況,當接收足夠的實驗數(shù)據(jù)后,依次關閉各節(jié)點和串口,并對實驗現(xiàn)象和數(shù)據(jù)進行分析,串口顯示的數(shù)據(jù)如圖4所示。
首先,由實驗現(xiàn)象得出的結論:在實驗運行過程中,當給端節(jié)點接通電源時,觀測到發(fā)送節(jié)點的綠燈有規(guī)律地閃爍,根據(jù)在實驗前程序的設置,當發(fā)送完一個數(shù)據(jù)包時,綠燈閃爍,由此說明發(fā)送節(jié)點在接通電源時在發(fā)送數(shù)據(jù)成功;并且綠燈閃爍的次數(shù)就是發(fā)送數(shù)據(jù)包的個數(shù)。
圖2 端節(jié)點程序流程圖Fig.2 Flow chart of end node program
圖3 路由節(jié)點程序流程圖Fig.3 Flow chart of route node program
圖4 實驗數(shù)據(jù)Fig.4 Experimental data
端節(jié)點發(fā)送數(shù)據(jù)時路由節(jié)點的紅燈也開始有規(guī)律地閃爍,說明路由節(jié)點數(shù)據(jù)接收并轉發(fā)成功,紅燈閃爍次數(shù)就是路由轉發(fā)的數(shù)據(jù)包個數(shù)。 同樣在端節(jié)點發(fā)送數(shù)據(jù)時網關節(jié)點的黃燈也開始有規(guī)律地閃爍,說明網關接收數(shù)據(jù)成功。其次,由PC機上串口顯示的數(shù)據(jù)得出結論。
在網關節(jié)點閃爍的同時,可以看到PC機上的串口有數(shù)據(jù)出現(xiàn),這就是網關接收的數(shù)據(jù)。如圖5所示。
根據(jù)規(guī)定的發(fā)送數(shù)據(jù)的數(shù)據(jù)包格式,以節(jié)點的ID為數(shù)據(jù)包的第一個數(shù)據(jù)標志位,從串口顯示的數(shù)據(jù)中可以看出:劃實線標注部分是ID為OX01的端節(jié)點發(fā)送的數(shù)據(jù) (為01 01 02 03 04 05 06 07 08 09),劃虛線標注部分是ID為OX84的路由節(jié)點轉發(fā)的數(shù)據(jù)(為84 01 02 03 04 05 06 07 08 09),由此可以輕易看出網關接收的端節(jié)點的數(shù)據(jù)與網關接收的路由節(jié)點的數(shù)據(jù)相同,再比較接收的數(shù)據(jù)與發(fā)送的數(shù)據(jù)(為01 02 03 04 05 06 07 08 09)也相同,由此可以斷定,網關接收的數(shù)據(jù)就是端節(jié)點發(fā)送的數(shù)據(jù)。
基于CC1100和MSP430的無線UART實驗設計的主要原理是通過IAR軟件開發(fā)平臺實現(xiàn)相應軟件開發(fā),并配合采用無線傳感器節(jié)點及網關,最終實現(xiàn)無線傳感器節(jié)點間的UART通信,即實現(xiàn)端節(jié)點的數(shù)據(jù)發(fā)送、路由節(jié)點的數(shù)據(jù)轉發(fā)和網關節(jié)點的數(shù)據(jù)接收這一過程。通過觀測各個節(jié)點亮燈情況、閃爍次數(shù)以及電腦上的數(shù)據(jù)顯示來判定功能實現(xiàn),綜合實驗現(xiàn)象及數(shù)據(jù),表明無線UART通信實驗設計取得成功,到達了預想的設計要求。
[1]孟志華.利用FPGA實現(xiàn)UART的設計[J].電子工程師,2007,33(4):14.
MENG Zhi-hua.Design and implementation of UART based on FPGA[J].Electronic Engineer,2007,33(4):14.
[2]孫利民,李建中,陳渝,等.無線傳感器網絡[M].北京:清華大學出版社,2005.
[3]沈建華,楊艷琴.MSP430系列超低功耗單片機原理與應用[M].北京:清華大學出版社,2004.
[4]孫維明,石江宏.由MSP430和CC1100構成的無線傳感器網絡[J].單片機與嵌入式系統(tǒng)應用,2007,7(8):31-33.
SUN Wei-ming,SHI Jiang-hong.Wireless sensor network based on MSP430 and CC1100[J].Microcontrollers&Embedded Systems,2007,7(8):31-33.
[5]徐愛鈞.IAR EWARM V5嵌入式系統(tǒng)應用編程與開發(fā)[M].北京:北京航天航空大學出版,2009.
[6]黃海林,沈緒榜.基于有限狀態(tài)機的UART設計[J].微電子學與計算機,2002,19(12):53-55.
HUANG Hai-lin,SHENG Xu-bang.FSM-based design methodology for UART[J].Microelectronics&Computer,2002,19(12):53-55.
[7]蘇航,張寧.FPGA實現(xiàn)UART和MCU一體化設計[J].現(xiàn)代電子技術,2011(2):22-25,28.
SU Hang,ZHANG Ning.Integrated design of uart and MCU based on FPGA[J].Modern Electronic Technique,2011(2):22-25,28.
[8]王振華,何明華.基于Wishbone總線的UARTIP核設計[J].電子科技,2011(2):50-53.
WANG Zhen-hua,HE Ming-hua.A UART IP core for Wishbone bus interface[J].Electronic Science and Technology,2011(2):50-53.