一种基于硬件的rs485自动收发控制方法及电路的制作方法

文档序号:7890402阅读:943来源:国知局
专利名称:一种基于硬件的rs485自动收发控制方法及电路的制作方法
技术领域
本发明属于RS485现场总线控制领域,尤其涉及一种基于硬件的RS485自动收发控制方法及电路。
背景技术
建议性标准RS485作为一种数据传输的电气规范,由于网络结构接口简单、控制方便、成本低廉、抗共模干扰能力强、在适当的波特率下传输距离远、易于进行网络扩展,因而适用于许多不同的领域,特别是在工业现场作为数据传输链路得到了广泛的应用。RS485通讯接口电路采用差分电平方式传输,为半双工工作。其主要功能是,将TX 发送信号通过“发送器”转换成通讯网络中的差分信号,也可以将通讯网络中的差分信号通过“接收器”转换成RX接收信号。多个RS485节点连接在一起,就可以组成RS485现场总线,实现多个设备之间的通讯。在任一时刻RS485芯片中的“接收器”和“发送器”只能有一个处于工作状态。因此,必须对RS485通讯接口电路进行收/发逻辑的换向控制,保证发送和接收互不影响。在现有技术RS485接口电路的换向控制方案一般可以归纳为利用软件程序的换向控制和利用硬件电路的换向控制。利用软件程序的换向控制,如图I所示。在这种方案中,只需要由软件来控制CPU 的I/o引脚的电平,而无需增加外部电路,就可以达到控制RS485收发转换的目的。CPU除 RX连接RS485收发器芯片的RO引脚、TX连接DI引脚以外,还要有I/O信号连接RS485收发器芯片中的发送器/接收器使能引脚。I/O信号为“ I ”,则RS485芯片的发送器有效,接收器禁止,此时CPU可以向总线发送数据字节;1/0信号为“0”,则RS485芯片的接收器有效, 发送器禁止,此时CPU可以接收来自总线的数据字节。但是,这种控制方法存在以下问题I、占用CPU的I/O管脚资源。2、从软件给CPU端口赋值到真正的使能发送数据之间,存在一定的延时,如果发送到接收的转换时机不当,则会造成数据丢失,使数据帧不完整;3、接收和发送状态的转换的可靠性受任意节点CPU状态的影响,无法保证系统有良好的抗干扰性。如果总线上某一节点的CPU发生故障,且其正处于RS485发送高电平状态,则导致其余节点无法正常使用RS485总线通信。4、在有操作系统的多线程运行环境下使用这种方案会增加嵌入式程序的开发难度。利用硬件电路的换向控制,目前绝大部分是基于反相器的。图2给出一种基于反相器的换向控制方案,当发送信号TX为低电平时,DE/RE使能端为高电平,差分线A、B之间为负电平,接收端驱动器RO脚为低电平;发送信号TX = I时,DE/RE使能端为低电平,发送驱动器处于高阻状态,VA = VB = 2. 5V,接收端驱动器RO脚由于上拉电阻的作用为高电平。 此电路存在以下问题I.正常差分线A、B两端为正逻辑、负逻辑和高阻三态,但此电路A、B两端仅有负逻辑和高阻两态。2.此电路在发送高电平时,总线上所有接口处于接收状态,总线是空闲的,允许其他接口发送数据,因此容易引入总线冲突。发送器处于高阻状态的时间越长,引入总线冲突的几率就越大;3.此电路在发送高电平时,发送器处于高阻状态,没有有驱动电流存在,因此没有驱动能力,这样在一定程度上降低了接口的抗干扰能力。为了克服上述问题,人们又进一步在差分线A、B上分别设置了上拉电阻和下拉电阻,见图3。但是却引出了下列问题I.为了使TX= I时,在上拉、下拉电阻的作用下,总线上为高电平,为实现该电平需要使上拉、下拉电阻与终端匹配电阻(120欧姆)具有可比性(即阻值相近),因此加大了系统电能的消耗,同时加大了先关电阻的负荷,降低了热可靠性。2.当TX = O时,AR间为负电平,进一步加大了电阻对于电能的消耗,进一步降低
了可靠性。3.由于上拉、下拉电阻的存在,改变了总线的阻抗,降低了 RS485总线的抗干扰能力和总线所能支持的节点数量;同时上拉、下拉电阻驱动能力有限,也会进一步降低总线的抗干扰能力。利用硬件电路的换向控制还有一种是基于R-S触发器的。201110002705. 3号中国专利申请在背景技术中介绍,这种方案的特点是R-S触发器加充放电电路。当发送信号为低时,充放电电路会通过二极管迅速向电容充电,并使R-S触发器的输出为高电平,RS485 收发器芯片处于发送状态;当发送信号变为高时,充放电电路会通过高阻值电阻为电容缓慢放电,此时R-S触发器的输出仍为高电平,只有当电容放电完毕,R-S触发器的输出才会变为低电平,使RS485收发器芯片返回接收状态。通过修改电容放电速度可以保证整个字节完整发送出去,但是同一种充放电电路不能适应于各种波特率,容易出现在极限条件下发错码或接收回码不及时的问题。201110002705. 3号中国专利申请在发明内容中提供了一种通过采用CPLD实现 RS485芯片的收发换向控制的方案。该方案利用程序和硬件电路相结合的方式,采用统一的系统时钟,通过CPLD分频为换向控制提供分频信号。通过波特率设置接口设置波特率分频信号。通过波特率设置接口选择的计数使能信号控制换向模块计数器。通过CPLD采集 TX信号的起始位,起动计数器,使能RS485发送,每计数使能信号计数器+1,计数溢出后,归零,禁止RS485发送。等待下一个TX信号的起始位。这种方案,存在以下问题I、波特率设置接口通过CPU并行端口连接,仍需要额外的CPU端口资源、运算资源。2、控制软件中需要额外加入对波特率设置接口的控制逻辑算法和实时控制算法, 增加了 CPU的负荷。3、计数器受到波特率设置接口选择的计数使能信号控制,通过采集发送信号线的起始位,开始计数。当系统干扰严重,或者CPU、CPLD上电起动不同步时,在计数使能信号触发边沿与TX信号匹配接近或重合时,会导致发送换向控制在上一帧结束与下一帧起始处发生冲突,使误码率增加,降低总线的可靠性。

