智汇工业-智慧工业、智能制造及工业智能、工业互联门户网站,专业的工业“互联网+”传媒

基于ARM9的UDP協議棧的設計與實現

來源:網絡

點擊:1390

A+ A-

所屬頻道:新聞中心

關鍵詞: ARM9,UDP協議棧

      為了滿足以太網通信過程中大數據量的快速傳輸的需求,往往可以犧牲一些可靠性換來高速的數據傳輸.根據方案,文中設計了一套基于YLP2440 的UDP 通信系統,實現了簡單實用的UDP 通信協議.首先介紹了系統整體硬件結構,然后完成了以太網通信系統軟件設計,以DM9000A 以太網卡驅動程序為基礎,通過裁剪移植TCP/ IP 協議棧,實現了系統數據的接收和發送.對系統UDP 和ARP 通信進行了測試,結果表明UDP 通信系統整體穩定可靠,并且系統開銷小.數據傳輸速度快,能夠滿足實際應用需求.

      0 引 言

      隨著嵌入式技術和網絡技術的迅速發展,以太網接口在嵌入式系統中的應用越來越廣泛.以太網通信速度快.通用,可直接與Internet 相連接,提供更大范圍的遠程訪問.目前在工控嵌入式領域,網絡通信通常采用UDP 和TCP 協議.UDP 與TCP 相比,UDP 使用非連接的.不可靠的通信方式,因此網絡傳輸速度快,實時性相對較好.文中設計實用S3C2440.以太網控制器DM9000 和經過自行裁剪的TCP / IP 協議棧,構成嵌入式系統的以太網接口,實現UDP 通信.

      1 系統的硬件介紹該系統采用優龍科技公司YLP2440 作為開發的硬件系統,YLP2440 采用三星S3C2440A 作為CPU,最高主頻400MHz,帶有64MB SDRAM 和64MB NANDFlash 的外部存儲器,有兩個五線異步串行口,波特率高達115200bps,一個10M / 100M DM900AEP 網絡接口卡,帶有連接和傳輸指示燈.DM9000A 是一個全集成.功能強大.性價比高的快速以太網MAC 控制器,它帶有一個通用處理接口.EEPROM 接口.10/ 100MPHY 和SRAM,采用單電源供電,可兼容3. 3V.5V 的IO 接口電平.DM9000A 同樣支持MII (Media IndependentInterface,介質無關接口),它包含一系列可被訪問控制的狀態寄存器,這些寄存器是字節對齊的,在硬件或者軟件復位時被設置成初始化.

      硬件框圖如圖1 所示.

    基于ARM9的UDP協議棧的設計與實現

      2 以太網軟件的設計

      2. 1 以太網卡控制器的初始化

      首先DM9000A 自檢,讀取DM9000 的生產廠家ID和設備ID 與已經設定好的ID 進行比對,判斷DM9000網卡是否存在,初始化DM9000A,它的過程就是適當配置DM9000A 寄存器的過程,具體過程分為以下幾個步驟:

     ?。?)啟動DM9000A,設置CPCR[REG_1E] = 0×1,使DM9000 的GPIO3 為輸出,GPR[REG_1F] =0×0,使DM9000 的GPIO3 輸出為低以激活內部PHY.延時2ms 以上以等待PHY 上電.

     ?。?)進行兩次軟復位,設置DM9000 為正常工作模式,根據芯片設計要求,要想使芯片在上電之后工作正常就要進行兩次軟復位,設置為NCR[REG_00] =0×01,NCR[REG_00] =0×00,這兩步操作進行兩次.

     ?。?) 清除各種狀態標志位和中斷標志位,NSR[REG_01] =0x2c,ISR[REG_FE] =0x3f.

      (4)設置接收和發送控制寄存器,并且設置FIFO的大小,RCR[REG_05] =0×39.TCR[REG_02] =0×00.FCTR[REG_09] =0×38.

      (5)設置板子自身的MAC 地址.

      (6)再一次清除各種狀態標志位和中斷標志位,NSR[REG_01] =0x2c,ISR[REG_FE] =0x3f.

      (7)設置中斷屏蔽寄存器,打開接收中斷,IMR[REG_FF] =0×81.

      當進行了以上步驟的設置之后,DM9000A 芯片就處于正常工作狀態了.在以后進行通信的過程中,如果發生異常引起芯片重啟,則再一次進行同樣的設置.

      2. 2 以太網卡數據的發送和接收

      DM9000A 發送數據采用的是循環查詢模式,接收數據采用的是中斷模式,DM9000 內部有0x3FF 大小的SRAM 用于接收和發送數據緩存.在發送或接收數據包之前,數據是暫存在這個SRAM 中的.當需要連續發送或接收數據時,需要分別把DM9000 寄存器MWCMD 或MRCMD 賦予數據端口,這樣就指定了SRAM 中的某個地址,并且在傳輸完一個數據后,指針會指向SRAM 中的下一個地址,從而完成了連續訪問數據的目的.但當發送或接收一個數據后, 指向SRAM 的數據指針不需要變化時,則要把MWCMDX 或MRCMDX 賦予數據端口 .

      發送數據比較簡單,接收數據就略顯復雜,因為它是有一定格式要求的.在接收到的一包數據中的首字節如果為0×01,則表示這是一個可以接收的數據包;如果為0×0,則表示沒有可接收的數據包.因此在讀取其他字節時,一定要先判斷首字節是否為0×01.數據包的第二個字節為數據包的一些信息,它的高字節的格式與DM9000 的寄存器RSR 完全一致.第三個和第四個字節為數據包的長度.后面的數據就是真正要接收的數據了.

      2. 2. 1 UDP 協議棧的裁剪實現

      在系統中主要使用UDP 通信,只需要實現ARP協議.IP 協議,對TCP/ IP 協議進行部分的實現.UDP協議通信(即用戶數據報協議)與TCP 一樣都是屬于傳輸層協議,位于IP(網際協議)協議的頂層.UDP 相對于TCP 是一種簡單協議,提供的是最少的服務,編寫的代碼量也小,所需的程序和內存空間少,運行速度快.ARP 為IP 地址對應的硬件地址之間提供動態映射,發送終端把以太網數據幀發送到位于同一局域網上的另一臺主機時,是根據48bit 的以太網地址來確定目的接口的.設備驅動程序從不檢查IP 數據報中的目的IP 地址.IP 協議是TCP/ IP 協議中最為核心的協議,它提供不可靠.無連接的數據報傳送服務 .

      2. 2. 2 數據的發送過程

      數據發送過程如圖2 所示.發送終端在第一次發送數據的時候,要知道接收端的IP 地址和端口號,還要得到對方的物理MAC 地址,因為兩個終端最后通信是通過尋找對方的MAC 地址來進行的,因此首先得通過ARP 協議,把對方的IP 地址轉換為MAC 地址,得到了物理地址之后才能通信.如果長時間不能得到這個物理地址,則只能說明請求失敗,需要重新發送ARP 請求,ARP 的封裝過程如圖3(b)所示.

    基于ARM9的UDP協議棧的設計與實現

    基于ARM9的UDP協議棧的設計與實現

      2. 2. 3 數據包的封裝過程

      UDP 協議數據包的封裝在運輸層進行,打好包的UDP 數據將送往網絡層進行IP 協議的打包,UDP 要完成進程到進程的通信,把報文交付給正確的進程.當進程有報文要通過UDP 發送時,它就把這個報文連同一對套接字地址以及數據長度傳遞給UDP.UDP 收到數據后就加上UDP 首部,也就是UDP 數據包的封裝如圖3(c)所示.然后UDP 就把該用戶數據包連同IP 加上自己首部,在協議字段使用值17,指出該數據是從UDP 協議來的,這個過程就是IP 數據包的封裝過程如圖3(a)所示.這個IP 數據包再傳遞給數據鏈路層.數據鏈路層收到IP 數據包之后,加上自己的首部(可能還有尾部),再傳遞給物理層.物理層把這些位編碼為電信號或者光信號,然后把它發送到遠程的機器.

      2. 2. 4 數據的接收

      系統接收數據采用的是中斷模式.當網卡接收到數據時,就觸發一個中斷,啟動中斷服務程序.在中斷服務程序中首先清除中斷標志位,以防在接收數據的時候再次引發中斷,然后判斷寄存器MRMDX 的值,確定網卡是否接收到了數據,如果接收到了數據就要進行數據處理,也就是對數據包的解封,得到應用程序發送來的數據,如果沒有得到數據則說明網卡初始化失敗,重新初始化網卡.中斷接收程序的流程圖如圖4所示.

    基于ARM9的UDP協議棧的設計與實現

      在接收到以太網數據幀中,首先判斷數據類型字段,如果是ARP 協議,則進入ARP 處理流程,如果是IP 協議,則進入IP 協議流程.ARP 協議處理過程:

      首先判斷ARP 包目的IP 地址是否與本地IP 地址一致,如果不一致,丟棄不處理;如果一致,再判斷ARP類型,操作類型字段為1 時表示ARP 請求,調用ARP發送函數發送ARP 響應包.操作類型字段為2 時,記錄下對方的MAC 地址,以后通信就是根據這個MAC傳送數據的.

      IP 協議處理過程如下所述:首先判斷IP 包目的IP地址是否與本地IP 一致,如果不一致,丟棄不處理,如果一致,則再判斷協議類型,是否為UDP 數據包,是就進入UDP 處理過程,不是就進入其他協議處理過程.

      3 實驗結果和分析

      3. 1 ARP 通信測試

      實驗中測試了ARP 請求和UDP 通信,設置ARM開發板的IP 地址為219. 243. 50. 187,MAC 地址為0×52,0×54,0x4c,0×38,0xf7,0×42,PC 機的IP 地址為219. 243. 50. 188,MAC 地址為0×00,0×23,0x5A,0×15,0×73,0xF4.經過測試當開板向PC 發送ARP 請求時,PC 能夠正確應答響應包,并且多次請求都能夠得到正確的響應,證明ARP 協議能夠穩定運行,實驗結果如圖5 所示.

    基于ARM9的UDP協議棧的設計與實現

      當開發板得到了PC 機的MAC 地址之后,就可以與它進行正常的UDP 通信了.在中斷程序之中判定協議類型,接收到的數據包是ARP 協議還是UDP 協議,當接收的是ARP 協議,則進行ARP 協議處理,得出圖5 的實驗結果,當得到的是UDP 協議,則進行UDP 協議處理,得出的實驗結果如圖6 所示.經過長時間的通信可以發現,傳輸的數據沒有出現誤碼,可以說明這種通信方式比較穩定可行.

    基于ARM9的UDP協議棧的設計與實現

      3. 2 UDP 通信測試

      在UDP 通信實驗中,設置兩個數據終端的IP 地址和通信端口分別為219.243.50.187:6000,219.243.50.186:10005,然后發送數據,用抓包工具sniffer 抓包的結果如圖6 所示.通過圖中結果可以看出,SrcIP 為219. 243. 50. 87,Src Port 為6000,DestIP 為219. 243.50. 186,Dst Port 為10005,這都與設置的相同.Protocol為0×800 表示為UDP 協議類型,而且能夠正確地接收到發送的數據,并且經過多次的實驗,結果都是正確的,這證明系統通信穩定可靠,通過移植的協議棧能夠正常的工作,達到了預期的目標.

      4 結束語

      文中實現了基于ARM9 和DM9000 芯片的UDP通信,成功地對TCP/ IP 協議棧裁剪移植實現UDP.ARP 等協議通信.詳細介紹了DM9000 網卡驅動程序過程,并且實現了網口接收發送數據的功能,通過對大量數據的傳輸實驗,證明了ARM9 和DM9000 構成的通信系統性能的穩定性.能夠較好地解決大量數據通過UDP 協議通信的問題.
     

    (審核編輯: 智匯李)

    聲明:除特別說明之外,新聞內容及圖片均來自網絡及各大主流媒體。版權歸原作者所有。如認為內容侵權,請聯系我們刪除。

    主站蜘蛛池模板: 南京货架|仓库货架|货架公司|仓储货架工厂批发定做-南京苏正科技实业公司 | 云南打砂机_昆明制砂机_云南砂石生产线_昆明洗砂机_昆明除尘设备_云南昆明滇重矿山机械设备有限公司 | 新中式家具,广东新中式家具,广州新中式家具,佛山新中式家具,顺德新中式家具,乐从新中式家具,新中式家具厂家直销--唐明雅居 | 耐磨工业软管,PTFE耐腐蚀软管,耐磨喷砂胶管,超耐磨软管厂家,漯河利通液压管利通科技-耐磨工业软管,PTFE耐腐蚀软管,耐磨喷砂胶管,超耐磨软管厂家,漯河利通液压管利通科技 | 绿化工程-绿化养护-园林设计-东莞市泉桦园林绿化有限公司 | 沈阳东鹰实业有限公司【官网】-聚氨酯清扫器-胶带输送机保护装置 | 自恢复保险丝_贴片保险丝_插件保险丝_力特保险丝_力特经销商_SMD贴片保险丝_一次性保险丝厂家—深圳市集电通实业有限公司 | 上海航空货运,上海空运,东方航空快递,机场物流,航空快运,上海东方航空托运公司 | 拉布机_全自动拉布机_全自动拉布机厂家-江苏拉布机械科技有限公司 | 消字号牙膏代加工|面膜代加工|凝胶贴牌|漱口水贴牌-南京三盾药业有限公司-消字号牙膏代加工|面膜代加工|凝胶贴牌|漱口水贴牌-南京三盾药业有限公司 | 小程序开发,网站建设,APP开发,商城系统开发,社区团购系统开发,区块链溯源,互联网资质办理-软多信息技术有限公司_河南软多信息技术有限公司 | 上海办公家具_高端实木办公家具_现代智能办公家具定制厂-上海迈亚家具有限公司 | 专业色素炭黑生产厂家,提供各种用途色素炭黑价格-枣庄鑫源化工 | 宣传片拍摄-宣传片制作-三维动画-企业视频广告报价-北京环宇影音 | 喷雾干燥机价格|小型喷雾干燥机|实验室喷雾干燥机厂家-那艾 | 山东中煤建设工程有限公司| 精品中文字幕在线观看,粉嫩av一区二区三区,最近中文字幕在线看免费视频,亚洲高清在线观看,日本一区二区视频手机免费看,国产黄色小视频,亚洲高清免费视频,国产精品一区二区欧美视频,亚洲人免费视频,亚洲视频在线观看免费,国产免费高清综合视频,中文字幕永久在线 | 爬架网@建筑爬架网@冲孔建筑爬架网片@工地冲孔建筑爬架网片@工地冲孔建筑爬架网片厂家@工地冲孔建筑爬架网片生产厂家-安平县诺德金属制品有限公司 | 立式加工中心_龙门加工中心_卧式加工中心-山东威达重工股份有限公司 | 永光机械-小型建筑机械领航者,公司专注于小型建筑、工程机械的研发与制造 | 湖南净声源环保科技有限公司是一家专业从事噪声治理和建筑声学设计生态环境综合治理服务的企业,专业从事株洲电梯隔音治理,湘潭中央空调降噪处理,衡阳邵阳冷却塔噪音治理,岳阳常德大型风机噪声隔音降噪,张家界空压机噪声治理,益阳配电房变压器噪声治理,专业郴州永州工厂企业车间噪声治理,怀化娄底专业机械设备减振降治理,武汉噪音治理隔音降噪公司,孝感噪音治理,立式球磨机的噪声控制,专业隔音降噪公司,、以及各类机械动力设备减振降噪噪声治理的公司,同时为客户提供咨询与解决方案 | 金酱酒_金酱酒代理加盟招商_OEM贴牌企业定制! – 金酱酒代理加盟!茅台镇较早的酿酒烧坊,年产优质酱香白酒5000余吨,仁怀市十强白酒企业,主营主品:金酱酒、金酱陈香酒、酱香老酒等系列品牌产品 | 拉丝机_拔丝机_拉丝设备_丝网机械 - 安平县泰煌拉丝机厂家 | 监控工程,安防监控公司,北京监控安装,北京安装监控,安装摄像头,北京监控维保,监控施工,北京监控维修,监控弱电工程,监控器安装,监控维护保养,监控工程设计,北京监控设备维修,监控报警安装,北京北方合力科技有限公司 | 实验升降炉-箱式管式炉- 台车真空炉-熔块旋转炉-推板隧道窑-洛阳鲁威窑炉有限公司 | 微型电磁阀_隔膜泵_活塞泵_微型水泵_微型真空泵_微型气泵【东莞市宗旨电子科技有限公司】 | 青浦区摄像头安装/青浦区无线网络覆盖/青浦区网络调试公司/青浦区IT外包公司/金山区网络维护公司/金山区防火墙调试公司 | 远红外桑拿房-江苏侨达健康科技有限公司| 泡沫混凝土垫层填充厂家,发泡混凝土垫层填充,轻质混凝土垫层填充厂家,深圳市鸿奥建材发展有限公司 | 聚丙烯酰胺,聚合氯化铝,重金属捕捉剂,污泥调理剂,活性氧化铝,生石灰,反渗透阻垢剂,工业葡萄糖,硫酸铝,果壳活性炭,柱状活性炭,蜂窝活性炭,石英砂,锰砂-北京雁归来环保科技有限公司-以真诚为立足之本,以质量为生存之本,愿与海内外同仁共创双赢。雁归来人一路走来,气贯长虹,勇锐盖过怯弱,进取压倒苟安!我们紧扣时代脉搏,专注水处理、继往开来! | 上海舞台灯光音响租赁搭建线阵_年会演出摇头光束面光灯出租_led电子显示屏出租-上海led大屏幕租赁 | 粮食烘干机|玉米烘干机|稻谷烘干机|小麦烘干机|大型连续烘干塔|500吨连续烘干塔|钢板仓|-郑州新光矿山机械制造有限公司 | 石家庄团建公司|石家庄拓展训练|石家庄拓展培训|石家庄公司团建|石家庄拓展公司-石家庄启聚团建公司 | 四川超声波清洗机厂家-旋转喷淋清洗机设备-成都鑫荣诚超声波科技有限公司 | 万博瑞升(天津)科技有限公司-管道应力|管道振动|脉动|CAE,CFD 弯箍机_钢筋弯箍机_全自动钢筋弯箍机_数控弯箍机-建科智能装备制造(天津)股份有限公司 | 履带吊租赁-履带吊出租-出租履带吊车-出租履带吊-吊车出租-履带吊出租公司 | 明基太阳能玻璃钢污水处理公司-设计研发全自动加药装置设备 | 扫路车_洗扫车_清扫车_道路清扫车_天锦洗扫车-程力专用汽车股份有限公司 | 泰州LOGO设计-品牌VI设计-泰州广告设计公司-大唐歌飞广告设计公司 | 纸箱抗压测定仪|电脑测控耐破度仪|电脑抗张试验仪|杭州华翰仪器百科 | 山东健泽医疗科技有限公司-官网_深呼吸训练器_肋骨固定板_放疗定位膜耗材生产厂家招商 |