嵌入式WEB服務器的實現課程設計報告_第1頁
嵌入式WEB服務器的實現課程設計報告_第2頁
嵌入式WEB服務器的實現課程設計報告_第3頁
嵌入式WEB服務器的實現課程設計報告_第4頁
嵌入式WEB服務器的實現課程設計報告_第5頁
已閱讀5頁,還剩5頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、 . . . 目錄一、 課程設計的目的與任務1二、課程設計的基本要求1三、課程設計的地點:1四、課程設計的容1第一部分:WEB服務器的簡介1第二部分:實現AD遠程采集6五、課程設計的心得會:8六、參考資料9一、課程設計的目的與任務:目的:加強對嵌入式軟件設計的進一步認識,在認識的基礎上嘗試進行一個遠程數據采集的設計開發。任務:進一步加深學生對嵌入式專業知識的了解,提高學生的專業技能與動手能力。老師首先進行講解,講解完后,學生通過實驗箱實現。加強學生的動手能力,并進一步促進學生對所學容的理解。二、課程設計的基本要求:1、學生不得無故缺席、遲到或早退,教師必須每天打考勤;2、在聽課時,學生必須做認

2、真的筆記,教師定時檢查;3、聽課完成后,教師安排學生做相關的實驗,加深學生對所學知識的理解;4、教師安排的講課要有針對性。三、課程設計的地點:應用技術學院5樓4機房。四、課程設計的容:第一部分:WEB服務器的簡介嵌入式Web服務器的硬件系統包含了Web通信功能的微處理器或者微控制器系統,它可以和前端的應用系統直接集成在一起,也可以通過現場總線與應用系統相連。隨著計算機、通信、自動控制、微電子等技術的發展。電器設備上網已經成為現實。與傳統的單片機相比,嵌入式設備重要的突破之一就是解決了設備和internet的互連問題近年來嵌入式技術飛速發展種類繁多、功能強大的CPU和片外連接為網絡應用提供了穩定

3、、可靠的硬件環境:嵌入式操作系統對這些硬件和以太網也有很好的支持,搡作系統的移植大為簡化,這就為嵌入式web服務器的實現提供了方便。嵌入式web服務器將監控系統中的各種辦議的數據轉換成統一的TCPIP協議格式,以便用戶通過以太網遠程訪問web服務器。該文結合快速發震的嵌入式技術。給出了一種基于嵌入式網絡化遠程監控系統的web服務器實現方案。1、WEB瀏覽器瀏覽器是個顯示網頁伺服器或檔案系統的HTML文件,并讓用戶與此些文件互動的一種軟件。個人電腦上常見的網頁瀏覽器包括微軟的Internet Explorer、Mozilla的Firefox、Opera和Safari。瀏覽器是最經常使用到的客戶端

4、程序。2、WEB服務器通常是在遠程機器上,負責對瀏覽器頁面請求作出響應,返回HTML編碼或類似的數據流。通俗的講,Web服務器傳送(serves)頁面使瀏覽器可以瀏覽,然而應用程序服務器提供的是客戶端應用程序可以調用(call)的方法(methods)。確切一點,你可以說:Web服務器專門處理請求(request),但是應用程序服務器是通過很多協議來為應用程序提供(serves)商業邏輯(business logic)。3、嵌入式WEB服務器的構架4、常見的嵌入式WEB服務器典型的嵌入式 Web 服務器有 Boa 和d 兩種,它們和 Apache 等高性能的 Web 服務器主要的區別在于它們一

5、般是單進程服務器,只有在完成一個用戶請求后才能響應另一個用戶的請求,而無法并發響應,但這在嵌入式設備的應用場合里已經足夠了。Boa 是一個非常小巧的 Web 服務器,可執行代碼只有約 60KB。它是一個單任務 Web服務器,只能依次完成用戶的請求,而不會 fork 出新的進程來處理并發連接請求。但 Boa支持 CGI,能夠為 CGI 程序 fork 出一個進程來執行。Boa 的設計目標是速度和安全,在其站點公布的性能測驗中,Boa 的性能要好于 Apache 服務器。經過上述的對比和判斷,選擇Boa 作為系統的嵌 入式服務器。綜合以上的討論以與選擇,根據系統的實際需求,最終確定了采用 S3C2

