新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 嵌入式Web服務(wù)器移植與測(cè)試

嵌入式Web服務(wù)器移植與測(cè)試

作者: 時(shí)間:2010-08-19 來(lái)源:網(wǎng)絡(luò) 收藏
隨著計(jì)算機(jī)技術(shù)和現(xiàn)代通信技術(shù)的不斷發(fā)展,設(shè)備即網(wǎng)絡(luò)是后PC時(shí)代對(duì)系統(tǒng)的客觀要求,因此也需要建立設(shè)備的網(wǎng)絡(luò)能夠?qū)崿F(xiàn)在各種工業(yè)監(jiān)控、檢測(cè)、以及自動(dòng)化控制等領(lǐng)域的遠(yuǎn)程控制,世界上無(wú)論任何地方,只要是存在Internet網(wǎng)絡(luò),都能夠通過(guò)服務(wù)對(duì)各種現(xiàn)場(chǎng)進(jìn)行管理,甚至可以在有網(wǎng)絡(luò)的手持設(shè)備上對(duì)現(xiàn)場(chǎng)進(jìn)行控制管理操作。傳統(tǒng)的Web大多在大型機(jī),PC機(jī)上實(shí)現(xiàn),其成本比較高,而且不方便工業(yè)現(xiàn)場(chǎng)的應(yīng)用實(shí)施,嵌入式系統(tǒng)以及嵌入式小型Web的出現(xiàn)使得Web服務(wù)運(yùn)行在資源、性能有限的嵌入式設(shè)備上提供了條件。本文主要介紹嵌入式Web服務(wù)器BOA在ARM9嵌入式系統(tǒng)設(shè)備板上的,并對(duì)后的BOA服務(wù)器進(jìn)行驗(yàn)證。

1 硬件設(shè)計(jì)需求
根據(jù)系統(tǒng)要求,硬件電路部分核心處理器采用三星公司的S3C2440,該器件基于ARM920T內(nèi)核,主頻400 MHz,是性?xún)r(jià)比比較高的嵌入式32位處理器之一。S3C2440微處理器內(nèi)部資源豐富,包括1個(gè)LCD控制器、SDRAM控制器、4個(gè)通道的DMA等。開(kāi)發(fā)板的存儲(chǔ)系統(tǒng)分SDRAM和Flash兩
部分,其中SDRAM存儲(chǔ)系統(tǒng)使用了兩片外接的32 M字節(jié)總共64 M字節(jié)的SDRAM芯片,其型號(hào)為HY57V561620FTP。這部分通常稱(chēng)之為內(nèi)存,兩片SDRAM并在一起形成32位寬的數(shù)據(jù)總線,增加了數(shù)據(jù)訪問(wèn)速度;開(kāi)發(fā)板具有兩種Flash:一種是型號(hào)為SST39VFl60l的Nor Flash,大小為2 M字節(jié);另一種是型號(hào)為K9F1208的Nand Flash,大小為64 M字節(jié);開(kāi)發(fā)板采用的網(wǎng)卡芯片為DM9000,它自適應(yīng)10/100 M網(wǎng)絡(luò),RJ45連接頭內(nèi)部已經(jīng)包含了耦合線圈,因此在開(kāi)發(fā)板上沒(méi)有另接網(wǎng)絡(luò)變壓器,通過(guò)網(wǎng)線即可連接開(kāi)發(fā)板到Internet網(wǎng)絡(luò)中,從而實(shí)現(xiàn)嵌入式Web服務(wù)。另外還包括電源、晶振、JTAG調(diào)試口,以及基本輸入輸出端口等部分。嵌入式硬件設(shè)計(jì)框圖如圖1所示。

本文引用地址:http://2s4d.com/article/151644.htm



