一种RS485总线多主机竞争切换方法与流程

文档序号:22320717发布日期:2020-09-23 01:54阅读:427来源:国知局
一种RS485总线多主机竞争切换方法与流程

本发明涉及通讯技术领域,具体是一种rs485总线多主机竞争切换方法。



背景技术:

现有的rs485总线一般都只有一个主机,有可能出现两个主机冲突的情况下往往会有上级控制器去控制切换主从模式。通过上级控制器切换rs485的主从模式,一旦脱离了控制器,两个主机将会一直在争夺总线控制权,以至于整个总线都不能正常使用。

现有技术存在以下两点不足:

不足1:需要额外的控制器干预才能实现主从切换。

不足2:上级控制器不在时,一旦有两个主机一直争夺总线控制权就会使得整个总线瘫痪且不能恢复。



技术实现要素:

本发明的目的在于提供一种rs485总线多主机竞争切换方法,以解决上述背景技术中提出的问题。

为实现上述目的,本发明提供如下技术方案:

一种rs485总线多主机竞争切换方法,具体步骤如下:两台单机设备并联,使用拨码开关来设置单机设备不同的优先级,然后单机设备根据优先级来确定上电到启动通信的时间,如果两台设备的rs485_1和rs485_2连在一起后再上电,单机控制器上电后,rs485_1和rs485_2都初始化为从机,根据拨码开关设定的优先级来确定超时等待时间,优先级高的超时等待时间短,优先级低的超时等待时间长一些,在超时等待期间,如果rs485_2检测到了rs485总线二上有数据在流动,则维持rs485_2的从机状态,如果在整个超时等待时间内都没有检测到总线二上有数据,则证明rs485总线二上没有主机设备,此时将rs485_2从从机模式切换到主机模式,如果两台设备分别上电后再将rs485_1和rs485_2连在一起,两台单机设备分别上电,rs485总线一和rs485总线二都是断开的,因此,超过了超时等待时间后,两个单机控制器都由从机模式切换到了主机模式,分别控制着各自的rs485总线二,当单机控制器检测到rs485总线二有总线冲突时,立即退出主机模式,切换到从机模式,执行上电时候的延时等待机制,两台设备一起退出主模式进入超时等待状态,优先级高的设备等待时间短,会先切换到主机模式,优先级低的设备在超时等待期间会检测到优先级高的设备发出的数据,继续保持从机模式。

作为本发明的进一步技术方案:并机状态下单机控制器除了需要询问下级从设备的信息外,还要通过rs485总线二询问从机状态下的其他单机控制器来获取另一个单机设备的状态。

作为本发明的进一步技术方案:当两个单机设备的rs485总线都连接在一起时,rs485总线二上就有两个主机,两个主机都在一直发送命令,会出现总线冲突。

作为本发明的进一步技术方案:所述优先级高的超时等待时间设置为10ms。

作为本发明的进一步技术方案:所述优先级低的超时等待时间设置为100ms。

与现有技术相比,本发明的有益效果是:(1)通过检测总线上的数据来确认总线上是否存在主机,不需要外部控制器干预即可完成准确的判断。(2)可以确保并机的单机设备每次上电后都是由同一个设备作为主机,无需额外设置。

附图说明

图1是单机设备组成示意图。

图2为并联使用的单机设备示意图。

图3为软件处理流程图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

请参阅图1-3,实施例1:一种rs485总线多主机竞争切换方法,具体步骤如下:两台单机设备并联,使用拨码开关来设置单机设备不同的优先级,然后单机设备根据优先级来确定上电到启动通信的时间,

分为以下两种情况:

1、如果两台设备的rs485_1和rs485_2连在一起后再上电,单机控制器上电后,rs485_1和rs485_2都初始化为从机,根据拨码开关设定的优先级来确定超时等待时间,优先级高的超时等待时间短,优先级低的超时等待时间长一些,在超时等待期间,如果rs485_2检测到了rs485总线二上有数据在流动,则维持rs485_2的从机状态,如果在整个超时等待时间内都没有检测到总线二上有数据,则证明rs485总线二上没有主机设备,此时将rs485_2从从机模式切换到主机模式。

