本發(fā)明涉及物聯(lián)網(wǎng)領(lǐng)域,特別涉及一種基于精簡(jiǎn)物聯(lián)網(wǎng)通信協(xié)議的物聯(lián)網(wǎng)系統(tǒng)的通信方法。
背景技術(shù):
zigbee通信協(xié)議適應(yīng)無線傳感器的低花費(fèi)、低能量、高容錯(cuò)性等的要求。zigbee的基礎(chǔ)是ieee802.15.4。但ieee僅處理低級(jí)mac層和物理層協(xié)議,因此zigbee聯(lián)盟擴(kuò)展了ieee,對(duì)其網(wǎng)絡(luò)層協(xié)議和api進(jìn)行了標(biāo)準(zhǔn)化。zigbee是一種新興的短距離、低速率的無線網(wǎng)絡(luò)技術(shù),主要用于近距離無線連接。它有自己的協(xié)議標(biāo)準(zhǔn),在數(shù)千個(gè)微小的傳感器之間相互協(xié)調(diào)實(shí)現(xiàn)通信。在物聯(lián)網(wǎng)或智能家居系統(tǒng)中,目前zigbee通信協(xié)議產(chǎn)品較多,但是這個(gè)協(xié)議本身比較復(fù)雜,需要跑在操作系統(tǒng)上,導(dǎo)致無法做到真正的低功耗,另外zigbee協(xié)議一定需要協(xié)調(diào)器才能組網(wǎng)工作。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明要解決的技術(shù)問題在于,針對(duì)現(xiàn)有技術(shù)的上述缺陷,提供一種能節(jié)省發(fā)送及處理時(shí)間、可靠性較好、工作穩(wěn)定性較高、有效降低應(yīng)用過程中重碼的問題、能實(shí)現(xiàn)低功耗的基于精簡(jiǎn)物聯(lián)網(wǎng)通信協(xié)議的物聯(lián)網(wǎng)系統(tǒng)的通信方法。
本發(fā)明解決其技術(shù)問題所采用的技術(shù)方案是:構(gòu)造一種基于精簡(jiǎn)物聯(lián)網(wǎng)通信協(xié)議的物聯(lián)網(wǎng)系統(tǒng)的通信方法,應(yīng)用于物聯(lián)網(wǎng)系統(tǒng),所述物聯(lián)網(wǎng)系統(tǒng)包括移動(dòng)終端的app、網(wǎng)關(guān)、協(xié)調(diào)器、多個(gè)路由器和多個(gè)終端設(shè)備,所述協(xié)調(diào)器通過uart接口與所述網(wǎng)關(guān)連接,所述協(xié)調(diào)器還直接與多個(gè)所述路由器和多個(gè)所述終端設(shè)備連接,所述協(xié)調(diào)器還通過所述路由器與其他的所述路由器或終端設(shè)備連接,所述方法包括如下步驟:
a)所述移動(dòng)終端的app依次經(jīng)過所述網(wǎng)關(guān)和uart接口給所述協(xié)調(diào)器發(fā)送符合at指令集數(shù)據(jù)格式的網(wǎng)絡(luò)id分配指令,給所述協(xié)調(diào)器分配一個(gè)網(wǎng)絡(luò)id;所述at指令集數(shù)據(jù)格式包括開始字符、地址、分隔符、命令符、數(shù)值和結(jié)束符,所述開始字符為=,所述結(jié)束符為#,所述網(wǎng)絡(luò)id為9位十進(jìn)制數(shù),轉(zhuǎn)換成十六進(jìn)制數(shù)后則為4字節(jié)的數(shù)據(jù),所述網(wǎng)絡(luò)id的高6位數(shù)字代表密碼,所述網(wǎng)絡(luò)id的低3位代表無線物理信道,所述網(wǎng)絡(luò)id是能修改的;
b)所述移動(dòng)終端的app依次經(jīng)過所述網(wǎng)關(guān)和uart接口給所述協(xié)調(diào)器發(fā)送符合at指令集數(shù)據(jù)格式的注冊(cè)啟動(dòng)命令;
c)長(zhǎng)按所述終端設(shè)備的任何按鍵,所述終端設(shè)備按約定的無線物理信道發(fā)送上報(bào)數(shù)據(jù)給所述協(xié)調(diào)器,所述協(xié)調(diào)器收到所述上報(bào)數(shù)據(jù)后將所述終端設(shè)備添加到所述注冊(cè)表,然后發(fā)送當(dāng)前網(wǎng)絡(luò)id給所述終端設(shè)備,通知所述終端設(shè)備修改網(wǎng)絡(luò)id,并退出注冊(cè)模式;
d)所述終端設(shè)備收到所述當(dāng)前網(wǎng)絡(luò)id后按照所述當(dāng)前網(wǎng)絡(luò)id和所述當(dāng)前網(wǎng)絡(luò)id中所包含的無線物理信道工作;
e)重復(fù)上述步驟b)至步驟d)的注冊(cè)過程,直到所有的所述終端設(shè)備注冊(cè)完成;
f)當(dāng)所述協(xié)調(diào)器無法直接控制所述終端設(shè)備時(shí),所述移動(dòng)終端的app給對(duì)應(yīng)的所述路由器發(fā)送包含節(jié)點(diǎn)id的路由改寫命令,并使對(duì)應(yīng)的所述路由器進(jìn)入路由改寫狀態(tài),然后發(fā)送包含設(shè)備id的命令,把所有需要經(jīng)過路由的終端設(shè)備添加后,給對(duì)應(yīng)的所述路由器發(fā)送包含所述節(jié)點(diǎn)id的結(jié)束命令,并使對(duì)應(yīng)的所述路由器結(jié)束改寫過程;所述設(shè)備id為9位十進(jìn)制數(shù),轉(zhuǎn)換成十六進(jìn)制后為4字節(jié)的數(shù)據(jù),所述設(shè)備id是出廠固定的,所述設(shè)備id至少包括類型、模式和參數(shù),所述設(shè)備id以開頭的數(shù)字表示大類型,其后的數(shù)字表示小類型;所述網(wǎng)絡(luò)id與所述設(shè)備id組成一個(gè)8字節(jié)的地址;
g)所述移動(dòng)終端的app依次通過所述網(wǎng)關(guān)和uart接口將符合所述at指令集數(shù)據(jù)格式的控制指令發(fā)送給所述協(xié)調(diào)器,所述協(xié)調(diào)器將所述控制指令轉(zhuǎn)換成物理層數(shù)據(jù)并發(fā)到空中;所述物理層數(shù)據(jù)包括4字節(jié)的引導(dǎo)碼、4個(gè)字節(jié)的同步碼、1個(gè)字節(jié)的數(shù)據(jù)長(zhǎng)度、1個(gè)字節(jié)的包序列號(hào)、n字節(jié)的mac層數(shù)據(jù)和2個(gè)字節(jié)的crc校驗(yàn)位,所述n為大于1的整數(shù);所述mac層數(shù)據(jù)包括幀頭、網(wǎng)絡(luò)id、數(shù)據(jù)格式、所述設(shè)備id、操作命令和數(shù)值;
h)所述終端設(shè)備收到所述物理層數(shù)據(jù)后,判斷所述物理層數(shù)據(jù)中的mac層數(shù)據(jù)中所包含的設(shè)備id是否是自己的,如是,所述終端設(shè)備按照所述mac層數(shù)據(jù)中所包含的操作命令執(zhí)行相應(yīng)的操作,同時(shí)發(fā)送回應(yīng)數(shù)據(jù)包給所述協(xié)調(diào)器,所述協(xié)調(diào)器收到所述回應(yīng)數(shù)據(jù)包后將轉(zhuǎn)換成符合所述at指令集數(shù)據(jù)格式的數(shù)據(jù),并從所述uart接口輸出;否則,丟棄所述物理層數(shù)據(jù)。
在本發(fā)明所述的基于精簡(jiǎn)物聯(lián)網(wǎng)通信協(xié)議的物聯(lián)網(wǎng)系統(tǒng)的通信方法中,所述網(wǎng)絡(luò)id分配指令為=xxxxxxyyy,id#命令,所述注冊(cè)啟動(dòng)命令為=999999999,r1#命令。
在本發(fā)明所述的基于精簡(jiǎn)物聯(lián)網(wǎng)通信協(xié)議的物聯(lián)網(wǎng)系統(tǒng)的通信方法中,每個(gè)所述協(xié)調(diào)器的網(wǎng)絡(luò)id用所述移動(dòng)終端的app生成或由所述網(wǎng)關(guān)的mac地址來生成,網(wǎng)絡(luò)id相同的終端設(shè)備能進(jìn)行通信。
在本發(fā)明所述的基于精簡(jiǎn)物聯(lián)網(wǎng)通信協(xié)議的物聯(lián)網(wǎng)系統(tǒng)的通信方法中,所述at指令集中的命令為大寫字母或小寫字母,所述大寫字母代表是下行數(shù)據(jù),所述小寫字母代表是上行數(shù)據(jù),0-64作為保留,所述at指令集中的數(shù)值為0-127,經(jīng)過a2r轉(zhuǎn)換后為0x80-0xff。
在本發(fā)明所述的基于精簡(jiǎn)物聯(lián)網(wǎng)通信協(xié)議的物聯(lián)網(wǎng)系統(tǒng)的通信方法中,所述終端設(shè)備通過注冊(cè)的形式獲得所述網(wǎng)絡(luò)id,所述協(xié)調(diào)器先進(jìn)入注冊(cè)模式,等待所述終端設(shè)備進(jìn)行注冊(cè),所述終端設(shè)備注冊(cè)后,所述協(xié)調(diào)器存放設(shè)備注冊(cè)表,注冊(cè)期間所述協(xié)調(diào)器與所述終端設(shè)備之間采用約定的無線物理信道。
在本發(fā)明所述的基于精簡(jiǎn)物聯(lián)網(wǎng)通信協(xié)議的物聯(lián)網(wǎng)系統(tǒng)的通信方法中,所述同步碼的字節(jié)長(zhǎng)度為所述mac層數(shù)據(jù)長(zhǎng)度加上1個(gè)字節(jié)的包序列號(hào)。
在本發(fā)明所述的基于精簡(jiǎn)物聯(lián)網(wǎng)通信協(xié)議的物聯(lián)網(wǎng)系統(tǒng)的通信方法中,所述路由器的路由功能能關(guān)閉,需要路由功能時(shí),事先由所述移動(dòng)終端的app選取后,依次經(jīng)過所述網(wǎng)關(guān)和協(xié)調(diào)器后將路由功能寫入到相應(yīng)的所述路由器。
在本發(fā)明所述的基于精簡(jiǎn)物聯(lián)網(wǎng)通信協(xié)議的物聯(lián)網(wǎng)系統(tǒng)的通信方法中,按照所述設(shè)備id為所述終端設(shè)備進(jìn)行地址的分配。
在本發(fā)明所述的基于精簡(jiǎn)物聯(lián)網(wǎng)通信協(xié)議的物聯(lián)網(wǎng)系統(tǒng)的通信方法中,所述協(xié)調(diào)器發(fā)出的下行命令中的設(shè)備id是目標(biāo)終端設(shè)備的id,所述終端設(shè)備主動(dòng)發(fā)送或響應(yīng)協(xié)調(diào)器命令時(shí)的設(shè)備id是源地址。
實(shí)施本發(fā)明的基于精簡(jiǎn)物聯(lián)網(wǎng)通信協(xié)議的物聯(lián)網(wǎng)系統(tǒng)的通信方法,具有以下有益效果:由采用精簡(jiǎn)的at指令集,將傳統(tǒng)at指令的開頭字符“at”改為“=”,將回車換行字符改為“#”,這樣就能節(jié)省發(fā)送以及處理時(shí)間,由于編碼較短,在低功耗無線喚醒(wor)的系統(tǒng)中可以明顯降低功耗,網(wǎng)絡(luò)id為9位十進(jìn)制數(shù),轉(zhuǎn)換成16進(jìn)制數(shù)后則為4個(gè)字節(jié),網(wǎng)絡(luò)id可修改,網(wǎng)絡(luò)id的高6位數(shù)字代表密碼,低3位代表無線物理信道,由于有256個(gè)無線物理信道,采用人為選擇信道的方式,其可靠性較好,工作穩(wěn)定性較高,網(wǎng)絡(luò)id與設(shè)備id組成一個(gè)8字節(jié)的地址,網(wǎng)絡(luò)id是可以由用戶修改的,設(shè)備id是出廠固定的,不可修改,采用這種方法可以有效降低應(yīng)用過程中重碼的問題,因此能節(jié)省發(fā)送及處理時(shí)間、可靠性較好、工作穩(wěn)定性較高、有效降低應(yīng)用過程中重碼的問題、能實(shí)現(xiàn)低功耗。
附圖說明
為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1為本發(fā)明基于精簡(jiǎn)物聯(lián)網(wǎng)通信協(xié)議的物聯(lián)網(wǎng)系統(tǒng)的通信方法一個(gè)實(shí)施例中的流程圖;
圖2為所述實(shí)施例中對(duì)稱網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)的示意圖;
圖3為所述實(shí)施例中at指令集轉(zhuǎn)換成十六進(jìn)制數(shù)據(jù)的示意圖;
圖4為所述實(shí)施例中at指令集數(shù)據(jù)格式圖;
圖5為所述實(shí)施例中at指令集轉(zhuǎn)mac層數(shù)據(jù)的示意圖;
圖6為所述實(shí)施例中mac數(shù)據(jù)轉(zhuǎn)at指令集的示意圖;
圖7為所述實(shí)施例中物理層數(shù)據(jù)的數(shù)據(jù)格式圖。
具體實(shí)施方式
下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
在本發(fā)明基于精簡(jiǎn)物聯(lián)網(wǎng)通信協(xié)議的物聯(lián)網(wǎng)系統(tǒng)的通信方法實(shí)施例中,該基于精簡(jiǎn)物聯(lián)網(wǎng)通信協(xié)議的物聯(lián)網(wǎng)系統(tǒng)的通信方法應(yīng)用于物聯(lián)網(wǎng)系統(tǒng),該物聯(lián)網(wǎng)系統(tǒng)包括移動(dòng)終端的app、網(wǎng)關(guān)、協(xié)調(diào)器、多個(gè)路由器和多個(gè)終端設(shè)備,協(xié)調(diào)器通過uart接口與網(wǎng)關(guān)連接,協(xié)調(diào)器還直接與多個(gè)路由器和多個(gè)終端設(shè)備連接,協(xié)調(diào)器還通過路由器與其他的路由器或終端設(shè)備連接。該物聯(lián)網(wǎng)系統(tǒng)采用中對(duì)稱網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu),該對(duì)稱網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)的示意圖如圖2所示,從圖2中可以看出,每個(gè)系統(tǒng)只有一個(gè)協(xié)調(diào)器,協(xié)調(diào)器與網(wǎng)關(guān)(具體是網(wǎng)關(guān)的mcu)通過uart接口連接,協(xié)調(diào)器負(fù)責(zé)建立網(wǎng)絡(luò),并負(fù)責(zé)數(shù)據(jù)包的轉(zhuǎn)換和轉(zhuǎn)發(fā)。協(xié)調(diào)器內(nèi)部設(shè)有注冊(cè)表(即設(shè)備表),注冊(cè)表在注冊(cè)時(shí)建立。值得一提的是,該移動(dòng)終端的app的名稱可以為物聯(lián)通信。
路由器是具有數(shù)據(jù)轉(zhuǎn)發(fā)功能的節(jié)點(diǎn),凡是帶電源的節(jié)點(diǎn)都可以作為路由器(路由節(jié)點(diǎn))。端節(jié)點(diǎn)是電池供電的設(shè)備,不具備路由功能。為了減低網(wǎng)絡(luò)延時(shí),只采用一級(jí)轉(zhuǎn)發(fā)。路由器的路由功能可以關(guān)閉,需要路由功能時(shí),需要路由的節(jié)點(diǎn)需要事先寫入路由器,這個(gè)過程一般是在移動(dòng)終端的app上選取后,依次經(jīng)過網(wǎng)關(guān)和協(xié)調(diào)器后將路由功能寫入到相應(yīng)的路由器。
本實(shí)施例中,該基于精簡(jiǎn)物聯(lián)網(wǎng)通信協(xié)議的物聯(lián)網(wǎng)系統(tǒng)的通信方法的流程圖如圖1所示。圖1中,該基于精簡(jiǎn)物聯(lián)網(wǎng)通信協(xié)議的物聯(lián)網(wǎng)系統(tǒng)的通信方法包括如下步驟:
步驟s01移動(dòng)終端的app依次經(jīng)過網(wǎng)關(guān)和uart接口給協(xié)調(diào)器發(fā)送符合at指令集數(shù)據(jù)格式的網(wǎng)絡(luò)id分配指令,給協(xié)調(diào)器分配一個(gè)網(wǎng)絡(luò)id:本步驟中,移動(dòng)終端的app依次經(jīng)過網(wǎng)關(guān)和uart接口給協(xié)調(diào)器發(fā)送符合at指令集數(shù)據(jù)格式的網(wǎng)絡(luò)id分配指令(例如:=xxxxxxyyy,id#命令),并給協(xié)調(diào)器分配一個(gè)網(wǎng)絡(luò)id。上述at指令集數(shù)據(jù)格式圖如圖4所示,圖4中,該at指令集數(shù)據(jù)格式包括開始字符、地址、分隔符、命令符、數(shù)值和結(jié)束符,開始字符為=,結(jié)束符為#,該精簡(jiǎn)物聯(lián)網(wǎng)通信協(xié)議采用精簡(jiǎn)的at指令集,將傳統(tǒng)at指令的開頭字符“at”改為“=”,將回車換行字符改為“#”,這樣就節(jié)省了發(fā)送以及處理時(shí)間。這種at指令可以支持80%以上的物聯(lián)網(wǎng)設(shè)備,可以參見后面描述的表1(稍后會(huì)對(duì)表1進(jìn)行描述),這樣可以大大簡(jiǎn)化開發(fā)難度。例如:移動(dòng)終端的app通過uart接口給協(xié)調(diào)器發(fā)送=xxxxxxyyy,id#命令(例如:=641223170,id#),給協(xié)調(diào)器分配一個(gè)網(wǎng)絡(luò)id。要求與物聯(lián)網(wǎng)系統(tǒng)中的其他協(xié)調(diào)器的網(wǎng)絡(luò)id不同,在近距離范圍的無線通信信道要不同。為了安全性,網(wǎng)絡(luò)id的分派原則是盡量隨機(jī),離散。
值得一提的是,本實(shí)施例中,網(wǎng)絡(luò)id為9位十進(jìn)制數(shù)xxxxxxyyy,轉(zhuǎn)換成十六進(jìn)制數(shù)后則為4字節(jié)的數(shù)據(jù),網(wǎng)絡(luò)id的高6位數(shù)字xxxxxx可以任意定義,代表密碼,網(wǎng)絡(luò)id的低3位yyy為0-255,代表無線物理信道,由于有256個(gè)無線物理信道,采用人為選擇信道的方式,這個(gè)方式的可靠性較好,工作較為穩(wěn)定,本發(fā)明與zigbee采取能量掃描來確定信道的方法不同。網(wǎng)絡(luò)id的這種定義,使得密碼與無線通信信道結(jié)合到一起,并可以用一個(gè)4字節(jié)的長(zhǎng)整數(shù)來表示。每個(gè)協(xié)調(diào)器的網(wǎng)絡(luò)id用移動(dòng)終端的app生成或由網(wǎng)關(guān)的mac地址來生成,只有網(wǎng)絡(luò)id相同的終端設(shè)備才能通信。值得的一提的是,網(wǎng)絡(luò)id是能修改的。
步驟s02移動(dòng)終端的app依次經(jīng)過網(wǎng)關(guān)和uart接口給協(xié)調(diào)器發(fā)送符合at指令集數(shù)據(jù)格式的注冊(cè)啟動(dòng)命令:本步驟中,移動(dòng)終端的app依次經(jīng)過網(wǎng)關(guān)和uart接口給協(xié)調(diào)器發(fā)送符合at指令集數(shù)據(jù)格式的注冊(cè)啟動(dòng)命令,注冊(cè)啟動(dòng)命令為=999999999,r1#命令。
步驟s03長(zhǎng)按終端設(shè)備的任何按鍵,終端設(shè)備按約定的無線物理信道發(fā)送上報(bào)數(shù)據(jù)給協(xié)調(diào)器,協(xié)調(diào)器收到上報(bào)數(shù)據(jù)后將終端設(shè)備添加到注冊(cè)表,然后發(fā)送當(dāng)前網(wǎng)絡(luò)id給終端設(shè)備,通知終端設(shè)備修改網(wǎng)絡(luò)id,并退出注冊(cè)模式:本步驟中,長(zhǎng)按終端設(shè)備的任何按鍵,終端設(shè)備按約定的無線物理信道發(fā)送上報(bào)數(shù)據(jù)給協(xié)調(diào)器,協(xié)調(diào)器收到上報(bào)數(shù)據(jù)后將終端設(shè)備添加到注冊(cè)表,然后發(fā)送當(dāng)前網(wǎng)絡(luò)id給終端設(shè)備,通知終端設(shè)備修改網(wǎng)絡(luò)id,并退出注冊(cè)模式。
步驟s04終端設(shè)備收到當(dāng)前網(wǎng)絡(luò)id后按照當(dāng)前網(wǎng)絡(luò)id和當(dāng)前網(wǎng)絡(luò)id中所包含的無線物理信道工作:本步驟中,終端設(shè)備收到當(dāng)前網(wǎng)絡(luò)id后,按照當(dāng)前網(wǎng)絡(luò)id和當(dāng)前網(wǎng)絡(luò)id中所包含的無線物理信道進(jìn)行工作。
步驟s05重復(fù)上述步驟s02至步驟s04的注冊(cè)過程,直到所有的終端設(shè)備注冊(cè)完成:本步驟中,重復(fù)上述步驟s02至步驟s04的注冊(cè)過程,直到所有的終端設(shè)備注冊(cè)完成。
步驟s06當(dāng)協(xié)調(diào)器無法直接控制終端設(shè)備時(shí),移動(dòng)終端的app給對(duì)應(yīng)的路由器發(fā)送包含節(jié)點(diǎn)id的路由改寫命令,并使對(duì)應(yīng)的路由器進(jìn)入路由改寫狀態(tài),然后發(fā)送包含設(shè)備id的命令,把所有需要經(jīng)過路由的終端設(shè)備添加后,給對(duì)應(yīng)的路由器發(fā)送包含節(jié)點(diǎn)id的結(jié)束命令,并使對(duì)應(yīng)的路由器結(jié)束改寫過程:本步驟中,當(dāng)協(xié)調(diào)器無法直接控制終端設(shè)備時(shí),移動(dòng)終端的app給對(duì)應(yīng)的路由器發(fā)送包含節(jié)點(diǎn)id的路由改寫命令,并使對(duì)應(yīng)的路由器進(jìn)入路由改寫狀態(tài),然后發(fā)送包含設(shè)備id的命令,把所有需要經(jīng)過路由的終端設(shè)備添加后,給對(duì)應(yīng)的路由器發(fā)送包含節(jié)點(diǎn)id的結(jié)束命令,并使對(duì)應(yīng)的路由器結(jié)束改寫過程。假設(shè)協(xié)調(diào)器與設(shè)備id為730000222的終端設(shè)備較遠(yuǎn)而無法直接控制,需要節(jié)點(diǎn)id為730000111的路由器,則需要一個(gè)操作流程將730000222這個(gè)設(shè)備id寫入到730000111的路由表。具體過程為:移動(dòng)終端的app先給路由器發(fā)=730000111,zy#命令,進(jìn)入路由改寫狀態(tài),然后發(fā)送=730000222,wa#命令(如果要移除則給路由器發(fā)送=730000222,wm#命令),把所有需要經(jīng)過路由的路由器添加后,給路由器發(fā)送=730000111,zx#命令結(jié)束改寫過程。
值得一提的是,每個(gè)終端上設(shè)備均有一個(gè)設(shè)備id,設(shè)備id為9位十進(jìn)制數(shù),轉(zhuǎn)換成十六進(jìn)制后為4字節(jié)的數(shù)據(jù),設(shè)備id是出廠固定的,不可修改,設(shè)備id至少包括類型、模式和參數(shù),設(shè)備id以開頭的數(shù)字表示大類型,其后的數(shù)字表示小類型;也就是說,不同類型的終端設(shè)備以開頭的數(shù)字來區(qū)分,協(xié)調(diào)器在終端設(shè)備注冊(cè)后,獲取終端設(shè)備的設(shè)備id,并保存在注冊(cè)表。
傳統(tǒng)的通信協(xié)議包括源設(shè)備地址與目標(biāo)設(shè)備地址,本發(fā)明的精簡(jiǎn)物聯(lián)網(wǎng)通信協(xié)議經(jīng)過簡(jiǎn)化,不同時(shí)使用這兩個(gè)地址,只用一個(gè)地址,當(dāng)數(shù)據(jù)下行時(shí)的地址是目標(biāo)設(shè)備地址,而數(shù)據(jù)上行時(shí)的地址是源設(shè)備的地址。也就是說,協(xié)調(diào)器發(fā)出的下行命令中的設(shè)備id是目標(biāo)終端設(shè)備的id,終端設(shè)備主動(dòng)發(fā)送或響應(yīng)協(xié)調(diào)器命令時(shí)的設(shè)備id是源地址。本實(shí)施例中,就是按照設(shè)備id為終端設(shè)備進(jìn)行地址分配的。終端設(shè)備的地址分配表如表1所示,表1中,該精簡(jiǎn)物聯(lián)網(wǎng)通信協(xié)議針對(duì)智能家居與物聯(lián)網(wǎng)給各類設(shè)備做了地址分配,這樣只需要設(shè)備id就能識(shí)別出設(shè)備類型與主要參數(shù)。表1的內(nèi)容具體如下:
表1
本實(shí)施例中,網(wǎng)絡(luò)id與設(shè)備id組成一個(gè)8字節(jié)的地址。網(wǎng)絡(luò)id是可以由用戶修改的,設(shè)備id是出廠固定的,不可修改。采用這種方法可以有效降低應(yīng)用過程中重碼的問題。即使設(shè)備id相同,只要網(wǎng)絡(luò)id不同,也不會(huì)造成誤控。
步驟s07移動(dòng)終端的app依次通過網(wǎng)關(guān)和uart接口將符合at指令集數(shù)據(jù)格式的控制指令發(fā)送給協(xié)調(diào)器,協(xié)調(diào)器將控制指令轉(zhuǎn)換成物理層數(shù)據(jù)并發(fā)到空中:本步驟中,當(dāng)終端設(shè)備注冊(cè)完成后,通過協(xié)調(diào)器就可以控制終端設(shè)備了。具體的,移動(dòng)終端的app依次通過網(wǎng)關(guān)和uart接口將符合at指令集數(shù)據(jù)格式的控制指令發(fā)送給協(xié)調(diào)器,協(xié)調(diào)器將控制指令轉(zhuǎn)換成物理層數(shù)據(jù)并發(fā)到空中,圖3為本實(shí)施例中at指令集轉(zhuǎn)換成十六進(jìn)制數(shù)據(jù)的示意圖,例如:當(dāng)要控制一個(gè)三位開關(guān),移動(dòng)終端的app發(fā)送=735000133,m7#命令給協(xié)調(diào)器,協(xié)調(diào)器將=735000133,m7#命令轉(zhuǎn)換成物理層數(shù)據(jù)(空中數(shù)據(jù)包)的格式為feaaca5b07544536cf2b4d87,然后發(fā)送到空中。
圖7為本實(shí)施例中物理層數(shù)據(jù)的數(shù)據(jù)格式圖,圖7中,該物理層數(shù)據(jù)包括4字節(jié)的引導(dǎo)碼、4個(gè)字節(jié)的同步碼、1個(gè)字節(jié)的數(shù)據(jù)長(zhǎng)度、1個(gè)字節(jié)的包序列號(hào)、n字節(jié)的mac層數(shù)據(jù)和2個(gè)字節(jié)的crc校驗(yàn)位,n為大于1的整數(shù);其中,mac層數(shù)據(jù)包括幀頭、網(wǎng)絡(luò)id、數(shù)據(jù)格式、設(shè)備id、操作命令和數(shù)值。該精簡(jiǎn)物聯(lián)網(wǎng)通信協(xié)議的特點(diǎn)是采用at指令集通信,經(jīng)過轉(zhuǎn)換成mac層數(shù)據(jù)的長(zhǎng)度僅有12個(gè)字節(jié),這種at指令集可以支持80%以上的物聯(lián)網(wǎng)設(shè)備,可以大大簡(jiǎn)化開發(fā)難度。由于編碼較短,在低功耗無線喚醒(wor)的系統(tǒng)中可以明顯降低功耗,經(jīng)過實(shí)際測(cè)試,本發(fā)明的功耗只有zigbee功耗的五分之一。
在物理層,空中速率可以自由定義,優(yōu)選使用10k速率。同步碼可以自由定義,同步碼的字節(jié)長(zhǎng)度為所述mac層數(shù)據(jù)長(zhǎng)度加上1個(gè)字節(jié)的包序列號(hào)。當(dāng)每發(fā)送1次,包序列號(hào)自動(dòng)加1,在0-255之間循環(huán)。crc校驗(yàn)位的多項(xiàng)式可以選擇crc-ccitt或crc-ibm,如果硬件不支持則采取軟件計(jì)算。
值得一提的是,本實(shí)施例中,協(xié)調(diào)器在收到at指令集時(shí),要轉(zhuǎn)換成mac層數(shù)據(jù)并以rf方式發(fā)送,請(qǐng)參見圖5。反之,接收到mac層的rf數(shù)據(jù),則將其轉(zhuǎn)化成at指令集并從uart接口輸出,請(qǐng)參見圖6。
步驟s08終端設(shè)備收到物理層數(shù)據(jù)后,判斷物理層數(shù)據(jù)中的mac層數(shù)據(jù)中所包含的設(shè)備id是否是自己的:本步驟中,終端設(shè)備收到物理層數(shù)據(jù)后,判斷物理層數(shù)據(jù)中的mac層數(shù)據(jù)中所包含的設(shè)備id是否是自己的,如果判斷的結(jié)果為是,則執(zhí)行步驟s09;否則,執(zhí)行步驟s10。
步驟s09終端設(shè)備按照mac層數(shù)據(jù)中所包含的操作命令執(zhí)行相應(yīng)的操作,同時(shí)發(fā)送回應(yīng)數(shù)據(jù)包給所述協(xié)調(diào)器,協(xié)調(diào)器收到回應(yīng)數(shù)據(jù)包后將轉(zhuǎn)換成符合at指令集數(shù)據(jù)格式的數(shù)據(jù),并從uart接口輸出:如果上述步驟s08的判斷結(jié)果為是,則執(zhí)行本步驟。本步驟中,終端設(shè)備按照mac層數(shù)據(jù)中所包含的操作命令執(zhí)行相應(yīng)的操作,同時(shí)發(fā)送回應(yīng)數(shù)據(jù)包給協(xié)調(diào)器,協(xié)調(diào)器收到回應(yīng)數(shù)據(jù)包后將轉(zhuǎn)換成符合at指令集數(shù)據(jù)格式的數(shù)據(jù),并從uart接口輸出。例如:將三個(gè)燈點(diǎn)亮,同時(shí)發(fā)送回應(yīng)數(shù)據(jù)包feaaca5b07544536cf2b6d87給協(xié)調(diào)器,協(xié)調(diào)器收到后將數(shù)據(jù)包轉(zhuǎn)換成at命令=735000133,m7#并從uart接口輸出。
步驟s10丟棄物理層數(shù)據(jù):如果上述步驟s08的判斷結(jié)果為否,則執(zhí)行本步驟。本步驟中,丟棄物理層數(shù)據(jù),進(jìn)行查表處理。本發(fā)明能節(jié)省發(fā)送及處理時(shí)間、可靠性較好、工作穩(wěn)定性較高、有效降低應(yīng)用過程中重碼的問題、能實(shí)現(xiàn)低功耗。
值得一提的,本實(shí)施例中,at指令集中的命令一般為大寫字母或小寫字母,大寫字母代表是下行數(shù)據(jù),小寫字母代表是上行數(shù)據(jù),0-64作為保留。at指令集中的數(shù)值為0-127,經(jīng)過a2r轉(zhuǎn)換后為0x80-0xff。在at指令集中,命令是1個(gè)字節(jié),數(shù)據(jù)也是1個(gè)字節(jié)。
本實(shí)施例中,終端設(shè)備通過注冊(cè)的形式獲得網(wǎng)絡(luò)id,協(xié)調(diào)器先進(jìn)入注冊(cè)模式,等待終端設(shè)備進(jìn)行注冊(cè),終端設(shè)備注冊(cè)后,協(xié)調(diào)器存放設(shè)備注冊(cè)表,只有注冊(cè)的終端設(shè)備才能控制。注冊(cè)期間,協(xié)調(diào)器與終端設(shè)備之間采用約定的無線物理信道,無線物理信道可以自由約定。
總之,本發(fā)明中的精簡(jiǎn)物聯(lián)網(wǎng)通信協(xié)議具有低功耗的特點(diǎn),在無協(xié)調(diào)器的情況下,終端設(shè)備之間可以對(duì)碼控制,該精簡(jiǎn)物聯(lián)網(wǎng)通信協(xié)議可以用在物聯(lián)網(wǎng)產(chǎn)品上,該精簡(jiǎn)物聯(lián)網(wǎng)通信協(xié)議可以命名為allgo協(xié)議。本發(fā)明能節(jié)省發(fā)送及處理時(shí)間、可靠性較好、工作穩(wěn)定性較高、有效降低應(yīng)用過程中重碼的問題、能實(shí)現(xiàn)低功耗。
以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。