摘 要: 為了實(shí)現(xiàn)家庭內(nèi)部網(wǎng)路與Int ernet 以及GSM 網(wǎng)的互聯(lián), 提出了一種嵌入式" title="嵌入式">嵌入式無(wú)線智能家居" title="智能家居">智能家居網(wǎng)關(guān)" title="網(wǎng)關(guān)">網(wǎng)關(guān)系統(tǒng)" title="系統(tǒng)">系統(tǒng)的設(shè)計(jì)" title="設(shè)計(jì)">設(shè)計(jì)方案" title="方案">方案。該網(wǎng)關(guān)系統(tǒng)的硬件平臺(tái)以ARM920T 核處理器S3C2440 為主處理器, 采用ZigBee 協(xié)議建家庭內(nèi)部網(wǎng)絡(luò), 而且通過(guò)以太網(wǎng)模塊和GSM 模塊接入外部網(wǎng)絡(luò)。軟件平臺(tái)采用Linux 操作系統(tǒng), 通過(guò)交叉編譯設(shè)計(jì)網(wǎng)關(guān)的應(yīng)用程序。最后, 以QtopiaCo re 為嵌入式GUI, 進(jìn)行家庭網(wǎng)關(guān)監(jiān)測(cè)應(yīng)用軟件的功能需求分析, 設(shè)計(jì)圖形用戶(hù)界面, 實(shí)現(xiàn)家庭內(nèi)部信息的查詢(xún)?;贏RM9 和Linux 的嵌入式網(wǎng)關(guān)系統(tǒng), 可擴(kuò)展性強(qiáng), 數(shù)據(jù)處理速度快, 使用簡(jiǎn)單, 能夠?qū)彝ゾW(wǎng)絡(luò)內(nèi)部多項(xiàng)環(huán)境信息進(jìn)行監(jiān)測(cè)。
0 引言
智能家居系統(tǒng)是為適應(yīng)現(xiàn)代化家庭生活而形成的一個(gè)形式多樣化的網(wǎng)絡(luò)系統(tǒng)。它是現(xiàn)代3C技術(shù)(計(jì)算機(jī)技術(shù),通信技術(shù),控制技術(shù))與傳統(tǒng)家居系統(tǒng)相結(jié)合的產(chǎn)物,是家居信息化未來(lái)的發(fā)展方向。智能家居網(wǎng)絡(luò)通常包括智能家居網(wǎng)關(guān),外部網(wǎng),安防設(shè)備等。智能家居網(wǎng)關(guān)與其他4個(gè)部分連接,交互信息,對(duì)它們進(jìn)行統(tǒng)一的管理。此外,智能家居網(wǎng)關(guān)還接入外部網(wǎng)絡(luò),使用戶(hù)能夠遠(yuǎn)程實(shí)時(shí)控制管理家庭內(nèi)部網(wǎng)絡(luò)。
在本文中,智能家居網(wǎng)絡(luò)是指應(yīng)用于家庭環(huán)境的無(wú)線傳感器網(wǎng)絡(luò)。在家庭中,部署各種傳感器,例如紅外傳感器,煙霧傳感器,RFID門(mén)磁傳感器來(lái)監(jiān)測(cè)家庭的一些環(huán)境信息,這些傳感器通過(guò)自組織方式就構(gòu)建了智能家居網(wǎng)絡(luò)。所以本文設(shè)計(jì)的智能家居網(wǎng)關(guān)主要是實(shí)現(xiàn)WSN網(wǎng)絡(luò)與Internet以及GSM網(wǎng)的互連。顯然,智能家居網(wǎng)關(guān)是整個(gè)家庭網(wǎng)絡(luò)的核心,主要實(shí)現(xiàn)Internet網(wǎng),GSM網(wǎng)的接入,遠(yuǎn)程控制,以及實(shí)現(xiàn)協(xié)議轉(zhuǎn)換連接家庭內(nèi)部異構(gòu)網(wǎng)絡(luò)的功能。目前基于PC方案的家庭網(wǎng)關(guān)不僅成本高,而且要求計(jì)算機(jī)一直處于開(kāi)機(jī)狀態(tài),因此,對(duì)于普通的用戶(hù),家庭網(wǎng)關(guān)應(yīng)采用廉價(jià)的嵌入式CPU,若單是采用8位或者16位的單片機(jī),由于速度慢且資源有限,不能實(shí)現(xiàn)復(fù)雜的控制,效果不理想。
因此,以ARM920T核處理器S3C2440為主處理器,家庭內(nèi)部通過(guò)JENNIC 5139射頻模塊自組織無(wú)線網(wǎng)絡(luò)。GSM模塊選用Wavecom GSM模塊。此外,本文用Qt設(shè)計(jì)了用戶(hù)可操作的觸摸屏界面。
1 網(wǎng)關(guān)需求分析
網(wǎng)關(guān)系統(tǒng)的主要功能是在現(xiàn)場(chǎng)及遠(yuǎn)程終端監(jiān)控家庭各個(gè)傳感器的工作狀態(tài),并在異常時(shí)報(bào)警。各個(gè)傳感器將各自采集的信息,經(jīng)過(guò)JEN-NIC射頻模塊的無(wú)線傳輸,傳送到網(wǎng)關(guān)系統(tǒng)上,通過(guò)嵌入式微處理器操作系統(tǒng),將信息通過(guò)有線或者無(wú)線方式傳送到遠(yuǎn)程終端上或者用戶(hù)手機(jī)上。網(wǎng)關(guān)部署如圖1所示。
圖1 網(wǎng)關(guān)部署結(jié)構(gòu)圖
本文要實(shí)現(xiàn)的目標(biāo)有以下3個(gè):
?。?)實(shí)現(xiàn)用戶(hù)在任何時(shí)間,任何地點(diǎn)通過(guò)遠(yuǎn)程無(wú)線的方式對(duì)家庭內(nèi)的環(huán)境信息查詢(xún);
(2)對(duì)家庭內(nèi)部的環(huán)境信息進(jìn)行實(shí)時(shí)監(jiān)控,當(dāng)其中某一項(xiàng)參數(shù)超過(guò)一定指標(biāo)時(shí),以遠(yuǎn)程無(wú)線方式通知用戶(hù),發(fā)送報(bào)警信息;
(3)*遠(yuǎn)程終端的連接請(qǐng)求,當(dāng)有遠(yuǎn)程Socket連接時(shí)網(wǎng)關(guān)發(fā)送數(shù)據(jù)。
2 網(wǎng)關(guān)總體設(shè)計(jì)
現(xiàn)階段大部分的家庭網(wǎng)關(guān)聯(lián)網(wǎng)方式主要為有線接入,本文提出了一種基于ARM處理器和GSM網(wǎng)絡(luò),以linux為操作系統(tǒng)的家庭網(wǎng)關(guān)無(wú)線接入方案,目的是能通過(guò)手機(jī)短信或者遠(yuǎn)程終端對(duì)控制節(jié)點(diǎn)進(jìn)行遠(yuǎn)程控制。并使用JENNIC無(wú)線射頻模塊實(shí)現(xiàn)家庭內(nèi)部子網(wǎng)采集數(shù)據(jù)的無(wú)線傳輸。
網(wǎng)關(guān)系統(tǒng)的總體結(jié)構(gòu)圖可以簡(jiǎn)化為硬件層和軟件層。硬件層由高性能的微處理器和多個(gè)功能模塊組成。軟件層由嵌入式操作系統(tǒng)以及應(yīng)用軟件構(gòu)成,其具體結(jié)構(gòu)如圖2所示。
圖2 網(wǎng)關(guān)總體架構(gòu)
3 家庭網(wǎng)關(guān)硬件設(shè)計(jì)
本次網(wǎng)關(guān)設(shè)計(jì)的硬件層主要采用嵌入式的ARM9開(kāi)發(fā)平臺(tái)。嵌入式ARM處理器具有體積小,功耗低,成本低,性能高等特點(diǎn),是十分優(yōu)秀的RISC處理器。其中三星公司的S3C2440是一款優(yōu)秀的ARM9核心處理器,具有400 MHz的主頻,內(nèi)部集成多個(gè)功能模塊,支持NAND-flash啟動(dòng)等特點(diǎn),是目前市場(chǎng)上最常見(jiàn)的嵌入式處理器芯片。因此,本系統(tǒng)擬采用S3C2440處理器為核心處理器。
考慮主控制器擴(kuò)展出來(lái)的串行接口數(shù)量有線,程序的調(diào)試,燒寫(xiě),傳感器節(jié)點(diǎn)等都需要串行接口。所以,選擇了AU9254這款USB PUB芯片來(lái)實(shí)現(xiàn)USB串行口的擴(kuò)展。以太網(wǎng)控制器和配合擴(kuò)展的RJ 45接口主要用于與Internet網(wǎng)絡(luò)互聯(lián)。射頻收發(fā)模塊和GSM無(wú)線模塊擬采用標(biāo)準(zhǔn)的串口集成到網(wǎng)關(guān)上。人機(jī)接口打算使用LCD觸摸屏,可以方便地觀察節(jié)點(diǎn)的配置以及檢測(cè)環(huán)境的變化。JTAG接口將引導(dǎo)加載程序燒寫(xiě)在網(wǎng)關(guān)中。具體的硬件架構(gòu)圖如圖3所示。
圖3 網(wǎng)關(guān)硬件架構(gòu)圖
4 家庭網(wǎng)關(guān)軟件設(shè)計(jì)
4.1 構(gòu)建網(wǎng)關(guān)嵌入式Linux操作系統(tǒng)
網(wǎng)關(guān)系統(tǒng)硬件平臺(tái)與功能應(yīng)用之間,需要專(zhuān)門(mén)的負(fù)責(zé)管理存儲(chǔ)器分配,中斷處理以及任務(wù)調(diào)度等功能的軟件模塊,這就是嵌入式操作系統(tǒng)。嵌入式操作系統(tǒng)是用來(lái)支持嵌入式應(yīng)用的系統(tǒng)的軟件,包括硬件相關(guān)的底層驅(qū)動(dòng),系統(tǒng)內(nèi)核,通信協(xié)議,圖形用戶(hù)界面等。
本文的網(wǎng)關(guān)系統(tǒng)是面向WSN和Internet,GSM互聯(lián)的通信應(yīng)用,主要完成異構(gòu)網(wǎng)絡(luò)之間的通信和控制,因此需要選擇實(shí)時(shí)的操作系統(tǒng)。在眾多的嵌入式實(shí)時(shí)操作系統(tǒng)中,從開(kāi)發(fā)成本,軟件支持和代碼開(kāi)放的角度考慮,本文將采用Linux操作系統(tǒng)作為網(wǎng)關(guān)的系統(tǒng)的操作系統(tǒng)。
4.2 建立交叉編譯環(huán)境
交叉編譯就是在一個(gè)平臺(tái)上生成另一個(gè)平臺(tái)上可以執(zhí)行的代碼。這里的平臺(tái)包括體系結(jié)構(gòu)和操作系統(tǒng)。同一體系結(jié)構(gòu)上可以運(yùn)行不同操作系統(tǒng)。同樣,同一個(gè)操作系統(tǒng)也可以在不同的體系結(jié)構(gòu)上運(yùn)行。
本文是在裝有Ubuntu 9.10(基于X86架構(gòu)的Linux操作系統(tǒng))的PC機(jī)上為網(wǎng)關(guān)系統(tǒng)建立了基于ARM9的交叉編譯環(huán)境。建立之后,就可以在PC機(jī)上對(duì)將在網(wǎng)關(guān)系統(tǒng)上運(yùn)行的應(yīng)用程序進(jìn)行編譯,從而生成可以在網(wǎng)關(guān)系統(tǒng)上運(yùn)行的可執(zhí)行代碼,最后下到網(wǎng)關(guān)系統(tǒng)上。這也就是目前嵌入式程序開(kāi)發(fā)的宿主機(jī)/目標(biāo)機(jī)(HOST/TARGET)模式。
Linux交叉編譯環(huán)境的內(nèi)容,主要分為4個(gè)部分:GCC編譯器(C語(yǔ)言編譯器),二進(jìn)制工具包(Binutils),標(biāo)準(zhǔn)C庫(kù)(Glibc)和Linux內(nèi)核頭文件。Glibc和GCC都有很多版本,需要根據(jù)實(shí)際需要選擇合適的版本。
4.3 網(wǎng)關(guān)應(yīng)用程序設(shè)計(jì)
本次網(wǎng)關(guān)系統(tǒng)的應(yīng)用軟件架構(gòu)圖4所示。其主要功能是依據(jù)傳感器配置文件,分類(lèi)解析WSN中的數(shù)據(jù),為用戶(hù)提供Socket數(shù)據(jù)服務(wù)和XML-RPC遠(yuǎn)程調(diào)用服務(wù)。其工作流程是:網(wǎng)關(guān)程序啟動(dòng)以后,從XML文件夾中解析所有的傳感器配置文件;*串口數(shù)據(jù),利用傳感器配置文件解析數(shù)據(jù)生成XML數(shù)據(jù)流;創(chuàng)建Socket服務(wù)器,等待客戶(hù)端數(shù)據(jù)請(qǐng)求,提供XML格式的Socket服務(wù);創(chuàng)建XML-Socket遠(yuǎn)程調(diào)用服務(wù)器,完成用戶(hù)的XML請(qǐng)求。
圖4 網(wǎng)關(guān)系統(tǒng)的軟件架構(gòu)
程序設(shè)計(jì)思路如圖5所示:網(wǎng)關(guān)程序啟動(dòng),完成參數(shù)初始化,解析XML文件夾下的所有傳感器配置文件,創(chuàng)建3個(gè)類(lèi)的實(shí)例。4個(gè)任務(wù)隊(duì)列。Serialcomm類(lèi)創(chuàng)建兩條線程用讀串口和寫(xiě)串口,這樣可以保證數(shù)據(jù)的實(shí)時(shí)性。基于同樣的道理,XMLParser類(lèi)和XMLComm類(lèi)也是雙線程并行工作。這樣就組成了從WSN和Internet的上行通道(圖5中的虛線表示),以及Internet到WSN的下行通道(圖5中的粗線表示)。
圖5 網(wǎng)關(guān)應(yīng)用設(shè)計(jì)思路圖
4.4 人機(jī)接口模塊的設(shè)計(jì)
人機(jī)接口使用的是項(xiàng)目中使用的觸摸屏是240×320 TFT彩屏LCD。該模塊主要設(shè)計(jì)以下4個(gè)菜單供用戶(hù)操作:文件菜單,查詢(xún)菜單,報(bào)警菜單和管理菜單。這部分的設(shè)計(jì)使用Qt設(shè)計(jì)。Qt是一個(gè)跨平臺(tái)的C++圖形用戶(hù)界面庫(kù),由挪威TrollTech公司開(kāi)發(fā),目前包括Qt/X11、基于Framebuffer的Qt/Embedded、快速開(kāi)發(fā)工具Qt Designer以及國(guó)際化工具Qt Linguist等。Qt的良好封裝機(jī)制使其模塊化程度非常高,可重用性較好,對(duì)于用戶(hù)來(lái)說(shuō)非常的方便。Qt API和開(kāi)發(fā)工具對(duì)所有支持平臺(tái)都是一致的,從而可以進(jìn)行獨(dú)立于平臺(tái)的程序開(kāi)發(fā)和配置。它使得跨平臺(tái)軟件編程直觀、簡(jiǎn)易和方便。
本文所有的可視化界面都是通過(guò)Qt自帶的工具Qt designer設(shè)計(jì),它是一個(gè)可視化的界面設(shè)計(jì)工具,對(duì)于其每個(gè)組件內(nèi)部的關(guān)系通過(guò)編寫(xiě)代碼來(lái)實(shí)現(xiàn)。
網(wǎng)關(guān)登陸界面主要用于用戶(hù)登陸信息的輸入,包括用戶(hù)名和密碼。用戶(hù)正確輸入用戶(hù)名和密碼之后,就可以進(jìn)入網(wǎng)關(guān)的主界面,如圖6所示,可以看到,這里有4個(gè)菜單,當(dāng)點(diǎn)擊每一個(gè)菜單分別進(jìn)入相應(yīng)的功能界面,例如點(diǎn)擊文件菜單,可進(jìn)入配置文件的編輯界面。在此界面上可以修改網(wǎng)關(guān)系統(tǒng)的配置文件。這個(gè)界面具有一般文件界面的所有功能。這幾個(gè)界面都比較簡(jiǎn)單,比較容易實(shí)現(xiàn)。在此重點(diǎn)介紹監(jiān)控界面的設(shè)計(jì)。
圖6 網(wǎng)關(guān)主界面
監(jiān)控界面是該系統(tǒng)用戶(hù)界面的主要部分。它主要是查看目前家里的環(huán)境信息。和這相關(guān)的文件有query.ui,ui_query.h,query.h,query.cpp等,其中query.ui是Qt Designer設(shè)計(jì)的主界面函數(shù),如圖7所示。Ui_query.h是moc編譯器產(chǎn)生的函數(shù)。本文中需要的函數(shù)一般都在query.h,query.cpp中得到體現(xiàn)和實(shí)現(xiàn),主要包括信息的查詢(xún),這里既可以查看一段時(shí)間內(nèi)家庭內(nèi)的環(huán)境信息,也可以輸入查詢(xún)?nèi)掌冢樵?xún)某天的數(shù)據(jù)信息。根據(jù)需求,設(shè)計(jì)的主要實(shí)現(xiàn)函數(shù)為:
圖7 網(wǎng)關(guān)的查詢(xún)界面
這些槽函數(shù)是根據(jù)按鈕要實(shí)現(xiàn)的具體功能而設(shè)計(jì)的。具體實(shí)現(xiàn)在query.cpp中。
通過(guò)這部分的設(shè)計(jì),實(shí)現(xiàn)了網(wǎng)關(guān)的人機(jī)界面部分??梢詫?duì)通過(guò)此網(wǎng)關(guān)系統(tǒng)對(duì)家庭信息進(jìn)行查詢(xún)。
4.5 報(bào)警功能
該網(wǎng)關(guān)的報(bào)警功能主要是網(wǎng)關(guān)主控制器通過(guò)操作串口來(lái)操作GSM模塊,使用AT指令來(lái)完成。在該網(wǎng)關(guān)中,報(bào)警功能實(shí)現(xiàn)當(dāng)家庭網(wǎng)絡(luò)中的信息超過(guò)某一閾值時(shí),發(fā)送報(bào)警信息。
5 結(jié)語(yǔ)
本文立足于WSN和Internet,GSM異構(gòu)互聯(lián)研究,針對(duì)WSN與Internet,GSM互聯(lián)的網(wǎng)絡(luò)接入要求,完成了基于ARM9的家庭網(wǎng)關(guān)系統(tǒng)的研究與設(shè)計(jì)。從硬件平臺(tái)上來(lái)說(shuō),提供了豐富的接口以便不同網(wǎng)絡(luò)的接入,從軟件平臺(tái)來(lái)說(shuō),實(shí)現(xiàn)了用戶(hù)對(duì)家庭網(wǎng)關(guān)的訪問(wèn),通過(guò)用戶(hù)可操作的人機(jī)界面來(lái)對(duì)家庭內(nèi)的環(huán)境信息進(jìn)行查詢(xún)。當(dāng)家庭內(nèi)某一項(xiàng)環(huán)境信息超標(biāo)時(shí),通過(guò)使用AT指令控制GSM模塊來(lái)向用戶(hù)發(fā)送報(bào)警短信。