基于FreeRTOS系统和LwIP协议栈的网络通讯.docVIP

基于FreeRTOS系统和LwIP协议栈的网络通讯.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于FreeRTOS系统和LwIP协议栈的网络通讯.doc

基于FreeRTOS系统和LwIP协议栈的网络通讯   摘 要 嵌入式设备常采用实时操作系统和网络协议栈的组合来实现网络通讯功能,本文基于FreeRTOS操作系统和LwIP协议栈为一款转发模块实现网络通讯功能。FreeRTOS和LwIP开源免费,移植简单,功能完善,配置灵活。本文介绍了FreeRTOS和LwIP的移植过程和配置方法,并给出了DHCP服务器和TCP协议的软件设计流程,验证了基于FreeRTOs和LwIP协议栈实现网络通讯的可行性。   【关键词】FreeRTOS LwIP 网络通讯 移植 TCP   当前主流的嵌入式网络设备所使用的操作系统有Linux、UCOSII、FreeRTOS、RTX等。Linux的网络协议栈完备,但内核移植裁剪较为复杂,开发难度较大;UCOSII参考资料多,但系统商用需付费;RTX(Keil开发)简单好用,自带RL_TCPnet协议栈,但是协议栈不开源,不便于调试和研究。本文基于FreeRTOS实时操作系统,采用第三方LwIP网络协议栈,实现网络通讯功能,为嵌入式网络设备提供了一种新的设计思路。   FreeRTOS具备良好的实时性、多任务功能,可移植裁剪,可灵活配置调度策略,RAM占用小,对系统资源要求低。最重要的是FreeRTOS完全开源免费,而且移植方法简单,在当前小型嵌入式操作系统市场使用率很高。LwIP是由瑞典计算机学院开发的一个开源的轻量级TCP/IP协议栈。LwIP的特点是在有无操作系统环境下都可以运行,提供完备的API接口,RAM消耗低。本文基于市面上的网络转发模块,进行FreeRTOS操作系统和LwIP协议栈的移植,并在移植好的工程上测试DHCP服务器、TCP通讯功能等,验证这种可靠实用的网络通讯解决方案。   1 硬件平台   本文采用的设备是一种能够将RS232串口数据转成网络数据的转发模块,模块的单片机采用ARM架构的STM32F429芯片,STM32F429基于Cortex-M4架构,具有浮点运算单元,2MB容量的FLASH,256KB的RAM,系统时钟频率能达到180MHz,外设丰富,最主要的是它具有以太网MAC接口,通过外接PHY芯片可以实现网络通讯功能。该模块的PHY芯片采用的是LAN8720,LAN8720是低功耗的10/100M以太网PHY芯片,支持通过RMII接口与以太网MAC层通信,内置10/100M全双工传输模块,支持HP Auto-MDIX自动翻转功能。转发模块网络部分硬件连接图如图1所示。   2 移植FreeRTOS操作系统   首先从官网下载FreeRTOS -8.2.3版本源码;然后在已有的工程模板(keil软件)上创建 FreeRTOS相关文件夹,添加源码文件到相应目录,添加后的工程目录如图2所示,红框内的文件就是添加的FreeRTOS源码,Source目录下主要是任务调度、消息队列、定时器等操作系统基本功能的实现,Ports目录下是操作系统与处理器平台架构相关的接口文件,Port.c是支持Cortex-M4架构的,Heap_4.c是一种动态内存使用方法。   FreeRTOSConfig.h是操作系统的配置文件,配置选项至关重要,决定了系统的功能和性能。移植后主要的配置功能有:使能抢占式调度器;系统主频 180MHz;系统时钟节拍 1KHz,即 1ms;系统最大优先级号;定义堆大小,用于动态内存申请,任务栈;定义系统可以使用信号量。除此之外,移植中需要注意的地方是要加入三个宏定义,将STM32F429原本的SVC_Handler,PendSV_Handler,SysTick_Handler中断函数定义为FreeRTOS内部定义的三个函数,因为FreeRTOS对这三个系统中断有特殊的处理过程。至此,FreeRTOS移植基本完成,可以在后续软件工程中使用创建线程,创建信号量、消息队列等API函数来实现任务间的调度和通信了。   3 移植LwIP协议栈   首先从官网下载LwIP-1.4.1源码,然后在软件工程中添加LwIP相关目录,工程结构如图3所示。LwIP_src目录下是LwIP源码,实现基本的LwIP协议功能。LwIP_port目录下的文件主要实现了LwIP协议栈与系统的接口,ethernetif.c文件实现LwIP协议和以太网驱动的接口,sys_arch.c文件(位于arch目录下)实现LwIP协议和操作系统的接口。   ethernetif.c主要功能是初始化 MAC 相关工作环境、初始化 DMA 描述符链表。实现LwIP最底层的发送和接收一帧数据的函数。   sys_arch.c文件包含了LwIP要用到的必要的基于FreeRTOS机制的函数,主要有创建线程函数sys_thread_new,创建信号量

文档评论(0)

heroliuguan + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:8073070133000003

1亿VIP精品文档

相关文档