一种中继器的制作方法

文档序号:7603491阅读:152来源:国知局
专利名称:一种中继器的制作方法
技术领域
本实用新型涉及数字信息的传输类,具体的讲是涉及一种用于RS485总线的中继器。
背景技术
RS485总线是一种基于半双工工作方式的串行总线,其本身具有良好的通讯特性,但是RS485总线存在着总线制的共同缺点一点短路,全线瘫痪,分支困难。要使各个节点独立起来,才能提高系统工作的可靠性。中国专利00265070.3中叙述了一种解决方案,该方案是一种用于RS485总线的通讯网络集线器,至少包括2组与网络集线器内部总线连接的收发器组,所述的收发器组由收发芯片、自触发控制器、三态门收发器和匹配电阻构成。但是该方案存在着下列缺陷为了使该方案的电路能正常工作,对于某个特定的频率F,其对应的Bit时间为Ts,发送的位数为1+8+1(1位启动位、8位数据位、1位停止位),则要求设置合适的电阻和电容,使它们对应的时间常数稍大于10*Ts,这样一旦固定了电阻和电容以后,带来的问题是无法自动适应不同的通讯频率;无法适应不同的Bit数,例如有些场合要求1+8+1+1(1位启动位、8位数据位、1位校验位、1位停止位),或1+7+1(1位启动位、7位数据位,1位停止位);降低了系统软件效率,因为每发送一个字节的数据,软件至少要等待一个1bit的间隔时间再发送下一个字节,这意味着系统效率至少下降10%;另外是抗干扰能力差,这是因为采用的触发器特别容易受到信号线上小毛刺的干扰而触发电平,在工业和民用应用中干扰是大量存在的,RS485总线本来能提高抗干扰的,但由于使用触发器反而导致可靠性大大降低。

发明内容
本实用新型的目的是根据上述现有技术的不足之处,提供一种用于RS485总线的中继器,该中继器采用信号调度管理器,通过简单的逻辑关系代替实现触发器功能,因而可以适应各种频率的变化和通讯位数的任意改进并且具有故障自动隔离的功能,该功能要求,每个通道产生的故障能自行隔离,隔离后不影响其它通道的工作。
本实用新型目的实现由以下技术方案完成一种中继器,包括RS485差分收发器及连接通道,其特征在于该中继器至少包括两个RS485差分收发器以及一个信号调度管理器,其中信号调度管理器通过连接通道控制RS485差分收发器的数据接收和发送,每个通道的差分收发器的接收信号RXDi连接到信号调度管理器的输入端,信号调度管理器输出每个通道的发送信号TXDi、发送控制信号TEi、接收控制信号/REi到该通道的差分收发器,也就是说信号调度管理器根据全部通道的差分收发器的接收信号RXDi的状态决定各个通道的差分收发器的发送信号TXDi、发送控制信号TEi、接收控制信号/REi的状态,该中继器所依据的逻辑关系是1)所有的TXDi=RXD1&RXD2...RXDn;2)TEi=RXDi&(!(RXD1&...RXDn)),括号内可以包括RXDi本身,也可以不包括RXDi;3)/REi=TEi;i=1-N;该信号调度管理器可以是由可编程逻辑器件构成,也可以是由分离元件构成。
分离元件指的是与门、或门、非门。在由分离元件构成的信号调度管理器中,各个通道的接收端信号RXDi连接与门,与门的输出端信号为各个通道的发送信号TXDi;所有通道的接收端信号RXDi(也可不包括本通道的接收端信号RXDi)连接与门,与门的输出再连接到非门输入端,非门输出与本通道的接收端信号RXDi一起连接到与门,最后该与门的输出就是该通道的发送控制信号TEi;任何通道的接收控制信号/REi与该通道的发送控制信号TEi是相同的。如果上述的所有通道的接收端信号包括RXDi本身,则可以采用线与的方式组成总线结构,这时,每个通道的结构完全对称,因此可以做成模块化。
由可编程逻辑器件构成的信号调度管理器借助于EDA设计工具采用图形或HDL硬件描述语言作为输入,将编译成相关可编程器件的编程数据下载到该可编程器件中来实现的。显然本领域普通技术人员依据上述的逻辑关系,利用可编程器件实现信号调度管理器的功能的方法是显而易见的,在此不再赘述。
中继器还可以包括故障隔离器。该故障隔离器连接差分收发器的接收信号RXDi,同时该隔离器输出一个隔离信号dis[i]与该差分收发器的接收信号RXDi一起通过一个或门连接到信号调度管理器的输入端。
该中继器所依据的逻辑关系是(1)所有的TXDi一样,都等于(RXD1|dis[1])&(RXD2|dis[2])...(RXDn|dis[n]);(2)TEi=RXDi&(!((RXD1|dis[1])&...(RXDn|dis[n])));括号内可以包括RXDi本身,也可以不包括RXDi。
(3)/REi=TEi;i=1-N;其中dis用于故障隔离,等于“1”时,该通道处于隔离状态;非隔离通道的dis为“0”。
该故障隔离器可以由分离元件构成,也可以由可编程器件构成。
本实用新型的优点是,无须关心总线上的通讯频率,对于中继功能,采用的是简单的逻辑关系,不存在单稳触发器,因此对总线上的信号即时作出反映,无须关心信号的频率,因此能自动适应频率的变化;同时由于实时、长期窃听两端信号状态,并把内部接收状态与外部总线状态区分开,因此可以实现故障隔离。
附图概述附

