嵌入式系統(tǒng)設(shè)計(jì)期末大作業(yè)_第1頁(yè)
嵌入式系統(tǒng)設(shè)計(jì)期末大作業(yè)_第2頁(yè)
嵌入式系統(tǒng)設(shè)計(jì)期末大作業(yè)_第3頁(yè)
嵌入式系統(tǒng)設(shè)計(jì)期末大作業(yè)_第4頁(yè)
嵌入式系統(tǒng)設(shè)計(jì)期末大作業(yè)_第5頁(yè)
已閱讀5頁(yè),還剩3頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、江蘇科技大學(xué)嵌入式系統(tǒng)設(shè)計(jì)期末大作業(yè)-嵌入式web服務(wù)器設(shè)計(jì)學(xué)號(hào):1341901124姓名:武易專業(yè):江蘇科技大學(xué)2016-12-30嵌入式Web服務(wù)器的設(shè)計(jì)與實(shí)現(xiàn)引言近年來(lái),傳統(tǒng)上用于辦公室和商業(yè)的以太網(wǎng)逐漸進(jìn)入了基于嵌入式設(shè)備的控制領(lǐng)域。Web技術(shù)可跨越諸多設(shè)備和系統(tǒng)在硬件和軟件產(chǎn)品間做到即連即用,只需用Web瀏覽器通過(guò)以太網(wǎng)和TCPIP協(xié)議便可訪問(wèn)各種信息終端。客戶機(jī)可任意設(shè)置,只要能連上Internet并有權(quán)訪問(wèn)Web服務(wù)器,便可查閱現(xiàn)場(chǎng)有關(guān)信息,給維護(hù)和管理工作帶來(lái)很大的方便。本文提出的基于ARM Linux的嵌入式Web服務(wù)器以S3C2410處理器為核心,以可裁減可移植的Linux

2、為操作系統(tǒng),為嵌入式系統(tǒng)的Internet接入提供了一種方便、快捷、簡(jiǎn)單的實(shí)現(xiàn)方法。1 嵌入式web服務(wù)器技術(shù) 嵌入式Web服務(wù)器(embedded web server,EWS)是指將Web服務(wù)器引入到現(xiàn)場(chǎng)測(cè)試和控制設(shè)備中,在相應(yīng)的硬件平臺(tái)和軟件系統(tǒng)的支持下,使傳統(tǒng)的測(cè)試和控制設(shè)備轉(zhuǎn)變?yōu)榫邆淞艘訲CP/IP為底層通信協(xié)議,Web技術(shù)為核心的基于互聯(lián)網(wǎng)的網(wǎng)絡(luò)測(cè)試和控制設(shè)備。其執(zhí)行3種基本功能: 靜態(tài)和動(dòng)態(tài)網(wǎng)頁(yè)信息發(fā)布; 提供接口監(jiān)測(cè)現(xiàn)場(chǎng)設(shè)備; 提供接口控制現(xiàn)場(chǎng)設(shè)備。 由于Web技術(shù)的開(kāi)放性和獨(dú)立平臺(tái)特性,降低了軟件系統(tǒng)和通信系統(tǒng)的設(shè)計(jì)、維護(hù)工作量,提高了現(xiàn)場(chǎng)測(cè)試和控制設(shè)備的管理水平。嵌入式We

3、b服務(wù)器技術(shù)提供了異構(gòu)網(wǎng)絡(luò)遠(yuǎn)程管理和監(jiān)控設(shè)備的方法和途徑。 在嵌入式Linux系統(tǒng)中,常用的Web Server有Boa、httpd、thttpd和mini-httpd等。其中Boa是一個(gè)運(yùn)行在類Unix系統(tǒng)中的小型WebServer,適合嵌入式環(huán)境。在Boa中若兩個(gè)用戶同時(shí)訪問(wèn),則其中的一個(gè)必須等待,它產(chǎn)生獨(dú)立進(jìn)程來(lái)處理CGI(通用網(wǎng)關(guān)接口)程序,因此占用較少的資源,其體系結(jié)構(gòu)如圖1所示。Boa的優(yōu)點(diǎn)在于其快速可靠性。它與其它服務(wù)器的區(qū)別:沒(méi)有為CGI程序設(shè)置REMOTE_HOST環(huán)境變量;沒(méi)有Server-Side Include(SSI)項(xiàng),要產(chǎn)生動(dòng)態(tài)網(wǎng)頁(yè)只能通過(guò)CGI:沒(méi)有設(shè)置進(jìn)入控制

