智能家居無線網絡通訊協議設計
發布時間:2016-04-19 責任編輯:wenwei
【導讀】基於ARM微控製器技術,提出了智能家居的遠程監控係統的有效方法。實際應用中該方法以Web瀏覽器作為操作界麵,實現遠程數據通信監控操作。利用nRF24L01射頻模塊為智能家居終端設備構建了無線數據通訊平台,其中nRF24L01射頻模塊有32個ge字zi節jie的de數shu據ju載zai荷he長chang度du。通tong過guo對dui載zai荷he數shu據ju幀zhen格ge式shi的de定ding義yi,完wan成cheng了le無wu線xian通tong訊xun協xie議yi的de設she計ji,統tong一yi了le底di層ceng設she備bei的de應ying用yong程cheng序xu接jie口kou,為wei智zhi能neng家jia居ju的de開kai發fa增zeng加jia了le靈ling活huo性xing。該gai遠yuan程cheng監jian控kong平ping台tai對dui家jia居ju環huan境jing及ji各ge布bu控kong係xi統tong進jin行xing了le有you效xiao監jian控kong,豐feng富fu並bing擴kuo展zhan了le家jia居ju智zhi能neng化hua的de可ke操cao作zuo性xing。
“智能家居”(smart home)又稱智能住宅,它利用先進的計算機技術、嵌入式係統技術、網(wang)絡(luo)通(tong)訊(xun)技(ji)術(shu)與(yu)傳(chuan)感(gan)器(qi)技(ji)術(shu)等(deng),把(ba)家(jia)中(zhong)的(de)各(ge)種(zhong)設(she)備(bei)有(you)機(ji)的(de)結(jie)合(he)起(qi)來(lai),優(you)化(hua)用(yong)戶(hu)生(sheng)活(huo)方(fang)式(shi),方(fang)便(bian)用(yong)戶(hu)管(guan)理(li)設(she)備(bei),並(bing)能(neng)通(tong)過(guo)場(chang)景(jing)設(she)定(ding)使(shi)多(duo)個(ge)設(she)備(bei)間(jian)形(xing)成(cheng)聯(lian)動(dong)。
家庭網絡的分層結構中,整個係統分成5 層:
物理媒體層(Media),底層協議層(Protocol)、應用程序接口層(API)、應用程序層(APP)和最終用戶接口層(UI)。其中第一、二層標準已經頒布並在實際中應用;第三層(API)是家庭網絡技術發展的關鍵,是當前業界研究的熱點;第四層是應用程序層,是在第三層的基礎上由技術人員開發的各種應用程序;第五層是各種用戶接口(UI)工具,包括各種遙控裝置、應急開關、求助按鈕以及其它可視接口設備,對整個係統性能的發揮和使用至關重要。本文主要針對第三、四層結構,設計符合智能家居係統平台的數據通訊協議。
1 係統總體方案
1.1 總體設計方案
圖1 中ARM 主控製器作為智能家居遠程Web服務器,通過以太網芯片ENC28J60接收遠程控製數據包,完成數據解析後通過射頻模塊發送控製命令,延時並接收節點應答數據,將應答數據以json數據格式(一種數據保存格式)通過網關發送局部更新Web信息,達到監測控製家居環境的效果。

圖1 智能家居遠程監控方案
1.2 控製單元
控製單元采用ARM 微控製器STM32F103RBT6,Cortex-M3 內核,64引腳LQFP封裝。具有128K字節的程序存儲空間,20K字節的RAM,最高工作時鍾72MHz,具有豐富的片上資源,有7通道DMA控製器,能夠支持SPI,USART等外設。適合低成本,低功耗的嵌入式係統的開發與設計。
圖2 中,該芯片通過SPI串口共連3外設:SD卡接口、以太網芯片ENC28J60以及射頻模塊芯片nRF24l01.ARM 微控製器的PA4-PA7口分別作為SD卡的片選信號,時鍾信號引腳,MISO和MOSI口;PB12-PB15分別作為以太網芯片ENC28J60的片選信號,時鍾信號引腳,MISO和MOSI口;PC6為射頻模塊RX/TX模式使能端,PC7為SPI使能引腳,PC10-PC12分別作為射頻模塊nRF24L01的MOSI,MISO和時鍾信號引腳,結合MCS-51單片機的微控製應用能力,設計了一種簡單、實用的嵌入式智能家庭網關及終端控製方案。

