PROFI BUS-DP/MODBUS的网关结构设计
中央处理器模块除了实现对PROFIBUS-DP从站模块的配置和管理外,还要完成MODBUS协议的实现以及两种协议数据交换协议栈的实现。为了提高系统的抗干扰能力,和外界进行通信的部分需要和系统在物理接口上进行电气隔离,此处的3个通信接口都需要进行隔离。根据通信速度要求的不同,选择磁耦芯片模块完成PROFIBUS-DP通信的隔离兼物理层电平转换功能;用双通道磁耦隔离芯片来完成另外两路串行口通信的隔离。这两款芯片都采用了最新的基于芯片尺寸的变压器隔离技术的磁耦。和传统的光耦比较,其转换速度、瞬态共模抑制能力、功耗、尺寸及成本等方面均有很明显的优势。本文引用地址://m.amcfsurvey.com/article/181148.htm
3 系统的软件设计
3.1 软件总体结构设计
一般情况下,现场总线协议之间的转换器可分为物理层的中继器、MAC层的网桥及应用层的网关等几种形式。中继器方式需要更改底层硬件,网桥方式对应MAC层的协议转换复杂,而网关的形式则使得原有网段的协议不需做任何改变,实现起来最为简单。
本系统采用了网关形式,软件总体流程如图3所示,主要实现了PROFIBUS-DP协议芯片VPC3+C的驱动程序和MODBUS协议,同时在应用层实现了PROFIBUS-DP总线和MODBUS总线协议数据帧的转换。MODB-US协议只是定义了消息域的格局和内容的公共格式,具体的物理层及应用层可以由用户根据需要定义。本网关MODBUS通信部分物理层采用标准的RS485总线,MAC协议是由软件实现的。
CPU通过驱动VPC3+C来实现对PROFIBUS熔一DP通信过程的控制,包括通信接口检查、正常和发生故障情况下诊断数据的发送及数据交换等过程;通过MODBUS协议实现对下挂的输入/输出从站模块的查询操作;通过对输入/输出模块的应答帧(或通信超时)进行分析来判断模块的状态以及模块的通道状态;根据模块状态信息填充PROFIBUS-DP的诊断域的数据,并以此为依据来对网关状态(正常通信、报告错误或警告信息)进行控制。
3.2 网关协议栈设计
网关协议栈为MODBUS输入/输出模块和PROFI-BUS-DP通信的桥梁。协议栈采用分层结构:PROFIBUS-DP通信层、协议映射层和MODDBUs I/O通信层。协议栈结构及报文处理流程如图4所示。
(1)PROFIBUS-DP通信层
负责对VPC3+C通信状态的监控管理,按照一定的规则将PROFIBUS-DP总线通信收到的数据映射到CPU内部的存储器,供I/O通信层调用,完成输出数据的更新;把I/O通信层的输入数据按照一定的规则映射到CPU内部的寄存器,在适当的时候写入VPC3+C的输入数据缓冲区,以完成输入数据的更新。
评论