基于PXA270嵌入式Web服務(wù)器的設計與實(shí)現
2.3 協(xié)議處理模塊的功能
TCP/IP協(xié)議包括很多的協(xié)議,鑒于嵌入式Web服務(wù)器的應用場(chǎng)合和有限的資源,并不是所有的協(xié)議都需要實(shí)現,應根據系統的要求有選擇的加以實(shí)現。以太網(wǎng)數據的傳輸是采用MAC地址來(lái)識別。為了保證系統在以太網(wǎng)的正常通信,首先需要實(shí)現ARP協(xié)議,因為ARP協(xié)議提供IP地址到MAC地址的轉換功能。嵌入式Web服務(wù)器要實(shí)現在Internet上通信,在網(wǎng)絡(luò )層一定要實(shí)現IP協(xié)議,以及能報告數據傳送差錯等情況的ICMP協(xié)議,因為IP協(xié)議是面向無(wú)連接的,它無(wú)法將狀態(tài)信息和錯誤信息傳到最初的主機上,因此要通過(guò)網(wǎng)際控制報文協(xié)議(ICMP)實(shí)現。在傳輸層主要有TCP協(xié)議和UDP協(xié)議,UDP協(xié)議是面向無(wú)連接的數據報文傳輸協(xié)議,而TCP協(xié)議則是面向可靠的數據流的傳輸。基于應用的需要和對可靠性的要求,在傳輸層采用TCP協(xié)議,并對TCP協(xié)議進(jìn)行簡(jiǎn)化處理。在應用層,遠端主機是通過(guò)瀏覽器的訪(fǎng)問(wèn)控制方式讀取數據的,所以要實(shí)現HTTP協(xié)議。其他一些在Internet上應用較廣泛的協(xié)議(如FTP協(xié)議、SMTP協(xié)議等)在此無(wú)需實(shí)現。
協(xié)議處理模塊完成對連接信息進(jìn)行分析,根據參數的不同,發(fā)送不同的HTTP協(xié)議頭信息,在Linux系統下建立通信雙方的服務(wù)程序可以使用套接字技術(shù),常用的套接字有2種:流式套接字和數據報套接字。本系統為實(shí)現Web服務(wù)器功能采用的是流式套接字,流式套接字用法流程圖如圖3所示。

流式套接字提供了一種可靠的面向連接的數據傳輸方法,此方法對單個(gè)的數據報和對數據包都提供一種流式數據傳輸。流式套接字由socket函數調用來(lái)創(chuàng )建、而且調用時(shí)必須用bind函數為它分配一個(gè)地址。使用listen函數建立和客戶(hù)機的連接,該函數告訴套接字開(kāi)始偵聽(tīng)客戶(hù)機的連接請求。一旦將套接字設置成偵聽(tīng)連接后,用accept函數來(lái)完成連接,如果連接成功,accept函數將返回一個(gè)新套接字的描述符,新套接字被用作以后處理的連接。一旦客戶(hù)機套接字和服務(wù)器套接字建立連接,雙方就可以通過(guò)send()和recv()函數來(lái)發(fā)送和接收數據。
3 硬件平臺與軟件設計
3.1 硬件開(kāi)發(fā)平臺
基于PXA270的Web服務(wù)器硬件平臺為研興科技開(kāi)發(fā)的EDK-270SL硬件系統,EDK-270SL是研興科技針對Intel PXA270 CPU推出的Linux開(kāi)發(fā)平臺。PXA270嵌入式微處理器最高主頻可達624 MHz,加入了WirelessMMX技術(shù),大大提升了多媒體處理能力,同時(shí)PXA270還引入PC機上的Intel SpeedStep動(dòng)態(tài)電源管理技術(shù),在保證CPU性能的情況下,最大限度地降低移動(dòng)設備的功耗。EDK-270SL由處理器核心板、主板及LCD三部分組成。EDK-270SL上還集成了下列部件:64 MB SDRAM、32 MB FLASH Memory、LAN91C113以太網(wǎng)接口、1個(gè)全功能串口,1個(gè)帶流控串口、1個(gè)紅外接口、1個(gè)CF、接口、1個(gè)USB HOST、1個(gè)USB SLAVE、2個(gè)SSP接口等。因處理器的高性能、低成本、高效率等特點(diǎn),廣泛應用于PDA、智能電器、儀器儀表、監測控制等領(lǐng)域。
3.2 軟件設計
嵌入式Web服務(wù)器的軟件開(kāi)發(fā)主要包括以下幾項內容:
(1)嵌入式操作系統ARM-linux的移植。ARM-Linux可移植性強,用戶(hù)通過(guò)重新進(jìn)行配置、編譯內核可以使其內核文件小于500 kB。Linux是源碼公開(kāi)的免費操作系統,所用版本支持MMU功能。ARM-Linux網(wǎng)絡(luò )支持功能強大,支持PPP,Ethernet等多種網(wǎng)絡(luò )連接方式,包括完整的TCP/IP協(xié)議棧及大量的其他協(xié)議。另外,由于A(yíng)RM-Linux的開(kāi)放性,新的網(wǎng)絡(luò )協(xié)議可以很容易地加入到內核中。移植過(guò)程如下:
①安裝交叉編譯工具鏈。由于嵌入式設備沒(méi)有足夠的內存以及存儲資源來(lái)完成編譯工作,于是就必須在主機上完成針目標機的代碼編譯生成,編譯后的代碼下載到目標機上運行。
②編譯Linux內核需要的源碼樹(shù):linux2.6.9-270SL1.tar.gz。使用自動(dòng)編譯腳本my編譯內核,生成可運行在嵌入式系統上的內核映像文件zImage。
③創(chuàng )建JFFS2根文件系統。對于一個(gè)實(shí)際的嵌入式應用系統,僅包含Linux內核是不夠的,還必須有文件系統的支持。在嵌入式Linux內核啟動(dòng)后,需要加載根文件系統,以支持系統與用戶(hù)交互。
linux操作系統文章專(zhuān)題:linux操作系統詳解(linux不再難懂)相關(guān)推薦
技術(shù)專(zhuān)區
- FPGA
- DSP
- MCU
- 示波器
- 步進(jìn)電機
- Zigbee
- LabVIEW
- Arduino
- RFID
- NFC
- STM32
- Protel
- GPS
- MSP430
- Multisim
- 濾波器
- CAN總線(xiàn)
- 開(kāi)關(guān)電源
- 單片機
- PCB
- USB
- ARM
- CPLD
- 連接器
- MEMS
- CMOS
- MIPS
- EMC
- EDA
- ROM
- 陀螺儀
- VHDL
- 比較器
- Verilog
- 穩壓電源
- RAM
- AVR
- 傳感器
- 可控硅
- IGBT
- 嵌入式開(kāi)發(fā)
- 逆變器
- Quartus
- RS-232
- Cyclone
- 電位器
- 電機控制
- 藍牙
- PLC
- PWM
- 汽車(chē)電子
- 轉換器
- 電源管理
- 信號放大器
評論