发明内容
本发明的目的就是克服上述现有技术之不足,提供一种基于硬件的RS485自动收发控制方法及电路,完全由硬件电路自动实施发送使能控制,不需要占用CPU的I/O端口控制发送使能,在节省CPU资源的同时,降低通信延时和误码率,提高通信效率和系统的抗干扰能力。本发明的目的是这样实现的一种基于硬件的RS485自动收发控制方法,其特征在于采取下列步骤A. TX的空闲状态为高电平,向RS485芯片发出低电平使能信号;B. TX的电平值从高电平变为低电平,向RS485芯片发出高电平使能信号,数据发送起始;C. TX保持低电平时,保持RS485芯片的高电平使能信号,继续数据发送;D. TX电平由低变高时,启动计时器并保持RS485芯片的高电平使能信号,如果TX 高电平保持时间未超过串行通讯信息帧节拍数,则返回步骤C ;否则,数据发送结束,返回步骤A。一种实现上述方法的硬件电路,其特征在于由反相电路、时钟发生电路、计数电路、多路转换开关和触发电路构成,反相电路将TX信号反相送给计数电路的重置端RST和触发器的R端,时钟发生电路产生固定为串行通信波特率的时钟频率,送给计数电路CLK 端,计数电路的输出端接至触发器的S端,触发器的输出端—Q—接至RS485的使能端DE。为了更好地实现本发明的目的,所述时钟发生电路由斯密特触发器(4093)、电阻 Rl和电容Cl构成,斯密特触发器(4093)的输入端I接5V直流电源,输入端2接电阻Rl和电容Cl的一端,输出端3接电阻Rl的另一端,并通过电阻R2接计数器CLK端,电容Cl的另一端接地VEE,适当选择电阻R1、电容Cl的参数,可以使时钟频率固定为串行通信的波特率。为了更好地实现本发明的目的,所述计数电路的输出端为相邻输出值为倍数关系的多个输出端Q1-Q7,通过多路转换开关(SW)接至触发器的S端。本发明的方案,可以实现RS485总线的自动发送控制,不需要单独使用CPU端口实施发送使能控制(DE信号控制),节省了 CPU的端口资源,提高了 CPU软件运行的效率。由于采用纯硬件逻辑电路组成控制模块,避免了软件对于发送控制的参与,极大提高了 RS485 通信的实时性和抗干扰能力,从而提高了整个控制系统通信的电磁兼容能力。为恶劣电磁环境下RS485总线应用,提高系统可靠性提供了可行的解决方案。


