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