4、,而是根據(jù)LinuxUnix的文件系統(tǒng)的權(quán)限來(lái)決定服務(wù)的對(duì)象:沒(méi)有chroot選項(xiàng),即不能改變根目錄。 基于以上的闡述,Boa應(yīng)用到嵌入式平臺(tái)上有著諸多的優(yōu)勢(shì),本文的嵌入式Web服務(wù)器也因此選用Boa作為平臺(tái)。下面筆者將著重介紹嵌入式Web服務(wù)器的硬件平臺(tái)及軟件體系的設(shè)計(jì)與實(shí)現(xiàn)。 圖1 Boa網(wǎng)絡(luò)服務(wù)器的體系結(jié)構(gòu)2 硬件平臺(tái)的設(shè)計(jì)與實(shí)現(xiàn) 本文的硬件平臺(tái)采用S3C2410為系統(tǒng)硬件核心,系統(tǒng)框圖如圖2所示。主要包括:存儲(chǔ)系統(tǒng)、系統(tǒng)接口、用戶接口(顯示LCD與鍵盤(pán))3個(gè)部分。 圖2硬件平臺(tái)體系結(jié)構(gòu) S3C2410把外部復(fù)位信號(hào)作為一個(gè)中斷處理,在系統(tǒng)復(fù)位時(shí),程序指針(PC)被設(shè)置為0,程序跳轉(zhuǎn)到0

5、x00000000開(kāi)始運(yùn)行。此空間對(duì)應(yīng)Bank0,系統(tǒng)的2MB的NORFlash和處理器的Bank0相連接。在NORFlash中存儲(chǔ)的是BootLoader,它負(fù)責(zé)配置處理器的結(jié)構(gòu)、工作模式以及自動(dòng)檢測(cè)系統(tǒng)的各個(gè)硬件是否工作正常。系統(tǒng)經(jīng)過(guò)初始化和自檢后,BootLoader負(fù)責(zé)把16 MB NANDFIash的zlmage(即軟件系統(tǒng)的鏡像文件)復(fù)制到0xc0008000地址(此地址是系統(tǒng)64MB SDRAM的首地址)。然后,引導(dǎo)程序把PC指向0xc0008000地址,系統(tǒng)開(kāi)始運(yùn)行。3 基于Boa的軟件平臺(tái)設(shè)計(jì)與實(shí)現(xiàn) 上述的嵌入式硬件平臺(tái)實(shí)際上是一通用平臺(tái),基于該平臺(tái)構(gòu)建嵌入式Web服務(wù)器,設(shè)

6、計(jì)者必須考慮其通用性、響應(yīng)速度及對(duì)于硬件的可操控性。正是基于這樣的考慮,筆者分三層構(gòu)建嵌入式Web服務(wù)器的軟件體系:ARMLinux的建立;Boa服務(wù)器的移植與構(gòu)建;Cgi程序的擴(kuò)展。 31 ARM Linux的建立 ARM Linux的建立是基于U-Boot的實(shí)現(xiàn),它的建立實(shí)際上是Linux內(nèi)核在S3C2410上移植的過(guò)程,主要分為3個(gè)步驟:建立交叉編譯環(huán)境;編譯內(nèi)核;生成并配置根文件系統(tǒng)。因本文的工作重點(diǎn)并不是介紹Linux移植,因此下面只是簡(jiǎn)要介紹3個(gè)步驟的實(shí)現(xiàn)。 (1)建立交叉編譯環(huán)境:建立交叉編譯環(huán)境的過(guò)程實(shí)際就是對(duì)交叉編譯器壓縮包解包的過(guò)程。在本文中,所有的軟件源碼包都放在tool

