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