王慶波,葉錫恩,王賢禮
(寧波大學(xué) 信息科技與工程學(xué)院,浙江 寧波 315211)
基于RT5350的家庭網(wǎng)關(guān)的設(shè)計(jì)與實(shí)現(xiàn)
王慶波,葉錫恩,王賢禮
(寧波大學(xué) 信息科技與工程學(xué)院,浙江 寧波 315211)
將Zigbee無(wú)線傳感網(wǎng)絡(luò)與嵌入式處理器、嵌入式操作系統(tǒng)相結(jié)合,構(gòu)建一個(gè)家庭網(wǎng)關(guān)。以RT5350為主控芯片,使用多塊CC2530開(kāi)發(fā)板組建一個(gè)Zigbee網(wǎng)絡(luò),實(shí)現(xiàn)一個(gè)完整的家庭網(wǎng)關(guān)。在RT5350處理器中植入嵌入式Linux操作系統(tǒng),移植Web服務(wù)器Boa和嵌入式數(shù)據(jù)庫(kù)SQLite。Zigbee終端節(jié)點(diǎn)獲取到傳感器數(shù)據(jù),通過(guò)Zigbee無(wú)線網(wǎng)絡(luò)傳輸給Zigbee協(xié)調(diào)器,Zigbee協(xié)調(diào)器通過(guò)串口發(fā)送給處理器,采集的數(shù)據(jù)保存在SQLite嵌入式數(shù)據(jù)庫(kù)中。局域網(wǎng)客戶端可以通過(guò)連接WIFI監(jiān)控實(shí)時(shí)數(shù)據(jù),遠(yuǎn)程用戶可以通過(guò)連接Internet查看實(shí)時(shí)數(shù)據(jù),實(shí)現(xiàn)了Zigbee、以太網(wǎng)和WIFI的互通互聯(lián)。
Zigbee;RT5350;CGI;網(wǎng)關(guān);遠(yuǎn)程監(jiān)控
隨著物聯(lián)網(wǎng)技術(shù)的快速發(fā)展,智能家居的概念也開(kāi)始深入人心,人們對(duì)智能化的家居環(huán)境充滿了向往。智能家居使得現(xiàn)代生活變得更為便利,例如,下班之前用戶可以查看家里的溫度,判斷是否需要提前打開(kāi)空調(diào),通過(guò)終端設(shè)備(PC機(jī)或智能手機(jī)等)可以對(duì)空調(diào)、電熱水器等設(shè)備進(jìn)行控制。家庭網(wǎng)關(guān)作為智能家居的重要部分。針對(duì)性能、價(jià)格和硬件接口等多方面考慮,給出了一種基于RT5350、Zigbee技術(shù)的家庭網(wǎng)關(guān)系統(tǒng)方案,實(shí)現(xiàn)Internet、 WIFI和Zigbee多種網(wǎng)絡(luò)互聯(lián)互通。
1.1 Zigbee模塊
Zigbee無(wú)線網(wǎng)絡(luò)是由IEEE802.15.4工作組和Zigbee聯(lián)盟共同定制的無(wú)線通信協(xié)議,Zigbee是一種新型的無(wú)線通信技術(shù),特點(diǎn)是低功耗、短距離、低速度、低延時(shí)、保密性好等,使得Zigbee技術(shù)在物聯(lián)網(wǎng)智能家居行業(yè)獲得廣泛的使用[1]。Zigbee模塊按照節(jié)點(diǎn)的類型進(jìn)行分類,可以分為3類,即協(xié)調(diào)器(Coordinator)、終端(end-device)和路由器(router),每個(gè)Zigbee網(wǎng)絡(luò)只允許有一個(gè)Zigbee的協(xié)調(diào)器,主要負(fù)責(zé)組建、維護(hù)Zigbee網(wǎng)絡(luò)和控制節(jié)點(diǎn)等用途,終端節(jié)點(diǎn)主要負(fù)責(zé)數(shù)據(jù)的采集,路由器負(fù)責(zé)數(shù)據(jù)包的路由選擇[2]。
系統(tǒng)硬件采用的是TI公司的完全支持Zigbee2007協(xié)議的單片機(jī)CC2530。CC2530是用于2.4 GHz或IEEE 802.15.4、Zigbee和RF4CE應(yīng)用的一個(gè)SoC解決方案,該產(chǎn)品可以用很低的材料成本建立強(qiáng)大的網(wǎng)絡(luò)節(jié)點(diǎn)。
1.2 RT5350模塊
系統(tǒng)主控制器結(jié)構(gòu)體如圖1所示,主控制器使用的是Ralink(雷凌)公司的RT5350,其特點(diǎn)是低價(jià)位、低功耗、集成度高和多接口等。RT5350采用雷凌公司第二代802.11n技術(shù),最大傳輸率150 Mbps。將RF模塊和CPU集成在一塊芯片上。CPU是一顆高性能的MIPS 24Kc處理器,主頻最高可達(dá)360 MHz,兼容IEEE802.11n協(xié)議,支持嵌入式Linux系統(tǒng)。采用Ralink SDK 3.6作為RT5350開(kāi)發(fā)平臺(tái)的kernel、根文件系統(tǒng)的軟件開(kāi)發(fā)源,燒寫(xiě)到開(kāi)發(fā)板,搭建好嵌入式Linux開(kāi)發(fā)環(huán)境。
圖1 RT5350開(kāi)發(fā)板結(jié)構(gòu)框圖
設(shè)計(jì)的整體系統(tǒng)框架圖如圖2所示。
圖2 系統(tǒng)結(jié)構(gòu)框架圖
主要硬件設(shè)備主要包括了RT5350和Zigbee模塊,通過(guò)家庭網(wǎng)關(guān)實(shí)現(xiàn)數(shù)據(jù)的上傳和下發(fā)功能。通過(guò)一連串的數(shù)據(jù)傳輸,終端節(jié)點(diǎn)上的傳感器數(shù)據(jù)最終到達(dá)客戶端瀏覽器,實(shí)現(xiàn)了數(shù)據(jù)的上傳,同時(shí)通過(guò)客戶端瀏覽器的命令可以控制終端節(jié)點(diǎn),從而實(shí)現(xiàn)數(shù)據(jù)的下發(fā)[3]。
2.1 傳感器介紹
通過(guò)3種傳感器采集室內(nèi)環(huán)境相關(guān)數(shù)據(jù),即通過(guò)溫濕度傳感器DTH11得到室內(nèi)的溫濕度信息,MQ2煙霧探測(cè)傳感器采集室內(nèi)煙霧濃度,HC-SR501人體紅外傳感器探測(cè)室內(nèi)是否有人。分別編寫(xiě)傳感器數(shù)據(jù)采集程序,將這些傳感器與CC2530終端節(jié)點(diǎn)相連接,從而采集到家庭環(huán)境的相關(guān)參數(shù)[4]。
2.2 Zigbee終端節(jié)點(diǎn)與協(xié)調(diào)器通信
Zigbee協(xié)調(diào)器通過(guò)Zigbee網(wǎng)絡(luò)協(xié)議與Zigbee路由器和Zigbee終端節(jié)點(diǎn)進(jìn)行通信,這樣就使傳感器采集的數(shù)據(jù)上傳到了協(xié)調(diào)器,協(xié)調(diào)器、終端、路由器是同樣的CC2530開(kāi)發(fā)板,通過(guò)編程確定其屬性,Zigbee模塊的軟件開(kāi)發(fā)平臺(tái)是IAR,使用Zigbee 2007協(xié)議棧ZStack-CC2530為基礎(chǔ)進(jìn)行軟件開(kāi)發(fā)。通過(guò)Tools工程下的3個(gè)文件f8WCord.cfg、f8WEndev.cfg和f8Wrouter.cfg文件來(lái)確定CC2530設(shè)備具有的是路由器、終端還是協(xié)調(diào)器的功能[5]。分別編寫(xiě)協(xié)調(diào)器、路由器和終端的程序,然后分別下載到不同的開(kāi)發(fā)板中,從而組建了一個(gè)小規(guī)模的Zigbee無(wú)線傳感網(wǎng)絡(luò)。
2.3 數(shù)據(jù)處理程序和SQLite數(shù)據(jù)庫(kù)
Zigbee協(xié)調(diào)器通過(guò)串口與RT5350開(kāi)發(fā)板連接。系統(tǒng)使用了USB轉(zhuǎn)串口,對(duì)RT5350開(kāi)發(fā)板內(nèi)核進(jìn)行配置,移植Boa服務(wù)器和SQLite數(shù)據(jù)庫(kù),同時(shí)在RT5350開(kāi)發(fā)板中加入串口驅(qū)動(dòng),在開(kāi)發(fā)板中運(yùn)行數(shù)據(jù)處理程序。對(duì)協(xié)調(diào)器發(fā)送的數(shù)據(jù)進(jìn)行處理,將處理后的數(shù)據(jù)存儲(chǔ)在SQLite數(shù)據(jù)庫(kù)中。
在數(shù)據(jù)處理程序中,初始化串口設(shè)備文件,填充termios結(jié)構(gòu)體,設(shè)置波特率為115 200,數(shù)據(jù)格式為8位,無(wú)校驗(yàn)位,1位停止位[6]。
在數(shù)據(jù)處理程序中調(diào)用函數(shù)pthread_mutex_init(&mutex,NULL)初始化互斥量;然后調(diào)用pthread_ create創(chuàng)建兩個(gè)線程,一個(gè)線程對(duì)串口文件進(jìn)行寫(xiě),另一個(gè)線程對(duì)串口文件進(jìn)行讀,在各自的線程中調(diào)用pthread_mutex_trylock(&mutex)對(duì)線程進(jìn)行加鎖。在讀取串口文件線程中,將讀取的數(shù)據(jù)存入SQLite數(shù)據(jù)庫(kù)中。在寫(xiě)串口文件的線程中先從消息隊(duì)列中獲取數(shù)據(jù),再寫(xiě)入串口設(shè)備文件中。
在PC機(jī)中的Linux系統(tǒng)使用mipsel-linux-gcc對(duì)數(shù)據(jù)處理程序進(jìn)行編譯鏈接,得到可執(zhí)行文件之后,通過(guò)tftp傳輸?shù)絉T5350開(kāi)發(fā)板,并在開(kāi)發(fā)板中運(yùn)行數(shù)據(jù)處理程序。最終傳感器采集的數(shù)據(jù)保存在SQLite數(shù)據(jù)庫(kù)中。
2.4 Boa服務(wù)器和CGI程序
一般而言嵌入式設(shè)備的資源相對(duì)有限,因此不會(huì)使用Linux下最常用的如Apache等服務(wù)器,一般使用一些專門(mén)為嵌入式設(shè)備設(shè)計(jì)的Web服務(wù)器,這些服務(wù)器占用較少的資源,對(duì)硬件要求較低。常見(jiàn)典型的嵌入式Web服務(wù)器有Boa和thttpd等,它們和Apache等高性能的Web服務(wù)器最大的區(qū)別就是它們是單進(jìn)程服務(wù)器,只有在完成一個(gè)用戶請(qǐng)求后才能響應(yīng)另一個(gè)用戶的請(qǐng)求,而無(wú)法并發(fā)響應(yīng),但這在嵌入式設(shè)備的應(yīng)用場(chǎng)合里已經(jīng)足夠了[7]。
Boa服務(wù)器是一個(gè)小巧而高效的運(yùn)行在Linux或Unix下的服務(wù)器,支持CGI(通用網(wǎng)關(guān)接口)[8]。在開(kāi)發(fā)板中移植Boa服務(wù)器,結(jié)合CGI技術(shù),編寫(xiě)HTML靜態(tài)網(wǎng)頁(yè)和CGI程序,通過(guò)CGI程序調(diào)用數(shù)據(jù)庫(kù)中最新的數(shù)據(jù)[9],瀏覽器訪問(wèn)Web服務(wù)器,從而得到傳感器的實(shí)時(shí)數(shù)據(jù)[10]。
圖3為CGI程序與客戶端和服務(wù)器之間的關(guān)系圖。在CGI程序編寫(xiě)的時(shí)候使用了cgic206開(kāi)發(fā)庫(kù),通過(guò)調(diào)用開(kāi)發(fā)庫(kù)中的API使得開(kāi)發(fā)更為簡(jiǎn)單,在虛擬機(jī)中編譯鏈接,將生成的cgi文件傳輸?shù)介_(kāi)發(fā)板的cgi-bin目錄下[11]。
圖3 CGI程序與客戶端和服務(wù)器之間的關(guān)系圖
在控制頁(yè)面中按下開(kāi)關(guān)按鈕的時(shí)候,通過(guò)cgic206 API函數(shù)cgiFormRadio獲取按鍵信息,采用進(jìn)程間通信技術(shù)消息隊(duì)列,在cgi程序中創(chuàng)建消息隊(duì)列,然后在數(shù)據(jù)處理中調(diào)用msgrcv函數(shù)獲取按鈕信息,再通過(guò)串口下發(fā)到Zigbee模塊[12],從而實(shí)現(xiàn)對(duì)終端設(shè)備的控制。
圖4 系統(tǒng)硬件實(shí)物圖
圖4是整個(gè)系統(tǒng)的實(shí)物圖,將傳感器與終端節(jié)點(diǎn)相互連接,給終端節(jié)點(diǎn)和協(xié)調(diào)器通上電源,組建好了Zigbee無(wú)線網(wǎng)絡(luò),協(xié)調(diào)器通過(guò)USB轉(zhuǎn)串口與RT5350開(kāi)發(fā)板連接。在RT5350開(kāi)發(fā)板上設(shè)置開(kāi)機(jī)啟動(dòng)數(shù)據(jù)處理程序和Web服務(wù)器。
系統(tǒng)以3個(gè)終端節(jié)點(diǎn)和1個(gè)協(xié)調(diào)器為例進(jìn)行測(cè)試,3個(gè)終端節(jié)點(diǎn)分別放在3個(gè)不同的房間里,RT5350開(kāi)發(fā)板和協(xié)調(diào)器放在大廳,搭建好硬件設(shè)備。
系統(tǒng)設(shè)計(jì)了溫濕度、煙霧和紅外傳感器3種數(shù)據(jù)采集頁(yè)面:1個(gè)登陸頁(yè)面和1個(gè)設(shè)備控制頁(yè)面。
3.1 家庭內(nèi)部用戶
RT5350具有AP(無(wú)線訪問(wèn)接入點(diǎn))功能,配置RT5350本地IP地址為192.168.1.103。PC機(jī)或者手機(jī)客戶端通過(guò)連接WIFI接入RT5350的AP,客戶端瀏覽器輸入http://192.168.1.103,進(jìn)入登錄界面。輸入賬號(hào)和密碼之后,選擇進(jìn)入的房間。便可以查看各個(gè)傳感器采集的數(shù)據(jù),頁(yè)面有刷新按鈕,用戶可以通過(guò)刷新按鈕,時(shí)刻獲得最新的傳感器數(shù)據(jù)。同時(shí)可以通過(guò)控制網(wǎng)頁(yè)中開(kāi)關(guān)按鈕,控制Zigbee終端節(jié)點(diǎn)上的繼電器,從而實(shí)現(xiàn)了對(duì)終端節(jié)點(diǎn)設(shè)備查看和控制。
3.2 遠(yuǎn)程客戶端
采用了通過(guò)新花生殼內(nèi)網(wǎng)版客戶端軟件實(shí)現(xiàn)外網(wǎng)用戶訪問(wèn)內(nèi)網(wǎng)服務(wù)器的方法,在花生殼官網(wǎng)申請(qǐng)一個(gè)域名,啟動(dòng)花生殼客戶端,進(jìn)行端口隱射,設(shè)置好IP地址和端口號(hào),外網(wǎng)用戶就可以訪問(wèn)內(nèi)網(wǎng)的服務(wù)器了。用戶在遠(yuǎn)程可以通過(guò)以太網(wǎng)、3G或ADSL等方式接入Internet,瀏覽器中輸入http://2013tianyajuanke.oicp.net:40838,便同樣可以進(jìn)入登錄界面了[13]。
經(jīng)過(guò)實(shí)驗(yàn)結(jié)果分析,無(wú)論是家庭內(nèi)部用戶還是遠(yuǎn)程用戶都可以完成數(shù)據(jù)的查看和家庭環(huán)境的控制。
設(shè)計(jì)的家庭網(wǎng)關(guān),經(jīng)過(guò)實(shí)驗(yàn)測(cè)試能很好地完成實(shí)驗(yàn)預(yù)期要求。通過(guò)使用新花生殼客戶端軟件實(shí)現(xiàn)了內(nèi)網(wǎng)的穿透,使得外網(wǎng)用戶可以訪問(wèn)內(nèi)網(wǎng)服務(wù)器,從而實(shí)現(xiàn)了遠(yuǎn)程監(jiān)控。內(nèi)網(wǎng)用戶可以通過(guò)連接RT5350 AP實(shí)現(xiàn)局域網(wǎng)的監(jiān)控。實(shí)現(xiàn)了Zigbee、以太網(wǎng)和WIFI網(wǎng)絡(luò)的互通互聯(lián),達(dá)到了預(yù)期的目標(biāo)。選用的硬件平臺(tái)Ralink RT5350芯片集成了AP和高性能的CPU,同時(shí)還有串口支持,功能強(qiáng)大,價(jià)格優(yōu)勢(shì)明顯,在現(xiàn)代家居環(huán)境中有很好的應(yīng)用價(jià)值。對(duì)于改變傳感器類型或者是顯現(xiàn)其他功能,系統(tǒng)只需要稍作修改即可,可擴(kuò)展性較好。在后期的開(kāi)發(fā)中將進(jìn)一步完善其功能,比如開(kāi)發(fā)嵌入式GUI,使得更為方便地查看監(jiān)控信息,添加更多的CGI程序處理模塊,使得網(wǎng)關(guān)平臺(tái)可以控制更多的家居設(shè)備。
[1]王 祥.無(wú)線傳感器網(wǎng)絡(luò)MAC協(xié)議的實(shí)現(xiàn)與分析[J].無(wú)線電工程,2012,42(2):21-24.
[2]劉洪波.基于ARM和Zigbee的網(wǎng)關(guān)設(shè)計(jì)與實(shí)現(xiàn)[D].武漢:湖北大學(xué),2013:27-28.
[3]湯莉莉,馬仟,黃偉.語(yǔ)音無(wú)線遙控智能小車設(shè)計(jì)[J].無(wú)線電工程,2014,44(12):67-69.
[4]鄒少軍.基于ARM/ZigBee技術(shù)的智能家居網(wǎng)關(guān)的研究與實(shí)現(xiàn)[D].宜昌:三峽大學(xué),2013:24-29.
[5]王小強(qiáng),歐陽(yáng)駿.Zigbee無(wú)線傳感器網(wǎng)絡(luò)設(shè)計(jì)與實(shí)現(xiàn)[M].北京:化學(xué)工業(yè)出版社,2012:48-58.
[6]王 濤.基于nRF24L01的2.4GHz無(wú)線通信系統(tǒng)設(shè)計(jì)[J].無(wú)線電通信技術(shù),2011,37(3):6-7.
[7]施忠華.基于嵌入式Linux和Sqlite的Web服務(wù)器的研究與應(yīng)用[D].南昌:南昌大學(xué),2012:3-10.
[8]王靈芝,葉美霞,張建造.基于Zigbee和BOA服務(wù)器的嵌入式智能家居的設(shè)計(jì)[J].閩南師范大學(xué)學(xué)報(bào),2014,3(85):72-73.
[9]田智春.基于嵌入式數(shù)據(jù)庫(kù)SQLite3.0的遠(yuǎn)程監(jiān)控系統(tǒng)[D].西安:西安建筑大學(xué),2010:42-44.
[10]代 成,葉 焱,劉太君,等.基于Web的遠(yuǎn)程控制系統(tǒng)的研究與實(shí)現(xiàn)[J].無(wú)線電通信技術(shù),2014,40(3):92-93.
[11]姜 龍.基于Zigbee的嵌入式家庭網(wǎng)關(guān)的設(shè)計(jì)與實(shí)現(xiàn)[D].武漢:華中師范大學(xué),2013:41-42.
[12]基于ZigBee的智能家居網(wǎng)關(guān)系統(tǒng)的研究與是實(shí)現(xiàn)[D].長(zhǎng)沙:湖南大學(xué),2010:59-62.
[13]馬 成.基于Linux的嵌入式智能家居服務(wù)器的研究與設(shè)計(jì)[D].南京:江蘇科技大學(xué),2013:52-54.
Design andImplementation of Home Gateway Based on RT5350
WANG Qing-bo,YE Xi-en,WANG Xian-li
(College ofInformation Science and Engineering,Ningbo University,Ningbo Zhejiang 315211,China)
A home gateway is formed by combining a Zigbee wireless sensor network with embedded processor and embedded operating system.By using RT5350 as the main MCU and using several CC2530 boards to form a Zigbee network,a complete home gateway is implemented.An embedded Linux operating system is implanted into the RT5350,the Web server Boa and embedded database SQLite are transplanted.The Zigbee end devices get the collected data from the sensors,then send it to the coordinator through the Zigbee wireless sensor network.The coordinator transmits the data to the processor via serial port,and the data is stored in the embedded database SQLite.The clients can monitor the real-time data by connecting to the WIFI,meanwhile the remote users can check the real-time data by connecting to the Internet,realizing the interconnection of Zigbee,Ethernet and WIFI.
Zigbee;RT5350;CGI;gateway;remote monitor
TP919.6+5
A
1003-3114(2015)06-61-4
10.3969/j.issn.1003-3114.2015.06.16
王慶波,葉錫恩,王賢禮.基于RT5350的家庭網(wǎng)關(guān)的設(shè)計(jì)與實(shí)現(xiàn)[J].無(wú)線電通信技術(shù),2015,41(6):61-64.
2015-07-02
國(guó)家自然科學(xué)基金項(xiàng)目(61471211)
王慶波(1990—),男,碩士研究生,主要研究方向:嵌入式系統(tǒng)與應(yīng)用、無(wú)線通信、計(jì)算機(jī)通信等。葉錫恩(1955―),男,教授,主要研究方向:數(shù)字集成電路設(shè)計(jì)、嵌入式系統(tǒng)設(shè)計(jì)、DSP等。