7、s目錄下,解包所用指令序列在此不做贅述,其解包路徑為usrlocalarm cross。 (2)交叉編譯Linux內(nèi)核:在交叉編譯內(nèi)核之前,對(duì)編譯選項(xiàng)的配置是很重要的。執(zhí)行“make menuconfig”指令,進(jìn)入Syetem Type選項(xiàng)。本文中選擇對(duì)S3C2410系統(tǒng)板的支持,然后配置File System以及Block device。保存配置后要修改Makefile文件,即把交叉編譯的路徑指定為本文中安裝的特定目錄,修改語(yǔ)句為:CROSS_Complie=usrIocaarm_cross341binarm-Linux-。最后通過(guò)make dep;make clean;make zlma

8、ge命令編譯內(nèi)核,得到內(nèi)核壓縮映象zlmage。 (3)生成并配置根文件系統(tǒng):生成并配置文件系統(tǒng)主要有以下的幾個(gè)步驟完成:安裝busybox工具包(首先解壓busybox壓縮包,在解壓目錄下修改Makefile文件,然后使用Make install完成安裝);創(chuàng)建文件系統(tǒng)的映象文件(首先創(chuàng)建img目錄,然后進(jìn)入根目錄創(chuàng)建一個(gè)空的映象文件,加載創(chuàng)建的文件系統(tǒng),并復(fù)制文件系統(tǒng)中必要的文件):配置文件系統(tǒng)(經(jīng)過(guò)上述步驟已經(jīng)產(chǎn)生了文件系統(tǒng)所需要的一些文件,但是需要設(shè)置根路徑,即在根路徑下添加必須的目錄、文件并且正確設(shè)置屬性)。 32 Boa服務(wù)器的移植與構(gòu)建 基于Boa建立嵌入式Web服務(wù)器可分為以下

9、步驟完成: (1)建立交叉編譯環(huán)境并下載Boa源碼包解壓:交叉編譯環(huán)境在前文中構(gòu)建ARM Linux時(shí)已經(jīng)建立了,這里編譯Bao使用同樣的交叉編譯器,所以不需要重新建立一遍。Boa的源碼包可以從其官方網(wǎng)站http:wwwboaorg下載并解壓。 (2)編譯Boa代碼生成可執(zhí)行文件boa:在編譯之前,需要在fooasrcconfigure文件中加入CC和CPP的說(shuō)明,同時(shí)修改Makefile里的CC=usrlocalarm cross34,1binarm1inux。另外還要在編譯之前指定Web服務(wù)器的根目錄路徑(SERVERROOT),具體方法是:進(jìn)入boasrc目錄,通過(guò)修改definesh文

10、件中#defineERVER ROOT“homehttpd”語(yǔ)句來(lái)指定SERVERROOT。然后make即可完成編譯并生成Boa可執(zhí)行文件。 (3)配置Boa服務(wù)器:為了能夠在硬件平臺(tái)上運(yùn)行Web服務(wù)器Boa,還需要對(duì)其運(yùn)行環(huán)境、參數(shù)等進(jìn)行設(shè)置,并將最終的配置文件Boaconf置于適當(dāng)位置。通過(guò)修改配置文件Boaconf可實(shí)現(xiàn)對(duì)Web服務(wù)器的配置,部分配置為:偵聽(tīng)端口使用80端口;訪問(wèn)日志AccessLog存放于varlogboaaccess_log;錯(cuò)誤日志ErrorLog位于varlogboaerror_log;文件的根目錄DocumentRoot設(shè)在homehttpd;KeepAlive

11、Max的值修改為50;Keep-AliveTimeout的值修改為10;設(shè)置CGIPath為cgi-bin等;在Boaconf的最后加上SewerNameEmServer,即將EmServer作為服務(wù)器名稱(當(dāng)然也可用其它名稱作為服務(wù)器名)。最后將修改好的配置文件Boaconf存放于嵌入式系統(tǒng)根文件ereboa目錄下。通過(guò)鏡像制作工具執(zhí)行命令genromfs-fromfsimgdromdisk生成romdisk的鏡像文件romfsimg,將romfsimg通過(guò)Bootloader下載到flash存儲(chǔ)器。 (4)測(cè)試Boa的運(yùn)行:為了確保Boa的正常運(yùn)行,利用簡(jiǎn)單的測(cè)試程序測(cè)試Boa的運(yùn)行情況。

