当前位置:文档之家› Modbus与TCPIP协议转换器的设计

Modbus与TCPIP协议转换器的设计

的Eth哪et,而无需过早淘汰原有设备,从而提高了现有
设备的利用率,节约了投资,还可在既有的网络基础上 简化布线复杂度。 1系统硬件实现
此款协议转换器的硬件框架如图l所示。 在此电路板上,U’C2214芯片作为CPU进行所有任 务的调度和收发控制;通过R11L8019AS网卡芯片,与以 太网通信;CPU的串行口通过485接口与遵循Modbus 协议的现场设备和控制器连在一起;应数据存储和处理 的要求,增加了外部存储器RAM和E2PROM。
接口和独特的加速结构使32位代码能够在最大时钟速 率下运行。对代码规模有严格控制的应用,可使用16位 码umb模式将代码规模降低30%以上,而性能的损失却
很小。由于内置了宽范围的串行通信接口,使其非常适 合于通信网桥、协议转换器、嵌入式软modem以及其它
各种类型的应用。 1.3 MAXl487芯片介绍
TCP、IP、Etll咖et包头,逐层的向下传,最后把整合后的
数据通过DMA方式存放于以(ox4000或0】【4600)为起始 地址的缓冲区,作为数据包发送出去。在发送数据包的 过程中,要不断检测发送的状态,适时地进行重发(重发 次数设为6次)。此时,转换器作为主动连接端和主动断 开端。
应用程序调用发送函数
稳定性也是选择它的部分原因。 在斗C/OS—II系统中,每一个任务都是一个无限循
环,都有对应的数据结构。该数据结构记录了任务的五 种状态:休眠、就绪、运行、等待或挂起、被中断。通过任 务调度,各个任务在五个状态之间进行转换。最高优先 级的任务一旦就绪,就总能得到CPU的控制权;当一个 运行着的任务使一个比它优先级高的任务进入就绪态 后,当前任务的CPU使用权就被剥夺或被挂起,而高优 先级的任务立刻得到了CPU的控制权。 2.2网卡芯片的驱动程序
Hale Waihona Puke Baidu
地址DA l地址sA l长度LEN
DATA
PAD
48bit
48b“
16bit
<=1500B 可选
图4 Rrlll8019AS发选包帧结构
2.3 TCP/IP协议栈设计 TCP/IP协议分为四层,一般底层包含高层。 (1)链路层。由控制同一物理网络上的不同机器间
数据传送的底层协议组成。前面介绍的基于8019的驱 动程序就是在该层实现的。
简言之,R,I'L8019AS完成数据包和电信号之间的相 互转换。以太网协议由芯片硬件自动完成,对程序员透 明。驱动程序有3种功能:芯片初始化、收包、发包。相 应定义了三个接口函数:InitNic(),Rec_Packet()和Send_ Packet()。
远端DMA指CPU接口侧,本地DMA指RTL8019AS 的硬件收发电路侧。RTL8019AS的本地DMA操作是由 控制器本身完成的,而远端DMA在无主处理器参与的 情况下,数据就能自动移到主处理器的内存中。
接收程序的流程如图5所示。ARM芯片不断查询 8019接收缓冲区是否有数据包存人。当接收到新的数据 包,首先对其前18字节进行分析,从而获得整个数据包 的有用信息。继而,读Ethemet包头(14字节);如是ARP 包(NextProtocol=0】【0806),则根据其包头(28字节)信息 进行相应的操作;如是IP包(NextProtocol=0】【0800),则根 据其包头(20字节)信息进入下一层分析,如果是ICMP 操作(NextPmtoc01=0】【01),则进一步分析是ICMP请求、 还是应答帧,然后做出相应操作(该转换器只实现了 Ping操作);如是TCP包(NextPIDtocol=0】【06),则加TCP 信号量进消息队列(OSQPost),等待主函数处理。这时, 触发接收函数读取数据。
源MAC 地址SA
类型哪E
,长度LEN
数据域 DATA
填充PAD
校验FCS
IcMP处理


TCP处理,数据分析

62bit
2bit
48bit
48bit
16bit
<=1500B DATA,J、于46B补O 32bit
图2 802.3帧结构
IP包头处理

ARP处理

Etllenlet包头处理

