摘 要:針對傳統(tǒng)智能家居系統(tǒng)不足之處,提出了基于ARM的智能家居遠程監(jiān)控系統(tǒng)設計方案,并對該方案進行了具體設計。該系統(tǒng)由智能家居終端、智能家居控制中心、客戶端三部分組成,智能家居控制中心與終端之間是基于藍牙無線連接方式,與客戶端之間是基于GPRS和Internet連接方式。本系統(tǒng)基于B/S結構,具有軟硬件資源豐富,成本低,功耗小,便于擴展,升級及維護等優(yōu)點,具有一定實用價值。
關鍵詞:ARM;智能家居;遠程監(jiān)控;GPRS;藍牙;Linux
隨著計算機、通信及微電子技術的飛速發(fā)展和人民生活水平的提高,人們對居住環(huán)境的要求,也向著追求精神內(nèi)涵、安全舒適、便捷智能化和自動化為理想目標,智能化的家居環(huán)境也逐漸備受人們的關注。目前,在智能家居系統(tǒng)設計中,智能家居控制中心與終端(家電設備、安防設備、三表等)之間多采用基于總線的有線連接方式(RS 485,CAN,LonWorks等),這種連接方式具有布線復雜、線路易腐蝕、維護不方便、影響室內(nèi)美觀等缺點;遠程用戶與智能家居控制中心之間的通信多采用電話線和網(wǎng)線的通信方式,未能將目前日益成熟的移動通信技術應用其中,給用戶帶來極大的不便;智能家居控制中心多采用單片機作為控制核心,隨著用戶功能需求的增加,由于單片機軟硬件資源有限,給系統(tǒng)的升級、維護及調(diào)試帶來極大困難。鑒于此,本文提出了基于ARM的智能家居遠程監(jiān)控系統(tǒng)設計方案,并對該方案進行了具體設計。
l 智能家居無線技術概述
1.1 GPRS技術簡介
通用分組無線業(yè)務(Geneval Packet Radio Serv-ice,GPRS)以分組交換技術為基礎,采用IP數(shù)據(jù)網(wǎng)絡協(xié)議,使現(xiàn)有GSM網(wǎng)的數(shù)據(jù)業(yè)務突破了最高速率為9.6 Kb/s的限制,最高數(shù)據(jù)速率可達171.2 Kb/s。GPRS具有永遠在線、高速傳輸、按流量計費、減少無線資源浪費及通信成本低等優(yōu)點。
1.2 藍牙技術簡介
藍牙技術是一項新興的技術,它的主要目的是在全世界建立一個短距離的無線通信標準。它使用2.4~2.5 GHz的ISM(Industry Scientific Medical)頻段傳送語音和數(shù)據(jù)。運用成熟、實用、先進的無線技術來代替電纜,它提供了低成本、低功耗的無線接口,使所有固定和移動設備通過微微網(wǎng)PAN(Per2sonal Area Network)連接起來。這樣,人們可以通過手機或者互聯(lián)網(wǎng)在任何時候、任意地點對家中的任意電器(空調(diào)、熱水器、電飯煲、燈光、音響、DVD錄像機)進行遠程控制。
2 系統(tǒng)的主要功能和總體結構設計
2.1 主要功能
用戶通過手機或Internet實現(xiàn)對家電、燈光、窗簾、門禁、安防等基礎設施及室內(nèi)環(huán)境的遠程實時監(jiān)視與控制,同時還可自動完成三表(水、電、氣)的抄表工作。
2.2 總體結構設計
智能家居系統(tǒng)遠程監(jiān)控系統(tǒng)的核心部分是一個嵌入式Web服務器,系統(tǒng)集有線與無線兩種通信方式于一體,用戶可以通過手機或PC機登陸家中的嵌入式Web服務器,通過用戶名和密碼驗證之后,便可以查看或控制家用電器、燈光、窗簾、門禁、安防等基礎設施;系統(tǒng)帶有LCD和鍵盤,具有良好的人機界面;用戶可以通過鍵盤設定系統(tǒng)所需要的參數(shù);系統(tǒng)具有豐富的可擴展接口,如A/D轉換接口、無線藍牙接口、RS 485接口、GPRS接口、以太網(wǎng)接口。系統(tǒng)的總體結構設計如圖1所示。
3 系統(tǒng)硬件設計
3.1 硬件結構設計
系統(tǒng)的硬件結構設計如圖2,圖3所示。由圖2可知,智能終端以MCU為控制核心,外擴藍牙從模塊及其他外設接口;由圖3可知,智能家居控制中心硬件由嵌入式微處理器、外部存儲器、數(shù)據(jù)通信接口、人機接口及調(diào)試接口五大部分組成。
3.2 系統(tǒng)控制中心硬件設計
3.2.1 嵌入式微處理器
本系統(tǒng)選用韓國三星電子的基于ARM920T內(nèi)核的32位嵌入式微處理器S3C2410作為系統(tǒng)的控制核心,該芯片本身集成了包括存儲器接口、通信接口(USB,RS 232),A/D,JTAG等在內(nèi)的豐富的硬件資源,可簡化外圍設備與微處理器的硬件連接程度,提高系統(tǒng)的穩(wěn)定性、可靠性。
3.2.2 系統(tǒng)存儲器
由于S3C2410的存儲控制器提供了外部存儲器訪問所需要的控制信號,用戶只需要選擇合適的外部FLASH和SDRAM與其相連,即可實現(xiàn)系統(tǒng)的存儲功能。本系統(tǒng)選用SAMSUNG公司的具有512 MB容量的K9F1208作為系統(tǒng)外部的NAND FLASH存儲器,用于存放程序代碼、常量表以及一些在系統(tǒng)掉電后需要保存的用戶數(shù)據(jù)等。選用2片容量為32 MB的SAM-SUNG的K4S56163作為系統(tǒng)外部的SDRAM,用作程序的運行空間、數(shù)據(jù)及堆棧區(qū)。
3.2.3 以太網(wǎng)控制模塊
由于S3C2410本身沒有集成以太網(wǎng)控制模塊,所以需要一個與之相匹配的控制芯片來實現(xiàn)以太網(wǎng)擴展接口。本系統(tǒng)選用CIRRUS LOGIC公司的CS8900A作為系統(tǒng)的以太網(wǎng)控制芯片。CS8900A是一個單芯片全雙工的以太網(wǎng)解決方案,所有的數(shù)字和模擬電路合成了完整的以太網(wǎng)電路。主要結構包括ISA總線接口、802.3 MAC引擎、BUFFER、串行E2PROM接口和帶10BASE-T和AUI的模擬前端。CS8900A的10BASE-T接口通過變壓器HR601627與RJ 45網(wǎng)口連接。
3.2.4 GPRS通信模塊
GPRS通信模塊采用西門子公司的無線數(shù)據(jù)傳輸模塊MC235i,支持數(shù)據(jù)、短信、語音和傳真業(yè)務。MC35i是新一代GSM/GPRS雙模模塊,完全兼容上一代的MC35,TC35i;采用緊湊型設計,為用戶提供了簡單、內(nèi)嵌式的無線GPRS連接。MC35i與控制中心是通過UART接口1進行硬件連接的。
3.2.5 藍牙模塊
系統(tǒng)設計中藍牙模塊選用愛立信公司的ROK 101 007。該模塊是一款適合短距離無線通信的射頻/基帶模塊,且集成度高、功耗小,完全兼容藍牙協(xié)議Versionl.1,可嵌入任何需要藍牙功能的設備中。ROK 101 007包含5個功能塊:無線收發(fā)器、基帶控制器、閃存、電源管理模塊、時鐘,可提供高至HCI(主機控制接口)層的功能。ROK 101 007的UART口符合工業(yè)標準16C450,支持以下波特率:300 b/s,600 b/s,900 b/s,1 200 b/s,1 800 b/s,2 400 b/s,4 800 b/s,9 600 b/s,19 200 b/s,38 400 b/s等。與該接口有關的管腳有4個:TxD(B5),RxD(A5),RTS(A6),CTS(B6)。在本系統(tǒng)設計中,ARM微處理器S3C2410通過UART接口2與ROK 101 007模塊連接。
4 系統(tǒng)軟件設計
系統(tǒng)軟件設計包括智能家居控制中心軟件設計和智能終端應用軟件設計兩大部分。智能家居控制中心是以ARM微處理器為控制核心,其軟件設計包括系統(tǒng)軟件(嵌入式操作系統(tǒng)、硬件設備驅動程序、嵌入式數(shù)據(jù)庫、嵌入式Web服務器)設計和應用軟件(網(wǎng)頁設計及CGI應用程序)設計;智能終端的控制核心為單片機,其應用軟件設計是一個循環(huán)控制程序。
4.1 系統(tǒng)控制中心的軟件設計
4.1.1 系統(tǒng)軟件設計
(1)嵌入式操作系統(tǒng)的選擇及移植本系統(tǒng)采用Linux作為操作系統(tǒng),并選用Linux2.6內(nèi)核在嵌入式微處理器S3C2410上移植,具體移植方法如下:
①準備Linux 2.6內(nèi)核移植所必需的文件(內(nèi)核壓縮包linux-2.6.tar.bz2及交叉編譯器arm-linux-gcc-3.4.1.tar.bz2),這些文件可到LinUX官方網(wǎng)站免費下載。
②利用Linux命令(mkdir,tar,mv及export)安裝交叉編譯器arm-linux-gcc-3.4.1。
③修改Makefile文件及相關硬件文件。由于內(nèi)核的編譯是根據(jù):Makefile文件的指示進行的,Makefile文件來組織內(nèi)核的各模塊之間的關系,記錄了各個模塊之間的相互聯(lián)系和依賴關系。所以,開發(fā)人員要首先修改Linux 2.6根目錄下的Makfile文件,修改的主要內(nèi)容是目標代碼的類型和為編譯內(nèi)核指定一個編譯器。
④運用Make命令編譯內(nèi)核生成內(nèi)核鏡像文件zImage文件,通過相應的固化軟件把這個文件固化在系統(tǒng)相應的存儲器中,完成Linux 2.6內(nèi)核在ARM微處理器上的移植。
(2)驅動程序的移植及設計
智能家居控制中心需要多個設備驅動程序,而對于嵌入式系統(tǒng)而言很少有通用的外設驅動程序可以使用。在本系統(tǒng)中,除了GPRS模塊和藍牙主模塊分別通過第一、第二個串口與S3C2410相連,可以直接使用標準的串口驅動程序外,其余的如家電控制接口、傳感器接口及以太網(wǎng)接口等屬于非標準外設,需要專門設計其驅動程序。在驅動程序的設計中,由于嵌入式Linux系統(tǒng)中設備驅動程序有一個標準的框架,雖然這些接口工作原理不同,但其設計方法基本類似,即根據(jù)硬件結構來“填寫”框架中的函數(shù)。主要的函數(shù)包括open(),read(),write(),ioctl(),release(),module_init()和module exit()等。
以太網(wǎng)接口驅動程序的設計雖然可以按照上述方法進行,但是實現(xiàn)起來卻有一定的難度,本系統(tǒng)在設計中使用一種更簡單的方法,即通過移植的方法實現(xiàn)CS8900以太網(wǎng)驅動程序在S3C2410上運行。具體移植方法如下:
①利用網(wǎng)絡工具從網(wǎng)上下載CS8900.C和CS8900.H,并把它們拷貝到內(nèi)核下的DRIVERS/NET目錄。
②修改配菜單,增加CS8900配置選項,使系統(tǒng)在配置ARCH SMDK2410時,可使用CS8900的配置選項。
③對網(wǎng)卡進行初始化及相關文件(smdk2410.h,mach-smdk24 10.c,makefile)進行修改工作。
④通過Make命令重新編譯,即可實現(xiàn)CS8900以太網(wǎng)驅動程序的移植。
(3)嵌入式Web服務器的選擇及移植
在ARM+Linux開發(fā)平臺下,可以使用的web服務器主要有三個:Httpd,Thttpd和Boa。Httpd是較簡單的一個Web服務器,但其功能較弱,不支持認證、CGI。Thttpd和Boa都支持認證、CGI等,功能比較強。為了實現(xiàn)動態(tài)Web技術,本系統(tǒng)在設計中選擇了即支持CGI又較適合于嵌入式系統(tǒng)的Boa web服務器,并將其移植在該系統(tǒng)中,使系統(tǒng)實現(xiàn)嵌人式Web服務器的功能。具體移植實現(xiàn)方法如下:
①下載Boa服務器源代碼boa-O.94.13.tar.gz,并將其解縮在/boa src/目錄下。
②編譯Boa源代碼,生成執(zhí)行文件Boa(大小約60 KB)。
③創(chuàng)建相關工作目錄。在/etc目錄下建立一個boa目錄,里面放人boa的主要配置文件boa.conf。還需要創(chuàng)建日志文件所在目錄/var/Iog/boa,創(chuàng)建HTML文檔的主目錄/var/www,創(chuàng)建CGI腳本所在目錄/var/www/cgi-bin/。
④對Boa作配置和修改。主要通過對defines.h,boa.eonf和mime.types文件進行修改來實現(xiàn)。修改defines.h指定Web服務器的根目錄路徑(SERVER_ROOT)。boa.conf文件由一些規(guī)則組成,用于配置Boa服務器,指定相應端口,服務器名稱,一些相關文件的路徑等。Boa服務器要想正確運行,必須保證該文件是正確配置的,而且該文件和某些靜態(tài)網(wǎng)頁,CGI可執(zhí)行程序等都放于某特定目錄下。
⑥重新編譯內(nèi)核根文件系統(tǒng)。把該文件系統(tǒng)重新下載到控制中心硬件電路板,啟動Boa Web Server,就可以通過IE訪問系統(tǒng)所設計的網(wǎng)頁。
(4)嵌入式數(shù)據(jù)庫的選擇及移植
本系統(tǒng)在設計中選用SQLite數(shù)據(jù)庫,該數(shù)據(jù)庫具有功能強大、接口簡單、速度快、占用空間小的優(yōu)點,使其比較適合應用在嵌入式系統(tǒng)中。系統(tǒng)在設計中實現(xiàn)了SQLire3在ARM微處理器上的移植。具體移植方法如下:
①在http://www.sqlite.org/下載最新的源代碼包sqlite一3.3.8.tar.gz,并將其解壓后將生成SQLite目錄。
②安裝交叉編譯工具arm-linux-gcc。
③修改Makefile文件。Makefile的修改主要包括兩個方面:首先是將編譯器、歸檔工具等換成交叉工具鏈中的對應工具,比如,gcc換成arm-linux-gcc,ar換成ar-linux-ar,ranlib換成arm-linux-ranlib等;其次是去掉與TCL相關的編譯選項,因為默認情況下,將會編譯SQLite3的Tcl語言綁定,但是在移植到ARM-Linux的時候并不需要,因此將兩個與TCL有關的行注釋掉。
④利用Make命令編譯生成目標文件SQLite3。嵌入式數(shù)據(jù)庫SQLite的應用開發(fā)主要是利用它所提供的C語言API函數(shù)來開發(fā)的,其核心的三個函數(shù)如下:
4.1.2 應用軟件設計
智能家居控制中心的核心是一個嵌入式Web服務器,其應用軟件的設計包括網(wǎng)頁設計和CGI應用程序設計兩部分。網(wǎng)頁設計采用設計工具Dreamweaver,F(xiàn)rongtPage,Photoshop,F(xiàn)lash來實現(xiàn)。應用程序設計中考慮到系統(tǒng)硬件資源有限,故采用了CGI技術實現(xiàn)瀏覽器與嵌入式Web服務器的動態(tài)數(shù)據(jù)交互。把CGI程序保存在服務器端,當Web頁面打開時,客戶端調(diào)用CGI應用程序來實現(xiàn)用戶的功能需求。在系統(tǒng)設計中,CGI應用程序的編寫采用C語言,實現(xiàn)外部實時數(shù)據(jù)采樣、與外部設備的通信與控制等。本系統(tǒng)控制中心的應用軟件工作流程如圖4所示。
4.2 智能終端應用軟件設計
由于每一個獨立的智能家居終端實現(xiàn)的功能不同,所以針對不同的智能家居終端需要編寫不同的應用軟件,實現(xiàn)家電實時狀態(tài)采樣及控制、三表實時數(shù)據(jù)采樣及安防設備實時狀態(tài)采樣等功能。此外,由于本系統(tǒng)設計中智能家居終端的控制核心為MCU,所以其應用軟件設計相對主控中心來說要簡單些。設計中應用程序按照軟件設計流程圖進行編寫,編寫完畢之后,對軟件進行仿真、調(diào)試,最終固化應用程序。下面以智能家電終端為例,說明智能終端應用軟件設計。智能家電終端的軟件工作流程如圖5和圖6所示。
5 結 語
與傳統(tǒng)智能家居系統(tǒng)相比,該系統(tǒng)控制中心硬件采用ARM微處理器作為控制核心,軟件采用Linux 2.6內(nèi)核作為系統(tǒng)的嵌入式操作系統(tǒng),采用Boa為嵌入式Web服務器,采用SQLite為系統(tǒng)嵌入式數(shù)據(jù)庫,使控制中心具有豐富的軟硬件資源和可擴展接口,便于系統(tǒng)的開發(fā)、調(diào)試、維護、升級及擴展,同時也提高了系統(tǒng)的穩(wěn)定性、可靠性。該系統(tǒng)控制中心與智能終端之間采用藍牙無線傳輸方式,避免了有線連接方式布線復雜、線路易腐蝕、維護不方便、影響室內(nèi)美觀等缺點。因此,該系統(tǒng)設計在實際應用中具有一定的借鑒意義。