C设备控制方法及系统的制作方法
【技术领域】
[0001] 本发明主要涉及数据通信技术领域,更具体地说是涉及一种I2C设备控制方法及 系统。
【背景技术】
[0002] I2C(Inter_IntegratedCircuit,内部集成电路)总线是由PHILIPS公司开发的 一种两线式串行总线,即I2C的串行时钟线(SCL)和I2C的串行数据线(SDA)两根线,用于 连接微控制器及其外围设备,是微电子通信控制领域广泛采用的一种总线标准。
[0003] 在实际应用中,I2C总线上通常会挂载多个I2C设备,这些I2C设备将通过该I2C 总线实现数据交互,然而,由于现有厂家生产的同一类型的I2c设备的从地址相同,这样,当 I2c总线上挂载多个同一类型的I2C设备后,系统将无法根据地址区分开这些同一类型的 I2c设备,从而也就无法实现对指定I2C设备的控制以及指定I2C设备之间的数据交互。
【发明内容】
[0004] 有鉴于此,本发明提供了一种I2C设备控制方法及系统,通过重新为I2C总线挂载 的I2c设备分配唯一的从地址,使得I2C总线挂载多个相同类型I2C设备时,系统也能够准 确识别指定I2c设备,从而实现对指定I2C设备的控制以及指定I2C设备之间的数据交互。
[0005] 为了实现上述目的,本申请提供了以下技术方案:
[0006] 一种I2c设备控制方法,所述方法包括:
[0007] 控制I2C总线当前连接的多个I2C设备逐个通电;
[0008] 在所述多个I2c设备中的任意一个I2C设备通电时,访问所述多个I2C设备的预置 从地址;
[0009] 当接收到所述预置从地址反馈的第一信号时,按照预设规则为当前具有预置从地 址且处于通电状态的I2C设备重新分配一一对应的从地址。
[0010] 优选的,所述方法还包括:
[0011] 控制所述I2c总线上的所有I2C设备供电端口通电;
[0012] 当检测到处于空闲状态的任意一个I2C设备供电端口上插入I2C设备时,进入所述 访问所述多个I2c设备的预置从地址步骤。
[0013] 优选的,所述方法还包括:
[0014] 在第一预设时间内,检测到处于空闲状态的至少两个I2C设备供电端口上均插入 I2c设备时,选择其中的任意一个I2C设备处于通电状态,并返回所述访问所述多个I2C设备 的预置从地址步骤,直至为插入的所有I2c设备均重新分配一一对应的从地址。
[0015] 优选的,检测处于空闲状态的I2C设备供电端口上是否插入I2C设备的过程具体 为:
[0016] 检测电源管理芯片是否产生中断信号,其中,所述中断信号是在检测到所述I2C设 备供电端口的电流消耗量大于第一阈值时产生的。
[0017] 优选的,所述按照预设规则为当前具有预置从地址且处于通电状态的I2c设备重 新分配一一对应的从地址具体为:
[0018] 从预设I2C地址池中任意选择一个地址作为从地址发送至当前具有预置从地址且 处于通电状态的I2c设备,以使所述多个I2C设备具有一一对应的从地址。
[0019] 一种I2C设备控制系统,所述系统包括:
[0020] 第一控制器,用于控制I2c总线当前连接的多个I2C设备逐个通电;
[0021] 与所述多个I2c设备一一对应的可编程控制器;
[0022] I2C控制器,用于在所述多个I2C设备中的任意一个I2C设备通电时,访问该I2C设 备一一对应的可编程控制器的预置从地址,当接收到所述预置从地址反馈的第一信号时, 按照预设规则为当前具有预置从地址且处于通电状态的I2c设备重新分配一一对应的从地 址,并发至所述当前具有预置从地址且处于通电状态的I2c设备一一对应的可编程控制器。
[0023] 优选的,
[0024] 所述第一控制器还用于控制所述I2C总线上的所有I2C设备供电端口通电;
[0025] 则所述I2C控制器还用于检测处于空闲状态的I2C设备供电端口上是否插入I2C设 备,当检测到任意一个I2c设备供电端口上插入I2C设备时,进入所述访问所述多个I2C设 备的预置从地址步骤;当在第一预设时间内,检测到处于空闲状态的至少两个I2c设备供电 端口上均插入I2c设备时,选择其中的任意一个I2C设备处于通电状态,并返回所述访问所 述多个I2C设备的预置从地址步骤,直至为插入的所有I2C设备均重新分配一一对应的从地 址。
[0026] 优选的,所述系统还包括:
[0027] 电源管理芯片,用于在检测到所述I2C设备供电端口的电流消耗量大于第一阈值 时产生中断信号;
[0028] 则所述I2C控制器检测处于空闲状态的I2C设备供电端口上是否插入I2C设备的 过程具体为:检测所述电源管理芯片是否产生中断信号。
[0029] 优选的,所述系统还包括:
[0030] 存储器,用于存储预设I2C地址池,以使所述I2C控制器在所述多个I2C设备中的 每一个I2C设备通电时,从所述预设I2C地址池中任意选择一个地址作为从地址发送至当前 具有预置从地址且处于通电状态的I2c设备。
[0031] 优选的,所述可编程控制器具体为单片机。
[0032] 由此可见,与现有技术相比,本申请提供了一种I2C设备控制方法及装置,控制I2C 总线当前连接的多个I2c设备逐个通电,在这多个I2C设备中任意一I2C设备通电时,通过 访问这多个I2c设备的预置从地址,当接收到所述预置从地址反馈的第一信号时,说明当前 通电的I2c设备具有该预置从地址,是所需的目标I2C设备,为了使系统能够在具有相同地 址的I2c设备中准确识别出该目标I2C设备,本申请在此时按照预设规则为该目标I2C设备 重新分配一一对应的从地址,从而使得I2c总线连接的多个I2C设备都具有唯一的从地址, 以便系统根据该从地址准确识别出所需的目标I2c设备,进而实现对指定I2C设备的控制以 及指定I2c设备之间的数据交互。
【附图说明】
[0033] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现 有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本 发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据 提供的附图获得其他的附图。
[0034] 图1为本发明提供的一种I2C设备控制方法实施例一的流程示意图;
[0035] 图2为一种I2C总线工作系统结构框图;
[0036] 图3为本发明提供的一种I2C设备控制方法实施例二的部分流程示意图;
[0037] 图4为本发明提供的一种I2C设备控制方法实施例三的部分流程示意图;
[0038] 图5为本发明提供的一种I2C设备控制装置实施例四的结构示意图。
【具体实施方式】
[0039] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完 整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于 本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他 实施例,都属于本发明保护的范围。
[0040] 本申请提供了一种I2c设备控制方法及装置,控制I2C总线当前连接的多个I2C设 备逐个通电,在这多个I2C设备中任意一个I2C设备通电时,通过访问这多个I2C设备的预 置从地址,当接收到所述预置从地址反馈的第一信号时,说明当前通电的I2C设备具有该预 置从地址,是所需的目标I2c设备,为了使系统能够在具有相同地址的I2C设备中准确识别 出该目标I2C设备,本申请在此时按照预设规则为该目标I2C设备重新分配一一对应的从地 址,从而使得I2c总线连接的多个I2C设备都具有唯一的从地址,以便系统根据该从地址准 确识别出所需的目标I2c设备,进而实现对指定I2C设备的控制以及指定I2C设备之间的数 据交互。
[0041] 为使本发明提供的上述技术方案的目的、
特征和优点能够更加明显易懂,下面结 合附图和【具体实施方式】对本发明作进一步详细的说明。
[0042] 实施例一:
[0043] 如图1所示,为本发明提供的一种I2C设备控制方法实施例一的流程示意图,该方 法可以包括以下步骤:
[0044] 步骤S110 :控制I2C总线当前连接的多个I2C设备逐个通电。
[0045] 其中,因为I2C总线占用空间非常小,减少了电路板的空间和芯片管脚的数量,降 低了互联成本,已广泛应用于各种服务与管理场合,来实现配置或掌握组件的功能状态,如 电源、系统温度等参数,增加了系统的安全性,方便了管理。
[0046] 在本实施例实际应用中,I2C总线上通常挂载多个I2C设备可以是各种传感芯片 等,但并不局限于此。其中,对于同一类型的I2c设备,厂家通常会为其配置相同的从地址, 如0x3D,但并不局限于此,将导致系统无法根据地址来区分这些同一类型的I2C设备。
[0047] 基于此,本实施例将通过为同一类型的I2C设备重新分配从地址来进行区分,基于 这一思想,本实施例可为每一个I2C设备设置一个可编程控制器,用于设定该I2C设备的从 地址,以便实现对I2c总线上挂载的多个I2C设备的管理。
[0048] 所以,参照图2所示的系统框图,其仅以I2C总线上挂载两个I2C设备为例进行说 明,当I2c总线的I2C控制器上电后,可先切断I2C总线的I2C设备供电端口(图2中并未画 出),之后,再轮流切换各I2C设备供电端口并通电,也就是说,本实施例将逐个为I2C总线 挂载的I2C设备供电,结合图2,即通过外围第一控制器(图2中并未画出)控制电源On/ Off,从而实现与I2C总线挂载的各I2C设备通电/断电。需要说明的是,控制电源为I2C总 线挂载的各I2C设备逐个供电的过程及其所用供电电路属于本领域常规技术手段,本实施 例在此不再详述。
[0049] 步骤S120 :在所述多个I2C设备中的任意一个I2C设备通电时,访问所述多个I2C 设备的预置从地址。
[0050] 在本实施例实际应用中,基于上述本实施例发明思想,当控制I2C总线挂载的多个 I2c设备中的任一个I2C设备通电时,即控制该I2C设备对应的I2C设备供电端口通电时,本 实施例可通过访问预置从地址,来检测当前切换到通电状态的I2c设备是否是所需类型的 I2c设备。其中,该预置从地址即为所需类型I2C设备的地址。
[0051] 步骤S130 :当接收到所述预置从地址反馈的第一信号时,按照预设规则为当前具 有预置从地址且处于通电状态的I2c设备重新分配一一对应的从地址。
[0052] 基于上述分析,在访问上述预置从地址后,若该预置从地址有反馈第一信号,则说 明该预置从地址上的设备即为切换到通电状态且是所需类型的I2c设备;否则,说明访问失 败,该预置从地址处空载或是非识别物等,但并不局限于此,只要不是所需类型的I2c设备 即可。
[0053] 可选的,在本实施例实际应用中,若该预置从地址反馈了第一信号,可直接从预设 I2C地址池中任意选择一个地址作为从地址发送至当前具有预置从地址且处于通电状态的 I2c设备,以使所述多个I2C设备具有一一对应的从地址,且在后续所有通信过程中,该I2C 设备都将以接收到的从地址作为其从地址,并保持I2c总线和供电的持续。
[0054] 之后,将切换下一个I2C设备通电,仍然按照上述方式对该下一个I2C设备进行识 别后分配唯一的从地址,依次类推,直至将与I2c总线当前连接的多个I2C设备均重新分配 一一对应的从地址,从而确保在同一条I2c总线上的多个I2C设备都具有唯一的从地址,以 便实现对这些I2c设备的有效管理。
[0055] 其中,在上述各实施例中,对于各I2C设备的从地址的设置以及数据的读取和写入 等操作可通过与其一一对应的可编程控制器实现,也就是说,本实施例在得到各i2c设备唯 一的从地址后,将通过其对应的可编程控制器设置该I2C设备的从地址。可选的,该可编程 控制器可以是单片机等能够改写设备地址的控制器,并不局限于单片机,本实施例仅以单 片机为例进行说明。
[0056] 其中,需要说明的是,当上述I2C设备重启后,其从地址将重新变为上述预置从地 址,需要对其重新分配唯一的从地址才能够继续管理;而且,对所有I2c设备分配一一对应 的从地址不同于该预置从地址,也就是说,上述预设I2C地址池中并不包括该预置从地址 (如上述0x3D)。
[0057] 综上所述,本实施例在I2C总线当前连接的多个I2C设备逐个通电的过程中,通过 对当前切换到通电状态且是所需类型的各I2c设备重新分配唯一的从地址,使得系统能够 根据从地址区分这些从设备(即I2c设备),从而解决了现有技术中因相同类型的I2C设备 具有相同的预置从地址,导致同一条I2c总线上不能同时有多个相同类型的I2C设备处于从 模式的技术问题,实现了对同一条I2c总线上的多个I2C设备的统一管理,能够实现对指定I2c设备的控制以及指定I2C设备之间的数据交互。
[0058] 实施例二:
[0059] 在上述实施例一的基础上,本申请提出的I2C设备控制方法还可以包括图3所示 的部分流程示意图,具体可以包括以下步骤:
[0060] 步骤S310:控制所述I2C总线上的所有I2C设备供电端口通电。
[0061] 在本实施例实际应用中,当图2中的控制器上电轮询I2C设备完成后,即为I2C总 线上的所有I2c设备都重新分配了唯一从地址后,可将此时I2C总线上其他未连接I2C设备 的I2c设备供电端口通电,即使该I2C总线上的所有I2C设备供电端口通电,以便于及时检 测插入的I2c设备。
[0062] 步骤S320:当检测到处于空闲状态的任意一个I2C设备供电端口上插入I2C设备 时,访问预置从地址。
[0063] 可选的,在I2C总线工作过程中,当有I2C设备插入时,必然会引起I2C设备供电 端口的电流变化,当电流消耗量达到第一阈值将触发电源管理芯片产生中断,进而触发图2 中I2C控制器检测对应该I2C设备供电端口的I2C设备,即对该I2C设备进行识别并分配唯 一从地址。其中,第一阈值是电源管理芯片内部的阈值,本发明并不限定其具体数值,可根 据该电源管理芯片的具体型号确定。
[0064] 由此可见,本实施例可通过检测电源管理芯片是否产生中断信号,来判定处于空 闲状态的I2c设备供电端口(即该I2C设备供电端口未连接I2C设备)上是否插入了I2C 设备,其中,该中断信号则是在检测到I2c设备供电端口的电流消耗量大于第一阈值时产生 的。
[0065] 其中,在上述实施例中,为了确保能够达到插入检测的目的,需要在I2C设备插入 的一瞬间维持一定的电流消耗,从而避免因某一些阻值或阻抗较小的I2C设备插入时对电 流消耗较小而无法触发电源管理芯片产生中断,所以,本实施可通过在插入的I2C设备上挂 接电阻等消耗型负载,但并不局限于电阻这种消耗方式。
[0066] 可选的,为了减少功耗,当系统对插入的I2C设备识别并分配一一对应的从地址, 进入正常通信逻辑后,可将该电阻等消耗型负载关断,具体可以通过将电阻等消耗型负载 短路,但并不局限于此。
[0067] 步骤S330:当接收到所述预置从地址反馈的第一信号时,按照预设规则为插入的 I2C设备重新分配--对应的从地址。
[0068] 基于上述分析可知,本实施例实现了对I2C设备的动态检测,解决了因现有的I2C 协议本身不支持中断检测,而使得I2C设备无法支持热插拔的技术问题,从而使得本发明提 供的I2C设备控制方法的应用范围更广,操作更加灵活便捷。
[0069] 实施例三:
[0070] 在上述实施例一的基础上,当空闲状态的I2C设备供电端口上插入了多个I2C设备 时,如图4所示的部分流程示意图,该I2C设备控制方法还可以包括以下步骤:
[0071] 步骤S410:控制所述I2C总线上的所有I2C设备供电端口通电。
[0072] 步骤S420:在第一预设时间内,检测到处
于空闲状态的至少两个I2C设备供电端 口上均插入I2C设备时,选择其中的任意一个I2C设备处于通电状态,并访问预置从地址。
[0073] 步骤S430 :当接收到所述预置从地址反馈的第一信号时,按照预设规则为当前具 有预置从地址且处于通电状态的I2C设备重新分配一一对应的从地址,直至为插入的所有 I2C设备均重新分配一一对应的从地址。
[0074] 在实际应用中,若在I2C总线工作过程中,插入了至少两个I2C设备,本实施例仅以 在在第一预设时间内插入两个I2c设备为例进行说明,其中,该第一预设时间小于系统识别 插入的I2c设备并为其分配唯一从地址的时间,也就是说,这两个I2C设备插入时间间隔极 短,可认为是同时插入的,此时,I2c总线将又会出现两个具有相同预置从地址的I2C设备, 所以,为了实现对这些I2C设备的统一管理,本实施例将按照上述实施例一提供方法对这两 个I2c设备逐个进行识别并分配唯一从地址。
[0075] 基于此,本实施例可先从插入的两个I2C设备中选择一个识别对象,并记录下另一 个I2C设备的插入事件,同时将所记录的另一个I2C设备的供电切断,确保对所选择的识别 对象的顺利识别和从地址分配,当对这个I2C设备分配号唯一的从地址后,再给记录的另一 个I2C设备供电,并完成对该另一个I2C设备的识别和从地址的分配,具体识别和从地址分 配过程可参照上述实施例对应部分的描述,本实施例在此不再详述。
[0076] 由此可见,在I2C总线及其连接的I2C设备正常通信过程中,无论插入几个I2C设 备,系统都能够及时检测并实现对插入I2C设备的识别和唯一从地址的分配,从而使该系统 能够实现对I2C总线当前挂载的所有I2C设备的同一管理。
[0077] 可选的,在上述各实施例中,在为I2C总线当前挂载的所有I2C设备分配唯一从地 址之后,还可以利用各I2C设备的可编程控制器读取其对应I2C设备的地址信息和设备类 型,以便基于该地址信息和设备类型对I2C设备进行分类管理。
[0078] 其中,若该可编程控制器为单片机,为I2C设备分配的唯一的从地址可以是长度为 12的字符串,设备类型也可以是长度为8的字符串,但并不局限于此。
[0079] 另外,结合图2所示的系统框图,控制器与各I2C设备之间的通信通常需要ke印 alive信号维持在线状态,若每秒钟都接收到I2C设备反馈的信号,则不需要发送keep alive信号,反之,将需要每秒钟发送一次keepalive信号,若未接收到I2C设备反馈的信 号,则说明该I2C设备离线或故障导致无响应,此时,可输出相应的提示信息,来提示工作人 员对该I2C设备进行检查,但并不局限于此。
[0080] 实施例四:
[0081] 如图5所示,为本发明提供的一种I2C设备控制系统的结构示意图,该系统可以包 括:第一控制器510、可编程控制器520和I2C控制器520,其中:
[0082] 第一控制器510,用于控制I2C总线当前连接的多个I2C设备逐个通电,以便后续 对切换到通电状态的I2C设备进行识别以及从地址的分配。
[0083] 可选的,该第一控制器510具体可以是CPU(CentralProcessingUnit,中央处理 器),但并不局限于此。在实际应用中,第一控制器可控制各I2C设备供电端口的通电状态, 从而控制与该I2c设备供电端口连接的I2C设备的供电情况,即控制图2中各I2C设备对应 供电通道0n/0ff。
[0084] 其中,该I2C设备可以是具有一些灵活配置功能的传感芯片,或者其他采用I2C总 线进行数据交互的设备,本申请对其不作具体限定。
[0085] 可编程控制器520与上述多个I2C设备一一对应,用于设置该I2C设备的从地址、 该I2c设备通信的动态保持,读取该I2C设备的地址信息和设备类型等等。
[0086] 可选的,该可编程控制器520具体可以是单片机,但并不局限于此,本实施例仅以 单片机为例进行说明,则在在本实施例实际应用中的具体功能如下。
[0087]I2C控制器530,用于在所述多个I2C设备中的每一个I2C设备通电时,访问该I2C 设备一一对应的可编程控制器520的预置从地址,当接收到所述预置从地址反馈的第一信 号时,按照预设规则为当前具有该预置从地址且处于通电状态的I2C设备重新分配一一对 应的从地址,并将其发送至--对应的可编程控制器520。
[0088] 在实际应用中,该I2C控制器530具体可以是目前市面上的各种高性能处理器,如 ARM单片机等,但并不局限于此。而且,如图2所示,在I2C总线中,该I2C控制器530中通 常设置有各种I2C总线接口,如上述I2C设备供电端口、数据端口、时钟端口等等。
[0089] 可选的,在本实施例实际应用中,在I2C总线及其挂载的I2C设备正常通信过程中, 根据实际需要可能需要再插入I2C设备,所以,在完成对I2C总线上挂载的I2C设备的从地 址分配后,第一控制器510可控制I2C总线上的所有I2C设备供电端口通电,并由I2C控制 器530实时检测处于空间状态的I2C设备供电端口上是否插入I2C设备,当检测到任意一个 I2C设备供电端口上插入I2C设备时,可按照上述实施例记载的I2C设备识别和从地址分配 方法,为插入的I2C设备分配唯一的从地址;当在第一预设时间内,检测到处于空闲状态的 至少两个I2C设备供电端口上均插入I2C设备时,也就是说,所插入的I2C设备之间的插入 时间间隔很短时,可按照上述实施例一记载的方式对插入的至少两个I2C设备进行识别以 及从地址分配,从而使这些I2C设备得到唯一的从地址,方便系统对其进行统一管理。
[0090] 由此可见,本实施例解决了I2C协议总线不支持中断检测,而导致I2C设备不支持 热插拔的技术问题,扩大了该系统的应用范围,且便于继续扩展,实现了I2c设备的动态检 测,并为检测到插入的I2c设备及时分配唯一的从地址,从而实现对I2C总线当前挂载的所 有I2C设备的统一管理。
[0091] 作为本发明另一实施例,在上述实施例的基础上,该I2C设备控制系统还可以包 括:
[0092] 电源管理芯片,用于在检测到所述I2c设备供电端口的电流消耗量大于第一阈值 时产生中断信号,以使I2c控制器530通过检测电源管理芯片是否产生中断信号,来检测处 于空闲状态的I2C设备供电端口上是否插入I2C设备。
[0093] 其中,为了达到插入检测的目的,本申请还可以在每一个I2C设备上挂接电阻等消 耗型负载,用于在插入该I2c设备的一瞬间维持一定的电流消耗,从而确保在插入该I2C设 备时能够触发电源管理芯片产生中断信号。
[0094] 需要说明的是,对于I2C设备挂接的消耗型负载并不局限于电阻,只能够达到上述 瞬间消耗电流的目的即可,本实施在此不再一一详述。
[0095] 可选的,为了减少功耗,在完成对插入的I2C设备的识别和从地址分配后,可将该 消耗型负载关掉,具体可以将该消耗型负载短路,但并不局限于此。
[0096] 另外,在上述实施例的基础上,该控制系统还可以包括:
[0097] 存储器,用于存储预设I2C地址池,以使I2C控制器530在所述多个I2C设备中的 每一个I2C设备通电时,从所述预设I2C地址池中任意选择一个地址作为从地址发送至当前 具有预置从地址且处于通电状态的I2c设备。
[0098] 其中,需要说明的是,上述预设I2C地址池也可以预存在I2C控制器中,或各个I2C 设备对应的可编程控制器中,本发明对此不作具体限定,只要不是本领域技术人员付出创 造性劳动确定的,均属于本发明保护范围。
[0099] 结合上述分析,当为每个I2C设备设置的可编程控制器520是单片机时,可将单片 机的VCC(电源线)、GND(接地线)、SDA(串行数据线)和SCK(串行时钟线)管脚与I2C控 制器530对应管脚相连,在通过单片机预置从地址0x3D(该预置从地址并不局限于此,可根 据实际需要更改),且该单片机寄存器地址可以如表一所示,但并不局限于此。
[
0100] 表一单片机寄存器地址
[0102] 在上述表一中,Upgradered可以升级单片机的固件程序;Handshakereg可以用 来识别是否是本文中定义的设备,即是否是具有预置从地址的I2C设备;Dprofilereg用来 读取I2C设备的地址信息和设备类型;Dreadreg可以用来读出响应数据;Dwritereg可以 用来写入请求数据;Ackreg可以用于通信的动态保持;Slave_addrreg可以用来设置从 地址。
[0103] 基于上述单片机的结构,当I2C控制器检测到有I2C设备插入时,可先写Handshake reg,来识别插入的I2C设备是否为定义设备(即所需类型的I2C设备),若是(即为上述接 收到预置从地址反馈的第一信号),写SlaVe_addrreg,从预设地址池中选择任意一个地址 作为该I2C设备唯一的从地址,之后,写Dprofilereg,解析出该I2C设备的当前地址信息 和设备类型,以便后续对其进行分类管理。
[0104] 其中,预设地址池中的地址可以是长度为12的字符串,也就是说,分配给各I2C设 备唯一的从地址可以为长度为12的字符串,且该I2C设备的设备类型可以用长度为8的字 符串表示,但并不局限于此,本领域技术人员可基于本发明主旨思想进行合理更改所得技 术方案均属于本发明保护范围。
[0105] 综上所述,本实施例中,在第一控制器控制I2c总线当前连接的多个I2C设备逐个 通电,且在这多个I2c设备中任意一个I2C设备通电时,I2C控制器通过访问这多个I2C设备 的预置从地址,当接收到所述预置从地址反馈的第一信号时,说明当前通电的I2c设备是所 需定义设备,本申请将为其重新分配唯一的从地址,从而使的I2c总线当前挂载的所有I2C 设备都拥有唯一的从地址,达到同一个I2c总线同时挂载多个相同类型的I2C设备工作的目 的,实现了对这些I2c设备的统一管理,能够对指定I2C设备的控制并实现指定I2C设备之 间的数据交互。
[0106] 另外,需要说明的是,关于上述各实施例中,诸如第一、第二等之类的关系术语仅 仅用来将一个操作或器件与另一个操作或器件区分开来,而不一定要求或者暗示这些器件 或操作之间存在任何这种实际的关系或者顺序。而且,术语"包括"、"包含"或者其任何其 他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法或者系统不仅包 括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法或者系 统所固有的要素。在没有更多限制的情况下,由语句"包括一个……"限定的要素,并不排 除在包括所述要素的过程、方法或者系统中还存在另外的相同要素。
[0107] 本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他 实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统 而言,由于其与实施例公开的方法对应,所以描述的比较简单,相关之处参见方法部分说明 即可。
[0108] 对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。 对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的 一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明 将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一 致的最宽的范围。
【主权项】
1. 一种12C设备控制方法,其特征在于,所述方法包括: 控制I2C总线当前连接的多个I2C设备逐个通电; 在所述多个I2C设备中的任意一个I2C设备通电时,访问所述多个I2C设备的预置从地 址; 当接收到所述预置从地址反馈的第一信号时,按照预设规则为当前具有预置从地址且 处于通电状态的I2C设备重新分配一一对应的从地址。2. 根据权利要求1所述的方法,其特征在于,所述方法还包括: 控制所述I2C总线上的所有I2C设备供电端口通电; 当检测到处于空闲状态的任意一个I2C设备供电端口上插入I2C设备时,进入所述访问 所述多个I2C设备的预置从地址步骤。3. 根据权利要求2所述的方法,其特征在于,所述方法还包括: 在第一预设时间内,检测到处于空闲状态的至少两个I2C设备供电端口上均插入I2C设 备时,选择其中的任意一个I2C设备处于通电状态,并返回所述访问所述多个I2C设备的预 置从地址步骤,直至为插入的所有I2C设备均重新分配一一对应的从地址。4. 根据权利要求3所述的方法,其特征在于,检测处于空闲状态的12C设备供电端口上 是否插入I2C设备的过程具体为: 检测电源管理芯片是否产生中断信号,其中,所述中断信号是在检测到所述I2C设备供 电端口的电流消耗量大于第一阈值时产生的。5. 根据权利要求1所述的方法,其特征在于,所述按照预设规则为当前具有预置从地 址且处于通电状态的I2C设备重新分配一一对应的从地址具体为: 从预设I2C地址池中任意选择一个地址作为从地址发送至当前具有预置从地址且处于 通电状态的I2C设备,以使所述多个I2C设备具有一一对应的从地址。6. -种12C设备控制系统,其特征在于,所述系统包括: 第一控制器,用于控制I2C总线当前连接的多个I2C设备逐个通电; 与所述多个I2C设备一一对应的可编程控制器; I2C控制器,用于在所述多个I2C设备中的任意一个I2C设备通电时,访问该I2C设备 一一对应的可编程控制器的预置从地址,当接收到所述预置从地址反馈的第一信号时,按 照预设规则为当前具有预置从地址且处于通电状态的I2C设备重新分配一一对应的从地 址,并发至所述当前具有预置从地址且处于通电状态的I2C设备一一对应的可编程控制器。7. 根据权利要求6所述的系统,其特征在于, 所述第一控制器还用于控制所述I2C总线上的所有I2C设备供电端口通电; 则所述I2C控制器还用于检测处于空闲状态的I2C设备供电端口上是否插入I2C设备, 当检测到任意一个I2C设备供电端口上插入I2C设备时,进入所述访问所述多个I2C设备的 预置从地址步骤;当在第一预设时间内,检测到处于空闲状态的至少两个I2C设备供电端口 上均插入I2C设备时,选择其中的任意一个I2C设备处于通电状态,并返回所述访问所述多 个I2C设备的预置从地址步骤,直至为插入的所有I2C设备均重新分配一一对应的从地址。8. 根据权利要求7所述的方法,其特征在于,所述系统还包括: 电源管理芯片,用于在检测到所述I2C设备供电端口的电流消耗量大于第一阈值时产 生中断信号; 则所述I2C控制器检测处于空闲状态的I2C设备供电端口上是否插入I2C设备的过程 具体为:检测所述电源管理芯片是否产生中断信号。9. 根据权利要求6所述的系统,其特征在于,所述系统还包括: 存储器,用于存储预设I2C地址池,以使所述I2C控制器在所述多个I2C设备中的任意 一个I2C设备通电时,从所述预设I2C地址池中任意选择一个地址作为从地址发送至当前具 有预置从地址且处于通电状态的I2C设备。10. 根据权利要求6-9任意一项所述的系统,其特征在于,所述可编程控制器具体为单 片机。
【专利摘要】本申请提供了一种I2C设备控制方法及装置,控制I2C总线当前连接的多个I2C设备逐个通电,在这多个I2C设备中任意一个I2C设备通电时,通过访问这多个I2C设备的预置从地址,当接收到所述预置从地址反馈的第一信号时,说明当前通电的I2C设备具有该预置从地址,是所需的目标I2C设备,为了使系统能够在具有相同地址的I2C设备中准确识别出该目标I2C设备,本申请在此时按照预设规则为该目标I2C设备重新分配一一对应的从地址,从而使得I2C总线连接的多个I2C设备都具有唯一的从地址,以便系统根据该从地址准确识别出所需的目标I2C设备,进而实现对指定I2C设备的控制以及指定I2C设备之间的数据交互。
【IPC分类】G06F13/42
【公开号】CN104899177
【申请号】CN201510374359
【发明人】梁玉锋, 袁涛, 龙元维, 程维新
【申请人】深圳市兰丁科技有限公司
【公开日】2015年9月9日
【申请日】2015年6月30日