圖2 係統控製單元設計。
接收部分采用無線射頻模塊nRF24l01,該模塊在2.4GHz全球開放ISM頻段使用;最高工作速率2Mbps,高效GFSK調製,抗幹擾能力強;共有126個頻道,滿足多點通信和跳頻通信的需要;內置硬件CRC 校錯和點對多點通信地址控製[9]。其中至少兩個模塊組成了通信係統,圖3中,一個作為主控製器數據發送端;其它作為節點設備數據接收端。接收端完成命令數據接收,依據命令內容聯動對應設備;完成命令後節點射頻模塊進入發送狀態,返回當前節點設備狀態。

圖3 無線通信係統。
2 軟件設計
2.1 射頻工作模式選擇
nRF24l01射頻模塊的收發模式有三種:EnhancedShockBurst TM收發模式、ShockBurst TM收發模式和直接收發模式三種。Enhanced ShockBurst TM收發模式由器件EN_AA寄存器配置內容決定。
在Enhanced ShockBurst TM收發模式下,使用片內先入先出堆棧區,數據從微控製器低速送入,高速發射,速率為1Mbps,tongguozhezhongjienengfangshijishishiyongdisudeweikongzhiqiyenengdedaohengaodeshepinfashesulv。bingqieyushepinxieyixiangguandesuoyougaosuxinhaochulidouzaipianneijinxing,zheyangyousandayoudian:節能;係統費用低;數據空中停留時間短,抗幹擾性高。同時也減小了整個係統的平均工作電流。
2.2 數據發送接收流程
2.2.1 主控製器射流程
本文設計的無線通信係統是在同一信道下,初始狀態下隻有一個發射節點,多個接收節點,主控製器射頻流程如圖4.
(1) 等待網絡數據包的到來,nRF24l01射頻模塊啟動發送模式,在配置信道上通過廣播方式發送,延時50ms,保證每個從控製器都能接收數據包。
(2) 數據發送完成後射頻模塊立即配置為接收模式,接收從控製器設備的狀態數據幀,並定時2秒,超時或成功接收從控製器設備應答數據則重新自動配置成發送模式並返回第1步,防止射頻模塊全部進入接收模式出現互鎖“假死”狀態。
(3) 如果成功接收從控製器設備應答數據,射頻模塊進入等待狀態。
2.2.2 從控製器射頻流程
suoyoujieshoujiedianjieshougaishujubao,bingduigaishujubaodequdongjiekoushujujinxingjiexixiaodui,birujieshoudizhipipei,minglingma,caozuowenjian?youpipeijiedianzejinruqudongyingyongchengxubingzhixingcaozuo。gaishepinmokuaiduoshuqingkuangxiachuyujieshoumoshi,jutiliuchengrutu4:

圖4 主控射頻流程
(1) 從控製器節點nRF24l01射頻模塊配置成接收模式,直到接收數據包。
(2) 對數據包的驅動接口部分進行解析,接收地址是否匹配,如不匹配則返回步驟(1),再判斷命令操作碼及文件標誌,如出現非法操作碼或文件標誌,則返回步驟(1),有對應驅動接口則進入驅動應用程序。
(3) 根據輸入的應用數據(記錄控製數據和記錄數據),操作設備將設備狀態寫入發送數據幀。完成後,射頻模塊配置進入發送模式,將發送數據幀返回主控製器,並延時1秒。
(4) 判斷是還發送成功,失敗則重新進入步驟(1),成功則結束,同樣進入初始化狀態。

