張松峰 陳帆
摘 要:針對現(xiàn)有智能燈光系統(tǒng)協(xié)議不統(tǒng)一,不具備互操作性的問題,基于ZigBee 協(xié)議ZLL規(guī)范設(shè)計了具備遠程訪問與控制功能的智能燈光系統(tǒng)。文中基于TI CC2530及Z-Stack協(xié)議棧開發(fā)了ZigBee網(wǎng)絡(luò),論述了Z-Stack協(xié)議棧中的ZCL庫及ZLL規(guī)范,并給出了基于云平臺的智能燈光系統(tǒng)架構(gòu),同時基于S5PV210及嵌入式Linux系統(tǒng)設(shè)計了網(wǎng)關(guān)系統(tǒng),該系統(tǒng)能夠接入云平臺并與ZigBee協(xié)調(diào)器通信。實際測試表明,系統(tǒng)能夠通過云平臺實現(xiàn)遠程訪問并通過Z-Stack ZCL API實現(xiàn)控制器對燈的操控,并能夠滿足ZLL規(guī)范。
關(guān)鍵詞:ZigBee; ZLL;智能燈光;遠程控制
中圖分類號:TN915 文獻標識碼:A 文章編號:2095-1302(2016)05-00-03
0 引 言
人們的生活及工業(yè)生產(chǎn)中存在著大量的照明系統(tǒng),特別是大型樓宇內(nèi)會存在大量的燈光系統(tǒng),對這些燈光系統(tǒng)進行智能化控制能夠?qū)崿F(xiàn)節(jié)能及靈活的控制策略。由ZigBee聯(lián)盟制定的ZigBee通信協(xié)議具有短距離、低復(fù)雜度、自組網(wǎng)、低功耗等特點,主要針對物聯(lián)網(wǎng)應(yīng)用。聯(lián)盟同時制定了ZCL(ZigBee Cluster Library,ZCL),基于ZCL可實現(xiàn)通信、控制的標準化,以便不同廠家的設(shè)備可以互聯(lián)互通。近幾年來,國內(nèi)外大量學(xué)者基于ZigBee技術(shù)開發(fā)設(shè)計了智能家居[1-5,7]、智能燈光及特定領(lǐng)域物聯(lián)網(wǎng)應(yīng)用系統(tǒng),文獻[5]基于Cortex-A8處理器將ZigBee網(wǎng)絡(luò)與以太網(wǎng)連通,使設(shè)計的智能家居系統(tǒng)具備遠程控制功能。但這些系統(tǒng)基本都采用自定義應(yīng)用層通信協(xié)議,不具備互聯(lián)互通的特性。只有實現(xiàn)通信參數(shù)具體化及不同廠家設(shè)備的互操作,才符合ZigBee協(xié)議設(shè)計的初衷。文獻[6]論述了開發(fā)符合標準協(xié)議規(guī)范的產(chǎn)品的必要性,并研究了基于TI Z-Stack協(xié)議棧開發(fā)符合ZigBee協(xié)議HA(Home Automation,HA)標準的智能家居系統(tǒng)的方法,但并沒有給出實際的系統(tǒng)設(shè)計。本文基于TI公司Z-Stack協(xié)議棧論述并設(shè)計了符合ZigBee協(xié)議ZLL(ZigBee Light Link,ZLL)規(guī)范的智能燈光系統(tǒng),能夠?qū)崿F(xiàn)對燈光系統(tǒng)的智能及遠程控制。
1 ZCL庫及ZLL規(guī)范
ZigBee協(xié)議是基于分層的架構(gòu),其物理層及MAC層采用IEEE802.15.4標準,上層的網(wǎng)絡(luò)層、應(yīng)用層等由ZigBee聯(lián)盟定義。協(xié)議中引入了規(guī)范(Profile)和簇(Cluster)的概念,規(guī)范針對不同的應(yīng)用領(lǐng)域,如用于智能家居的HA規(guī)范,用于智能照明的ZLL規(guī)范等。
1.1 ZCL庫
在一個規(guī)范下有不同的簇,每一個簇對應(yīng)一個應(yīng)用,如一個調(diào)光器所具備的命令:開燈、關(guān)燈、變亮等組成一個簇,簇是命令與屬性的集合。當(dāng)設(shè)備收到一個空中消息時根據(jù)簇ID及命令I(lǐng)D做出相應(yīng)的處理,基于ZCL庫協(xié)議開發(fā)的設(shè)備能夠?qū)崿F(xiàn)互聯(lián)互操作。
每個節(jié)點的簇分為輸入簇和輸出簇,輸入簇列表指明了該端點能夠接受的簇,輸出簇列表指明了該端點能夠發(fā)出的簇。只有當(dāng)一個端點的輸出簇與另一個端點的輸入簇相匹配時才可以實現(xiàn)設(shè)備的操作。
Z-Stack中的ZCL[8]庫API基于Client/Server模型,Server端存儲屬性,Client端發(fā)出操作屬性的命令。整個ZCL庫分為基礎(chǔ)層和功能域兩部分,基礎(chǔ)層是相應(yīng)命令的底層實現(xiàn),功能域?qū)崿F(xiàn)不同應(yīng)用領(lǐng)域的特有功能,功能域的命令通過對基礎(chǔ)層函數(shù)的調(diào)用來實現(xiàn)。
1.2 ZLL規(guī)范
ZLL[9]規(guī)范是燈光系統(tǒng)規(guī)范,構(gòu)建在ZigBee-pro棧結(jié)構(gòu)上。該規(guī)范定義了燈光系統(tǒng)中控制器節(jié)點、燈節(jié)點要實現(xiàn)的不同簇及命令,ZLL規(guī)范指明了不同燈節(jié)點,如on/off型、調(diào)光型、調(diào)色溫型等相關(guān)的簇命令,實現(xiàn)這些命令能夠保證不同廠家的設(shè)備可以進行互操作。
在ZLL規(guī)范的功能描述部分詳細定義了Light Link設(shè)備組網(wǎng)及通信的具體參數(shù)。如規(guī)范定義:ZLL設(shè)備使用ZigBee-Pro協(xié)議棧,設(shè)備版本號為0x02,profile ID為0xc05e。
2 智能燈光系統(tǒng)架構(gòu)
ZigBee網(wǎng)絡(luò)主要由終端節(jié)點、路由器、協(xié)調(diào)器三種角色的設(shè)備組成,協(xié)調(diào)器負責(zé)網(wǎng)絡(luò)的形成及入網(wǎng)管理,路由器實現(xiàn)網(wǎng)絡(luò)范圍的擴充及數(shù)據(jù)中轉(zhuǎn),終端節(jié)點負責(zé)具體應(yīng)用設(shè)備的控制及數(shù)據(jù)采集。系統(tǒng)主要由云平臺、網(wǎng)關(guān)、ZigBee網(wǎng)絡(luò)三部分構(gòu)成,系統(tǒng)結(jié)構(gòu)如圖1所示。云平臺實現(xiàn)手機及PC端的控制接入,能夠遠程控制并查看ZigBee設(shè)備;網(wǎng)關(guān)實現(xiàn)ZigBee協(xié)議與以太網(wǎng)協(xié)議的數(shù)據(jù)交換,是云平臺與ZigBee網(wǎng)絡(luò)的橋梁。
2.1 云平臺系統(tǒng)設(shè)計
云平臺實現(xiàn)遠程訪問ZigBee網(wǎng)絡(luò)設(shè)備,能夠?qū)υO(shè)備進行實時查看、控制等操作,不同系統(tǒng)的物聯(lián)網(wǎng)云平臺功能具有一定的共性,且構(gòu)建云平臺成本較高,因而一些公司搭建了公用的云平臺系統(tǒng),本系統(tǒng)正是采用由中移物聯(lián)網(wǎng)開發(fā)的onenet云平臺[10]系統(tǒng)實現(xiàn)遠程訪問控制?;趏nenet平臺提供的API實現(xiàn)向云端提交數(shù)據(jù)及獲取數(shù)據(jù)的功能。onenet平臺與網(wǎng)關(guān)之間基于HTTP協(xié)議通信,采用JSON格式進行數(shù)據(jù)交換。
根據(jù)onenet平臺API接口文檔定義,向平臺提交數(shù)據(jù)點的HTTP消息的請求行為及請求報頭在本系統(tǒng)中為:
GET /devices/733***/datapoints HTTP/1.1
api-key: z*********=sFwTcLDTkMQ=
Host: api.heclouds.com/r/n/r/n
請求HTTP消息可以不包含消息正文,不包含正文時,系統(tǒng)將返回所請求設(shè)備下所有數(shù)據(jù)流的最新數(shù)據(jù)。
收到HTTP消息后,onenet平臺會返回響應(yīng)消息,響應(yīng)的狀態(tài)行為:
HTTP/1.1 200 OK
指明HTTP消息正確接收。在消息正文部分以JSON格式包含了請求設(shè)備下所包含的數(shù)據(jù)流最新數(shù)據(jù)值及時間信息。本系統(tǒng)獲取數(shù)據(jù)點的一次返回消息的正文部分如下所示:
{“errno”:0,“data”:{“count”:1,“datastreams”:[{“datapoints”:[{“at”:“2016-01-19 16:35:40.000”,“value”:0}],“id”:“key0”}]},“error”:“succ”}
鍵datastreams的鍵值是包含數(shù)據(jù)點的數(shù)組,鍵datapoints的鍵值指明了id為key0的數(shù)據(jù)流的值value為0。
2.2 網(wǎng)關(guān)系統(tǒng)設(shè)計
網(wǎng)關(guān)系統(tǒng)負責(zé)ZigBee協(xié)議與以太網(wǎng)協(xié)議轉(zhuǎn)換,是ZigBee網(wǎng)絡(luò)與云平臺的橋梁。本系統(tǒng)網(wǎng)關(guān)基于Cortex-A8內(nèi)核的S5PV210處理器設(shè)計,采用友善之臂的Smart210開發(fā)平臺,并通過UART口與ZigBee協(xié)調(diào)器通信,由于通信距離短,所以采用4線制TTL電平信號,接口連線如圖2所示。
網(wǎng)關(guān)系統(tǒng)軟件基于嵌入式Linux操作系統(tǒng),通過定時信號使用戶程序周期性地向云平臺服務(wù)器提交或查詢數(shù)據(jù),并通知ZigBee協(xié)調(diào)器。
2.3 ZigBee網(wǎng)絡(luò)系統(tǒng)設(shè)計
ZigBee網(wǎng)絡(luò)由協(xié)調(diào)器、路由器、終端節(jié)點組成,基于TI公司的CC2530芯片開發(fā),CC2530片上具備2.4 G無線收發(fā)器,硬件AES加解密,支持IEEE802.15.4標準,能夠單芯片配合TI提供的Z-Stack協(xié)議棧實現(xiàn)ZigBee網(wǎng)絡(luò)的組建及通信。
圖2 網(wǎng)關(guān)與ZigBee協(xié)調(diào)器通信接口
ZigBee節(jié)點組成結(jié)構(gòu)如圖3所示,節(jié)點系統(tǒng)以CC2530為核心,配合電源模塊、按鍵模塊、燈光控制模塊組成,并引出UART接口,以便與網(wǎng)關(guān)通信。
圖3 ZigBee節(jié)點組成圖
軟件部分配合Z-Stack協(xié)議棧開發(fā)。協(xié)調(diào)器與網(wǎng)關(guān)通信采用Client/Server模型,網(wǎng)關(guān)作為Client端,協(xié)調(diào)器作為Server端,網(wǎng)關(guān)周期性地主動與協(xié)調(diào)器通信,獲取數(shù)據(jù)或提交數(shù)據(jù)。協(xié)調(diào)器軟件流程圖如圖4所示。
圖4 協(xié)調(diào)器軟件流程圖
3 智能燈光系統(tǒng)簇結(jié)構(gòu)設(shè)計
本系統(tǒng)中實現(xiàn)了開關(guān)節(jié)點對燈節(jié)點的控制及復(fù)位操作,燈節(jié)點作為輸入節(jié)點,開關(guān)節(jié)點作為輸出節(jié)點。兩種節(jié)點可以實現(xiàn)以下兩個簇:
ZCL_CLUSTER_ID_GEN_BASIC,
ZCL_CLUSTER_ID_GEN_ON_OFF
本系統(tǒng)軟件部分基于TI公司的Z-Stack協(xié)議棧設(shè)計,Z-Stack提供了ZCL簇API接口,基于函數(shù)回調(diào)的方式實現(xiàn)命令處理,其開發(fā)流程主要包括以下步驟:
(1)ZCL初始化;
(2)ZCL命令回調(diào)函數(shù)注冊;
(3)ZCL屬性注冊。
ZCL初始化負責(zé)注冊相應(yīng)端點(endpoint)到AF層。通過調(diào)用函數(shù):
void zclHA_Init(SimpleDescriptionFormat_t *simpleDesc)實現(xiàn)對端點的注冊。
其回調(diào)函數(shù)的數(shù)據(jù)結(jié)構(gòu)是一個包含多個函數(shù)指針的結(jié)構(gòu)體,每一個函數(shù)指針對應(yīng)不同命令的處理,當(dāng)收到相應(yīng)命令時便會調(diào)用該命令對相應(yīng)的函數(shù)做處理?;卣{(diào)函數(shù)注冊API為:
ZStatus_t zclGeneral_RegisterCmdCallbacks (uint8 endpoint, zclGeneral_AppCallbacks_t *callbacks)
通過調(diào)用該函數(shù)實現(xiàn)端點與對應(yīng)回調(diào)函數(shù)的綁定及注冊,當(dāng)收到相應(yīng)命令時系統(tǒng)會調(diào)用該命令對應(yīng)的回調(diào)函數(shù)。
屬性注冊通知系統(tǒng)該節(jié)點不同命令所具備的相關(guān)屬性值,屬性存儲在一個數(shù)組中,該數(shù)組的每一個元素對應(yīng)一個屬性,本系統(tǒng)中的一個屬性記錄結(jié)構(gòu)如下:
{
ZCL_CLUSTER_ID_GEN_ON_OFF, // cluster ID
{ // Attribute record
ATTRID_ON_OFF, //Attribute ID
ZCL_DATATYPE_UINT8, // Data Type
ACCESS_CONTROL_READ, // Read/write
(void *)&zclHomeAppSw_OnOff // Pointer to data field
}
}
每一個簇可以有多個屬性值,每一條屬性都有所屬的簇,屬性包含屬性ID、數(shù)據(jù)類型、讀寫權(quán)限及數(shù)據(jù)域等參數(shù)。
本系統(tǒng)中主要有開關(guān)節(jié)點和燈節(jié)點兩種終端節(jié)點,兩種節(jié)點要分別實現(xiàn)所需要的簇命令處理函數(shù)。
開關(guān)節(jié)點要實現(xiàn)的簇命令回調(diào)函數(shù)包括:
zclHomeAppSw0_BasicResetCB, //復(fù)位操作
zclHomeAppSw0_IdentifyCB, //確認操作
燈節(jié)點要實現(xiàn)的簇命令回調(diào)函數(shù)包括:
zclSampleLight_BasicResetCB,//復(fù)位操作
zclSampleLight_IdentifyCB, //確認操作
zclSampleLight_OnOffCB, //開關(guān)命令
4 系統(tǒng)測試
本系統(tǒng)基于ZigBee ZLL規(guī)范設(shè)計,系統(tǒng)的核心功能是控制器發(fā)出開關(guān)命令,燈節(jié)點收到信號后做出執(zhí)行動作。系統(tǒng)由一個協(xié)調(diào)器、4個節(jié)點(分為2個燈,2個控制器)、一個網(wǎng)關(guān)及onenet云平臺構(gòu)成。在實驗室環(huán)境中做了系統(tǒng)測試。
開關(guān)燈命令通過調(diào)用Z-Stack API函數(shù)實現(xiàn),函數(shù)格式如下:
zclGeneral_SendOnOff_CmdToggle (ZCLHOMEAPPSW0_ENDPOINT, &zclHomeAppSW0_DstAddr, false, HomeAppSW0_TransID );
測試分2種,ZigBee控制節(jié)點按鍵控制命令和onenet平臺控制命令如下所示:
(1)通過對ZigBee節(jié)點按鍵操作控制Light狀態(tài),燈節(jié)點和控制節(jié)點相距10 m測試正常,能夠有效通信并控制。
(2)通過onenet平臺對系統(tǒng)測試,網(wǎng)關(guān)通過路由器接入Internet。轉(zhuǎn)變平臺按鍵狀態(tài),ZigBee端收到信號并能夠做出響應(yīng),實現(xiàn)了系統(tǒng)的設(shè)計目標。
5 結(jié) 語
本文設(shè)計了基于ZigBee協(xié)議ZLL規(guī)范的智能燈光系統(tǒng),實現(xiàn)了基于以太網(wǎng)的遠程訪問控制,系統(tǒng)的核心在于能夠符合ZLL規(guī)范,免除了自定義私有應(yīng)用層協(xié)議的麻煩,便于不同廠家設(shè)備的互聯(lián)互操作。縱觀ZigBee技術(shù)的發(fā)展,以后的研究重點應(yīng)放在基于領(lǐng)域規(guī)范的標準化設(shè)計方面,以便實現(xiàn)產(chǎn)品的標準化開發(fā)。
參考文獻
[1]尹紀庭,袁佳,焦志曼,等.基于ARM和Zigbee的智能家居控制系統(tǒng)研究與開發(fā)[J].計算機測量與控制,2013,21(9):2451-2454.
[2]吳文忠,李萬磊.基于ARM和ZigBee的智能家居系統(tǒng)[J].計算機工程與設(shè)計,2011,32(6):1987-1990.
[3]滿莎,楊恢先,彭友,等.基于ARM9的嵌入式無線智能家居網(wǎng)關(guān)設(shè)計[J].計算機應(yīng)用,2010,30(9):2541-2544.
[4]龐泳,李光明.基于Zigbee的智能家居系統(tǒng)改進研究[J].計算機工程與設(shè)計,2014,35(5):1547-1550,1582.
[5] Shuyan Zhang,Pingping Xiao,Juan Zhu, et al.Design of Smart Home Control System Based on Cortex-A8 and ZigBee[C].Software Engineering and Service Science(ICSESS),2014 5th IEEE International Conference on,2014:675-678.
[6]姚志鵬.基于Z-stack協(xié)議棧ZCL庫且符合HA規(guī)范的ZigBee應(yīng)用開發(fā)[J].物聯(lián)網(wǎng)技術(shù),2013,3(4):54-56.
[7] Chunlai Zhou,Wenhui Huang,Xiaoyun Zhao.Study on architecture of smart home management system and key devices[C].International Conference on Computer Science and Network Technology, 2013:1255-1258.
[8] Texas Instruments, Inc. Z-Stack ZigBee Cluster Library Application Programming Interface[R].San Diego, California USA: Texas Instruments, Inc.,2011.
[9] ZigBee Alliance. ZigBee Light Link Standard[R].San Ramon, CA: ZigBee Alliance, Inc., 2012.
[10] 中國移動物聯(lián)網(wǎng)開放平臺[EB/OL]. Available:http://open.iot.10086.cn/