基于嵌入式OS的LwIP协议栈

嵌入式技术

1371人已加入

描述

PROFINET IO设备协议栈的基本实现思路

PROFINET IO协议的难点在于其协议状态机不是一个分层的上下层关系,而是一种复杂的关系,因为各个状态机都有可能有接口调用,耦合度很高,一口气完整实现协议栈难度很大。

PROFINET IO设备通信的一般过程

对于一个PROFINET IO设备来说,其实就是一种协议转换器,将连接的输入模块的数据,如AI、DI等,用PROFINET协议打包成PROFINET IO协议的字节流。将PROFINET IO协议中的字节流转换成输出模块的数据,转成DO、AO等。因此可以考虑从IO设备和IO控制器通信的角度去分解协议栈及其协议机组成。

通信协议

PROFINET IO设备协议栈实现简化思路

PROFINET IO设备的通信协议主要用于完成与IO控制器的通信,其中通信过程主要包含有:寻址流程、组态流程、数据交互流程和报警流程。如果说以上通信流程的每一个环节对应一种协议机,那么可以考虑用一种循序渐进的实现思路,考虑使用一种基本的代码框架来实现以上的流程,就可以满足大部分PROFINET IO设备的基本应用。

通信协议


基于LwIP的协议栈设计

设计通信协议栈程序,需要具备内存管理、任务管理、进程间通信、信号量、时钟、定时处理等功能,从头开始难度巨大,而且容易出错。因此在一个已有成熟的代码体系中做升级比较合适,LwIP框架体系就十分满足要求,正所谓站在巨人的肩膀上看得远。

通信协议

LwIP已经在arp.c中实现了数据链路层数据包的分发,因此只需在该文件中增加PROFIENT实时报文类型和LLDP报文类型的帧处理,保证实时数据优先处理,也就不需要另外设计一层映射协议机(LMPM)。

小结

一个基于嵌入式OS的LwIP协议栈采用分层架构,作为一款轻量级的TCPIP协议栈,不仅包括IP、UDP、ARP等协议,还实现了内存管理、数据包管理、时钟、定时等功能,简直就说居家旅行,开发新协议栈的第一选择。

审核编辑:黄飞

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分