亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于ARM的嵌入式Web服務(wù)器設(shè)計(jì)與實(shí)現(xiàn)

        2014-01-01 03:05:18肖令祿
        關(guān)鍵詞:內(nèi)核瀏覽器智能家居

        肖令祿

        (渭南師范學(xué)院物理與電氣工程學(xué)院,陜西渭南714099)

        物聯(lián)網(wǎng)是信息化產(chǎn)業(yè)中繼計(jì)算機(jī)、互聯(lián)網(wǎng)和移動(dòng)通信技術(shù)之后興起的又一項(xiàng)革命性技術(shù).作為物聯(lián)網(wǎng)技術(shù)的一個(gè)典型應(yīng)用,智能家居近年來(lái)在我國(guó)得到了快速發(fā)展,它在為人們的生活帶來(lái)便捷、舒適、安全的同時(shí),也逐漸改變著人們的生活方式.隨著3G、4G網(wǎng)絡(luò)的開通運(yùn)營(yíng)以及各種手持智能移動(dòng)終端的普及,人們利用Internet隨時(shí)隨地對(duì)智能家居進(jìn)行遠(yuǎn)程監(jiān)控成為了可能.但傳統(tǒng)的Web服務(wù)器對(duì)系統(tǒng)硬件配置要求較高,不適用于資源有限的嵌入式系統(tǒng).本文設(shè)計(jì)了一種基于ARM的嵌入式Web服務(wù)器,通過(guò)將Web技術(shù)和通用網(wǎng)關(guān)接口技術(shù)CGI(Common Gateway Interface)相結(jié)合,不僅滿足了嵌入式設(shè)備接入互聯(lián)網(wǎng)的需求,而且實(shí)現(xiàn)了客戶端與服務(wù)器之間的動(dòng)態(tài)數(shù)據(jù)交互,能夠很好地適應(yīng)智能家居等嵌入式系統(tǒng)遠(yuǎn)程監(jiān)控的需要.

        1 嵌入式Web服務(wù)器的體系結(jié)構(gòu)

        傳統(tǒng)的Web服務(wù)器通常是由一系列具有高運(yùn)算處理能力、海量存儲(chǔ)能力的高性能PC機(jī)組成,以非實(shí)時(shí)操作系統(tǒng)為軟件運(yùn)行平臺(tái),用來(lái)響應(yīng)眾多用戶對(duì)網(wǎng)站的并發(fā)訪問請(qǐng)求.而在嵌入式系統(tǒng)中,設(shè)備的軟硬件資源都非常有限,不支持對(duì)系統(tǒng)資源占用較多的應(yīng)用程序,也無(wú)需處理大量的數(shù)據(jù)請(qǐng)求,因此,宜采用功能相對(duì)簡(jiǎn)單、體積小、資源消耗少的嵌入式Web服務(wù)器,其體系結(jié)構(gòu)如圖1所示.

        圖1 嵌入式Web服務(wù)器的體系結(jié)構(gòu)

        嵌入式Web服務(wù)器通常采用B/S結(jié)構(gòu),其內(nèi)部已經(jīng)植入了TCP/IP協(xié)議.用戶通過(guò)瀏覽器向Web服務(wù)器發(fā)送連接請(qǐng)求,服務(wù)器在檢查請(qǐng)求合法后建立與瀏覽器的TCP/IP連接,偵聽瀏覽器服務(wù)請(qǐng)求并按HTTP協(xié)議規(guī)范進(jìn)行解析,根據(jù)所請(qǐng)求內(nèi)容的不同,將一個(gè)靜態(tài)頁(yè)面或CGI程序的執(zhí)行結(jié)果返回給瀏覽器.

        在嵌入式Linux系統(tǒng)中,典型的Web服務(wù)器有httpd、shttpd、thttpd及Boa等.其中,Boa是一種運(yùn)行于Linux環(huán)境下的高效小巧的Web服務(wù)器,其可執(zhí)行代碼只有約60 KB左右.[1]Boa是一個(gè)單任務(wù)的Web服務(wù)器,只能依次完成用戶的請(qǐng)求,不能創(chuàng)建新的進(jìn)程處理并發(fā)連接請(qǐng)求,但Boa支持CGI,能夠創(chuàng)建出一個(gè)新的進(jìn)程來(lái)執(zhí)行CGI程序,滿足本系統(tǒng)的設(shè)計(jì)要求,因此,設(shè)計(jì)中選用Boa作為嵌入式Web服務(wù)器.

        2 硬件平臺(tái)的設(shè)計(jì)

        本系統(tǒng)硬件平臺(tái)選用友善之臂的Micro2440開發(fā)板,該開發(fā)板采用以ARM920T為內(nèi)核的S3C2440處理器,系統(tǒng)硬件組成主要包括微處理器、存儲(chǔ)器、外設(shè)接口及用戶接口等四個(gè)部分,如圖2所示.

        圖2 系統(tǒng)硬件平臺(tái)結(jié)構(gòu)示意圖

        Micro2440開發(fā)板支持兩種啟動(dòng)模式,即NorFlash啟動(dòng)和NandFlash啟動(dòng),設(shè)計(jì)中選用第二種啟動(dòng)方式.系統(tǒng)上電復(fù)位后程序?qū)?x00000000地址處開始運(yùn)行,該地址對(duì)應(yīng)于64 MB NandFlash的起始地址,存放引導(dǎo)系統(tǒng)加載程序BootLoader.BootLoader用于初始化硬件設(shè)備,建立內(nèi)存空間映射圖,從NandFlash中讀取內(nèi)核映像和根文件系統(tǒng)到RAM中,為內(nèi)核設(shè)置啟動(dòng)參數(shù),調(diào)用內(nèi)核直到最終啟動(dòng)系統(tǒng).

        3 系統(tǒng)軟件設(shè)計(jì)

        3.1 ARM-Linux軟件開發(fā)環(huán)境的建立

        軟件開發(fā)環(huán)境的建立過(guò)程主要包括:BootLoader的移植、Linux內(nèi)核的移植以及根文件系統(tǒng)的制作.該環(huán)境實(shí)際上是任何嵌入式系統(tǒng)開發(fā)所需的通用環(huán)境,因本文的研究重點(diǎn)并不在于此,故只作簡(jiǎn)要介紹.

        BootLoader是系統(tǒng)上電后運(yùn)行的第一段程序,用于引導(dǎo)操作系統(tǒng).S3C2440微處理器常用的BootLoader主要有vivi和u-boot,設(shè)計(jì)中選用u-boot作為引導(dǎo)加載程序.其移植過(guò)程相關(guān)參考文獻(xiàn)較多,在此不再贅述.移植完成后,將編譯生成的u-boot.bin文件下載到NandFlash的0x00000000地址處即可.

        Linux內(nèi)核移植是指根據(jù)所選用的目標(biāo)平臺(tái)對(duì)Linux源代碼進(jìn)行必要修改,使其能在目標(biāo)平臺(tái)上正確運(yùn)行,包括獲取內(nèi)核源代碼,根據(jù)目標(biāo)平臺(tái)對(duì)體系結(jié)構(gòu)相關(guān)的代碼進(jìn)行修改,添加必要的硬件驅(qū)動(dòng)程序,配置并編譯內(nèi)核,以及將生成的內(nèi)核映像文件uImage燒寫到NandFlash中的指定區(qū)域等.本設(shè)計(jì)中選用Linux2.6.29.4 版本內(nèi)核,按文獻(xiàn)[2]所述方法進(jìn)行移植.

        根文件系統(tǒng)是內(nèi)核啟動(dòng)后掛載的第一個(gè)文件系統(tǒng),它由一些內(nèi)核啟動(dòng)所必須的文件和目錄組成,如用戶進(jìn)程init所對(duì)應(yīng)的文件、掛載分區(qū)所需的/etc/fstab文件、shell接口、各種操作命令及應(yīng)用程序運(yùn)行所依賴的庫(kù)文件等.設(shè)計(jì)中選用BusyBox創(chuàng)建根文件系統(tǒng)目錄,同時(shí),為了便于調(diào)試并節(jié)約存儲(chǔ)資源,選用網(wǎng)絡(luò)文件系統(tǒng)NFS掛載根文件系統(tǒng).

        3.2 Boa服務(wù)器的移植

        Boa服務(wù)器的移植過(guò)程主要包括源代碼的獲取、可執(zhí)行文件的編譯、Boa.conf文件的配置等.[3]

        (1)從www.boa.org上下載Boa服務(wù)器源代碼,設(shè)計(jì)中選用Boa-0.94.13版本.

        (2)解壓后進(jìn)入Boa源代碼目錄下的src子目錄,生成Makefile文件并進(jìn)行修改,將CC=gcc、CPP=gcc-E分別修改為CC=arm-linux-gcc和CPP=arm-linux-gcc-E.執(zhí)行make命令進(jìn)行編譯并去除調(diào)試信息,得到大小約為60 KB的可執(zhí)行文件Boa.

        (3)Boa.conf文件用于配置Boa服務(wù)器的運(yùn)行環(huán)境及參數(shù),包括用戶訪問權(quán)限、服務(wù)器偵聽端口、日志目錄、靜態(tài)頁(yè)面和CGI腳本的存儲(chǔ)目錄等.配置內(nèi)容包括:將服務(wù)器端口設(shè)置為80,將訪問權(quán)限User nobody、Group nogroup分別修改為User 0和Group 0,設(shè)置訪問日志目錄為/var/log/boa/access_log,設(shè)置靜態(tài)頁(yè)面的存放目錄為/www,設(shè)置CGI腳本的存放目錄為/cgi/cgi-bin等.

        3.3 CGI程序設(shè)計(jì)

        CGI定義了Web服務(wù)器和CGI腳本之間的接口標(biāo)準(zhǔn),提供了一種Web環(huán)境下的數(shù)據(jù)傳遞服務(wù)機(jī)制.[4]用戶可通過(guò)瀏覽器傳遞信息給Web服務(wù)器,服務(wù)器把接收到的信息存入環(huán)境變量,然后啟動(dòng)指定的CGI腳本完成特定的工作.CGI腳本在執(zhí)行過(guò)程中所需的參數(shù)可從環(huán)境變量中獲取,最后將執(zhí)行結(jié)果以HTML頁(yè)面的格式返回給瀏覽器端,其工作原理如圖3所示.

        圖3 CGI工作原理示意圖

        在Web環(huán)境下,瀏覽器與服務(wù)器之間的數(shù)據(jù)交換都是通過(guò)表單完成的,其數(shù)據(jù)傳遞方式包括GET和POST兩種.在GET方法中,表單中的數(shù)據(jù)被作為字符串附加到URL的后面,由于字符串長(zhǎng)度受環(huán)境變量QUERY_STRING的限制且只能出現(xiàn)在URL請(qǐng)求行中,故表單數(shù)據(jù)的提交大多使用POST方法.[5-6]

        在智能家居控制系統(tǒng)中,遍布在室內(nèi)的各種傳感器將采集到的數(shù)據(jù)發(fā)送并以文本文件的格式保存在家居控制中心.以環(huán)境溫度檢測(cè)為例,傳感器采集到的溫度值經(jīng)格式轉(zhuǎn)換后保存在根文件系統(tǒng)中的temperature.txt文件中,CGI程序開始運(yùn)行后,將打開該文件,讀取文件中的數(shù)據(jù)并保存在數(shù)組中,用標(biāo)準(zhǔn)輸出STDOUT將查詢到的溫度信息以HTML格式返回到瀏覽器頁(yè)面中.設(shè)計(jì)中溫度查詢所對(duì)應(yīng)的CGI程序?yàn)閠emp.cgi,其主要代碼如下:

        4 實(shí)驗(yàn)測(cè)試

        設(shè)計(jì)智能家居遠(yuǎn)程控制系統(tǒng)主頁(yè)面index.html,存放在Boa服務(wù)器的/www目錄中,將編譯后的CGI應(yīng)用程序存放在/cgi/cgi-bin目錄中,設(shè)置開發(fā)板的IP地址為192.168.0.123,啟動(dòng)Boa服務(wù)器,在任意瀏覽器地址欄中輸入開發(fā)板的IP地址,即可看到系統(tǒng)主界面,如圖4所示.點(diǎn)擊“查詢”按鈕后,相應(yīng)的CGI程序就會(huì)被執(zhí)行,同時(shí)將查詢結(jié)果返回到瀏覽器頁(yè)面中.除查詢家居環(huán)境以外,還可設(shè)計(jì)相應(yīng)的CGI程序用于智能家電的遠(yuǎn)程控制.

        圖4 智能家居遠(yuǎn)程監(jiān)控界面

        5 結(jié)語(yǔ)

        將嵌入式Web服務(wù)器引入到智能家居控制系統(tǒng)的設(shè)計(jì)中,使得用戶可以通過(guò)瀏覽器實(shí)現(xiàn)家居環(huán)境的遠(yuǎn)程監(jiān)測(cè)以及智能家電的遠(yuǎn)程控制,極大地方便了用戶,提高了家居的智能化水平.實(shí)驗(yàn)測(cè)試結(jié)果表明,該系統(tǒng)響應(yīng)速度快、可靠性較高,經(jīng)適當(dāng)?shù)男薷暮屯晟?,可廣泛應(yīng)用于數(shù)據(jù)采集、醫(yī)療看護(hù)、工業(yè)控制等眾多領(lǐng)域,具有一定的應(yīng)用和推廣價(jià)值.

        [1]王俊,郭書軍.嵌入式Web服務(wù)器的實(shí)現(xiàn)及其CGI應(yīng)用[J].電子設(shè)計(jì)工程,2011,19(21):152-154.

        [2]王劍飛,程耀瑜.基于S3C2440的嵌入式Linux系統(tǒng)移植[J].電子測(cè)試,2012,(11):84-88.

        [3]謝華成,李晶.物聯(lián)網(wǎng)系統(tǒng)中嵌入式 BOA的移植與應(yīng)用[J].軟件,2011,32(5):106-108.

        [4]宋凱,嚴(yán)麗平,甘嵐.嵌入式Web服務(wù)器的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)工程與設(shè)計(jì),2009,30(4):808-810.

        [5]王莉,周偉.基于ARM的嵌入式Web服務(wù)器設(shè)計(jì)[J].計(jì)算機(jī)工程與應(yīng)用,2012,48(14):90-93.

        [6]居錦武.基于嵌入式實(shí)時(shí)操作系統(tǒng)RTX51的軟件系統(tǒng)設(shè)計(jì)[J].四川理工學(xué)院學(xué)報(bào)(自然科學(xué)版),2012,25(1):74-76.

        猜你喜歡
        內(nèi)核瀏覽器智能家居
        萬(wàn)物皆可IP的時(shí)代,我們當(dāng)夯實(shí)的IP內(nèi)核是什么?
        強(qiáng)化『高新』內(nèi)核 打造農(nóng)業(yè)『硅谷』
        反瀏覽器指紋追蹤
        電子制作(2019年10期)2019-06-17 11:45:14
        基于嵌入式Linux內(nèi)核的自恢復(fù)設(shè)計(jì)
        Linux內(nèi)核mmap保護(hù)機(jī)制研究
        基于Zigbee的無(wú)線通信技術(shù)在智能家居中的應(yīng)用
        電子制作(2018年1期)2018-04-04 01:48:28
        關(guān)于智能家居真正需求的探討
        環(huán)球?yàn)g覽器
        再見,那些年我們嘲笑過(guò)的IE瀏覽器
        智能家居更貼心
        国产精品无码Av在线播放小说| 久久婷婷色香五月综合缴缴情| 熟妇人妻久久中文字幕| 丝袜足控一区二区三区| 国产丰满乱子伦无码专| 亚洲第一页视频在线观看| 色婷婷综合久久久中文字幕| 在线播放无码高潮的视频| 国内精品久久久久国产盗摄| 亚洲av综合av国一区二区三区| 国产一二三四2021精字窝| 欧美大黑帍在线播放| 精品综合久久久久久8888| 在线亚洲妇色中文色综合| 成人无码av免费网站| 性一交一乱一伦a片| 狠狠狠狠狠综合视频| 国产av一级二级三级| 热re99久久精品国99热| 色先锋资源久久综合5566| 久久无码高潮喷水抽搐| 女同三级伦理在线观看| 国产又色又爽又高潮免费视频麻豆| 久久精品亚洲牛牛影视| 日本一区二区在线看看| 亚洲黄色天堂网站在线观看禁18| 精产国品一二三产品蜜桃| 日本久久久免费高清| 亚洲中文乱码在线视频| 国产美女精品视频线免费播放软件| 亚洲成成品网站源码中国有限公司| 杨幂国产精品一区二区| 国产91久久麻豆黄片| 亚洲日本一区二区一本一道| 国产女高清在线看免费观看 | 在线亚洲综合| 人妻少妇粉嫩av专区一| 人妻体内射精一区二区三区 | 性色av手机在线观看| 日本啪啪一区二区三区| 亚洲天堂av中文字幕在线观看|