CN102882754A - 重复中断方式485方向控制方法 - Google Patents
重复中断方式485方向控制方法 Download PDFInfo
- Publication number
- CN102882754A CN102882754A CN201210372192XA CN201210372192A CN102882754A CN 102882754 A CN102882754 A CN 102882754A CN 201210372192X A CN201210372192X A CN 201210372192XA CN 201210372192 A CN201210372192 A CN 201210372192A CN 102882754 A CN102882754 A CN 102882754A
- Authority
- CN
- China
- Prior art keywords
- chip
- rts
- max485
- control
- mode
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Communication Control (AREA)
Abstract
本发明涉及一种重复中断方式RTS/485方向控制方法,16550兼容UART控制芯片是PC机的标准串口控制器,也大量用于嵌入式***中,其RTS信号可用于485的收发方向控制,使用中断再生方式控制RTS管脚信号,及时收回485的发送使能信号,可以达到精确控制485发送方向的目的,而无需改动硬件设计,适用于中、高速485通信,对于低速485通信,仍然可以采用延时控制方式。
Description
技术领域
本发明属于工业控制和电力***自动化技术领域,涉及一种重复中断方式RTS/485方向控制方法。
背景技术
随着电力***自动化技术的不断发展, 变配电所内智能设备的大量使用,智能设备及***间的数据交换显得越来越重要,因此连接和管理各设备及***间的数据通信接口成了电力***自动化***的不可缺少的重要设备。
RS-485串行接口是工业控制和电力***自动化领域常用的低速长距离通信接口。
RS-485是从RS-232、RS-422基础上发展而来的。RS485采用差分信号负逻辑,+2V~+6V表示“0”,- 6V~- 2V表示“1”。RS485有两线制和四线制两种接线,四线制只能实现点对点的通信方式,现很少采用,现在多采用的是两线制接线方式,这种接线方式为总线式拓朴结构,在同一总线上最多可以挂接32个结点。在RS485通信网络中一般采用的是主从通信方式,即一个主机带多个从机。
RS-485 有2 根信号线:发送和接收都是A 和B,采用差分电平方式传输且允许在一条通讯总线上挂接多个节点。由于RS-485 的收与发是共用两根线,必然要求各个节点能够独立地控制总线驱动器关断或打开保证不会影响到其它节点的正常通讯,所以对于总线上的单个节点来说不能够同时收和发,必须精确的控制总线芯片的收发使能信号,切换收发方向。
对于总线型的485总线,485控制芯片的收发方向控制是一个需要解决的基本问题。目前,485收发方向控制的主要方法有RTS信号延时控制、TX/DI信号反相后直接控制、专用硬件控制、485总线收发芯片自动方向控制等。其中,通过RTS信号延时控制485的收发方向是基于PC机的485接口设备的通行做法,传统设计中产用的***定时器控制,在发送空中断到来时,设定一个字节时间的定时器,在定时器时间到后,收回RTS信号。但类似Windows这样的非实时操作***,其内核时钟的最高分辨率就是1ms,定时器的精度在1-2ms之间,在9600波特率时,1个字节时间约为1ms,实测定时器会导致MAX485的发送驱动器多打开1个字节以上的时间,在高速485终端间通信时会产生问题。由于操作***的时钟分辨率限制,延时控制的精度较低,在中高速度485通信时不能满足要求。
发明内容
本发明的目的是为了解决既有设计中,高速485通信时,485控制芯片的收发方向精确控制问题,提出了一种新的控制方法。
本发明的技术方案为:
1:采用16C550兼容UART芯片
大量成熟的设计中采用了16C550兼容UART芯片,如ST16C554。具有以下特点:工业级,5V或3.3V供电,16字节的接受和发送FIFO,支持最高1.5Mbps速率。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收发方向控制。在每一帧串口数据发送前使能RTS,进而打开MAX485芯片的发送驱动器。接着开始发送过程。在发送结束后收回RTS信号,关闭MAX485芯片的发送驱动器,MAX485进入接收状态。
5:在发送空中断到来时,重复使能发送空中断,并检测TSR(移位寄存器)的空标志,当TSR空标志产生后,收回RTS信号。
由于16C550兼容UART控制器没有自动RTS控制,且在TSR空时不产生中断,给程序控制RTS带来很大困难。而使用重复中断方式,或类似的实时轮询方式,通过主动检查TSR的空标志,收回RTS信号,达到精确控制的目的。
本发明的优选方案为,A芯片是ST16C554D芯片,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、本发明利用了ST16C554D兼容UART芯片的发送中断使能特性,通过反复中断的方式,轮询TSR(移位寄存器)的空标志。由于中断处理的实时性,本发明可以精确控制RTS信号、MAX485的发送、接收状态切换时间。
2、本发明适用于9600波特率以上的中、高速485通信,可以在不改变现有硬件设计的基础上,提高控制精度。
3、采用通行硬件设计方案,无需改动现有硬件,只需在驱动软件上稍作修改,即可实现485控制芯片收发方向精确控制。本发明试用于WTX-65A/U系列通信装置中,取得了良好的效果,具有一定的适用性及应用前景。
附图说明
图1是本发明实施例的通用RS-485串行通信接口的电气原理图。
图2是本发明实施例的中断处理流程图。
具体实施方式
以下结合附图和具体实施例对本发明作进一步详细阐述。
一种重复中断方式485方向控制方法,包括如下结构及步骤,A、芯片,采用16C550兼容UART芯片,B、采用总线收发芯片,
C、采用FIFO中断方式发送,每次发送最多可以向16C554写入16个字节,接收时,根据设定,在连续接收1、2、4或14个字节时产生中断,或者在接收的字节流停止约5个字节时间后产生中断;
D、采用RTS信号反相后使能485发送,实现485收发方向控制,每路UART具有独立的RTS、DTR等MODEM控制管脚,其中RTS管脚反相后常用于485收发方向控制,。在每一帧串口数据发送前使能RTS,进而打开MAX485芯片的发送驱动器,接着开始发送过程,在发送结束后收回RTS信号,关闭MAX485芯片的发送驱动器,MAX485进入接收状态;
E、在发送空中断到来时,重复使能发送空中断,并检测TSR(移位寄存器)的空标志,当TSR空标志产生后,收回RTS信号。
图1中,ST16C554D是一款16C550、WINDOWS操作***兼容的UART控制芯片,有4路独立的串口通道。在工业和电力自动化***通信应用中,每一路通道在线路侧只使用TX、RX、RTS信号。这3个信号在经过光耦T1-T3隔离后,连接MAX485芯片的DI、DE和RD管脚,其中RTS和DE之间经过反相器U4。MAX485芯片的DE和/RE信号并接,使能发送时关闭接收回路,MAX485工作在半双工模式。
在初始状态,RTS信号无效,MAX485处于接收状态。当有数据需要发送时,首先使能RTS,将MAX485芯片置于发送状态,然后发送一帧数据。在发送完成后,需要及时收回(复位)RTS信号,将MAX485芯片置于接收状态,以便接收对方的回应。如果未能及时收回RTS信号,当对方回应的很快时,不能正确接收回应报文中的头部字节。
图2是串口中断的处理流程图。多串口卡共用一个中断信号。当中断信号发生时,CPU首先判断是哪一路串口发生的中断,获得串口号。然后读取相应串口的状态寄存器,判断是接收中断还是发送中断。如果是接收中断,读取接收数据,保存到内存中的接收缓冲区。如果是发送中断,检查是否有数据发送。如果有,则使能RTS信号,将MAX485芯片置于发送状态,然后向ST16C554D写入发送数据。等待下一次中断。如果没有数据发送,则检查TSR(移位寄存器)的空标志。如果不为空,则再次使能发送中断,等待下一次中断。如果为空,则复位(收回)RTS信号,将MAX485芯片置于接收状态,一帧发送过程结束。
以上显示和描述了本发明的基本原理和主要特征和本发明的优点。本行业的技术人员应了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是说明本发明的原理,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内,本发明要求保护范围由所附的权利要求书其等效物界定。
Claims (3)
1.一种重复中断方式485方向控制方法,包括如下结构及步骤:A、芯片,采用16C550兼容UART芯片,B、采用总线收发芯片,其特征在于,
C、采用FIFO中断方式发送,每次发送最多可以向16C554写入16个字节,接收时,根据设定,在连续接收1、2、4或14个字节时产生中断,或者在接收的字节流停止约5个字节时间后产生中断;
D、采用RTS信号反相后使能485发送,实现485收发方向控制,每路UART具有独立的RTS、DTR等MODEM控制管脚,其中RTS管脚反相后常用于485收发方向控制,在每一帧串口数据发送前使能RTS,进而打开MAX485芯片的发送驱动器,接着开始发送过程,在发送结束后收回RTS信号,关闭MAX485芯片的发送驱动器,MAX485进入接收状态;
E、在发送空中断到来时,重复使能发送空中断,并检测移位寄存器TSR的空标志,当TSR空标志产生后,收回RTS信号。
2.根据权利要求1所述的重复中断方式485方向控制方法,其特征在于,芯片是ST16C554D芯片,ST16C554D是一款16C550、WINDOWS操作***兼容的UART控制芯片,有4路独立的串口通道,每一路通道在线路侧只使用TX、RX、RTS信号,这3个信号在经过光耦T1-T3隔离后,连接MAX485芯片的DI、DE和RD管脚,其中RTS和DE之间经过反相器U4,MAX485芯片的DE和/RE信号并接, MAX485工作在半双工模式。
3.根据权利要求1或2所述的重复中断方式485方向控制方法,其特征在于,B、总线收发芯片为MAX481或 MAX483或 MAX485或 MAX487–MAX491,具有独立的收发回路。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210372192.XA CN102882754B (zh) | 2012-09-29 | 2012-09-29 | 重复中断方式485方向控制方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210372192.XA CN102882754B (zh) | 2012-09-29 | 2012-09-29 | 重复中断方式485方向控制方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102882754A true CN102882754A (zh) | 2013-01-16 |
CN102882754B CN102882754B (zh) | 2015-08-05 |
Family
ID=47483908
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210372192.XA Active CN102882754B (zh) | 2012-09-29 | 2012-09-29 | 重复中断方式485方向控制方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102882754B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103268301A (zh) * | 2013-05-30 | 2013-08-28 | 华南理工大学广州学院 | 一种自动流的半双工uart接口电路 |
CN105446925A (zh) * | 2015-06-16 | 2016-03-30 | 北京天诚盛业科技有限公司 | 提高串口数据接收正确性的方法和装置 |
CN105512061A (zh) * | 2015-11-24 | 2016-04-20 | 北京天诚盛业科技有限公司 | 对uart数据进行接收和解析的方法以及装置 |
CN105721171A (zh) * | 2016-02-05 | 2016-06-29 | 福建师范大学 | 一种485接口电路的低功耗控制方法 |
CN109062847A (zh) * | 2018-07-31 | 2018-12-21 | 深圳职业技术学院 | 片上***、用于rs485串口通讯的ip核及其控制方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101122894A (zh) * | 2006-08-13 | 2008-02-13 | 朱金怀 | 一种异步串行通讯控制器件 |
WO2008134732A1 (en) * | 2007-04-30 | 2008-11-06 | Zelmanovich, Victor | Packet sniffer for ad hoc network |
CN101383819A (zh) * | 2007-09-05 | 2009-03-11 | 迈普(四川)通信技术有限公司 | 异步串行数据线信息收发方法及异步串行收发器 |
CN101986613A (zh) * | 2010-08-26 | 2011-03-16 | 中国航天科技集团公司第九研究院第七七一研究所 | 一种通用异步串行通信控制器 |
CN202206412U (zh) * | 2011-08-23 | 2012-04-25 | 万洲电气集团有限公司 | 基于无冲突协议的全双工rs485总线通信装置 |
-
2012
- 2012-09-29 CN CN201210372192.XA patent/CN102882754B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101122894A (zh) * | 2006-08-13 | 2008-02-13 | 朱金怀 | 一种异步串行通讯控制器件 |
WO2008134732A1 (en) * | 2007-04-30 | 2008-11-06 | Zelmanovich, Victor | Packet sniffer for ad hoc network |
CN101383819A (zh) * | 2007-09-05 | 2009-03-11 | 迈普(四川)通信技术有限公司 | 异步串行数据线信息收发方法及异步串行收发器 |
CN101986613A (zh) * | 2010-08-26 | 2011-03-16 | 中国航天科技集团公司第九研究院第七七一研究所 | 一种通用异步串行通信控制器 |
CN202206412U (zh) * | 2011-08-23 | 2012-04-25 | 万洲电气集团有限公司 | 基于无冲突协议的全双工rs485总线通信装置 |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103268301A (zh) * | 2013-05-30 | 2013-08-28 | 华南理工大学广州学院 | 一种自动流的半双工uart接口电路 |
CN103268301B (zh) * | 2013-05-30 | 2016-08-31 | 华南理工大学广州学院 | 一种自动流的半双工uart接口电路 |
CN105446925A (zh) * | 2015-06-16 | 2016-03-30 | 北京天诚盛业科技有限公司 | 提高串口数据接收正确性的方法和装置 |
CN105512061A (zh) * | 2015-11-24 | 2016-04-20 | 北京天诚盛业科技有限公司 | 对uart数据进行接收和解析的方法以及装置 |
CN105721171A (zh) * | 2016-02-05 | 2016-06-29 | 福建师范大学 | 一种485接口电路的低功耗控制方法 |
CN105721171B (zh) * | 2016-02-05 | 2019-04-09 | 福建师范大学 | 一种485接口电路的低功耗控制方法 |
CN109062847A (zh) * | 2018-07-31 | 2018-12-21 | 深圳职业技术学院 | 片上***、用于rs485串口通讯的ip核及其控制方法 |
CN109062847B (zh) * | 2018-07-31 | 2023-08-25 | 深圳职业技术学院 | 片上***、用于rs485串口通讯的ip核及其控制方法 |
Also Published As
Publication number | Publication date |
---|---|
CN102882754B (zh) | 2015-08-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105610876A (zh) | 工业控制自动化网络通信协议转换器及通信协议转换方法 | |
CN102882754A (zh) | 重复中断方式485方向控制方法 | |
CN101527735B (zh) | 基于cpci总线的多串口数据通信卡设备及其方法 | |
CN206594657U (zh) | 基于总线通信的多通道uart串行收发控制器 | |
CN101087235A (zh) | 一种基于fpga的多功能通信接口转换设备和方法 | |
CN105573239A (zh) | 一种高速背板总线通讯控制装置及方法 | |
CN101794152B (zh) | 具有lvds串行接口的嵌入式控制器及其控制方法 | |
CN102355507A (zh) | 一种新型的带自检和冲突检测的串行通信接口 | |
CN102546033A (zh) | 采用脉冲调制结合串口方式实现的多机通信装置 | |
CN105471569B (zh) | 多节点电流环全双工通信电路 | |
CN101106504A (zh) | 基于can总线的智能自主机器人分布式通信*** | |
CN101493806B (zh) | 一种通讯适配器的数据传输方法 | |
CN103823775A (zh) | 一种串口与网口智能转换器 | |
CN208128284U (zh) | 一种基于s698pm的以太网转多路同步串口接口通讯设备 | |
CN201555656U (zh) | 动态数字称重变送器 | |
CN201163783Y (zh) | 一种基于can总线的多串口卡 | |
CN202331173U (zh) | 工业控制器及工业网络控制*** | |
CN201503585U (zh) | 基于cpci总线的多串口数据通信卡设备 | |
CN203982361U (zh) | 一种多路串口通信测试装置 | |
CN201820120U (zh) | 自适应多总线执行机构控制器 | |
CN206097099U (zh) | Uart扩展模件 | |
CN201349219Y (zh) | 异步通信控制器 | |
CN206671823U (zh) | 一种新型can接口通信管理机 | |
CN207706195U (zh) | 一种自动离线式半双工通信电路 | |
CN206542444U (zh) | 雷达数据接入设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |