陳麗芬 儲(chǔ)成誠 趙鵬 葉迅凱 張濤 方玉如
1.中國家用電器研究院 北京 100037;2.安徽眾家云物聯(lián)網(wǎng)科技有限公司 安徽滁州 239000;3.中輕合盛科技有限公司 安徽滁州 239000
目前,各智能家居企業(yè)基于利益等方面的考慮,不同廠商、不同品牌的產(chǎn)品之間不能實(shí)現(xiàn)互聯(lián)互通,缺乏互動(dòng)標(biāo)準(zhǔn),由于布局不完善并采用封閉式的方式,影響了用戶體驗(yàn)。蘋果的HomeKit、亞馬遜的Echo、華為的HiLink、阿里的YunOS、百度的Dulife、海爾的U+、美的的M-Smart等多是系統(tǒng)內(nèi)部的協(xié)同,主要的技術(shù)壁壘在于通信接口的不開放,通信協(xié)議的不兼容[1]。
智能家居管理單元是一個(gè)可以有效整合家庭內(nèi)部設(shè)備的處理模塊,配合定制的App不僅實(shí)現(xiàn)了單個(gè)App遠(yuǎn)程控制所有智能家居設(shè)備的功能,打破現(xiàn)有同類型產(chǎn)品只能連接自家產(chǎn)品的自有生態(tài)鏈屬性,同時(shí)還實(shí)現(xiàn)了設(shè)備數(shù)據(jù)的集中化管理,使得不同品牌、不同接口類型的家庭設(shè)備聯(lián)網(wǎng)協(xié)同,全方位地提升了人們的生活體驗(yàn)。
如圖1所示為管理單元的工作框圖[2],包含有云端、控制端、設(shè)備端三大部分,其中云端以家電領(lǐng)域行業(yè)性公共云服務(wù)平臺(tái)眾家云平臺(tái)[3]為依托,基于智能家電國家標(biāo)準(zhǔn)實(shí)現(xiàn)家電智能化的數(shù)據(jù)交互過程。
管理單元可實(shí)現(xiàn)的功能包括設(shè)備管理以及數(shù)據(jù)管理,設(shè)備管理是指設(shè)備在云端的注冊(cè)、注銷、登錄、登出等;數(shù)據(jù)管理包含了每個(gè)設(shè)備的通信幀格式與網(wǎng)絡(luò)報(bào)文的轉(zhuǎn)換、多種設(shè)備間通信協(xié)議的相互轉(zhuǎn)換;除此之外,管理單元會(huì)周期內(nèi)查詢?cè)O(shè)備的狀態(tài)并向云端上報(bào),同時(shí)會(huì)接收從已建立連接的云端下發(fā)出的遠(yuǎn)程控制指令給產(chǎn)品,實(shí)現(xiàn)通信數(shù)據(jù)的集中化管理。
圖1 管理單元工作框圖
在可接入設(shè)備接入方面,管理單元集成了無線局域網(wǎng)中的Wi-Fi、ZigBee網(wǎng)絡(luò),同時(shí)還可掛載總線型設(shè)備,如UART、RS485、SPI、DIDO等。本文重點(diǎn)介紹ZigBee網(wǎng)絡(luò)設(shè)備的接入實(shí)現(xiàn)。
ZigBee是一種開放的雙向無線自組網(wǎng)通信技術(shù),主要特色有低功耗、低成本、低速率、近距離、延時(shí)短、高容量、高安全等特點(diǎn)[4],網(wǎng)絡(luò)自愈能力強(qiáng)、支持多種網(wǎng)上拓?fù)?,其關(guān)于組網(wǎng)、安全及應(yīng)用軟件方面的技術(shù)是基于IEEE 80215.4無線標(biāo)準(zhǔn),在2.4 GHz(全球)、915 MHz(美國)和868 MHz(歐洲)等未經(jīng)授權(quán)的頻段上運(yùn)行,該項(xiàng)技術(shù)尤為適用于數(shù)據(jù)流量偏小的業(yè)務(wù),可便捷的在一系列固定式、便攜式移動(dòng)終端中進(jìn)行安裝[5],隨著ZigBee聯(lián)盟近年推出的ZigBee 3.0標(biāo)準(zhǔn)使得ZigBee通信在智能家居行業(yè)內(nèi)的使用愈加廣泛?;谏鲜鲈颍悄芫W(wǎng)關(guān)的無線局域網(wǎng)以ZigBee作為通訊標(biāo)準(zhǔn)的一種。
以小米插座為例簡(jiǎn)述智能家居管理單元的工作過程。小米插座是集成了ZigBee協(xié)議的智能設(shè)備,在加入由管理單元建立的ZigBee網(wǎng)絡(luò)之后,設(shè)備通過無線局域網(wǎng)將當(dāng)前狀態(tài)傳送給管理單元,管理單元遵循TCP/IP網(wǎng)絡(luò)通訊協(xié)議將設(shè)備數(shù)據(jù)上報(bào)至云端平臺(tái),控制端可在App遠(yuǎn)程查看設(shè)備的狀態(tài)、實(shí)時(shí)顯示插座用電量、控制插在智能插座上的電器的電源開關(guān),實(shí)現(xiàn)數(shù)據(jù)在局域網(wǎng)與廣域網(wǎng)之間的傳輸,即實(shí)現(xiàn)了為不直接連接廣域網(wǎng)的智能家電提供網(wǎng)絡(luò)協(xié)議轉(zhuǎn)換和代理連接服務(wù)的功能。
管理單元硬件主要由MCU模塊、接口模塊、接口擴(kuò)展模塊、電源模塊、輸入模塊、顯示模塊等部分組成,其中MCU主控制器選用MT7268處理器,軟件內(nèi)部集成了設(shè)備底層驅(qū)動(dòng)、協(xié)議解析、云端交互等模塊,功能框圖如圖2所示。
圖2 管理單元軟件功能框圖
(1)ZigBee接入模塊:該模塊中,ZigBee相關(guān)的處理任務(wù)是由ZigBee協(xié)調(diào)器完成的,它是一款低成本、低功耗的ZigBee網(wǎng)絡(luò)處理器,以下簡(jiǎn)稱ZNP(ZigBee Network Processor),它提供封裝好的 ZigBee解決方案,在設(shè)計(jì)無線子網(wǎng)時(shí),ZNP在系統(tǒng)里充當(dāng)ZigBee從機(jī)角色,負(fù)責(zé)建立ZigBee網(wǎng)絡(luò)并與ZigBee子設(shè)備進(jìn)行通訊。
(2)RS485接入模塊:RS485總線因傳輸能力強(qiáng)、抗干擾能力強(qiáng)、多機(jī)通訊簡(jiǎn)單,易在家電行業(yè)中實(shí)現(xiàn)組網(wǎng)傳輸,因此,管理單元采用RS485總線作為有線子網(wǎng)設(shè)計(jì)的主要鏈路通道。在有線子網(wǎng)設(shè)計(jì)中,RS485接入模塊運(yùn)行在接口擴(kuò)展模塊上,負(fù)責(zé)與RS485子設(shè)備通訊。
(3)RPC/Transport Layer:該層是系統(tǒng)的驅(qū)動(dòng)傳輸?shù)讓?,它提供了UART串口驅(qū)動(dòng)程序用以實(shí)現(xiàn)串行數(shù)據(jù)的傳輸,由于ZigBee接入模塊以及RS485接入模塊都是通過串口將數(shù)據(jù)傳輸至主控制器MT7628,所以該層是管理單元實(shí)現(xiàn)數(shù)據(jù)采集的基礎(chǔ)。
(4)ZigBee控制單元與RS485控制單元:二者是運(yùn)行在MT7628內(nèi)部的控制單元,負(fù)責(zé)實(shí)現(xiàn)主控MCU與ZigBee子設(shè)備以及RS485子設(shè)備間的數(shù)據(jù)交互。
(5)多協(xié)議適配模塊:眾家云平臺(tái)對(duì)其可接入設(shè)備設(shè)計(jì)了數(shù)據(jù)點(diǎn)協(xié)議,是對(duì)設(shè)備功能點(diǎn)的抽象,用于描述產(chǎn)品功能及其參數(shù)。設(shè)備私有協(xié)議與眾家云平臺(tái)數(shù)據(jù)點(diǎn)協(xié)議之間的對(duì)應(yīng)關(guān)系是在多協(xié)議適配模塊中定義的,最終實(shí)現(xiàn)設(shè)備、云平臺(tái)相互識(shí)別二者間互聯(lián)互通數(shù)據(jù)的功能,該模塊是實(shí)現(xiàn)設(shè)備間多協(xié)議互操作的基礎(chǔ)。
(6)網(wǎng)絡(luò)代理模塊:該模塊負(fù)責(zé)建立設(shè)備與云端平臺(tái)的長(zhǎng)連接通訊,用于設(shè)備的注冊(cè)、登錄、接收云端控制指令并上報(bào)設(shè)備狀態(tài),為每臺(tái)接入的設(shè)備提供相應(yīng)的管理及服務(wù),該模塊是設(shè)備數(shù)據(jù)、云端M2M服務(wù)器、控制端的數(shù)據(jù)交互橋梁,由眾家云提供SDK。
軟件流程圖如圖3所示。
管理單元提供設(shè)備私有數(shù)據(jù)協(xié)議與云端數(shù)據(jù)協(xié)議相互轉(zhuǎn)換的功能,即多協(xié)議適配模塊,用以實(shí)現(xiàn)私有數(shù)據(jù)協(xié)議格式的自動(dòng)錄入、私有數(shù)據(jù)的解析及業(yè)務(wù)數(shù)據(jù)的解析功能。云端在完成產(chǎn)品的定義之后可自動(dòng)生成兩類配置文件,一種是設(shè)備數(shù)據(jù)配置文件,另一種是云端數(shù)據(jù)點(diǎn)配置文件,智能家居管理單元工作時(shí)會(huì)自動(dòng)獲取對(duì)應(yīng)的云端配置文件,用于實(shí)現(xiàn)設(shè)備私有協(xié)議與云端數(shù)據(jù)點(diǎn)協(xié)議之間的相互轉(zhuǎn)換。
圖3 管理單元程序設(shè)計(jì)流程圖
以蘭舍新風(fēng)控制器為例,該設(shè)備為RS485接口,在管理單元中,將設(shè)備私有協(xié)議格式進(jìn)行如圖4a)所示的定義,多協(xié)議適配模塊依據(jù)圖4b)所示的配置文件中云端dataPointID匹配設(shè)備協(xié)議的功能點(diǎn)ID的原則,來查找設(shè)備功能點(diǎn)與云端數(shù)據(jù)間點(diǎn)的對(duì)應(yīng)關(guān)系,結(jié)合其他字段信息最終實(shí)現(xiàn)云端協(xié)議與設(shè)備協(xié)議間的轉(zhuǎn)換。
圖4 云端數(shù)據(jù)點(diǎn)與設(shè)備協(xié)議對(duì)應(yīng)關(guān)系
3.3.1 ZigBee協(xié)調(diào)器
ZigBee網(wǎng)絡(luò)中存在三種邏輯設(shè)備類型,協(xié)調(diào)器、路由器、終端節(jié)點(diǎn)[6]。在管理單元中采用CC2530ZNP組合MT7628的方式來實(shí)現(xiàn)ZigBee子網(wǎng)設(shè)計(jì),其中CC2530ZNP作為協(xié)調(diào)器來處理所有關(guān)于ZigBee協(xié)議棧的任務(wù),它提供ZigBee協(xié)議棧的物理層、Mac層、網(wǎng)絡(luò)層、應(yīng)用支持子層的數(shù)據(jù)處理及各層的API軟件接口;MT7628中的ZigBee控制單元通過調(diào)用ZNP各層的API軟件接口實(shí)現(xiàn)ZigBee主程序,如設(shè)置網(wǎng)絡(luò)ID、設(shè)置設(shè)備類型、發(fā)送接收數(shù)據(jù)[6]。CC2530ZNP與MT7628采用UART接口通訊,如圖5所示。
圖5 通訊接口示意圖
CC2530ZNP在使用前需要配置:
(1)硬件接口配置
UART配置:選擇GPIO口實(shí)現(xiàn)TX、RX功能,波特率115200,數(shù)據(jù)位8位,停止位1位,無校驗(yàn);
RESET:CC2530ZNP復(fù)位信號(hào);
CFG0:CC2530ZNP配置信號(hào),ZNP上電時(shí)讀取此信號(hào),并進(jìn)行相應(yīng)配置。
(2)軟件接口配置
ZNP提供五類軟件命令接口,分別是:
SYS:系統(tǒng)接口,為應(yīng)用處理器提供了與ZNP硬件和軟件的底層接口;
AF:應(yīng)用程序框架接口,允許應(yīng)用程序處理器向ZNP注冊(cè)其應(yīng)用程序并發(fā)送和接收數(shù)據(jù);
ZDO:ZigBee設(shè)備對(duì)象接口,提供各種ZigBee管理功能,如設(shè)備和服務(wù)發(fā)現(xiàn);
UTIL:(MT_UTIL)該接口提供支持功能,如設(shè)置網(wǎng)絡(luò)ID、獲取設(shè)備信息、獲取NV信息、訂閱回調(diào);
APP CONF:(MT_APP_CNF)該接口支持BDB功能,如設(shè)置安裝代碼、主從通道、觸發(fā)不同的子設(shè)備入網(wǎng)方式和網(wǎng)絡(luò)秘鑰配置。
通過ZNP提供的上述接口,修改TI公司提供的基于Z-Stack協(xié)議棧的ZNP工程文件,實(shí)現(xiàn)管理單元中的ZNP所需功能。
3.3.2 ZigBee控制單元
ZigBee控制單元運(yùn)行在MT7628之上,它通過ZNP提供的API以及訂閱回調(diào)函數(shù)來實(shí)現(xiàn)與ZNP之間的通訊,ZigBee控制單元功能框架如圖6所示。
圖6 ZigBee控制單元內(nèi)部框圖
(1)RPC/Transport Layer:即Remote procedure call,傳輸層為該框架的最底層,提供了UART或SPI驅(qū)動(dòng)程序用以實(shí)現(xiàn)串行數(shù)據(jù)報(bào)文的組包與拆包,用以實(shí)現(xiàn)主機(jī)應(yīng)用程序與ZNP程序業(yè)務(wù)數(shù)據(jù)的交互。
(2)MT Subsystems API:即MT Subsystems Layer是基于RPC/Transport Layer之上的,該層為上層提供了大量的sys、af、zdo、sapi的API接口,方便上層應(yīng)用程序?qū)λ衂NP命令的訪問,其中下發(fā)的命令可直接調(diào)用API函數(shù),輸入的命令可使用回調(diào)注冊(cè)。
(3)ZCL庫:基于MT Subsystems Layer之上,為上層應(yīng)用程序提供更為標(biāo)準(zhǔn)的一套通信接口。所有來自底層的數(shù)據(jù)通過ZCL封裝后,實(shí)現(xiàn)了數(shù)據(jù)和命令格式的標(biāo)準(zhǔn)化,將上層應(yīng)用敏感的命令和相關(guān)的數(shù)據(jù)直接呈現(xiàn)給應(yīng)用層,從而保證應(yīng)用層只需關(guān)注其節(jié)點(diǎn)自身功能的實(shí)現(xiàn),將繁瑣的標(biāo)準(zhǔn)化通信任務(wù)交給下層來處理[8]。
(4)ZigBee主程序:負(fù)責(zé)調(diào)用底層API接口及訂閱回調(diào)功能函數(shù),實(shí)現(xiàn)ZigBee的基本功能,如網(wǎng)絡(luò)建立、設(shè)置網(wǎng)絡(luò)ID、允許設(shè)備加入網(wǎng)絡(luò)、綁定設(shè)備、獲取設(shè)備信息[9]。
在程序主線程中創(chuàng)建了兩個(gè)子線程,分別實(shí)現(xiàn)設(shè)備狀態(tài)數(shù)據(jù)獲取和控制設(shè)備命令數(shù)據(jù)發(fā)送的功能。在使用多線程技術(shù)進(jìn)行開發(fā)的過程中,需要考慮線程間的同步問題,設(shè)計(jì)中采用的線程間同步機(jī)制是互斥量,通過定義一個(gè)互斥量實(shí)現(xiàn)在對(duì)共享資源進(jìn)行訪問前對(duì)互斥量進(jìn)行加鎖[10]。
管理單元的設(shè)備管理包括管理單元自身的注冊(cè)、注銷、登錄、登出、心跳維持等,以及接入設(shè)備的添加、刪除、列表變更等,以管理單元注冊(cè)為例說明設(shè)備管理流程。管理單元向云平臺(tái)提交描述文件唯一標(biāo)識(shí)、設(shè)備標(biāo)識(shí)碼及設(shè)備校驗(yàn)碼,向云平臺(tái)發(fā)起注冊(cè)請(qǐng)求,云平臺(tái)成功響應(yīng)注冊(cè)請(qǐng)求后返回管理單元的唯一標(biāo)識(shí)碼,之后管理單元保存該標(biāo)識(shí)碼,完成注冊(cè)流程。
管理單元管理的數(shù)據(jù)可分為兩大類,下發(fā)設(shè)備的數(shù)據(jù)以及上報(bào)云端的數(shù)據(jù)。
下發(fā)設(shè)備數(shù)據(jù):指APP、云端下發(fā)的控制數(shù)據(jù)。局域網(wǎng)內(nèi)運(yùn)行時(shí),App可以選擇經(jīng)過云端下發(fā)指令給管理單元,也可以直接下發(fā)指令給管理單元。
上報(bào)云端數(shù)據(jù):指設(shè)備回復(fù)的當(dāng)前狀態(tài)。設(shè)備在未收到控制指令或設(shè)備狀態(tài)未發(fā)生變化時(shí),一般按設(shè)定周期上報(bào)數(shù)據(jù)。當(dāng)設(shè)備狀態(tài)發(fā)生變化時(shí),則立即上報(bào)最新狀態(tài),發(fā)送頻率不受輪詢周期限制。
如圖7所示為驗(yàn)證連接圖,小米門磁、小米插座、小米紅外設(shè)備均是集成了ZigBee協(xié)議的智能設(shè)備,它們通過ZigBee網(wǎng)絡(luò)加入到管理單元的無線局域網(wǎng)中;空氣盒子、海林地暖、蘭舍新風(fēng)等設(shè)備通過RS485總線加入到管理單元的有線局域網(wǎng)絡(luò)中;無線局域網(wǎng)絡(luò)與總線型設(shè)備通過串口與核心主控制器MT7628通信。
圖7 驗(yàn)證連接圖
在管理單元PCB板完成電源網(wǎng)絡(luò)上電前后對(duì)地阻抗測(cè)試和硬件接口測(cè)試正常后,以小米插座為例對(duì)其功能部分進(jìn)行測(cè)試。
接入局域網(wǎng)測(cè)試中,小米智能插座、CC2530ZNP作為測(cè)試設(shè)備;Ubiqua Protocol Analyzer軟件,即ZigBee協(xié)議分析器作為測(cè)試軟件,搭配CC2531 USB Dongle無線網(wǎng)絡(luò)分析儀[11],通過使用ZigBee協(xié)議分析器抓取ZigBee設(shè)備入網(wǎng)時(shí)及入網(wǎng)后的空氣報(bào)文并解析,入網(wǎng)流程如圖8所示。
接入廣域網(wǎng)測(cè)試中,用戶需要在云端平臺(tái)配置ZigBee設(shè)備的相關(guān)參數(shù),如產(chǎn)品類別、品牌名稱、型號(hào)、接口類型、PK、PS、MAC地址等,配置完成后,管理單元依據(jù)云端生產(chǎn)自動(dòng)生成的配置文件,完成設(shè)備在云平臺(tái)的注冊(cè)和登錄,設(shè)備有數(shù)據(jù)交互時(shí),在云端平臺(tái)可以看到交互數(shù)據(jù),如圖9所示。
圖8 ZigBee節(jié)點(diǎn)入網(wǎng)流程圖
圖9 云端顯示接入設(shè)備狀態(tài)信息
上述步驟均調(diào)試通過后,用戶通過如圖10所示的手機(jī)App界面可以實(shí)現(xiàn)實(shí)時(shí)監(jiān)控小米智能插座用電量情況以及準(zhǔn)確控制設(shè)備開關(guān)機(jī)狀態(tài)的功能。
圖10 App顯示設(shè)備狀態(tài)信息
綜上所述,驗(yàn)證了管理單元是一套完成度高、可實(shí)際應(yīng)用、能夠幫助普通家電或者局域網(wǎng)內(nèi)家電實(shí)現(xiàn)接入廣域網(wǎng)功能的系統(tǒng)。
本文所述的智能家電管理單元可以連接整合家庭內(nèi)部的無線有線局域網(wǎng)設(shè)備,實(shí)現(xiàn)了設(shè)備狀態(tài)信息的采集、數(shù)據(jù)的集中化管理、設(shè)備的遠(yuǎn)程聯(lián)動(dòng)控制等功能。文中以ZigBee無線局域網(wǎng)絡(luò)設(shè)備的接入為例詳細(xì)闡述了其軟件實(shí)現(xiàn)過程,并通過市售智能設(shè)備的成功接入及控制驗(yàn)證了智能管理單元是一款高效便捷、穩(wěn)定可靠、網(wǎng)絡(luò)容量大、品牌兼容性強(qiáng)的智能設(shè)備。