基于無線傳感器網(wǎng)絡節(jié)點的串行通信技術
在發(fā)送數(shù)據(jù)時, 數(shù)據(jù)通過串口USART 進入CC2430 的DATA 內存區(qū)。為了提高傳輸速度, 使用DMA 傳輸方式將內存區(qū)中的數(shù)據(jù)送達射頻模塊的TXFIFO 中, 數(shù)據(jù)進入射頻模塊后, 經(jīng)過一系列的硬件處理, 最后通過天線發(fā)射無線信號。接收數(shù)據(jù)是發(fā)送數(shù)據(jù)的逆過程。射頻模塊從天線接收到無線信號, 通過一系列的硬件處理, 將信號轉換為數(shù)據(jù), 存放在RXFIFO中, 再通過DMA 方式送入DATA 內存區(qū)中, 最后通過USART 串口將接收到的數(shù)據(jù)送出。數(shù)據(jù)在無線模塊的傳輸路徑如圖2 所示。
不難看出, 整個數(shù)據(jù)傳輸過程大部分在CC2430 的內部完成。這得益于CC2430 具有極高的集成度, 是一款片上系統(tǒng), 能夠提供較高的系統(tǒng)穩(wěn)定性和可靠性。
圖2 數(shù)據(jù)在無線模塊中的傳輸路徑
ZigBee 模塊接收到的數(shù)據(jù)幀作為網(wǎng)絡層的負荷, 通過ZigBee 網(wǎng)絡發(fā)送給目標節(jié)點。網(wǎng)絡層幀格式如下所示:
該幀的第1 個字符表示幀類型( frame. type) : 0x00為命令幀; 0x01 為數(shù)據(jù)幀; 0x02 為確認幀; 0x03 為錯誤幀; 0x04~ 0xFF 保留。第2 個字符表示包序列號( se2quernce number ) 。第3 個字符表示數(shù)據(jù)傳送的目標節(jié)點( destination address) 。第4 個字符表示數(shù)據(jù)的源節(jié)點( source address) 。第5 個字符表示數(shù)據(jù)的長度( datalength) 。后續(xù)是數(shù)據(jù)負荷( data payload) , 長度為datalength。最后一個字符是校驗和( check sum) , 其值根據(jù)下式算得。
整個數(shù)據(jù)幀的長度是data length+ 6, 作為MAC層負荷, 它必須小于104 B。無線模塊網(wǎng)絡層接收到數(shù)據(jù)幀后, 檢查該數(shù)據(jù)幀的目標地址與該節(jié)點地址是否相同。若不相同, 則說明該數(shù)據(jù)是給異地節(jié)點的, 無線模塊將通過ZigBee 網(wǎng)絡轉發(fā)給目標節(jié)點; 若相同, 則根據(jù)接受到的數(shù)據(jù)重新計算校驗和; 如果得到的校驗和與傳送過來的相同, 則回復確認幀, 同時將數(shù)據(jù)輸出; 反之通知發(fā)送方傳輸失敗。
3 硬件設計
前面介紹了系統(tǒng)整體和軟件設計方面的方案, 下面提供一種系統(tǒng)硬件組成的設計方案。無線模塊電路圖如圖3 所示。
圖3 無線模塊電路圖
電路系統(tǒng)主要由電源、復位電路、串口連接電路和無線收發(fā)電路組成??蓪崿F(xiàn)串口數(shù)據(jù)的無線收發(fā), 即發(fā)送數(shù)據(jù)時, 計算機通過MAX485 將RS 485 的標準電平轉換為T TL 電平, 再通過CC2430 無線發(fā)送。接收數(shù)據(jù)則是CC2430 先接收到數(shù)據(jù)信號, 然后經(jīng)MAX 485將TT L 電平轉換為RS 485 的標準電平, 再通過RS2485 向上位機輸入數(shù)據(jù)。由于CC2430 具有低功耗的特性, 因此選用2 節(jié)干電池為模塊供電。另外, 還選用了AH805 升壓穩(wěn)壓器, 可將3 V 電壓升高至5 V, 故電源部分可提供3 V 或5 V 2 種電壓。其中, 3 V 電壓為CC2430 供電; 5 V 電壓為MAX485 和復位電路供電。若將系統(tǒng)用于PC 機間的通信時, 可以通過引入RS 2322485 轉換器來實現(xiàn)RS 232 標準電平到RS 485標準電平的轉換, 以兼容PC 機RS 232 串口。
評論