图I为基于CPU程序的RS485换向控制原理示意图。图2为基于反相器的RS485换向控制原理不意图。图3为在差分线上设置上拉、下拉电阻的RS485换向控制原理示意图。图4为本发明实施例的原理示意图。图5为本实施例串行通讯信息帧组成示意图。图6为本发明实施例的串行通讯端口逻辑真值表。
具体实施例方式为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。参看图4。在本实施例中,反相电路采用逻辑非门;时钟发生电路由斯密特触发器(4093)和电阻R1、电容Cl构成;计数电路采用计数器(4024);触发电路采用D触发器 (4013)。逻辑非门的输入端接TX信号,输出端接计数器(4024)的RST端和D触发器(4013) 的R端。斯密特触发器(4093)的输入端I接5V直流电源,输入2端接电阻Rl和电容Cl 的一端,输出端3接电阻Rl的另一端,并通过电阻R2接计数器CLK端,电容Cl的另一端接地VEE,适当选择电阻R1、电容Cl的参数,可以使时钟频率固定为串行通信的波特率。计数器(4024)的Q1-Q7输出通过多路转换开关(SW)接至D触发器(4013)的S端,变换多路转换开关(SW)的位置,可以选择适当的波特率。D触发器(4013)的D端和CLK端接地VEE, 百端接RS485的使能端DE。下面详述本实施例电路的逻辑转换工作原理。本实施例串行通讯的信息帧由起始位、数据位、停止位组成,其中的数据位为8节拍,参见图5所示。D触发器的输入输出逻辑关系是S = I时,Q = 1,只要R ! = 1,Q保持为I ;只有当 R = I 时,Q = O。参见图6,当TX端口处于空闲时,TX = I (长时间,D触发器(4013)的S端至少触发一次),计数器(4024)处于计数状态,虽然D触发器(4013)的S端口不停反转,但是D触发器(4013)的R = 0,Q = I, Q=DE=O,发送禁止;当TX端口处于发送起始状态时,TX = O, 计数器(4024)的RST = 1,因而处于清O状态,D触发器(4013)的S = O ;D触发器(4013) 的R = 1,Q = O, f=DE=l,发送使能;当TX端口处于发送状态后,发送位为I (TX = I)时, 计数器(4024)的RST = 0,因而处于计数状态,D触发器(4013)的S = 0,R = O,保持原状态Q = O, Q =DE=I发送使能;连续节拍超过8, TX 一直=I, D触发器(4013)的S = I, Q =
1,= DE = O,发送禁止;当TX端口处于发送状态后,发送位为O (TX = O)时,计数器(4024) 的RST = I,因而处于清O状态,D触发器(4013)的S = O ;D触发器(4013)的R = 1,Q =
O,(^=DE=I,发送使能。使用多路选择开关(SW),可以实现对通讯波特率的选择。例如,选择R1、C1参数使时钟节拍等于38400,当SW选择为计数器(4024)的Q4端时,则控制波特率选择为38400 ;由于Q5的计数时长为Q4的2倍,当SW选择为计数器(4024)的Q5端时,则控制波特率选择为 38400的二分之一,即19200 ;由于Q6的计数时长为Q4的4倍,当SW选择为计数器(4024) 的Q6时,控制波特率选择为38400的四分之一,即9600 ;由于Q7的计数时长为Q4的8倍, 当SW选择为计数器(4024)的Q7时,控制波特率选择为4800 ;从而实现了通信波特率的灵活选择。最后应说明的是以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
权利要求
1.一种基于硬件的RS485自动收发控制方法,其特征在于采取下列步骤A.TX的空闲状态为高电平,向RS485芯片发出低电平使能信号;B.TX的电平值从高电平变为低电平,向RS485芯片发出高电平使能信号,数据发送起C.TX保持低电平时,保持RS485芯片的高电平使能信号,继续数据发送;D.TX电平由低变高时,启动计时器并保持RS485芯片的高电平使能信号,如果TX高电平保持时间未超过串行通讯信息帧节拍数,则返回步骤C ;否则,数据发送结束,返回步骤 A0
2.一种实现权利要求I所述方法的基于硬件的RS485自动收发控制电路,其特征在于 由反相电路、时钟发生电路、计数电路、多路转换开关和触发电路构成,反相电路将TX信号反相送给计数电路的重置端RST和触发器的R端,时钟发生电路产生固定为串行通信波特率的时钟频率,送给计数电路CLK端,计数电路的输出端接至触发器的S端,触发器的输出端百接至RS485的使能端DE。
3.根据权利要求I所述的基于硬件的RS485自动收发控制电路,其特征在于所述时钟发生电路由斯密特触发器(4093)、电阻Rl和电容Cl构成,斯密特触发器(4093)的输入端I接5V直流电源,输入端2接电阻Rl和电容Cl的一端,输出端3接电阻Rl的另一端, 并通过电阻R2接计数器CLK端,电容Cl的另一端接地VEE,适当选择电阻R1、电容Cl的参数,可以使时钟频率固定为串行通信的波特率。
4.根据权利要求I所述的基于硬件的RS485自动收发控制电路,其特征在于所述计数电路的输出端为相邻输出值为倍数关系的多个输出端Q1-Q7,设置多路转换开关(SW)将选定的输出端接至触发器的S端。
全文摘要
本发明的RS485自动收发控制方法及电路,其反相电路将TX信号反相送给计数电路的重置端RST和触发器的R端,时钟发生电路产生固定为串行通信波特率的时钟频率,送给计数电路CLK端,计数电路的输出端接至触发器的S端,触发器的输出端接至RS485的使能端DE。TX的电平值从高变低,电路向RS485芯片的DE端口发出高电平的使能信号,数据发送起始;TX电平值由低变高时,启动计时器并保持RS485芯片的DE端口的高电平使能信号,如果TX高电平保持时间超过串行通讯信息帧节拍数,则电路向RS485芯片的DE端口发出低电平的发送禁止信号,数据发送结束。节省了CPU的端口资源,提高了通信的实时性和抗干扰能力及整个系统通信的电磁兼容能力。
文档编号H04L5/16GK102611545SQ20121004804
公开日2012年7月25日 申请日期2012年2月28日 优先权日2012年2月28日
发明者孙宗琳, 管明华, 蔡志伟, 邰明辉 申请人:中国北车集团大连机车车辆有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1