2、如果两台设备分别上电后再将rs485_1和rs485_2连在一起,两台单机设备分别上电,rs485总线一和rs485总线二都是断开的,因此,超过了超时等待时间后,两个单机控制器都由从机模式切换到了主机模式,分别控制着各自的rs485总线二,当两个单机设备的rs485总线都连接在一起的时候,rs485总线二上就有两个主机,而且两个主机都在一直发送命令,此时必然会出现总线冲突。当单机控制器检测到rs485总线二有总线冲突时,立即退出主机模式,切换到从机模式,执行上电时候的延时等待机制,两台设备一起退出主模式进入超时等待状态,优先级高的设备等待时间短,会先切换到主机模式,优先级低的设备在超时等待期间会检测到优先级高的设备发出的数据,继续保持从机模式。

如此,就能保证不管是先连接总线再上电还是先上电再连接总线,都能保证优先级高的设备为主机,优先级低的设备为从机。两种情况综合在一起后的软件处理流程如图3。

实施例2,在实施例1的基础上,并机状态下单机控制器除了需要询问下级从设备的信息外,还要通过rs485总线二询问从机状态下的其他单机控制器来获取另一个单机设备的状态。

对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化囊括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。

此外,应当理解,虽然本说明书按照实施方式加以描述,但并非每个实施方式仅包含一个独立的技术方案,说明书的这种叙述方式仅仅是为清楚起见,本领域技术人员应当将说明书作为一个整体,各实施例中的技术方案也可以经适当组合,形成本领域技术人员可以理解的其他实施方式。



技术特征:

1.一种rs485总线多主机竞争切换方法,其特征在于,具体步骤如下:两台单机设备并联,使用拨码开关来设置单机设备不同的优先级,然后单机设备根据优先级来确定上电到启动通信的时间,如果两台设备的rs485_1和rs485_2连在一起后再上电,单机控制器上电后,rs485_1和rs485_2都初始化为从机,根据拨码开关设定的优先级来确定超时等待时间,优先级高的超时等待时间短,优先级低的超时等待时间长一些,在超时等待期间,如果rs485_2检测到了rs485总线二上有数据在流动,则维持rs485_2的从机状态,如果在整个超时等待时间内都没有检测到总线二上有数据,则证明rs485总线二上没有主机设备,此时将rs485_2从从机模式切换到主机模式,如果两台设备分别上电后再将rs485_1和rs485_2连在一起,两台单机设备分别上电,rs485总线一和rs485总线二都是断开的,因此,超过了超时等待时间后,两个单机控制器都由从机模式切换到了主机模式,分别控制着各自的rs485总线二,当单机控制器检测到rs485总线二有总线冲突时,立即退出主机模式,切换到从机模式,执行上电时候的延时等待机制,两台设备一起退出主模式进入超时等待状态,优先级高的设备等待时间短,会先切换到主机模式,优先级低的设备在超时等待期间会检测到优先级高的设备发出的数据,继续保持从机模式。

2.根据权利要求1所述的一种rs485总线多主机竞争切换方法,其特征在于,并机状态下单机控制器除了需要询问下级从设备的信息外,还要通过rs485总线二询问从机状态下的其他单机控制器来获取另一个单机设备的状态。

3.根据权利要求2所述的一种rs485总线多主机竞争切换方法,其特征在于,当两个单机设备的rs485总线都连接在一起时,rs485总线二上就有两个主机,两个主机都在一直发送命令,会出现总线冲突。

4.根据权利要求3所述的一种rs485总线多主机竞争切换方法,其特征在于,所述优先级高的超时等待时间设置为10ms。

5.根据权利要求4所述的一种rs485总线多主机竞争切换方法,其特征在于,所述优先级低的超时等待时间设置为100ms。


技术总结
本发明公开了一种RS485总线多主机竞争切换方法,具体步骤如下:两台单机设备并联,使用拨码开关来设置单机设备不同的优先级,然后单机设备根据优先级来确定上电到启动通信的时间,如果两台设备的RS485_1和RS485_2连在一起后再上电,单机控制器上电后,RS485_1和RS485_2都初始化为从机,本发明的有益效果是:(1)通过检测总线上的数据来确认总线上是否存在主机,不需要外部控制器干预即可完成准确的判断。(2)可以确保并机的单机设备每次上电后都是由同一个设备作为主机,无需额外设置。

技术研发人员:张浩彬;谭东超;刘跃武
受保护的技术使用者:深圳市天磁科技有限公司
技术研发日:2020.07.15
技术公布日:2020.09.22
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1