基于無線通信的溫度監測系統的設計
4 通信協議的設計
系統采用如圖1所示的分層結構,主節點采用數據請求工作方式,按順序對二級節點進行數據請求,二級節點收到數據請求命令后,將采集的數據交給主節點統一處理,主節點把帶有傳感器地址的溫度數據傳送給上位機。NRF905每次只能收發32字節數據,因此底層傳感器節點并不是無限多,根據DS18B20的通信協議,DS18B20采集的溫度數據是用兩個字節表示,而每個傳感器有唯一的1字節地址,這樣每個傳感器傳送給二級節點的數據都是三個字節,即兩個字節的溫度數據和一個字節的地址數據。二級節點一次最多傳送32字節數據,為了保證數據傳送的穩定性, 該系統每個二級節點對應10個底層傳感器節點,共構建了20個二級節點,系統總的底層傳感器節點的數目是200個。本系統的所有節點的通訊都是同一信道,當出現多個節點同時傳送數據的情況時,會形成相互間的干擾導致數據無法正確的接收,因此需要一種機制來合理的分配信道資源,減少數據沖突。基于NRF905通訊的特點,即兩個NRF905模塊必需具有相同的頻段和地址才能通訊成功,設計了通信協議,通信協議的算法如下:
(1)主節點M采用輪詢數據請求工作方式,按順序對二級節點進行數據請求,主節點對每一個二級節點發送完請求數據命令后都會進入信道偵聽狀態,一定的時間間隙T內主節點一直處于偵聽信道狀態。
(2)二級節點偵聽信道,接收來自主節點的數據請求命令, 收到數據請求命令后結束偵聽,發送應答信息。
(3)二級節點采用類似主節點M的工作方式,按順序對傳感器節點進行數據請求,二級節點對每一個傳感器節點發送完請求數據命令后都會進入信道偵聽狀態,一定的時間間隙Tm內二級節點一直處于偵聽信道狀態。
(4)傳感器節點偵聽信道,接收來自二級節點的數據請求命令,收到命令后,結束偵聽,發送溫度數據信息。
(5)二級節點與傳感器節點進行數據傳輸,接收數據包。
(6)主節點與二級節點進行數據傳輸,接收來自二級節點的數據包。
(7)主節點與監控主機通信,傳送各個傳感器節點采集的溫度數據和傳感器地址。
數據在系統中無線傳輸必須有統一的格式,數據包格式如下:
其中,前導碼由器件自動添加,占用1個字節;目的地址是表示數據包要到達的目的地址,占用1個字節;數據屬性用來說明該數據包是數據包還是命令包,占用一個字節;有效數據包括節點的采集信息和地址信息可設定最大為32個字節; CRC校驗系統自動完成,本系統采用16位CRC校驗占用2個字節。
主節點發出的通信數據包格式如下:
其中,目的地址是二級節點的地址,命令字是指請求數據命令,用0AH代表數據請求命令,占用一個字節,有效數據長度為空。
二級節點的應答數據包格式如下:
其中目的地址是主節點的地址,應答字用0BH表示,占用1字節,有效數據長度為空。
二級節點發出的帶有采集點數據的包格式如下:
其中目的地址是主節點的地址,數據標志用0CH表示,占用一個字節,有效數據長度包括傳感器節點的溫度數據和傳感器地址數據,占用30個字節。
評論