8bit
8bi£
关键词:Modbus协议TCP/IP协议ARM嵌入式协议转换
M0dbus协议是1978年由施奈德制定,应用于电子 控制器上的一种通用语言,实现控制器相互之间、控制 器经由网络(例如以太网)和其他设备之间的通信,支持 传统的RS一232,422/485设备和最新发展起来的以太网 设备。该协议定义了一个能被控制器识别的消息结构, 描述了控制器如何请求访问其他设备,如何回应来自其 他设备的请求,以及怎样侦测错误并记录,可用于总线 或者网络的互联,为客户机,服务器方式。

TCP发送处理整合程序
l IP包头添加l

EtIlemet包头添加

发送到8019发送缓冲区
图6发送程序流程图
流程与接收时类似,在此不做重述。 2.4基于Modbus协议的收发设计
Modbus是一个请求/应答协议,并且提供功能码规 定的服务。当在Mo曲us网络上通信时,Modbus协议决定 了每个控制器需要知道它们的设备地址,识别按地址发 来的消息,决定要产生何种行动。如果需要回应,控制器 将生成反馈信息并用Modbus协议发出。
TCP连接以后,有二个通道进行数据传输,连接的 双方各占一个通道,被动连接端就可以进行有效数据的 接收了。
在数据发送完毕后,因为传输时是二个通道同时传 输,所以,断开连接是双方协商关断二个传输通道的过 程。流程与建立时类似。
发送程序流程如图6所示。首先根据协议转换要发 送的数据,进行相应的格式变换。然后适时加上相应的
以太网协议不止一种,此转换器选用802.3。它的帧 结构如图2所示。物理信道上的收发操作均使用这个帧 格式。其中,前导序列、帧起始位、CRC校验由硬件自动 添加/删除,与上层软件无关。
在实际中,收到的数据包格式并不是802.3帧的真 子集,而是图3所示格式。8019自动添加了“接收状态、
目的MAc l源MAc l类型’rYPE/l数据域l填充
主i瓣骧焦
Modbus与TCP/IP协议转换器的设计
崔淼,郑雪峰 (北京科技大学计算机应用技术专业,北京100083)
摘要:近20多年来,随着通信技术、计算机技术和网络技术的迅速发展,工业自动化控制领域 也得到了迅速的促进和改革。如何将现代通信技术成功地应用到工业自动化控制领域,掀起了一股 激烈的讨论热潮。本人设计了一个协议转换器,使遵循Modbus协议的现场设备和控制器能够挂到以 太网上,完成与PC主机或者远距离的控制器之间的通信。
16bit
48bit
48bj£
16bjf
图3 RTL8019AS接收包帧结构
<=1500B 可选 32bjt
8019接收到数据 图5接收程序流程图
142 欢迎网上投稿www.aetnet.cn www.神tnet.com.cn 万方数据
《电子技术应用》2006年第5期
衢雏黥
程。只有在连接建立成功后,才能进行数据传输。反之, 终止连接,使用TCP连接中断过程关闭连接。
本系统中,RS一485接口采用MAXl487芯片。
MAXl487是美国MAXIM公司产品,采用+5V DC供电, 使用于半双工通信,通信总线上最多可挂128个收发 器,满足分机负载要求。
2系统软件实现
软件设计大致分为三块:(I)仙C/0S—II实时操作系 统的ARM移植;(2)RTL 8019底层驱动程序;(3)TCP/ IP协议栈、串行数据的收发和协议转换。
(1)有奇偶校 验启始位1 2 3 4 5 6 7 8奇偶位停止位 (2)无奇偶校验 启始位1 2 3 4 5 6 7 8停止位停止位 Modbus使用“big—endiall”表示地址及数据项。即存 储或传送二进制数据时,最高位字节在最前面。
《电子技术应用》2006年第5期 万方数据
Modbus的数据模型基于一系列表,这一系列表具有
为了能跟上网络自动化的潮流而不失去竞争优势, 必须建立高效率的数据采集、生产监控、即时成本管理 的联网系统。本文介绍的这一款协议转换器,可以将多 个串口设备连接并能将串口数据流进行选择和处理,把 现有的RS一485接口的串行数据转化成遵循Modbus TCP协议的数据,这样就能将传统的串行数据送上流行
控制器能设置为两种传输模式(ASCII或RTU)中的 任何一种,在标准的Modbus网络中进行通信。本系统选 择RTU模式(其发送效率高)。使用RTU模式,消息发 送至少要以3.5个字符时间的停顿间隔开始。
当消息在标准的Modbus系列网络传输时,每个字 符或字节以如下方式发送(从左到右):最低有效位… 最高有效位。位的序列是:
2.1 uC/OS—fI操作系统
为了能够对现场设备做出实时反馈,并且实现对多
本刊邮箱:eta@ncse.com.cn
14l
。露夔鬈焦
任务有较高要求的 性能,本系统选用灿C/OS—II多任务 实时操作系统。另外,有源代码、易移植性、可剥夺性、
成员(共4B)。这些数据成员的引入方便了驱动程序的设 计。发送数据包的格式是802.3帻的真子集。如图4所示。
区别的特征。主要的四个表是:
输入开关量
单个位,由I/O系统提供,只读
输出开关量
单个位,通过应用程序可变,读写
输入寄存器
16位量,由I/O系统提供,只读
输出寄存器
16位量,通过应用程序可变,读写
电路板上电后,ARM芯片的串行端口不断侦测网络
总线。当第一个域(地址域)接收到,对其进行解码,以
判断是否发给自己。如果地址符合,则接收此帧数据;反 之,则丢弃。当有至少3.5个字符时间的停顿后,标定了 此次消息帧传送的结束。一个新的消息可在此停顿后开 始。在接收的时候,为了尽可能地不丢帧、不出现帧错
行信号的编,解码。

