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

Modbus与TCPIP协议转换器的设计


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个字符时间的停顿后,标定了 此次消息帧传送的结束。一个新的消息可在此停顿后开 始。在接收的时候,为了尽可能地不丢帧、不出现帧错
TCP、IP、Etll咖et包头,逐层的向下传,最后把整合后的
数据通过DMA方式存放于以(ox4000或0】【4600)为起始 地址的缓冲区,作为数据包发送出去。在发送数据包的 过程中,要不断检测发送的状态,适时地进行重发(重发 次数设为6次)。此时,转换器作为主动连接端和主动断 开端。
应用程序调用发送函数
为了能跟上网络自动化的潮流而不失去竞争优势, 必须建立高效率的数据采集、生产监控、即时成本管理 的联网系统。本文介绍的这一款协议转换器,可以将多 个串口设备连接并能将串口数据流进行选择和处理,把 现有的RS一485接口的串行数据转化成遵循Modbus TCP协议的数据,这样就能将传统的串行数据送上流行
以太网协议不止一种,此转换器选用802.3。它的帧 结构如图2所示。物理信道上的收发操作均使用这个帧 格式。其中,前导序列、帧起始位、CRC校验由硬件自动 添加/删除,与上层软件无关。
在实际中,收到的数据包格式并不是802.3帧的真 子集,而是图3所示格式。8019自动添加了“接收状态、
目的MAc l源MAc l类型’rYPE/l数据域l填充
接收程序的流程如图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),等待主函数处理。这时, 触发接收函数读取数据。
(1)有奇偶校 验启始位1 2 3 4 5 6 7 8奇偶位停止位 (2)无奇偶校验 启始位1 2 3 4 5 6 7 8停止位停止位 Modbus使用“big—endiall”表示地址及数据项。即存 储或传送二进制数据时,最高位字节在最前面。
《电子技术应用》2006年第5期 万方数据
Modbus的数据模型基于一系列表,这一系列表具有
(2)网络层。通过IP协议可以使信息发送到相邻 的TCP/IP网络上的任一主机。其中,应该包含ARP地址 解析协议,实现从IP地址到数据链路物理地址的映象。
(3)传输层。传输层可以让网络程序通过自己定义 的通道、端口号等相应特性来收发数据。在本系统中,重 点放在了TCP数据报协议上。
(4)应用层。在本系统中,应用层对收到的数据和 要发送的数据进行Modbus与TCP/IP协议的转换。另 外,作为测试程序实现过HrI’IP协议。
本系统中,RS一485接口采用MAXl487芯片。
MAXl487是美国MAXIM公司产品,采用+5V DC供电, 使用于半双工通信,通信总线上最多可挂128个收发 器,满足分机负载要求。
2系统软件实现
软件设计大致分为三块:(I)仙C/0S—II实时操作系 统的ARM移植;(2)RTL 8019底层驱动程序;(3)TCP/ IP协议栈、串行数据的收发和协议转换。
行信号的编,解码。

