新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于ARM和eCos的嵌入式WEB服務(wù)器設(shè)計(jì)

基于ARM和eCos的嵌入式WEB服務(wù)器設(shè)計(jì)

作者: 時(shí)間:2012-12-04 來源:網(wǎng)絡(luò) 收藏

  4.1 IP處理

  LwIP僅能實(shí)現(xiàn)IP層大部分基本功能。它雖然能夠發(fā)送、接收以及轉(zhuǎn)發(fā)信息包,但不能接收和發(fā)送IP分片包,也不能處理攜帶IP參數(shù)選項(xiàng)的信息包。不過對(duì)大多數(shù)的應(yīng)用來說,這不會(huì)成為問題。

 ?、俳邮招畔?。對(duì)于到達(dá)的IP信息包,可由網(wǎng)絡(luò)設(shè)備驅(qū)動(dòng)調(diào)用ip_input()函數(shù)開始處理,并在這里完成對(duì)IP版本字段及包頭長(zhǎng)度的初始完整性檢查,同時(shí)還要計(jì)算和驗(yàn)證包頭校驗(yàn)和。

 ?、诎l(fā)送信息包。外發(fā)的信息包由ip_output()函數(shù)處理,該函數(shù)使用ip_route()函數(shù)查找適當(dāng)?shù)木W(wǎng)絡(luò)接口來傳送信息包。當(dāng)外發(fā)的網(wǎng)絡(luò)接口確定后,信息包傳給以外發(fā)網(wǎng)絡(luò)接口為參數(shù)的ip_output_if()函數(shù)。

 ?、坜D(zhuǎn)發(fā)信息包。如果沒有網(wǎng)絡(luò)接口的地址與到達(dá)信息包的目標(biāo)地址相同,信息包應(yīng)被轉(zhuǎn)發(fā)。這項(xiàng)工作由ip_ forward()函數(shù)完成。

 ?、躀CMP處理。ICMP處理相當(dāng)簡(jiǎn)單。ip_input()函數(shù)收到的ICMP信息包被移交給icmp_input()函數(shù),后者對(duì)ICMP包頭解碼,然后進(jìn)行適當(dāng)?shù)膭?dòng)作。

  4.2 UDP處理

  UDP是被用來在不同進(jìn)程問分解信息包的簡(jiǎn)單協(xié)議。每個(gè)UDP會(huì)話的狀態(tài)保存在一個(gè)PCB結(jié)構(gòu)體中。UDP PCB保存在一個(gè)鏈表中,當(dāng)一個(gè)UDP數(shù)據(jù)包到達(dá)時(shí)對(duì)這個(gè)鏈表進(jìn)行匹配檢索。

  4.3 TCP處理

  TCP屬于傳輸層協(xié)議,它為應(yīng)用層提供了可靠的字節(jié)流服務(wù)。對(duì)它的描述要比對(duì)其他協(xié)議的描述復(fù)雜的多,其代碼占了LwIP代碼總量的50%?;镜腡CP處理過程被分割為6個(gè)功能函數(shù)來實(shí)現(xiàn),tcp_input()、tep_ process()及tcp_receive()函數(shù)與TCP輸入有關(guān),tcp_write()、tcp_enqueue()及tcp_output()則用于TCP輸出。TCP的處理過程如圖5所示。

  


  4.4 應(yīng)用程序接口設(shè)計(jì)

  LwIP API專為L(zhǎng)wIP設(shè)計(jì),所以它可以充分利用LwIP的內(nèi)部結(jié)構(gòu)實(shí)現(xiàn)其設(shè)計(jì)目標(biāo)。LwIP API與BSDAPI類似,但操作相對(duì)低級(jí)。API不需要在應(yīng)用程序和協(xié)議棧之間復(fù)制數(shù)據(jù),因?yàn)閼?yīng)用程序可以巧妙地直接處理內(nèi)部緩沖區(qū)。另外,BSD Socket API易于理解,并且很多應(yīng)用程序?yàn)樗鴮?,所以LwIP保留一個(gè)BSD Socket兼容層是很有用的。

  鑒于TCP/IP協(xié)議棧的處理模式,APl分成兩部分實(shí)現(xiàn)。如圖6所示,一部分作為應(yīng)用程序的連接庫實(shí)現(xiàn),另一部分在TCP/IP進(jìn)程內(nèi)實(shí)現(xiàn)。這兩部分之間采用由操作系統(tǒng)模擬層提供的進(jìn)程間通信機(jī)制(IPC)進(jìn)行通信。當(dāng)前的實(shí)現(xiàn)采用以下3種IPC方式:共享內(nèi)存、消息傳遞和信號(hào)量。雖然這些IPC方式被操作系統(tǒng)支持,但它們并不需要操作系統(tǒng)底層支持,實(shí)際上是操作系統(tǒng)模擬層在模擬它們。


  結(jié) 語

  基于實(shí)時(shí)內(nèi)核,在嵌入式系統(tǒng)中實(shí)現(xiàn)了LwIP協(xié)議棧的移植與優(yōu)化。移植優(yōu)化后的LwIP棧做為一個(gè)網(wǎng)絡(luò)模塊運(yùn)行,代碼占用40 KB的ROM,實(shí)現(xiàn)了Ethernet/IP/TCP網(wǎng)絡(luò)功能,并提供了模塊API,與系統(tǒng)實(shí)現(xiàn)無縫連接?;贚wIP的網(wǎng)絡(luò)應(yīng)用任務(wù)與其他非網(wǎng)絡(luò)應(yīng)用任務(wù)在eGos實(shí)時(shí)內(nèi)核管理下協(xié)調(diào)運(yùn)行。進(jìn)一步增強(qiáng)了協(xié)議棧的網(wǎng)絡(luò)安全性與穩(wěn)定性,并開發(fā)相應(yīng)的的網(wǎng)絡(luò)應(yīng)用程序?!?a class="contentlabel" href="http://butianyuan.cn/news/listbylabel/label/eCos">eCos/LwIP協(xié)議?!奔軜?gòu)有望應(yīng)用在信息家電和網(wǎng)絡(luò)化的儀器、儀表方面。

參考文獻(xiàn):

[1].LPC2210datasheethttp://www.dzsc.com/datasheet/LPC2210_454566.html.
[2].7TDMIdatasheethttp://www.dzsc.com/datasheet/7TDMI_139812.html.
[3].EMCdatasheethttp://www.dzsc.com/datasheet/EMC_2342312.html.
[4].RTL8019ASdatasheethttp://www.dzsc.com/datasheet/RTL8019AS_1096173.html.
[5].HR901170Adatasheethttp://www.dzsc.com/datasheet/HR901170A_1098413.html.
[6].ROMdatasheethttp://www.dzsc.com/datasheet/ROM_1188413.html.
[7].PCBdatasheethttp://www.dzsc.com/datasheet/PCB_1201640.html.

tcp/ip相關(guān)文章:tcp/ip是什么



上一頁 1 2 3 下一頁

關(guān)鍵詞: ARM eCos WEB服務(wù)器

評(píng)論


相關(guān)推薦

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

關(guān)閉