6、410X 為核心處理器,Linux 為嵌入式操作系統,boa 為服務器以與相應的 瀏覽器的系統設計方案。典型的嵌入式 Web 服務器有 Boa 和d 兩種比較如下:Boa支持和CGI,非常高效的請求速度幾效率。21個源文件,4000多行源代碼,編譯后400多K,最多可以同時響應50個請求。 d非常小巧的輕量級webserver,僅僅提供了和cgi的支持。20個源文件,7000多行代碼,編譯后30幾K,可以同時響應1000個以上的請求。5、HTML語言簡介HTML(Hyper Text Markup Language 超文本標記語言)是一種用來制作超文本文檔的簡單標記語言。用HTML編寫的超文本

7、文檔稱為HTML文檔,它能獨立于各種操作系統平臺(如UNIX,WINDOWS等)。HTML文檔(即Homepage的源文件)是一個放置了標記的ASCII文本文件,通常它帶有.html或.htm的文件擴展名。生成一個HTML文檔主要有以下三種途徑:1.手工直接編寫(例如用你所喜愛的ASCII文本編輯器或其它HTML的編輯工具)。2.通過某些格式轉換工具將現有的其它格式文檔(如WORD文檔)轉換成HTML文檔。3.由Web服務器(或稱服務器)一方實時動態地生成。6、HTML表單介紹普通的HTML頁面只能提供靜態的信息給用戶,要實現網頁的交互僅依靠HTML是無法實現的。HTML中的表單(FORM)是

8、用戶頁面輸入的交互方式,FORM中提供了多種輸入方式,如文字輸入區、下拉菜單、復選框、單選框等等。7、定義表單FORM標簽 - Action表示對表單輸入處理的方法(url/cgi)Method表示對表單輸入的處理提交方式(get/post)8、GET/POST方法method有兩個值:get和postget的方式是將表單控件的name/value信息經過編碼之后,通過URL發送(你可以在地址欄里看到)。post則將表單的容通過發送,你在地址欄看不到表單的提交信息。9、Input標簽Input標簽的語法:TYPE的值可選為buttoncheckboxfilehiddenimagepasswor

9、dradioresetsubmittextNAME這個屬性為輸入類型提供一個名稱,表單提交時將與VALUE成對提交VALUE這個屬性值提供了與NAME對應的初始值10、CGI的概念概念:CGI(Common Gateway Interface)通用網關接口是服務器與你的或其它機器上的程序進行交互的一種工具,其程序須運行在網絡服務器上。功能:絕大多數的CGI程序被用來解釋處理來自表單的輸入信息,并在服務器產生相應的處理,或將相應的信息反饋給瀏覽器。CGI程序使網頁具有交互功能。11、CGI處理過程CGI處理步驟:通過Internet把用戶請求送到服務器。服務器接收用戶請求并交給CGI程序處理。C

10、GI程序把處理結果傳送給服務器。服務器把結果送回到用戶12、CGI工作原理13、CGI編程編程語言選擇常用CGI編程語言有shellscript、C、visual basic、perl等等。在嵌入式中由于完成的任務不是很復雜,一般選擇C語言。C的主要的缺點就是對字符的處理功能不夠強大,而CGI往往要涉與到字符的處理。然而用C語言開發也有好處,比如代碼的性好,執行效率高。14、CGI的輸入與輸出WEB服務器同CGI程序之間通過四種方式進行交換信息:環境變量、命令行、標準輸入與標準輸出/環境變量。操作系統提供了許多環境變量,它們定義了程序的執行環境,應用程序可以存取它們。Web服務器和CGI接口又

