陳麗芬 葉迅凱 趙鵬 周中良 儲成誠 李禹翔
1.中國家用電器研究院 北京 100037;
2.安徽眾家云物聯(lián)網科技有限公司 安徽滁州 239000
家居產品智能化的一種主要表現(xiàn)形式是用戶可以控制家庭里的各種家電產品,現(xiàn)階段各大相關企業(yè)實現(xiàn)產品智能化的主流技術方案是建立本企業(yè)的云端服務平臺[1],讓用戶通過企業(yè)云來實現(xiàn)對家電產品的控制。但由于各廠商、各品牌之間存在競爭關系,各家企業(yè)基本都是對本品牌或者聯(lián)盟內的產品做互聯(lián)互通,無法連接其他廠商的產品,沒有做到真正意義上的互聯(lián)互通,主要技術壁壘是產品間通信協(xié)議的不兼容[2],而且這種現(xiàn)狀還將持續(xù),由此會給用戶的使用帶來很多不便。
基于上述市場現(xiàn)狀,多協(xié)議互操作智能網關(以下簡稱“智能網關”)可以作為一種產品間實現(xiàn)互聯(lián)互通的解決方案。它對接入的產品在廠商品牌上沒有過多要求,對產品的接口類型也不做限制,支持多種通信協(xié)議類型(Wi-Fi、ZigBee、RS485、RS232等),同時還可以連接不同廠家的云端平臺,是用戶對智能家居產品實現(xiàn)控制的一個很好的中轉單元。
智能網關的基本應用場景如圖1所示,包含有云端、用戶端、產品端三大部分,其中云端以家電領域行業(yè)性公共云服務平臺[3]為例,配合用戶端、智能網關、產品端共同實現(xiàn)了家電智能化的數據交互過程。
設計的智能網關包含硬件和軟件兩個部分。硬件方面,它既可以掛載多種不同接口類型的產品,也可以提供與各企業(yè)云端平臺之間交互的接口;實際應用當中,多個智能網關可以聯(lián)合使用,共同實現(xiàn)對多種產品的控制,確保一個節(jié)點網絡異常時,不會影響其他節(jié)點網絡的使用。軟件方面,首先,產品通過智能網關實現(xiàn)了在云端的注冊、登錄;其次,智能網關支持多種產品間通信協(xié)議的相互轉換;在前兩部分完成的基礎之上實現(xiàn)了用戶端控制指令的下發(fā)以及產品端狀態(tài)數據的搜集上報功能,即實現(xiàn)了用戶端對產品的遠程控制。
(1)工程配置文件
在智能網關首次啟動時,會從云端下載工程配置文件,里面包含有項目的樓層、房間、智能網關以及產品的基本信息,例如,網關的Mac地址、產品的Mac地址、產品的通信參數等。通過以上信息,智能網關和產品可以得到其在云端的唯一標識碼,這個編碼在全網是唯一存在的,是產品實現(xiàn)注冊、登錄以及控制的前提條件。
(2)功能描述文件
除工程配置文件外,網關首次上電時還會從云端下載功能描述文件,每個產品會配套2個描述文件,一個存儲的是產品的自有屬性,例如名稱、采樣數據等;另一個保存的是產品的通信協(xié)議,包含了通信過程中會用到的所有指令格式。這2個文件的內容是產品與智能網關進行通信的依據,也是智能網關實現(xiàn)多協(xié)議轉換的基礎。
產品在云端完成批量注冊,并與云端成功建立連接后,智能網關與產品便可依據通信協(xié)議進行交互,實現(xiàn)多協(xié)議間的轉換。網關會在設定周期內查詢產品的狀態(tài)并向云端上報,同時會接收從已建立連接的云端下發(fā)出的遠程控制指令給產品,實現(xiàn)家居產品的智能控制。

圖1 智能網關架構圖

