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