11、另外設置了自己的一些環境變量,用來向CGI程序傳遞一些重要的參數。CGI的GET方法通過環境變量QUERY-STRING向CGI程序傳遞Form中的數據。它們是Web服務器傳遞數據給CGI程序的簡單手段。15、CGI的輸入與輸出標準輸入:CGI程序像其他可執行程序一樣,可通過標準輸入(stdin)從Web服務器得到輸入信息,如Form中的數據,這就是所謂的向CGI程序傳遞數據的方法。標準輸出:CGI程序通過標準輸出(stdout)將輸出信息傳送給Web服務器。傳送給Web服務器的信息可以用各種格式,通常是以純文本或者HTML文本的形式,這樣我們就可以在命令行狀態調試CGI程序,并且得到它們的輸

12、出。16、BOA服務器簡介:嵌入式 Web 服務器 Boa 的特點:Boa 是一款單任務的 服務器, 與其他傳統的 Web 服務器不同的是當有連接請求到來時, 它并不為每個連接單獨創建進程, 也不通過復制自身進程來處理多, 而是通過建立 請求列表來處理多路 連接請求, 同時它只為 CGI 程序創建新的進程,這樣就在最大程度上節省了系統資源, 這對嵌入式系統來說至關重要。同時它還具有自動生成目錄、自動解壓文件等功能, 因此 Boa 具有很高的 請求處理速度和效率, 在嵌入式系統中具有很高的應用價值。Boa 的功能實現:嵌入式 Web 服務器 Boa 和普通 Web 服務器一樣, 能夠完成接收客戶

13、端請求、分析請求、響應請求、向客 戶端返回請求結果等任務。 它的工作過程主要包括:( a) 完成 Web 服務器的初始化工作, 如創建環境變量、創建 TCP 套接字、綁定端口、開始偵聽、進入循環結構, 以與等待接收客戶瀏覽器的連接請求;( b) 當有客戶端連接請求時,Web 服務器負責接收客戶端請求, 并保存相關請求信息;( c) 在接收到客戶端的連接請求之后,分析客戶端請求, 解析出請求的方法、URL 目標、可選的查詢信息與表單信息, 同時根據請求做出相應的處理;( d)Web 服務器完成相應處理后, 向客戶端瀏覽器發送響應信息, 關閉與客戶機的TCP 連接。嵌入式 Web 服務器 Boa

14、根據請求方法的不同,做出不同的響應。如果請求方法為HEAD, 則直接向瀏覽器返回響應首部;如果請求方法為 GET, 則在返回響應首部的同時, 將客戶端請求的 URL 目標文件從服務器上讀出, 并且發送給客戶端瀏覽器;如果請求方法為 POST, 則將客戶發送過來的表單信息傳送給相應的 CGI 程序, 作為 CGI 的參數來執行CGI 程序, 并將執行結果發送給客戶端瀏覽器。 Boa 的功能實現也是通過建立連接、綁定端口、進行偵聽、請求處理等來實現的。17、Boa 的搭建與移植(1)準備源代碼、解壓軟件包,安裝源代碼到 boa . 下載 boa-0.94.13.tar.gz 源代碼,

15、或者使用光盤的boa-0.94.13.tar.gz 軟件包。$ tar xzvf boa-0.94-13.tar.gz(2)進入 src 目錄,編譯源代碼。解壓后 src 目錄下有 Makefile.in 文件,但沒有 Makefile 文件,為了編譯源代碼,需要先生成 Makefile 文件,在 src 目錄下運行 configure 命令$ ./configure生成的 Makefile 文件是針對 X86 平臺的,為了生成能夠在 ARM 上運行的 boa,需要修改 Makefile 文件。將 Makefile 如下幾行行容:CC = gccCPP = gcc E應用(在交叉編譯時使用):

