摘 要:針對(duì)傳統(tǒng)智能家居系統(tǒng)不足之處,提出了基于ARM的智能家居遠(yuǎn)程監(jiān)控系統(tǒng)設(shè)計(jì)方案,并對(duì)該方案進(jìn)行了具體設(shè)計(jì)。該系統(tǒng)由智能家居終端、智能家居控制中心、客戶端三部分組成,智能家居控制中心與終端之間是基于藍(lán)牙無(wú)線連接方式,與客戶端之間是基于GPRS和Internet連接方式。本系統(tǒng)基于B/S結(jié)構(gòu),具有軟硬件資源豐富,成本低,功耗小,便于擴(kuò)展,升級(jí)及維護(hù)等優(yōu)點(diǎn),具有一定實(shí)用價(jià)值。
關(guān)鍵詞:ARM;智能家居;遠(yuǎn)程監(jiān)控;GPRS;藍(lán)牙;Linux
中圖分類號(hào):TP23文獻(xiàn)標(biāo)識(shí)碼:B
文章編號(hào):1004-373X(2009)05-134-05
Design of Intellectual House Remote Monitoring System Based on ARM
LI Honggang1,ZHANG Suping2,FANG Jia1,DONG Lingjiao3
(1.Scientific and Technological Information Research Institute,Chinese Academy of Tropical Agricultural Sciences,Danzhou,571737,China;
2.Science & Information Tchnology,Guizhou University,Guiyang,550025,China;3.Wenzhou Vocational & Technical College,Wenzhou,325035,China)
Abstract:To the deficiency of traditional intellectual house system,the design and implementation of intellectual house system based on ARM are introduced.The system is made up of intellectual house termination,intellectual house control centre and client termination,intellectual house control centre and termination are based on the wireless connection way of Bluetooth,Intellectual house control centre and client termination are based on the connection way of GPRS and Internet.The system is based on B/S structure and has the advantages of abundant hardware and software resourece,low cost,low power,easy to expand,upgrade and maintain.The system has certain using value in practical application.
Keywords:ARM;intellectual house remote monitoring;GPRS;Bluetooth;Linux
隨著計(jì)算機(jī)、通信及微電子技術(shù)的飛速發(fā)展和人民生活水平的提高,人們對(duì)居住環(huán)境的要求,也向著追求精神內(nèi)涵、安全舒適、便捷智能化和自動(dòng)化為理想目標(biāo),智能化的家居環(huán)境也逐漸備受人們的關(guān)注。目前,在智能家居系統(tǒng)設(shè)計(jì)中,智能家居控制中心與終端(家電設(shè)備、安防設(shè)備、三表等)之間多采用基于總線的有線連接方式(RS 485,CAN,LonWorks等),這種連接方式具有布線復(fù)雜、線路易腐蝕、維護(hù)不方便、影響室內(nèi)美觀等缺點(diǎn);遠(yuǎn)程用戶與智能家居控制中心之間的通信多采用電話線和網(wǎng)線的通信方式,未能將目前日益成熟的移動(dòng)通信技術(shù)應(yīng)用其中,給用戶帶來(lái)極大的不便;智能家居控制中心多采用單片機(jī)作為控制核心,隨著用戶功能需求的增加,由于單片機(jī)軟硬件資源有限,給系統(tǒng)的升級(jí)、維護(hù)及調(diào)試帶來(lái)極大困難。鑒于此,本文提出了基于ARM的智能家居遠(yuǎn)程監(jiān)控系統(tǒng)設(shè)計(jì)方案,并對(duì)該方案進(jìn)行了具體設(shè)計(jì)。
1 智能家居無(wú)線技術(shù)概述
1.1 GPRS技術(shù)簡(jiǎn)介
通用分組無(wú)線業(yè)務(wù)(Geneval Packet Radio Service,GPRS)以分組交換技術(shù)為基礎(chǔ),采用IP數(shù)據(jù)網(wǎng)絡(luò)協(xié)議,使現(xiàn)有GSM網(wǎng)的數(shù)據(jù)業(yè)務(wù)突破了最高速率為9.6 Kb/s的限制,最高數(shù)據(jù)速率可達(dá)171.2 Kb/s。GPRS具有永遠(yuǎn)在線、高速傳輸、按流量計(jì)費(fèi)、減少無(wú)線資源浪費(fèi)及通信成本低等優(yōu)點(diǎn)。
1.2 藍(lán)牙技術(shù)簡(jiǎn)介
藍(lán)牙技術(shù)[1]是一項(xiàng)新興的技術(shù),它的主要目的是在全世界建立一個(gè)短距離的無(wú)線通信標(biāo)準(zhǔn)。它使用2.4~2.5 GHz的ISM(Industry Scientific Medical)頻段傳送語(yǔ)音和數(shù)據(jù)。運(yùn)用成熟、實(shí)用、先進(jìn)的無(wú)線技術(shù)來(lái)代替電纜,它提供了低成本、低功耗的無(wú)線接口,使所有固定和移動(dòng)設(shè)備通過(guò)微微網(wǎng)PAN(Per2sonal Area Network)連接起來(lái)。這樣,人們可以通過(guò)手機(jī)或者互聯(lián)網(wǎng)在任何時(shí)候、任意地點(diǎn)對(duì)家中的任意電器(空調(diào)、熱水器、電飯煲、燈光、音響、DVD錄像機(jī))進(jìn)行遠(yuǎn)程控制。
2 系統(tǒng)的主要功能和總體結(jié)構(gòu)設(shè)計(jì)
2.1 主要功能
用戶通過(guò)手機(jī)或Internet實(shí)現(xiàn)對(duì)家電、燈光、窗簾、門(mén)禁、安防等基礎(chǔ)設(shè)施及室內(nèi)環(huán)境的遠(yuǎn)程實(shí)時(shí)監(jiān)視與控制,同時(shí)還可自動(dòng)完成三表(水、電、氣)的抄表工作。
2.2 總體結(jié)構(gòu)設(shè)計(jì)
智能家居系統(tǒng)遠(yuǎn)程監(jiān)控系統(tǒng)的核心部分是一個(gè)嵌入式Web服務(wù)器,系統(tǒng)集有線與無(wú)線兩種通信方式于一體,用戶可以通過(guò)手機(jī)或PC機(jī)登陸家中的嵌入式Web服務(wù)器,通過(guò)用戶名和密碼驗(yàn)證之后,便可以查看或控制家用電器、燈光、窗簾、門(mén)禁、安防等基礎(chǔ)設(shè)施;系統(tǒng)帶有LCD和鍵盤(pán),具有良好的人機(jī)界面;用戶可以通過(guò)鍵盤(pán)設(shè)定系統(tǒng)所需要的參數(shù);系統(tǒng)具有豐富的可擴(kuò)展接口,如A/D轉(zhuǎn)換接口、無(wú)線藍(lán)牙接口、RS 485接口、GPRS接口、以太網(wǎng)接口。系統(tǒng)的總體結(jié)構(gòu)設(shè)計(jì)如圖1所示。
3 系統(tǒng)硬件設(shè)計(jì)
3.1 硬件結(jié)構(gòu)設(shè)計(jì)
系統(tǒng)的硬件結(jié)構(gòu)設(shè)計(jì)如圖2,圖3所示。由圖2可知,智能終端以MCU為控制核心,外擴(kuò)藍(lán)牙從模塊及其他外設(shè)接口;由圖3可知,智能家居控制中心硬件由嵌入式微處理器、外部存儲(chǔ)器、數(shù)據(jù)通信接口、人機(jī)接口及調(diào)試接口五大部分組成。
3.2 系統(tǒng)控制中心硬件設(shè)計(jì)
3.2.1 嵌入式微處理器
本系統(tǒng)選用韓國(guó)三星電子的基于ARM920T內(nèi)核的32位嵌入式微處理器S3C2410作為系統(tǒng)的控制核心,該芯片本身集成了包括存儲(chǔ)器接口、通信接口(USB,RS 232),A/D,JTAG等在內(nèi)的豐富的硬件資源,可簡(jiǎn)化外圍設(shè)備與微處理器的硬件連接程度,提高系統(tǒng)的穩(wěn)定性、可靠性。
3.2.2 系統(tǒng)存儲(chǔ)器
由于S3C2410的存儲(chǔ)控制器提供了外部存儲(chǔ)器訪問(wèn)所需要的控制信號(hào),用戶只需要選擇合適的外部FLASH和SDRAM與其相連,即可實(shí)現(xiàn)系統(tǒng)的存儲(chǔ)功能。本系統(tǒng)選用SAMSUNG公司的具有512 MB容量的K9F1208作為系統(tǒng)外部的NAND FLASH存儲(chǔ)器,用于存放程序代碼、常量表以及一些在系統(tǒng)掉電后需要保存的用戶數(shù)據(jù)等。選用2片容量為32 MB的SAMSUNG的K4S56163作為系統(tǒng)外部的SDRAM,用作程序的運(yùn)行空間、數(shù)據(jù)及堆棧區(qū)。
3.2.3 以太網(wǎng)控制模塊
由于S3C2410本身沒(méi)有集成以太網(wǎng)控制模塊,所以需要一個(gè)與之相匹配的控制芯片來(lái)實(shí)現(xiàn)以太網(wǎng)擴(kuò)展接口。本系統(tǒng)選用CIRRUS LOGIC 公司的CS8900A作為系統(tǒng)的以太網(wǎng)控制芯片。CS8900A是一個(gè)單芯片全雙工的以太網(wǎng)解決方案,所有的數(shù)字和模擬電路合成了完整的以太網(wǎng)電路。主要結(jié)構(gòu)包括ISA總線接口、802.3 MAC 引擎、BUFFER、串行E2PROM接口和帶10BASE-T和AUI的模擬前端。CS8900A的10BASE-T接口通過(guò)變壓器HR601627與RJ 45網(wǎng)口連接[2]。
3.2.4 GPRS通信模塊
GPRS通信模塊采用西門(mén)子公司的無(wú)線數(shù)據(jù)傳輸模塊MC35i,支持?jǐn)?shù)據(jù)、短信、語(yǔ)音和傳真業(yè)務(wù)。MC35i是新一代GSM/GPRS雙模模塊,完全兼容上一代的MC35,TC35i;采用緊湊型設(shè)計(jì),為用戶提供了簡(jiǎn)單、內(nèi)嵌式的無(wú)線GPRS連接。MC35i與控制中心是通過(guò)UART接口1進(jìn)行硬件連接的。
3.2.5 藍(lán)牙模塊
系統(tǒng)設(shè)計(jì)中藍(lán)牙模塊選用愛(ài)立信公司的ROK 101 007。該模塊是一款適合短距離無(wú)線通信的射頻/基帶模塊,且集成度高、功耗小,完全兼容藍(lán)牙協(xié)議Version1.1,可嵌入任何需要藍(lán)牙功能的設(shè)備中。ROK 101 007包含5個(gè)功能塊:無(wú)線收發(fā)器、基帶控制器、閃存、電源管理模塊、時(shí)鐘,可提供高至HCI(主機(jī)控制接口)層的功能。ROK 101 007的UART口符合工業(yè)標(biāo)準(zhǔn)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等。與該接口有關(guān)的管腳有4個(gè):TxD(B5),RxD(A5),RTS(A6),CTS(B6)。在本系統(tǒng)設(shè)計(jì)中,ARM微處理器S3C2410通過(guò)UART接口2與ROK 101 007模塊連接。
4 系統(tǒng)軟件設(shè)計(jì)
系統(tǒng)軟件設(shè)計(jì)包括智能家居控制中心軟件設(shè)計(jì)和智能終端應(yīng)用軟件設(shè)計(jì)兩大部分。智能家居控制中心是以ARM微處理器為控制核心,其軟件設(shè)計(jì)包括系統(tǒng)軟件(嵌入式操作系統(tǒng)、硬件設(shè)備驅(qū)動(dòng)程序、嵌入式數(shù)據(jù)庫(kù)、嵌入式Web服務(wù)器)設(shè)計(jì)和應(yīng)用軟件(網(wǎng)頁(yè)設(shè)計(jì)及CGI應(yīng)用程序)設(shè)計(jì);智能終端的控制核心為單片機(jī),其應(yīng)用軟件設(shè)計(jì)是一個(gè)循環(huán)控制程序。
4.1 系統(tǒng)控制中心的軟件設(shè)計(jì)
4.1.1 系統(tǒng)軟件設(shè)計(jì)
(1) 嵌入式操作系統(tǒng)的選擇及移植
本系統(tǒng)采用Linux作為操作系統(tǒng),并選用Linux 2.6內(nèi)核在嵌入式微處理器S3C2410上移植,具體移植方法如下:
�、� 準(zhǔn)備Linux 2.6內(nèi)核移植所必需的文件(內(nèi)核壓縮包linux-2.6.tar.bz2及交叉編譯器arm-linux-gcc-3.4.1.tar.bz2),這些文件可到Linux官方網(wǎng)站免費(fèi)下載。
�、� 利用Linux命令(mkdir,tar,mv及export)安裝交叉編譯器arm-linux-gcc-3.4.1。
③ 修改Makefile文件及相關(guān)硬件文件。 由于內(nèi)核的編譯是根據(jù) Makefile 文件的指示進(jìn)行的,Makefile 文件來(lái)組織內(nèi)核的各模塊之間的關(guān)系,記錄了各個(gè)模塊之間的相互聯(lián)系和依賴關(guān)系。所以,開(kāi)發(fā)人員要首先修改Linux 2.6根目錄下的 Makfile 文件,修改的主要內(nèi)容是目標(biāo)代碼的類型和為編譯內(nèi)核指定一個(gè)編譯器。
④ 運(yùn)用Make命令編譯內(nèi)核生成內(nèi)核鏡像文件 zImage文件,通過(guò)相應(yīng)的固化軟件把這個(gè)文件固化在系統(tǒng)相應(yīng)的存儲(chǔ)器中,完成Linux 2.6內(nèi)核在ARM微處理器上的移植。
(2) 驅(qū)動(dòng)程序的移植及設(shè)計(jì)
智能家居控制中心需要多個(gè)設(shè)備驅(qū)動(dòng)程序,而對(duì)于嵌入式系統(tǒng)而言很少有通用的外設(shè)驅(qū)動(dòng)程序可以使用。在本系統(tǒng)中,除了GPRS模塊和藍(lán)牙主模塊分別通過(guò)第一、第二個(gè)串口與S3C2410相連,可以直接使用標(biāo)準(zhǔn)的串口驅(qū)動(dòng)程序外,其余的如家電控制接口、傳感器接口及以太網(wǎng)接口等屬于非標(biāo)準(zhǔn)外設(shè),需要專門(mén)設(shè)計(jì)其驅(qū)動(dòng)程序。在驅(qū)動(dòng)程序的設(shè)計(jì)中,由于嵌入式Linux系統(tǒng)中設(shè)備驅(qū)動(dòng)程序有一個(gè)標(biāo)準(zhǔn)的框架,雖然這些接口工作原理不同,但其設(shè)計(jì)方法基本類似,即根據(jù)硬件結(jié)構(gòu)來(lái)“填寫(xiě)”框架中的函數(shù)。主要的函數(shù)包括open(),read(),write(),ioctl(),release(),module_init()和module_exit()等[3]。
以太網(wǎng)接口驅(qū)動(dòng)程序的設(shè)計(jì)雖然可以按照上述方法進(jìn)行,但是實(shí)現(xiàn)起來(lái)卻有一定的難度,本系統(tǒng)在設(shè)計(jì)中使用一種更簡(jiǎn)單的方法,即通過(guò)移植的方法實(shí)現(xiàn)CS8900以太網(wǎng)驅(qū)動(dòng)程序在S3C2410上運(yùn)行。具體移植方法如下:
�、� 利用網(wǎng)絡(luò)工具從網(wǎng)上下載CS8900.C和CS8900.H,并把它們拷貝到內(nèi)核下的DRIVERS/NET目錄。
�、� 修改配菜單,增加CS8900配置選項(xiàng),使系統(tǒng)在配置ARCH_SMDK2410時(shí),可使用CS8900的配置選項(xiàng)。
③ 對(duì)網(wǎng)卡進(jìn)行初始化及相關(guān)文件(smdk2410.h,mach-smdk2410.c,makefile)進(jìn)行修改工作。
④ 通過(guò)Make命令重新編譯,即可實(shí)現(xiàn)CS8900以太網(wǎng)驅(qū)動(dòng)程序的移植。
(3) 嵌入式Web服務(wù)器的選擇及移植[4-6]
在ARM+Linux開(kāi)發(fā)平臺(tái)下,可以使用的Web服務(wù)器主要有三個(gè):Httpd,Thttpd和Boa。Httpd是較簡(jiǎn)單的一個(gè)Web服務(wù)器,但其功能較弱,不支持認(rèn)證、CGI。 Thttpd和Boa都支持認(rèn)證、CGI等,功能比較強(qiáng)。為了實(shí)現(xiàn)動(dòng)態(tài)Web技術(shù),本系統(tǒng)在設(shè)計(jì)中選擇了即支持CGI又較適合于嵌入式系統(tǒng)的Boa Web服務(wù)器,并將其移植在該系統(tǒng)中,使系統(tǒng)實(shí)現(xiàn)嵌入式Web服務(wù)器的功能。具體移植實(shí)現(xiàn)方法如下:
�、� 下載Boa服務(wù)器源代碼boa-0.94.13.tar.gz,并將其解縮在/boa_src/目錄下。
�、� 編譯Boa源代碼,生成執(zhí)行文件Boa(大小約60 KB)。
�、� 創(chuàng)建相關(guān)工作目錄。在/etc目錄下建立一個(gè)boa目錄,里面放入boa的主要配置文件boa.conf。還需要?jiǎng)?chuàng)建日志文件所在目錄/var/log/boa,創(chuàng)建HTML文檔的主目錄/var/www,創(chuàng)建CGI腳本所在目錄/var/www/cgi-bin/。
�、� 對(duì)Boa作配置和修改。主要通過(guò)對(duì)defines.h,boa.conf和mime.types文件進(jìn)行修改來(lái)實(shí)現(xiàn)。修改defines.h指定Web服務(wù)器的根目錄路徑(SERVER_ROOT)。boa.conf文件由一些規(guī)則組成,用于配置Boa服務(wù)器,指定相應(yīng)端口,服務(wù)器名稱,一些相關(guān)文件的路徑等。Boa服務(wù)器要想正確運(yùn)行,必須保證該文件是正確配置的,而且該文件和某些靜態(tài)網(wǎng)頁(yè),CGI可執(zhí)行程序等都放于某特定目錄下。
�、� 放置Boa文件。在/bin/下加入生成的boa可執(zhí)行文件并把修改后的bao.conf拷貝到Web服務(wù)器根目錄/etc/boa下。并將一些靜態(tài)頁(yè)面放在由boa.conf指定的目錄下。
�、� 重新編譯內(nèi)核根文件系統(tǒng)。把該文件系統(tǒng)重新下載到控制中心硬件電路板,啟動(dòng)Boa Web Server,就可以通過(guò)IE訪問(wèn)系統(tǒng)所設(shè)計(jì)的網(wǎng)頁(yè)。
關(guān)鍵詞:ARM;智能家居;遠(yuǎn)程監(jiān)控;GPRS;藍(lán)牙;Linux
中圖分類號(hào):TP23文獻(xiàn)標(biāo)識(shí)碼:B
文章編號(hào):1004-373X(2009)05-134-05
Design of Intellectual House Remote Monitoring System Based on ARM
LI Honggang1,ZHANG Suping2,FANG Jia1,DONG Lingjiao3
(1.Scientific and Technological Information Research Institute,Chinese Academy of Tropical Agricultural Sciences,Danzhou,571737,China;
2.Science & Information Tchnology,Guizhou University,Guiyang,550025,China;3.Wenzhou Vocational & Technical College,Wenzhou,325035,China)
Abstract:To the deficiency of traditional intellectual house system,the design and implementation of intellectual house system based on ARM are introduced.The system is made up of intellectual house termination,intellectual house control centre and client termination,intellectual house control centre and termination are based on the wireless connection way of Bluetooth,Intellectual house control centre and client termination are based on the connection way of GPRS and Internet.The system is based on B/S structure and has the advantages of abundant hardware and software resourece,low cost,low power,easy to expand,upgrade and maintain.The system has certain using value in practical application.
Keywords:ARM;intellectual house remote monitoring;GPRS;Bluetooth;Linux
隨著計(jì)算機(jī)、通信及微電子技術(shù)的飛速發(fā)展和人民生活水平的提高,人們對(duì)居住環(huán)境的要求,也向著追求精神內(nèi)涵、安全舒適、便捷智能化和自動(dòng)化為理想目標(biāo),智能化的家居環(huán)境也逐漸備受人們的關(guān)注。目前,在智能家居系統(tǒng)設(shè)計(jì)中,智能家居控制中心與終端(家電設(shè)備、安防設(shè)備、三表等)之間多采用基于總線的有線連接方式(RS 485,CAN,LonWorks等),這種連接方式具有布線復(fù)雜、線路易腐蝕、維護(hù)不方便、影響室內(nèi)美觀等缺點(diǎn);遠(yuǎn)程用戶與智能家居控制中心之間的通信多采用電話線和網(wǎng)線的通信方式,未能將目前日益成熟的移動(dòng)通信技術(shù)應(yīng)用其中,給用戶帶來(lái)極大的不便;智能家居控制中心多采用單片機(jī)作為控制核心,隨著用戶功能需求的增加,由于單片機(jī)軟硬件資源有限,給系統(tǒng)的升級(jí)、維護(hù)及調(diào)試帶來(lái)極大困難。鑒于此,本文提出了基于ARM的智能家居遠(yuǎn)程監(jiān)控系統(tǒng)設(shè)計(jì)方案,并對(duì)該方案進(jìn)行了具體設(shè)計(jì)。
1 智能家居無(wú)線技術(shù)概述
1.1 GPRS技術(shù)簡(jiǎn)介
通用分組無(wú)線業(yè)務(wù)(Geneval Packet Radio Service,GPRS)以分組交換技術(shù)為基礎(chǔ),采用IP數(shù)據(jù)網(wǎng)絡(luò)協(xié)議,使現(xiàn)有GSM網(wǎng)的數(shù)據(jù)業(yè)務(wù)突破了最高速率為9.6 Kb/s的限制,最高數(shù)據(jù)速率可達(dá)171.2 Kb/s。GPRS具有永遠(yuǎn)在線、高速傳輸、按流量計(jì)費(fèi)、減少無(wú)線資源浪費(fèi)及通信成本低等優(yōu)點(diǎn)。
1.2 藍(lán)牙技術(shù)簡(jiǎn)介
藍(lán)牙技術(shù)[1]是一項(xiàng)新興的技術(shù),它的主要目的是在全世界建立一個(gè)短距離的無(wú)線通信標(biāo)準(zhǔn)。它使用2.4~2.5 GHz的ISM(Industry Scientific Medical)頻段傳送語(yǔ)音和數(shù)據(jù)。運(yùn)用成熟、實(shí)用、先進(jìn)的無(wú)線技術(shù)來(lái)代替電纜,它提供了低成本、低功耗的無(wú)線接口,使所有固定和移動(dòng)設(shè)備通過(guò)微微網(wǎng)PAN(Per2sonal Area Network)連接起來(lái)。這樣,人們可以通過(guò)手機(jī)或者互聯(lián)網(wǎng)在任何時(shí)候、任意地點(diǎn)對(duì)家中的任意電器(空調(diào)、熱水器、電飯煲、燈光、音響、DVD錄像機(jī))進(jìn)行遠(yuǎn)程控制。
2 系統(tǒng)的主要功能和總體結(jié)構(gòu)設(shè)計(jì)
2.1 主要功能
用戶通過(guò)手機(jī)或Internet實(shí)現(xiàn)對(duì)家電、燈光、窗簾、門(mén)禁、安防等基礎(chǔ)設(shè)施及室內(nèi)環(huán)境的遠(yuǎn)程實(shí)時(shí)監(jiān)視與控制,同時(shí)還可自動(dòng)完成三表(水、電、氣)的抄表工作。
2.2 總體結(jié)構(gòu)設(shè)計(jì)
智能家居系統(tǒng)遠(yuǎn)程監(jiān)控系統(tǒng)的核心部分是一個(gè)嵌入式Web服務(wù)器,系統(tǒng)集有線與無(wú)線兩種通信方式于一體,用戶可以通過(guò)手機(jī)或PC機(jī)登陸家中的嵌入式Web服務(wù)器,通過(guò)用戶名和密碼驗(yàn)證之后,便可以查看或控制家用電器、燈光、窗簾、門(mén)禁、安防等基礎(chǔ)設(shè)施;系統(tǒng)帶有LCD和鍵盤(pán),具有良好的人機(jī)界面;用戶可以通過(guò)鍵盤(pán)設(shè)定系統(tǒng)所需要的參數(shù);系統(tǒng)具有豐富的可擴(kuò)展接口,如A/D轉(zhuǎn)換接口、無(wú)線藍(lán)牙接口、RS 485接口、GPRS接口、以太網(wǎng)接口。系統(tǒng)的總體結(jié)構(gòu)設(shè)計(jì)如圖1所示。
3 系統(tǒng)硬件設(shè)計(jì)
3.1 硬件結(jié)構(gòu)設(shè)計(jì)
系統(tǒng)的硬件結(jié)構(gòu)設(shè)計(jì)如圖2,圖3所示。由圖2可知,智能終端以MCU為控制核心,外擴(kuò)藍(lán)牙從模塊及其他外設(shè)接口;由圖3可知,智能家居控制中心硬件由嵌入式微處理器、外部存儲(chǔ)器、數(shù)據(jù)通信接口、人機(jī)接口及調(diào)試接口五大部分組成。
3.2 系統(tǒng)控制中心硬件設(shè)計(jì)
3.2.1 嵌入式微處理器
本系統(tǒng)選用韓國(guó)三星電子的基于ARM920T內(nèi)核的32位嵌入式微處理器S3C2410作為系統(tǒng)的控制核心,該芯片本身集成了包括存儲(chǔ)器接口、通信接口(USB,RS 232),A/D,JTAG等在內(nèi)的豐富的硬件資源,可簡(jiǎn)化外圍設(shè)備與微處理器的硬件連接程度,提高系統(tǒng)的穩(wěn)定性、可靠性。
3.2.2 系統(tǒng)存儲(chǔ)器
由于S3C2410的存儲(chǔ)控制器提供了外部存儲(chǔ)器訪問(wèn)所需要的控制信號(hào),用戶只需要選擇合適的外部FLASH和SDRAM與其相連,即可實(shí)現(xiàn)系統(tǒng)的存儲(chǔ)功能。本系統(tǒng)選用SAMSUNG公司的具有512 MB容量的K9F1208作為系統(tǒng)外部的NAND FLASH存儲(chǔ)器,用于存放程序代碼、常量表以及一些在系統(tǒng)掉電后需要保存的用戶數(shù)據(jù)等。選用2片容量為32 MB的SAMSUNG的K4S56163作為系統(tǒng)外部的SDRAM,用作程序的運(yùn)行空間、數(shù)據(jù)及堆棧區(qū)。
3.2.3 以太網(wǎng)控制模塊
由于S3C2410本身沒(méi)有集成以太網(wǎng)控制模塊,所以需要一個(gè)與之相匹配的控制芯片來(lái)實(shí)現(xiàn)以太網(wǎng)擴(kuò)展接口。本系統(tǒng)選用CIRRUS LOGIC 公司的CS8900A作為系統(tǒng)的以太網(wǎng)控制芯片。CS8900A是一個(gè)單芯片全雙工的以太網(wǎng)解決方案,所有的數(shù)字和模擬電路合成了完整的以太網(wǎng)電路。主要結(jié)構(gòu)包括ISA總線接口、802.3 MAC 引擎、BUFFER、串行E2PROM接口和帶10BASE-T和AUI的模擬前端。CS8900A的10BASE-T接口通過(guò)變壓器HR601627與RJ 45網(wǎng)口連接[2]。
3.2.4 GPRS通信模塊
GPRS通信模塊采用西門(mén)子公司的無(wú)線數(shù)據(jù)傳輸模塊MC35i,支持?jǐn)?shù)據(jù)、短信、語(yǔ)音和傳真業(yè)務(wù)。MC35i是新一代GSM/GPRS雙模模塊,完全兼容上一代的MC35,TC35i;采用緊湊型設(shè)計(jì),為用戶提供了簡(jiǎn)單、內(nèi)嵌式的無(wú)線GPRS連接。MC35i與控制中心是通過(guò)UART接口1進(jìn)行硬件連接的。
3.2.5 藍(lán)牙模塊
系統(tǒng)設(shè)計(jì)中藍(lán)牙模塊選用愛(ài)立信公司的ROK 101 007。該模塊是一款適合短距離無(wú)線通信的射頻/基帶模塊,且集成度高、功耗小,完全兼容藍(lán)牙協(xié)議Version1.1,可嵌入任何需要藍(lán)牙功能的設(shè)備中。ROK 101 007包含5個(gè)功能塊:無(wú)線收發(fā)器、基帶控制器、閃存、電源管理模塊、時(shí)鐘,可提供高至HCI(主機(jī)控制接口)層的功能。ROK 101 007的UART口符合工業(yè)標(biāo)準(zhǔn)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等。與該接口有關(guān)的管腳有4個(gè):TxD(B5),RxD(A5),RTS(A6),CTS(B6)。在本系統(tǒng)設(shè)計(jì)中,ARM微處理器S3C2410通過(guò)UART接口2與ROK 101 007模塊連接。
4 系統(tǒng)軟件設(shè)計(jì)
系統(tǒng)軟件設(shè)計(jì)包括智能家居控制中心軟件設(shè)計(jì)和智能終端應(yīng)用軟件設(shè)計(jì)兩大部分。智能家居控制中心是以ARM微處理器為控制核心,其軟件設(shè)計(jì)包括系統(tǒng)軟件(嵌入式操作系統(tǒng)、硬件設(shè)備驅(qū)動(dòng)程序、嵌入式數(shù)據(jù)庫(kù)、嵌入式Web服務(wù)器)設(shè)計(jì)和應(yīng)用軟件(網(wǎng)頁(yè)設(shè)計(jì)及CGI應(yīng)用程序)設(shè)計(jì);智能終端的控制核心為單片機(jī),其應(yīng)用軟件設(shè)計(jì)是一個(gè)循環(huán)控制程序。
4.1 系統(tǒng)控制中心的軟件設(shè)計(jì)
4.1.1 系統(tǒng)軟件設(shè)計(jì)
(1) 嵌入式操作系統(tǒng)的選擇及移植
本系統(tǒng)采用Linux作為操作系統(tǒng),并選用Linux 2.6內(nèi)核在嵌入式微處理器S3C2410上移植,具體移植方法如下:
�、� 準(zhǔn)備Linux 2.6內(nèi)核移植所必需的文件(內(nèi)核壓縮包linux-2.6.tar.bz2及交叉編譯器arm-linux-gcc-3.4.1.tar.bz2),這些文件可到Linux官方網(wǎng)站免費(fèi)下載。
�、� 利用Linux命令(mkdir,tar,mv及export)安裝交叉編譯器arm-linux-gcc-3.4.1。
③ 修改Makefile文件及相關(guān)硬件文件。 由于內(nèi)核的編譯是根據(jù) Makefile 文件的指示進(jìn)行的,Makefile 文件來(lái)組織內(nèi)核的各模塊之間的關(guān)系,記錄了各個(gè)模塊之間的相互聯(lián)系和依賴關(guān)系。所以,開(kāi)發(fā)人員要首先修改Linux 2.6根目錄下的 Makfile 文件,修改的主要內(nèi)容是目標(biāo)代碼的類型和為編譯內(nèi)核指定一個(gè)編譯器。
④ 運(yùn)用Make命令編譯內(nèi)核生成內(nèi)核鏡像文件 zImage文件,通過(guò)相應(yīng)的固化軟件把這個(gè)文件固化在系統(tǒng)相應(yīng)的存儲(chǔ)器中,完成Linux 2.6內(nèi)核在ARM微處理器上的移植。
(2) 驅(qū)動(dòng)程序的移植及設(shè)計(jì)
智能家居控制中心需要多個(gè)設(shè)備驅(qū)動(dòng)程序,而對(duì)于嵌入式系統(tǒng)而言很少有通用的外設(shè)驅(qū)動(dòng)程序可以使用。在本系統(tǒng)中,除了GPRS模塊和藍(lán)牙主模塊分別通過(guò)第一、第二個(gè)串口與S3C2410相連,可以直接使用標(biāo)準(zhǔn)的串口驅(qū)動(dòng)程序外,其余的如家電控制接口、傳感器接口及以太網(wǎng)接口等屬于非標(biāo)準(zhǔn)外設(shè),需要專門(mén)設(shè)計(jì)其驅(qū)動(dòng)程序。在驅(qū)動(dòng)程序的設(shè)計(jì)中,由于嵌入式Linux系統(tǒng)中設(shè)備驅(qū)動(dòng)程序有一個(gè)標(biāo)準(zhǔn)的框架,雖然這些接口工作原理不同,但其設(shè)計(jì)方法基本類似,即根據(jù)硬件結(jié)構(gòu)來(lái)“填寫(xiě)”框架中的函數(shù)。主要的函數(shù)包括open(),read(),write(),ioctl(),release(),module_init()和module_exit()等[3]。
以太網(wǎng)接口驅(qū)動(dòng)程序的設(shè)計(jì)雖然可以按照上述方法進(jìn)行,但是實(shí)現(xiàn)起來(lái)卻有一定的難度,本系統(tǒng)在設(shè)計(jì)中使用一種更簡(jiǎn)單的方法,即通過(guò)移植的方法實(shí)現(xiàn)CS8900以太網(wǎng)驅(qū)動(dòng)程序在S3C2410上運(yùn)行。具體移植方法如下:
�、� 利用網(wǎng)絡(luò)工具從網(wǎng)上下載CS8900.C和CS8900.H,并把它們拷貝到內(nèi)核下的DRIVERS/NET目錄。
�、� 修改配菜單,增加CS8900配置選項(xiàng),使系統(tǒng)在配置ARCH_SMDK2410時(shí),可使用CS8900的配置選項(xiàng)。
③ 對(duì)網(wǎng)卡進(jìn)行初始化及相關(guān)文件(smdk2410.h,mach-smdk2410.c,makefile)進(jìn)行修改工作。
④ 通過(guò)Make命令重新編譯,即可實(shí)現(xiàn)CS8900以太網(wǎng)驅(qū)動(dòng)程序的移植。
(3) 嵌入式Web服務(wù)器的選擇及移植[4-6]
在ARM+Linux開(kāi)發(fā)平臺(tái)下,可以使用的Web服務(wù)器主要有三個(gè):Httpd,Thttpd和Boa。Httpd是較簡(jiǎn)單的一個(gè)Web服務(wù)器,但其功能較弱,不支持認(rèn)證、CGI。 Thttpd和Boa都支持認(rèn)證、CGI等,功能比較強(qiáng)。為了實(shí)現(xiàn)動(dòng)態(tài)Web技術(shù),本系統(tǒng)在設(shè)計(jì)中選擇了即支持CGI又較適合于嵌入式系統(tǒng)的Boa Web服務(wù)器,并將其移植在該系統(tǒng)中,使系統(tǒng)實(shí)現(xiàn)嵌入式Web服務(wù)器的功能。具體移植實(shí)現(xiàn)方法如下:
�、� 下載Boa服務(wù)器源代碼boa-0.94.13.tar.gz,并將其解縮在/boa_src/目錄下。
�、� 編譯Boa源代碼,生成執(zhí)行文件Boa(大小約60 KB)。
�、� 創(chuàng)建相關(guān)工作目錄。在/etc目錄下建立一個(gè)boa目錄,里面放入boa的主要配置文件boa.conf。還需要?jiǎng)?chuàng)建日志文件所在目錄/var/log/boa,創(chuàng)建HTML文檔的主目錄/var/www,創(chuàng)建CGI腳本所在目錄/var/www/cgi-bin/。
�、� 對(duì)Boa作配置和修改。主要通過(guò)對(duì)defines.h,boa.conf和mime.types文件進(jìn)行修改來(lái)實(shí)現(xiàn)。修改defines.h指定Web服務(wù)器的根目錄路徑(SERVER_ROOT)。boa.conf文件由一些規(guī)則組成,用于配置Boa服務(wù)器,指定相應(yīng)端口,服務(wù)器名稱,一些相關(guān)文件的路徑等。Boa服務(wù)器要想正確運(yùn)行,必須保證該文件是正確配置的,而且該文件和某些靜態(tài)網(wǎng)頁(yè),CGI可執(zhí)行程序等都放于某特定目錄下。
�、� 放置Boa文件。在/bin/下加入生成的boa可執(zhí)行文件并把修改后的bao.conf拷貝到Web服務(wù)器根目錄/etc/boa下。并將一些靜態(tài)頁(yè)面放在由boa.conf指定的目錄下。
�、� 重新編譯內(nèi)核根文件系統(tǒng)。把該文件系統(tǒng)重新下載到控制中心硬件電路板,啟動(dòng)Boa Web Server,就可以通過(guò)IE訪問(wèn)系統(tǒng)所設(shè)計(jì)的網(wǎng)頁(yè)。