RTL8019AS内部可以分为远程DMA接口、本地
DMA接口、MAC(介质访问控制)逻辑、数据编码解码逻 辑和其他端口。
1.2 LPC2214芯片介绍 LPC2214是基于支持实时仿真和跟踪的16/32位
ARM7TDMI—S CPU的微控制器,并带有256KB嵌入的高 速Flash存储器(该存储器可用作代码和数据的存储,并 且含有16KB的静态RAM,可以用作代码和/或数据的存 储,支持8位、16位和32位访问)。128位宽度的存储器
16bit
48bit
48bj£
16bjf
图3 RTL8019AS接收包帧结构
<=1500B 可选 32bjt
8019接收到数据 图5接收程序流程图
142 欢迎网上投稿www.aetnet.cn www.神tnet.com.cn 万方数据
《电子技术应用》2006年第5期
衢雏黥
程。只有在连接建立成功后,才能进行数据传输。反之, 终止连接,使用TCP连接中断过程关闭连接。
驱动程序屏蔽了底层硬件处理细节,同时向上层软 件提供硬件无其内部寄存器来实现的。因此定义二个宏: ReadFmmNet()和WIiteToNet().
发送数据包时,通过DMA写操作存入网卡芯片,并 给出发送缓冲区首地址(TPsR0、Ⅱ'SRl)和数据包长度 (TBCRO,TBCRl),启动发送命令(CR=0】【3E),RTL8019AS 会自动完成相应操作。接收数据包时,采用查询方式。 RTL8019AS收到物理信号后将其还原成数据,按指定格 式存放于芯片。
的Eth哪et,而无需过早淘汰原有设备,从而提高了现有
设备的利用率,节约了投资,还可在既有的网络基础上 简化布线复杂度。 1系统硬件实现
此款协议转换器的硬件框架如图l所示。 在此电路板上,U’C2214芯片作为CPU进行所有任 务的调度和收发控制;通过R11L8019AS网卡芯片,与以 太网通信;CPU的串行口通过485接口与遵循Modbus 协议的现场设备和控制器连在一起;应数据存储和处理 的要求,增加了外部存储器RAM和E2PROM。
图1硬件电路框架图
《电子技术应用》2006年第5期 万方数据
1.1 RTA8019AS以太网控制器 RTL8019AS是一种高度集成的8/16位ISA总线的
以太网控制芯片,集成了MAC和物理层的功能,可以方
便地设计基于ISA总线的系统。R,11L 8019芯片的主要功
能是在物理层进行以太数据包的收发,以及在链路层进
TCP连接以后,有二个通道进行数据传输,连接的 双方各占一个通道,被动连接端就可以进行有效数据的 接收了。
在数据发送完毕后,因为传输时是二个通道同时传 输,所以,断开连接是双方协商关断二个传输通道的过 程。流程与建立时类似。
发送程序流程如图6所示。首先根据协议转换要发 送的数据,进行相应的格式变换。然后适时加上相应的
关键词:Modbus协议TCP/IP协议ARM嵌入式协议转换
M0dbus协议是1978年由施奈德制定,应用于电子 控制器上的一种通用语言,实现控制器相互之间、控制 器经由网络(例如以太网)和其他设备之间的通信,支持 传统的RS一232,422/485设备和最新发展起来的以太网 设备。该协议定义了一个能被控制器识别的消息结构, 描述了控制器如何请求访问其他设备,如何回应来自其 他设备的请求,以及怎样侦测错误并记录,可用于总线 或者网络的互联,为客户机,服务器方式。
源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£
稳定性也是选择它的部分原因。 在斗C/OS—II系统中,每一个任务都是一个无限循
环,都有对应的数据结构。该数据结构记录了任务的五 种状态:休眠、就绪、运行、等待或挂起、被中断。通过任 务调度,各个任务在五个状态之间进行转换。最高优先 级的任务一旦就绪,就总能得到CPU的控制权;当一个 运行着的任务使一个比它优先级高的任务进入就绪态 后,当前任务的CPU使用权就被剥夺或被挂起,而高优 先级的任务立刻得到了CPU的控制权。 2.2网卡芯片的驱动程序
控制器能设置为两种传输模式(ASCII或RTU)中的 任何一种,在标准的Modbus网络中进行通信。本系统选 择RTU模式(其发送效率高)。使用RTU模式,消息发 送至少要以3.5个字符时间的停顿间隔开始。
当消息在标准的Modbus系列网络传输时,每个字 符或字节以如下方式发送(从左到右):最低有效位… 最高有效位。位的序列是:

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

EtIlemet包头添加

发送到8019发送缓冲区
图6发送程序流程图
流程与接收时类似,在此不做重述。 2.4基于Modbus协议的收发设计
Modbus是一个请求/应答协议,并且提供功能码规 定的服务。当在Mo曲us网络上通信时,Modbus协议决定 了每个控制器需要知道它们的设备地址,识别按地址发 来的消息,决定要产生何种行动。如果需要回应,控制器 将生成反馈信息并用Modbus协议发出。
相关主题