2 嵌入式Web服務(wù)器BOA實(shí)現(xiàn)原理
BOA是一款非常小巧的Web服務(wù)器,源代碼開(kāi)放、性能優(yōu)秀、支持CGI通用網(wǎng)關(guān)接口技術(shù),特別適合應(yīng)用在嵌入式系統(tǒng)中。BOA服務(wù)器主要功能是在互聯(lián)嵌入式設(shè)備之間進(jìn)行信息交互,達(dá)到通過(guò)網(wǎng)絡(luò)對(duì)嵌入式設(shè)備進(jìn)行監(jiān)控,并將反饋信息自動(dòng)上傳給主控設(shè)備的目的。它是基于HTTP超文本傳輸協(xié)議的,Web網(wǎng)頁(yè)是Web服務(wù)最基本的傳輸單元。嵌入式Web服務(wù)的工作基于客戶機(jī)/服務(wù)器計(jì)算模型,由Web瀏覽器(客戶機(jī))和Web服務(wù)器(服務(wù)器)構(gòu)成,也即著名的B/S結(jié)構(gòu)。運(yùn)行于客戶端的瀏覽器首先要與嵌入式Web服務(wù)器BOA端建立連接,打開(kāi)一個(gè)套接字虛擬文件,此文件建立標(biāo)志著SOCKET連接建立成功。然后客戶端瀏覽器通過(guò)套接字SOCKET以GET或者POST參數(shù)傳遞方式向Web服務(wù)器提交請(qǐng)求,Web瀏覽器提交請(qǐng)求后,通過(guò)HTTP協(xié)議傳送給Web服務(wù)器。Web服務(wù)器接到請(qǐng)求后,根據(jù)請(qǐng)求的不同進(jìn)行事務(wù)處理,返回HTML文件或者通過(guò)CGI調(diào)用外部應(yīng)用程序,返回處理結(jié)果。服務(wù)器通過(guò)CGI與外部應(yīng)用程序和腳本之間進(jìn)行交互,根據(jù)客戶端瀏覽器在請(qǐng)求時(shí)所采用的方法,服務(wù)器會(huì)搜集客戶所提供的信息,并將該部分信息發(fā)送給指定的CGI擴(kuò)展程序,CGI擴(kuò)展程序進(jìn)行信息處理并將結(jié)果返回給服務(wù)器,然后服務(wù)器對(duì)信息進(jìn)行分析,并將結(jié)果發(fā)送回客戶端在瀏覽器上顯示出來(lái)。

3 嵌入式Web服務(wù)器BOA
首先,Web服務(wù)器BOA是要運(yùn)行于ARM嵌入式設(shè)備上的,因此需要對(duì)BOA源文件進(jìn)行交叉編譯。編譯工具使用arm-linux-gcc-4.3.2交叉編譯工具鏈,拷貝文件arm-lin-ux-gcc-4.3.2.tgz到目錄/tmp下,執(zhí)行命令cd/tmp;tar zxvfarm-linux-gcc-4.3.2.tgz-C/.這樣交叉編澤工具就安裝到/usr/local/arm/4.3.2目錄下面。為確保在打開(kāi)終端后能直接應(yīng)用交叉編譯工具鏈,要在/root/.bashrc文件中把編譯器路徑加入到系統(tǒng)環(huán)境變量。運(yùn)行命令gedit/root/.bashrc編輯文件/root/.bashrc。在文件的最后添加export PATH=$PATH:/usr/local/arm/4.3.2/bin。保存退出。接著執(zhí)行source/root/.bashrc命令使設(shè)置生效。最后檢測(cè)交叉編譯工具是否安裝成功,命令為在終端中輸入arm-linux-gcc-v;若能在輸出的信息中看到arm-linux-gcc版本號(hào)4.3.2,說(shuō)明安裝成功。
其次,交叉編譯BOA源碼,拷貝BOA源碼包boa-0.94.13.tar.gz到/tmp目錄下,解壓縮掩碼包tar zxvf boa-0.94.13.tar.gz;
解壓后在Linux終端進(jìn)入BOA所在目錄,首先執(zhí)行命令./con-figure生成Makefile文件,然后打開(kāi)文件夾,找到Makefile文件,用文本編輯器打開(kāi),找到CC=gcc,CPP=gcc-E兩行,分別將其設(shè)置成上一步生成的交叉編譯工具路徑CC=/usr/local/arm/4.3.2/bin/arm-linux-gcc和CPP=/usr/local/arm/4.3.2/bin/arm-linux-gcc-E,然后將Makefile保存后退出,回到終端執(zhí)行make命令,進(jìn)行交叉編譯得到可執(zhí)行程序BOA,它就是能夠運(yùn)行在ARM嵌入式設(shè)備上的執(zhí)行文件??赏ㄟ^(guò)命令fileboa查看文件信息??截惔薆OA文件到目標(biāo)板/bin目錄中。
再次,配置boa服務(wù)器。配置BOA主要是為了使其能夠支持CGI程序的執(zhí)行。在文件系統(tǒng)的/etc目錄下mkdir boa建立一個(gè)BOA目錄,拷貝BOA源碼目錄中的boa.conf文件到文件系統(tǒng)目錄/etc/boa目錄下,然后根據(jù)嵌入式BOA的需求在此配置文件的基礎(chǔ)上進(jìn)行修改。在修改此配置文件時(shí)需要注意保證其他文件和設(shè)置必須與配置文件相一致,否則嵌入式Web服務(wù)器BOA就不能正常運(yùn)行。boa.conf文件主要配置內(nèi)容如圖2所示。

linux操作系統(tǒng)文章專(zhuān)題:linux操作系統(tǒng)詳解(linux不再難懂)

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

評(píng)論


相關(guān)推薦

技術(shù)專(zhuān)區(qū)

關(guān)閉