圖2 智能網關硬件框架圖
(1)業(yè)務平臺
如圖1所示,業(yè)務平臺提供的支持包括兩部分,一部分是與管理平臺對接的云服務,另一部分是與智能網關以及用戶端對接的端接入。
云服務提供產品接入服務、開放的API接口、消息處理引擎、數據處理與管理端口,實現(xiàn)了數據的實時通訊、計算及存儲功能。端接入包含了產品端(智能網關)接入以及用戶端接入,提供的網絡代理模塊實現(xiàn)了智能網關與云端、用戶端實時通信的功能,解決了產品聯(lián)網、上報數據、接收指令等問題;IoT SDK能夠協(xié)助用戶端App、微信應用快速完成開發(fā),無需關注底層業(yè)務。通過云端的接入使得業(yè)務平臺為整個系統(tǒng)提供了完整的產品接入、控制以及管理的解決方案。
(2)管理平臺
在管理平臺上實現(xiàn)了用戶登錄、配置管理、產品管理、用戶管理、系統(tǒng)用戶管理、故障管理、消息推送管理、統(tǒng)計分析等功能。
其中,配置管理實現(xiàn)了工程項目的新建、智能網關的添加、產品通信參數的配置、情景模式的配置、自學習等功能。產品通信參數包括了Mac地址,通信數據的幀頭、幀尾、幀格式,產品功能等信息,配置管理會生成配置文件供智能網關調用。產品首次配置后,配置信息會在后臺數據庫保存,再次添加同一型號的產品時,輸入產品型號即可選擇已配置過的內容,降低出錯概率。配置文件一旦生成,若需再次修改,必須獲得用戶的授權許可。
設備管理中實現(xiàn)了用戶與智能網關在管理平臺的綁定,同時用戶還可以根據產品的ID等信息在平臺對產品進行搜索,查看產品的實時狀態(tài)、歷史記錄、地理位置等信息,實現(xiàn)了對產品數據進行遠程監(jiān)控。
用戶只需下載App或關注微信公眾號,即可實現(xiàn)在手機端控制、使用終端產品,并獲取產品信息。
智能網關硬件主要由MCU模塊、接口擴展模塊組成,包括電源模塊、接口模塊、顯示模塊、輸入模塊、藍牙模塊等部分,框架如圖2所示。

圖3 智能網關部分原理圖
(1)MCU模塊
智能網關硬件是以嵌入式高性能MCU為核心,該芯片包含了豐富的片上資源:
①580MHz嵌入式內核,64KB指令緩存,32KB數據緩存;
②傳統(tǒng)的802.11b/g和HT 802.11N模式;
③20/40MHz信道帶寬;
④反向數據授權;
⑤5端口10/100快速以太網交換機;
⑥支持SPI,UART,JTAG,GPIO等;
⑦AP固件:Linux 2.6 SDK。
MCU的性價比也是選型時考慮的重要方面。
(2)電源模塊
持續(xù)穩(wěn)定的供電能力是硬件電路板正常工作的前提,設計的電源模塊可以提供12V,2A的供電能力,通過降壓的方式輸出3.3V,5V電壓。其中,5V的電壓提供給USB接口使用,3.3V的電壓給MCU模塊以及大部分的接口模塊使用。
(3)接口模塊、接口擴展模塊
接口擴展模塊是對MCU已提供的接口類型進行二次拓展,增加可接入的產品類型。接口按照功能可劃分為3種類型,分別是級聯(lián)接口、外設接口以及內部調試接口。
①級聯(lián)接口:用于智能網關的網絡接入以及多個智能網關的級聯(lián)操作。
WAN接口用于接入光纖,實現(xiàn)最頂端智能網關的網絡接入,接口形式為RJ45接口;
LAN接口用于多個智能網關做級聯(lián),確保所有下掛網關都能夠實現(xiàn)與外網的連接。現(xiàn)階段支持4路LAN口鏈接,在實現(xiàn)網絡拓撲分層的前提下減少因為層級過于深入導致整條線路上的通信異常。
②外設接口:用于產品的接入。
UART接口用于連接外界其他控制板;
RS485接口可以外接地暖、窗簾等設備;
USB HOST接口是為后續(xù)增加外部模塊或者進行數據通信時使用,可以外接U盤或者其他外設;
SPI接口是串行總線接口,外部預留有4PIN端子,方便外接其他設備;
DIDO接口,DI接口用于接入干接點和濕接點數字量,DO用于進行開關控制,設計中預留了多個輸入/輸出接口;
ZigBee無線通訊模組通過UART接口與智能網關核MCU連接,擴展網關支持的網絡拓撲。
③內部調試接口:用于智能網關的調試。
UART接口,通過測試點來查看當前日志信息以及當前產品狀態(tài)。
(4)顯示模塊
使用LED指示燈表明智能網關當前狀態(tài),包含以下3種狀態(tài)。
①網絡狀態(tài)指示燈,指示當前網絡連接是否正常;
②電源指示燈,指示硬件板供電情況;
③異常狀態(tài)指示燈,顯示外接插件的功能狀態(tài)。
(5)輸入模塊
智能網關的輸入功能是通過按鍵實現(xiàn)的,按鍵按照功能可劃分為兩類,一類用來復位智能網關的Wi-Fi網絡;另外一類是復用按鍵,單擊進入配網模式,長按恢復出廠模式。
綜上,設計的網關硬件部分原理圖如圖3所示。

