




已閱讀5頁,還剩9頁未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
湖北汽車工業(yè)學(xué)院 Hubei Automotive Industrise Institute課程設(shè)計(jì)說明書 課程名稱 設(shè)計(jì)題目 班號(hào) 專業(yè) 學(xué)號(hào) 學(xué)生姓名 指導(dǎo)教師(簽字) 起至日期 年 月 日 年 月 日 目 錄一 目的與要求 11.1課程設(shè)計(jì)的目的 11.2課程設(shè)計(jì)的要求 1二課程設(shè)計(jì)的內(nèi)容 12.1課程設(shè)計(jì)的內(nèi)容 12.2原理和說明 22.2.1 boa簡(jiǎn)介32.2.2 cgi簡(jiǎn)介42.3 課程設(shè)計(jì)的功能分析 4三 總體設(shè)計(jì)方案 53.1系統(tǒng)運(yùn)行環(huán)境 53.2選用工具 53.3工作原理圖 53.4具體設(shè)計(jì)過程 5四 調(diào)試與測(cè)試 10五 課設(shè)總結(jié)與體會(huì) 11六 參考文獻(xiàn) 12一 目的與要求1.1課程設(shè)計(jì)的目的開設(shè)本課程設(shè)計(jì)的目的是,通過本課程設(shè)計(jì),提高學(xué)生的分析問題、解決問題的能力,鞏固嵌入式系統(tǒng)的基本理論知識(shí),進(jìn)一步了解和掌握課程中所講授的概念,方法。同時(shí)通過本課程設(shè)計(jì),全面綜合應(yīng)用所學(xué)過的基礎(chǔ)知識(shí),建立一個(gè)完整的嵌入式系統(tǒng)的開發(fā)過程的概念,并掌握其中的主要原理和方法。(1)提高分析問題、解決問題的能力,進(jìn)一步鞏固嵌入式系統(tǒng)中的基本原理與方法。(2)熟悉Linux數(shù)據(jù)庫編程,可以進(jìn)行嵌入式web服務(wù)器的建立與程序設(shè)計(jì)。1.2課程設(shè)計(jì)的要求本次課設(shè)的要求如下:1、理解Linux下的網(wǎng)絡(luò)編程的實(shí)際意義。2、獨(dú)立進(jìn)行方案的制定,系統(tǒng)結(jié)構(gòu)設(shè)計(jì)要合理。3、在程序開發(fā)時(shí),則必須清楚主要實(shí)現(xiàn)函數(shù)的目的和作用,需要在程序書寫時(shí)說明做適當(dāng)?shù)淖⑨?。要理解每個(gè)函數(shù)的具體意義和適用范圍,在寫課設(shè)報(bào)告時(shí),必須要將主要函數(shù)的功能和參數(shù)做詳細(xì)的說明。4、通過網(wǎng)絡(luò)來檢測(cè)該系統(tǒng)的穩(wěn)定性和正確性。二 課程設(shè)計(jì)的內(nèi)容2.1 整個(gè)系統(tǒng)要完成的基本內(nèi)容大致如下:1、 熟悉開發(fā)環(huán)境的網(wǎng)絡(luò)特性,熟悉Linux下的網(wǎng)絡(luò)編程;2、 通過CGI實(shí)現(xiàn)一個(gè)嵌入式web服務(wù)器;3、 閱讀WEB服務(wù)器HTTP協(xié)議的基本內(nèi)容,學(xué)會(huì)幾個(gè)重要的網(wǎng)絡(luò)函數(shù)的使用方法;4、 在PC計(jì)算機(jī)上使用瀏覽器測(cè)試嵌入式WEB服務(wù)器的功能;5、服務(wù)器可支持動(dòng)態(tài)配置,可解釋靜態(tài)網(wǎng)頁和動(dòng)態(tài)網(wǎng)頁;在實(shí)現(xiàn)整個(gè)系統(tǒng)的時(shí)候,必須有1、2、3、4及5中的這些基本內(nèi)容,可以根據(jù)興趣所在增加其他的內(nèi)容。2.2課程設(shè)計(jì)的原理和說明隨著Internet技術(shù)的興起,在嵌入式設(shè)備的管理與交互中,基于Web方式的應(yīng)用成為目前的主流,這種程序結(jié)構(gòu)也就是大家非常熟悉的B/S結(jié)構(gòu),即在嵌入式設(shè)備上運(yùn)行一個(gè)支持腳本或CGI功能的Web服務(wù)器,能夠生成動(dòng)態(tài)頁面,在用戶端只需要通過Web瀏覽器就可以對(duì)嵌入式設(shè)備進(jìn)行管理和監(jiān)控,非常方便實(shí)用。首先需要在嵌入式設(shè)備上成功移植支持腳本或CGI功能的Web服務(wù)器,然后才能進(jìn)行應(yīng)用程序的開發(fā)。由于嵌入式設(shè)備資源一般都比較有限,并且也不需要能同時(shí)處理很多用戶的請(qǐng)求,因此不會(huì)使用Linux下最常用的如Apache 等服務(wù)器,而需要使用一些專門為嵌入式設(shè)備設(shè)計(jì)的Web服務(wù)器,這些Web服務(wù)器在存貯空間和運(yùn)行時(shí)所占有的內(nèi)存空間上都會(huì)非常適合于嵌入式應(yīng)用場(chǎng)合。嵌入式WEB服務(wù)器常見的有l(wèi)ighttpd、shttpd、thttpd、boa、mathopd、minihttpd、appweb和goahead。典型的嵌入式Web服務(wù)器有Boa ()和thttpd (/software/thttpd/)等,它們和Apache等高性能的Web服務(wù)器主要的區(qū)別在于它們一般是單進(jìn)程服務(wù)器,只有在完成一個(gè)用戶請(qǐng)求后才能響應(yīng)另一個(gè)用戶的請(qǐng)求,而無法并發(fā)響應(yīng),但這在嵌入式設(shè)備的應(yīng)用場(chǎng)合里已經(jīng)足夠了。嵌入式web服務(wù)器移植配置好后,接著進(jìn)行GCI程序設(shè)計(jì)。CGI(Common Gateway Interface)是外部應(yīng)用擴(kuò)展應(yīng)用程序與WWW服務(wù)器交互的一個(gè)標(biāo)準(zhǔn)接口。按照CGI標(biāo)準(zhǔn)編寫的外部擴(kuò)展應(yīng)用程序可以處理客戶端瀏覽器輸入的數(shù)據(jù),從而完成客戶端與服務(wù)器的交互操作。而CGI規(guī)范就定義了Web服務(wù)器如何向擴(kuò)展應(yīng)用程序發(fā)送消息,在收到擴(kuò)展應(yīng)用程序的信息后又如何進(jìn)行處理等內(nèi)容。通過CGI可以提供許多靜態(tài)的HTML網(wǎng)頁無法實(shí)現(xiàn)的功能,比如搜索引擎、基于Web的數(shù)據(jù)庫訪問等等。HTTP協(xié)議是WWW的基礎(chǔ),它基于客戶/服務(wù)器模型,一個(gè)服務(wù)器可以為分布在網(wǎng)絡(luò)中處的客戶提供服務(wù);它是建立在TCP/IP協(xié)議之上的“無連接”協(xié)議,每次連接只處理一個(gè)請(qǐng)求。在服務(wù)器上,運(yùn)行產(chǎn)著一個(gè)守護(hù)進(jìn)程對(duì)端口進(jìn)行監(jiān)聽,等待來自客戶的請(qǐng)求。當(dāng)一個(gè)請(qǐng)求到來時(shí),將創(chuàng)建一個(gè)子進(jìn)程為用戶的連接服務(wù)。根據(jù)請(qǐng)求的不同,服務(wù)器返回HTML文件或者通過CGI調(diào)用外部應(yīng)用程序,返回處理結(jié)果。服務(wù)器通過CGI與外部程序和腳本之間進(jìn)行交互,根據(jù)客戶端在進(jìn)行請(qǐng)求時(shí)所采取的方法,服務(wù)器會(huì)收集客戶所提供的信息,并將該部分信息發(fā)送給指定的CGI擴(kuò)展程序。CGI擴(kuò)展程序進(jìn)行信息處理并將結(jié)果返回服務(wù)器,然后服務(wù)器對(duì)信息進(jìn)行分析,并將結(jié)果發(fā)送回客戶端。外部CGI程序與WWW服務(wù)器進(jìn)行通信、傳遞有關(guān)參數(shù)和處理結(jié)果是通過環(huán)境變量、命令行參數(shù)和標(biāo)準(zhǔn)輸入來進(jìn)行的。服務(wù)器提供了客戶端(瀏覽器)與CGI擴(kuò)展程序之間的信息交換的通道。CGI的標(biāo)準(zhǔn)輸入是服務(wù)器的標(biāo)準(zhǔn)輸出,而CGI的標(biāo)準(zhǔn)輸出是服務(wù)器的標(biāo)準(zhǔn)輸入??蛻舻恼?qǐng)求通過服務(wù)器的標(biāo)準(zhǔn)輸出傳送給CGI的標(biāo)準(zhǔn)輸入,CGI對(duì)信息進(jìn)行處理后,將結(jié)果發(fā)送到它的標(biāo)準(zhǔn)輸入,然后由服務(wù)器將處理結(jié)果發(fā)送給客戶端。2.2.1 boa簡(jiǎn)介Boa 的功能實(shí)現(xiàn):嵌入式 Web 服務(wù)器 Boa 和普通 Web 服務(wù)器一樣, 能夠完成接收客戶端請(qǐng)求、分析請(qǐng)求、響應(yīng)請(qǐng)求、向客 戶端返回請(qǐng)求結(jié)果等任務(wù)。 它的工作過程主要包括:(1) 完成 Web 服務(wù)器的初始化工作, 如創(chuàng)建環(huán)境變量、創(chuàng)建 TCP 套接字、綁定端口、開始偵聽、進(jìn)入循環(huán)結(jié)構(gòu), 以及等待接收客戶瀏覽器的連接請(qǐng)求;(2) 當(dāng)有客戶端連接請(qǐng)求時(shí),Web 服務(wù)器負(fù)責(zé)接收客戶端請(qǐng)求, 并保存相關(guān)請(qǐng)求信息;(3) 在接收到客戶端的連接請(qǐng)求之后,分析客戶端請(qǐng)求, 解析出請(qǐng)求的方法、URL 目標(biāo)、可選的查詢信息及表單信息, 同時(shí)根據(jù)請(qǐng)求做出相應(yīng)的處理;(4)Web 服務(wù)器完成相應(yīng)處理后, 向客戶端瀏覽器發(fā)送響應(yīng)信息, 關(guān)閉與客戶機(jī)的TCP 連接。嵌入式 Web 服務(wù)器 Boa 根據(jù)請(qǐng)求方法的不同,做出不同的響應(yīng)。如果請(qǐng)求方法為HEAD, 則直接向?yàn)g覽器返回響應(yīng)首部;如果請(qǐng)求方法為 GET, 則在返回響應(yīng)首部的同時(shí), 將客戶端請(qǐng)求的 URL 目標(biāo)文件從服務(wù)器上讀出, 并且發(fā)送給客戶端瀏覽器;如果請(qǐng)求方法為 POST, 則將客戶發(fā)送過來的表單信息傳送給相應(yīng)的 CGI 程序, 作為 CGI 的參數(shù)來執(zhí)行 CGI 程序, 并將執(zhí)行結(jié)果發(fā)送給客戶端瀏覽器。 Boa 的功能實(shí)現(xiàn)也是通過建立連接、綁定端口、進(jìn)行偵聽、請(qǐng)求處理等來實(shí)現(xiàn)的。2.2.2 cgi簡(jiǎn)介概念:CGI(Common Gateway Interface)通用網(wǎng)關(guān)接口是HTTP服務(wù)器與你的或其它機(jī)器上的程序進(jìn)行交互的一種工具,其程序須運(yùn)行在網(wǎng)絡(luò)服務(wù)器上。功能:絕大多數(shù)的CGI程序被用來解釋處理來自表單的輸入信息,并在服務(wù)器產(chǎn)生相應(yīng)的處理,或?qū)⑾鄳?yīng)的信息反饋給瀏覽器。CGI程序使網(wǎng)頁具有交互功能,其工作原理圖如下2.3課程設(shè)計(jì)所設(shè)計(jì)的的功能 經(jīng)過近兩個(gè)星期的課程設(shè)計(jì),通過查找有關(guān)資料,進(jìn)行課設(shè)的基本要求和需求分析另外還有程序編寫調(diào)試,所實(shí)現(xiàn)的基本功能如下:1、 可以通過PC機(jī)使用瀏覽器測(cè)試嵌入式WEB服務(wù)器的功能;2、服務(wù)器可支持動(dòng)態(tài)配置,可解釋靜態(tài)網(wǎng)頁和動(dòng)態(tài)網(wǎng)頁;三 課程設(shè)計(jì)的總體方案3.1系統(tǒng)運(yùn)行環(huán)境Linux vi 編輯環(huán)境 UP-TECHPXA270-S嵌入式實(shí)驗(yàn)平臺(tái)3.2選用工具PC機(jī)windows平臺(tái)虛擬機(jī)REDHAT LINUX 9.0boaARM-LINUX開發(fā)環(huán)境3.3 工作原理圖 試驗(yàn)的工作原理圖如下:運(yùn)行結(jié)果POST用STDIN輸入數(shù)據(jù)GET用QUERY-STRING輸入數(shù)據(jù)用STDOUT輸出數(shù)據(jù)Web瀏覽器Web服務(wù)器CGI腳本啟動(dòng)CGIC語言腳本啟動(dòng)CGI3.4 試驗(yàn)的具體過程首先在redhat9.0 linux上進(jìn)行web服務(wù)器的開發(fā),當(dāng)編譯運(yùn)行成功后將其全部的配置文件和程序移到開發(fā)板上并對(duì)配置文件做相應(yīng)的修改進(jìn)行交叉編譯,具體實(shí)現(xiàn)過程如下:第一步 在RedHat9.0 linux上配置和使用BOA服務(wù)器1、解壓Boa源碼解壓:# tar zxvf boa-0.94.13.tar.gz2、編譯 # ./configure # make 3、配置# mkdir /etc/boa# cp / boa-0.94.13/boa.conf /etc/boa/修改boa.conf:(1)Group的修改:修改 Group nogroup 為Group 0 由于在/etc/group文件中沒有nogroup組,所以設(shè)成0。另外在/etc/passwd中有nobody用戶,所以User nobody不用修改。(2)scriptAlias的修改:修改 scriptAlias /cgi-bin/usr/lib/cgi-bin/為 scriptAlias /cgi-bin/ /var/www/cgi-bin/(3)ServerName的設(shè)置:修改 #ServerName .here/為 ServerName .here/注意:該項(xiàng)默認(rèn)為未打開,執(zhí)行Boa會(huì)異常退出,提示“gethostbyname:No such file or directory”,所以必須打開。其它默認(rèn)設(shè)置即可。# mkdir /var/log (注:redhat上已經(jīng)存在,此步驟省略)# mkdir /var/log/boa(創(chuàng)建日志文件目錄)# mkdir /var/www (創(chuàng)建HTML文檔的主目錄)(注:redhat上已經(jīng)存在,此步驟省略)可以將主機(jī) /usr/share/doc/HTML/目錄下的index.html文件和img目錄復(fù)制到/var/www目錄下;將主機(jī)/etc目錄下的mime.types文件放置到制作的根文件夾的/etc下;(注:redhat上已經(jīng)存在,此步驟省略)最后將boa-0.94.13下的boa可執(zhí)行文件拷貝到/usr/local/bin下面。(4)執(zhí)行運(yùn)行boa命令#boa在瀏覽器中輸入本機(jī)的ip地址。這時(shí)瀏覽器中就會(huì)出現(xiàn)/usr/share/doc/HTML/index.html的內(nèi)容了。第二步,當(dāng)在redhat9.0上配置好web服務(wù)器boa后就可以編寫相應(yīng)的代碼進(jìn)行服務(wù)器建立的程序設(shè)計(jì)了。(1) 主頁html源代碼如下: 輸入輸入兩個(gè)數(shù) * (2)本次利用c語言代碼,編譯生成cgi文件c語言源代碼如下:#include #include int main (void) char *date; long m,n; printf(Content-Type:text/html;charset=gb2312nn); printf(Hello World!); /*printf(乘法結(jié)果); printf(乘法結(jié)果); date = getenv(QUERY_STRING); if (date = NULL) printf(未輸入?yún)?shù)或參數(shù)輸入錯(cuò)誤或數(shù)據(jù)傳輸出錯(cuò)!); else if(sscanf(date,%c%c,&m,&n) != 2) printf(輸入?yún)?shù)錯(cuò)誤或參數(shù)輸入不全(輸入?yún)?shù)必需為數(shù)字類型); else printf(The %ld 乘以 %ld 的值為: %ld, m,n,m * n); */ return 0;第三步,將目標(biāo)文件夾掛載到開發(fā)板上。設(shè)置開發(fā)板的地址Ifconfig eth0 掛載Mnt t nfs o nolock 05:/mnt /mnt/nfs(這是已經(jīng)把做好的全部的相關(guān)文件放在redhat9.0 的/mnt中) 通過ping redhat9.0掛載目錄的地址(ping 34)若ping通則掛載成功。第四步,進(jìn)行交叉編譯以上通過編譯生成的文件都是在redhat9.0環(huán)境下運(yùn)行的,若要使之能夠在開發(fā)板上運(yùn)行則必須通過arm-linux-gcc編譯才可以,同時(shí)web服務(wù)器boa的配置文件也必須做出相應(yīng)的改變,具體操作過程如下:(1) 將boa-0.94-13.tar.gz解壓,并將解壓的文件夾移到/mnt目錄下(2) 進(jìn)入src目錄運(yùn)行 configure 命令$ ./configure生成makefile文件,再將CC=gcc改成CC=arm-linux-gccCPP=gcc-E改成CPP=arm-linux-gcc-E(3) 在mnt下建立文件夾boa 將boa.conf放在該文件夾下,對(duì)boa.conf做出修改的說明如下:Mnt/nfs/var/log/boa/error_log:表示將錯(cuò)誤信息記錄到指定文件中 Mnt/nfs/dev/null:表示遠(yuǎn)程請(qǐng)求信息記錄到指定文件中Mnt/nfs/var/www:表示html文件存放的目錄Mnt/nfs/var/www/cgi-bin:表示CGI程序存放執(zhí)行的地址(4)這是就可以進(jìn)行交叉編譯了 Arm-linux-gcc hello.c o hello.cgi(4) 這時(shí)若已經(jīng)將各種相關(guān)的網(wǎng)絡(luò)配置好后,可以在試驗(yàn)中配置好的局域網(wǎng)中任意一臺(tái)主機(jī)中輸入地址訪問試驗(yàn)中設(shè)置的主頁,輸入數(shù)據(jù)后就可返回一個(gè)網(wǎng)頁。四 測(cè)試與調(diào)試在ie瀏覽器上輸入地址http:/顯示一下頁面輸入1和2將會(huì)顯示一下頁面五 課設(shè)總結(jié)與體會(huì) 通過本次課設(shè)我學(xué)到了很多嵌入式web服務(wù)器的相關(guān)知識(shí)。在看到這些課設(shè)題目的時(shí)候我?guī)缀鹾翢o頭緒,不過通過幾天時(shí)間在網(wǎng)上查閱資料,是我對(duì)嵌入式web服務(wù)器的設(shè)計(jì)有了一個(gè)大體的思路,對(duì)其中涉及到的知識(shí)也進(jìn)行了學(xué)習(xí)和模仿。在之后的課程的設(shè)計(jì)制作過程中,仍然遇到了各種各樣的問題,如試驗(yàn)環(huán)境的配置,交叉
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 探索民辦教育機(jī)構(gòu)的數(shù)字化轉(zhuǎn)型路徑
- 提升在線購物平臺(tái)用戶體驗(yàn)的技巧
- 提升鄉(xiāng)村旅游景區(qū)服務(wù)質(zhì)量的途徑
- 智能仿生語言學(xué)習(xí)助手行業(yè)跨境出海項(xiàng)目商業(yè)計(jì)劃書
- 《遵義鋁業(yè)股份有限公司遵義縣團(tuán)溪鎮(zhèn)仙人巖鋁鎵礦(變更)礦產(chǎn)資源綠色開發(fā)利用方案(三合一)》評(píng)審意見
- 動(dòng)作捕捉系統(tǒng)行業(yè)跨境出海項(xiàng)目商業(yè)計(jì)劃書
- 思政教育與青少年成長的關(guān)系
- 新型醫(yī)藥外包(CRO)企業(yè)制定與實(shí)施新質(zhì)生產(chǎn)力項(xiàng)目商業(yè)計(jì)劃書
- 促進(jìn)農(nóng)業(yè)可持續(xù)發(fā)展的碳減排技術(shù)與措施
- 2025年離婚協(xié)議紙質(zhì)模板電子版
- 2024-2025學(xué)年度第一學(xué)期七年級(jí)英語期末試卷
- 2025年春新北師大版數(shù)學(xué)一年級(jí)下冊(cè)課件 綜合實(shí)踐 設(shè)計(jì)教室裝飾圖
- 2025年陜西延長石油集團(tuán)礦業(yè)公司招聘筆試參考題庫含答案解析
- A型肉毒毒素在整形外科中的臨床應(yīng)用指南
- 2024年度藝人演出保密協(xié)議
- 臨床成人失禁相關(guān)性皮炎的預(yù)防與護(hù)理團(tuán)體標(biāo)準(zhǔn)解讀
- 產(chǎn)品授權(quán)代理合同的續(xù)簽與變更
- DB11-T 2010-2022 救災(zāi)物資儲(chǔ)備管理規(guī)范
- 注水泵工(中級(jí))技能鑒定理論考試題及答案
- 2023春國開精益生產(chǎn)終考題庫及答案
評(píng)論
0/150
提交評(píng)論