RTL8019AS内部可以分为远程DMA接口、本地
DMA接口、MAC(介质访问控制)逻辑、数据编码解码逻 辑和其他端口。
1.2 LPC2214芯片介绍 LPC2214是基于支持实时仿真和跟踪的16/32位
ARM7TDMI—S CPU的微控制器,并带有256KB嵌入的高 速Flash存储器(该存储器可用作代码和数据的存储,并 且含有16KB的静态RAM,可以用作代码和/或数据的存 储,支持8位、16位和32位访问)。128位宽度的存储器
图1硬件电路框架图
《电子技术应用》2006年第5期 万方数据
1.1 RTA8019AS以太网控制器 RTL8019AS是一种高度集成的8/16位ISA总线的
以太网控制芯片,集成了MAC和物理层的功能,可以方
便地设计基于ISA总线的系统。R,11L 8019芯片的主要功
能是在物理层进行以太数据包的收发,以及在链路层进
TCP协议是面向连接的协议,每个连接都有4个标 志(服务器IP地址、服务器TCP端口、客户机IP地址、 客户机TCP端口)作为它的惟一标志。在进行数据传输 之前,服务器与客户机之间必须使用TCP连接的建立过
下一页指针、以太网帧长度(以字节为单位)”三个数据
用户应用程序
前导位 PR
帧起始 位SD
目的MAC 地址DA
(2)网络层。通过IP协议可以使信息发送到相邻 的TCP/IP网络上的任一主机。其中,应该包含ARP地址 解析协议,实现从IP地址到数据链路物理地址的映象。
(3)传输层。传输层可以让网络程序通过自己定义 的通道、端口号等相应特性来收发数据。在本系统中,重 点放在了TCP数据报协议上。
(4)应用层。在本系统中,应用层对收到的数据和 要发送的数据进行Modbus与TCP/IP协议的转换。另 外,作为测试程序实现过HrI’IP协议。
驱动程序屏蔽了底层硬件处理细节,同时向上层软 件提供硬件无关接口。对R11L8019AS的操作实际上是通 过读写其内部寄存器来实现的。因此定义二个宏: ReadFmmNet()和WIiteToNet().
发送数据包时,通过DMA写操作存入网卡芯片,并 给出发送缓冲区首地址(TPsR0、Ⅱ'SRl)和数据包长度 (TBCRO,TBCRl),启动发送命令(CR=0】【3E),RTL8019AS 会自动完成相应操作。接收数据包时,采用查询方式。 RTL8019AS收到物理信号后将其还原成数据,按指定格 式存放于芯片。
误,把字符之间的间隔时间限制调为略小于3.5个字符
时间(试验测得最佳状态时的取值)。 在向设备发送消息帧时,消息帧必须作为一连续的
相关主题