李晶晶,吳學文
(河海大學 計算機與信息學院,江蘇 南京 211100)
隨著計算機技術的發展和廣泛應用,尤其是在工業控制領域的應用越來越廣泛,計算機通信顯得尤為重要。串行通信雖然使設備之間的連線大為減少,但隨之帶來串/并轉換和位計數等問題,這使串行通信技術比并行通信技術更為復雜,串/并轉換可用軟件實現,也可用硬件實現。用軟件實現串行傳送大多采用循環移位指令將一個字節由高位到低位(或低位到高位)一位一位依次傳送,這種方法雖然簡單但速度慢,而且大量占用CPU的時間,影響系統的性能。更為方便的實現方法是用硬件,目前微處理器串行接口常用的LSI芯片是UART、USART和ACIA等,不論是哪一種芯片,它們的一種基本功能是實現串/并轉換。正是這些串行接口芯片彌補了串行通信較為復雜這一缺陷[1]。因此在串行通信中,傳輸接口是首先需要解決的基本問題。通用異接收發送器簡稱UART,是一種應用廣泛的異步串行通信的傳輸接口,專用UART芯片能夠實現比較全面的串行通信功能,而在實際應用中往往只需要使用到UART的部分功能,在設計中如果使用無線數據節點即KM-DONE 433,那么在剩余資源充足的情況下就可以充分利用剩余資源實現所需的UART的功能,這樣就無需再外接專門的UART芯片,從而簡化了電路,縮小了體積、提高了可靠性、并且具有了更大的靈活性。
基于以上考慮,提出一種基于CC1100和MSP430F2132的無線UART實驗設計,實現無線傳感器節點間的通信。
無線傳感器網絡系統通常包括若干個傳感器節點、一個匯聚節點和一套管理節點。大量傳感器節點隨機部署在監測區域內部或附近,能夠通過自組織方式構成網絡。傳感器節點具有本地數據采集傳輸和轉發鄰節點數據的雙重功能,傳感器節點監測的數據沿著其他傳感器節點逐跳的進行傳輸,在傳輸過程中監測數據可能被多個節點處理,經過多跳后路由到匯聚節點,最后通過互聯網或衛星到達管理節點[2]。
為簡化網絡結構,設計的網絡結構是由端節點將接收到的數據發送至路由節點,再由路由節點將數據進行轉發,最后通過網關節點發送至PC機,整個過程實現的是數據的發送、轉發及接收,最終顯示。
實驗使用的硬件裝置有端節點、路由節點和網關節點,其中端節點和路由節點都是使用的無線通信節點即KMDONE 433,如圖1所示。

圖1 KM-DONE 433結構圖Fig.1 Framework of KM-DONE 433
KM-DONE 433硬件結構采用CC1100無線通信模塊,MCU選用MSP430F2132,具有低功耗特性,兩者的結合使用能滿足本實驗低功耗無線通信的要求。此結構的設計能實現串口通信透明傳輸,可配置各種數據格式,并且用戶可選擇保存配置信息,方便下次操作。同時,還能實現任意長度以及不間斷無線數據長度的數據發送,并具有防碰撞機制,實現多用戶的數據通信[3-4]。
系統軟件設計使用C語言在IAR[5]軟件開發平臺上通過JTAG調試功能在芯片內部進行引腳升級運行,主要包括端節點和路由節點兩部分。程序設計思路是通過UART端口配置實現數據收發的串口通信,在發送一個字符時,每個位周期,UART驅動一次發送信號線的狀態,從起始位到8個數據位直到結束位依次設置每個位的電平。在接收一個字符時,UART在第一個下降沿開始工作,之后在每個位時隙的中央對接收線上的信號狀態進行一次采樣[6-8]。端節點和路由節點程序流程圖分別如圖2、圖3所示。
待串口配置完成后先打開路由節點,觀察現象和串口顯示情況,然后再打開端節點并觀察實驗現象和串口顯示情況,當接收足夠的實驗數據后,依次關閉各節點和串口,并對實驗現象和數據進行分析,串口顯示的數據如圖4所示。
首先,由實驗現象得出的結論:在實驗運行過程中,當給端節點接通電源時,觀測到發送節點的綠燈有規律地閃爍,根據在實驗前程序的設置,當發送完一個數據包時,綠燈閃爍,由此說明發送節點在接通電源時在發送數據成功;并且綠燈閃爍的次數就是發送數據包的個數。

圖2 端節點程序流程圖Fig.2 Flow chart of end node program

圖3 路由節點程序流程圖Fig.3 Flow chart of route node program

圖4 實驗數據Fig.4 Experimental data
端節點發送數據時路由節點的紅燈也開始有規律地閃爍,說明路由節點數據接收并轉發成功,紅燈閃爍次數就是路由轉發的數據包個數。 同樣在端節點發送數據時網關節點的黃燈也開始有規律地閃爍,說明網關接收數據成功。其次,由PC機上串口顯示的數據得出結論。
在網關節點閃爍的同時,可以看到PC機上的串口有數據出現,這就是網關接收的數據。如圖5所示。
根據規定的發送數據的數據包格式,以節點的ID為數據包的第一個數據標志位,從串口顯示的數據中可以看出:劃實線標注部分是ID為OX01的端節點發送的數據 (為01 01 02 03 04 05 06 07 08 09),劃虛線標注部分是ID為OX84的路由節點轉發的數據(為84 01 02 03 04 05 06 07 08 09),由此可以輕易看出網關接收的端節點的數據與網關接收的路由節點的數據相同,再比較接收的數據與發送的數據(為01 02 03 04 05 06 07 08 09)也相同,由此可以斷定,網關接收的數據就是端節點發送的數據。
基于CC1100和MSP430的無線UART實驗設計的主要原理是通過IAR軟件開發平臺實現相應軟件開發,并配合采用無線傳感器節點及網關,最終實現無線傳感器節點間的UART通信,即實現端節點的數據發送、路由節點的數據轉發和網關節點的數據接收這一過程。通過觀測各個節點亮燈情況、閃爍次數以及電腦上的數據顯示來判定功能實現,綜合實驗現象及數據,表明無線UART通信實驗設計取得成功,到達了預想的設計要求。
[1]孟志華.利用FPGA實現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].單片機與嵌入式系統應用,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嵌入式系統應用編程與開發[M].北京:北京航天航空大學出版,2009.
[6]黃海林,沈緒榜.基于有限狀態機的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實現UART和MCU一體化設計[J].現代電子技術,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.