書名: 物聯網工程應用技術作者名: 廖建尚 蘇詠梅 桑世慶編著本章字數: 1330字更新時間: 2021-02-22 15:02:03
1.4 物聯網系統的數據通信協議
一個完整的物聯網系統,數據貫穿了感知層、網絡層、平臺層和應用層的各個部分,數據在這四層之間層層傳遞。要使數據在每一層能夠被正確識別就需要在構建物聯網系統時建立一套完整的數據通信協議。
數據通信協議是指通信雙方完成通信或服務所必須遵循的規則和約定。通過通信信道和設備連接起來的處于多個不同地理位置的數據通信系統,按照數據通信協議能夠協同工作,實現信息交換和資源共享。
1.4.1 ZXBee數據通信協議
1.ZXBee數據通信協議的格式及參數
ZXBee數據通信協議的格式為“{參數=值,參數=值…}”。
2.ZXBee數據通信協議參數說明
(1)ZXBee數據通信協議參數說明如下:
① 參數名稱如下:
● 變量:A0~A7、D0、D1、V0~V3。
● 指令:CD0、OD0、CD1、OD1。
● 特殊參數:ECHO、TYPE、PN、PANID、CHANNEL。
② 可以對變量的值進行查詢,如“{A0=?}”。
③ 變量A0~A7在云數據中心中可以保存為歷史數據。
④ 指令是按位進行操作的。
(2)具體參數解釋如下:
① A0~A7:用于傳遞傳感器采集的數據,只能通過“?”來查詢當前變量的值,并將其上傳到物聯網云數據中心存儲。
② D0:D0中的bit0~bit7分別對應A0~A7的狀態(是否主動上報狀態),只能通過“?”來查詢當前變量的值,0表示禁止主動上報,1表示允許主動上報。
③ CD0/OD0:對D0的位進行操作,CD0表示位清0操作,OD0表示位置1操作,示例如下。
● 溫濕度傳感器用A0表示溫度值,用A1表示濕度值,CD0=1表示關閉溫度值的主動上報。
● 火焰傳感器用A0表示報警狀態,OD0=1表示開啟火焰傳感器報警監測,當火焰傳感器報警時,會主動上報A0的值。
④ D1:D1表示控制編碼,只能通過“?”來查詢當前變量的值,用戶可根據傳感器屬性來自定義功能。
⑤ CD1/OD1:對D1的位進行操作,CD1表示位清0操作,OD1表示位置1操作。
⑥ V0~V3:用于表示傳感器的參數,用戶可根據傳感器屬性自行定義參數,權限為可讀寫。
⑦ 特殊參數:ECHO、TYPE、PN、PANID、CHANNEL。
● ECHO:用于檢測節點是否在線的指令,若在線則將發送的值進行回顯。例如,發送“{ECHO=test}”,若節點在線則回復“{ECHO=test}”。
● TYPE:表示節點類型,該信息包含了節點類別、節點類型、節點名稱,只能通過“?”來查詢當前值。TYPE的值由5個字節表示(ASCII碼),例如,1 1 001,第1字節表示節點類別(1表示ZigBee、2表示RF433、3表示Wi-Fi、4表示BLE、5表示IPv6、9表示其他);第2字節表示節點類型(0表示協調器、1表示路由節點、2表示終端節點);第3~5字節表示節點名稱(編碼由開發者自定義)。
● PN(僅針對ZigBee、IEEE 802.15.4 IPv6節點):表示上行節點地址和所有鄰居節點地址,只能通過“?”來查詢當前值。PN的值為上行節點地址和所有鄰居節點地址的組合,其中每4個字節表示一個節點地址后4位,第1個4字節為上行節點后4位,第2~n個4字節為其所有鄰居節點地址后4位。
● PANID:表示節點組網的ID,權限為可讀寫,此處PANID的值為十進制數,而底層代碼定義的PANID的值為十六進制數,需要自行轉換。例如,8200(十進制數)=0x2008(十六進制數),通過指令“{PANID=8200}”可將節點的PANID的值修改為0x2008。PANID的取值范圍為1~16383。
● CHANNEL:表示節點組網的通信通道,權限為可讀寫,此處CHANNEL的取值范圍為11~26(十進制數)。例如,通過指令“{CHANNEL=11}”可將節點的CHANNEL的值修改為11。
1.4.2 ZXBee數據通信協議參數定義
物聯網工程開發平臺部分傳感器的ZXBee數據通信協議如表1.1所示。
表1.1 部分傳感器的ZXBee數據通信協議
