国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

基于OMAP的嵌入式TCP/IP開發

發布時間:2010-11-15 12:27    發布者:eetech
關鍵詞: OMAP , TCP , 開發 , 嵌入式
隨著人們對智能化產品需求的增加,未來的嵌入式產品,包括各種家電、通信、PDA、儀器儀表等設備正逐漸走向網絡化,以共享互聯網中龐大的信息資源,因此使嵌入式設備的網絡化開發有廣闊市場前景,由于嵌入式硬件資源有限,而傳統的TCP/IP等網絡通信協議對計算機存儲器、運算速度的要求較高,所以不能直接應用,為此,必須開發一套適合嵌入式系統的、高度優化的、最為精簡的TCP/IP協議棧。

開放式多媒體應用平臺OMAP(Open Multimedia Application Platform)是美國德州儀器公司推出的高度集成的軟硬件平臺。OMAP具有獨特的雙芯結構,結合了DSP與RISC內核,可為無線多媒體設備提供獨一無二的性能和功耗優勢,OMAP可連接十分豐富的外圍設備,包括USB、攝像頭、聲音設備、視頻設備、網絡設備等,OMAP擁有開放式體系結構,其應用環境完全可編程。

軟件協議的設計與實現在很大深度上決定了通信終端的質量,基于OMAP的3G移動終端軟件協議結構由信令協議棧和應用業務協議棧組成,如圖1所示,TCP/IP協議棧位于應用業務協議棧的底層,為上層的H.323協議棧提供基礎與服務,其性能質量將直接決定整個通信終端軟件系統的運行質量。因此,針對嵌入式系統聯網的發展方向,為OMAP系統其設計一套高效、簡潔的TCP/IP協議,對其應用具有十分重要的意義。






1 開發方案

PC上有功能強大的VC平臺和網絡分析工具(如Sniffer)便于調試,其設計不針對任何一個嵌入式芯片,具有較好的通用性和可移植性,在PC機上實現的TCP/IP協議,除了以太網層要結合OMAP平臺的網卡硬件重寫外,基本上可以直接移植到OMAP平臺上,不需要再做大的改動,作為一個通信程序,必須需要兩端程序同時調試,在PC機上編好的程序能度OMAP平臺上程序的調試提供可靠的幫助,因此,協議開發采用先模擬再移植、先整體再部分的設計思路,而協議各層實現的順序為自下而上。具體步驟是:

(1)在PC機上的Windows操作系統及VC6.0開發平臺上,實現嵌入式系統TCP/IP協議族的模擬器,該模擬器應該能實現TCP/IP協議的基本功能,包括以太網驅動程序、ARP、IP、UDP、TCP等,并且實現的ARP、IP、UDP、TCP層的程序應該通用于各嵌入式系統并可移植。

(2)將該模擬器移植到OMAP開發平臺,用其以太網卡的驅動程序替換原模擬器的鏈路層程序,在TI提供的CCS平臺上最終實現基于OMAP的TCP/IP協議。

2 開發平臺

OMAP的多媒體開發平臺Innovator主要由4個模塊組成:PM(處理器模塊)、IM(接口模塊)、M(擴展模塊)、BOB(主連接板)。OMAP處理器在PM上,以太網卡在BOB上,可以通過Innovator上的OMAP1510芯片的ARM微處理器對單片以太網控制器LAN91C96的工作進行控制,實現以太網幀的收發,并通過CCS對程序調試,圖2為OMAP平臺調試環境。









3 在PC上實現協議的基本模塊

3.1 主要模塊介紹

(1)主流程:首先對TCP/IP協議族的各層初始化,成功則進入主循環,主循環采用"中斷+循環)"結構,簡單且分層清晰,中斷作為應用層發出命令,調用下層的入口。對于接收到的以太網幀,則由下到上分別進入各層進行處理。協議實現主流程如圖3所示。








(2)PC上的以太網層:在內存中開辟接收和發送兩個相同的循環緩沖區,用于存放接收和發送的以太網幀。Winpcap軟件是基于Windows平臺的一個網絡包工具,它提供一個系統內核級的動態鏈接庫Packet.dll作為標準的API,具有獨立于操作系統的編程接口。利用其提供的API可直接聯系網卡驅動與已定義的循環緩沖區,將緩沖區中的數據發出,并將網卡接收的數據存入緩沖區。

(3)ARP層,在內存中開辟一塊循環存儲區域用于存放已知的IP-MAC對應表,該表可以由上層添加,在接收到ARP應答時會自動添加,也可以上層清空。處理ARP層函數的過程中:根據以太網首部協議字段過濾出ARP包,針對ARP請求與ARP應答進行不同的處理,應答對方的請求,記錄對方的應答。

