背景技术
RS-485是一种广泛使用的半双工串行通讯总线,在每次进行通讯前都需要先行设定通讯芯片的方向使能,如果通过CPU以软件设定的方式进行控制需要严格的时序要求,因此通过硬件方式自动切换方向的实用电路越来越多的应用在RS-485通讯当中。
自动切换方向RS-485通讯电路的基本实现方法是通过串行输出数据线TXD端控制RS-485收发器的发送使能端和输入使能端,在发送低电平时使用RS-485收发器的驱动器主动发出;高电平发送时收发器变为接收状态,通过将差分总线A端电阻上拉、差分总线B端电阻下拉的方式来模拟出差分信号进行数据发送。
这一方法极大降低了RS-485通讯控制芯片的使用难度,但因高电平发送时总线的差分信号幅值靠固定阻值上拉电阻和下拉电阻提供,电阻阻值将对通讯系统的性能有极大的影响。若上拉电阻、下拉电阻的阻值较大,则在终端电阻接入后可能导致差分信号幅值过小而造成通讯异常;若上拉电阻、下拉电阻的阻值较小,虽能保证终端电阻接入后差分信号的幅值能够满足接收器接收范围要求,但将造成RS-485驱动器负载电流增加,单位节点驱动功耗加大,大大损失最大驱动节点数。
以常见RS-485通讯电路为例,其差分总线输出A端上拉电阻、B端下拉电阻皆为10kΩ,终端电阻为120Ω,RS-485收发器使用TI公司SN75176A,其接收器有效输入信号幅值需大于+/-200mV,驱动器驱动能力为拉电流、灌电流皆60mA。
当使用程序控制方式切换方向时,高电平输出差分信号幅值完全可以满足通讯要求,简单按照输出差分信号共模电压皆为2.5V计算,不考虑终端电阻消耗电流,在低电平输出时RS-485发送器所需要提供的单台驱动电流为0.25mA,也即SN75176A理论上最大能驱动240个此类节点。
当使用自动切换方式控制通讯方向,不改变上拉电阻、下拉电阻阻值,当两终端电阻接入后,5V供电条件下,两节点并联通讯,高电平输出时终端电阻上差分信号的幅值仅有约30mV,此时将无法实现两节点或稍多有限节点网络的正常通讯。
若想使得终端电阻两端分压得到的模拟差分信号幅值大于200mV,则在5V供电情况下,两节点等效上拉电阻、下拉电阻之和需小于1380Ω,也即单个上拉电阻、下拉电阻阻值小于1380Ω,简单按照输出差分信号共模电压为2.5V计算,不考虑终端电阻消耗电流,在低电平输出时RS-485发送器所需要提供的单台驱动电流仍达1.8mA,也即SN75176A理论上最大仅能驱动33个此类节点,最大驱动节点数损失很大。
发明内容
针对上述自动换向RS-485通讯电路中存在的技术问题,本发明提供了一种智能端接电阻,作为自动切换方向的RS-485通讯电路差分总线智能上拉电阻、下拉电阻。
在此基础上,本发明还提供一种智能端接电阻的控制方法。
为了达到上述目的,本发明采用如下的技术方案:
一种智能端接电阻,该智能端接电阻包括:
一智能投切控制器,包含一TXD信号输入端,一RXD信号输入端,一个或一组互补投切信号输出端;
一可控上拉电阻,接于RS-485收发器差分总线A端和电源之间,包含一可投切电阻和一并联电阻,该可投切电阻受智能控制器输出投切信号控制;
一可控下拉电阻,接于RS-485收发器差分总线B端和地之间,包含一可投切电阻和一并联电阻,该可投切电阻受智能控制器输出投切信号控制。
优选的,所述的智能投切控制器采用基本RS触发器或具有相同逻辑功能的逻辑电路。
优选的,所述的可控上拉电阻、可控下拉电阻中可投切电阻的投切控制采用MOSFET或三极管或机械继电器或固态继电器。
优选的,所述的可控上拉电阻、可控下拉电阻中可投切电阻和并联电阻阻值通过如下方式确定:
一组可控上拉电阻及可控下拉电阻中可投切电阻切入后,两个终端电阻并联接入时终端电阻上分压得到的差分信号幅值不小于RS-485接收器有效输入信号范围;
一个可投切电阻与最大期望驱动节点数个并联电阻的并联电阻值不应使得工作电源下的负载电流超过RS-485接收器的驱动能力。
作为本发明的第二目的,一种智能端接电阻的控制方法,其包括如下步骤:
(1)将智能终端电阻中的可投切电阻切除并联状态;
(2)由智能投切控制器监测发送数据线TXD和接收数据线RXD信号状态,在发送数据线TXD信号发生低电平跳变时,触发输出投入信号;在接收数据线RXD信号发生低电平跳变时,触发输出切除信号;
(3)当智能投切控制器输出投入信号时,将控制可控上拉电阻和可控下拉电阻中的可投切电阻同步投入并联;当所述智能投切控制器输出切除信号时,将控制可控上拉电阻和可控下拉电阻中的可投切电阻同步切除并联。
优选方案中,所述步骤(1)通过如下方案实现:
在上电完成,且RS-485通讯电路未进行通讯之前,串行发送数据线TXD和串行接收数据线RXD信号皆为高电平;智能投切控制器输出的可控上拉电阻投切控制信号由上拉电阻拉为高电平,智能投切控制器输出的可控下拉电阻投切控制信号由下拉电阻拉为低电平,使得可控上拉电阻和可控下拉电阻中的可投切电阻全部处于切除并联状态,且差分总线A端信号由可控上拉电阻中并联电阻上拉决定,差分总线B端信号由可控下拉电阻中并联电阻下拉决定,总线处于空闲状态。
进一步的,所述控制方法中,当两个或两个以上具有智能端接电阻的自换向RS-485通讯节点组成通讯节点网络时,任意时刻一个通讯节点网络内最多仅有一个节点的可控上拉电阻、可控下拉电阻中的可投切电阻切入并联运行状态。
本发明提供的智能端接电阻方案可根据RS-485通讯电路工作状态自动进行上拉电阻、下拉电阻阻值的切换,极大提升自换向RS-485通讯电路最大驱动节点数,显著降低驱动功耗。
具体实施方式
为了使本发明实现的技术手段、创作特征、达成目的与功效易于明白了解,下面结合具体图示,进一步阐述本发明。
参见图1,其所示为采用本方案中智能端接电阻的一实例应用系统的示意图。
在该应用实例中,智能端接电阻作为自换向RS-485通讯电路差分总线智能上拉电阻、下拉电阻。如图可知,该智能端接电阻主要包含:智能投切控制器10、可控上拉电阻20以及可控下拉电阻30三部分。
参见图2,智能投切控制器10,包含一TXD信号输入端101,一RXD信号输入端102,一组互补投切信号输出端103及104;其中TXD信号输入端101和RXD信号输入端102分别连接RS-485通讯系统中的TXD信号和RXD信号。
该智能投切控制器具体可采用基本RS触发器或具有相同逻辑功能的逻辑电路,在本实例中,其采用基本RS触发器进行功能实现。
可控上拉电阻20,其接于RS-485收发器差分总线A端206和电源线205之间,并受智能控制器10输出投切信号控制。
参见图3,该可控上拉电阻20主要包括一可投切电阻201、一并联电阻207、控制可投切电阻201投切的PNP晶体管202、一投切控制信号103的上拉电阻204及一PNP晶体管202驱动电阻203。其中,可投切电阻201一端连接RS-485收发器差分总线A端206,另一端接PNP晶体管202的集电极,PNP晶体管202的基极通过驱动电阻203连接至智能投切控制器10的投切信号输出端103,其发射极直接通过电源线205连接至电源;上拉电阻204的一端连接智能投切控制器10的投切信号输出端103,另一端通过电源线205连接至电源;并联电阻207的两端分别连接RS-485收发器差分总线A端206和电源线205,实现与可投切电阻201和PNP晶体管202的并接。
由此形成的可控上拉电阻20中,PNP晶体管202受智能控制器输出投切信号103控制,对可投切电阻201的投切进行控制。
对于可投切电阻201的投切控制,并不限于PNP晶体管202,其还可采用采用MOSFET或其它三极管或机械继电器或固态继电器来替代。
可控下拉电阻30,其接于RS-485收发器差分总线B端306和地线305之间,并受智能控制器输出投切信号控制。
参见图4,该可控下拉电阻30主要包括一可投切电阻301、一并联电阻307、控制可投切电阻301投切的PNP晶体管302、一投切控制信号104的下拉电阻304及一NPN晶体管302驱动电阻303。其中,可投切电阻301的一端连接RS-485收发器差分总线B端306,另一端接PNP晶体管302的集电极;PNP晶体管302的发射极直接通过地线305接地,其基极通过驱动电阻303连接至智能投切控制器10的投切信号输出端104;下拉电阻304的一端接智能投切控制器10的投切信号输出端104,另一端通过地线305接地;并联电阻307的一端连接至RS-485收发器差分总线B端306,另一端通过地线305接地,实现与可投切电阻301和PNP晶体管302的并接。
由此形成的可控下拉电阻30中,NPN晶体管302受智能控制器输出投切信号104控制,对可投切电阻301的的投切进行控制。
对于可投切电阻301的投切控制,并不限于NPN晶体管302,其还可采用采用MOSFET或其它三极管或机械继电器或固态继电器来替代。
针对上述方案在具体实例中,可控上拉电阻20、可控下拉电阻30中可投切电阻和并联电阻的具体阻值,具体可通过如下方式进行确定:
1)一组可控上拉电阻及可控下拉电阻中可投切电阻切入后,两个终端电阻并联接入时终端电阻上分压得到的差分信号幅值不小于RS-485接收器有效输入信号范围;
2)一个可投切电阻与最大期望驱动节点数个并联电阻的并联电阻值不应使得工作电源下的负载电流超过RS-485接收器的驱动能力。
以下具体说明一下基于上述方案形成的智能端接电阻在相应的应用系统中的工作过程:
在上电完成,RS-485通讯电路未进行通讯之前,串行发送数据线TXD和串行接收数据线RXD信号皆为高电平,如表1所示,智能投切控制器的基本RS触发器逻辑功能为保持输出状态不变,而智能投切控制器输出的可控上拉电阻投切控制信号103由上拉电阻204拉为高电平,智能投切控制器输出的可控下拉电阻投切控制信号104由下拉电阻304拉为低电平,此时可控上拉电阻和可控下拉电阻中的可投切电阻全部处于切除并联状态;差分总线A端信号由可控上拉电阻中并联电阻207上拉决定,差分总线B端信号由可控下拉电阻中并联电阻307下拉决定,总线处于空闲状态;
表1基本RS触发器逻辑真值表
|
|
|
|
0 |
1 |
0 |
1 |
1 |
0 |
1 |
0 |
1 |
1 |
|
|
0 |
0 |
× |
× |
在进行数据发送时,接收数据线RXD始终保持为高电平,发送数据线TXD信号在起始位发生低电平跳变,基本RS触发器将输出可控电阻投入信号,具体为可控上拉电阻投切控制信号103变为低电平,可控下拉电阻投切控制信号104变为高电平,投切控制晶体管202及302同步导通,将可投切上拉电阻201和可投切下拉电阻301同步投入并联运行,此时差分总线A端等效上拉电阻为201与207并联,差分总线B端等效下拉电阻为301与307并联,这一状态将始终保持直至下一次数据接收动作发生;
在进行数据接收时,发送数据线TXD始终保持为高电平,接收数据线RXD信号在起始位发生低电平跳变,基本RS触发器将输出可控电阻切除信号,具体为可控上拉电阻投切控制信号103变为高电平,可控下拉电阻投切控制信号104变为低电平,投切控制晶体管202及302同步关断,将可投切上拉电阻201和可投切下拉电阻301同步切除并联运行,此时差分总线A端上拉电阻为207,差分总线B端下拉电阻为307,这一状态将始终保持直至下一次数据发送动作发生;
当两个或两个以上具有该智能端接电阻的自换向RS-485通讯节点组成通讯节点网络,在每一个时刻,网络内仅有一个节点作为发送节点,该节点可控上拉电阻、可控下拉电阻中可投切电阻切入并联运行;其余节点为接收节点,可控上拉电阻、可控下拉电阻中可投切电阻切除并联运行;在发送节点结束数据发送后变更为接收状态,其可控上拉电阻、可控下拉电阻中可投切电阻仍保持并联运行;当网络内其他节点发起数据发送时,该节点首先将其可控上拉电阻、可控下拉电阻中可投切电阻切入并联运行,在之前的发送节点尚未识别接收数据的起始位的极短时间内,存在两个节点的可投切电阻同时切入并联运行的交接状态,这一时间极其短暂,且RS-485收发器具有短时过载能力,不会影响驱动器的驱动节点数,因此,可以实现,任意时刻一个通讯节点网络内最多仅有一个节点的可控上拉电阻、可控下拉电阻中的可投切电阻切入并联运行状态。
为进一步说明本发明提供之智能端接电阻在最大驱动节点数方面的提升优势,仍以TI公司SN75176A芯片构成的RS-485通讯电路为例进行说明。
如背景技术中所述,采用固定阻值上拉、下拉电阻方式实现自换向485通讯时,为保证终端电阻接入后正常通讯,每个节点的上拉电阻、下拉电阻需小于1380Ω,简单按照输出差分信号共模电压为2.5V计算,不考虑终端电阻消耗电流,在低电平输出时RS-485发送器所需要提供的单台驱动电流仍达1.8mA,也即SN75176A理论上最大仅能驱动33个此类节点;
而采用本发明提供的智能端接电阻,选择并联电阻为10kΩ,可投切电阻阻值为1.6kΩ,并联后等效上拉、下拉电阻为1380Ω,可以保证两节点通讯网络中终端电阻接入后模拟差分总线的信号幅值满足SN75176A接收器识别范围;因每一个时刻仅有一组上拉电阻、下拉电阻的可投切电阻并入网络总线,简单按照输出差分信号共模电压为2.5V计算,不考虑终端电阻消耗电流,在低电平输出时RS-485发送器为可投切电阻提供的驱动电流为1.56mA,为每个10kΩ并联电阻提供的驱动电流为0.25mA,此时,SN75176A理论上最大能驱动233个此类节点,最大驱动节点数比之33有极大提升,达到意想不到的效果,且由于每个时刻仅有一组上拉电阻、下拉电阻的可投切电阻并入网络总线,将显著降低单位节点的驱动功耗。
以上显示和描述了本发明的基本原理、主要特征和本发明的优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是说明本发明的原理,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。本发明要求保护范围由所附的权利要求书及其等效物界定。