基于OMAP的嵌入式TCP/IP開
發(fā)布時(shí)間:2008/8/20 0:00:00 訪問次數(shù):795
介紹了嵌入式系統(tǒng)tcp/ip的網(wǎng)絡(luò)層及運(yùn)動(dòng)層c代碼的開發(fā)過程,結(jié)合以太網(wǎng)控制器lan91c96實(shí)現(xiàn)其鏈路層,將通用的上層程序移植到0map平臺(tái)上,實(shí)現(xiàn)了0map平臺(tái)的底層tcp/ip協(xié)議。
隨著人們對(duì)智能化產(chǎn)品需求的增加,未來的嵌入式產(chǎn)品,包括各種家電、通信、pda、儀器儀表等設(shè)備正逐漸走向網(wǎng)絡(luò)化,以共享互聯(lián)網(wǎng)中龐大的信息資源,因而使嵌入式設(shè)備的網(wǎng)絡(luò)化開發(fā)有廣闊的市場(chǎng)前景。由于嵌入式硬件資源有限,而傳統(tǒng)的tcp/ip等網(wǎng)絡(luò)通信協(xié)議對(duì)計(jì)算機(jī)存儲(chǔ)器、運(yùn)算速度的要求較高,所以不能直接應(yīng)用。為此,必須開發(fā)一套適合嵌入式系統(tǒng)的、高度優(yōu)化的、最為精簡(jiǎn)的tcp/ip協(xié)議棧。
開放式多媒體應(yīng)用平臺(tái)omap(open multimedia apphcation platform)是美國德州儀器公司推出的高度集成的軟硬件平臺(tái)。omap具有獨(dú)特的雙芯結(jié)構(gòu),結(jié)合了dsp與risc內(nèi)核,可為無線多媒體設(shè)備提供獨(dú)一無二的性能和功耗優(yōu)勢(shì)。omap可連接十分豐富的外圍設(shè)備,包括usb、攝像頭、聲音設(shè)備、視頻設(shè)備、網(wǎng)絡(luò)設(shè)備等。omap擁有開放式體系結(jié)構(gòu),其應(yīng)用環(huán)境完全可編程。
軟件協(xié)議的設(shè)計(jì)與實(shí)現(xiàn)在很大程度上決定了通信終端的質(zhì)量;趏map的3g移動(dòng)終端軟件協(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ì)量將直接決定整個(gè)通信終端軟件系統(tǒng)的運(yùn)行質(zhì)量。因此,針對(duì)嵌入式系統(tǒng)聯(lián)網(wǎng)的發(fā)展方向,為omap系統(tǒng)其設(shè)計(jì)一套高效、簡(jiǎn)潔的tcp/ip協(xié)議,對(duì)其應(yīng)用具有十分重要的意義。
1 開發(fā)方案
pc上有功能強(qiáng)大的vc平臺(tái)和網(wǎng)絡(luò)分析工具(如sniffer)便于調(diào)試,其設(shè)計(jì)不針對(duì)任何一個(gè)嵌入式芯片,具有較好的通用性和可移植性。在pc機(jī)上實(shí)現(xiàn)的tcp/ip協(xié)議,除了以太網(wǎng)層要結(jié)合omap平臺(tái)的網(wǎng)卡硬件重寫外,基本上可以直接移植到omap平臺(tái)上,不需要再做大的改動(dòng)。作為一個(gè)通信程序,必然需要兩端程序同時(shí)調(diào)試,在pc機(jī)上編好的程序能對(duì)omap平臺(tái)上程序的調(diào)試提供可靠的幫助。因此,協(xié)議開發(fā)采用先模擬再移植、先整體再部分的設(shè)計(jì)思路,而協(xié)議各層實(shí)現(xiàn)的順序?yàn)樽韵露。具體步驟是:
(1)在pc機(jī)的windows操作系統(tǒng)及vc 6.0開發(fā)平臺(tái)上,實(shí)現(xiàn)嵌入式系統(tǒng)tcp/ip協(xié)議族的模擬器。該模擬器應(yīng)該能實(shí)現(xiàn)tcp/ip協(xié)議的基本功能,包括以太網(wǎng)驅(qū)動(dòng)程序、arp、ip、udp、tcp等,并且實(shí)現(xiàn)的arp、ip、udp、tcp層的程序應(yīng)該通用于各種嵌入式系統(tǒng)并可移植。
(2)將該模擬器移植到omap開發(fā)平臺(tái),用其以太網(wǎng)卡的驅(qū)動(dòng)程序替換原模擬器的鏈路層程序。在ti提供的ccs平臺(tái)上最終實(shí)現(xiàn)基于omap的tcp/ip協(xié)議。
2 開發(fā)平臺(tái)
omap的多媒體開發(fā)平臺(tái)innovator主要由4個(gè)模塊組成:pm(處理器模塊)、im(接口模塊)、em(擴(kuò)展模塊)、bob(主連接板)。omap處理器在pm上,以太網(wǎng)卡在bob上?梢酝ㄟ^innovator上的omapl510芯片的arm教處理器對(duì)單片以太網(wǎng)控制器lan91c96的工作進(jìn)行控制,實(shí)現(xiàn)以太網(wǎng)幀的收發(fā),并通過ccs對(duì)程序調(diào)試。圖2為omap平臺(tái)調(diào)試環(huán)境。
3 在pc上實(shí)現(xiàn)協(xié)議的基本模塊
3.1 主要模塊介紹
(1)主流程:首先對(duì)tcp/ip協(xié)議族的各層初始化,成功則進(jìn)入主循環(huán)。主循環(huán)采用“中斷+循環(huán)”結(jié)構(gòu),簡(jiǎn)單且分層清晰。中斷作為應(yīng)用層發(fā)出命令,調(diào)用下層的入口。對(duì)于接收到的以太網(wǎng)幀,則由下到上分別進(jìn)入各層進(jìn)行處理!
(2)pc上的以太網(wǎng)層:在內(nèi)存中開辟接收和發(fā)送兩個(gè)相同的循環(huán)緩沖區(qū),用于存放接收和發(fā)送的以太網(wǎng)幀。winpcap軟件是基于windows平臺(tái)的一個(gè)網(wǎng)絡(luò)包工具,它提供一個(gè)系統(tǒng)內(nèi)核級(jí)的動(dòng)態(tài)鏈接庫packet.dll作為標(biāo)準(zhǔn)的api,具有獨(dú)立于操作系統(tǒng)的編程接口。利用其提供的api可直接聯(lián)系網(wǎng)卡驅(qū)動(dòng)與已定義的循環(huán)緩沖區(qū),將緩沖區(qū)中的數(shù)據(jù)發(fā)出,并將網(wǎng)卡接收的數(shù)據(jù)存入緩沖區(qū)。
(3)arp層:在內(nèi)存中開辟一塊循環(huán)存儲(chǔ)區(qū)域用于存放已知的ip-mac對(duì)應(yīng)表。該表可以由上層舔加,在接收到arp應(yīng)答時(shí)會(huì)自動(dòng)添加,也可以由上層清空。處理arp層函數(shù)的過程為:根據(jù)以太網(wǎng)首部協(xié)議字段過濾出arp包,針對(duì)arp請(qǐng)求與arp應(yīng)答進(jìn)行不同的處理。應(yīng)答對(duì)方的請(qǐng)求,記錄對(duì)方的應(yīng)答。
(4)ip層:根據(jù)以太網(wǎng)首部的幀類型標(biāo)志判斷接收到的是不是ip包來處理ip層函數(shù)。如果是,則調(diào)用ip包的接收函數(shù),對(duì)收到的ip包用各種條件進(jìn)行過濾,對(duì)于滿足條件的包獲取其長度與指針信息供上層使用。本層另一個(gè)主要函數(shù)是ip包發(fā)送函數(shù),由上層調(diào)用進(jìn)行ip封裝。
ip的檢驗(yàn)和僅包括ip首部,長度一般為20字節(jié)(如果沒有選項(xiàng))。在接收端,丟棄檢驗(yàn)和不為0xffff的包;在發(fā)送端,將計(jì)算所得值的反碼填入檢驗(yàn)和字節(jié)。由于主機(jī)和網(wǎng)絡(luò)對(duì)數(shù)據(jù)中高低字節(jié)默認(rèn)的順序不同,在讀寫包中的16位、32位數(shù)據(jù)時(shí),應(yīng)該先進(jìn)行高低字節(jié)的交換。
(5)udp層:處理udp層函數(shù)應(yīng)根據(jù)ip首部的協(xié)議字段判斷是否udp包。如果是,則調(diào)用udp包接收函數(shù),用各種條件對(duì)其進(jìn)行
介紹了嵌入式系統(tǒng)tcp/ip的網(wǎng)絡(luò)層及運(yùn)動(dòng)層c代碼的開發(fā)過程,結(jié)合以太網(wǎng)控制器lan91c96實(shí)現(xiàn)其鏈路層,將通用的上層程序移植到0map平臺(tái)上,實(shí)現(xiàn)了0map平臺(tái)的底層tcp/ip協(xié)議。
隨著人們對(duì)智能化產(chǎn)品需求的增加,未來的嵌入式產(chǎn)品,包括各種家電、通信、pda、儀器儀表等設(shè)備正逐漸走向網(wǎng)絡(luò)化,以共享互聯(lián)網(wǎng)中龐大的信息資源,因而使嵌入式設(shè)備的網(wǎng)絡(luò)化開發(fā)有廣闊的市場(chǎng)前景。由于嵌入式硬件資源有限,而傳統(tǒng)的tcp/ip等網(wǎng)絡(luò)通信協(xié)議對(duì)計(jì)算機(jī)存儲(chǔ)器、運(yùn)算速度的要求較高,所以不能直接應(yīng)用。為此,必須開發(fā)一套適合嵌入式系統(tǒng)的、高度優(yōu)化的、最為精簡(jiǎn)的tcp/ip協(xié)議棧。
開放式多媒體應(yīng)用平臺(tái)omap(open multimedia apphcation platform)是美國德州儀器公司推出的高度集成的軟硬件平臺(tái)。omap具有獨(dú)特的雙芯結(jié)構(gòu),結(jié)合了dsp與risc內(nèi)核,可為無線多媒體設(shè)備提供獨(dú)一無二的性能和功耗優(yōu)勢(shì)。omap可連接十分豐富的外圍設(shè)備,包括usb、攝像頭、聲音設(shè)備、視頻設(shè)備、網(wǎng)絡(luò)設(shè)備等。omap擁有開放式體系結(jié)構(gòu),其應(yīng)用環(huán)境完全可編程。
軟件協(xié)議的設(shè)計(jì)與實(shí)現(xiàn)在很大程度上決定了通信終端的質(zhì)量;趏map的3g移動(dòng)終端軟件協(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ì)量將直接決定整個(gè)通信終端軟件系統(tǒng)的運(yùn)行質(zhì)量。因此,針對(duì)嵌入式系統(tǒng)聯(lián)網(wǎng)的發(fā)展方向,為omap系統(tǒng)其設(shè)計(jì)一套高效、簡(jiǎn)潔的tcp/ip協(xié)議,對(duì)其應(yīng)用具有十分重要的意義。
1 開發(fā)方案
pc上有功能強(qiáng)大的vc平臺(tái)和網(wǎng)絡(luò)分析工具(如sniffer)便于調(diào)試,其設(shè)計(jì)不針對(duì)任何一個(gè)嵌入式芯片,具有較好的通用性和可移植性。在pc機(jī)上實(shí)現(xiàn)的tcp/ip協(xié)議,除了以太網(wǎng)層要結(jié)合omap平臺(tái)的網(wǎng)卡硬件重寫外,基本上可以直接移植到omap平臺(tái)上,不需要再做大的改動(dòng)。作為一個(gè)通信程序,必然需要兩端程序同時(shí)調(diào)試,在pc機(jī)上編好的程序能對(duì)omap平臺(tái)上程序的調(diào)試提供可靠的幫助。因此,協(xié)議開發(fā)采用先模擬再移植、先整體再部分的設(shè)計(jì)思路,而協(xié)議各層實(shí)現(xiàn)的順序?yàn)樽韵露稀>唧w步驟是:
(1)在pc機(jī)的windows操作系統(tǒng)及vc 6.0開發(fā)平臺(tái)上,實(shí)現(xiàn)嵌入式系統(tǒng)tcp/ip協(xié)議族的模擬器。該模擬器應(yīng)該能實(shí)現(xiàn)tcp/ip協(xié)議的基本功能,包括以太網(wǎng)驅(qū)動(dòng)程序、arp、ip、udp、tcp等,并且實(shí)現(xiàn)的arp、ip、udp、tcp層的程序應(yīng)該通用于各種嵌入式系統(tǒng)并可移植。
(2)將該模擬器移植到omap開發(fā)平臺(tái),用其以太網(wǎng)卡的驅(qū)動(dòng)程序替換原模擬器的鏈路層程序。在ti提供的ccs平臺(tái)上最終實(shí)現(xiàn)基于omap的tcp/ip協(xié)議。
2 開發(fā)平臺(tái)
omap的多媒體開發(fā)平臺(tái)innovator主要由4個(gè)模塊組成:pm(處理器模塊)、im(接口模塊)、em(擴(kuò)展模塊)、bob(主連接板)。omap處理器在pm上,以太網(wǎng)卡在bob上。可以通過innovator上的omapl510芯片的arm教處理器對(duì)單片以太網(wǎng)控制器lan91c96的工作進(jìn)行控制,實(shí)現(xiàn)以太網(wǎng)幀的收發(fā),并通過ccs對(duì)程序調(diào)試。圖2為omap平臺(tái)調(diào)試環(huán)境。
3 在pc上實(shí)現(xiàn)協(xié)議的基本模塊
3.1 主要模塊介紹
(1)主流程:首先對(duì)tcp/ip協(xié)議族的各層初始化,成功則進(jìn)入主循環(huán)。主循環(huán)采用“中斷+循環(huán)”結(jié)構(gòu),簡(jiǎn)單且分層清晰。中斷作為應(yīng)用層發(fā)出命令,調(diào)用下層的入口。對(duì)于接收到的以太網(wǎng)幀,則由下到上分別進(jìn)入各層進(jìn)行處理。
(2)pc上的以太網(wǎng)層:在內(nèi)存中開辟接收和發(fā)送兩個(gè)相同的循環(huán)緩沖區(qū),用于存放接收和發(fā)送的以太網(wǎng)幀。winpcap軟件是基于windows平臺(tái)的一個(gè)網(wǎng)絡(luò)包工具,它提供一個(gè)系統(tǒng)內(nèi)核級(jí)的動(dòng)態(tài)鏈接庫packet.dll作為標(biāo)準(zhǔn)的api,具有獨(dú)立于操作系統(tǒng)的編程接口。利用其提供的api可直接聯(lián)系網(wǎng)卡驅(qū)動(dòng)與已定義的循環(huán)緩沖區(qū),將緩沖區(qū)中的數(shù)據(jù)發(fā)出,并將網(wǎng)卡接收的數(shù)據(jù)存入緩沖區(qū)。
(3)arp層:在內(nèi)存中開辟一塊循環(huán)存儲(chǔ)區(qū)域用于存放已知的ip-mac對(duì)應(yīng)表。該表可以由上層舔加,在接收到arp應(yīng)答時(shí)會(huì)自動(dòng)添加,也可以由上層清空。處理arp層函數(shù)的過程為:根據(jù)以太網(wǎng)首部協(xié)議字段過濾出arp包,針對(duì)arp請(qǐng)求與arp應(yīng)答進(jìn)行不同的處理。應(yīng)答對(duì)方的請(qǐng)求,記錄對(duì)方的應(yīng)答。
(4)ip層:根據(jù)以太網(wǎng)首部的幀類型標(biāo)志判斷接收到的是不是ip包來處理ip層函數(shù)。如果是,則調(diào)用ip包的接收函數(shù),對(duì)收到的ip包用各種條件進(jìn)行過濾,對(duì)于滿足條件的包獲取其長度與指針信息供上層使用。本層另一個(gè)主要函數(shù)是ip包發(fā)送函數(shù),由上層調(diào)用進(jìn)行ip封裝。
ip的檢驗(yàn)和僅包括ip首部,長度一般為20字節(jié)(如果沒有選項(xiàng))。在接收端,丟棄檢驗(yàn)和不為0xffff的包;在發(fā)送端,將計(jì)算所得值的反碼填入檢驗(yàn)和字節(jié)。由于主機(jī)和網(wǎng)絡(luò)對(duì)數(shù)據(jù)中高低字節(jié)默認(rèn)的順序不同,在讀寫包中的16位、32位數(shù)據(jù)時(shí),應(yīng)該先進(jìn)行高低字節(jié)的交換。
(5)udp層:處理udp層函數(shù)應(yīng)根據(jù)ip首部的協(xié)議字段判斷是否udp包。如果是,則調(diào)用udp包接收函數(shù),用各種條件對(duì)其進(jìn)行
熱門點(diǎn)擊
- Semtech推出集成IEEE1588 PT
- Linux串口通信編程(Linux Seri
- 采用開放式芯片協(xié)議(OCP)總線的跟蹤儀器與
- Fulcrum推出10-Gigabit以太網(wǎng)
- H.248協(xié)議在通信網(wǎng)絡(luò)中的應(yīng)用
- SiGe半導(dǎo)體推出SE4150L超小雙天線輸
- 4G系統(tǒng)三大關(guān)鍵技術(shù)探討
- 針對(duì)機(jī)箱內(nèi)通信應(yīng)用開發(fā)的網(wǎng)絡(luò)結(jié)構(gòu)---Rap
- 基于OMAP的嵌入式TCP/IP開
- LitePoint解密多種無線通訊標(biāo)準(zhǔn)的測(cè)試
推薦技術(shù)資料
- 高效率降壓 DC/DC 變換器
- 集成隔離電源 3kVRMS多
- 隔離式、雙輸入控制、高/低端半
- 隔離式、獨(dú)立雙通道柵極驅(qū)動(dòng)器
- Virtual Bench P
- 雙路輸出、數(shù)字、16 相控制器
- 多媒體協(xié)處理器SM501在嵌入式系統(tǒng)中的應(yīng)用
- 基于IEEE802.11b的EPA溫度變送器
- QUICCEngine新引擎推動(dòng)IP網(wǎng)絡(luò)革新
- SoC面世八年后的產(chǎn)業(yè)機(jī)遇
- MPC8xx系列處理器的嵌入式系統(tǒng)電源設(shè)計(jì)
- dsPIC及其在交流變頻調(diào)速中的應(yīng)用研究