图1为本实用新型结构示意图;附图2a为本实用新型一进一出结构示意图I;附图2b为本实用新型一进一出结构示意图II;附图2c为本实用新型一进一出结构示意图III;附图3a本实用新型有故障隔离功能的结构示意图I;附图3b为本实用新型有故障隔离功能结构示意图II;附图4a为本实用新型中多路结构示意图;附图4b本实用新型有故障隔离功能的多路结构示意图;附图5为本实用新型通道隔离信号的产生示意图;
附图6为本实用新型通道隔离示意图;具体技术方案
以下结合附图通过实施例对本实用新型特征及其它相关特征作进一步详细说明,以便于同行业技术人员的理解在如图1所示的RS485链路中,用RS485差分接收器接收RS485信号,一般差分器件如MAX485的信号主要有接收数据RXD、发送数据TXD、接收控制/RE(“0”使能)、发送控制信号TE(“1”为使能),见图1中的U1、U2。上述“0”和“1”用正逻辑表示,“1”表示高电平,“0”表示低电平,下同。图1中R1-R8为电阻,U3为信号调度管理器,可以为可编程逻辑器件,也可由分离元件来实现。
结构上每个通道包含一个RS485差分收发器,N个通道包括N个差分收发器,至少包括2个差分收发器。它们由一个信号调度管理器管理。任何一个总线收发器的信号RXDi、TXDi、TEi、/REi与信号调度管理器相连。信号调度管理器根据全部通道的RXDi信号的状态决定各个通道的TEi、/REi、TXDi的状态。
在信号调度管理器中,任何RS485总线收发器的接收端收到数据信号为“0”时,该通道一定立即处于只接收不发送数据的状态。如果所有通道的接收端为“1”,它们也处于只收不发的状态。只有当该通道收到数据为“1”,且任何一个其它通道的接收端收到了数据为“0”时,该通道立即处于发送状态,并且发送的数据为“0”。
实施例1一进一出的RS485中继器,其信号调度管理器由分离元件构成。
在如图2a所示,其中U1、U2为两个差分器件,U3、U4、U5为逻辑与门,可以用74AC08等来实现,U6、U7为逻辑反相器,可以用74AC04等来实现。当两个差分器件实现中继功能时,与它们有关的几个信号要受一个信号调度管理器控制。这个信号管理器以RXD1、RXD2为输入信号,TXD1、TXD2、/RE1、/RE2、TE1、TE2为输出信号,其内部各信号之间满足以下关系

