APP下载

重复中断方式485方向控制方法

2018-04-26李永征范三龙包素丽

电气化铁道 2018年2期
关键词:字节中断串口

李永征,范三龙,张 林,包素丽



重复中断方式485方向控制方法

李永征,范三龙,张 林,包素丽

本文涉及一种重复中断方式RTS/485方向控制方法,可以达到精确控制485芯片通信发送方向的目的,而无需改变硬件设计,适用于中、高速485通信。

重复中断;485;控制

0 引言

随着电力系统自动化技术的不断发展及变配电所内智能设备的大量使用,智能设备及系统间的数据交换越来越重要,连接和管理各设备及系统间的数据通信接口成为了电力自动化系统不可或缺的重要部分。

RS-485串行接口是工业控制和电力系统自动化领域常用的低速长距离通信接口,其通信的可靠性至关重要[1,2]。

RS-485是在RS-232、RS-422基础上发展而来,采用差分信号负逻辑,+2 V~+6 V表示“0”,-6 V~-2V表示“1”。RS-485有两线制和四线制2种接线方式,四线制只能实现点对点通信,很少采用,多采用两线制接线方式。该接线方式为总线式拓朴结构,在同一总线上最多可以挂接32个节点。在RS-485通信网络中一般采用主从通信方式,即一个主机带多个从机。

RS-485有2根信号线,发送和接收共用A和B线,采用差分电平方式传输且允许在一条通信总线上挂接多个节点。由于RS-485的收与发共用2根线,必然要求各节点能够独立控制总线驱动器的关断和打开,确保不影响其他节点的正常通信,所以对于总线上的单个节点来说不能同时收和发,必须精确地控制总线芯片的收发使能信号,以切换收发方向。

对于总线型的485总线,485控制芯片的收发方向控制是一个需要解决的基本问题。目前,485控制芯片收发方向控制的主要方法有RTS信号延时控制、TX/DI信号反相后直接控制、专用硬件控制、485总线收发芯片自动方向控制等。其中,通过RTS信号延时控制是基于PC机的485接口设备的通行做法,传统设计中采用系统定时器控制,在发送空中断到来时,设定一个字节时间的定时器,在定时器时间到后,收回RTS信号。但类似Windows这种非实时操作系统,其内核时钟的最高分辨率为1 ms,定时器的精度为1~2 ms,在9 600波特率时,1个字节时间约为1 ms,实测显示定时器会导致MAX485的发送驱动器多打开1个字节以上的时间,在高速485终端间通信时将会产生问题。由于操作系统的时钟分辨率限制,延时控制的精度较低,在中高速485通信时不能满足要求。

为了解决既有设计中高速485通信时485控制芯片的收发方向精确控制问题,本文提出了一种新的控制方法。

1 方案实施

1.1 总体技术方案

(1)采用16C550兼容UART芯片。大量成熟的设计中采用16C550兼容UART芯片,如ST16C554。其具有以下特点:工业级,5 V或3.3 V供电,接收和发送16字节的FIFO,支持最高 1.5 Mbps速率;16C550兼容的寄存器集为4路独立UART通道,支持MODEM控制。

(2)采用MAX485总线收发芯片。

(3)采用FIFO中断方式发送。每次发送最多可向16C554写入16个字节,接收时,根据设定在连续接收1、2、4或14个字节时产生中断,或在接收的字节流停止约5个字节时产生中断。

(4)采用RTS信号反相后使能485发送,实现485收发方向控制。每路UART具有独立的RTS、DTR等MODEM控制管脚,其中RTS管脚反相后常用于485收发方向控制。

由于16C550兼容UART控制器未设置自动RTS控制,且在TSR(移位寄存器)空时不产生中断,给程序控制RTS带来很大困难。而使用重复中断方式或类似的实时轮询方式,通过主动检查TSR的空标志收回RTS信号,可以达到精确控制的目的。

通用RS-485串行通信接口的电气原理如图1所示。

图1 通用RS-485串行通信接口电气原理

本方法的优选方案为,A芯片采用ST16C554D芯片,该芯片是一款16C550、Windows操作系统兼容的UART控制芯片,具有4路独立的串口通道,每一路通道在线路侧只使用TX、RX、RTS信号,这3个信号在经过光耦T1-T3隔离后,连接MAX485芯片的DI、DE和RD管脚,其中RTS和DE之间经过反相器U4,MAX485芯片的DE和RE信号并接, MAX485工作在半双工模式;B中的总线收发芯片为MAX481或MAX483或MAX485或MAX487-MAX491,是常用的低功耗RS-485/RS-422总线收发器,具有独立的收发回路,支持半双工和全双工模式。