圖5 從機節點射頻流程圖。
3 無線通訊協議
zhinengjiazhongduanshebeipinzhongfanduo,qiegongnengbuyi,butongshebeiyaojinxingtongyikongzhi,bixuduigezhongshebeijinxingchouxiangchuli,tiqutamendegongtongtezheng。keyibazhongduanshebeichouxiangchengwenjian,zaikongzhiduanfenpeiyikuaineicunmiaoshugaishebeidangqianzhuangtai,liyongshebeikongzhifangfaduquhuoxiugaidangqianzhuangtai,kongzhifangfakefenweisanlei:文件讀取(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地(di)址(zhi)分(fen)配(pei)對(dui)於(yu)普(pu)通(tong)的(de)智(zhi)能(neng)家(jia)居(ju)用(yong)戶(hu)完(wan)全(quan)能(neng)滿(man)足(zu)要(yao)求(qiu),對(dui)於(yu)家(jia)居(ju)環(huan)境(jing)複(fu)雜(za),地(di)址(zhi)分(fen)配(pei)點(dian)較(jiao)多(duo)的(de)用(yong)戶(hu),可(ke)能(neng)會(hui)出(chu)現(xian)資(zi)源(yuan)不(bu)夠(gou)的(de)情(qing)況(kuang),該(gai)情(qing)況(kuang)可(ke)將(jiang)Dest與Src地址擴展至16位,即2字節。滿足65535個節點要求。
節點命令碼,三種命令類型隻占用Cmdid的二位,其餘的高六位值保留,以備協議擴展所需。同理。
記錄選項,Opt為保留字節,默認值為0x00,該字節主要針對控製操作,用於記錄控製操作符,如表2說明,主要針對燈控文件的變亮,變暗操作。
該通訊協議的設計主要有以下特點:
(1)統tong一yi外wai設she,將jiang外wai部bu設she備bei抽chou象xiang成cheng標biao準zhun文wen件jian,並bing在zai控kong製zhi器qi內nei存cun記ji錄lu文wen件jian內nei容rong,操cao作zuo指zhi定ding設she備bei隻zhi需xu訪fang問wen該gai設she備bei映ying射she文wen件jian所suo處chu內nei存cun空kong間jian數shu據ju即ji可ke,規gui範fan外wai設she標biao準zhun,提ti高gao通tong訊xun效xiao率lv。
(2)通(tong)訊(xun)協(xie)議(yi)的(de)製(zhi)定(ding)極(ji)大(da)的(de)優(you)化(hua)了(le)主(zhu)控(kong)製(zhi)器(qi)與(yu)射(she)頻(pin)模(mo)塊(kuai)之(zhi)間(jian)的(de)數(shu)據(ju)傳(chuan)輸(shu)性(xing)能(neng),主(zhu)控(kong)製(zhi)器(qi)隻(zhi)需(xu)根(gen)據(ju)固(gu)定(ding)的(de)通(tong)訊(xun)協(xie)議(yi)格(ge)式(shi)填(tian)充(chong)即(ji)可(ke),簡(jian)化(hua)其(qi)處(chu)理(li)過(guo)程(cheng)。
(3)同樣簡化了從控製節點的數據處理過程。
4 通訊協議實現結果
按照係統功能需求的劃分,可分為智能溫度的控製,智能安防的控製,智能家電的控製,智能照明的控製等。
智能溫度控製:係統實時采集室內的溫度,並能以圖形方式展示給用戶,用戶可以根據需要自行控製室內溫度。
智能安防控製:係統集成防盜、防劫等功能,能夠通過網頁遠程監控家居狀況,並能查詢控製警報器的狀態。
智能照明控製:用戶可以根據需要控製家庭的燈光效果,具有調光功能,不僅能夠滿足用戶的需求,還能達到節能和環保的功能,其記錄數據說明見表3.
表3 燈控記錄數據
記錄數據的首字節Len表示當前記錄字節長度,照明的三種控製方法具體說明如下:
Read:讀當前燈的亮度。
輸入:無。
輸出:Opt保留字節0x00.Value表示當前燈的亮度值(0x00-0x09),值越大,亮度越高,下同。
Write:設置燈的亮度值。
輸入:Opt保留字節0x00.Value 為要設置的亮度值。
輸出:Opt保留字節0x00.Value 表示當前燈的亮度值(0x00-0x09)。
Cnt:調節燈的亮度。
輸入:Opt的最低位為1,表示減少亮度;Opt的最低位為0,表示增加亮度。Value省略無意義。
輸出:Opt為保留字節0x00.Value 表示當前燈的亮度值(0x00-0x09)。
燈控設備支持多條記錄同時讀取與返回,設備的讀操作無記錄輸入,有記錄輸出;寫操作與控製操作有記錄輸入,同時有記錄輸出。假設當前操作節點為0x00,主控節點為0xFF,Value值為0x03.
以燈控控製命令為例:
控製命令(0x03):假設當前亮度值為0x03,將燈亮度值加1,則輸入數據幀如表4,輸出數據幀如表5.
表4 輸入數據幀
表5 輸出數據幀
輸入數據幀與輸出數據幀進行相互轉換時,發送主體不同,因此發送地址與接收地址對調。由於是控製命令,Cmdid設置為0x03,如果是讀命令或寫命令,則該字節設置為0x01或0x02.由上已知當前操作節點為0x00,即Fileid的設置值。Result表示數據返回結果碼,0x00表示操作成功。在輸入數據幀中無意義。
本例中,隻有1個記錄值,因此在數據輸入、輸出幀記錄地址Start從0x00開始,數據幀長度Len為0x01.
讀命令、寫命令數據幀類似,參照控製命令格式。
5 結論
本係統中,以嵌入式Web服務器為架構,實現了對智能家居終端設備的遠程監測與控製,並以nRF24L01射頻模塊32字節的數據幀為基礎,最終完成了針對較低成本智能家居的通訊協議設計。在實際操作過程中,也能夠通過網頁Web的調節控製,最終能夠達到對終端文件設備的控製,實現對燈控設備的開關,調亮,調暗等功能。能在發出命令後1 秒內返回準確數據信息,保證該係統的實時控製,具有較高應用價值。
【推薦閱讀】
一款會講故事的燈泡,溫馨浪漫有格調
智能家居無線發展:ZigBee實現雙向互動
基於嵌入式的無線智能家居網關設計方案
被外因坑慘了的智能家居何時能夠上位?
創新+互聯+一站式解決方案撐起智能家居的未來
特別推薦
- 噪聲中提取真值!瑞盟科技推出MSA2240電流檢測芯片賦能多元高端測量場景
- 10MHz高頻運行!氮矽科技發布集成驅動GaN芯片,助力電源能效再攀新高
- 失真度僅0.002%!力芯微推出超低內阻、超低失真4PST模擬開關
- 一“芯”雙電!聖邦微電子發布雙輸出電源芯片,簡化AFE與音頻設計
- 一機適配萬端:金升陽推出1200W可編程電源,賦能高端裝備製造
技術文章更多>>
- 貿澤EIT係列新一期,探索AI如何重塑日常科技與用戶體驗
- 算力爆發遇上電源革新,大聯大世平集團攜手晶豐明源線上研討會解鎖應用落地
- 創新不止,創芯不已:第六屆ICDIA創芯展8月南京盛大啟幕!
- AI時代,為什麼存儲基礎設施的可靠性決定數據中心的經濟效益
- 築基AI4S:摩爾線程全功能GPU加速中國生命科學自主生態
技術白皮書下載更多>>
- 車規與基於V2X的車輛協同主動避撞技術展望
- 數字隔離助力新能源汽車安全隔離的新挑戰
- 汽車模塊拋負載的解決方案
- 車用連接器的安全創新應用
- Melexis Actuators Business Unit
- Position / Current Sensors - Triaxis Hall
熱門搜索
微波功率管
微波開關
微波連接器
微波器件
微波三極管
微波振蕩器
微電機
微調電容
微動開關
微蜂窩
位置傳感器
溫度保險絲
溫度傳感器
溫控開關
溫控可控矽
聞泰
穩壓電源
穩壓二極管
穩壓管
無焊端子
無線充電
無線監控
無源濾波器
五金工具
物聯網
顯示模塊
顯微鏡結構
線圈
線繞電位器
線繞電阻



