随着计算机在工业控制领域的广泛应用,控制局域网也深入应用到各种控制系统中。现行的控制系统往往是多机系统,即采用控制网络技术,将众多控制系统单机有机地连成一体,构成分布式控制系统。
目前我国较为流行的现场通信网络有RS232、RS485、HART、PROFIELBUS、CAN、LONWORKS等。由于LONWORKS现场总线在网络通信方面的突出优点:它的网络应用层采用"网络变量"这一全新概念,使复杂的网络通信程序设计变成了简单的"网络变量"定义和捆绑;它的网络物理层支持多种通信介质:双绞线、电力线、无线电、红外线、同轴电缆、光纤等,因此作为优秀的网络在国内各个领域的测控系统中广泛流行起来。RS485通信网络在控制系统中应用最为普及,因此设计一个适配器来实现RS485通信网络与LONWORKS现场总线的集成显得十分必要。
一、适配器的硬件设计
本适配器由LONWORKS控制模块和MCS51系列的AT89C2051单片机组成。其中LONWORKS控制模块用来完成LONWORKS现场总线的网络通信的管理;AT89C2051加上RS485接口芯片MAX1487用来实现RS485通信网络的链路和协议;单字节FIFO并口用作LONWORKS控制模块与AT89C2051之间的数据交换。如图1所示。
LONWORKS控制模块集成了3150神经元芯片、双绞线网络收发器、程序存储器等。它通过P1(18芯双排插针)与应用系统相连,通过P2(6芯单排插针)与现场总线网络相连。P1口直接与3150神经元芯片的
I/O、RESET和SERVICE管脚相连。
AT89C2051是一种内含2Byte Flash
Memory程序存储器的MCS51单片机。它采用20管脚封装,没有P0口和P2口,因而结构紧凑、体积较小。利用AT89C2051提供的UART控制器,外加MAX1487接口芯片,可以实现RS485通信功能。RS485的半双工通信方式的收发由P32脚来控制。
单字节FIFO并口则由两块74HC574和一块74HC74组成,其接口信号线定义如下:
AD0-AD7、BD0-BD7:八位数据总线。
AWR、BWR:数据输出至接口的写控制信号(接口输入),上升沿有效。
ARD、BRD:从接口输入数据的读控制信号(接口输入),低电平有效。
AINT、BINT:请求读接口中的数据至接口中的联络信号(接口输出),低电平有效。
AT89C2051单片机与单字节FIFO并口的A侧相连:LONWORKS控制模块与单字节FIFO并口的B侧相连。AT89C2051单片机向LONWORKS控制模块发送单个数据的过程为:1通过P10-P17把数据输出到数据总线AD0-AD7上2P35变高使AWR产生上升沿,把AD0-AD7上的数据选通输入到A1中锁存,并使BINT变低,请求LONWORKS控制模块接收数据;(3)LONWORKS控制模块的IO10收到BINT低电平请求信号后,使IO9变低控制BRD产生低电平,这一方面A1中锁存的数据选通输出到数据总线BD0-BD7上,另一方面使BINT变高,消除请求信号;(4)LONWORKS控制模块通过IO0-IO7读取BD0-BD7上数据后,令IO9变高,使BRD置高,释放数据总线BD0-BD7;(5)IO10变高控制BWR产生上升沿,使AINT变低,通知AT89C2051单片机可以继续发送数据;(6)AT89C2051单片机的INT1收到AINT低电平后,令P37变低把ARD置低,使AINT变高,消除请求信号;(7)P37变高,使ARD置高,释放数据总线AD0-AD7。
重复上述步骤,就能实现AT89C2051单片机到LONWORKS控制模块的多个数据传送。LONWORKS控制模块到AT89C2051单片机的数据传送原理同上,不再赘述。
二、适配器的软件设计
适配器的软件设计主要有AT89C2051单片机部分的RS485通信网络的链路控制和协议解释程序、单字节FIFO并口数据传输程序和LONWORKS控制模块部分的单字节FIFO并口数据传输程序。由于RS485通信网络的协议要根据不同的接入设备进行二次编程,所以适配器的软件设计核心为单字节FIFO并口数据传输程序。根据单字节FIFO并口的数据通信过程,数据传输软件主要由数据发送启动程序和数据接收/发送处理程序组成。数据发送启动程序是一个子程序,由主体程序调用执行;数据接收/发送处理程序对MCS51单片机来讲是一个INT1低电平触发的中断服务程序,而对3150神经元芯片来讲是一个IO10输入管脚变低事件驱动的任务。程序框图如图2所示。

图2 程序框图
从程序框图可以看出,数据的传送由数据发送启动程序和数据接收/发送处理程序配合完成,而数据发送标志这个公共参数是程序间进程协调的关键。数据发送标志由数据发送启动程序把数据发送到接口后置"1",由数据接收/发送处理程序收到对方接受应答信号后置"0"。当数据发送标志为"1"时,对数据发送启动程序来讲,表示还没有收到对方接受应答信号,不能进行数据的再次发送;而对数据接收/发送处理程序来讲,表示收到对方信号后要进入数据发送处理进程,把数据发送标志置"0",以允许数据发送启动程序发送新的数据。当数据发送标志为"0"时,对数据发送启动程序来讲,表示已收到对方应答信号,可以进行数据的再次发送,而对数据接收/发送处理程序来讲,表示收到对方信号后要进入数据接收处理进程,把从端口读出的数据放入数据接收区,并给对方发送回答信号,以允许对方再次发送数据。
三、结论
用单字节FIFO并口来实现LONWORKS控制模块和MCS51单片机之间的数据交换是构造LONWORKS现场总线与RS485通信网络适配器的关键。这种简单、可靠、实用的接口方法,可以推广到LONWORKS控制模块与其他计算机之间的并行数据通信中。特别是对已有的测控装置改造为LONWORKS现场总线节点,或测控功能比较复杂,需用高档CPU来进行数据处理的LONWORKS现场总线节点来讲,可以借用此方法。
|