新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 基于PXA270嵌入式Web服務(wù)器的設(shè)計與實現(xiàn)

基于PXA270嵌入式Web服務(wù)器的設(shè)計與實現(xiàn)

作者: 時間:2009-07-06 來源:網(wǎng)絡(luò) 收藏

2.3 協(xié)議處理模塊的功能

TCP/IP協(xié)議包括很多的協(xié)議,鑒于的應(yīng)用場合和有限的資源,并不是所有的協(xié)議都需要,應(yīng)根據(jù)系統(tǒng)的要求有選擇的加以。以太網(wǎng)數(shù)據(jù)的傳輸是采用MAC地址來識別。為了保證系統(tǒng)在以太網(wǎng)的正常通信,首先需要ARP協(xié)議,因為ARP協(xié)議提供IP地址到MAC地址的轉(zhuǎn)換功能。要實現(xiàn)在Internet上通信,在網(wǎng)絡(luò)層一定要實現(xiàn)IP協(xié)議,以及能報告數(shù)據(jù)傳送差錯等情況的ICMP協(xié)議,因為IP協(xié)議是面向無連接的,它無法將狀態(tài)信息和錯誤信息傳到最初的主機(jī)上,因此要通過網(wǎng)際控制報文協(xié)議(ICMP)實現(xiàn)。在傳輸層主要有TCP協(xié)議和UDP協(xié)議,UDP協(xié)議是面向無連接的數(shù)據(jù)報文傳輸協(xié)議,而TCP協(xié)議則是面向可靠的數(shù)據(jù)流的傳輸。應(yīng)用的需要和對可靠性的要求,在傳輸層采用TCP協(xié)議,并對TCP協(xié)議進(jìn)行簡化處理。在應(yīng)用層,遠(yuǎn)端主機(jī)是通過瀏覽器的訪問控制方式讀取數(shù)據(jù)的,所以要實現(xiàn)HTTP協(xié)議。其他一些在Internet上應(yīng)用較廣泛的協(xié)議(如FTP協(xié)議、SMTP協(xié)議等)在此無需實現(xiàn)。

協(xié)議處理模塊完成對連接信息進(jìn)行分析,根據(jù)參數(shù)的不同,發(fā)送不同的HTTP協(xié)議頭信息,在Linux系統(tǒng)下建立通信雙方的服務(wù)程序可以使用套接字技術(shù),常用的套接字有2種:流式套接字和數(shù)據(jù)報套接字。本系統(tǒng)為實現(xiàn)功能采用的是流式套接字,流式套接字用法流程圖如圖3所示。

流式套接字提供了一種可靠的面向連接的數(shù)據(jù)傳輸方法,此方法對單個的數(shù)據(jù)報和對數(shù)據(jù)包都提供一種流式數(shù)據(jù)傳輸。流式套接字由socket函數(shù)調(diào)用來創(chuàng)建、而且調(diào)用時必須用bind函數(shù)為它分配一個地址。使用listen函數(shù)建立和客戶機(jī)的連接,該函數(shù)告訴套接字開始偵聽客戶機(jī)的連接請求。一旦將套接字設(shè)置成偵聽連接后,用accept函數(shù)來完成連接,如果連接成功,accept函數(shù)將返回一個新套接字的描述符,新套接字被用作以后處理的連接。一旦客戶機(jī)套接字和服務(wù)器套接字建立連接,雙方就可以通過send()和recv()函數(shù)來發(fā)送和接收數(shù)據(jù)。

3 硬件平臺與軟件

3.1 硬件開發(fā)平臺

的Web服務(wù)器硬件平臺為研興科技開發(fā)的EDK-270SL硬件系統(tǒng),EDK-270SL是研興科技針對Intel CPU推出的Linux開發(fā)平臺。微處理器最高主頻可達(dá)624 MHz,加入了WirelessMMX技術(shù),大大提升了多媒體處理能力,同時PXA270還引入PC機(jī)上的Intel SpeedStep動態(tài)電源管理技術(shù),在保證CPU性能的情況下,最大限度地降低移動設(shè)備的功耗。EDK-270SL由處理器核心板、主板及LCD三部分組成。EDK-270SL上還集成了下列部件:64 MB SDRAM、32 MB FLASH Memory、LAN91C113以太網(wǎng)接口、1個全功能串口,1個帶流控串口、1個紅外接口、1個CF、接口、1個USB HOST、1個USB SLAVE、2個SSP接口等。因處理器的高性能、低成本、高效率等特點,廣泛應(yīng)用于PDA、智能電器、儀器儀表、監(jiān)測控制等領(lǐng)域。

3.2 軟件

嵌入式Web服務(wù)器的軟件開發(fā)主要包括以下幾項內(nèi)容:

(1)嵌入式操作系統(tǒng)ARM-linux的移植。ARM-Linux可移植性強(qiáng),用戶通過重新進(jìn)行配置、編譯內(nèi)核可以使其內(nèi)核文件小于500 kB。Linux是源碼公開的免費操作系統(tǒng),所用版本支持MMU功能。ARM-Linux網(wǎng)絡(luò)支持功能強(qiáng)大,支持PPP,Ethernet等多種網(wǎng)絡(luò)連接方式,包括完整的TCP/IP協(xié)議棧及大量的其他協(xié)議。另外,由于ARM-Linux的開放性,新的網(wǎng)絡(luò)協(xié)議可以很容易地加入到內(nèi)核中。移植過程如下:

①安裝交叉編譯工具鏈。由于嵌入式設(shè)備沒有足夠的內(nèi)存以及存儲資源來完成編譯工作,于是就必須在主機(jī)上完成針目標(biāo)機(jī)的代碼編譯生成,編譯后的代碼下載到目標(biāo)機(jī)上運行。

②編譯Linux內(nèi)核需要的源碼樹:linux2.6.9-270SL1.tar.gz。使用自動編譯腳本my編譯內(nèi)核,生成可運行在嵌入式系統(tǒng)上的內(nèi)核映像文件zImage。

③創(chuàng)建JFFS2根文件系統(tǒng)。對于一個實際的嵌入式應(yīng)用系統(tǒng),僅包含Linux內(nèi)核是不夠的,還必須有文件系統(tǒng)的支持。在嵌入式Linux內(nèi)核啟動后,需要加載根文件系統(tǒng),以支持系統(tǒng)與用戶交互。

linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)


評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