论文研究-基于OMAP-L137的LwIP网络协议栈的实现 .pdf

所需积分/C币:7 2019-08-16 09:27:43 314KB .PDF
7
收藏 收藏
举报

基于OMAP-L137的LwIP网络协议栈的实现,刘文起,李绍胜,本文基于实际工程应用,在OMAP-L137平台上实现了网络功能的扩展。分别在有操作系统和无操作系统两种情况下,阐述了LwIP的实现过程。��
山国武获论文在丝 http:/www.paper.edu.cn OMAP-L137片上内置了个以太网介质访问控制器( Ethernet media Access Controller, EMAC),支持10100M全双工或半双工的各种工作模式,支持M和RMI两和MAC接 口时序,由专用DMA自动亢成数据包的收发控制,并且在硬件上攴持数据流控制和服务质 量(QOS)。EMAC完成了OMAP-L137与外围PIY之间的数据流控制。另外, OMAP-LI37 75还内置了一个数据输入输出管理模块( Management Data Input/Output,MDO),用来配置 和监视外闱PHY设备。 在这里,我们选用了LAN8720这款以太网收发控制器作为物理层(PHY)设备。LAN8720 是一款支持RM∏接口的收发控制器,它兼容了IEEE8023-2005标准,并且支持仝双工的 10/100M收发模式,并且仅有长宽都仅有4mm,接线简单,功耗低,非常适合于嵌入式的 80应用场景。 2基于OMAP-L137的LwP实现 要实现LwP在 OMAP-L137上的移植,首先要完成底层驱动稈序的编写,实现以太网 数据包的收发。主要完成芯片底层寄存器的初始化操作,通过MDIO对LAN8720的初始化 等和硬件相关的配置工作,建立起底层的收发通路;使以太数据包可以顺利的通过 85LAN8720进入芯片内存或从芯片内存发送出去。具体的寄存器配置过程这里不再赘述,木 章主要阐述在无操作系统和uCOS两种情况下的LwP的实现 21无操作系统时的LwIP实现 在没有操作系统的情况下,LwP提供了基于回请函数的应用程序接口(API,这是一种 面向底层的、低水平的API(后面直接称 RAW API)。在这种情况下,程序的执行机制是以回 90调函数为基础的事件驱动的,同时叫调函数也是被TCPP代码直接调用的。每一个回调函 数都是传递一个当前连接UDP或TCP状态。用户可以为每一个连接编写单独的回调函数, 处理本连接的数据。卜面将以UDP接∏函数为例,说明这回调机制。 首宄通过 udp new(建立一个用于UDP通信的控制块,之后通过 udp bind(为此控制块 绑定本地的P和端口,还可以通过 udp connect()连接到远程主机。最后通过 udp recv(函数 95为此控制块指定一个接收回调函数。 当进行数据接收时,从底层驱动程序传递上来的UDP数据包,会在LwIP协议栈中分 层解包,并在UDP层进行控制块的査找,根据IP和端口最终找到上面建立的UDP控制块, 并会调用上面指定的回调函数,将接收到的数据传递给用户程序处理。 当进行数据发送时,用户程序可直接调用 udp sendo或 udp sendtoo将数据发送到LwP 100协议栈,冉由LwP按TCPP协议对数据进行分层打包,最终将打包完成的数据传递到底 层驱动程序并发送出去。 22uC/OST下的IwIP实现 当在应用中使用了uCOS操作系统时,IwP所有的数据处理工作均由一个进程 (TCPP进稈)完成,并通过操作系统的进稈间通信机制(IPC),与用户进稈进行数据交互, 105完成数据的收发 在这种情况下,LwIP提供了一个移植接口,需要用户编程实现儿个与操作系统有关的 几个函数,这几个数主要是具体的IPC实现函数。 TCP/IP进程,通过这儿个数与用户 进程进行通信。为方便移植,LwP将这些函数集中在 sys arch这个文件中,具体的所需 要实现的函数如衣1所示 山国武获论文在丝 http:/www.paper.edu.cn 110 表1需要移植实现的两数 历数名 功能 sys initO 用操作系统函数完成接口的初始化 sys sem newO 创建一个信号量 sys scm frcco 释放一个信号量 sys scm S1 ional 发送一个信号量 sys arch scm waito 等待个信号量 sys mbox newO 创建个消息邮箱 sys mbox free( 释放一个消息邮箱 sys mbox posto 向消息邮箱发送消息 sys mbox tryposto 尝试向消息邮箱发送消息 sys arch mbox fetcho) 从消息邮箱里获取消息 sys arch mbox try fetcho 尝试从消息邮箱隼获取消息 sys arch timeouts( 梁作 定时梁 sys thread newo 创建线程 sys initO是在整个LwP系统接凵初始化的时候被调用的,其主要功能是完成系统接凵 所需参数的初始化工作,如内存块、定时列表、线程数等参数 与信号量相关的函数其说明和uCOS-I里关于信号量的定义是基本一样的,所以只需 把uCOS-∏中的信号量相关函数重新包装成上面的函数即可直接使用。这里我们直接使用 115uC/OSI里的事件结构体OSEⅤENT来定义LwP里的信号量结构 sys sem t LwP使用了消息邮箱(mbox)的方式在其线程之间缓冲并传递数据包。在字面上看来 消息邮箱和υC○S-Ⅱ里的消息邮箱是一样的,不过通过分析可以看出,LwIP的消息邮箱用 来在线程之间交互数据包,数据量大的线程有可能出现同一时刻其消息邮箱里的待处理数据 包有多个的情况。而uCOS-Ⅱ的消息邮箱在要么为空,要么只能有一个待处理数据在邮箱 120里,即邮箱最多只能存放个消息。从应用上看,LwP关于消息邮箱的需求,更像是uCOS-II 里的消息队列,以及先入先出的方式管理队列里的消息。基于以上考虑,我们使用了uC/OS-Il 的消息队列函数米包装实现LwP中的消息邮箱。 在IwIP与外界连接的线程中,都规定了一个线程的超时属性,可以无限等待,也可以 在一段时间后产生超时事件而结束等待。 sys arch timeouts就是一个管理这些超时属性的 125函数。它管理了一个系统超时结构体队列。这个函数的返回值是当前线程的所对应超时结构 体的指针,它是一个OS相关的函数,不需要用户程序去调用,只要实现与OS的接口即可。 LwP中的线程的概念与uCOSⅡ中的任务的概念是一致的,所以我们在实现时只要将 uC/OS-II的创建任务的函数按照LwP中的格式包装一下即可。LwP通过 sys thread newO 眄数,完成网络接口线程的创建,其中最核心的一个线程是cpip线程( tcpip thread),负 130贵处理所有的TCP或UDP数据包。用户可以调用LwIP的API最终调用到这个函数完成用 户线程的创建,用户线程可以用米实现TCP或UDP数据的收发等工作 23系统测试 在完成移植工作后,就可以对系统进行通信测试」。测试工作同样分有操作系统和无操 作系统两种情况进行。的主要内容包括:LwP的初始始化、创建TCP或UDP连接、ping 135命令测试、数据的收发等 4 山国武获论文在丝 http:/www.paper.edu.cn 通过仿真器,使处理器与PC相连,实吋监控程序的运行状态,测试LwIP是否可以正 确完成自身的初始化的工作,并创建连接;当完成初始化之后,通过ping命令,测试系统 的连通性,检査LwP是否已经可以处理数据;最后,通过向处理器发送数据或从处理器接 收数据,测试整个的收发过程,检验移植的成果 通过测试,在两种情况下,均可以ping通处理器,并可以进行数据收发。说明ARP、 ICMP、IP、TCP、UDP协议都已绎正确运行,并实现与用户稈序的良好交互,也说明LwIP 的移植工作是成功的。 结论 本文基于OMAP-L137平台,给出了LwP在有操作系统和无操作系统两种情况下的实 145现方法,从而使嵌入系统可以容易的扩展网络功能,为实现分布式、松耦合的组网应用打下 了基础。并且对系统的网络接口进行了测试,经过对整个平台的完整测试,这种网络功能的 实现,完全满足嵌入式系统对协议栈的要求,适合内部资源相对紧张的嵌入式应用场景,得 了不错的应用效果。同时,本文中的实现方法,对于其它平台的应用也有一定的借鉴意义 参考文献]( References) 150[1]杨晔实时操作系统uC)OS-Ⅱ卜TCPP协议栈的实现[]单片机与嵌入式系统应用,2003(7)80-83 [2] Douglas e comer.用TPP进行网际联一卷:原理、协议与结构[M].林堽,等译.北京:电子工业出 版社.2001 [3] Jean j labrosse.嵌入式实时操作系fμCoSⅢ(第2版)[M.邰贝贝等译.北京:北京航空航天大学 出版社.2003年5月 155|4」www.com 5 Texas Instruments. OMAP-L137 C6-Integra DSP+Arm Processor(Rev. D). August 2010 [6 Adam Dunkels. Design and Implementation of the LwlP TCP/IP Stack. Swedish Institute of Computer Science, 2001

...展开详情
试读 5P 论文研究-基于OMAP-L137的LwIP网络协议栈的实现 .pdf
立即下载 低至0.43元/次 身份认证VIP会员低至7折
一个资源只可评论一次,评论内容不能少于5个字
您会向同学/朋友/同事推荐我们的CSDN下载吗?
谢谢参与!您的真实评价是我们改进的动力~
关注 私信
上传资源赚钱or赚积分
最新推荐
论文研究-基于OMAP-L137的LwIP网络协议栈的实现 .pdf 7积分/C币 立即下载
1/5
论文研究-基于OMAP-L137的LwIP网络协议栈的实现 .pdf第1页

试读结束, 可继续读1页

7积分/C币 立即下载 >