Modbus通信协议的通信协议的FPGA实现实现
该设计基于Altera公司FPGA,首先设计了一个可以通用于Modbus主设备和从设备的Modbus协议接口,然后基
于该协议接口设计了一个通用的Modbus从设备协处理器,该接口也可以方便地用于主协议设备中。
O 引言
现场总线是一种应用于生产现场,在现场设备之间,现场设备与控制装置之间实现双向、串行、多节点数字通信的技术。
Modbus协议其节点安装数量非常多,安装的地区遍及世界各地。
今天的FPGA可包含内嵌乘法器、专用计算例程和片上RAM等,加上FPGA的并行性,其结果比最快的DSP芯片还要快上500
倍乃至更多。随着FPGA价格不断下降,甚至最小的器件都足以实现一个集成可选定制I/O功能的软处理器核。可见,FPGA
对嵌入控制应用越来越具有吸引力。
目前Modbus协议实现方式多为单片机和PLC,随着FPGA的广泛应用,研究Modbus现场总线的FPGA解决方案有很大的实用
价值。
1 Modbus协议简介
Modbus串行链路系统可以使用不同的物理接口(RS 485,RS 232),最常用的是RS 485两线制接口。为了提高通信模块在工
业应用中的抗干扰性和稳定性,接口芯片和FPGA核心模块之间应加入高速光耦进行隔离,总线两端处放置线路终端电阻,采
用屏蔽双绞线作为通信线等。
在串行链路上,Modbus RTU(Remote Terminal Unit)模式报文中每8个位字节含有两个4位十六进制字符,这种模式的主要优
点是较高的数据密度,在相同的波特率下比ASCII模式有更高的吞吐率。RTU模式每个字节(11位)的格式如图1所示,支持奇、
偶和无校验,使用无校验时要求2个停止位。Modbus RTU帧最大为256B,由发送设备将Modbus报文构造为带有已知起始和
结束标记的帧,报文帧由时长至少为3.5个字符时间的空闲间隔区分,整个报文帧必须以连续的字符流发送,如果两个字符
之间的空闲间隔大于1.5个字符时间,则报文帧被认为不完整被接收节点丢弃,如图1所示。
在应用层上,Modbus是一个请求/应答协议,并且提供功能码规定的服务。有三类Modbus功能码:公共码、用户定义码和
保留码,大多数情况下只用公共码,其主要包括比特(线圈)访问、16 b(寄存器)访问、文件记录访问、诊断和其他信息访问。
2 Modbus RTU通信协议接口设计
2.1 接口功能及模块划分
Modbus RTU接口框图及输入、输出引脚示意图如图2所示。
在某一确定的主时钟频率、通信波特率和奇偶校验方式下,通过设置CE_Modbus和R_Tn的状态,可以控制该接口模块处于接
收Modbus协议帧模式、发送Modbus协议帧模式或输入/输出寄存器操作模式,如表1所示。
评论1