嵌入式系统中Modbus/TCP 协议栈的设计和实现
2020-12-22柳青
机电产品开发与创新 2020年6期
柳 青
(北京电子科技职业学院, 北京 100176)
0 引言
随着工业物联网、制造智能化进程的推进,嵌入式设备之间能够实现简单、 可靠的通信成为自动化领域的实际需要。 Modbus/TCP 将Modbus 协议嵌入到TCP 协议的应用层,由于其具有开放的、标准的协议格式,广泛应用于工业通信。 而TCP/IP 协议结构庞大,嵌入式系统的存储计算资源有限,因此研究Modbus/TCP 在嵌入式系统上的设计方法很有必要。
渠薇等设计了基于W5500 的Modbus/TCP 服务器[1],这种方案需要采用专用的协议芯片完成TCP/IP 协议解析,不仅使电路设计复杂,而且受限于外围芯片与处理器的通信带宽,会影响系统的整体性能。刘大千等提出了一种μC / OS 实时操作系统、LWIP 轻型协议栈和MODBUS协议相结合的方法[2],这种方案需要对操作系统和协议栈进行移植,软件代码量较大,对系统的维护升级提出很大挑战。 综合以上研究,设计了一种直接运行于微处理器上的,精简的Modbus/TCP 协议栈,避免了设计专用电路和代码移植的工作,同时能够改善通信的实时性能。
1 Modbus /TCP 协议栈整体设计
Modbus/TCP 协议底层以TCP/IP 协议为基础,在桌面系统中,该协议由操作系统提供的套接字接口来实现,但是在嵌入式系统中,芯片驱动只包含最底层的以太网接收、发送数据的功能, 所以需要构建TCP/IP协议。 另外,由于以太网数据包中必须包含硬件MAC 地址,所以需要实现ARP 协议[3]。
设计的协议栈整体流程如图1 所示, 处理器不断从网卡读取数据包, 然后判断该数据包是ARP 数据还是IP 数据,如果是ARP 数据,则对该数据包进行地址解析;……
登录APP查看全文
