版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、標(biāo)準(zhǔn)江蘇科技大學(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é)議便可訪問各種信息終端??蛻魴C(jī) 可任意設(shè)置,只要能連上 Internet 并有權(quán)訪問 Web 服務(wù)器,便可查閱現(xiàn)場(chǎng)有 關(guān)信息,給維護(hù)和管理工作帶來(lái)很大的方便。本文提出的基于 ARM Linux 的 嵌入式 Web 服務(wù)器以
2、S3C2410 處理器為核心,以可裁減可移植的 Linux 為操 作系統(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)榫邆淞艘?TCP/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ù)的開放性和獨(dú)
3、立平臺(tái)特性,降低了軟件系統(tǒng)和通信系統(tǒng)的 設(shè)計(jì)、維護(hù)工作量,提高了現(xiàn)場(chǎng)測(cè)試和控制設(shè)備的管理水平。嵌入式 Web 服 務(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í)訪問,則其中的一個(gè)必須等待,它 產(chǎn)生獨(dú)立進(jìn)程來(lái)處理 CGI(通用網(wǎng)關(guān)接口 )程序,因此占用較少的資源,其體系結(jié) 構(gòu)如圖 1所示。 Boa 的優(yōu)點(diǎn)在于其快速可靠性。它與其它服務(wù)器的
4、區(qū)別:沒有 為 CGI 程序設(shè)置 REMOTE_HOST 環(huán)境變量;沒有 Server-Side Include(SSI) 項(xiàng),要產(chǎn)生動(dòng)態(tài)網(wǎng)頁(yè)只能通過(guò) CGI:沒有設(shè)置進(jìn)入控制,而是根據(jù) Linux Unix 的文件系統(tǒng)的權(quán)限來(lái)決定服務(wù)的對(duì)象:沒有 chroot 選項(xiàng),即不能改變根 目錄?;谝陨系年U述, 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)
5、框圖如圖 2 所示。主 要包括:存儲(chǔ)系統(tǒng)、系統(tǒng)接口、用戶接口 (顯示 LCD與鍵盤)3 個(gè)部分圖 2 硬件平臺(tái)體系結(jié)構(gòu)S3C2410 把外部復(fù)位信號(hào)作為一個(gè)中斷處理,在系統(tǒng)復(fù)位時(shí),程序指針 (PC)被設(shè)置為 0,程序跳轉(zhuǎn)到 0x00000000 開始運(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( 即軟件
6、系統(tǒng)的鏡像文件 )復(fù)制到 0xc0008000 地址 (此 地址是系統(tǒng) 64MB SDRAM 的首地址 )。然后,引導(dǎo)程序把 PC 指向 0xc0008000 地址,系統(tǒng)開始運(yùn)行。3 基于 Boa 的軟件平臺(tái)設(shè)計(jì)與實(shí)現(xiàn)上述的嵌入式硬件平臺(tái)實(shí)際上是一通用平臺(tái),基于該平臺(tái)構(gòu)建嵌入式 Web 服務(wù)器,設(shè)計(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í)際
7、上是 Linux 核在S3C2410 上移植的過(guò)程,主要分為 3 個(gè)步驟:建立交叉編譯環(huán)境;編譯核;生 成并配置根文件系統(tǒng)。因本文的工作重點(diǎn)并不是介紹 Linux 移植,因此下面只 是簡(jiǎn)要介紹 3 個(gè)步驟的實(shí)現(xiàn)。(1) 建立交叉編譯環(huán)境:建立交叉編譯環(huán)境的過(guò)程實(shí)際就是對(duì)交叉編譯器壓 縮包解包的過(guò)程。在本文中,所有的軟件源碼包都放在 tools 目錄下,解包 所用指令序列在此不做贅述,其解包路徑為 usr local arm cross 。(2) 交叉編譯 Linux 核:在交叉編譯核之前,對(duì)編譯選項(xiàng)的配置是很重要 的。執(zhí)行“ make menuconfig ”指令,進(jìn)入 Syetem Type
8、 選項(xiàng)。本文中選擇 對(duì) S3C2410 系統(tǒng)板的支持,然后配置 File System 以及 Block device 。保存 配置后要修改 Make file 文件,即把交叉編譯的路徑指定為本文中安裝的特定 目錄,修改語(yǔ)句為: CROSS_Complie= usr Ioca arm_cross 341 bin arm-Linux- 。最后通過(guò) make dep ;make clean ;make zlmage 命令 編譯核,得到核壓縮映象 zlmage 。(3) 生成并配置根文件系統(tǒng):生成并配置文件系統(tǒng)主要有以下的幾個(gè)步驟完 成:安裝 busybox 工具包 (首先解壓 busybox 壓縮
9、包,在解壓目錄下修改 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ù)器可分為以下步驟完成:(1) 建立交叉編譯環(huán)境并下載 Boa 源碼包解壓:交叉編譯環(huán)境在前文中構(gòu)建 ARM Linux 時(shí)已經(jīng)建立了,這里編譯 Bao
10、使用同樣的交叉編譯器,所以不需 要重新建立一遍。 Boa 的源碼包可以從其官方 http : boa org 下載并 解壓。(2) 編譯 Boa 代碼生成可執(zhí)行文件 boa :在編譯之前,需要在 fooa src configure 文件中加入 CC 和 CPP 的說(shuō)明,同時(shí)修改 Makefile 里的 CC= usr local arm cross 34,1bin arm 1inux 。另外還要在編譯之前指 定 Web 服務(wù)器的根目錄路徑 (SERVERROOT),具體方法是:進(jìn)入 boa src 目錄,通過(guò)修改 defines h 文件中 #defineERVER ROOT “ home
11、httpd ”語(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è)置,并將最終的配置文件Boa conf 置于適當(dāng)位置。通過(guò)修改配置文件 Boa conf 可實(shí)現(xiàn)對(duì) Web 服務(wù)器的配置,部分配置 為:偵聽端口使用 80 端口;訪問日志 AccessLog 存放于 var log boa access_log ;錯(cuò)誤日志 ErrorLog 位于 var log boa error_log ;文件的 根目錄 DocumentRoot 設(shè)在 h
12、ome httpd ; KeepAliveMax 的值修改為 50 ;Keep-AliveTimeout 的值修改為 10 ;設(shè)置 CGIPath 為 cgi-bin 等; 在 Boa conf 的最后加上 SewerNameEmServer ,即將 EmServer 作為服務(wù) 器名稱 (當(dāng)然也可用其它名稱作為服務(wù)器名 )。最后將修改好的配置文件Boa conf 存放于嵌入式系統(tǒng)根文件 ere boa 目錄下。通過(guò)鏡像制作工具 執(zhí)行命令 genromfs-fromfs img dromdisk 生成 romdisk 的鏡像文件 romfs img ,將 romfs img 通過(guò) Bootloa
13、der 下載到 flash 存儲(chǔ)器。(4) 測(cè)試 Boa 的運(yùn)行:為了確保 Boa 的正常運(yùn)行,利用簡(jiǎn)單的測(cè)試程序測(cè)試 Boa 的運(yùn)行情況。在目錄 home bttpd 下建立 index html 文檔,其 容為:This is boa server在 PC 機(jī)上通過(guò)瀏覽器連接到運(yùn)行 Boa 的硬件平臺(tái) http :/192 168120(硬件平臺(tái) IP),若頁(yè)面顯示 This is boa server ,說(shuō)明 Boa 可以正常獲取頁(yè)面。在 cgi bin 路徑下建立 test 文件,其容如下: # ! bin sbecho Content-type :text htmlecho ”Thi
14、s is cgi test ”在 瀏覽器中輸入 http : 192 168 120cgi bin test ,若頁(yè)面顯示 This is cgi test ,說(shuō)明服務(wù)器可以正常執(zhí)行 CGI 程序。33 CGI 擴(kuò)展開發(fā)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 腳本,
15、所以 CGI 技 術(shù)使得瀏覽器和服務(wù)器之間具有交互性。CGI 的擴(kuò)展開發(fā)即是在 config c 中為該擴(kuò)展功能增加一個(gè)命令碼 flag , 并指定它的處理響應(yīng)函數(shù);然后在 cgihead c 中完成這個(gè)處理響應(yīng)函數(shù)的代碼即可。下面筆者將以通過(guò) Web 服務(wù)器實(shí)現(xiàn)設(shè)置嵌入式系統(tǒng) IP 地址為例介紹CGI 的擴(kuò)展開發(fā)方法及步驟:(1) 首先在 left html( 注:主頁(yè)采用框架, left html 為左框架的頁(yè)面 )主 菜單欄中增加一項(xiàng): “設(shè)置 IP”。即在: home/httpd html left html , 增加一項(xiàng):這個(gè)處理代碼中用 vfork+execl 執(zhí)行 ifconfi
16、g route 命令,完成 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)用 left html 顯示各 管理菜單,右框架顯示點(diǎn)擊某菜單選項(xiàng)后的頁(yè)面。通過(guò)在右框架中的確認(rèn)最終 實(shí)現(xiàn)管理功能。在 PC 機(jī)的瀏覽器中輸入 http : 192 168120 1111 可進(jìn)入 Web 服務(wù)器管理頁(yè)面,其運(yùn)行結(jié)果如圖 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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年電子商務(wù)平臺(tái)兼職員工用工協(xié)議書3篇
- 2025年度租賃購(gòu)買合同:辦公設(shè)備租賃與購(gòu)買協(xié)議3篇
- 2024版建筑工程承包合同范本與說(shuō)明
- 2025年度城市景觀照明系統(tǒng)搭建與維護(hù)合同3篇
- 2025年度停車場(chǎng)新能源汽車充電站承包合同3篇
- 2024年重型起重機(jī)械買賣合同標(biāo)準(zhǔn)模板3篇
- 二零二五年度水泥預(yù)制構(gòu)件生產(chǎn)、運(yùn)輸及倒裝合同2篇
- 2024版木地板施工合同書
- 2025年度搬家服務(wù)與舊電器回收利用合同3篇
- 2024版生豬養(yǎng)殖場(chǎng)租賃合同范本
- 水質(zhì)-濁度的測(cè)定原始記錄
- 認(rèn)識(shí)海洋生物
- 2023年金屬技術(shù)監(jiān)督上崗員真題模擬匯編(共1064題)
- 項(xiàng)目管理競(jìng)聘報(bào)告
- 數(shù)字美的智慧工業(yè)白皮書-2023.09
- 污水處理廠設(shè)備安裝施工方案
- 百分?jǐn)?shù)的認(rèn)識(shí)說(shuō)課稿(課堂)課件
- 老年人能力評(píng)估標(biāo)準(zhǔn)解讀講義課件
- 材料報(bào)價(jià)三家對(duì)比表
- 焊接工序首件檢驗(yàn)記錄表
- (通橋【2018】8370)《鐵路橋梁快速更換型伸縮縫安裝圖》
評(píng)論
0/150
提交評(píng)論