圖4 網關數據交互簡圖

圖5 智能網關軟件業(yè)務流程圖
智能網關軟件的主要功能是實現(xiàn)用戶端對產品端的控制,即將App的控制指令下發(fā)給產品,將產品的狀態(tài)信息上報給用戶,軟件內部結構以及簡要的數據交互示意如圖4所示。
如圖4所示,基于應用層提供的SDK,產品可以通過智能網關和云端進行數據通信及交互;硬件層負責與產品端進行通信;中間層充當了硬件層與應用層之間的橋梁,負責數據的解析,實現(xiàn)了產品協(xié)議的自動適配,如RS232轉TCP、RS485轉TCP、UART轉TCP等,其中,涉及到接口及協(xié)議格式均符合相應國標中的要求。智能網關軟件的業(yè)務流程如圖5所示。
智能網關待接收的指令分為兩類,一類是云端下發(fā)的控制指令,另一類是產品端上報的狀態(tài)指令,不論哪一種格式的指令,都需要經過中間層的協(xié)議解析模塊進行多協(xié)議的轉換,再下發(fā)或者上報給對應的模塊,完成App與產品的數據交互。
用戶對產品的控制,主要的應用情形可分為以下兩類:
(1)基本控制
用戶通過App可以控制不同的產品,例如地暖、窗簾、排氣、空調等。

圖6 局域網通訊模型

圖7 廣域網通訊模型

