APP下载

基于UART设备的现场总线通信协议*

2012-07-25王清珍邬宝寅

微处理机 2012年4期
关键词:发送数据令牌总线

王清珍,邬宝寅

(1.郑州科技学院信息科学与工程系,郑州450064;2.郑州科技学院机械工程系,郑州450064)

1 基于UART设备的现场总线应用分析

现代工业现场控制中,经常采用现场总线结构[1],将各个工业现场设备连接起来,实现设备之间的信息交换。单片机等带有UART结构的芯片可以用来制造工业现场控制器、智能仪表等设备,这些设备可以通过单片机自带的UART结构[2]来搭建现场总线,实现相互通信。UART设备广泛存在于单片机等可编程设备中,这种设备传输简单,具有较高的数据传输正确性和准确性,可以实现芯片之间半双工、双工异步通信。但仅靠芯片电平的UART设备传输距离较近,且只能实现主机、从机之间的通信,不能实现任意两个设备之间的通信,不完全符合现场总线之间的要求。

为实现现场总线功能,需要设计一套通信协议,实现任意两个UART设备之间的通信。并且需要采用RS485型电气接口,提高通信距离。RS485接口是一种工业电气标准,采用半双工方式通讯,可以实现较远距离通信和较高的传输速度,抗干扰能力强。该设计将UART设备与RS485接口结合起来,借助相应的通信软件,可以构建一种现场总线,用于工业现场设备的通讯。

2 硬件结构设计

在工业现场的可编程控制系统中,实现无主机的多机通信,每一个模块本身在系统中既是一个主控模块,相对于另一个模块来说又是从模块。模块与模块之间采用RS485工业现场总线通信[3],因此在各模块的串行通信端口必须增加电平转换器。每个模块采用以单片机为中心构成的嵌入式控制模块,通过串口进行信息传输,通过接口芯片MAX487挂载在RS485现场总线上。各模块通过本文设计的协议在RS485总线上进行稳定的数据传输,在整个总线上最多可以接入255个模块。系统的总线硬件结构如图1所示。

图1 总线硬件结构

3 通信协议软件设计

该通信协议的设计借助了令牌环[4]原理。挂载在总线上的每一个设备,都有唯一的一个地址,并存储有下位设备的地址。总线上的设备常态下处于从控状态,可以接收。拥有令牌标志的设备处于主控状态,可以向需要传送数据的目标设备发送数据,完毕之后将令牌标志传送给下位设备。这样可以保证在任一时刻只有一个设备具有数据发送权,而数据发送权在总线上所有的设备之间循环,使每一个都有向目标设备发送数据的机会。

信息传输过程中需要设置一系列的变量和常数。相互通讯的设备之间所传送的内容有指令和数据两种情况:所传输的是指令则第9位为1,是数据则第9位为0。传输指令和标志位的内容如表1、表2所示。通信软件分从控模式和主控模式两种情况。

表1 控制字与应答字分配表

表2 标志位含义解析表

3.1 从控模式

从控模式下设备处于接收状态,可以通过UART中断运行程序,对接收到的数据做出一系列判断。接收到的内容有两种可能,指令或数据,通过串行数据的第九位进行分辨,第九位为1表示指令,为0表示数据。

程序流程图如图2所示,接收到的内容若为指令,通过识别判断指令的内容,结合相应标志位做出动作。在初始状态下,作为数据接收方,若从控模式设备接收到寻址指令,且指令地址与本地地址相一致,则将地址匹配标志位置位;若接收到数据开始发送指令,且地址已经匹配,则将sm2位清零,数据接收缓存区初始化,做好数据接收准备;若接收到数据传送结束指令,则将sm2位置位,地址匹配标志位复位,退出接收状态。若接收到授令牌指令,且地址已经匹配,则将令牌标志置位,开始运行主控模式下的数据发送操作。若接收的内容是数据,且数据允许接收位sm2为0,则将数据存入接收缓存区。

图2 从控模式程序流程图

从控模式设备每接收到一次有效指令,都要向主控模式设备做出相应应答,而总线上每次只有唯一的从控模式设备,可以作出应答。在接收和应答相切换时要转换MAX487芯片的收发状态。每一次接收都由中断触发,发送应答由中断关闭,可以节省CPU资源。

3.2 主控模式

当设备接收到有效的授令牌指令之后,转为主控模式,并运行相关程序段。程序流程图如图3所示。若主控设备有数据需要向目标设备发送,则按程序流程图所示过程,依次发送目标设备地址寻址指令,发送数据开始传送指令,连续发送数据,最后发送数据传送完毕指令;若主控设备没有数据需要发送或数据发送完毕,便需要将令牌标志传给下位机,依次发送下位机地址寻址指令和授令牌指令,退出主控模式。

图3 主控模式

主控设备每次发送指令之后,都需要等待相应的从控设备发出正确应答,才能开始下一条指令的发送。若在规定时间内没有收到正确的应答信号,则重复发送指令;当重复发送指令一定次数后还没有收到正确的应答信号,则认为目标设备不存在,将相应的错误标志位置位。

为了简化程序结构,主控模式运行中UART收发采用查询方式。

4 结束语

整个系统由若干个模块组成,模块之间通过RS485电气接口相连。在每个模块上设计人机操作界面,构建了系统后台数据库,编写了各个模块的数据采集和处理程序[5],建立了模块与模块之间的硬件电路,编写调试了各部分的软件代码,提供了实时数据显示。实现了各模块数据的自动采集功能,加工处理后的数据能自动存入后台数据库中。设计的无主机多机通信模型最多可以连接255个现场可编程控制模块,可以很方便地实现双向通信,在通讯协议的支持下系统能自动识别各个功能模块的功能。本系统结构较简单,功能较完善,具有一定的实用价值,可以满足集管分控可编程控制器的通信要求。

[1] 潘世永,郑萍,等.集散控制系统(DCS)的发展及展望[J].自动化与仪器仪表,2003(4):50-53.

[2] 王清珍.单片机原理及接口技术[M].大连:大连理工大学出版社,2009.

[3] 徐和飞,牛秦洲,等.基于MODBUS协议的开关量控制模块设计[J].自动化与仪表,2009(10):24-28.

[4] 季燏..基于逻辑令牌环的容错协议的研究与实现[J].学位论文,2007.

[5] 徐应跃,吴爱国,等.现场总线MAC层的分析[J].化工自化及仪表,2010(2):20-23.

猜你喜欢

发送数据令牌总线
称金块
基于路由和QoS令牌桶的集中式限速网关
一种车载自组织网络的媒体接入控制协议
带标记方式的CRDSA++协议性能分析*
动态令牌分配的TCSN多级令牌桶流量监管算法
一种基于CAN总线的误码测试方法
使用IPSec安全传输数据
基于主控同步的CAN总线多点实时数据采集技术
CAN总线并发通信时下位机应用软件设计
基于CAN总线的水下通信系统设计