??????? 隨著人們對智能化產(chǎn)品需求的增加,未來的嵌入式產(chǎn)品,包括各種家電、通信、PDA、儀器儀表等設(shè)備正逐漸走向網(wǎng)絡(luò)化,以共享互聯(lián)網(wǎng)中龐大的信息資源,因而使嵌入式設(shè)備的網(wǎng)絡(luò)化開發(fā)有廣闊的市場前景。由于嵌入式硬件資源有限,而傳統(tǒng)的TCP/IP等網(wǎng)絡(luò)通信協(xié)議對計算機存儲器、運算速度的要求較高,所以不能直接應(yīng)用。為此,必須開發(fā)一套適合嵌入式系統(tǒng)的、高度優(yōu)化的、最為精簡的TCP/IP協(xié)議棧。
開放式多媒體應(yīng)用平臺OMAP(Open Multimedia Apphcation Platform)是美國德州儀器公司推出的高度集成的軟硬件平臺。OMAP具有獨特的雙芯結(jié)構(gòu),結(jié)合了DSP與RISC內(nèi)核,可為無線多媒體設(shè)備提供獨一無二的性能和功耗優(yōu)勢。OMAP可連接十分豐富的外圍設(shè)備,包括USB、攝像頭、聲音設(shè)備、視頻設(shè)備、網(wǎng)絡(luò)設(shè)備等。OMAP擁有開放式體系結(jié)構(gòu),其應(yīng)用環(huán)境完全可編程。
軟件協(xié)議的設(shè)計與實現(xiàn)在很大程度上決定了通信終端的質(zhì)量。基于OMAP的3G移動終端軟件協(xié)議結(jié)構(gòu)由信令協(xié)議棧和應(yīng)用業(yè)務(wù)協(xié)議棧組成,如圖l所示。TCP/IP協(xié)議棧位于應(yīng)用業(yè)務(wù)協(xié)議棧的底層,為上層的H.323協(xié)議棧提供基礎(chǔ)與服務(wù)。其性能質(zhì)量將直接決定整個通信終端軟件系統(tǒng)的運行質(zhì)量。因此,針對嵌入式系統(tǒng)聯(lián)網(wǎng)的發(fā)展方向,為OMAP系統(tǒng)其設(shè)計一套高效、簡潔的TCP/IP協(xié)議,對其應(yīng)用具有十分重要的意義。
1 開發(fā)方案
PC上有功能強大的VC平臺和網(wǎng)絡(luò)分析工具(如Sniffer)便于調(diào)試,其設(shè)計不針對任何一個嵌入式芯片,具有較好的通用性和可移植性。在PC機上實現(xiàn)的TCP/IP協(xié)議,除了以太網(wǎng)層要結(jié)合OMAP平臺的網(wǎng)卡硬件重寫外,基本上可以直接移植到OMAP平臺上,不需要再做大的改動。作為一個通信程序,必然需要兩端程序同時調(diào)試,在PC機上編好的程序能對OMAP平臺上程序的調(diào)試提供可靠的幫助。因此,協(xié)議開發(fā)采用先模擬再移植、先整體再部分的設(shè)計思路,而協(xié)議各層實現(xiàn)的順序為自下而上。具體步驟是:
(1)在PC機的Windows操作系統(tǒng)及VC 6.0開發(fā)平臺上,實現(xiàn)嵌入式系統(tǒng)TCP/IP協(xié)議族的模擬器。該模擬器應(yīng)該能實現(xiàn)TCP/IP協(xié)議的基本功能,包括以太網(wǎng)驅(qū)動程序、ARP、IP、UDP、TCP等,并且實現(xiàn)的ARP、IP、UDP、TCP層的程序應(yīng)該通用于各種嵌入式系統(tǒng)并可移植。
(2)將該模擬器移植到OMAP開發(fā)平臺,用其以太網(wǎng)卡的驅(qū)動程序替換原模擬器的鏈路層程序。在TI提供的CCS平臺上最終實現(xiàn)基于OMAP的TCP/IP協(xié)議。
1.jpg)
?
2 開發(fā)平臺
OMAP的多媒體開發(fā)平臺Innovator主要由4個模塊組成:PM(處理器模塊)、IM(接口模塊)、EM(擴展模塊)、BOB(主連接板)。OMAP處理器在PM上,以太網(wǎng)卡在BOB上。可以通過Innovator上的OMAPl510芯片的ARM教處理器對單片以太網(wǎng)控制器LAN91C96的工作進行控制,實現(xiàn)以太網(wǎng)幀的收發(fā),并通過CCS對程序調(diào)試。圖2為OMAP平臺調(diào)試環(huán)境。
2.jpg)
?
3 在PC上實現(xiàn)協(xié)議的基本模塊
3.1 主要模塊介紹
(1)主流程:首先對TCP/IP協(xié)議族的各層初始化,成功則進入主循環(huán)。主循環(huán)采用“中斷+循環(huán)”結(jié)構(gòu),簡單且分層清晰。中斷作為應(yīng)用層發(fā)出命令,調(diào)用下層的入口。對于接收到的以太網(wǎng)幀,則由下到上分別進入各層進行處理。協(xié)議實現(xiàn)主流程如圖3所示。
3.jpg)
?
?
(3)ARP層:在內(nèi)存中開辟一塊循環(huán)存儲區(qū)域用于存放已知的IP-MAC對應(yīng)表。該表可以由上層舔加,在接收到ARP應(yīng)答時會自動添加,也可以由上層清空。處理ARP層函數(shù)的過程為:根據(jù)以太網(wǎng)首部協(xié)議字段過濾出ARP包,針對ARP請求與ARP應(yīng)答進行不同的處理。應(yīng)答對方的請求,記錄對方的應(yīng)答。
(4)IP層:根據(jù)以太網(wǎng)首部的幀類型標志判斷接收到的是不是IP包來處理IP層函數(shù)。如果是,則調(diào)用IP包的接收函數(shù),對收到的IP包用各種條件進行過濾,對于滿足條件的包獲取其長度與指針信息供上層使用。本層另一個主要函數(shù)是IP包發(fā)送函數(shù),由上層調(diào)用進行IP封裝。
IP的檢驗和僅包括IP首部,長度一般為20字節(jié)(如果沒有選項)。在接收端,丟棄檢驗和不為0xFFFF的包;在發(fā)送端,將計算所得值的反碼填入檢驗和字節(jié)。由于主機和網(wǎng)絡(luò)對數(shù)據(jù)中高低字節(jié)默認的順序不同,在讀寫包中的16位、32位數(shù)據(jù)時,應(yīng)該先進行高低字節(jié)的交換。
(5)UDP層:處理UDP層函數(shù)應(yīng)根據(jù)IP首部的協(xié)議字段判斷是否UDP包。如果是,則調(diào)用UDP包接收函數(shù),用各種條件對其進行過濾,提出UDP數(shù)據(jù)及各種有用信息,根據(jù)端口號提交給應(yīng)用進程處理。本層的另一個主要函數(shù)是UDP發(fā)送函數(shù),實現(xiàn)封裝UDP包(包括載入UDP數(shù)據(jù),計算并填入UDP首部信息),最后調(diào)用IP發(fā)送函數(shù),交由IP層處理。
(6)TCP層:與UDP不同,TCP主機要進行數(shù)據(jù)通信之前,必須與對方建立連接。與幾個主機通信,就要建立幾個連接。然而,若要知道接收到的TCP包屬于哪個連接且使得幾個不同的連接之間獨立工作、互不干擾,則需要定義TCP的控制模塊。這里用一個結(jié)構(gòu)體數(shù)組實現(xiàn),存放所有關(guān)于連接的信息。
4.jpg)
?
5.jpg)
?
處理TCP層函數(shù),判斷接收包的類型,如果是TCP包.則調(diào)用TCP接收函數(shù)。TCP接收函數(shù)用指定條件進行過濾,找到該包所屬的連接或完成一個新連接的被動打開,根據(jù)TCP的狀態(tài)轉(zhuǎn)換規(guī)則完成11種狀態(tài)的轉(zhuǎn)移,并且實現(xiàn)了多路數(shù)據(jù)同時、雙向的傳輸。
TCP的發(fā)送函數(shù)包括主動打開、主動關(guān)閉(由上層調(diào)用完成新連接的主動打開,或主動關(guān)閉一個已建立的連接)和發(fā)送控制包(用于TCP連接的建立與終止,會在TCP接收函數(shù)中調(diào)用,從而實現(xiàn)TCP狀態(tài)的轉(zhuǎn)換)三個函數(shù)。
TCP層還實現(xiàn)了兩個定時器。TCP重傳定時器函數(shù)可提供服務(wù)可靠性的有效保障;TCP保活定時器能夠避免資源的浪費。
3.2 程序特點分析
(1)簡單性:4.4BSD-Lite版的完整TCP/IP內(nèi)核實現(xiàn)大約有15000行,而本程序源代碼約有l(wèi)400行,更適合嵌入式系統(tǒng)的應(yīng)用。
(2)可重用性:本程序分層清晰。對于不同的嵌入式系統(tǒng),可能使用的CPU和以太網(wǎng)卡不同,這就需要針對其特點的以太網(wǎng)層設(shè)計,而ARP、IP、UDP、TCP則不需要改動。
(3)可拓展性:TCP/IP協(xié)議是底層網(wǎng)絡(luò)協(xié)議,本程序留有很好的接口,可在其上構(gòu)建更高層的網(wǎng)絡(luò)協(xié)議,包括H.323協(xié)議、ftp、telnet。
本文導(dǎo)航
- 第 1 頁:結(jié)合LAN91C96的嵌入式TCP/IP開發(fā)
- 第 2 頁:OMAP平臺上的移植
- 第 3 頁:實驗結(jié)果
- 嵌入式(330854)
- IP(155198)
- TCP(83183)
- LAN91C96(6626)
ARM9 AT91RM9200T實現(xiàn)的嵌入式網(wǎng)絡(luò)通訊
7135
TCP/IP協(xié)議在AT91RM9200上的實現(xiàn)
1571嵌入式TCP/IP協(xié)議單片機技術(shù)在網(wǎng)絡(luò)通信中的應(yīng)用
5720C語言在嵌入式開發(fā)中的應(yīng)用
LAN91C96
TCP_IP協(xié)議棧在嵌入式系統(tǒng)中的實現(xiàn)
嵌入式C語言開發(fā)與嵌入式Linux C開發(fā)的區(qū)別
嵌入式TCP/IP協(xié)議單片機在網(wǎng)絡(luò)通信中有什么應(yīng)用?
嵌入式Internet通信的安全怎么保障?
嵌入式Linux和Java技術(shù)相結(jié)合的開發(fā)環(huán)境
嵌入式的系統(tǒng)特點
嵌入式軟件開發(fā)與非嵌入式軟件開發(fā)的區(qū)別?
嵌入式軟件開發(fā)需要學(xué)習(xí)什么?
嵌入式開發(fā)累不累?
嵌入式開發(fā):你是如何理解嵌入式c編程的
LwIP協(xié)議棧開發(fā)嵌入式網(wǎng)絡(luò)有哪幾種方法
LwIP協(xié)議棧開發(fā)嵌入式網(wǎng)絡(luò)的三種方法有何關(guān)系
TMS320LF2407與LAN91C111型嵌入式以太網(wǎng)接口電路的實現(xiàn)方法是什么?
你是如何理解嵌入式C編程
單片機嵌入式Internet技術(shù)的Web應(yīng)用實現(xiàn)
單片機以太網(wǎng)控制器LAN91C111資料推薦
在嵌入式開發(fā)中,你是如何理解嵌入式C編程的?
基于TCP IP協(xié)議棧的嵌入式以太網(wǎng)終端設(shè)計
基于ARM的嵌入式系統(tǒng)與C語言編程的結(jié)合
基于DSP的嵌入式以太網(wǎng)接口電路設(shè)計
基于FPGA的嵌入式以太網(wǎng)接口硬件設(shè)計
基于LPC2368的CANTCP-IP嵌入式網(wǎng)關(guān)的設(shè)計
基于XILINX FPGA片上嵌入式系統(tǒng)的用戶IP開發(fā)
如何使用LwIP TCP/IP開源協(xié)議棧在嵌入式設(shè)備的應(yīng)用
如何學(xué)習(xí)嵌入式
工業(yè)嵌入式計算平臺開發(fā)招聘
怎么實現(xiàn)嵌入式TCP/IP協(xié)議棧的設(shè)計?
怎么實現(xiàn)嵌入式TCP/IP的優(yōu)化設(shè)計?
請問嵌入式系統(tǒng)實現(xiàn)以太網(wǎng),TCP/IP協(xié)議棧是都是移植的嗎?
采用ARM實現(xiàn)嵌入式TCP/IP網(wǎng)絡(luò)系統(tǒng)設(shè)計
嵌入式系統(tǒng)TCP/IP網(wǎng)絡(luò)解決方案
0TCP IP協(xié)議棧在嵌入式異構(gòu)網(wǎng)絡(luò)互連中的應(yīng)用
10在TMS320VC5402 上實現(xiàn)的嵌入式TCP IP協(xié)議棧
28一種基于LPC2368的CAN/TCP-IP嵌入式網(wǎng)關(guān)的設(shè)計
42嵌入式WEB服務(wù)器中TCP/IP協(xié)議棧的設(shè)計與實現(xiàn)
35一種嵌入式TCP/IP協(xié)議的設(shè)計與實現(xiàn)
18嵌入式Internet技術(shù)及其實現(xiàn)方案
17嵌入式系統(tǒng)中TCP/IP 協(xié)議的精簡與實現(xiàn)
18基于嵌入式TCP/IP的遠程GPRS控制終端的設(shè)計與實現(xiàn)
33基于嵌入式TCP/IP協(xié)議單片機的雜散電流監(jiān)測系統(tǒng)
21基于嵌入式TCP IP的實時數(shù)據(jù)傳輸
38基于DSP的嵌入式網(wǎng)絡(luò)瘦服務(wù)器的研究
13嵌入式系統(tǒng)以太網(wǎng)卡控制器LAN91C96
3758
MC70X嵌入式通訊板卡 – EtherCAT、Profinet、EtherNet/IP、Modbus TCP
MC70嵌入式通訊模塊---EtherCAT、Profinet、EtherNet/IP、Modbus TCP
DEVOEM-082C 嵌入式通訊模塊開發(fā)板PROFINET、ETHERCAT、ETHERNET/IP、CC-LINK IEFB
嵌入式TCP/IP技術(shù)在恒溫振蕩器中的應(yīng)用
854
嵌入式圖形系統(tǒng)μc/GUI的移植和開發(fā)
1393
基于DSP的嵌入式TCP/IP協(xié)議棧在μC/OS-Ⅱ上的實現(xiàn)
65嵌入式TCP/IP協(xié)議棧在DSP上的實現(xiàn)
189嵌入式c語言編程(由淺入深)
0嵌入式開發(fā)

