通信類思維導(dǎo)圖(要求:在每次修改本協(xié)議時(shí)使用思維導(dǎo)圖進(jìn)行程序該CLASS是否被占用) 通信協(xié)議書寫規(guī)范總規(guī)范 1 防盜系列產(chǎn)品終端開發(fā)協(xié)議 2 產(chǎn)品功能說明: 2 通信格式如下: 3 具體協(xié)議如下: 3 資產(chǎn)管理手持端開發(fā)協(xié)議 3 概述: 3 串口指令說明: 3 無線指令說明: 4 具體協(xié)議如下: 4 AirConditionerControler 無線協(xié)議 5 概述: 6 具體協(xié)議如下: 6 1、0x01 SET_ORDER 配置無線指令 6 2、0x02 SET_PLANT 設(shè)置工作計(jì)劃 7 3、0x03 SET_TIME 設(shè)置系統(tǒng)時(shí)間時(shí)間 8 4、0x04 REPORT 報(bào)告人員運(yùn)動(dòng)情況 8 5、0x05 GUARD 資產(chǎn)看管 9
通信協(xié)議書寫規(guī)范總規(guī)范協(xié)議要求采用序列號(hào)+發(fā)送CLASS+發(fā)送ID號(hào)+接收CLASS+接收ID號(hào)+關(guān)鍵字+內(nèi)容長度+內(nèi)容+CRC校驗(yàn)+0x0d結(jié)束標(biāo)記的方式進(jìn)行,這樣在多中設(shè)備進(jìn)行通信時(shí)即使遇到相同的設(shè)備ID號(hào)也不會(huì)發(fā)生協(xié)議錯(cuò)亂的事件發(fā)生。 無線通信的地址要求統(tǒng)一,所有設(shè)備的通信地址為 :0x12,0x34,0x56,0x78,0x9a 通信頻率為40,通信地址0,空中速率為2Mbit用于公共設(shè)備配置、心跳、應(yīng)答使用,其他地址用于各的同類中進(jìn)行使用,在個(gè)獨(dú)立的系統(tǒng)內(nèi)部的通信也要求按照統(tǒng)一的關(guān)鍵字進(jìn)行編排,這樣便于管理和通信數(shù)據(jù)的穩(wěn)定。 配置類指令要求采用雙向應(yīng)答機(jī)制,自動(dòng)重發(fā),重發(fā)機(jī)制要求使用一個(gè)定時(shí)為1ms的定時(shí)器來保證整個(gè)系統(tǒng)通行的一致性。 各配置指令,要求每次最多要求最大允許數(shù)據(jù)長度為20bit; CLASS關(guān)鍵字在整個(gè)系統(tǒng)中都不允許重復(fù)且不予許為0x00,以保證每個(gè)設(shè)置在整個(gè)系統(tǒng)中都有一個(gè)唯一的通信地址。 所有設(shè)備的ID號(hào)禁止配置為0,并要求在程序中做數(shù)據(jù)檢測(cè)。 具備心跳類發(fā)送的設(shè)備要求最大每間隔5s發(fā)送一次心跳包,心跳包中要求提示自己下次喚醒的時(shí)間。心跳包的結(jié)構(gòu)如下:序列號(hào)+發(fā)送CLASS+發(fā)送ID+0x00+0x00+0x00+0x02+下次發(fā)送時(shí)間+故障標(biāo)志位+CRC+結(jié)束符。 不同類設(shè)備要求進(jìn)行兼容時(shí),要求在各自的無線協(xié)議解析部分在接收端的無線解析下的CLASS進(jìn)行添加已兼容不同的設(shè)備。這個(gè)可能會(huì)導(dǎo)致程序的空間變大,但是相對(duì)而言開發(fā)的統(tǒng)一性和兼容性會(huì)好一些,等做大后在進(jìn)行對(duì)不同設(shè)備的CLASS進(jìn)行統(tǒng)一標(biāo)準(zhǔn)。 關(guān)鍵字可以進(jìn)行自定義,基本原則是0x00-0x7f為主設(shè)備,0x80-0xff為從設(shè)備的應(yīng)答。 備注:本文中所有紅色標(biāo)記協(xié)議關(guān)鍵字都要求采用應(yīng)答雙向機(jī)制來進(jìn)行數(shù)據(jù)確認(rèn)。 研發(fā)部 2014年4月3日無線樓道開發(fā)協(xié)議 2014年4月7日14:24:24 概述: 本協(xié)議為節(jié)能無線樓道開發(fā)協(xié)議,用于無線樓道的配置任務(wù)和檢修任務(wù)。主要實(shí)現(xiàn)無線樓道的延時(shí)時(shí)間、開啟條件、工作模式的配置的配置。內(nèi)部數(shù)據(jù)的通信采用通道地址1進(jìn)行,該系統(tǒng)內(nèi)的數(shù)據(jù)交換是無需進(jìn)行對(duì)外進(jìn)行設(shè)置的。 按照公司無線通信的約定,本設(shè)備的CLASS為0x04。
無線通信格式如下:
關(guān)鍵字 宏定義 解釋說明 0x01 SET 用于設(shè)置本機(jī)的運(yùn)行參數(shù) 0x02 INTERIM 用于臨時(shí)開啟本設(shè)備 應(yīng)答內(nèi)容為: 0x81 ACK 用于確認(rèn)已經(jīng)成功的接收配置指令
內(nèi)部通信規(guī)則: 通信通道為:1 通信地址為: 0x01,0x02,0x03,0x04,0x05 通信頻率為: 40 通信的格式為: 開燈原因: 0x01 表示本ID號(hào)是首次檢測(cè)到人體運(yùn)動(dòng)信息 0x02 表示本ID是因?yàn)樯衔?/font>ID號(hào)觸發(fā)后本設(shè)備才檢測(cè)到 0x03 表示本ID號(hào)是因?yàn)橄挛?/font>ID號(hào)觸發(fā)后本設(shè)備才檢測(cè)到 0x00 表示本設(shè)備ID號(hào)正常的內(nèi)部心跳通信。
防盜系列產(chǎn)品終端開發(fā)協(xié)議2014年4月7日09:24:19 產(chǎn)品功能說明:本產(chǎn)品采用NRF24LE1 Nordic8051 SOC 芯片,采用232紐扣電池供電,具備低壓報(bào)警功能。采用TEA 80位的加密算法及雙向確認(rèn)機(jī)制,以保證本卡不會(huì)被人復(fù)制。最大消失時(shí)間為3S,加密算法錯(cuò)誤將導(dǎo)致直接觸發(fā)報(bào)警。在一個(gè)系統(tǒng)中最大允許同時(shí)監(jiān)聽設(shè)備數(shù)據(jù)位8張。只要設(shè)備申請(qǐng)了監(jiān)聽功能,在沒有主動(dòng)撤銷的情況下設(shè)備丟失或者重啟都將引發(fā)報(bào)警。同時(shí)本卡在成功注冊(cè)后,在5s內(nèi)沒有接受到主機(jī)發(fā)送的心跳信息,將邀請(qǐng)以廣播方式在本公司所有無線產(chǎn)品中廣播被盜指令,便于在設(shè)備丟失后丟失物品。 概述: 本產(chǎn)品采用NRF24LE1作為終端RFID卡,采用乘法器來進(jìn)行數(shù)據(jù)的加密算法。因?yàn)椴捎脽o線通信方式,因此在按照本公司的無線通信規(guī)則,該設(shè)備CLASS分配為0x03。加密規(guī)則為:使用TEA加密算法進(jìn)行數(shù)據(jù)驗(yàn)證,加密的內(nèi)容為使用隨機(jī)數(shù)來產(chǎn)生明文,并且按照每次產(chǎn)生一次的方式來進(jìn)行逐步迭代明文,在申請(qǐng)開始時(shí),內(nèi)部存儲(chǔ)的明文統(tǒng)一為0x00,暗文的數(shù)據(jù)長度為10bit,明文長度為1位,即有效內(nèi)容長度為11位。在接收端對(duì)給設(shè)備的合法性進(jìn)行驗(yàn)證。該通信無需進(jìn)行自動(dòng)應(yīng)答。 備注:此處的序列號(hào)取值范圍為0-9,用于原消息密匙中需要替換的數(shù)據(jù)。該序列號(hào)的獲得要求按照對(duì)隨機(jī)數(shù)進(jìn)行%10的求于獲得。這樣即使被人監(jiān)聽也沒有辦法,因?yàn)楸O(jiān)聽者要么在設(shè)備一初始化的時(shí)候就開始監(jiān)聽,要么就要等待隨機(jī)數(shù)將0-9全部監(jiān)聽一篇后才有機(jī)會(huì)獲得10的明文數(shù)據(jù)。 通信格式如下:具體協(xié)議如下:關(guān)鍵字 宏定義 解釋說明 0x01 NET 用于向接收終端發(fā)送心跳信息 0x02 ENROLL 用于向接收終端注冊(cè)請(qǐng)求被監(jiān)控信息 0x03 LOGOUT 用于向接收終端撤銷被監(jiān)控信息 0x04 KEY 用于向本機(jī)寫入32位的加密密匙 0x05 POWER 低壓報(bào)警 0x06 ALARM 廣播發(fā)送被盜指令(包含4bit的設(shè)備ID號(hào)) 0x07 SET 用于設(shè)備本卡的設(shè)備ID號(hào) 備注:要求在注冊(cè)請(qǐng)求被監(jiān)控中,包含一個(gè)電池電量的狀態(tài)。
資產(chǎn)管理手持端開發(fā)協(xié)議2014年4月6日22:45:44 備注:暫時(shí)使用數(shù)碼管來進(jìn)行數(shù)據(jù)的顯示,后期要求采用5110顯示屏來進(jìn)行數(shù)據(jù)顯示 概述:本產(chǎn)品專門用于物流管理方向,用于在庫房中快速尋找到自己產(chǎn)品的數(shù)量和種類。 本產(chǎn)品具備具備雙按鍵,左鍵用于確認(rèn)操作,右鍵用于切換顯示內(nèi)容。確認(rèn)后將自動(dòng)轉(zhuǎn)入下一個(gè)需要搜索的目標(biāo),切換用于顯示搜索物品名稱/需要搜索的物品數(shù)量。 本產(chǎn)品具備無線通信能力,按照本公司無線分配規(guī)則,本產(chǎn)品所屬的CLASS為0x02。
串口指令說明:指令名稱 | | | | 用于查找?guī)齑嬷兴业奈锲访Q及數(shù)量 | SEARCH(回車) 返回值: N(名稱)Q(數(shù)量) NO 表示滿意該物品 | | 用于顯示庫存中所有產(chǎn)品的詳細(xì)數(shù)據(jù)包括各物品名稱及數(shù)量 | SHOW(回車) 返回值: Total = 2 N 001Q003 N003Q002 表示本庫存中物品種類有2中,名稱001中有貨物3件,名稱003中有2件 | | 用于向庫存中輸入一個(gè)新產(chǎn)品或向原有產(chǎn)品中添加等多數(shù)量 | IN001030(回車) 說明:表示向物品名稱為001的產(chǎn)品中添加30個(gè)產(chǎn)品 | | 用于向庫存中輸出一個(gè)產(chǎn)品及減少該產(chǎn)品在庫存中的數(shù)量 | OUT002030(回車) 說明:表示從物品名稱為002的產(chǎn)品種類中移除30件 返回值: N(名稱)Q(數(shù)量)
| | 從庫存中刪除一個(gè)產(chǎn)品種類及其數(shù)量 | DELETE003(回車) 說明:表示從庫存中刪除名稱為003的產(chǎn)品數(shù)據(jù) |
無線指令說明:具體協(xié)議如下:關(guān)鍵字 宏定義 解釋說明 0x01 DOWNLOARD 從主機(jī)下載需要查找的數(shù)據(jù)量總數(shù) 0x02 DOWNPACK 從主機(jī)下載詳細(xì)的數(shù)據(jù)內(nèi)容并且寫入到flash中 0x03 UPLOARD 本機(jī)向主機(jī)發(fā)送任務(wù)完成情況總數(shù) 0x04 UPPACK 本機(jī)向主機(jī)發(fā)送詳細(xì)的數(shù)據(jù)完成情況 0x05 SEARCH 本機(jī)向其他設(shè)備發(fā)送尋找物品指令 0x06 CHECK 本機(jī)向特定的設(shè)備發(fā)送盤點(diǎn)信息
應(yīng)答協(xié)議: 總述:對(duì)于關(guān)鍵字0x01-0x04只需要回答相應(yīng)的發(fā)送序列號(hào)即可。 0x05 0x06 要求接收端報(bào)告自己的詳細(xì)數(shù)據(jù)情況,具體內(nèi)容參考詳細(xì)說明! 關(guān)鍵字 宏定義 解釋說明 0x81 SEARCH_ACK 用于應(yīng)答搜索指令 備注: 僅自身包含該物品名稱的設(shè)備進(jìn)行應(yīng)答,應(yīng)答內(nèi)容僅為自身設(shè)備ID號(hào),自身外設(shè)提示設(shè)備需要自動(dòng)的開啟一段時(shí)間以便于人員快速發(fā)現(xiàn)該物品所在位置。 0x82 CHECK_ACK 用于應(yīng)答盤點(diǎn)指令 備注:該指令用于其他外設(shè)向本機(jī)發(fā)送自身所攜帶的全部內(nèi)容,發(fā)送內(nèi)容方式為:首先發(fā)送自己需要發(fā)送數(shù)據(jù)的大小,讓后等待對(duì)方應(yīng)答。在對(duì)方完成應(yīng)答后再發(fā)送下一包數(shù)據(jù)直至全部內(nèi)容發(fā)送完畢。
nrf24le1通信協(xié)議 2014年4月4日21:12:21 概述: 本通信協(xié)議用于nrf24le1在巡更、資產(chǎn)管理方向的使用,按照本公司的無線通信分配規(guī),本產(chǎn)品的CLASS為0x01。 無線通信協(xié)議格式: 序列號(hào)+發(fā)送CLASS+發(fā)送ID號(hào)+接收CLASS+接收ID號(hào)+關(guān)鍵字+內(nèi)容長度+內(nèi)容+CRC校驗(yàn)+0x0d結(jié)束標(biāo)記 備注: 具體指令說明如下:
串口指令說明: 概述: 本串口指令僅適用用本產(chǎn)品,要求嚴(yán)格按照串口指令說明進(jìn)行操作,否則將出現(xiàn)“cmd error”提示。 具體指令如下:(備注:所有串口指令均以回車鍵結(jié)束(0x0d)) 指令名稱 | | | | 用于測(cè)試串口是否正常返回值“uart ok” | | | 用于查看系統(tǒng)電壓情況是否高于2.3V,如果高于則返回H,否則返回L | | | 用于獲得通道6(P06)端電壓,放回值為D=2bit 16進(jìn)制數(shù),高位在前 | |
AirConditionerControler 無線協(xié)議 時(shí)間:2014年4月3日12:38:29 概述:本協(xié)議用于生產(chǎn)的AirConditionerControler設(shè)備無線配置及接口的通信規(guī)范。 協(xié)議格式: 本協(xié)議由協(xié)議序列號(hào)、設(shè)備ID號(hào)、設(shè)備權(quán)利、接收目標(biāo)ID、關(guān)鍵字、內(nèi)容長度、內(nèi)容、CRC校驗(yàn)和協(xié)議尾組成。 備注:協(xié)議總長度不得超過32bit 序列號(hào)——為發(fā)送者(sender)發(fā)送時(shí)自動(dòng)產(chǎn)生的信息,用于檢測(cè)是否出現(xiàn)丟包的情況; 設(shè)備ID號(hào)——在整個(gè)系統(tǒng)中該設(shè)備ID為唯一ID號(hào),用于彼此相互通信時(shí)進(jìn)行點(diǎn)對(duì)點(diǎn)交流使用; 接收目標(biāo)ID——接收者對(duì)比該ID號(hào),于自己的ID號(hào)相同者對(duì)協(xié)議進(jìn)行解析并對(duì)sender做出相應(yīng)的回答; 關(guān)鍵字——占用8bit,為通信協(xié)議的指令內(nèi)容,0x00-0x7f為下發(fā)協(xié)議(主機(jī)向從機(jī)發(fā)送為下發(fā)),0x80-0xff為上發(fā)發(fā)協(xié)議(從機(jī)向主機(jī)發(fā)送為下發(fā)),具體說明如下:
關(guān)鍵字 宏定義 解釋說明 0x01 SET_ORDER 設(shè)置運(yùn)行參數(shù) 0x02 SET_PLANT 設(shè)置運(yùn)行計(jì)劃 0x03 SET_TIME 設(shè)置系統(tǒng)時(shí)鐘 0x04 REPORT 報(bào)告人員運(yùn)動(dòng)情況 0x05 GUARD 資產(chǎn)看管
0x81 REPLAY_ORDER 應(yīng)答設(shè)置指令 0x82 REPLAY_PLANT 應(yīng)答運(yùn)行計(jì)劃 0x83 REPLAY_TIME 應(yīng)答系統(tǒng)時(shí)鐘
具體協(xié)議如下:1、0x01 SET_ORDER 配置無線指令說明:使用其他設(shè)備對(duì)本機(jī)器進(jìn)行無線配置運(yùn)行參數(shù) 具體配置內(nèi)容及格式如下: 0x01............................................................................序列號(hào) 0xff.......................................................................設(shè)備ID號(hào) 0x00.......................................................................接收目標(biāo)ID 0x01.................................................................關(guān)鍵字(SET_ORDER) 0x0e.......................................................................內(nèi)容長度 0x1c.......................................................................夏季高溫開啟值(28℃) 0x19.......................................................................夏季低溫關(guān)閉值(25℃) 0x11.......................................................................冬季高溫關(guān)閉值(17℃) 0x05.......................................................................冬季低溫開啟值(5℃) 0x07.......................................................................夏季時(shí)間(開始月份) 0x01.......................................................................夏季時(shí)間(開始日) 0x09.......................................................................夏季時(shí)間(結(jié)束月份) 0x1e.......................................................................夏季時(shí)間(結(jié)束日) 0x0c.......................................................................冬季時(shí)間(開始月份) 0x0c.......................................................................冬季時(shí)間(開始日) 0x02.......................................................................冬季時(shí)間(結(jié)束月份) 0x01.......................................................................冬季時(shí)間(結(jié)束日) 0x00.......................................................................運(yùn)行模式 0x0a.......................................................................延時(shí)時(shí)間(10min) 0x01...................................................................... CRC校驗(yàn)(此處CRC校驗(yàn)錯(cuò)誤) 0x0d.............................................................................協(xié)議尾 備注:1、運(yùn)行模式可分為4種,0x00 自動(dòng)模式,基于時(shí)間溫度運(yùn)行 0x01 強(qiáng)制開啟模式 0x02 強(qiáng)制關(guān)閉模式 0x03 自動(dòng)模式,基于時(shí)間 溫度 人運(yùn)行
2、0x02 SET_PLANT 設(shè)置工作計(jì)劃說明:該指令用于配制設(shè)備每天的有效工作時(shí)間段 0x01............................................................................序列號(hào) 0xff.......................................................................設(shè)備ID號(hào) 0x00.......................................................................接收目標(biāo)ID 0x02.................................................................關(guān)鍵字(SET_PLANT)
0x03.......................................................................內(nèi)容長度
0x03.......................................................................設(shè)置時(shí)間段次數(shù)(3)
0x08.......................................................................開啟時(shí)間(8點(diǎn)) 0x00.......................................................................開啟時(shí)間(0分) 0x09.......................................................................關(guān)閉時(shí)間(9點(diǎn)) 0x1e.......................................................................關(guān)閉時(shí)間(30點(diǎn))
0x0a.......................................................................開啟時(shí)間(10點(diǎn)) 0x00.......................................................................開啟時(shí)間(0分) 0x0c.......................................................................關(guān)閉時(shí)間(12點(diǎn)) 0x1e.......................................................................關(guān)閉時(shí)間(30點(diǎn))
0x0e.......................................................................開啟時(shí)間(14點(diǎn)) 0x00.......................................................................開啟時(shí)間(0分) 0x12.......................................................................關(guān)閉時(shí)間(18點(diǎn)) 0x1e.......................................................................關(guān)閉時(shí)間(30點(diǎn)) 0x1e.......................................................................關(guān)閉時(shí)間(30點(diǎn)) 0x1e.......................................................................CRC校驗(yàn) 0x0d.......................................................................結(jié)束標(biāo)記 備注:對(duì)多可支持7個(gè)時(shí)間段的配置
3、0x03 SET_TIME 設(shè)置系統(tǒng)時(shí)間時(shí)間說明:使用該指令可以校正系統(tǒng)時(shí)鐘。 0x01............................................................................序列號(hào) 0xff.......................................................................設(shè)備ID號(hào) 0x00.......................................................................接收目標(biāo)ID 0x03.................................................................關(guān)鍵字(SET_TIME) 0x06.................................................................內(nèi)容長度(6bit) 0x0e.......................................................................14年(對(duì)2000求余后的值) 0x04.......................................................................4月 0x03.......................................................................3號(hào) 0x0e.......................................................................15點(diǎn) 0x11.......................................................................17分 0x03.......................................................................03秒 0x03.......................................................................CRC校驗(yàn) 0x0d.......................................................................結(jié)束符
4、0x04 REPORT 報(bào)告人員運(yùn)動(dòng)情況說明:該指令用于提醒本機(jī)已經(jīng)成功檢測(cè)到一次人員運(yùn)動(dòng)情況,可以將設(shè)置的延時(shí)時(shí)間清零一次 0x01............................................................................序列號(hào) 0xff.......................................................................設(shè)備ID號(hào) 0x00.......................................................................接收目標(biāo)ID 0x04.................................................................關(guān)鍵字(REPORT) 0x00.................................................................內(nèi)容長度為0 0x00.................................................................CRC校驗(yàn) 0x0d.................................................................結(jié)束符
5、0x05 GUARD 資產(chǎn)看管說明:一旦啟動(dòng)該指令,則要求被看管設(shè)備在每間隔至多1s向本設(shè)備發(fā)送一條報(bào)告消息,如果沒有按時(shí)或者提前發(fā)送將會(huì)觸發(fā)本設(shè)備報(bào)警; 0x01............................................................................序列號(hào) 0xff.......................................................................設(shè)備ID號(hào) 0x00.......................................................................接收目標(biāo)ID 0x05.................................................................關(guān)鍵字(GUARD) 0x01.................................................................內(nèi)容長度為1 0x02.................................................................被看管設(shè)備ID號(hào) 0x00.................................................................CRC校驗(yàn) 0x0d.................................................................結(jié)束符
|