CN102546141B - 485总线系统及其异步半双工通信方法 - Google Patents
485总线系统及其异步半双工通信方法 Download PDFInfo
- Publication number
- CN102546141B CN102546141B CN201210038658.2A CN201210038658A CN102546141B CN 102546141 B CN102546141 B CN 102546141B CN 201210038658 A CN201210038658 A CN 201210038658A CN 102546141 B CN102546141 B CN 102546141B
- Authority
- CN
- China
- Prior art keywords
- collision detection
- state
- equipment
- detection signal
- signaling interface
- 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.)
- Active
Links
Landscapes
- Small-Scale Networks (AREA)
Abstract
本发明涉及传输控制领域,公开了一种485总线系统及其异步半双工通信方法。以最少的线缆实现485总线半双工通信,可相互传输数据的各设备对等连接无主从性,且任何一台设备可向其他的任意设备发送数据。本发明中,包括:由485总线连接的多台设备,每台设备设置有三个信号接口,其中两个为一对485总线数据传输差分信号接口,另外一个为冲突检测信号接口,通过导线将各设备相同的信号接口相互连接;该异步半双工通信方法包括以下步骤:设备需要发送数据时,检测冲突检测信号的状态;如果检测到忙状态,则等待,直到为空闲状态;如果检测到空闲状态,则将该设备自身的冲突检测信号接口中的冲突检测信号置为忙状态后,发送数据。
Description
技术领域
本发明涉及传输控制领域,特别涉及一种485总线通信技术。
背景技术
在RS485通信网络中一般采用的是主从通信方式,即一个主机带多个从机,或1台主设备带多台从设备,每一个动作都由主设备发起,从设备通过地址区分后执行相应动作。
RS485通信模式通常为异步半双工模式,所谓半双工模式,即信息在两设备之间能够在两个方向上进行发送,但不能同时发送的工作方式。所谓异步通信,即异步双方不需要共同的时钟,也就是接收方不知道发送设备什么时候发送,在发送的数据中有提示接收方开始接收的信息,如开始位,结束时有停止位。
如图1所示的485总线系统的总线连接方式为典型的485半双工总线连接方式,其中D+/D-为一组半双工差分信号。
现有RS485异步半双工通信技术是将485主从通信分为上行通信和下行通信,即主设备通过一条独立的下行485总线和从设备连接,实现主到从的通信,用另一条独立的上行485总线连接主从设备实现从设备到主设备的通信,该系统运行还需要上行时钟和下行时钟同步控制。
本发明的发明人发现,现有RS485总线系统异步半双工通信技术只能采取主机询问从机应答的方式,通信效率低。
发明内容
本发明的目的在于提供一种485总线系统及其异步半双工通信方法,可以以最少的线缆和导线实现485总线半双工通信的防冲突功能,同时系统中各设备间对等连接,而不区分主从设备,且系统中的任何一台设备可向其他的任意设备发送数据。
为解决上述技术问题,本发明的实施方式公开了一种485总线系统异步半双工通信方法,485总线系统包括:由485总线连接的至少两台设备,每台设备设置有三个信号接口,其中两个信号接口为一对485总线数据传输差分信号接口,另外一个信号接口为冲突检测信号接口,通过导线将各设备相同的信号接口相互连接;方法包括以下步骤:
设备需要发送数据时,检测冲突检测信号接口中的冲突检测信号的状态;
如果检测到冲突检测信号为“忙”状态,则等待,直到冲突检测信号为“空闲”状态;
如果检测到冲突检测信号为“空闲”状态,则将该设备自身的冲突检测信号接口中的冲突检测信号置为“忙”状态后,通过485总线数据传输差分信号接口发送数据。
本发明的实施方式还公开了一种485总线系统,包括:
由485总线连接的至少两台设备,每台设备设置有三个信号接口,其中两个信号接口为一对485总线数据传输差分信号接口,另外一个信号接口为冲突检测信号接口(对应的地线可以是公共地,也可以与冲突检测信号接口使用同一根双绞线),通过导线将各设备相同的信号接口相互连接。
本发明实施方式与现有技术相比,主要区别及其效果在于:
在485总线通信系统中为各设备设置一对数据发送差分信号和一个冲突检测信号,各设备在检测到冲突检测信号为空闲时先置为忙再发送数据,在冲突检测信号为忙时等待,可以以最少的线缆和导线实现485总线半双工通信的防冲突功能,同时系统中各设备间对等连接,而不区分主从设备,且系统中的任何一台设备可向其他的任意设备发送数据。
进一步地,冲突检测信号与接地信号通过双轴电缆连接形成一对差分信号,信噪比高,在通信场景中的抗干扰性强和适应性强,提高了通信质量。
进一步地,为485总线系统中的各个设备根据预先设置的唯一地址所分配的不同轮询周期,并且数据发送优先级相对较高的设备对应的轮询周期相对较短,这就为各个设备的数据发送间接地设置了485总线抢占优先级,解决了需要发送数据的多个设备同时占用总线和485通信总线繁忙的问题和通信碰撞的问题。
在一种优选方案中,预先为485总线系统中的各个设备分配长短不一的等待时间T0,其中,数据发送优先级相对较高的设备对应的等待时间T0相对较短,各设备在将冲突检测信号置忙后,先对数据传输差分信号接口监听T0时间(T0时间段内暂不发送数据),如果在T0时间内没有发现有其它设备发送数据,才开始发送数据,进一步解决了多个设备需要同时数据发送时的冲撞问题,同时保证了各设备的数据发送的优先级先后顺序。
在另一种优选方案中,在设备发送数据之前,如果检测到冲突检测信号为“空闲”状态,则先等待T1的时间,并在此期内检测冲突检测信号接口中的冲突检测信号的状态,一旦检测到为“忙”则回到最初的状态,如检测到为“空闲”则将自身的冲突检测信号置为“忙”状态并保持与优先级相关的T2时间后,自身的冲突检测信号再置为“空闲”状态并在T3的时间内检测是否有“忙”状态的冲突检测信号,若T3时间内未检测冲突检测信号为“忙”,再将自身的冲突检测信号置为“忙”状态并发送数据,且T1大于T3,优先级相对较高的设备对应的T2相对较大,可以只从冲突检测信号的角度解决需要发送数据的多个设备同时占用总线和485通信总线繁忙的问题,进一步解决通信冲突或冲撞的问题。
附图说明
图1是本发明现有技术中一种485总线系统的结构示意图;
图2是本发明第一实施方式中一种485总线系统异步半双工通信方法的流程示意图;
图3是本发明第三实施方式中一种485总线系统异步半双工通信方法的流程示意图;
图4是本发明第三实施方式中一种485总线系统异步半双工通信方法的流程示意图;
图5是本发明第三实施方式中一种485总线系统异步半双工通信方法的信号变化时序示意图;
图6是本发明第三实施方式中一种485总线系统异步半双工通信方法的信号变化时序示意图;
图7是本发明第三实施方式中一种485总线系统异步半双工通信方法的信号变化时序示意图;
图8是本发明第四实施方式中一种485总线系统的结构示意图;
图9是本发明第五实施方式中一种485总线系统的结构示意图;
图10是本发明第六实施方式中一种485总线系统的结构示意图。
具体实施方式
在以下的叙述中,为了使读者更好地理解本申请而提出了许多技术细节。但是,本领域的普通技术人员可以理解,即使没有这些技术细节和基于以下各实施方式的种种变化和修改,也可以实现本申请各权利要求所要求保护的技术方案。
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明的实施方式作进一步地详细描述。
本发明第一实施方式涉及一种485总线系统异步半双工通信方法。图2是该485总线系统异步半双工通信方法的流程示意图。
该485总线系统包括:由485总线连接的至少两台设备,每台设备设置有三个信号接口,其中两个信号接口为一对485总线数据传输差分信号接口,另外一个信号接口为冲突检测信号接口,通过导线将各设备相同的信号接口相互连接;
具体地说,该485总线系统异步半双工通信方法包括以下步骤:
设备需要发送数据时,检测冲突检测信号接口中的冲突检测信号的状态;
如果检测到冲突检测信号为“忙”状态,则等待,直到冲突检测信号为“空闲”状态;
如果检测到冲突检测信号为“空闲”状态,则将该设备自身的冲突检测信号接口中的冲突检测信号置为“忙”状态后,通过485总线数据传输差分信号接口发送数据。
如图2所示,该485总线系统异步半双工通信方法包括以下步骤:
在步骤201中,当设备需要发送数据时,检测冲突检测信号接口中的冲突检测信号的状态。
如果检测到冲突检测信号为“空闲”状态,则进入步骤202;如果检测到冲突检测信号为“忙”状态,则等待,直到冲突检测信号为“空闲”状态,即返回步骤201,继续检测冲突检测信号接口中的冲突检测信号的状态,等待冲突检测信号为“空闲”状态。
在步骤202中,如果检测到冲突检测信号为“空闲”状态,则将该设备自身的冲突检测信号接口中的冲突检测信号置为“忙”状态。
此后进入步骤203,通过485总线数据传输差分信号接口发送数据,此后结束本流程。
在485总线通信系统中为各设备设置一对数据发送差分信号和一个冲突检测信号,各设备在检测到冲突检测信号为空闲时先置为忙再发送数据,在冲突检测信号为忙时等待,可以以最少的线缆和导线实现485总线半双工通信的防冲突功能,同时系统中各设备间对等连接,而不区分主从设备,且系统中的任何一台设备可向其他的任意设备发送数据。
此外,导线可以包括用于485总线系统异步半双工通信的多种类型的导线,例如金属材质导线和合金材质导线等。
本发明第二实施方式涉及一种485总线系统异步半双工通信方法。
第二实施方式在第一实施方式的基础上进行了改进,主要改进之处在于:冲突检测BUSY信号与接地GND信号通过双轴电缆连接形成一对差分信号,信噪比高,在通信场景中的抗干扰性强和适应性强,提高了通信质量。为485总线系统中的各个设备根据预先设置的唯一地址分配不同的轮询周期,并且数据发送优先级相对较高的设备对应的轮询周期相对较短,这就为各个设备的数据发送间接地设置了485总线抢占优先级,解决了需要发送数据的多个设备同时占用总线和485通信总线繁忙的问题和通信碰撞的问题。
具体地说:
该485总线系统中的设备还设置有一个接地信号接口,冲突检测信号接口中的冲突检测信号与接地信号接口中的接地信号组成一对差分信号,并通过同一根双轴电缆连接。
一对485总线数据传输差分信号接口通过另一根双轴电缆连接。
此外,在本发明的其他某些实施方式中,该485总线系统在信号噪音不大和干扰因素不强时进行通信的情况下,接地GND信号线也可以隐藏。
根据485总线系统中的各个设备所分配的唯一地址,预先为各个设备分别设置长短不一的轮询周期,其中数据发送优先级相对较高的设备对应的轮询周期相对较短。也就是说,优先级相对较高的设备每隔一个较短的周期时长就查询一次冲突检测信号,而优先级相对较低的设备每隔一个较长的周期时长才查询一次冲突检测信号。
在上述等待,直到冲突检测信号为“空闲”状态的步骤中,还包括以下子步骤:
根据轮询周期和数据发送优先级,周期性轮询检测冲突检测信号接口中的冲突检测信号的状态,直到检测到冲突检测信号为“空闲”状态。
此外,在本实施方式中,为485总线系统中的各个设备根据预先设置的唯一地址所分配的不同轮询周期,间接地为各个设备设置通信时的485总线抢占优先级,使各个设备通信时可以根据不同的优先级先后抢占485总线发送通信数据。
本发明第三实施方式涉及一种485总线系统异步半双工通信方法。图3和图4是该485总线系统异步半双工通信方法的流程示意图。
第三实施方式在第一实施方式的基础上进行了改进,主要改进之处在于:主要是引入了优先级,以解决或减少多个设备需要同时数据发送时的冲撞问题。
这里提供了三个方案:
方案一如下:
预先为485总线系统中的各个设备分配长短不一的等待时间T0,其中,数据发送优先级相对较高的设备对应的等待时间T0相对较短,各设备在将冲突检测信号置忙后,先对数据传输差分信号接口监听T0时间(T0时间段内暂不发送数据),如果在T0时间内没有发现有其它设备发送数据,才开始发送数据,进一步解决了多个设备需要同时数据发送时的冲撞问题,同时保证了各设备的数据发送的优先级先后顺序。
在设备发送数据之前,如果检测到冲突检测信号为“空闲”状态,则先等待T1的时间,并在此期内检测冲突检测信号接口中的冲突检测信号的状态,一旦检测到为“忙”回到最初的状态,如检测到为“空闲”则将自身的冲突检测信号置为“忙”状态并保持与优先级相关的T2时间后,自身的冲突检测信号再置为“空闲”状态并在T3的时间内检测是否有“忙”状态的冲突检测信号,若T3时间内未检测冲突检测信号为“忙”,再将自身的冲突检测信号置为“忙”状态并发送数据,且T1大于T3,优先级相对较高的设备对应的T2相对较大,可以只从冲突检测信号的角度解决需要发送数据的多个设备同时占用总线和485通信总线繁忙的问题,进一步解决通信冲突或冲撞的问题。
具体地说:
上述将该设备自身的冲突检测信号接口中的冲突检测信号置为“忙”状态后,通过485总线数据传输差分信号接口发送数据的步骤中,还包括以下子步骤:
预先为485总线系统中的各个设备分配长短不一的等待时间T0,其中,数据发送优先级相对较高的设备对应的等待时间T0相对较短。
等待T0时间,在等待期间检测485总线数据传输差分信号接口是否有数据传输;
若T0时间内检测到有数据传输,则将设备自身的冲突检测信号置为“空闲”状态后,回到检测冲突检测信号接口中的冲突检测信号的状态的步骤;
若T0时间内没有检测到有数据传输,则通过485总线数据传输差分信号接口发送数据,待数据发送完毕后,再将设备自身的冲突检测信号置为“空闲”状态。
方案二如下:
作为本发明的一个优选实施例,如图3所示,上述将该设备自身的冲突检测信号接口中的冲突检测信号置为“忙”状态后,通过485总线数据传输差分信号接口发送数据的步骤中,还包括以下子步骤:
在步骤301中,检测冲突检测信号接口中的冲突检测信号的状态。
若检测到冲突检测信号为“空闲”状态,则进入步骤302;若检测到冲突检测信号为“忙”状态,则返回步骤301,继续检测冲突检测信号接口中的冲突检测信号的状态。
在步骤302中,若检测到冲突检测信号为“空闲”状态,则将设备自身的冲突检测信号接口的冲突检测信号置为“忙”状态。
此后进入步骤303,在T0的时间内,检测485总线数据传输差分信号接口是否有数据传输(可通过自身是否接收到数据判断是否有数据传输)。
若检测到有数据传输,则进入步骤304;否则进入步骤305。
在步骤304中,若检测到485总线数据传输差分信号接口有数据传输,则将设备自身的冲突检测信号置为“空闲”状态,此后返回步骤301,继续检测冲突检测信号接口中的冲突检测信号的状态。
在步骤305中,若没有检测到485总线数据传输差分信号接口有数据传输,则通过485总线数据传输差分信号接口发送数据。
待数据发送完毕后,进入步骤306,将设备自身的冲突检测信号置为“空闲”状态,此后结束本流程。
此外,在本发明的其他某些实施方式中,等待时间T0长短的设置可以与设备对应的轮询周期和唯一地址有关。
预先为485总线系统中的各个设备设置三个时间片T1、T2和T3,其中,T1大于T3,优先级相对较高的设备对应的T2相对较大;
将该设备自身的冲突检测信号接口中的冲突检测信号置为“忙”状态后,通过485总线数据传输差分信号接口发送数据的步骤中,还包括以下子步骤:
检测冲突检测信号接口中的冲突检测信号的状态;
如果检测到冲突检测信号为“空闲”状态,则在等待T1的时间内检测冲突检测信号接口中的冲突检测信号的状态,如果检测到冲突检测信号为“忙”状态,则回到检测冲突检测信号接口中的冲突检测信号的状态的步骤,如果在等待T1的时间内冲突检测信号始终为“空闲”状态,则将设备自身的冲突检测信号接口中的冲突检测信号置为“忙”状态;
若设备自身的冲突检测信号接口中的冲突检测信号保持“忙”状态的时间超出T2,则将设备自身的冲突检测信号接口中的冲突检测信号置为“空闲”状态;
在T3的时间内检测冲突检测信号接口中的冲突检测信号的状态,如果检测到冲突检测信号为“忙”状态,则回到检测冲突检测信号接口中的冲突检测信号的状态的步骤,如果在此T3的时间内冲突检测信号始终为“空闲”状态,则将设备自身的冲突检测信号接口中的冲突检测信号置为“忙”状态后,通过485总线数据传输差分信号接口发送数据。
方案三如下:
作为本发明的一个优选实施例,如图4所示,上述将该设备自身的冲突检测信号接口中的冲突检测信号置为“忙”状态后,通过485总线数据传输差分信号接口发送数据的步骤中,还包括以下子步骤:
在步骤401中,检测冲突检测信号接口中的冲突检测信号的状态。
如果检测到冲突检测信号为“空闲”状态,则进入步骤402;否则返回步骤401,继续检测冲突检测信号接口中的冲突检测信号的状态。
此后进入步骤402,如果检测到冲突检测信号为“空闲”状态,则在等待T1的时期内,检测冲突检测信号接口中的冲突检测信号的状态。
若在等待T1的时期内检测到冲突检测信号为“空闲”状态,则进入步骤403;否则返回步骤401,检测冲突检测信号接口中的冲突检测信号的状态。
在步骤403中,若在等待T1的时期内检测到冲突检测信号为“空闲”状态,则将设备自身的冲突检测信号接口中的冲突检测信号置为“忙”状态。
此后进入步骤404,检测设备自身的冲突检测信号接口中的冲突检测信号保持“忙”状态的时间是否超出T2。
若是,则进入步骤405;否则继续执行步骤404,检测设备自身的冲突检测信号接口中的冲突检测信号保持“忙”状态的时间是否超出T2。
在步骤405中,将设备自身的冲突检测信号接口中的冲突检测信号置为“空闲”状态。
此后进入步骤406,检测冲突检测信号接口中的冲突检测信号的状态。
若检测到冲突检测信号为“空闲”状态,则进入步骤407;若检测到冲突检测信号为“忙”状态,就回到步骤401,检测冲突检测信号接口中的冲突检测信号的状态。
在步骤407中,判断步骤406中的冲突检测信号接口中的冲突检测信号的状态的检测时间是否超出T3。
若是,则进入步骤408;否则返回步骤406,继续检测冲突检测信号接口中的冲突检测信号的状态。
在步骤408中,将设备自身的冲突检测信号置为“忙”状态。
此后进入步骤409,通过485总线数据传输差分信号接口发送数据,此后结束本流程。
作为本发明的一个优选实施例,当该485总线系统通信时,总线上任意一台设备可以在任意时刻向总线上其他任意一台设备发起通信,因此总线上没有严格意义上的主从设备之分。如下图8所示,设备#1在某一时刻向设备#2发送通信数据,此时会出现以下两种情况:
1、这一刻总线上没有通信数据传输,即总线没有被占用;
2、这一刻总线上正好有通信数据在传输,即总线已经被占用;
针对第一种情况,预先设定BUSY接口状态为空闲时,总线无数据传输(或没有被占用)处于释放状态;BUSY接口状态为繁忙时,总线上正好有通信数据在传输(或处于占用状态)。
设备#1要向设备#2发送数据,设备#1先检查BUSY接口,当总线占用完毕,使用总线的设备将总线释放后,设备#1侦听到此时总线处于释放,立刻占用总线,将BUSY接口状态置为繁忙,然后通过485总线数据传输差分信号接口D+/D-将通信数据发送出去,数据发送完毕后释放总线。总线上所有设备都将收到该条数据,并通过数据中的地址比对来判断该条数据是否是需要接收处理的数据。设备#2收到该数据进行地址比对后确定该数据是需要接收并处理的数据。其它设备收到该数据进行地址比对后不做任何处理。
针对第二种情况,BUSY接口状态繁忙,总线上有通信数据正在传输,总线处于使用状态,以3台设备为例,优先级1的设备#1优先级最低,优先级2的设备#2优先级为第二,优先级3的设备#3优先级最高,优先级的高低可以通过占用485总线发送数据的时间T的个数来确定,如设备#3为3T,设备#2为2T,设备#1为1T。
设备工作时,BUSY信号在总线释放时为高,当有任意设备占用时为低。
任意一台设备如果想要占用总线,首先持续2t时间检测总线是否为释放状态(BUSY信号为高),如果为释放状态则占用总线,将BUSY信号置为低,如果在2t时间中有其它设备先占用总线,那么该设备需要重新持续2t,再检测BUSY信号是否为高。根据每台设备的不同优先级,将BUSY信号置低不同的时间后再释放1t时间,在释放的1t时间内检测总线是否为释放状态,如果为释放状态,则立即占用,并置BUSY信号为低,如果BUSY信号不为低,说明其它优先级更高的设备也在试图占用总线,即进入等待状态,重新开始检测BUSY信号状态。在本实施方式中,T和t分别代表一个时间步长,T和t可以是相等的,也可以是不等的。
图5、图6和图7是一种485总线系统异步半双工通信方法的信号变化时序示意图,任意优先级的设备只要先占用了总线(置BUSY信号为低),那么其它优先级的设备要使用总线时都会等待,直到上一台设备占用完。
如图5所示,优先级为3的设备#3完成了持续2t的检测后将总线占用,此时,优先级为1的设备#1和优先级为2的设备#2由于没有完成2t检测,所以无法占用总线,只能等待。在优先级为3的设备#3释放1t的时间内,由于其它设备也无法完成2t检测,所以,其它设备还是处于检测等待状态,直到优先级3设备用完总线后释放。同时,如图6所示,优先级为1的设备#1先占用发送完数据,其他设备等待,所以此时各设备按先后顺序占用总线,与设备的优先级无关。
如图7所示,3个设备同时占用总线发生冲突时,优先级起效。
3台设备同时完成了2t检测,优先级为1的设备#1释放总线1t时发现BUSY信号还是置低的,说明有优先级更高的设备在占用总线,即进入等待状态重新检测BUSY信号,优先级为2的设备#2和优先级为1的设备#1释放总线1t时都发现BUSY信号还是置低的,也进入等待状态。优先级为3的设备#3释放1t时,其它设备都无法完成2t检测,所以优先级为3的设备#3立即占用了总线,开始发送数据。
优先级为3的设备#3数据发送完毕,其他设备同时发现总线释放,随后同时完成了2t检测,此时和上述过程一样,优先级2的设备#2完成了数据发送后,优先级1的设备#1再完成数据发送。
本发明的各方法实施方式均可以以软件、硬件、固件等方式实现。不管本发明是以软件、硬件、还是固件方式实现,指令代码都可以存储在任何类型的计算机可访问的存储器中(例如永久的或者可修改的,易失性的或者非易失性的,固态的或者非固态的,固定的或者可更换的介质等等)。同样,存储器可以例如是可编程阵列逻辑(Programmable Array Logic,简称“PAL”)、随机存取存储器(Random Access Memory,简称“RAM”)、可编程只读存储器(Programmable Read Only Memory,简称“PROM”)、只读存储器(Read-Only Memory,简称“ROM”)、电可擦除可编程只读存储器(Electrically Erasable Programmable ROM,简称“EEPROM”)、磁盘、光盘、数字通用光盘(Digital Versatile Disc,简称“DVD”)等等。
本发明第四实施方式涉及一种485总线系统。图8是该485总线系统的结构示意图。具体地说,如图8所示,该485总线系统包括:
由485总线连接的至少两台设备,每台设备设置有三个信号接口,其中两个信号接口为一对485总线数据传输差分信号接口,另外一个信号接口为冲突检测信号接口,通过导线将各设备相同的信号接口相互连接。
此外,导线可以包括用于485总线系统异步半双工通信的多种类型的导线,例如金属材质导线和合金材质导线等。
具体地说,如图8所示,一组半双工差分信号D+/D-作为485通信连接,所有设备的差分信号数据发送接口即D+/D-接口通过双轴电缆连接,冲突检测BUSY信号接口和接地GND信号接口通过一条双轴线缆连接。
在485总线通信系统中为各设备设置一对数据发送差分信号和一个冲突检测信号,各设备在检测到冲突检测信号为空闲时先置为忙再发送数据,在冲突检测信号为忙时等待,可以以最少的线缆和导线实现485总线半双工通信的防冲突功能,同时系统中各设备间对等连接,而不区分主从设备,且系统中的任何一台设备可向其他的任意设备发送数据。
本发明第五实施方式涉及一种485总线系统。图9是该485总线系统的结构示意图。
第五实施方式在第四实施方式的基础上进行了改进,主要改进之处在于:冲突检测BUSY信号与接地G N D信号通过双轴电缆连接形成一对差分信号,信噪比高,在通信场景中的抗干扰性强和适应性强,提高了通信质量。具体地说:
该485总线系统中的设备还设置有一个接地信号接口,冲突检测信号接口中的冲突检测信号与接地信号接口中的接地信号组成一对差分信号,并通过同一根双轴电缆连接;
一对485总线数据传输差分信号接口通过另一根双轴电缆连接。
此外,在本发明的其他某些实施方式中,在信号噪音不大和干扰因素不强的情况下进行通信,接地GND信号线也可以隐藏。
具体地说,如图9所示,该485总线系统中的设备还包括以下单元:
检测单元,用于当设备需要发送数据时,检测冲突检测信号接口中的冲突检测信号的状态;
置位单元,用于在检测单元检测到冲突检测信号为“空闲”状态时,将该设备自身的冲突检测信号接口中的冲突检测信号置为“忙”状态;
发送单元,用于在置位单元将该设备自身的冲突检测信号接口中的冲突检测信号置为“忙”状态以后,通过485总线数据传输差分信号接口发送数据。
第一和第二实施方式是与本实施方式相对应的方法实施方式,本实施方式可与第一和第二实施方式互相配合实施。第一和第二实施方式中提到的相关技术细节在本实施方式中依然有效,为了减少重复,这里不再赘述。相应地,本实施方式中提到的相关技术细节也可应用在第一和第二实施方式中。
本发明第六实施方式涉及一种485总线系统。图10是该485总线系统的结构示意图。
第六实施方式在第五实施方式的基础上进行了改进,主要改进之处在于:为485总线系统中的各个设备根据预先设置的唯一地址分配不同的轮询周期,并且数据发送优先级相对较高的设备对应的轮询周期相对较短,这就为各个设备的数据发送间接地设置了485总线抢占优先级,解决了需要发送数据的多个设备同时占用总线和485通信总线繁忙的问题和通信碰撞的问题。
具体地说:如图10所示,该485总线系统中的设备还包括以下单元:
设置单元,用于根据485总线系统中的各个设备所分配的唯一地址,预先为各个设备分别设置长短不一的轮询周期,其中数据发送优先级相对较高的设备对应的轮询周期相对较短;
上述设置单元,还用于为485总线系统中的各个设备分配长短不一的等待时间T0,其中数据发送优先级相对较高的设备对应的等待时间T0相对较短;
同时,上述检测单元、置位单元和发送单元根据各自的功能共同执行以下的方法步骤:
将该设备自身的冲突检测信号接口中的冲突检测信号置为“忙”状态后,通过485总线数据传输差分信号接口发送数据的步骤中,还包括以下子步骤:将设备自身的冲突检测信号接口中的冲突检测信号置为“忙”状态;
等待T0时间,在等待期间检测485总线数据传输差分信号接口是否有数据传输;
若T0时间内检测到有数据传输,则将设备自身的冲突检测信号置为“空闲”状态后,回到检测冲突检测信号接口中的冲突检测信号的状态的步骤;
若T0时间内没有检测到有数据传输,则通过485总线数据传输差分信号接口发送数据,待数据发送完毕后,再将设备自身的冲突检测信号置为“空闲”状态。
上述设置单元,还用于为485总线系统中的各个设备设置三个时间片T1、T2和T3,其中,T1大于T3,优先级相对较高的设备对应的T2相对较大;
同时,上述检测单元、置位单元和发送单元根据各自的功能共同执行以下的方法步骤:
将该设备自身的冲突检测信号接口中的冲突检测信号置为“忙”状态后,通过485总线数据传输差分信号接口发送数据的步骤中,还包括以下子步骤:
检测冲突检测信号接口中的冲突检测信号的状态;
如果检测到冲突检测信号为“空闲”状态,则在等待T1的时间内检测冲突检测信号接口中的冲突检测信号的状态,如果检测到冲突检测信号为“忙”状态,则回到检测冲突检测信号接口中的冲突检测信号的状态的步骤,如果在等待T1的时间内冲突检测信号始终为“空闲”状态,则将设备自身的冲突检测信号接口中的冲突检测信号置为“忙”状态;
若设备自身的冲突检测信号接口中的冲突检测信号保持“忙”状态的时间超出T2,则将设备自身的冲突检测信号接口中的冲突检测信号置为“空闲”状态;
在T3的时间内检测冲突检测信号接口中的冲突检测信号的状态,如果检测到冲突检测信号为“忙”状态,则回到检测冲突检测信号接口中的冲突检测信号的状态的步骤,如果在此T3的时间内冲突检测信号始终为“空闲”状态,则将设备自身的冲突检测信号接口中的冲突检测信号置为“忙”状态后,通过485总线数据传输差分信号接口发送数据。
上述检测单元,还用于根据设置单元所设置的轮询周期和数据发送优先级,周期性轮询检测冲突检测信号接口中的冲突检测信号的状态,直到冲突检测信号为“空闲”状态。
第三实施方式是与本实施方式相对应的方法实施方式,本实施方式可与第三实施方式互相配合实施。第三实施方式中提到的相关技术细节在本实施方式中依然有效,为了减少重复,这里不再赘述。相应地,本实施方式中提到的相关技术细节也可应用在第三实施方式中。
需要说明的是,本发明各设备实施方式中提到的各单元都是逻辑单元,在物理上,一个逻辑单元可以是一个物理单元,也可以是一个物理单元的一部分,还可以以多个物理单元的组合实现,这些逻辑单元本身的物理实现方式并不是最重要的,这些逻辑单元所实现的功能的组合是才解决本发明所提出的技术问题的关键。此外,为了突出本发明的创新部分,本发明上述各设备实施方式并没有将与解决本发明所提出的技术问题关系不太密切的单元引入,这并不表明上述设备实施方式并不存在其它的单元。
虽然通过参照本发明的某些优选实施方式,已经对本发明进行了图示和描述,但本领域的普通技术人员应该明白,可以在形式上和细节上对其作各种改变,而不偏离本发明的精神和范围。
Claims (5)
1.一种485总线系统异步半双工通信方法,其特征在于,所述485总线系统包括:由485总线连接的至少两台设备,每台设备设置有三个信号接口,其中两个信号接口为一对485总线数据传输差分信号接口,另外一个信号接口为冲突检测信号接口,通过导线将各设备相同的信号接口相互连接;所述方法包括以下步骤:
步骤201:所述设备需要发送数据时,检测所述冲突检测信号接口中的冲突检测信号的状态;
如果检测到所述冲突检测信号为“忙”状态,则等待,继续执行步骤201,直到所述冲突检测信号为“空闲”状态;
步骤202:如果检测到所述冲突检测信号为“空闲”状态,则将该设备自身的冲突检测信号接口中的冲突检测信号置为“忙”状态后,进入步骤203:通过所述485总线数据传输差分信号接口发送数据;
预先为所述485总线系统中的各个设备设置三个时间片T1、T2和T3,其中,T1大于T3,优先级相对较高的设备对应的T2相对较大;
所述将该设备自身的冲突检测信号接口中的冲突检测信号置为“忙”状态后,通过485总线数据传输差分信号接口发送数据的步骤中,还包括以下子步骤:
步骤401:检测所述冲突检测信号接口中的冲突检测信号的状态;
如果检测到冲突检测信号为“空闲”状态,则进入步骤402:在等待T1的时间内检测所述冲突检测信号接口中的冲突检测信号的状态,如果检测到冲突检测信号为“忙”状态,则回到所述检测冲突检测信号接口中的冲突检测信号的状态的步骤401,如果在等待T1的时间内冲突检测信号始终为“空闲”状态,则进入步骤403:将所述设备自身的冲突检测信号接口中的冲突检测信号置为“忙”状态;
若所述设备自身的冲突检测信号接口中的冲突检测信号保持“忙”状态的时间超出T2,则进入步骤405:将设备自身的冲突检测信号接口中的冲突检测信号置为“空闲”状态;
步骤406:在T3的时间内检测所述冲突检测信号接口中的冲突检测信号的状态,如果检测到冲突检测信号为“忙”状态,则回到所述检测冲突检测信号接口中的冲突检测信号的状态的步骤401;
步骤407:如果在此T3的时间内冲突检测信号始终为“空闲”状态,则进入步骤408:将所述设备自身的冲突检测信号接口中的冲突检测信号置为“忙”状态后,进入步骤409:通过所述485总线数据传输差分信号接口发送数据。
2.根据权利要求1所述的485总线系统异步半双工通信方法,其特征在于,所述设备还设置有一个接地信号接口;
所述冲突检测信号接口中的冲突检测信号与接地信号接口中的接地信号组成一对差分信号,并通过同一根双轴电缆连接;
所述一对485总线数据传输差分信号接口通过另一根双轴电缆连接。
3.一种485总线系统,其特征在于,包括:
由485总线连接的至少两台设备,每台设备设置有三个信号接口,其中两个信号接口为一对485总线数据传输差分信号接口,另外一个信号接口为冲突检测信号接口,通过导线将各设备相同的信号接口相互连接;
该485总线系统采用权利要求1所述的方法进行异步半双工通信。
4.根据权利要求3所述的485总线系统,其特征在于,所述设备还设置有一个接地信号接口;
所述冲突检测信号接口中的冲突检测信号与接地信号接口中的接地信号组成一对差分信号,并通过同一根双轴电缆连接;
所述一对485总线数据传输差分信号接口通过另一根双轴电缆连接。
5.根据权利要求4所述的485总线系统,其特征在于,所述设备还包括以下单元:
检测单元,用于当所述设备需要发送数据时,检测冲突检测信号接口中的冲突检测信号的状态;
置位单元,用于在所述检测单元检测到冲突检测信号为“空闲”状态时,将该设备自身的冲突检测信号接口中的冲突检测信号置为“忙”状态;
发送单元,用于在所述置位单元将该设备自身的冲突检测信号接口中的冲突检测信号置为“忙”状态以后,通过所述485总线数据传输差分信号接口发送数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210038658.2A CN102546141B (zh) | 2012-02-20 | 2012-02-20 | 485总线系统及其异步半双工通信方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210038658.2A CN102546141B (zh) | 2012-02-20 | 2012-02-20 | 485总线系统及其异步半双工通信方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102546141A CN102546141A (zh) | 2012-07-04 |
CN102546141B true CN102546141B (zh) | 2015-02-18 |
Family
ID=46352165
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210038658.2A Active CN102546141B (zh) | 2012-02-20 | 2012-02-20 | 485总线系统及其异步半双工通信方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102546141B (zh) |
Families Citing this family (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB201214859D0 (en) * | 2012-08-20 | 2012-10-03 | Control Tech Ltd | Node address allocation |
CN103116563B (zh) * | 2012-11-09 | 2015-08-05 | 瑞斯康达科技发展股份有限公司 | 一种主机通信方法、一种主机及通信系统 |
CN103841279B (zh) * | 2014-03-25 | 2017-07-28 | 东南大学 | 总线式多方通信数字电话系统 |
CN105472290B (zh) * | 2014-09-12 | 2019-04-09 | 杭州海康威视数字技术股份有限公司 | 数据收发运行模式的处理方法及装置 |
CN105591857B (zh) * | 2015-03-02 | 2018-09-25 | 海信(山东)空调有限公司 | 一种485多主通信的方法和装置 |
CN105677608B (zh) * | 2015-12-31 | 2019-01-04 | 浙江众合科技股份有限公司 | 一种多主rs485总线仲裁方法及系统 |
CN106302066A (zh) * | 2016-08-26 | 2017-01-04 | 珠海格力电器股份有限公司 | 无主从通信方法及装置 |
CN106953809B (zh) * | 2017-02-24 | 2020-04-14 | 烽火通信科技股份有限公司 | 一种基于485分时通信的设备资源采集方法 |
CN106873513A (zh) * | 2017-03-01 | 2017-06-20 | 深圳市亿维自动化技术有限公司 | 一种plc系统及其主从连接结构 |
CN107294827B (zh) * | 2017-05-27 | 2019-10-25 | 烽火通信科技股份有限公司 | 避免主从设备冲突的rs485通信系统及方法 |
CN108365944A (zh) * | 2018-03-06 | 2018-08-03 | 山东比特智能科技股份有限公司 | 一种半双工总线的通信方法、系统及房控系统 |
CN110752909B (zh) * | 2018-07-24 | 2022-05-27 | 中国航空工业集团公司西安飞行自动控制研究所 | 一种485总线半双工通信的软件处理方法 |
CN109495215B (zh) * | 2018-12-20 | 2022-02-11 | 山东比特智能科技股份有限公司 | 一种半双工总线的通信方法、系统、装置及可读存储介质 |
CN109995632B (zh) * | 2019-05-16 | 2021-11-02 | 阳光电源股份有限公司 | 多机通信系统的通信方法、装置及系统 |
CN112217701A (zh) * | 2019-07-09 | 2021-01-12 | 杭州萤石软件有限公司 | 总线冲突避免方法及装置 |
CN110609803B (zh) * | 2019-09-17 | 2021-02-02 | 上海钧正网络科技有限公司 | 主从通信方法、装置、系统、计算机设备和可读存储介质 |
CN111224748A (zh) * | 2019-12-26 | 2020-06-02 | 北京启冠智能科技股份有限公司 | 有线网络传输数据 |
CN112231260B (zh) * | 2020-10-21 | 2022-08-02 | 中煤科工集团重庆研究院有限公司 | 一种基于动态优先级的抢占式多主rs485总线通讯方法 |
CN112491675B (zh) * | 2020-10-26 | 2022-10-18 | 创泽智能机器人集团股份有限公司 | 一种数据通信方法、装置、设备及计算机可读存储介质 |
CN113535626B (zh) * | 2021-07-28 | 2022-07-26 | 北京深思数盾科技股份有限公司 | 一种串口通讯系统、串口通讯方法及智能门锁 |
CN114826812B (zh) * | 2022-02-18 | 2024-05-03 | 浪潮工业互联网股份有限公司 | 一种rs485通信多主站的实现方法及系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1033027B1 (en) * | 1997-10-31 | 2004-01-28 | Nortel Networks Limited | Communications methods and apparatus |
CN1888994A (zh) * | 2005-06-29 | 2007-01-03 | 沈阳中科博微自动化技术有限公司 | 多串行总线无源背板 |
CN101005427A (zh) * | 2006-12-22 | 2007-07-25 | 华为技术有限公司 | 一种485总线系统和传送数据的方法 |
CN101498963A (zh) * | 2009-03-02 | 2009-08-05 | 北京红旗胜利科技发展有限责任公司 | 一种降低cpu功耗的方法和一种cpu、一种数字芯片 |
CN102355507A (zh) * | 2011-09-29 | 2012-02-15 | 南京国电南自轨道交通工程有限公司 | 一种新型的带自检和冲突检测的串行通信接口 |
-
2012
- 2012-02-20 CN CN201210038658.2A patent/CN102546141B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1033027B1 (en) * | 1997-10-31 | 2004-01-28 | Nortel Networks Limited | Communications methods and apparatus |
CN1888994A (zh) * | 2005-06-29 | 2007-01-03 | 沈阳中科博微自动化技术有限公司 | 多串行总线无源背板 |
CN101005427A (zh) * | 2006-12-22 | 2007-07-25 | 华为技术有限公司 | 一种485总线系统和传送数据的方法 |
CN101498963A (zh) * | 2009-03-02 | 2009-08-05 | 北京红旗胜利科技发展有限责任公司 | 一种降低cpu功耗的方法和一种cpu、一种数字芯片 |
CN102355507A (zh) * | 2011-09-29 | 2012-02-15 | 南京国电南自轨道交通工程有限公司 | 一种新型的带自检和冲突检测的串行通信接口 |
Also Published As
Publication number | Publication date |
---|---|
CN102546141A (zh) | 2012-07-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102546141B (zh) | 485总线系统及其异步半双工通信方法 | |
CN103645975B (zh) | 一种异常恢复的方法及串行总线传输装置 | |
CN102023953B (zh) | 具有多路i2c总线的系统的控制方法 | |
CN101399654B (zh) | 一种串行通信方法和装置 | |
CN102857397A (zh) | 一种多主异步双工差分总线及通讯方法 | |
EP3092574B1 (en) | Multi-master bus | |
CN106603359B (zh) | Plc系统的通讯控制方法及装置 | |
CN109932966B (zh) | 一种基于m-lvds总线实时高效数据传输方法 | |
CN103617138A (zh) | 多主机仲裁方法及多主机通信系统 | |
CN105786734B (zh) | 数据传输的方法、扩展装置、外围设备及系统 | |
CN107771329A (zh) | 具有自动化协议的uart | |
CN210324188U (zh) | 一种集成电路总线iic主从竞争自动切换设备及其系统 | |
CN106936677B (zh) | 一种模块化ups系统及功率设备的数据传输方法 | |
CN110995889A (zh) | 地址分配系统和方法 | |
EP0598297B1 (en) | A polled communications network | |
EP0280670B1 (en) | Method and apparatus for transmitting information via a bus system | |
CN116578519A (zh) | 一种通信方法、装置、设备及介质 | |
CN101281510B (zh) | 一种双i2c总线设置方法和双i2c总线系统 | |
CN106559299A (zh) | 串行通信设备、串行通信系统以及串行通信方法 | |
CN210518417U (zh) | 地址分配系统 | |
WO2002101992A1 (en) | Communication apparatus and method for supporting carrier sense multiple access/collision detection | |
CN104461991A (zh) | 具有较高吞吐量的增强型串行接口系统和方法 | |
KR20150061348A (ko) | I2c 통신에서 디바이스 어드레스를 설정하는 방법 및 디바이스 어드레스를 설정하는 장치 | |
JP4636257B2 (ja) | フィルタリングリピート機能 | |
CN201629762U (zh) | 基于rs485总线方式的多节点网络电路 |
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 |