楊振 張珣
摘 要:目前物聯網智能設備種類繁多,但設備性能缺乏統一標準,對多物聯網終端互聯與控制造成了一定困難。因此提出MCMI與雙路徑并發(fā)的自動跳頻Mesh組網方案,結合用戶控制端,設計基于雙向Sub-G的無線MESH智能家居控制系統。Mesh結構為3層終端間通信,第一層與第二層構成星形拓撲,第二層與第三層構成多連接樹形,較之一般Mesh結構,更加簡潔且降低了硬件要求。通過MCMI與雙路徑并發(fā)的信號傳輸方式,消除了無線網絡信道干擾,信號穩(wěn)定性提高50%。為應對各廠商協議不統一難以成為一個完整系統的問題,設計上層專有協議以克服技術差異化。該系統經過測試,運行穩(wěn)定、性能優(yōu)秀、可信賴度高,并且協議還預留自定義接口,擁有一定的拓展能力。
關鍵詞:Sub-G頻段;智能照明;Mesh組網;網狀拓撲;自動跳頻;差分加密
DOI:10. 11907/rjdk. 201176
中圖分類號:TP319文獻標識碼:A 文章編號:1672-7800(2020)010-0209-05
Abstract:There are many types of IoT smart devices on the market today, and there is no certain uniform standard, which has caused some difficulties in the interconnection and control of IoT terminals. This system proposes a scheme of MCMI and dual-path concurrent automatic frequency hopping Mesh networking. Combined with the user control end, a wireless MESH smart home control system based on two-way Sub-G is designed. The Mesh structure in this paper is communication between three layers of terminals. The first layer and the second layer form a star topology, and the second layer and the third layer form a multi-connection tree. Compared with the general Mesh structure, it is more concise and reduces the hardware requirements. MCMI and dual-path concurrent signal transmission methods eliminate channel interference in wireless networks and increase signal stability by 50%。 In order to cope with the inconsistency of the protocols of various manufacturers and become a complete system, a proprietary protocol at the upper layer was designed to solve the technical difference. This system has been tested and runs stably, with excellent performance and high reliability, and the protocol also reserves custom interfaces, which has certain expansion capabilities.
Key Words:Sub-G frequency band; intelligent lighting; Mesh networking; Mesh topology; automatic frequency hopping; differential encryption
0 引言
近年來,隨著無線通信技術的快速發(fā)展,模塊成本大幅降低,物聯網和智能家居產業(yè)蓬勃興起,用戶對控制系統的品質要求越來越高。建立將智能家居終端連接起來的智能設備組網控制系統,可實現設備點對點或集群控制[1],提高設備性能。便捷、高效且成本合理的無線組網系統應用價值較大。
在已有研究的基礎上,考慮到家庭結構中智能家具設備分布情況,選用穿墻能力和功耗更有優(yōu)勢的Sub-G頻段。薛文艷[2]分析無線自組織網絡節(jié)點發(fā)現,可根據路徑長度、穩(wěn)定性、狀態(tài)尋找一條最優(yōu)路徑,因此將各智能設備以一定的拓撲網絡進行組網,使設備間通信更有結構性;胡雷等[3]對Mesh控制性能進行了研究,通過三級拓撲的Mesh網絡技術,加強了信號數據傳遞準確性,為確保整個組網系統準確性、動態(tài)性可靠性和安全性,引入MCMI與雙路徑并發(fā)的信號傳遞方式,以保證信號高效性穩(wěn)定性。因此組網結構由投放節(jié)點、運輸節(jié)點和目標節(jié)點三節(jié)Mesh結構組成,并加入MCMI與雙路徑并發(fā),消除信道干擾,避免通信延時與無線鏈路不穩(wěn)定帶來的問題。根據李明明[4]對差分分析的研究,出于安全考慮使用Manchester差分加密算法,且計算儲存資源開銷小,可以安全高效地進行無線數據傳輸。
家庭智能家居設備種類繁多,難以統一控制不同品牌的產品。為實現便捷化控制,本文提出基于雙向Sub-G芯片的無線MESH軟件系統,解決不同品牌智能設備控制方式差異化問題,提高用戶便捷性與設備高效性。
1 系統結構概況
本文系統采用MESH組網系統,該通信網絡基于Sub-G頻段,在網關與終端之間可自動組網形成網狀拓撲網絡,通過移動端或PC端頁面進行交互,使用戶端與設備通信,以實現對智能家居、開關系統等的控制??刂屏鞒倘鐖D1所示。
2 系統硬件設計
2.1 系統主控電路
本文對照市場上不同的射頻芯片,搭建控制系統,考慮到實際使用時設備數量與精確度對成本的影響,系統以低成本、計算效率高的BQ3905作為系統主芯片。BQ3905是一款低功耗的寬頻帶FSK 單芯片無線收發(fā)器,主要針對304-316、430-440、470-510、860-880和900-930MHz的Sub-G頻段。BQ3905使用時分雙工收發(fā)器,進行設備交替發(fā)送和接收數據,并支持數據流模式或數據包模式。該芯片具有高集成度的特點,芯片工作電壓范圍在1.9~3.6之間,其低電流的特點使芯片非常適應于便攜式應用。本文系統選用BQ3905的433MHz頻段進行無線組網通訊,BQ3905無線模塊電路設計如圖2所示。
2.2 節(jié)點控制模塊
該模塊利用UTF87001芯片,獲取輸入信號,并輸出狀態(tài)數據反饋給控制器。電路如圖3所示。
2.3 網關控制模塊
系統采用松翰公司的BQ3905芯片,該芯片擁有強大的性能與數據處理能力,因為需連接Wi-Fi網絡,所以網關控制模塊選擇USR-C322芯片,該芯片作為Wi-Fi控制芯片,除可轉化串口電平使其符合Wi-Fi無線網絡通信標準,還連接運營商網絡。控制芯片采用SN8F5708,用于串口通信。
2.4 燈控測試模塊
本文系統選用LM78Wi-Fi燈控模組用于測試,該模組相比于其它產品封裝尺寸更佳,同時帶有PWM 調制技術。該智能燈模組在LED燈屏、燈珠控制、數字顯示網屏上有較多應用,并擁有豐富的語音控制接口。
3 系統軟件設計
3.1 軟件控制流程
打開開關后,各節(jié)點設備初始化進行故障自檢,等待接收客戶端控制信號。在接收到控制信號后,通過本文系統采用的通信協議,讀取信號報文信息[5],判斷該信號是否為有效信號。若為有效信號,則尋找一級運輸節(jié)點,即投放節(jié)點,此時設置廣播數據包延時為20ms,并設置接收模式的延時為2s,開始持續(xù)接收返回的應答信號;若未接收到應答包,則持續(xù)等待應答數據[3]。軟件主要控制流程如圖4所示。
3.2 組網構建
將組網各個節(jié)點分為3級,即第一級投放節(jié)點、第二級運輸節(jié)點、第三級目標節(jié)點。三級組網結構如圖5所示。
組網結構為樹形拓撲結構,第二層(運輸層)各節(jié)點之間又構成星形拓撲結構[5],星形結構由中心節(jié)點進行信息支配,使終端設置適應性更強且更加靈活;而第三層(目標層)采用多連接樹形結構,該結構擁有完整的普通樹形結構的父子層級管理,又兼具星形拓撲廣度,在實際路由過程中可減少進行三級路由的最佳路徑算法運算量,在各設備具有強鏈接節(jié)點且集中執(zhí)行的情況下[6],兼顧成本與傳輸性能。
為了使通信結構簡潔、穩(wěn)定、靈活度高[7],因此3層深度的組網協議每層節(jié)點等級不同,按照等級高低,嚴格控制當前層級功能。第一層節(jié)點通過接收到的客戶端控制信號,下達組網建立消息,并收集子節(jié)點反饋信息;第二層節(jié)點負責轉發(fā)控制信號,其中包括投放節(jié)點、同級節(jié)點信號的傳遞,本級節(jié)點狀態(tài)對上級節(jié)點的回饋以及向目標節(jié)點下發(fā)信號,屬于組網協議中最核心的信息中轉傳遞層;最底層目標節(jié)點只有信息接收處理、同級信號傳遞與向上級發(fā)送反饋信息3種轉發(fā)方式。
3.3 專有協議設計
本文根據物聯網設備無線通信的數據模式,結合已有協議,設計一套嚴格的管控標準[8]協議。協議包括語法(數據包結構與格式)、語義(通訊時約定應答編碼)、時序(解析順序)3要素。
數據包由包頭和數據負載構成。數據包包頭和負載結構均為4字節(jié),每個字節(jié)長度8位,結構如圖6所示,4個字節(jié)分別存放不同信息。在包頭部分規(guī)定數據包驗證信息,作為節(jié)點數據通信時校驗規(guī)則,以此防止接收方與發(fā)送方因不同步而導致丟包;數據負載則依次是用戶在發(fā)送端的控制指令編碼,接收設備反饋信息或終端傳感器狀態(tài)編碼。
系統協議中的頭尾序列與大部分協議在一幀報文中的一致,均用于報文同步;設置上一跳、下一跳的地址,用于當前節(jié)點與其它節(jié)點之間的報文傳遞;報文攜帶源地址和目標地址信息,用于定位來源與傳遞的目的地;通過數據申明與描述符,判斷數據類型。
除此之外,協議中加入了對同一報文轉發(fā)次數的限制,以此限制報文轉發(fā)次數上限,避免“三角轉發(fā)”。若轉發(fā)次數達到上限,則將該報文丟棄[5],視作不可達。
3.4 Floyd最佳傳送距離算法
本文系統通過用戶端發(fā)送信息,通過投放節(jié)點、運輸節(jié)點逐級傳遞到目標節(jié)點,由于系統采用網狀拓撲,所以可根據信息傳遞路徑規(guī)劃,獲取最佳傳遞方案,增加控制效率。
因為用戶所處位置不同,所以負責信息傳遞的一級節(jié)點也不一定相同。將系統投放節(jié)點視為彼此不同源。傳統Dijkstra算法[9]僅針對點對點的單源最短路徑規(guī)劃,非同源出發(fā)的路徑規(guī)劃無法采用該算法,因此本文采用針對多源路徑進行動態(tài)規(guī)劃的Floyd算法。Floyd可以看做多次從不同源分別進行一次Dijkstra路徑規(guī)劃。
Floyd算法需求出某點到達任意一點的最短距離,將其視為通過變換得到的最優(yōu)協調路徑[10]。首先根據節(jié)點分布情況,利用鄰接矩陣建圖,如圖7所示[11]。
map[i][j]表示點i到點j的距離,將map[i][i]設為0,倘若有i無法到達的點,則將距離設置為∞(無窮大),若要令圖上任意一個頂點(如a頂點)到另一個頂點(如b頂點)的路程更短,需引入第3個頂點k,再經過所引入的節(jié)點k進行中轉,即a->k->b,便可縮短從頂點a到頂點b所需的路程。在a頂點和引入的k節(jié)點之間與引入的k節(jié)點與b頂點之間,如果還存在可使路程更短的中轉點時,即可以此遞歸,引入多個節(jié)點,即a->k1->k2->b或a->k1->k2…->ki…->b。如圖4號頂點到3號頂點(4->3)的路程map[4][3]原為24。若經過1號頂點中轉(4->1->3),路程將縮短為23(e[4][1]+e[1][3]=11+12=23)。與此同時,1號到3號頂點經過2號頂點中轉后,也使得1號到3號頂點的路程縮短至11(e[1][2]+e[2][3]=4+7=11)。因此在通過1號和2號兩個頂點中轉之后,從4號頂點到3號頂點的路程會進一步縮短為22。由此可以推測,每個節(jié)點均有可能使另外兩個頂點的距離變短。假設先以1號頂點為例,只有一個中轉點。將建好的圖用表格表示,如圖8所示。
此時,兩點間最短距離的路程發(fā)生變化。因此,只需判斷:
map[i][1]+map[1][j]