智能家居無(wú)線(xiàn)網(wǎng)絡(luò )通訊協(xié)議設計方案
無(wú)線(xiàn)通訊協(xié)議
智能家終端設備品種繁多,且功能不一,不同設備要進(jìn)行統一控制,必須對各種設備進(jìn)行抽象處理,提取它們的共同特征??梢园呀K端設備抽象成文件,在控制端分配一塊內存描述該設備當前狀態(tài),利用設備控制方法讀取或修改當前狀態(tài),控制方法可分為三類(lèi):文件讀?。≧ead),文件修改(Write),文件控制(Control)。
Read:讀設備文件操作,即對節點(diǎn)設備狀態(tài)掃描查詢(xún),程序設計API 如下:
void drv_lit_read(rxp_cmdreq req)以上為讀設備API 入口,參數req 為結構體指針,寫(xiě)、控制設備操作類(lèi)似。
Write:寫(xiě)設備文件操作,即對節點(diǎn)設備狀態(tài)修改,程序設計API 如下:
void drv_lit_write(rxp_cmdreq req)Control:控制設備文件操作,即對節點(diǎn)設備狀態(tài)的調節。程序設計API 如下:
void drv_lit_cnt(rxp_cmdreq req)并不是所有的文件都支持這三種控制方法,多數文件只支持前兩種控制方法,下文以燈控設備為例。
3.1 通訊協(xié)議
無(wú)線(xiàn)射頻模塊nRF24l01 對應收發(fā)模式的數據有效負載最大為32 個(gè)字節,該數據包作為一幀數據,其中可分成三類(lèi)數據:驅動(dòng)接口數據,記錄控制數據以及記錄數據,輸入幀與輸出幀數據類(lèi)型相同。數據格式如表1.
表1 幀數據格式
?。?)驅動(dòng)接口數據。
Dest:接收端地址,1 字節表示,屬性值從0-255,可以表示256 個(gè)節點(diǎn)地址,滿(mǎn)足多數智能家居的節點(diǎn)資源。
Src:發(fā)送端地址,1 字節表示,與Dest 意義相同。
Cmdid:節點(diǎn)命令碼,1 字節表示,如上文表示,共有三種類(lèi)型:0x01,表示讀命令(read);0x02,表示寫(xiě)命令(write);0x03,表示控制命令(control)。
節點(diǎn)即對應從控制器編號。
Fileid:文件標志符,1 字節表示,即節點(diǎn)地址上對應的設備號,最大支持0x00-0xFF 256 個(gè)文件。
?。?)記錄控制數據。
Result:操作結果碼,1 字節表示,當有數據返回時(shí),要求填寫(xiě)該字節。0x00,操作成功;0x10,非法節點(diǎn);0x11,非法文件標識符;0x12,非法初始記錄值;0x13,非法記錄。0xFF,默認無(wú)效值。
Start:記錄開(kāi)始值,1 字節表示,當有多條記錄操作時(shí),該值即對應的記錄序。
Len:記錄長(cháng)度,1 字節表示,當作為輸入數據時(shí),表示記錄操作的長(cháng)度,如果Len 值大于當前節點(diǎn)的最大記錄長(cháng)度,則取當前節點(diǎn)記錄長(cháng)度最大值;當作為輸出數據時(shí),表示當前節點(diǎn)操作的記錄長(cháng)度。
?。?)記錄數據Records:記錄數據緩沖,緩沖區達25 個(gè)字節。
該緩沖區可存放多條記錄,記錄格式如表2,每條記錄字節長(cháng)度不一,一般在3-5 個(gè)字節左右,最多能存放8 條記錄。
表2 記錄數據格式
該Len 值與記錄控制數據中的Len 值意義不同,表示該條記錄的字節長(cháng)度,其中并不包含本身字節長(cháng)度,1 個(gè)字節長(cháng)度;Opt 值為保留字節,一般無(wú)意義,控制命令與該字節相關(guān),1 個(gè)字節度;Content 為設備文件的記錄值,記錄字節長(cháng)度不定,一般1-2 字節長(cháng)。
3.2 協(xié)議擴展與特點(diǎn)
地址資源,單字節的Dest 與Src 地址分配對于普通的智能家居用戶(hù)完全能滿(mǎn)足要求,對于家居環(huán)境復雜,地址分配點(diǎn)較多的用戶(hù),可能會(huì )出現資源不夠的情況,該情況可將Dest 與Src 地址擴展至16 位,即2字節。滿(mǎn)足65535 個(gè)節點(diǎn)要求。
節點(diǎn)命令碼,三種命令類(lèi)型只占用Cmdid 的二位,其余的高六位值保留,以備協(xié)議擴展所需。同理。
記錄選項,Opt 為保留字節,默認值為0x00,該字節主要針對控制操作,用于記錄控制操作符,如表2 說(shuō)明,主要針對燈控文件的變亮,變暗操作。
該通訊協(xié)議的設計主要有以下特點(diǎn):
?。?)統一外設,將外部設備抽象成標準文件,并在控制器內存記錄文件內容,操作指定設備只需訪(fǎng)問(wèn)該設備映射文件所處內存空間數據即可,規范外設標準,提高通訊效率。
?。?)通訊協(xié)議的制定極大的優(yōu)化了主控制器與射頻模塊之間的數據傳輸性能,主控制器只需根據固定的通訊協(xié)議格式填充即可,簡(jiǎn)化其處理過(guò)程。
?。?)同樣簡(jiǎn)化了從控制節點(diǎn)的數據處理過(guò)程。
評論