本实用新型涉及自动控制领域,具体是一种集成电路总线iic主从竞争自动切换设备及其系统。
背景技术:
现有的iic总线上有可能出现两个主机冲突的情况,往往会有上级控制器去控制切换主从模式。通过上级控制器切换iic的主从,一旦脱离了控制器,两个主机将会一直在争夺总线控制权,以至于整个总线都不能正常使用。
上述现有技术存在以下不足:(1)需要额外的控制器干预才能实现主从切换;(2)上级控制器不在时,一旦有两个主机一直争夺总线控制权就会使得整个总线瘫痪且不能恢复。
技术实现要素:
本实用新型的目的在于提供一种集成电路总线iic主从竞争自动切换设备及其系统,以解决上述背景技术中提出的问题。
为实现上述目的,本实用新型提供如下技术方案:
一种集成电路总线iic主从竞争自动切换设备,包含一个管理器以及与所述管理器连接的多个从机设备,管理器与从机设备、以及从机设备与从机设备间的通讯总线均采用集成电路总线iic,所述管理器包含两组iic模块,分别为第一iic模块和第二iic模块,第一iic模块与上位机相连接,工作在从机模式,负责上送设备信息至上位机;第二iic模块与从机设备相连接,工作在主机模式,负责收集从机设备的信息,管理器通过第二iic模块将从机设备的信息收集暂存,同时也负责自动切换设备整机的状态管理,上位机通过访问管理器来得到自动切换设备整机状态以及从机设备的信息。所述多个从机设备至少为2个。
作为本实用新型进一步的方案:一种采用所述集成电路总线iic主从竞争自动切换设备的系统,包括多台并联在同一个上位机上的自动切换设备,多台所述自动切换设备中的第一iic模块均通过iic总线连接在一起,多台所述自动切换设备中的管理器的第二iic模块也通过iic总线连接在一起。
作为本实用新型再进一步的方案:所述多台设备并联后管理器的第二iic模块由一个作为主机去询问从机设备的信息,并且由同一个管理器的第一iic模块去响应上位机的命令,其他自动切换设备的第二iic模块退出原来的主机模式,失去主机控制权的管理器将其第一iic模块关闭,相应的端口设为高阻状态,从而使上位机只访问一个固定的地址即获得所有从机设备的信息。
与现有技术相比,本实用新型的有益效果是:本实用新型自动切换设备整机单独工作时,管理器的第二iic模块都是主机,但是两台设备整机并联后管理器的第二iic模块只能由一个作为主机去询问下级设备的信息,并且只能由同一个管理器的第一iic模块去响应上位机的命令,另一个设备的第二iic模块必须退出原来的主机模式,否则将会造成总线冲突使得整个总线瘫痪。失去主机控制权的管理器将其第一iic模块关闭,相应的端口设为高阻状态,这样就保证了上位机只需要访问一个固定的地址即可获得所有从机设备的信息。
附图说明
图1为集成电路总线iic主从竞争自动切换设备的原理框图;
图2为集成电路总线iic主从竞争自动切换系统的一个实施例的原理框图;
图3为集成电路总线iic主从竞争自动切换系统的工作流程图。
具体实施方式
下面将结合本实用新型实施例中的附图,对本实用新型实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本实用新型一部分实施例,而不是全部的实施例。基于本实用新型中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本实用新型保护的范围。
作为本实用新型一种集成电路总线iic主从竞争自动切换设备的一个实施例,如图1所示,包含一个管理器以及与所述管理器连接的多个从机设备,管理器与从机设备、以及从机设备与从机设备间的通讯总线均采用集成电路总线iic,所述管理器包含两组iic模块,分别为第一iic模块和第二iic模块,第一iic模块与上位机相连接,工作在从机模式,负责上送设备信息至上位机;第二iic模块与从机设备相连接,工作在主机模式,负责收集从机设备的信息,管理器通过第二iic模块将从机设备的信息收集暂存,同时也负责自动切换设备整机的状态管理,上位机通过访问管理器来得到自动切换设备整机状态以及从机设备的信息。所述多个从机设备至少为2个。
优选的,图2为本实用新型系统的一个典型实施例,由于系统需求,需要将两个自动切换设备整机并联使用,但是上位机只能有一个iic接口与这套系统相连接,因此需要将管理器的两组iic模块分别连在一起,具体为:多台所述自动切换设备中的第一iic模块均通过iic总线连接在一起,多台所述自动切换设备中的管理器的第二iic模块也通过iic总线连接在一起。
自动切换设备整机单独工作时,管理器的第二iic模块都是主机,但是两台自动切换设备整机并联后管理器的第二iic模块只能由一个作为主机去询问下级设备的信息,并且只能由同一个管理器的第一iic模块去响应上位机的命令,另一个自动切换设备的第二iic模块必须退出原来的主机模式,否则将会造成总线冲突使得整个总线瘫痪。失去主机控制权的管理器将其第一iic模块关闭,相应的端口设为高阻状态。这样能保证上位机只需要访问一个固定的地址即可获得所有从机设备的信息。
两台自动切换设备整机并联,上电顺序有两种可能:
(1)两台设备的第一iic模块和第二iic模块连在一起后再上电:
管理器上电后,第一iic模块和第二iic模块都初始化为从机,根据管理器iic地址设定相应的超时等待时间,地址低的超时等待时间短,例如10ms,地址高的超时等待时间长一些,例如50ms。在超时等待期间,如果第二iic模块检测到了iic总线2上有start、stop信号,则维持第二iic模块的从机状态并将第一iic模块对应的io口设为高阻状态,如果在整个超时等待时间内都没有检测到iic总线2上有start(开始)、stop(停止)信号,则证明iic总线2上没有主机设备,可以将第二iic模块从从机模式切换到主机模式。并机状态下主机管理器除了需要询问下级设备的信息外,还要通过iic总线2询问从机状态下的管理器获取另一个设备整机的状态。
(2)两台设备分别上电后再将第一iic模块和第二iic模块连在一起:
两台自动切换设备分别上电,iic总线1和iic总线2都是断开的,因此,超过了超时等待时间后,两个管理器都由从机模式切换到主机模式,分别控制着各自的iic总线2。当但两个自动切换设备整机的iic总线都连接在一起的时候,iic总线2上就有两个主机,而且两个主机都在一直发送命令,此时会出现大概率的总线冲突。当管理器检测到iic总线2有总线冲突时,立即退出主机模式,切换到从机模式,执行上电时候的延时等待机制。两台设备一起退出主模式进入超时等待状态,地址低的设备等待时间短,必然会先切换到主机模式。因此,低地址设备会先抢到总线控制权,而高地址设备在超时等待器件会检测到低地址设备发出的start(开始)、stop(停止)信号,继续保持从机模式。
如此,就能保证不管是先连接总线再上电还是先上电再连接总线,都能保证地址低的设备为主机,高地址设备为从机。两种情况综合在一起后的处理流程如图3所示。
上述自动切换设备并联数量为两台,但本文提出的系统不局限于两台自动切换设备并联,同样适用于数量多于两个的情况。
对于本领域技术人员而言,显然本实用新型不限于上述示范性实施例的细节,而且在不背离本实用新型的精神或基本特征的情况下,能够以其他的具体形式实现本实用新型。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本实用新型的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化囊括在本实用新型内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。
此外,应当理解,虽然本说明书按照实施方式加以描述,但并非每个实施方式仅包含一个独立的技术方案,说明书的这种叙述方式仅仅是为清楚起见,本领域技术人员应当将说明书作为一个整体,各实施例中的技术方案也可以经适当组合,形成本领域技术人员可以理解的其他实施方式。