基于DSP的嵌入式TCP/IP協(xié)議的研究與實現(xiàn)
3350
嵌入式協(xié)議棧uCUSB-Device應(yīng)用開發(fā)—基于STM32微控制器
164嵌入式軟件開發(fā)語言 嵌入式C編程
1892lan91c96局部總線PCMCIA集成以太網(wǎng)控制器
1DSP嵌入式系統(tǒng)開發(fā)典型案例,第6章 數(shù)字和IP電話系統(tǒng)設(shè)計
6在FPGA中實現(xiàn)嵌入式TCP/IP通信協(xié)議棧
9560
嵌入式Internet設(shè)計
2嵌入式開發(fā)語言有哪些_最全面嵌入式開發(fā)語言概述
10380
一種適用于Nagle算法的簡化嵌入式TCP協(xié)議淺析
1591
嵌入式開發(fā)是什么
27808W5500 TCP IP嵌入式以太網(wǎng)控制器的數(shù)據(jù)手冊免費下載
1Azure RTOS NetX Duo嵌入式TCP/IP網(wǎng)絡(luò)堆棧
13基于μcosⅡ和S3C2410實現(xiàn)TCP/IP協(xié)議棧LwIP的應(yīng)用方案
2571
TCP-IP協(xié)議講解
46基于ARM微處理器的嵌入式TCP-IP協(xié)議的實現(xiàn)與應(yīng)用
22解析嵌入式軟件開發(fā)語言:嵌入式C編程
7嵌入式底層開發(fā)為什么選擇C語言
2嵌入式開發(fā)
3嵌入式linux c語言,嵌入式LinuxC語言開發(fā)工具.pdf
12嵌入式Linux應(yīng)用程序開發(fā)-(7)TCP-IP網(wǎng)絡(luò)通信應(yīng)用程序(TCP-Client)
14嵌入式系統(tǒng)設(shè)計--課堂總結(jié)(嵌入式Linux系統(tǒng)開發(fā))
21嵌入式Linux應(yīng)用程序開發(fā)-(9)UDP網(wǎng)絡(luò)通信應(yīng)用程序(UDP-Socket)
35視頻教程-嵌入式Linux開發(fā)基礎(chǔ)-嵌入式
30嵌入式開發(fā)培訓(xùn)學(xué)什么?嵌入式開發(fā)板知識講解
16全硬件TCP/IP嵌入式以太網(wǎng)控制器w5500中文資料
31TCP/IP 堆棧漏洞是嵌入式軟件的警鐘
1903
如何用C語言開發(fā)DSP嵌入式系統(tǒng)?
2240
電子發(fā)燒友App


評論