專(zhuān)業(yè)微波人才庫(kù),,邀請(qǐng)您注冊(cè)簡(jiǎn)歷,,讓好工作主動(dòng)找您!
0 引言
隨著國(guó)民經(jīng)濟(jì)的快速發(fā)展和人們生活水平的不斷提高,,人們對(duì)居住房子的舒適性及安全性要求也提升到了更高的檔次,,同時(shí)計(jì)算機(jī)技術(shù)、網(wǎng)絡(luò)和信息技術(shù)也在不斷發(fā)展,,這使得家庭智能系統(tǒng)的遠(yuǎn)程監(jiān)控成為一種現(xiàn)實(shí),。本文設(shè)計(jì)的智能家居遠(yuǎn)程監(jiān)控系統(tǒng)實(shí)現(xiàn)了家用電器等的智能化管理,對(duì)家庭環(huán)境的實(shí)時(shí)監(jiān)視和自動(dòng)報(bào)警功能,。
1 智能家居系統(tǒng)的總體結(jié)構(gòu)
智能家居遠(yuǎn)程監(jiān)控系統(tǒng)的核心部分是一個(gè)嵌入式Web服務(wù)器,,系統(tǒng)集有線(xiàn)和無(wú)線(xiàn)Web服務(wù)器于一體,用戶(hù)可以利用辦公室的PC登錄家中的Web服務(wù)器,,在通過(guò)用戶(hù)名和密碼驗(yàn)證后,便可以查看并控制家用電器,。系統(tǒng)結(jié)構(gòu)框圖如圖1所示,。
2 系統(tǒng)硬件設(shè)計(jì)
本系統(tǒng)硬件電路框圖如圖2所示,主要由ARM9控制器S3C2440,,F(xiàn)LASH,,SDRAM,電源及復(fù)位模塊,,觸摸屏顯示模塊,,USB攝像頭,以太網(wǎng)接口模塊,,GPRS模塊,,家電控制,安防控制等組成,。
2.1 ARM9控制器S3C2440
ARM9控制器S3C2440是基于ARM920T內(nèi)核的16/32位RISC處理器,,具有功能強(qiáng)大、性?xún)r(jià)比高,、功耗低的優(yōu)點(diǎn),。
2.2 家電控制
本系統(tǒng)針對(duì)家電設(shè)備的智能化程度不同,提出了不同的解決方案,。對(duì)于電燈開(kāi)關(guān)等需要手工控制的傳統(tǒng)家庭設(shè)備,。系統(tǒng)添加了輔助控制器(繼電器等),用戶(hù)可通過(guò)以太網(wǎng)或手機(jī)短信的方式控制處理器GPIOn的狀態(tài),,間接控制家庭設(shè)備,;對(duì)于電視、空調(diào)等可通過(guò)紅外線(xiàn)控制的電器設(shè)備,,系統(tǒng)采用帶有以太網(wǎng)接口的通用控制器統(tǒng)一遙控,;對(duì)于自身具備網(wǎng)絡(luò)接入功能,,支持遠(yuǎn)程平臺(tái)控制的智能電器設(shè)備,直接接入家庭以太網(wǎng)即可,。
2.3 安防控制
系統(tǒng)使用的所有探測(cè)器(煙感傳感器,、煤氣傳感器、門(mén)磁傳感器等)和報(bào)警設(shè)備,,都是通過(guò)GPIO與控制器相連來(lái)完成報(bào)警輸入輸出的功能,。然而這些輸入輸出信號(hào)都有很強(qiáng)的電流,對(duì)系統(tǒng)的干擾較大,,因此采用TLP521光電隔離芯片和繼電器對(duì)報(bào)警輸入輸出信號(hào)分別進(jìn)行隔離,,從而把外部信號(hào)對(duì)系統(tǒng)的影響降到最低。
2.4 GPRS模塊
GPRS模塊采用西門(mén)子公司的MC35i GPRS MODEM,。當(dāng)S3C2440控制器收到報(bào)警信號(hào)時(shí),,它通過(guò)UART控制MC35i,將預(yù)存的相應(yīng)報(bào)警信息通過(guò)GPRS網(wǎng)絡(luò)以短信的形式發(fā)送到用戶(hù)的手機(jī)上,,同時(shí)向小區(qū)物業(yè)中心發(fā)出報(bào)警,,使用戶(hù)和物業(yè)部門(mén)及時(shí)發(fā)現(xiàn)險(xiǎn)情,并采取有效的處理措施減少
經(jīng)濟(jì)損失,。
2.5 以太網(wǎng)接口模塊
由于S3C2440本身沒(méi)有集成以太網(wǎng)控制模塊,,所以需要一個(gè)與之相匹配的DM9000控制芯片來(lái)實(shí)現(xiàn)以太網(wǎng)擴(kuò)展接口。在DM9000和RJ45接口之間通過(guò)網(wǎng)絡(luò)隔離變壓器HR601627來(lái)連接,,連接圖如圖3所示,,網(wǎng)絡(luò)隔離變壓器起信號(hào)傳輸、高電壓隔離等作用,,以保護(hù)系統(tǒng)的安全,。
2.6 USB攝像頭
本系統(tǒng)所用的USB攝像頭是中星微公司的ZC2301P。攝像頭ZC301P采集的視頻信號(hào)經(jīng)壓縮后形成的視頻數(shù)據(jù)流會(huì)通過(guò)內(nèi)部總線(xiàn)傳送到嵌入式Web服務(wù)器上,,用戶(hù)可通過(guò)登陸網(wǎng)絡(luò)直接觀(guān)看Web服務(wù)器上的視頻圖像,,實(shí)時(shí)監(jiān)控家中的情況。
3 系統(tǒng)軟件設(shè)計(jì)
本系統(tǒng)控制中心是ARM9控制器,,其軟件設(shè)計(jì)包括系統(tǒng)軟件(嵌入式操作系統(tǒng),、硬件設(shè)備驅(qū)動(dòng)程序、嵌入式Web服務(wù)器)設(shè)計(jì)和應(yīng)用軟件(網(wǎng)頁(yè)設(shè)計(jì)及CGI應(yīng)用程序)設(shè)計(jì),。
3.1 嵌入式操作系統(tǒng)在S3C2440上移植過(guò)程
(1)從網(wǎng)站上下載Linux的內(nèi)核源碼linux-2.6.31.tar.bz2和交叉編譯器arm920t-eabi.tgz,,這個(gè)交叉編譯器是4.1.2版本的,支持EABI,,可以提高編譯的效率,。
(2)在宿主機(jī)上將內(nèi)核源碼解壓得到linux-2.6.31,將交叉編譯器解壓到指定目錄。
(3)修改Makefile文件及相關(guān)硬件文件,。由于內(nèi)核的編譯是根據(jù)Makefile文件的指示進(jìn)行的,,Makefile文件來(lái)組織內(nèi)核的各模塊之間的關(guān)系,記錄了各個(gè)模塊之間的相互聯(lián)系和依賴(lài)關(guān)系,。所以,,修改Linux2.6.31根目錄下的Maldile文件來(lái)指定平臺(tái)和交叉編譯器。
(4)通過(guò)命令# make menuconfig來(lái)配置內(nèi)核,。配置內(nèi)核時(shí),,讓它支持EABI編譯。
(5)在linux-2.6.31根目錄下執(zhí)行命令# make zImage來(lái)編譯內(nèi)核,,將生成的內(nèi)核鏡像文件zImage通過(guò)相應(yīng)的固化軟件固化到系統(tǒng)相應(yīng)的存儲(chǔ)器中,,完成linux-2.6.31內(nèi)核在ARM微處理器上的移植。
3.2 驅(qū)動(dòng)程序的設(shè)計(jì)
控制器需要多個(gè)設(shè)備驅(qū)動(dòng)程序,。嵌入式Linux系統(tǒng)中設(shè)備驅(qū)動(dòng)程序有一個(gè)標(biāo)準(zhǔn)的框架,,可以根據(jù)硬件結(jié)構(gòu)來(lái)填寫(xiě)框架中的函數(shù)。主要的函數(shù)包括 open(),,read(),,write(),ioctl(),,release(),,module_init()和module_exit()等,。為了減小內(nèi)核的大小,,把編寫(xiě)好的驅(qū)動(dòng)程序編譯成模塊。編寫(xiě)Makefile,、Kconfig文件,,分別執(zhí)行make menuconfig命令選擇驅(qū)動(dòng)程序的加載方式,利用makemodules命令生成目標(biāo)文件,,最后利用insmod命令調(diào)用 initial_module函數(shù)將編譯好的模塊調(diào)入內(nèi)存即可,。
3.3 Web服務(wù)器Boa移植
Boa是一個(gè)嵌入式Web服務(wù)器,能夠生成動(dòng)態(tài)的頁(yè)面,,支持CGI,,比較適合嵌入式系統(tǒng)。在硬件電路板上存放一個(gè)網(wǎng)頁(yè),,在用戶(hù)端可以通過(guò)瀏覽器來(lái)訪(fǎng)問(wèn)硬件電路板上這個(gè)網(wǎng)頁(yè),,然后通過(guò)網(wǎng)頁(yè)中的內(nèi)容就可以和硬件電路板上的硬件設(shè)備進(jìn)行交互。具體移植過(guò)程如下:
(1)從網(wǎng)上下載Boa服務(wù)器源碼壓縮包boa-0.94.13.tar.gz,,將其解壓得到boa-0.94.13,,在boa-0.94.13/src下編譯生成boa可執(zhí)行程序。
(2)把宿主機(jī)Linux操作系統(tǒng)下的/etc/mime.types復(fù)制到根文件系統(tǒng)的/etc目錄中,在根文件系統(tǒng)的/etc中建立boa文件夾,,根文件系統(tǒng)的/etc/boa目錄下建立www,、cgi-bin目錄,www中存放HTML文件,,cgi-bin中存放CGI腳本,,把網(wǎng)頁(yè)文件 index.files和index.html復(fù)制到根文件系統(tǒng)的/etc/boa/www目錄下,在根文件系統(tǒng)的/var目錄下建立日志目錄 log/boa,。
(3)對(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ù)器名稱(chēng),一些相關(guān)文件的路徑等,。Boa服務(wù)器要想正確運(yùn)行,,必須保證該文件是正確配置的,而且該文件和某些靜態(tài)網(wǎng)頁(yè),,CGI可執(zhí)行程序等都放于某特定目錄下,。
(4)把boa-0.94.13/sre下編譯出的boa可執(zhí)行程序復(fù)制到根文件系統(tǒng)的/usr/bin目錄下,把修改過(guò)的配置文件boa.conf復(fù)制到開(kāi)發(fā)板的/etc/boa目錄下,,并將一些靜態(tài)頁(yè)面放在由boa.conf指定的目錄下,。
(5)重新編譯根文件系統(tǒng)。把根文件系統(tǒng)下載到硬件電路板上,。
在硬件電路板上運(yùn)行嵌入式Web服務(wù)器Boa,,通過(guò)瀏覽器就能訪(fǎng)問(wèn)系統(tǒng)所設(shè)計(jì)的網(wǎng)頁(yè)。
3.4 應(yīng)用軟件設(shè)計(jì)
本系統(tǒng)的核心是一個(gè)嵌入式Web服務(wù)器,,其應(yīng)用軟件的設(shè)計(jì)包括網(wǎng)頁(yè)設(shè)計(jì)和CGI應(yīng)用程序設(shè)計(jì)兩部分,。
(1)網(wǎng)頁(yè)設(shè)計(jì):網(wǎng)頁(yè)設(shè)計(jì)采用設(shè)計(jì)工具Dreamweaver,F(xiàn)rongtPage等來(lái)實(shí)現(xiàn),。
(2)CGI應(yīng)用程序設(shè)計(jì):采用C語(yǔ)言來(lái)編寫(xiě)CGI應(yīng)用程序,,實(shí)現(xiàn)外部實(shí)時(shí)數(shù)據(jù)采樣、與家電設(shè)備的通信與控制等,。CGI技術(shù)可以實(shí)現(xiàn)瀏覽器與嵌入式Web 服務(wù)器的動(dòng)態(tài)數(shù)據(jù)交互,。CGI程序保存在嵌入式Web服務(wù)器端。在用戶(hù)端打開(kāi)HTML頁(yè)面,,點(diǎn)擊HTML頁(yè)面上設(shè)備的控制按鈕,,就會(huì)通過(guò)Internet 把用戶(hù)請(qǐng)求送到嵌入式Web服務(wù)器中,服務(wù)器接收用戶(hù)請(qǐng)求并交給CGI程序處理,實(shí)現(xiàn)用戶(hù)的功能需求,,這就做到了通過(guò)對(duì)HTML頁(yè)面上相應(yīng)設(shè)備的點(diǎn)擊實(shí)現(xiàn)家庭網(wǎng)絡(luò)中設(shè)備的遠(yuǎn)程控制,。
4 結(jié)束語(yǔ)
該系統(tǒng)硬件采用ARM9 S3C2440 微處理器作為控制核心,軟件采用linux-2.6.31內(nèi)核作為系統(tǒng)的嵌入式操作系統(tǒng),,采用Boa作為嵌入式Web服務(wù)器,,結(jié)合以太網(wǎng)通信技術(shù)和 GPRS無(wú)線(xiàn)通信技術(shù)實(shí)現(xiàn)了對(duì)家庭環(huán)境的遠(yuǎn)程實(shí)時(shí)監(jiān)控、安防自動(dòng)報(bào)警和對(duì)家電設(shè)備遠(yuǎn)程控制的功能,。本監(jiān)控系統(tǒng)具有較大的實(shí)用價(jià)值,,未來(lái)的發(fā)展空間非常大,能夠使人們生活得更加舒適安全,。