LwIP协议栈开发嵌入式网络的三种方法分析

LwIP协议栈开发嵌入式网络的三种方法分析

ID:46284671

大小:67.00 KB

页数:3页

时间:2019-11-22

LwIP协议栈开发嵌入式网络的三种方法分析_第1页
LwIP协议栈开发嵌入式网络的三种方法分析_第2页
LwIP协议栈开发嵌入式网络的三种方法分析_第3页
资源描述:

《LwIP协议栈开发嵌入式网络的三种方法分析》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、LwIP协议栈开发嵌入式网络的三种方法分析LwIP协议栈开发嵌入式网络的三种方法分析摘要轻量级的TCP/IP协议栈LwIP,提供了三种应用程序设计方法,且很容易被移植到多任务的操作系统中。木文结合uC/OS-H这一实时操作系统,以建立TCP服务器端通信为例,分析三种方法以及Z间的关系,着重介绍基于rawAPT的应用程序设计。最后在ST公司STM32F107微处理器平台上验证,并给出了测试结果。关键词LwIP协议栈;uC/OS-II;嵌入式网络;STM32F1O7;随着嵌入式系统功能的多样化以及网络在各个领域的中的

2、广泛应用,具备网络功能的嵌入式设备拥有更高的使用价值和更强的通用性。然而人部分嵌入式设备使用经济型处理器,受内存和速度限制,资源有限,不需要也不可能完整实现所有的TCP/IP协议,有时只需要满足实际需求就行。LwTP是由瑞典计算机科学研究院开发的轻量型TCP/IP协议栈,其特点是保持了以太网的基木功能,通过优化减少了对存储资源的占用。臥IP是免费、开源的,任何人可以使用,能够在裸机的坏境卜.运行,当然设计的时候也考虑了将来的移植问题,可以很容易移植到多任务操作系统中。木文介绍了以ARM微处理器STM32F107和

3、PHY接UDP83848为平台,构建的嵌入式系统中,采用LwIP和嵌入式操作系统UC/OS-I1,使用协议栈提供的三种应用程序接口,实现嵌入式设备的网络通信功能。1LwIP和uC/OS-II介绍1.1LwIP协议栈LwIP协议是瑞士计算机科学院的AdamDunkels等开发的一套用于嵌入式系统的开放源代码TCP/IP协议栈。LwIP含义是lightweight(轻型)IP协议,在实现时保持了TCP协议的主要功能基础上减少对RAM的占用,一般它只需要几十K的RAM和40K左右的ROM就对以运行,这使LwIP协议栈很

4、适合在低端嵌入式系统中使用。LwIP协议栈的设计才用分层结构的思想,每一个协议都作为一个模块来实现,捉供一些与其它协议的接口函数。所有的TCP/IP协议栈都在一个进程当中,这样TCP/IP协议栈就和操作系统内核分开了。而应用程序既可以是单独的进程也可以驻留在TCP/IP进程小,它们之间利用ICP机制进行通讯。如果应用程序是单独的线程可以通过操作系统的邮箱、消息队列等,与协议栈进程通讯。如果应川程序驻留在协议栈进程屮,则应用程序可以通过内部凹调函数和协议栈进程通讯。1.2uC/OS-II实时操作系统uC/OS-II

5、是一个源码公开、对移植、对固化、可裁剪及占先式的实时多任务操作系统,是专门为嵌入式应用设计的实吋操作系统内核,已广泛的应用在各种嵌入式系统中。uC/OS-I1是多任务系统,内核负责管理各个任务,每个任务都有其优先级,UC/OS-1I扱多町以管理64个任务,其每个任务都拥有自己独立的堆栈。uC/OS-II提供了非常丰富的系统服务功能,比如信号量、消息邮箱、消息队列、事件标志、内存管理和时间管理等,这些功能可以帮助用户实现非常复杂的应用。1.3LwIP协议栈移植到uC/OS-IILwIP协议栈在设计的时候就考虑到了将

6、来的移植问题,因此把所有与硬件、操作系统、编译器有关的部分都全部独立起來,形成了一个操作系统模拟层。操作系统模拟层用进程间的信号量、邮箱机制处理通信问题,而PC/OS-TT是一个基于任务调度的嵌入式实时操作系统,因此移植LwIP协议栈到PC/OS-II,是很容易实现的。2LwIP开发嵌入式网络应用程序LwIP提供了三种应用程序接口:(1)低水平的,基于内核/回调函数的API(后面称RAWAPI)(2)高水平的,连续的API(后而称LwIPAPI)(3)BSD风格的套接字API(后而称BSDsocket)可以在协议

7、栈中通过对宏定义的不同配置,來决定使用哪种方式。其中BSDsocket方式不是很成熟,RAWAPI需要编写凹调函数,协议栈推荐使用LwIPAPI这种方式,但是三种方式到了底层都是通过回调函数实现的。本文直接从RAWAPT入手,以建立TCP服务器端通信为例,详述底层的调用,然后再讲述后而的两种是如何封装而成的。2.1基于RAWAPI的应用程序设计步骤使用RAWAPI进行TCP/IP编程,可以使应用程序的代码和协议栈的代码很好地结介起來。程序的执行机制是以回调函数为基础的事件驱动的,同时回调函数也是被TCP/IP代码

8、直接调用的,冋调函数、数据发送函数都需要自己编写。这种方式是唯一的一•种支持设备裸机运行,又可以完成网络通信完成系统功能。裸机运行实际相当于是一个线程,而协议栈代码和应用程序代码通过先后次序处理,完成数据流转。图1是使用RAWAPI方式,多任务系统实现TCP服务器端通信的步骤。图1RAWAPI方式应用程序设计LwTP协议栈中的tcp块结构有两种TCP_PCB和TCP_PC

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。