新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 智能家居遠(yuǎn)程監(jiān)控系統(tǒng)的設(shè)計(jì)及實(shí)現(xiàn)

智能家居遠(yuǎn)程監(jiān)控系統(tǒng)的設(shè)計(jì)及實(shí)現(xiàn)

作者: 時(shí)間:2011-03-04 來(lái)源:網(wǎng)絡(luò) 收藏

3 系統(tǒng)軟件設(shè)計(jì)
本系統(tǒng)控制中心是9控制器,其軟件設(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)系和依賴關(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)核在微處理器上的移植。
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)填寫框架中的函數(shù)。主要的函數(shù)包括open(),read(),write(),ioctl(),release(),module_init()和module_exit()等。為了減小內(nèi)核的大小,把編寫好的驅(qū)動(dòng)程序編譯成模塊。編寫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è),在用戶端可以通過(guò)瀏覽器來(lái)訪問(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ù)器名稱,一些相關(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ò)瀏覽器就能訪問(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)編寫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ù)器端。在用戶端打開(kāi)HTML頁(yè)面,點(diǎn)擊HTML頁(yè)面上設(shè)備的控制按鈕,就會(huì)通過(guò)Internet把用戶請(qǐng)求送到嵌入式Web服務(wù)器中,服務(wù)器接收用戶請(qǐng)求并交給CGI程序處理,實(shí)現(xiàn)用戶的功能需求,這就做到了通過(guò)對(duì)HTML頁(yè)面上相應(yīng)設(shè)備的點(diǎn)擊實(shí)現(xiàn)家庭網(wǎng)絡(luò)中設(shè)備的遠(yuǎn)程控制。

4 結(jié)束語(yǔ)
該系統(tǒng)硬件采用9 S3C2440 微處理器作為控制核心,軟件采用linux-2.6.31內(nèi)核作為系統(tǒng)的嵌入式操作系統(tǒng),采用Boa作為嵌入式Web服務(wù)器,結(jié)合以太網(wǎng)通信技術(shù)和GPRS無(wú)線通信技術(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ā)展空間非常大,能夠使人們生活得更加舒適安全。


上一頁(yè) 1 2 3 下一頁(yè)

關(guān)鍵詞: ARM USB

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