




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、摘 要工程實(shí)踐教學(xué)環(huán)節(jié)是為了學(xué)生能夠更好地鞏固和實(shí)踐所學(xué)專業(yè)知識而設(shè)置的,在本次工程實(shí)踐中,我們以ARM體系結(jié)構(gòu)與編程課程中所學(xué)知識為基礎(chǔ),對基于ARM的簡單嵌入式WEB服務(wù)器系統(tǒng)進(jìn)行了簡單設(shè)計(jì)。本設(shè)計(jì)利用ARM 自帶的WEB服務(wù)器技術(shù),來實(shí)現(xiàn)對嵌入式WEB服務(wù)器系統(tǒng)的控制設(shè)計(jì)。該技術(shù)基于WEB服務(wù)器之上,且用嵌入式WEB服務(wù)器來實(shí)現(xiàn)對于網(wǎng)絡(luò)的訪問。本設(shè)計(jì)說明重點(diǎn)介紹了如下幾方面的內(nèi)容:1)基于嵌入式WEB服務(wù)器的HTTP協(xié)議;12)Linux 下的signal()函數(shù)的使用;3)嵌入式WEB服務(wù)器的工作原理;4)ARM開發(fā)板上的SOCKET網(wǎng)絡(luò)編程。關(guān)鍵詞:ARM體系;嵌入式WEB服務(wù)器;H
2、TTP協(xié)議 ;SOCKET網(wǎng)絡(luò)編程。 目錄第一章 緒論31.1課題簡介31.2設(shè)計(jì)目的31.3設(shè)計(jì)內(nèi)容31.4 設(shè)計(jì)用途3第二章 嵌入式WEB服務(wù)器設(shè)計(jì)原理簡介42.1 需求說明42.2 功能需求詳細(xì)說明42.3 數(shù)據(jù)流圖(DFD)62.4 數(shù)據(jù)需求6第三章 嵌入式WEB服務(wù)器設(shè)計(jì)流程73.1 系統(tǒng)結(jié)構(gòu)圖73.2 整體結(jié)構(gòu)圖說明73.3 連接處理模塊83.4功能分配8第四章 嵌入式WEB服務(wù)器設(shè)計(jì)程序分析及實(shí)踐104.1 程序設(shè)計(jì)104.2程序分析114.3 實(shí)驗(yàn)步驟15參考文獻(xiàn)17第一章 緒論1.1課題簡介隨著后PC時(shí)代的到來,嵌入式系統(tǒng)技術(shù)已經(jīng)成為了一個(gè)萬眾矚目的焦點(diǎn)。目前已廣泛應(yīng)用于信息
3、家電、數(shù)據(jù)網(wǎng)絡(luò)、工業(yè)控制、醫(yī)療衛(wèi)生、航空航天等眾多領(lǐng)域。巨大的市場潛力,無窮的商機(jī),吸引了各路英豪紛踵沓來。ARM單片機(jī)技術(shù)由于其微小的體積和極低的成本,廣泛的應(yīng)用于家用電器、工業(yè)控制等領(lǐng)域中。在工業(yè)生產(chǎn)中,電流、電壓、溫度、壓力和流量也都是常用的被控參數(shù)。ARM單片機(jī)控制嵌入式WEB服務(wù)器系統(tǒng),是利用ARM作為系統(tǒng)的主控制器,由linux下的vi編程,來實(shí)現(xiàn)對于嵌入式WEB服務(wù)器的訪問。本設(shè)計(jì)采用ARM技術(shù),其具有集成度高,運(yùn)算快速快,體積小、運(yùn)行可靠,價(jià)值低廉的特點(diǎn),適宜于絕大多數(shù)的控制過程。鑒于這樣的重要性,我們打算設(shè)計(jì)一種基于ARM的嵌入式服務(wù)器系統(tǒng)。1.2設(shè)計(jì)目的通過本次工程實(shí)踐,運(yùn)
4、用ARM體系結(jié)構(gòu)與編程所學(xué)知識及查閱相關(guān)資料,完成嵌入式WEB服務(wù)器的設(shè)計(jì),達(dá)到理論知識與實(shí)踐更好結(jié)合、提高綜合運(yùn)用所學(xué)知識和設(shè)計(jì)能力的目的。通過本次設(shè)計(jì)訓(xùn)練,可以使我們在基本思路和基本方法上對基于ARM的設(shè)計(jì)有一個(gè)比較感性的認(rèn)識,并具備一定程度的設(shè)計(jì)能力。1.3設(shè)計(jì)內(nèi)容熟知嵌入式WEB服務(wù)器的工作原理、SOCKET網(wǎng)絡(luò)編程。使用Redhat Linux 9.0 操作系統(tǒng)環(huán)境及ARM 編譯器,編譯WEB服務(wù)器的驅(qū)動(dòng)模塊和應(yīng)用程序,實(shí)現(xiàn)嵌入式WEB服務(wù)器的設(shè)計(jì)。1.4 設(shè)計(jì)用途學(xué)習(xí)使用SOCKET進(jìn)行通訊編程的過程,了解一個(gè)實(shí)際的網(wǎng)絡(luò)通訊應(yīng)用程序整體設(shè)計(jì), 讀懂HTTPD.C 源代碼。在此基礎(chǔ)上
5、增加一些其他功能。在PC計(jì)算機(jī)上使用瀏覽器測試嵌入式WEB服務(wù)器的功能。第二章 嵌入式WEB服務(wù)器設(shè)計(jì)原理簡介2.1 需求說明圖2.1 嵌入式WEB服務(wù)器需求說明2.2 功能需求詳細(xì)說明1)獲取服務(wù)器當(dāng)前目錄文件列表將服務(wù)器當(dāng)前目錄下所有文件的信息發(fā)送給客戶端,信息包括:文件名、大小、日期。2)獲取指定文件將客戶請求的文件發(fā)送給客戶。3)獲取HTML 類型文件將客戶請求的HTML 類型文件發(fā)送給客戶。4)獲取純文本文件將客戶請求的純文本發(fā)送給客戶。5)獲取JPG 圖像文件將客戶請求的JPG 圖像文件發(fā)送給客戶。6)獲取GIF 圖像文件將客戶請求的GIF 圖像文件發(fā)送給客戶。7)解析用戶請求分析
6、客戶的請求,將請求信息解析為幾個(gè)變量,包括:請求的命令、請求的文件名、請求的文件類型。2.3 數(shù)據(jù)流圖(DFD)圖2.2 數(shù)據(jù)流圖(DFD)2.4 數(shù)據(jù)需求回應(yīng)HTTP協(xié)議數(shù)據(jù)頭格式要求,如表2.1 所示:表2.1 HTTP 協(xié)議數(shù)據(jù)頭格式行號字段內(nèi)容舉例1狀態(tài)行HTTP/1.0 200 OK2文件類型Content-type: text/html3服務(wù)器信息Server: ARMLinux-httpd 4是否過期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)圖說明主程序:建立TCP 類型SOCKET 在80 端口進(jìn)行監(jiān)聽連接請求。
7、接收到連接請求,將請求傳送給連接處理模塊處理。并繼續(xù)進(jìn)行監(jiān)聽。3.3 連接處理模塊圖3.2 連接處理模塊3.4功能分配1)發(fā)送當(dāng)前目錄文件列表信息將服務(wù)器當(dāng)前目錄下所有文件的信息發(fā)送給客戶端,信息包括:文件名、大小、日期。2)發(fā)送HTML 類型文件將客戶請求的HTML 類型文件發(fā)送給客戶。3)發(fā)送純文本文件將客戶請求的純文本發(fā)送給客戶。4)發(fā)送JPG 圖像文件將客戶請求的JPG 圖像文件發(fā)送給客戶。5)發(fā)送GIF 圖像文件將客戶請求的GIF 圖像文件發(fā)送給客戶。6)解析客戶請求HTTP 協(xié)議頭分析客戶的請求,包括:1. 空格處理2. 解析客戶請求命令3. 解析客戶請求的資源名4. 解析客戶請求
8、的資源類型。7)客戶連接處理解析Referrer 和content_length 字段值并調(diào)用客戶請求解析函數(shù)。8)發(fā)送HTTP 協(xié)議數(shù)據(jù)頭根據(jù)發(fā)送文件類型發(fā)送相應(yīng)的HTTP 協(xié)議頭信息。第四章 嵌入式WEB服務(wù)器設(shè)計(jì)程序分析及實(shí)踐4.1 程序設(shè)計(jì)、接口設(shè)計(jì)客戶連接處理函數(shù)名:int HandleConnect(int fd)參數(shù):客戶連接文件描述字、解析客戶請求函數(shù)名:int ParseReq(FILE *f, char *r)參數(shù):參數(shù)1:文件流FILE 結(jié)構(gòu)指針,用于表示客戶連接的文件流指針。參數(shù)2:字符串指針,待解析的字符串。、發(fā)送HTTP協(xié)議數(shù)據(jù)頭函數(shù)名:int PrintHeade
9、r(FILE *f, int content_type)參數(shù):參數(shù)1:文件流FILE 結(jié)構(gòu)指針,用于表示客戶連接的文件流指針。用于寫入HTTP協(xié)議數(shù)據(jù)頭信息。參數(shù)2:信息類型,用于確定發(fā)送的HTTP 協(xié)議數(shù)據(jù)頭信息。、發(fā)送當(dāng)前目錄文件列表信息函數(shù)名:int DoDir(FILE *f, char *name)參數(shù):參數(shù)1:文件流FILE 結(jié)構(gòu)指針,用于表示客戶連接的文件流指針。用于寫入目錄文件信息數(shù)據(jù)。參數(shù)2:目錄名,表示客戶請求的目錄信息。、發(fā)送HTML文件內(nèi)容函數(shù)名:int DoHTML(FILE *f, char *name)參數(shù):參數(shù)1:文件流FILE 結(jié)構(gòu)指針,用于表示客戶連接的文件
10、流指針。用于寫入文件信息數(shù)據(jù)。參數(shù)2:客戶請求的文件名。、發(fā)送純文本(TXT)文件內(nèi)容函數(shù)名:int DoText(FILE *f, char *name)參數(shù):參數(shù)1:文件流FILE 結(jié)構(gòu)指針,用于表示客戶連接的文件流指針。用于寫入文件信息數(shù)據(jù)。參數(shù)2:客戶請求的文件名。、發(fā)送JPEG圖像文件內(nèi)容函數(shù)名:int DoJpeg(FILE *f, char *name)參數(shù):參數(shù)1:文件流FILE 結(jié)構(gòu)指針,用于表示客戶連接的文件流指針。用于寫入文件信息數(shù)據(jù)。參數(shù)2:客戶請求的文件名。、發(fā)送GIF圖像文件內(nèi)容函數(shù)名:int DoGif(FILE *f, char *name)參數(shù):參數(shù)1:文件流
11、FILE 結(jié)構(gòu)指針,用于表示客戶連接的文件流指針。用于寫入文件信息數(shù)據(jù)。參數(shù)2:客戶請求的文件名。4.2程序分析、主程序設(shè)計(jì)1)功能說明系統(tǒng)的總?cè)肟?,也是系統(tǒng)的主要控制函數(shù)。分別完成如下功能:建立環(huán)境設(shè)置。設(shè)置信號處理方式。建立偵聽TCP 流方式SOCKET 并綁定80 端口。建立連接偵聽及客戶連接處理調(diào)用主循環(huán)。2)算法流程圖算法流程圖如圖4.1所示:圖4.1 主程序數(shù)據(jù)流程圖3)命令行輸入處理用戶在命令行輸入?yún)?shù) -i ,則將客戶輸入文件描述字設(shè)為0,即標(biāo)準(zhǔn)輸入。用于在本機(jī)進(jìn)行測試。其他輸入全部忽略。4.2.2
12、、客戶連接處理模塊設(shè)計(jì)1)功能說明用于初步處理客戶的連接請求,并將請求信息傳遞給客戶請求解析函數(shù)處理。2) 算法算法流程圖如圖2.2所示:圖4.2 客戶連接處理模塊數(shù)據(jù)流程圖4.2.3、客戶請求解析處理模塊設(shè)計(jì)1)功能說明用于解析客戶的請求,并根據(jù)請求信息調(diào)用相應(yīng)的函數(shù)進(jìn)行請求處理。2)算法算法流程圖如圖2.3所示:圖4.3 客戶請求解析處理模塊數(shù)據(jù)流程圖4.2.4、發(fā)送HTTP協(xié)議數(shù)據(jù)頭模塊設(shè)計(jì)1)功能說明根據(jù)參數(shù)的不同,發(fā)送不同的HTTP 協(xié)議頭信息。2)算法函數(shù)定義為:int PrintHeader(FILE *f, int content_type)發(fā)送請求成功信息
13、:HTTP/1.0 200 OK。根據(jù)文檔類型發(fā)送相應(yīng)的信息:fprintf(),函數(shù)中的第一個(gè)參數(shù)f 為客戶連接文件流句柄。switch (content_type)case 't':fprintf(f,"Content-type: text/plainn");break;case 'g':fprintf(f,"Content-type: image/gifn");break;case 'j':fprintf(f,"Content-type: image/jpegn"
14、;);break;case 'h':fprintf(f,"Content-type: text/htmln");break;發(fā)送服務(wù)器信息:fprintf(f,"Server: AMRLinux-httpd n");發(fā)送文件過期為永不過期:fprintf(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 /#
15、cd /arm2410s/exp/basic/09_httpd/rootzxt 09_httpd# makearmv4l-unknown-linux-gcc -DHTTPD_DOCUMENT_ROOT="/mnt/yaffs" -c -o httpd.o httpd.carmv4l-unknown-linux-gcc -DHTTPD_DOCUMENT_ROOT="/mnt/yaffs" -c -o copy.carmv4l-unknown-linux-gcc -o ./bin/httpd httpd.o copy.o -lpthreadarmv4l-un
16、known-linux-gcc -o httpd httpd.o copy.o -lpthreadrootzxt 09_httpd# lscopy.c doc httpd httpd.o Makefilecopy.o Google httpd.c index.html Makefile.bak4.3.3、下載調(diào)試使用NFS 服務(wù)方式將HTTPD 下載到開發(fā)板上,并拷貝測試用的網(wǎng)頁進(jìn)行調(diào)試,本例中用的是index 測試網(wǎng)頁。/mnt/yaffscd /host/exp/basic/09_httpd/host/exp/basic/09_httpd./httpdstarting httpd.press q to quit.wait for connection.4.3.4、本機(jī)測試在臺式機(jī)的瀏覽器中輸入http:/11(111 為UP-AMR2410-S 實(shí)驗(yàn)板的IP地址),觀察
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- ××超市財(cái)務(wù)預(yù)算制度
- ××超市指引牌制度
- 機(jī)械工程技能熟練度證明(7篇)
- 心中的老師形象寫人作文(9篇)
- 2025年注冊會計(jì)師考試《會計(jì)》財(cái)務(wù)報(bào)表分析模擬試題精講與解析
- 2025年稀有稀土金屬礦項(xiàng)目提案報(bào)告
- 2025年江西省事業(yè)單位招聘考試綜合類專業(yè)能力測試試卷(工程類)真題匯編及解析
- 2025年抗貧血藥項(xiàng)目規(guī)劃申請報(bào)告模板
- 2025年保育員(一級)兒童教育管理學(xué)研究論文案例分析考試試卷
- 2025年德語TestDaF閱讀真題試卷:德語心理學(xué)研究閱讀
- 國家開放大學(xué)《應(yīng)用寫作(漢語)》形考任務(wù)1-6答案
- 心理咨詢平臺合作合同
- 臺球助教管理培訓(xùn)
- 順豐運(yùn)作主管
- 萬達(dá)入職在線測評題
- 貴州省貴陽市2024-2025學(xué)年七年級下學(xué)期期末考試語文試題
- 2024年吉林省長春市中考物理試題(含解析)
- 多校聯(lián)考高一下學(xué)期語文期末考試試卷
- 品管圈PDCA提高手衛(wèi)生依從性
- 2025高考物理步步高同步練習(xí)選修1練透答案精析
- TGDNAS 043-2024 成人靜脈中等長度導(dǎo)管置管技術(shù)
評論
0/150
提交評論