(4)IP層:根據以太網首部的幀類型標注判斷接收到的是不是IP包來處理IP層函數,如果是:則調用IP包的接收函數,對給收到的IP包用各種條件進行過濾,對于滿足條件的包獲取其長度與指針信息供上層使用。本層另一個主要函數是IP包發送函數,由上層調用進行IP封裝。

IP的檢驗和僅包括IP首部,長度一般為20字節(如果沒有選項)。在接收端,丟棄檢驗和不為OxFFFF的包,在發送端,將計算所得值的反碼填入檢驗和字節,由于主機和網絡對數據中高低字節默認的順序不同,在讀寫包中的16、32數據時,應該先進行高低字節的交換。

(5)UDP層,處理UDP層函數應根據IP首部的協議字段判斷是否UDP包。如果是:則調用UDP包接收函數,用各種條件對其進行過濾,提出UDP數據及各種有用信息,根據端口號提交給應用進程處理,本層的另一個主要函數是UDP發送函數,實現封裝UDP包(包括載入UDP數據,計算并填入UDP首部信息),最后調用IP發送函數,較由IP層處理。

(6)TCP層:與UDP不同,TCP主機要進行數據通信之前,必須與對方建立連。與幾個主機通信,就要建立幾個連接。然而,若要知道接收到的TCP包屬于哪個連接且使得幾個不同的連接之間獨立工作、互不干擾,則需要定義TCP的控制模塊,這里用一個結構體數組實現,存放所有關于連接的信息。








?


處理TCP層函數,判斷接收包的類型,如果是TCP包,則調用TCP接收函數,TCP接收函數用指定條件進行過濾,找到該包所屬的連接或完成一個新連接的被動打開,根據TCP的狀態轉換則完成11種狀態的轉移,并且實現了多路數據同時、雙向的傳輸。

TCP的發送函數包括主動打開、主動關閉(由上層調用完成新連接的主動打開,或主動關閉一個已建立的連接)和發送控制包(用于TCP連接的建立與終止,會在TCP接收函數中調用,從而實現TCP的轉換)三個函數。

TCP層還實現了兩個定時器,TCP重傳定時器函數可提供服務可靠性的有效保障;TCP保活定時器能夠避免資源的浪費。

3.2 程序特點分析

(1)簡單性:4.4BSD-Lite版的完整TCP/IP內核實現大約有15 000行,而本程序源代碼約有1 400行,更適合嵌入式系統的應用。

(2)可重用性:本程序分層清晰。對于不同的嵌入式系統,可能使用的CPU和以太網卡不同,這就需要針對其特點的以太網層設計,而ARP、IP、UDP、TCP則不需要改動。

(3)可拓展性:TCP/IP協議是底層網絡協議,本程序留有很好的接口,可在其上構件更高層的網絡協議,包括H.323協議、ftp、telnet。

4 在OMAP平臺上的移植

4.1 單片以太網控制器LAN91C96

LAN91C96是SMSC公司生產的專門用于嵌入式產品的10Mbps以太網控制器,具有性能優良,功耗低及尺寸小的特點,如圖4所示。






6KB的RAM:用來存放數據包。

MMU:對RAM進行有效管理,為接收和發送包在RAM中分配存儲空間。
ARBITE:使MMU和RAM與CPU、CSMA很好地連接。

CSMA/CD模塊:集成了IEEE 802.3 MAC層協議,負責監聽網絡情況和地址過濾。若目的地址是LAN91C96的地址、廣播地址或多播地址,則接收此數據包,否則拋棄。

ENDEC:負責與10Mbps為以太網物理媒體的連接。

LAN91C96采用地址映射方式,通過訪問Innovator為的指定地址對其存儲器訪問。LAN91C96的寄存器在Innovator內存中的地址分配為:0x08000300-0x0800030F。寄存器共有4組(BANK0-BANK3),使用相同的地址,通過BANK_SELECT寄存器選擇。

4.2 移植過程

先實現該網卡芯片的驅動程序,再用它替換PC模擬器的以太網層,程序驅動主要包括以下三個部分:

(1)初始化:主要為Lan91C96的各寄存器填入正確的初始值使其正常工作。

(2)接收:如圖5所示,由CSMA(載波偵聽模塊)接收到符合地址要求的后,MMU(存儲器管理單元)為其請求在RAM中分配存儲空間并分配一個編號,DMA將其存入RAM。接著在接收數據的前面封裝STATUS的化COUNT字節信息,如果CRC檢測正確,則將其編號放入接收FIFO,如果接收FIFO不為空,則RCV_INT(接收中斷標識)被設置。檢查接收中斷寄存器狀態,如果就接收中斷,對應其編號,上層協議便可以取出數據了,取出后,將該數據編號從FIFO中清除。








狀態字可以從RCR寄存器中讀取,它反應了接收過程出現的各種措施,如CRC錯誤、接收幀過長等,數據包的編號從FIFO_PORTS寄存器中獲得,而數據指針可從POINTER寄存器中獲得,數據信息從DATA寄存器中得到,根據這些信息將接收數據包復制到CPU內存,供上層使用,接收函數的主要流程如圖6。








