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