基于CC1100和MSP430的無線UART實驗設(shè)計
摘要:為了實現(xiàn)低功耗的無線串行通信,設(shè)計了一種對UART進行無線傳感器網(wǎng)絡(luò)的應(yīng)用實驗。通過學(xué)習(xí)使用C語言在IAR Embedded Workben ch for ARM軟件開發(fā)平臺進行串口的基本設(shè)置和應(yīng)用,并配合使用無線收發(fā)模塊CC1100和具有低功耗MSP430F2132組成的無線傳感器節(jié)點實現(xiàn)數(shù)據(jù)收發(fā)功能,最后使用網(wǎng)關(guān)節(jié)點和PC機實現(xiàn)數(shù)據(jù)接收并顯示,整個設(shè)計是一個實現(xiàn)數(shù)據(jù)發(fā)送、數(shù)據(jù)轉(zhuǎn)發(fā)和數(shù)據(jù)接收,最終數(shù)據(jù)顯示的過程,即UART通信。
關(guān)鍵詞:UART;CC1100;MSP430F2132;串行通信;無線傳感器
隨著計算機技術(shù)的發(fā)展和廣泛應(yīng)用,尤其是在工業(yè)控制領(lǐng)域的應(yīng)用越來越廣泛,計算機通信顯得尤為重要。串行通信雖然使設(shè)備之間的連線大為減少,但隨之帶來串/并轉(zhuǎn)換和位計數(shù)等問題,這使串行通信技術(shù)比并行通信技術(shù)更為復(fù)雜,串/并轉(zhuǎn)換可用軟件實現(xiàn),也可用硬件實現(xiàn)。用軟件實現(xiàn)串行傳送大多采用循環(huán)移位指令將一個字節(jié)由高位到低位(或低位到高位)一位一位依次傳送,這種方法雖然簡單但速度慢,而且大量占用CPU的時間,影響系統(tǒng)的性能。更為方便的實現(xiàn)方法是用硬件,目前微處理器串行接口常用的LSI芯片是UART、USART和ACIA等,不論是哪一種芯片,它們的一種基本功能是實現(xiàn)串/并轉(zhuǎn)換。正是這些串行接口芯片彌補了串行通信較為復(fù)雜這一缺陷。因此在串行通信中,傳輸接口是首先需要解決的基本問題。通用異接收發(fā)送器簡稱UART,是一種應(yīng)用廣泛的異步串行通信的傳輸接口,專用UART芯片能夠?qū)崿F(xiàn)比較全面的串行通信功能,而在實際應(yīng)用中往往只需要使用到UART的部分功能,在設(shè)計中如果使用無線數(shù)據(jù)節(jié)點即KM-DONE 433,那么在剩余資源充足的情況下就可以充分利用剩余資源實現(xiàn)所需的UART的功能,這樣就無需再外接專門的UART芯片,從而簡化了電路,縮小了體積、提高了可靠性、并且具有了更大的靈活性。
基于以上考慮,提出一種基于CC1100和MSP430F2132的無線UART實驗設(shè)計,實現(xiàn)無線傳感器節(jié)點間的通信。
1 總體設(shè)計
無線傳感器網(wǎng)絡(luò)系統(tǒng)通常包括若干個傳感器節(jié)點、一個匯聚節(jié)點和一套管理節(jié)點。大量傳感器節(jié)點隨機部署在監(jiān)測區(qū)域內(nèi)部或附近,能夠通過自組織方式構(gòu)成網(wǎng)絡(luò)。傳感器節(jié)點具有本地數(shù)據(jù)采集傳輸和轉(zhuǎn)發(fā)鄰節(jié)點數(shù)據(jù)的雙重功能,傳感器節(jié)點監(jiān)測的數(shù)據(jù)沿著其他傳感器節(jié)點逐跳的進行傳輸,在傳輸過程中監(jiān)測數(shù)據(jù)可能被多個節(jié)點處理,經(jīng)過多跳后路由到匯聚節(jié)點,最后通過互聯(lián)網(wǎng)或衛(wèi)星到達管理節(jié)點。
為簡化網(wǎng)絡(luò)結(jié)構(gòu),設(shè)計的網(wǎng)絡(luò)結(jié)構(gòu)是由端節(jié)點將接收到的數(shù)據(jù)發(fā)送至路由節(jié)點,再由路由節(jié)點將數(shù)據(jù)進行轉(zhuǎn)發(fā),最后通過網(wǎng)關(guān)節(jié)點發(fā)送至PC機,整個過程實現(xiàn)的是數(shù)據(jù)的發(fā)送、轉(zhuǎn)發(fā)及接收,最終顯示。
2 硬件實現(xiàn)
實驗使用的硬件裝置有端節(jié)點、路由節(jié)點和網(wǎng)關(guān)節(jié)點,其中端節(jié)點和路由節(jié)點都是使用的無線通信節(jié)點即KM-DONE 433,如圖1所示。
KM-DONE 433硬件結(jié)構(gòu)采用CC1100無線通信模塊,MCU選用MSP430F2132,具有低功耗特性,兩者的結(jié)合使用能滿足本實驗低功耗無線通信的要求。此結(jié)構(gòu)的設(shè)計能實現(xiàn)串口通信透明傳輸,可配置各種數(shù)據(jù)格式,并且用戶可選擇保存配置信息,方便下次操作。同時,還能實現(xiàn)任意長度以及不間斷無線數(shù)據(jù)長度的數(shù)據(jù)發(fā)送,并具有防碰撞機制,實現(xiàn)多用戶的數(shù)據(jù)通信。
3 軟件設(shè)計
系統(tǒng)軟件設(shè)計使用C語言在IAR軟件開發(fā)平臺上通過JTAG調(diào)試功能在芯片內(nèi)部進行引腳升級運行,主要包括端節(jié)點和路由節(jié)點兩部分。程序設(shè)計思路是通過UART端口配置實現(xiàn)數(shù)據(jù)收發(fā)的串口通信,在發(fā)送一個字符時,每個位周期,UART驅(qū)動一次發(fā)送信號線的狀態(tài),從起始位到8個數(shù)據(jù)位直到結(jié)束位依次設(shè)置每個位的電平。在接收一個字符時,UART在第一個下降沿開始工作,之后在每個位時隙的中央對接收線上的信號狀態(tài)進行一次采樣。端節(jié)點和路由節(jié)點程序流程圖分別如圖2、圖3所示。
4 實驗測試及結(jié)果分析
4.1 實驗測試
待串口配置完成后先打開路由節(jié)點,觀察現(xiàn)象和串口顯示情況,然后再打開端節(jié)點并觀察實驗現(xiàn)象和串口顯示情況,當(dāng)接收足夠的實驗數(shù)據(jù)后,依次關(guān)閉各節(jié)點和串口,并對實驗現(xiàn)象和數(shù)據(jù)進行分析,串口顯示的數(shù)據(jù)如圖4所示。
4.2 實驗結(jié)果分析
首先,由實驗現(xiàn)象得出的結(jié)論:在實驗運行過程中,當(dāng)給端節(jié)點接通電源時,觀測到發(fā)送節(jié)點的綠燈有規(guī)律地閃爍,根據(jù)在實驗前程序的設(shè)置,當(dāng)發(fā)送完一個數(shù)據(jù)包時,綠燈閃爍,由此說明發(fā)送節(jié)點在接通電源時在發(fā)送數(shù)據(jù)成功;并且綠燈閃爍的次數(shù)就是發(fā)送數(shù)據(jù)包的個數(shù)。
端節(jié)點發(fā)送數(shù)據(jù)時路由節(jié)點的紅燈也開始有規(guī)律地閃爍,說明路由節(jié)點數(shù)據(jù)接收并轉(zhuǎn)發(fā)成功,紅燈閃爍次數(shù)就是路由轉(zhuǎn)發(fā)的數(shù)據(jù)包個數(shù)。同樣在端節(jié)點發(fā)送數(shù)據(jù)時網(wǎng)關(guān)節(jié)點的黃燈也開始有規(guī)律地閃爍,說明網(wǎng)關(guān)接收數(shù)據(jù)成功。其次,由PC機上串口顯示的數(shù)據(jù)得出結(jié)論。
在網(wǎng)關(guān)節(jié)點閃爍的同時,可以看到PC機上的串口有數(shù)據(jù)出現(xiàn),這就是網(wǎng)關(guān)接收的數(shù)據(jù)。如圖5所示。
根據(jù)規(guī)定的發(fā)送數(shù)據(jù)的數(shù)據(jù)包格式,以節(jié)點的ID為數(shù)據(jù)包的第一個數(shù)據(jù)標(biāo)志位,從串口顯示的數(shù)據(jù)中可以看出:劃實線標(biāo)注部分是ID為0X01的端節(jié)點發(fā)送的數(shù)據(jù)(為0101 02 03 04 05 06 07 08 09),劃虛線標(biāo)注部分是ID為0X84的路由節(jié)點轉(zhuǎn)發(fā)的數(shù)據(jù)(為84 01 02 03 04 05 06 07 08 09),由此可以輕易看出網(wǎng)關(guān)接收的端節(jié)點的數(shù)據(jù)與網(wǎng)關(guān)接收的路由節(jié)點的數(shù)據(jù)相同,再比較接收的數(shù)據(jù)與發(fā)送的數(shù)據(jù)(為01 02 03 04 05 06 07 08 09)也相同,由此可以斷定,網(wǎng)關(guān)接收的數(shù)據(jù)就是端節(jié)點發(fā)送的數(shù)據(jù)。
5 結(jié)束語
基于CC1100和MSP430的無線UART實驗設(shè)計的主要原理是通過IAR軟件開發(fā)平臺實現(xiàn)相應(yīng)軟件開發(fā),并配合采用無線傳感器節(jié)點及網(wǎng)關(guān),最終實現(xiàn)無線傳感器節(jié)點間的UART通信,即實現(xiàn)端節(jié)點的數(shù)據(jù)發(fā)送、路由節(jié)點的數(shù)據(jù)轉(zhuǎn)發(fā)和網(wǎng)關(guān)節(jié)點的數(shù)據(jù)接收這一過程。通過觀測各個節(jié)點亮燈情況、閃爍次數(shù)以及電腦上的數(shù)據(jù)顯示來判定功能實現(xiàn),綜合實驗現(xiàn)象及數(shù)據(jù),表明無線UART通信實驗設(shè)計取得成功,到達了預(yù)想的設(shè)計要求。