


版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、作者:Pan Hon glia ng僅供個(gè)人學(xué) 習(xí)摘要工程實(shí)踐教學(xué)環(huán)節(jié)是為了學(xué)生能夠更好地鞏固和實(shí)踐所學(xué)專(zhuān)業(yè)知識(shí)而設(shè)置地,在本次工程實(shí)踐中,我們以ARM體系結(jié)構(gòu)與編程課程中所學(xué)知識(shí)為基礎(chǔ),對(duì)基于ARM地簡(jiǎn)單嵌入 式WEB艮務(wù)器系統(tǒng)進(jìn)行了簡(jiǎn)單設(shè)計(jì) .本設(shè)計(jì)利用ARM自帶地WEB艮務(wù)器技術(shù),來(lái)實(shí)現(xiàn)對(duì)嵌入 式WEE服務(wù)器系統(tǒng)地控制設(shè)計(jì)該技術(shù)基于 WEE服務(wù)器之上,且用嵌入式 WEB服務(wù)器來(lái)實(shí)現(xiàn) 對(duì)于網(wǎng)絡(luò)地訪問(wèn)本設(shè)計(jì)說(shuō)明重點(diǎn)介紹了如下幾方面地內(nèi)容:1) 基于嵌入式WEB服務(wù)器地HTTP協(xié)議;12) Linux下地signal() 函數(shù)地使用;3) 嵌入式 WE冋艮務(wù)器地工作原理;4) ARM開(kāi)發(fā)板上地
2、SOCKET網(wǎng)絡(luò)編程.關(guān)鍵詞:ARM體系;嵌入式 WE釀務(wù)器;HTTP協(xié)議;SOCKET網(wǎng)絡(luò)編程.目錄第一章緒論41.1課題簡(jiǎn)介41.2設(shè)計(jì)目地41.3設(shè)計(jì)內(nèi)容41.4設(shè)計(jì)用途4第二章 嵌入式WEB服務(wù)器設(shè)計(jì)原理簡(jiǎn)介 52.1需求說(shuō)明52.2功能需求詳細(xì)說(shuō)明 52.3數(shù)據(jù)流圖(DFD) 52.4數(shù)據(jù)需求5第三章 嵌入式 WEB服務(wù)器設(shè)計(jì)流程 73.1系統(tǒng)結(jié)構(gòu)圖73.2整體結(jié)構(gòu)圖說(shuō)明 73.3連接處理模塊73.4功能分配7第四章 嵌入式WEB服務(wù)器設(shè)計(jì)程序分析及實(shí)踐 94.1程序設(shè)計(jì)94.2程序分析 104.3實(shí)驗(yàn)步驟12參考文獻(xiàn)14第一章緒論1.1課題簡(jiǎn)介隨著后PC時(shí)代地到來(lái),嵌入式系統(tǒng)技術(shù)已
3、經(jīng)成為了一個(gè)萬(wàn)眾矚目地焦點(diǎn) 目前已廣泛 應(yīng)用于信息家電數(shù)據(jù)網(wǎng)絡(luò)工業(yè)控制.醫(yī)療衛(wèi)生航空航天等眾多領(lǐng)域巨大地市場(chǎng)潛力, 無(wú)窮地商機(jī),吸引了各路英豪紛踵沓來(lái)ARM單片機(jī)技術(shù)由于其微小地體積和極低地成本,廣泛地應(yīng)用于家用電器工業(yè)控制等領(lǐng)域中.在工業(yè)生產(chǎn)中,電流.電壓.溫度.壓力和流量也都是常用地被控參數(shù).ARM單片機(jī)控制嵌入式 WEB服務(wù)器系統(tǒng),是利用ARM乍為系統(tǒng)地主控制器,由linux下 地vi編程,來(lái)實(shí)現(xiàn)對(duì)于嵌入式 WEB服務(wù)器地訪問(wèn).本設(shè)計(jì)采用ARM技術(shù),其具有集成度高, 運(yùn)算快速快,體積小.運(yùn)行可靠,價(jià)值低廉地特點(diǎn),適宜于絕大多數(shù)地控制過(guò)程 .鑒于這樣地 重要性,我們打算設(shè)計(jì)一種基于 ARM
4、地嵌入式服務(wù)器系統(tǒng).1.2設(shè)計(jì)目地通過(guò)本次工程實(shí)踐,運(yùn)用ARM體系結(jié)構(gòu)與編程所學(xué)知識(shí)及查閱相關(guān)資料,完成嵌入式WEB服務(wù)器地設(shè)計(jì),達(dá)到理論知識(shí)與實(shí)踐更好結(jié)合 .提高綜合運(yùn)用所學(xué)知識(shí)和設(shè)計(jì)能力地目 地.通過(guò)本次設(shè)計(jì)訓(xùn)練,可以使我們?cè)诨舅悸泛突痉椒ㄉ蠈?duì)基于ARM地設(shè)計(jì)有一個(gè)比較感性地認(rèn)識(shí),并具備一定程度地設(shè)計(jì)能力.1.3設(shè)計(jì)內(nèi)容熟知嵌入式 WE釀務(wù)器地工作原理.SOCKET網(wǎng)絡(luò)編程.使用Redhat Linux 9.0 操作系統(tǒng)環(huán)境及ARM編譯器,編譯WE冋艮務(wù)器地驅(qū)動(dòng)模塊和應(yīng)用程序,實(shí)現(xiàn)嵌入式 WEB艮務(wù)器地設(shè)計(jì).1.4設(shè)計(jì)用途學(xué)習(xí)使用SOCKET進(jìn)行通訊編程地過(guò)程,了解一個(gè)實(shí)際地網(wǎng)絡(luò)通訊應(yīng)
5、用程序整體設(shè)計(jì) 讀懂HTTPD.C源代碼.在此基礎(chǔ)上增加一些其他功能 .在PC計(jì)算機(jī)上使用瀏覽器測(cè)試嵌入 式WEB服務(wù)器地功能.第二章嵌入式WEB服務(wù)器設(shè)計(jì)原理簡(jiǎn)介2.1需求說(shuō)明圖2.1嵌入式 WEB服務(wù)器需求說(shuō)明2.2功能需求詳細(xì)說(shuō)明1 )獲取服務(wù)器當(dāng)前目錄文件列表將服務(wù)器當(dāng)前目錄下所有文件地信息發(fā)送給客戶(hù)端,信息包括:文件名.大小.日期.2)獲取指定文件將客戶(hù)請(qǐng)求地文件發(fā)送給客戶(hù) .3)獲取HTML類(lèi)型文件將客戶(hù)請(qǐng)求地HTML類(lèi)型文件發(fā)送給客戶(hù).4)獲取純文本文件將客戶(hù)請(qǐng)求地純文本發(fā)送給客戶(hù) .5)獲取JPG圖像文件將客戶(hù)請(qǐng)求地JPG圖像文件發(fā)送給客戶(hù).6)獲取GIF圖像文件將客戶(hù)請(qǐng)求地G
6、IF圖像文件發(fā)送給客戶(hù).7)解析用戶(hù)請(qǐng)求分析客戶(hù)地請(qǐng)求,將請(qǐng)求信息解析為幾個(gè)變量,包括:請(qǐng)求地命令.請(qǐng)求地文件名.請(qǐng)求 地文件類(lèi)型.2.3數(shù)據(jù)流圖(DFD圖2.2數(shù)據(jù)流圖(DFD2.4數(shù)據(jù)需求回應(yīng)HTTP協(xié)議數(shù)據(jù)頭格式要求,如表2.1所示:表2.1 HTTP協(xié)議數(shù)據(jù)頭格式行號(hào)字段內(nèi)容舉例1狀態(tài)行HTTP/1.0 200 OK2文件類(lèi)型Conten t-type: text/html3服務(wù)器信息4是否過(guò)期Expires: 0第三章嵌入式WEB艮務(wù)器設(shè)計(jì)流程3.1系統(tǒng)結(jié)構(gòu)圖圖3.1系統(tǒng)結(jié)構(gòu)圖3.2整體結(jié)構(gòu)圖說(shuō)明主程序:建立TCP類(lèi)型SOCKET在80端口進(jìn)行監(jiān)聽(tīng)連接請(qǐng)求.接收到連接請(qǐng)求,將請(qǐng)求傳送
7、給連接處理模塊處理.并繼續(xù)進(jìn)行監(jiān)聽(tīng).3.3連接處理模塊圖3.2連接處理模塊3.4功能分配1)發(fā)送當(dāng)前目錄文件列表信息將服務(wù)器當(dāng)前目錄下所有文件地信息發(fā)送給客戶(hù)端,信息包括:文件名.大小.日期.2)發(fā)送HTML類(lèi)型文件將客戶(hù)請(qǐng)求地HTML類(lèi)型文件發(fā)送給客戶(hù).3)發(fā)送純文本文件將客戶(hù)請(qǐng)求地純文本發(fā)送給客戶(hù).4)發(fā)送JPG圖像文件將客戶(hù)請(qǐng)求地JPG圖像文件發(fā)送給客戶(hù).5)發(fā)送GIF圖像文件將客戶(hù)請(qǐng)求地GIF圖像文件發(fā)送給客戶(hù).6)解析客戶(hù)請(qǐng)求HTTP協(xié)議頭分析客戶(hù)地請(qǐng)求,包括:1. 空格處理2. 解析客戶(hù)請(qǐng)求命令3. 解析客戶(hù)請(qǐng)求地資源名4. 解析客戶(hù)請(qǐng)求地資源類(lèi)型.7)客戶(hù)連接處理解析Referr
8、er 和content_length字段值并調(diào)用客戶(hù)請(qǐng)求解析函數(shù)8)發(fā)送HTTP協(xié)議數(shù)據(jù)頭根據(jù)發(fā)送文件類(lèi)型發(fā)送相應(yīng)地HTTP協(xié)議頭信息.第四章 嵌入式WEB服務(wù)器設(shè)計(jì)程序分析及實(shí)踐4.1程序設(shè)計(jì)4.1.1.接口設(shè)計(jì)函數(shù)名:int Han dleC onn ect(i nt fd)客戶(hù)連接處理:客戶(hù)連接文件描述字4.1.2.解析客戶(hù)請(qǐng)求函數(shù)名:int ParseReq(FILE *f, char *r)參數(shù):參數(shù)1:文件流FILE結(jié)構(gòu)指針,用于表示客戶(hù)連接地文件流指針 參數(shù)2:字符串指針,待解析地字符串.4.1.3. 發(fā)送HTT協(xié)議數(shù)據(jù)頭函數(shù)名:int Prin tHeader(FILE *f,
9、 int con te nt_type)參數(shù):參數(shù)1:文件流FILE結(jié)構(gòu)指針,用于表示客戶(hù)連接地文件流指針協(xié)議數(shù)據(jù)頭信息.參數(shù)2:信息類(lèi)型,用于確定發(fā)送地HTTP協(xié)議數(shù)據(jù)頭信息.4.1.4. 發(fā)送當(dāng)前目錄文件列表信息函數(shù)名:int DoDir(FILE *f, char *n ame)參數(shù):參數(shù)1:文件流FILE結(jié)構(gòu)指針,用于表示客戶(hù)連接地文件流指針 文件信息數(shù)據(jù).參數(shù)2: 目錄名,表示客戶(hù)請(qǐng)求地目錄信息.4.1.5. 發(fā)送HTM文件內(nèi)容函數(shù)名:int DoHTML(FILE *f, char *n ame)參數(shù):參數(shù)1:文件流FILE結(jié)構(gòu)指針,用于表示客戶(hù)連接地文件流指針 信息數(shù)據(jù).參數(shù)2:
10、客戶(hù)請(qǐng)求地文件名.4.1.6. 發(fā)送純文本(TXT)文件內(nèi)容函數(shù)名:int DoText(FILE *f, char *name)參數(shù):參數(shù)1:文件流FILE結(jié)構(gòu)指針,用于表示客戶(hù)連接地文件流指針.用于寫(xiě)入HTTP.用于寫(xiě)入目錄.用于寫(xiě)入文件.用于寫(xiě)入文件信息數(shù)據(jù).參數(shù)2:客戶(hù)請(qǐng)求地文件名.4.1.7.發(fā)送JPEC圖像文件內(nèi)容函數(shù)名:參數(shù):參int DoJpeg(FILE *f, char *name)數(shù)1:文件流FILE結(jié)構(gòu)指針,用于表示客戶(hù)連接地文件流指針.用于寫(xiě)入文件信息數(shù)據(jù).參數(shù)2:客戶(hù)請(qǐng)求地文件名.4.1.8.發(fā)送GIF圖像文件內(nèi)容函數(shù)名:參數(shù):參int DoGif(FILE *f,
11、 char *n ame)數(shù)1:文件流FILE結(jié)構(gòu)指針,用于表示客戶(hù)連接地文件流指針.用于寫(xiě)入文件信息數(shù)據(jù).參數(shù)2:客戶(hù)請(qǐng)求地文件名.4.2程序分析4.2.1. 主程序設(shè)計(jì)1)功能說(shuō)明系統(tǒng)地總?cè)肟?,也是系統(tǒng)地主要控制函數(shù).分別完成如下功能:TCP流方式SOCKET并綁定80端口 .2)算法流程圖算法流程圖如圖4.1所示:圖4.1主程序數(shù)據(jù)流程圖3)命令行輸入處理用戶(hù)在命令行輸入?yún)?shù)-i ,則將客戶(hù)輸入文件描述字設(shè)為0,即標(biāo)準(zhǔn)輸入.用于在本機(jī)進(jìn)行測(cè)試.其他輸入全部忽略.4.2.2. 客戶(hù)連接處理模塊設(shè)計(jì)1)功能說(shuō)明用于初步處理客戶(hù)地連接請(qǐng)求,并將請(qǐng)求信息傳遞給客戶(hù)請(qǐng)求解析函數(shù)處理.2)算法算法流
12、程圖如圖22所示:圖4.2客戶(hù)連接處理模塊數(shù)據(jù)流程圖4.2.3. 客戶(hù)請(qǐng)求解析處理模塊設(shè)計(jì)1) 功能說(shuō)明用于解析客戶(hù)地請(qǐng)求,并根據(jù)請(qǐng)求信息調(diào)用相應(yīng)地函數(shù)進(jìn)行請(qǐng)求處理2) 算法算法流程圖如圖2.3所示:圖4.3客戶(hù)請(qǐng)求解析處理模塊數(shù)據(jù)流程圖4.2.4. 發(fā)送HTT協(xié)議數(shù)據(jù)頭模塊設(shè)計(jì)1) 功能說(shuō)明根據(jù)參數(shù)地不同,發(fā)送不同地HTTP協(xié)議頭信息.2) 算法函數(shù)定義為:int Prin tHeader(FILE *f, int con te nt_type)HTTP/1.0 200 OK.fprintf(),函數(shù)中地第一個(gè)參數(shù)f為客戶(hù)連接文件流句柄.switch (conten t_type)case
13、't':fprintf(f,"Content-type: text/plainn");break;case 'g':fprin tf(f,"C onten t-type: image/gifn");break;case 'j':fprin tf(f,"C onten t-type: image/jpegn");break;case 'h':fprin tf(f,"Co nten t-type: text/htmln");break;發(fā)送服務(wù)器信息:fp
14、rintf(f,"Server: AMRLinux-httpd 0.2.4n”);發(fā)送文件過(guò)期為永不過(guò)期:fprin tf(f,"Expires: 0n");4.3實(shí)驗(yàn)步驟4.3.1 .閱讀理解源碼進(jìn)入/arm2410s/exp/basic/09_httpd 目錄,使用vi編輯器或其他編輯器閱讀理解源代碼4.3.2. 編譯應(yīng)用程序運(yùn)行make產(chǎn)生可執(zhí)行文件httpdrootzxt /# cd /arm2410s/exp/basic/09_httpd/rootzxt 09_httpd# makearmv4l-unknown-linux-gcc-DHTTPD_DOCU
15、MENT_ROOT="/mnt/yaffs" -c -o httpd.ohttpd.carmv4l-u nkn ow n-li nux-gcc -DHTTPD_DOCUMENT_ROOT="/mn t/yaffs" -c -o copy.carmv4l-unknown-linux-gcc -o ./bin/httpd httpd.o copy.o -lpthreadarmv4l-unknown-I inu x-gcc -o httpd httpd.o copy.o -lpthreadrootzxt 09_httpd# lscopy.c doc httpd
16、 httpd.o Makefilecopy.o Google httpd.c in dex.html Makefile.bak4.3.3. 下載調(diào)試使用NFS服務(wù)方式將HTTPD下載到開(kāi)發(fā)板上,并拷貝測(cè)試用地網(wǎng)頁(yè)進(jìn)行調(diào)試,本例中用地是index測(cè)試網(wǎng)頁(yè)./mn t/yaffscd /host/exp/basic/09_httpd/host/exp/basic/09_httpd./httpdstart ing httpd.press q to quit.wait for connection.4.34本機(jī)測(cè)試在臺(tái)式機(jī)地瀏覽器中輸入http : /11( 111為UP-AMR
17、2410-S實(shí)驗(yàn)板地IP地址),觀察在客戶(hù)機(jī)地瀏覽器中地連接請(qǐng)求結(jié)果(如圖 4.4 )和在開(kāi)發(fā)板上地服務(wù)器地打 印信息.圖4.4 IE顯示結(jié)果參考文獻(xiàn)1 杜春雷,ARM體系結(jié)構(gòu)與編程M 清華大學(xué)出版社,2003,22 梅麗鳳等,單片機(jī)原理及接口技術(shù)(修訂本) M.北方交通大學(xué)出版社,2004,23 王洪輝,嵌入式系統(tǒng)Linux內(nèi)核開(kāi)發(fā)實(shí)戰(zhàn)指南(ARM平臺(tái))M.電子工業(yè)出版社,2009,34 李寧,ARM開(kāi)發(fā)工具 RealView MDK 使用入門(mén)M.北京航空航天大學(xué)出版社,2008,3 王福瑞 等.單片機(jī)微機(jī)測(cè)控系統(tǒng)設(shè)計(jì)大全M.北京航空航天大學(xué)出版社 ,1999.3版權(quán)申明本文部分內(nèi)容,包括文
18、字、圖片、以及設(shè)計(jì)等在網(wǎng)上搜集整理。版權(quán)為潘宏亮個(gè)人所有This article in eludes someparts, in cludi ng text, pictures, and desig n. Copyright is Pan Hon glia ng's pers onal own ership.用戶(hù)可將本文的內(nèi)容或服務(wù)用于個(gè)人學(xué)習(xí)、研究或欣賞,以及其他非商業(yè)性或非盈利性用途,但同時(shí)應(yīng)遵守著作權(quán)法及其他相關(guān)法律 的規(guī)定,不得侵犯本網(wǎng)站及相關(guān)權(quán)利人的合法權(quán)利。除此以外,將本 文任何內(nèi)容或服務(wù)用于其他用途時(shí),須征得本人及相關(guān)權(quán)利人的書(shū)面 許可,并支付報(bào)酬。Users may use the contents or services of this articlefor pers onal study, research or appreciati on, and other non-commercial or non-profit purposes, but at the same time, they shall abide by the provisi ons of copyright law and other releva nt laws, and shall n ot infringe upon the leg
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2030年中國(guó)石棉制品行業(yè)發(fā)展趨勢(shì)及投資戰(zhàn)略研究報(bào)告
- 廈門(mén)工學(xué)院《供應(yīng)鏈管理實(shí)驗(yàn)》2023-2024學(xué)年第二學(xué)期期末試卷
- 溫州理工學(xué)院《居住建筑設(shè)計(jì)原理》2023-2024學(xué)年第二學(xué)期期末試卷
- 貴州城市職業(yè)學(xué)院《化工原理實(shí)驗(yàn)一》2023-2024學(xué)年第二學(xué)期期末試卷
- 南京工業(yè)職業(yè)技術(shù)大學(xué)《兒重發(fā)育保健護(hù)理》2023-2024學(xué)年第二學(xué)期期末試卷
- 河南質(zhì)量工程職業(yè)學(xué)院《數(shù)字媒體后期制作》2023-2024學(xué)年第二學(xué)期期末試卷
- 山東現(xiàn)代學(xué)院《寶石合成與優(yōu)化》2023-2024學(xué)年第二學(xué)期期末試卷
- 河南應(yīng)用技術(shù)職業(yè)學(xué)院《建筑風(fēng)格史》2023-2024學(xué)年第二學(xué)期期末試卷
- 四川音樂(lè)學(xué)院《ED器件與應(yīng)用技術(shù)》2023-2024學(xué)年第二學(xué)期期末試卷
- 聊城大學(xué)《幼兒心理學(xué)》2023-2024學(xué)年第二學(xué)期期末試卷
- 初中語(yǔ)文九年級(jí)下冊(cè)閱讀理解50篇附答案解析
- 《陶瓷造型工藝》課程標(biāo)準(zhǔn)
- 火電廠各指標(biāo)指標(biāo)解析(最新版)
- 病毒性腦炎患者的護(hù)理查房ppt課件
- TPU材料項(xiàng)目可行性研究報(bào)告寫(xiě)作參考范文
- 第二編 債權(quán)總論
- 試用期考核合格證明表
- 常見(jiàn)八種疾病
- 膠粘劑基礎(chǔ)知識(shí)及產(chǎn)品詳解(課堂PPT)
- 鐵路總公司近期處理的七起突出質(zhì)量問(wèn)題的通報(bào)
- 常用洪水預(yù)報(bào)模型介紹
評(píng)論
0/150
提交評(píng)論