12、在目錄homebttpd下建立indexhtml文檔,其內(nèi)容為: This is boa server 在PC機(jī)上通過(guò)瀏覽器連接到運(yùn)行Boa的硬件平臺(tái)http:/192168120(硬件平臺(tái)IP),若頁(yè)面顯示This is boa server,說(shuō)明Boa可以正常獲取頁(yè)面。 在cgibin路徑下建立test文件,其內(nèi)容如下:#!binsbecho Content-type:texthtmlecho”This is cgi test”在瀏覽器中輸入http:192168120cgibintest,若頁(yè)面顯示This is cgi test,說(shuō)明服務(wù)器可以正常執(zhí)行CGI程序。 33 CGI擴(kuò)展開(kāi)發(fā)

13、 CGI定義了Web服務(wù)器與CGI腳本之間的接口標(biāo)準(zhǔn)。其主要功能是在Web環(huán)境下,從客戶端傳送一些信息給Web服務(wù)器,Web服務(wù)器把接收到的有關(guān)信息放入環(huán)境變量,然后再去啟動(dòng)所指定的CGI腳本以完成特定的工作,CGI腳本從環(huán)境變量中獲取相關(guān)信息來(lái)運(yùn)行,最后以HTML格式輸出相應(yīng)的執(zhí)行結(jié)果返回給瀏覽器端。由于用戶能傳遞不同的參數(shù)給CGI腳本,所以CGI技術(shù)使得瀏覽器和服務(wù)器之間具有交互性。 CGI的擴(kuò)展開(kāi)發(fā)即是在configc中為該擴(kuò)展功能增加一個(gè)命令碼flag,并指定它的處理響應(yīng)函數(shù);然后在cgiheadc中完成這個(gè)處理響應(yīng)函數(shù)的代碼即可。下面筆者將以通過(guò)Web服務(wù)器實(shí)現(xiàn)設(shè)置嵌入式系統(tǒng)IP地址

14、為例介紹CGI的擴(kuò)展開(kāi)發(fā)方法及步驟: (1)首先在lefthtml(注:主頁(yè)采用框架,lefthtml為左框架的頁(yè)面)主菜單欄中增加一項(xiàng):“設(shè)置IP”。即在:home/httpdhtmllefthtml,增加一項(xiàng): 這個(gè)處理代碼中用vfork+execl執(zhí)行ifconfigroute命令,完成IP設(shè)置工作,并返回顯示操作結(jié)果,提供用戶重新啟動(dòng)。重新啟動(dòng)后板子的IP地址就是更改后的IP地址了。 34運(yùn)行擴(kuò)展后的Web服務(wù)器 采用上述擴(kuò)展方法,結(jié)合硬件資源和既有驅(qū)動(dòng)筆者相繼實(shí)現(xiàn)了系統(tǒng)時(shí)間設(shè)置、MAC地址設(shè)置、MiniGui演示、觸摸屏演示、步進(jìn)電機(jī)控制、錄音、播放MTV等多項(xiàng)基本功能和修改管理員密碼、系統(tǒng)重啟等系統(tǒng)功能。為了較好實(shí)現(xiàn)動(dòng)態(tài)網(wǎng)頁(yè)的交互性,筆者將首頁(yè)設(shè)置成為框架,左框架調(diào)用lefthtml顯示各管理菜單,右框架顯示點(diǎn)擊某菜單選項(xiàng)后的頁(yè)面。通過(guò)在右框架中的確認(rèn)最終實(shí)現(xiàn)管理功能。在PC機(jī)的瀏覽器中輸入http:1921681201111可進(jìn)入Web服務(wù)器管理頁(yè)面,其運(yùn)行結(jié)果如圖3所示。 圖3 嵌入

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論