(3)發送:圖7描述了發送數據包FIFO中的排隊過程,首先MMU在RAM中分配一定字節的存儲空間,然后,將分配結果寄存器中的編號放入PNR寄存器,寫數據指針寄存器POINTER并將上層數據封裝后拷入DATA寄存器,根據其編號放入發送FIFO,排隊的包將自動發出,發出包的編號接著進入發送完成FIFO。如果發送成功,則存儲空間自動釋放;否則釋放存儲空間并將其重新排隊。








5 實驗結果

5.1 內存資源占用量

運行該TCP/IP協議棧需要3MB內存,而Innovator體32MB SDRAM 和32MB Flash,內存占用率為:3M/64M=4.7%,完全適用于嵌入式系統。

5.2 數據傳輸可靠性

TCP利用以下機制糾錯。數據的傳輸過程中的誤碼:檢驗和機制與重傳機制,數據的重復,在接收端會自動舍棄已經接收過的數據包,并且不發ACK,故不會發生一個數據包接收多次的情況,數據包的丟失,接收端在接收完一段數據后,會計算下一個預期數據的序號,如果不符合就不發ACK,從而導致發端重發,避免了數據包的丟失,經測試,在未發生擁塞情況下,傳輸的誤碼率幾乎為0。

5.3文件最大平均傳輸速率

下面就本程序所實現的利用TCP進行文件傳輸功能,給出不同情況下的最大傳輸速率,實驗環境為10Mbps以太網。

理想狀態下的理論最大吞吐量:假定發送方傳輸兩個背對背、滿長度的TCP數據,接收方為其發出兩個ACK,每包中用戶數據量為1460位,總數據量為1538位,故最大的用戶數據吞吐量為:







本實驗測得文件的平均傳輸速率隨著TCP連接數的增多有如圖8所示的曲線變化,前半段隨著連接數的增加成線性增長,后半段由于出現了網絡擁塞,整體的平均速率反而有所下降。








實驗結果與理論最大吞吐量有所差距,原因在于:

(1)理論上只是一種理想的狀態,現實中難以達到。

(2)受CPU處理速度及文件傳輸過程的讀、寫文件操作的限制。

(3)本程序采用的數據傳輸機制是當收到上一個包的ACK之后再發送下一個數據包,這樣避免了對接收數據的排序,提高了可靠性,但數據的傳輸速度會受到制約。
本文地址:http://www.qingdxww.cn/thread-39312-1-1.html     【打印本頁】

本站部分文章為轉載或網友發布,目的在于傳遞和分享信息,并不代表本網贊同其觀點和對其真實性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問題,我們將根據著作權人的要求,第一時間更正或刪除。
您需要登錄后才可以發表評論 登錄 | 立即注冊

廠商推薦

  • Microchip視頻專區
  • 我們是Microchip
  • 利用模擬開發工具生態系統進行安全電路設計
  • 更佳設計的解決方案——Microchip模擬開發生態系統
  • 深度體驗Microchip自動輔助駕駛應用方案——2025巡展開啟報名!
  • 貿澤電子(Mouser)專區

相關視頻

關于我們  -  服務條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯系我們
電子工程網 © 版權所有   京ICP備16069177號 | 京公網安備11010502021702
快速回復 返回頂部 返回列表
主站蜘蛛池模板: 欧美激情一二区 | 青青青视频免费线看 视频 青青青视频免费观看 | 日本色高清| 黄视频网站免费看 | 亚洲一级毛片免观看 | 欧美成人免费在线视频 | a久久久久一级毛片护士免费 | 国产精品福利影院 | 亚洲免费网站在线观看 | 男人天堂网在线播放 | 欧美一级黄色片免费看 | 国产成人永久在线播放 | 欧美香蕉视频 | 国产动漫在线 | 日韩一区二区三区免费 | 久久国产精品一国产精品金尊 | 久久综合免费视频 | 最新欧美在线 | 全彩acg★无翼乌火影忍者 | 国产永久在线 | 两个人免费视频看完整 | 日韩精品在线观看免费 | 成人黄色在线播放 | 免费观看国产精品视频 | 亚洲欧美日韩在线播放 | 女人18片毛片60分钟 | 一区二区三区四区亚洲 | 亚洲天堂男 | 手机看片国产永久1204 | 欧美一区二区三区不卡免费观看 | 五月婷婷激情综合网 | 青青青青青草 | 成人国产第一区在线观看 | 99久久精品男女性高爱 | 亚洲精品网址 | 国产成人欧美视频在线 | 久久国产经典 | 九九热精品视频在线观看 | 日韩 亚洲 制服 欧美 综合 | 中国一级特黄高清免费的大片 | 欧美 日韩 成人 |