圖8 產品對象數據結構
每個產品可以實時上報數據,用戶可以通過App看到以往的歷史數據。同時,每次打開App都可以獲取當前產品狀態(tài)值,也可以查看當前產品是處于在線狀態(tài)還是離線狀態(tài)。
(2)智能控制
智能控制是指用戶可以通過App控制家里的所有產品,因此,智能控制的實質是產品的聯(lián)動控制。家庭安防是聯(lián)動控制的主要應用場景,其核心是在智能網關的軟件層面通過多種通信協(xié)議來管理和收集不同產品的信息,進而觸發(fā)相關的事件,起到安防作用。智能網關在家庭應用中可以設置不同的安防模式,主要有以下幾種:
①在家報警模式
在這種模式下,家里有人,如果產品當中的門磁或者移動傳感器觸發(fā)報警,智能網關根據收到的信號,可以通過LED燈或者揚聲器來播放報警鈴聲,起到提示作用。
②離家報警模式
在這種模式下,家里無人,如果產品當中的門磁設備或者移動傳感器設備觸發(fā)報警,智能網關根據收到的信號,立刻和云端溝通,發(fā)送推送消息到App,用戶在最短時間獲取到報警信息,可以通過智能網關控制攝像頭開啟查看房屋狀態(tài),或者直接跟相關部門溝通,采取安全措施。
③夜晚模式
在這種模式下,家里有人但正在休息,如果發(fā)生報警,智能網關會通過自身揚聲器或者LED燈發(fā)出提示,讓家庭人員迅速起來應對突發(fā)情況。
④非報警模式
這種模式下,智能網關不會發(fā)送任何報警信息,即使產品觸發(fā)報警,也只會在App推送一條消息。
在硬件結構確定的前提下,智能網關軟件的各部分功能是在實際應用中不斷優(yōu)化提升的,以下分別對網絡模式轉換以及產品管理的實現(xiàn)方案進行簡明闡述。
(1)網絡模式轉換
不論是局域網環(huán)境還是廣域網環(huán)境,都要確保用戶對產品的控制。為應對外界網絡模式的變化,在智能網關軟件中設置網絡雙通道模式,即在廣域網出現(xiàn)故障的情況下,離線模式仍可組成局域網使用App控制產品,確保每一種網絡狀態(tài)下網關都能正常使用。
局域網通訊是指App和智能網關處于同一個局域網內,通過TCP或UDP協(xié)議直接通信,通信模型如圖6所示。
App與智能網關間的局域網通信主要包括以下過程:
發(fā)現(xiàn)操作:App發(fā)送UDP廣播包,智能網關響應UDP廣播包。同時智能網關上電后也會發(fā)送UDP廣播宣告存在。App需要發(fā)現(xiàn)智能網關后才能與之做進一步交互。
連接操作:App發(fā)現(xiàn)智能網關后,與其建立TCP連接。
綁定操作:建立用戶與智能網關的綁定關系。
登錄操作:App與智能網關建立TCP連接后,需登錄后方可操控產品。
操作產品:智能網關在設定周期內查詢下掛產品的狀態(tài)并基于TCP通道向綁定的App上報狀態(tài),同時會接收從綁定App下發(fā)的遠程控制指令給產品。
廣域網通訊是指智能網關與云端通信采用MQTT和HTTP兩種方式通訊。HTTP方式主要完成智能網關注冊、配置、OTA升級等功能,MQTT方式完成產品狀態(tài)上報及遠程控制指令接收的功能。通信模型如圖7所示。
App與智能網關的廣域網通信主要包括以下過程:
智能網關注冊:首次上電時智能網關需要在云端注冊,并得到唯一標識碼。
智能網關配置:通過HTTP獲取M2M服務器的地址和端口號。
OTA:智能網關每次啟動時,向云端詢問有沒有新的固件可以更新。
狀態(tài)上報和遠程控制:智能網關主動與M2M服務器建立長連接并保持該連接,在周期內查詢產品的狀態(tài)并向云端上報,同時會接受從云端下發(fā)的遠程控制指令給產品。
(2)產品管理
產品管理是指當網關下掛產品的種類或者數量發(fā)生改變時,例如,初次配置的智能網關下掛的產品包括蘭舍新風機(RS485接口)、2路開關面板(Wi-Fi接口),由于需求變更,下掛產品更替為海林地暖(RS485接口)、智能插座(Wi-Fi接口)以及日光燈(DIDO接口),此時云端管理平臺會對產品信息進行重新配置,生成新的工程配置文件以及功能描述文件,智能網關檢測到文件內容發(fā)生改變會下載最新版本的配置內容,在軟件中采用通用的數據結構來描述單個產品,并設計了產品管理器,多臺產品通過鏈表的方式加入到管理器中,實現(xiàn)對下掛產品的統(tǒng)一管理。用到的數據結構及產品管理器如圖8、圖9所示。

圖9 產品管理鏈表
綜上,本文提出一種多協(xié)議互操作智能網關的實現(xiàn)方式,給出硬件及軟件的設計方案,并依據實際應用需求優(yōu)化了軟件結構,所設計的智能網關具有以下幾點優(yōu)勢:
(1)支持多協(xié)議轉換,包含DIDO、RS485、RS232、Wi-Fi等協(xié)議,對接入智能網關產品的廠商、品牌以及種類不做限制,做到真正意義上的互聯(lián)互通和互操作。
(2)靈活度高,可以依據用戶需求定制聯(lián)動以及場景模式,能夠滿足不同應用場景的差異化需求。例如回家模式、離家模式、起床模式、睡眠模式、報警模式等。
(3)能夠在云端實現(xiàn)產品的統(tǒng)一管理,方便用戶增加、刪除產品,靈活度高,適用于多種場所,例如居家、實驗室、工業(yè)現(xiàn)場、大型別墅等環(huán)境。
(4)開辟網絡雙通道,既支持廣域網控制也支持局域網控制,廣域網出現(xiàn)故障的情況下,離線模式仍可組成局域網使用App控制產品。