找回密码
 注册会员
更新自动建库工具PCB Footprint Expert 2024.04 Pro / Library Expert 破解版

[嵌入式/ARM] 一种嵌入式系统UDPIP协议栈的优化设计

[复制链接]
admin 发表于 2013-3-24 04:37:03 | 显示全部楼层 |阅读模式

本文包含原理图、PCB、源代码、封装库、中英文PDF等资源

您需要 登录 才可以下载或查看,没有账号?注册会员

×
摘  要: 提出了一种简化高效的UDPIP协议栈的优化设计方法。从嵌入式系统所要求的高速传输效率出发,优化设计了协议栈的BUFFER管理系统、BSD接口、路由模块以及数据重组机制。从协议栈的可移植性出发,实现了UDPIP协议栈与标准ETH驱动的挂接,以及同基于其他物理介质的虚拟ETH驱动的挂接。与VXWORKS协议栈的性能对比结果表明,本协议栈具有高效率和低资源占有率,具有很大的实用价值。
关键词: UDPIP; 协议栈; 高效传输; ETH驱动挂接
    随着网络技术的发展,集成网络外设的嵌入式系统越来越多,对于目前大多数中低端的MCU来说,若运行较大型复杂网络协议栈,如VXWORKS、LINUX系统自带协议栈等,存在多种困难。由于上述协议栈均与各自操作系统绑定,需要同时移植相应操作系统(OS),另外对于一些低端MCU来说,其硬件限制也无法运行大型协议栈。本文在嵌入式系统中设计实现了一种简化的UDPIP协议栈,该协议栈运行占用资源少,数据传输效率高,便于移植,并且可以运行在无操作系统的微型嵌入式系统中。
1 设计原理及整体架构
     UDPIP协议栈对数据的处理过程,即对数据的发送和接收流程,主要完成对承载数据添加、剥离协议头的操作。在兼顾UDPIP协议栈功能的基础上,为了达到高效的目的,对协议栈的数据收发流程以及所涉及的重要数据结构进行优化。
 在数据发送流程,用户数据传入协议栈以及协议栈将数据递交给ETH控制器两个步骤耗时最多,尤其是大于MTU的数据。通过优化协议栈BUFFER结构以及协议栈与ETH驱动的挂接方式,改进了这两部分的效率;对于大于MTU数据的接收,需要进行重组,所涉及的定时机制以及重组数据的整合,是影响效率的关键所在,需对其进行重新设计。
     根据优化协议栈时流程简化、功能不简化的原则,设计开发了协议栈的控制模块,以支持属性设置,参数配置以及ETH设备的控制等功能。协议栈的整体架构如图1所示。
    2012110705102546817394.gif
   2 关键技术
2.1 BUFFER管理

     在数据收发过程中,内存分配、释放、拷贝是耗时最多的部分,尽可能减少内存操作,特别是减少数据在收发流程中的内存拷贝次数能大幅提高协议栈效率,合理的BUFFER池结构是实现高效协议栈的关键。为了配合设计流程的实现,便于协议栈数据BUFFER、系统BUFFER管理,提高协议栈数据传输效率,协议栈实现类LINUX系统中SLAB CACHE模式管理协议栈数据BUFFER和系统控制BUFFER。在系统初始化中分配大块内存,按照不同BUFFER SIZE建立CACHE,其拓扑结构如图2所示。
    2012110705102546817395.gif
       在数据发送流程中,应用程序通过BSD接口将数据传入UDPIP协议栈后,协议栈直接将其拷贝到协议栈BUFFER,若数据长度大于一个MTU,则分片后依次拷贝到多个协议栈BUFFER,相比于复杂协议栈,该协议栈在处理发送流程时,没有按照先加UDP头后分片的顺序,而是先将数据分片,之后在第一分片头添加UDP头,由此省去了一次内存拷贝。用户数据传入协议栈的示意图如图3所示。
    2012110705102548380396.gif
    在数据接收过程中,特有的BUFFER结构支持链表式数据重组,减少一次数据拷贝,有效地提高了数据的接收效率。从协议栈对数据的处理来讲,接收流程是发送流程的逆过程,即发送流程将用户数据传入协议栈(大于MTU要分片),添加UDP头,IP头以及ETH头,接收流程相反,首先对ETH提交上来的数据进行剥离ETH头,解析IP头(大于MTU的包完成重组),解析UDP头,最终提交给用户。
2.2 BSD接口实现
 从通用性考虑,简化的UDPIP协议栈实现BSD面向UDP协议的所有接口。BSD接口基于SOCKET与PORT管理本地资源,包括存储、分配、回收等操作。为了提高SOCKET和PORT资源较多时上述操作的执行效率,采用位图方式管理可用资源,以比特位的0和1状态标识资源是否可用,采用比特操作方式,实现对资源的分配和释放。在分配资源时,采用二分法查询可用资源,即遍历比特为0状态的位置(第几个比特),也就获取了可用资源的Index。该算法保证在资源较多时,查找可用资源耗时为常量且算法复杂度较低,同时也能够实现资源的重复利用。遍历查找方式如图4所示。
    2012110705102548380397.gif
*滑块验证:
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

QQ|手机版|MCU资讯论坛 ( 京ICP备18035221号-2 )|网站地图

GMT+8, 2024-12-25 13:46 , Processed in 0.054531 second(s), 10 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表