可见,1)如果RS485总线中两端接收信号都为“1”,则两端的接收控制允许,发送控制禁止。RS485总线上的上拉电阻R4、R5使端口都为“1”的状态不改变。
2)如果其中一个为“1”,另外一个为“0”。这种情况表明为“0”的那端一定是主动发来数据的端口,且需要发送“0”;为“1”的那端则是需要传递数据的端口,它需要变成“0”。为“0”的那端只收不发,则继续保持“0”;原来为“1”的那端只发不收,且发送数据为“0”,因此这个端口将变成“0”,从而实现了数据的传递。但由于原来为“1”的那端不收数据(所谓不收数据,指接收端的接收使能/RE=1,处于禁止状态,也即内部接收端为高阻态,下同),因此这个外部端口变成的“0”的状态内部是收不到的,因为内部的上拉电阻R4、R5使内部接收到的数据依然为“1”,从而维持逻辑关系不变。
3)如果出现同时为“0”。则两端都是只收不发,因此保持总线两端信号都是“0”状态不变。原则上这种情况是不可能出现的,说明总线信号发生冲突,存在问题。一般讲这种情况表明其中有一端可能有异常如短路。后面会讲到当一端长期为“0”,超过一定时间后判为故障,需要隔离。
由此可见,信号调度管理器利用接收端内部上拉电阻R4、R5的作用对总线两端的“窃听”,并通过对发送和接收使能的控制,来实现RS485总线收发信号状态的传递。平时,两通道处于只收不发的状态。
需要说明的是这个接收端内部上拉电阻R4、R5的存在是帮助其维持逻辑关系不变的方法之一,我们称之为逻辑维持器。也可以通过下面的方法来实现如图2b所示,用逻辑门来替代上拉电阻R4、R5的作用,则相关部分用图2b中的椭圆内的框图替代通过引用TE1端,当发送使能允许、接收被禁止时(TE1等于“1”)逻辑门输出一个“1”到该内部接收端;当发送禁止、接收允许时(TE等于“0”),允许RXD1、RXD2直通来实现。同时为便于区别,这时将上面的差分接收端信号用IRXDi表示,RXDi则表示用逻辑门替代上拉电阻R4、R5后的输出。
用通用逻辑表达式表示为RXDi=(TEi==1)?1IRXDi。该表达式的含义是如果TEi等于“1”,则输出“1”;否则输出等于IRXDi。
对于收到“0”的那个通道,一定是处于只收不发的的状态。
用这种方法实现解码有两个明显的优点1)无须关心总线上的通讯频率。对于中继功能,采用的是简单的逻辑关系,不存在单稳触发器,因此对总线上的信号即时作出反映,无须关心信号的频率,因此能自动适应频率的变化。
2)由于实时、长期窃听两端信号状态,并把内部接收状态与外部总线状态区分开,因此可以实现故障隔离。当检测到其中一接收端长期为“0”时,说明该侧信号回路发生故障(短路),需要同其它回路进行隔离。
有故障隔离的RS485中继技术的逻辑图实现如图3a所示,其中U1、U2为差分器件,U3、U4、U5为逻辑与门,可以用74AC08等来实现,U6、U7为逻辑反相器,可以用74AC04等来实现,U8、U9为逻辑或门,可以用74AC32来实现,U10为可编程逻辑器件,当然上面的器件U3-U9也可以在U10内部实现。R1-R8为电阻。
当dis1/dis2等于“1”,所对应的通道将被隔离。
实施例2集成多路RS485中继技术及隔离技术多路的概念是至少有三个端口。图4a是多路器结构,图4b带有故障隔离功能。
当路数增加,再用普通的逻辑电路来实现就显得比较复杂。这时候借助可编程逻辑器件和硬件描述语言(VHDL/VerilogHDL等)来实现功能较好。
一、逻辑关系结构说明设有n路RS485中继,每路都有RXDi,TXDi,TEi,/REi,i=1-n。这些信号输入到信号调度管理器,其中RXDi是输入信号,其它信号是输出。图4a中是一个没有故障隔离功能的多路中继器,其中R1-R16为电阻,U1-U4为差分接收器,U5为可编程逻辑器件。
对于没有故障隔离功能的中继器,调度管理器内部各个信号之间的关系符合以下规律(1)有的TXDi=RXD1&RXD2...RXDn;(2)TEi=RXDi&(!(RXD1&...RXDn));括号内可以不包括RXDi本身,也可以包括RXDi。
(3)/REi=TEi;i=1-N;图4b则是一个带故障隔离的中继器,其中R1-R16为电阻,U1、U4、U5、U8为差分接收器,U9为可编程逻辑器件。U2、U3、U6、U7为逻辑或门,这些逻辑或门也放在可编程逻辑器件U9内实现,单独提出是为了便于说明问题。
对于故障隔离功能的中继器,可以看到图4a和图4b中对于信号调度管理器而言,其差别在于除了RXDi信号需要送给调度管理器外,还需要一个复合信号(RXDi|dis[i])送给调度管理器。这时逻辑关系符合以下规律(1)所有的TXDi一样,都等于(RXD1|dis[1])&(RXD2|dis[2])...(RXDn|dis[n]);(2)TEi=RXDi&(!((RXD1|dis[1])&...(RXDn|dis[n])));括号内可以不包括RXDi本身,也可以包括RXDi;(3)/REi=TEi;i=1-N;符号符合VerilogHDL语言的标准。其中dis用于故障隔离,等于“1”时,该通道处于隔离状态;非隔离通道的dis为“0”。
对于非隔离时,发送端的发送数据,任何一个通道收到信号为“0”,表明该通道有数据“0”需要发送到其它端口,因此所有端口发送端数据为“0”。对于任何一个通道i,如果该通道收到“1”且其它任何一个通道收到“0”,则该通道处于只发不收状态,上面提到发送端数据为“0”,因此输出为“0”。但由于该通道处于不接收状态,内部接收端处于高阻,外部端口的“0”状态内部是接收不到的,由于内部上拉电阻的作用,其内部接收端为依然“1”,因此第i通道接收数据仍然为“1”!从而维持逻辑关系不变。同样需要说明的是,这个接收端内部上拉电阻的存在是帮助其维持逻辑关系不变的方法之一,也可以通过逻辑门输出一个“1”到该接收端来实现。
如果第i路收到“0”或如果第i通道虽然收到“1”但其它全部通道也为“1”,则这时该通道将处于只收不发。这两种情况都保证了内、外端口数据的一致性。
同样,对于中继功能,采用的是简单的逻辑关系,不存在单稳触发器,因此对总线上的信号即时作出反映,无须关心信号的频率,因此能自动适应频率的变化。
二、故障隔离结构故障隔离结构的核心是将收到的、认为是有故障的接收数据RXDi(即长期是“0”)用一个内部信号dis[i]进行逻辑或以后送到调度管理器。这样一旦dis[i]等于“1”,对于发送数据而言,它将收到的这路信号变成“1”,从而在与其它通道与的过程中不再影响其它通道,从而不影响其它通道;对于该通道的TE端、/RE端,当本通道收到“0”或所有通道都为“1”时只收不发,以便监视通道的状态。
设有n路RS485中继。每路都有RXDi,i=1-n。这些信号输入到故障隔离器。故障隔离器根据这些信号产生dis1[i]和dis2[i],其中dis1[i]为临时隔离,dis2[i]为永久隔离,它们的再合成一个每个通道的隔离信号dis[i],逻辑关系为dis[i]=(dis1[i]|(dis2[i]&EN_DIS2))&EN_DIS;图5显示这种关系的实现图,其中EN_DIS和EN_DIS2分别为总隔离功能和永久隔离功能的使能信号,为“1”允许,“0”不允许。U1、U3为与逻辑门,U2为逻辑或门。
下面用的是VerilogHDL语言来描述dis1[i]和dis2[i]的主要实现方法。
dis1[i]临时隔离,当RXDi等于“0”的时间超过Ti时为1。Ti可以设定为ts个clk0的时间间隔。具体根据实际情况可以设置250ms以下。
//channel ialways@(posedge RXDior posedge clk0)beginif(RESET)begin dis1[i]=1′b0;cti=0;endelse if(RXDi)begin dis1[i]=1′b0;cti=0;endelse if(cti==ts)begin cti=ts;dis1[i]=1′b1;endelse begin cti=cti+1;dis1[i]=1′b0;endend这路通道尽管临时被隔离,当它的RXDi恢复为“1”,这时临时隔离将取消,该通道恢复通讯;但当两次临时隔离之间的时间小于Tf时,说明该通道经常被干扰,不稳定,需要永久隔离,这一级叫dis2。永久隔离需要重新上电或复位才能恢复。其中其中Tf的时间可以被设置为ft个clk1的时间间隔。具体根据实际情况也可以设置500mS以下。本例中ft=1。
实现方式如下,//channel i for failure interval timealways@(posedge RESET or posedge clk1)beginif(RESET)begin AXDi=1′b0;dis2[i]=1′b0;cfti=2;endelseif(!dsi)begin if(cfti<=ft)begin cfti=cfti+1;AXDi=1′b0;end endelse if(dis2[i]==1′b1||(AXD i==1′b0&&cfti<=ft))beginAXDi=1′b1;cfti=0;dis2[i]=1′b1;endelse begin AXDi=1′b1;cfti=0;dis2[i]=1′b0;endend当然系统可以设置一定的控制按键来控制这个隔离是否势能(Disable/Enable)。如上面的EN_DIS2和EN_DIS就是控制使能信号。
上面两节内用中提到的方法是用VerilogHDL硬件描述语言描述的、并可以用可编程逻辑器件来实现的,也可以用VHDL等其它硬件描述语言进行描述。用普通逻辑门来实现同等有效。
三、通道之间隔离上述的故障隔离结构方式,也可以用于通道之间的隔离,该隔离讲的是电气隔离。
电气隔离的常规方法是光电隔离,见图6。其中R1-R16为电阻,U1-U4为差分接收器,U5-U8为光电隔离器,U9为可编程逻辑器件,U10-U14为隔离的DC-DC模块。
只需要将本实施例中与调度管理器的各个接口信号进行光电隔离就可以实现。
实施例3采用线与方式的总线结构图2c是没有故障隔离的、但采用线与的中继器。其中U3、U8就是线与器件。线与器就是所有输出连在一起成一根总线,只要一个输入为“0”,该总线就是“0”,只有全部为“1”,总线上才为“1”。当然总线上必须加上拉电阻R9。因此线与器件可以是始终允许输出的同相三态门。从图可以看出,线与器U3、U8的输出是一条总线,它连到每个通道的TXD1、TXD2;同时它与反相器U6、U7相连,再与每个通道的RXDi一起连接到与门U4、U5,U4、U5的输出就是通道的TE1、TE2;同样/RE1、/RE2与TE1和TE2是一样的。
图3b则是带故障隔离的、采用线与的中继器。同上一样,U3、U8是线与器件。只是故障隔离部分要折分开U11、U12,目的是保持结构的对称性,便于通道模块化。
本实施例3中,只给出了两路的情况,对于多路的情况,由于各模块完全一样,因此第3路以上的模块直接挂到线与总线上就可。显然,这对于本行业的人员是很容易理解的。
权利要求1.一种中继器,包括RS485差分收发器及连接通道,其特征在于该中继器至少包括两个RS485差分收发器以及一个信号调度管理器,其中信号调度管理器通过连接通道控制RS485差分收发器的数据接收和发送,每个通道的差分收发器的接收信号(RXDi)连接到信号调度管理器的输入端,信号调度管理器输出每个通道的发送信号(TXDi)、发送控制信号(TEi)、接收控制信号(/REi)到该通道的差分收发器,也就是说信号调度管理器根据全部通道的差分收发器的接收信号(RXDi)的状态决定各个通道的差分收发器的发送信号(TXDi)、发送控制信号(TEi)、接收控制信号/(REi)的状态,该中继器所依据的逻辑实现是1)所有的TXDi=RXD1&RXD2...RXDn;2)TEi=RXDi&(!(RXD1&...RXDn)),括号内可以不包括RXDi本身,也可以包括RXDi;3)/REi=TEi;i=1-N。
2.根据权利要求1所述的一种中继器,其特征在于所述的信号调度管理器可以是由分离元件构成,该分离元件指的是与门、或门、非门。
3.根据权利要求2所述的一种中继器,其特征在于所述的由分离元件构成的信号调度管理器中,各个通道的接收端信号(RXDi)连接到与门的输入端,与门的输出端信号为各个通道的发送信号(TXDi);所有通道的接收端信号(RXDi)连接到与门的输入端,其中可以不包括本通道的接收端信号(RXDi),其输出再连接非门,然后非门的输出与本通道的接收端信号(RXDi)一起连接到与门的输入端,该与门的输出就是该通道的发送控制信号(TEi);任何通道的接收控制信号(/REi)与该通道的发送控制信号(TEi)是相同的。
4.根据权利要求1所述的一种中继器,其特征在于差分收发器与所述的信号调度管理器的连接中有一个逻辑维持器,该逻辑维持器可以用上拉电阻或二选一器件实现。
5.根据权利要求1所述的一种中继器,其特征在于所述的信号调度管理器可以是由可编程逻辑器件构成。
6.根据权利要求5所述的一种中继器,其特征在于所述的信号调度管理器可借助于EDA设计工具采用图形输入或用HDL硬件描述语言输入,通过可编程器件实现。
7.根据权利要求1所述的一种中继器,其特征在于该中继器包括故障隔离器,该故障隔离器连接差分收发器的接收信号(RXDi),同时该隔离器输出一个隔离信号与该差分收发器的接收信号(RXDi)一起通过一个或门连接信号调度管理器的输入端。
8.根据权利要求7所述的一种中继器,其特征在于该中继器包括故障隔离器,所依据的逻辑实现是(I)所有的TXDi一样,都等于(RXD1|dis[1])&(RXD2|dis[2])...(RXDn|dis[n]);(II)TEi=RXDi&(!((RXD1|dis[1])&...(RXDn|dis[n])));括号内可以不包括RXDi本身,也可以包括RXDi。(III)/REi=TEi;i=1-N。
9.根据权利要求7所述的一种中继器,其特征在于所述的故障隔离器可以由分离元件构成,也可以由可编程器件构成。
10.根据权利要求1或7所述的一种中继器,其特征在于其逻辑实现中所有的接收信号(RXDi)进行逻辑与时,可以采用线与的方式,总线就是所有的接收信号(RXDi)的线与,线与总线上一定有一个上拉电阻R9。
专利摘要本实用新型涉及数字信息的传输类,具体的讲是涉及一种用于RS485总线的中继器,该中继器采用信号调度管理器,通过简单的逻辑关系代替实现触发器功能,因而可以适应各种频率的变化和通讯位数的任意改进并且具有故障自动隔离的功能,该功能要求,每个通道产生的故障能自行隔离,隔离后不影响其它通道的工作。
文档编号H04L25/20GK2794059SQ20042009065
公开日2006年7月5日 申请日期2004年9月29日 优先权日2004年9月29日
发明者邵建光 申请人:邵建光
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1