16、然后輸入 make 命令進行編譯,在 src 目錄下就會生成 boa 文件。$ make然后將該文件添加到文件系統中,重新下載文件系統。如果不幸出現icky Linux kernelbug!的錯誤,請將 src 下 boa.c 的第 226 行注釋掉,重新編譯下載即可。(3)安裝 boa 服務器主要是配置 boa 服務器。boa 啟動時需要一個配置文件 boa.conf,該文件的缺省目錄由src/defines.h 文件的 SERVER_ROOT 定義,或者在啟動 boa 的時候通過參數-c指定。其中指定的默認目錄是:/etc/boa/。(4)登錄 boa 服務器在 PC 機瀏覽器地址欄輸入目

17、標系統的 IP 地址,訪問存在于目標系統中的網頁。第二部分:實現AD遠程采集1、 解壓boa-0.94.13.tar.gz:進入web目錄:解壓:tar xzvf boa-0.94.13.tar.gz,進入src目錄。2、進行相關修改:得到compat.h文件,找到120行將連個“#”去掉;得到boa.c文件,將其225227進行注釋;用命令:./configure對源文件進行配置;最好用命令make對Makefile文件進行編譯。此后便得到可執行文件boa。3、編譯CGI程序:CGI程序總共有兩個與run.c和stop.c兩個C文件,進入相關目錄,編譯命令分別如下:arm-linux-gcc

18、 o run.cgi run.c、arm-linux-gcc o stop.cgi stop.c,此時生成run.cgi、stop.cgi兩個應用程序。4、BOA服務器的配置:將主機上/etc目錄下的mime.types文件拷至開發板上的/etc目錄下。相關說明如下:/var/log/boa/error_log:表示將錯誤信息記錄到指定文件中 /dev/null:表示遠程請求信息記錄到指定文件中/var/:表示html文件存放的目錄/var/cgi-bin:表示CGI程序存放執行的地址因此,將index.html、adc.html和adc.xml三個文件拷貝到開發板的/var/www目錄下;把

19、剛才編譯得到的run.cgi、stop.cgi拷貝到/var/cgi-bin目錄下;還要在/var/log/boa目錄下建一個error_log文件,命令:touch error_log。5、實現遠程采集:把剛才編譯得到的boa可執行文件拷貝至/var/log/boa目錄下,然后啟動boa服務器,命令如下:./boa。啟動boa服務器后,在Ubuntu 10.04下啟動Firefox(火狐瀏覽器),輸入開發板的IP地址,即:94,打開的頁面如下:點擊上面的“查看”按鈕后,出現如下頁面:這時候轉動開發板上的AD輸入的三個旋鈕,查看三個通道的采樣值是否變化。點擊“停止采集”按

20、鈕后,會跳到第一個頁面,再次點擊按鈕“查看”可以重新開始,再次出現如下頁面:AD遠程采集實驗基本實現預期結果。五、課程設計的心得體會:在課程的設計制作過程中,確實遇到了各種各樣的問題,如調試思路正確但是沒有能夠進行找到合適的方法進行進一步的實驗,設計中對于程序的編寫以與目錄結構的認知上存在偏差,其主要原因還是基礎功不扎實,把握系統的能力不足,這為我們以后的學習和工作提了一個醒。在問題的解決過程中,也提高了我的動手動腦能力,學到了許多在書本上學不到的知識。在具體的設計當中解決了諸如 boa 服務器的搭建和C 程序的修改等。此次課程設計給我最深的體會就是:理論+細心+實踐才能在實際生產中體現所學知識的價值。在嵌入式行業發展如此快速完善的今天,理論與細心與實際的完美結合才能讓自己在專業領域占有一席之地。在課程設計中,我初步了解了嵌入式處理器S3C2410與相關瀏覽器的工作原理、也加深了對嵌入式處理器S3C2410的認識;也見識了關于嵌入式處理器的一些工作方式等。一周的課程設計結束了,然而終究還是學會了很多東西。在整個課程設計期間,我體

溫馨提示

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

評論

0/150

提交評論