<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 智能家居無(wú)線(xiàn)網(wǎng)絡(luò )通訊協(xié)議設計方案

智能家居無(wú)線(xiàn)網(wǎng)絡(luò )通訊協(xié)議設計方案

作者: 時(shí)間:2013-06-05 來(lái)源:網(wǎng)絡(luò ) 收藏

無(wú)線(xiàn)

  智能家終端設備品種繁多,且功能不一,不同設備要進(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

  無(wú)線(xiàn)射頻模塊nRF24l01 對應收發(fā)模式的數據有效負載最大為32 個(gè)字節,該數據包作為一幀數據,其中可分成三類(lèi)數據:驅動(dòng)接口數據,記錄控制數據以及記錄數據,輸入幀與輸出幀數據類(lèi)型相同。數據格式如表1.

表1 幀數據格式

智能家居無(wú)線(xiàn)網(wǎng)絡(luò )通訊協(xié)議設計方案

 ?。?)驅動(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 記錄數據格式

智能家居無(wú)線(xiàn)網(wǎng)絡(luò )通訊協(xié)議設計方案

  該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ō)明,主要針對燈控文件的變亮,變暗操作。

  該的設計主要有以下特點(diǎn):

 ?。?)統一外設,將外部設備抽象成標準文件,并在控制器內存記錄文件內容,操作指定設備只需訪(fǎng)問(wèn)該設備映射文件所處內存空間數據即可,規范外設標準,提高通訊效率。

 ?。?)通訊協(xié)議的制定極大的優(yōu)化了主控制器與射頻模塊之間的數據傳輸性能,主控制器只需根據固定的通訊協(xié)議格式填充即可,簡(jiǎn)化其處理過(guò)程。

 ?。?)同樣簡(jiǎn)化了從控制節點(diǎn)的數據處理過(guò)程。



評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>