1.2 具体实施方式

重复中断方式485方向控制方法具体方案如下:芯片采用16C550兼容UART芯片,采用总线收发芯片,并采用FIFO中断方式发送;RTS信号反相后使能485发送,进行485收发方向控制,在每一帧串口数据发送前使能RTS,进而打开MAX485芯片的发送驱动器,接着开始发送过程;在发送结束后收回RTS信号,关闭MAX485芯片的发送驱动器,MAX485进入接收状态;在发送中断到来时,重复使能发送中断,并检测TSR的空标志,当TSR空标志产生后,收回RTS信号。

在初始状态,RTS信号无效,MAX485处于接收状态。当有数据需要发送时,首先使能RTS,将MAX485芯片置于发送状态,然后发送一帧数据,发送完成后,需及时收回(复位)RTS信号,并将MAX485芯片置于接收状态,以便接收对方的回应(如果未能及时收回RTS信号,当对方很快回应时,不能正确接收回应报文中的头部字节)。

图2为串口中断的处理流程图。

图2 串口中断处理流程

多串口卡共用一个中断信号,当中断信号发生时,CPU首先判断发生中断的串口,并获得串口号。然后读取相应串口的状态寄存器,判断是接收中断还是发送中断。如果是接收中断,读取接收数据,并保存到内存中的接收缓冲区;如果是发送中断,检查是否有数据发送,如果有则使能RTS信号,将MAX485芯片置于发送状态,然后向ST16C554D写入发送数据,等待下一次中断,如果没有数据发送,则检查TSR的空标志,如果不为空,则再次使能发送中断,等待下一次中断,如果为空,则复位(收回)RTS信号,将MAX485芯片置于接收状态,一帧发送过程结束。

2 本方案的有益效果

(1)本方案利用ST16C554D兼容UART芯片的发送中断使能特性,通过重复中断的方式,轮询TSR的空标志。由于中断处理的实时性,本方法可以精确控制RTS信号、MAX485的发送和接收状态切换时间。

(2)本方案适用于9 600波特率以上的中、高速485通信,可以在不改变现有硬件设计的基础上提高控制精度。

(3)采用通行硬件设计方案,无需更改现有硬件,只需在驱动软件上稍作修改,即可实现485控制芯片收发方向精确控制。本方法在牵引变电站自动化系统的通信装置中进行了试用,效果良好,具有一定的适用性及应用前景。

3 结语

综上所述技术属于工业控制和电力系统自动化技术领域,涉及一种重复中断方式RTS/485方向控制方法,成功解决了既有设计中高速485通信时485控制芯片的收发方向精确控制问题。本方法已成功申请并获得发明专利授权证书(专利授权号为:ZL 2012 1 0372192.X)。该方法已成功应用于铁路及城市轨道交通领域的新产品开发中,如微机通信管理装置、网络通信服务器等,使装置的通信传输能力及通信的可靠性得到有效提升。随着高速铁路及城市轨道交通的快速发展,本方案产品将拥有广阔的应用前景。

[1] 高志国. 基于RS-485总线信号的可靠性研究[J]. 信息技术,2011,47(2):42-44.

[2] 田伟. RS-485总线分支线短路故障检测技术[J]. 微电子学与计算机,2011,28(4):176-179.

The paper relates in a type of repeated interruption mode RTS/485 directional control method, which is able to realize the purpose of accurate control of 485 communication direction without requirements of changing the design of hardware; it is applicable to medium and high speed 485 communication.

Repeated interruption; 485; control

U224.9

B

1007-936X(2018)02-0091-03

2017-06-19

10.19587/j.cnki.1007-936x.2018.02.024

李永征.南京国电南自轨道交通工程有限公司,高级工程师,研究方向为轨道交通变电站自动化;范三龙,包素丽.南京国电南自轨道交通工程有限公司,高级工程师;张 林.南京国电南自轨道交通工程有限公司,工程师。

猜你喜欢

字节中断串口
No.8 字节跳动将推出独立出口电商APP
浅谈AB PLC串口跟RFID传感器的通讯应用
No.10 “字节跳动手机”要来了?
简谈MC7字节码
跟踪导练(二)(5)
千里移防,卫勤保障不中断
数字电源内部数据传输的串口通信方法实现
USB接口的多串口数据并行接收方法探索
基于蓝牙串口适配器的GPS接收机与AutoCAD的实时无线通信
AT89C51与中断有关的寄存器功能表解