一种I2C总线地址自动分配方法与流程

文档序号:37056906发布日期:2024-02-20 21:03阅读:12来源:国知局
一种I2C总线地址自动分配方法与流程

本发明属于i2c总线中,应用于地址分配过程,具体为一种i2c总线地址自动分配方法。


背景技术:

1、集成电路总线(inter-integrated circuit, iic)是一种具有简单、双向、二进制与同步串行特点的控制总线,通常被称作i2c总线。i2c总线通信技术可保存各类参数配置信息,因此被广泛用于各种电子系统中;而这些电子系统在调试时,需要通过i2c总线上关联的i2c设备来获取相关信息,这就需要确保每个i2c设备具有独立的设备地址。

2、现有的i2c地址分配方法中,通过设定不同的电阻类型与位数,依照特定的电路连接方式,实现分配过程,这导致电阻及电路加工成本较高。此外,现有i2c地址通常为7位,其中前4位地址由设备厂家预设固定,无法更改,只能通过后3位地址的修改来分配i2c地址,具有较大的局限性。

3、随着技术的发展,i2c总线中的地址分配场景,已逐渐由微控制器结合io卡的方式实现;但这一方式中,还需通过复杂可编程逻辑器件(complex programmable logicdevice, cpld)来设定对应开关,以控制io卡在地址分配时的i2c地址数据流通过程。随着大型i2c通信系统中io卡数量的增多,电路设计中的开关数量也随之增多,控制成本因此上升。同时,现有技术在设备地址的具体分配过程中,也仍采用手动分配方式,这可能导致地址的重复冲突,或是在添加或移除设备时带来管理上的困难。

4、因此,如何针对i2c地址分配的问题,从逻辑方法中给出一种软件协议上的改进,来实现i2c总线中自动分配地址的效果,便成为了本领域技术人员的关注要点。


技术实现思路

1、本发明的目的是解决现有技术在i2c总线地址分配中存在的局限性问题,通过在微控制器中引入新的软件协议的方式,实现地址自动分配的效果。本发明为i2c设备的连接与通信过程提供了便利,降低了硬件电路的复杂度,在减少材料和加工成本的同时也扩展了i2c地址分配的范围,从而提高了整个通信系统的可扩展性与灵活性。

2、本发明采用了以下技术方案来实现目的:

3、一种i2c总线地址自动分配方法,包括如下步骤:

4、s1、主设备上电,执行地址扫描算法,确定出i2c总线通信中可用的空闲地址;

5、s2、主设备向所有已连接i2c总线的从设备广播地址分配命令;

6、s3、未获得地址分配的1个或多个从设备响应地址分配命令,向主设备发送地址响应帧;

7、s4、主设备每接收1个地址响应帧,从空闲地址中选出1个具体地址,发送给当前地址响应帧对应的从设备;

8、s5、从设备接收具体地址后,向主设备发送地址确认帧,完成i2c总线地址的自动分配过程。

9、进一步的,地址扫描算法由主设备中内置的微处理器进行执行,执行过程为:将i2c地址范围中的每个地址信息,通过地址请求命令,依次向所有已连接i2c总线的从设备广播,每1次地址请求命令的广播仅包括1个地址信息;如果任意从设备响应了地址请求命令,则确定当前地址请求命令中包含的地址信息已被占用;如果地址请求命令广播后,在预设时间内无任何从设备响应,则确定当前地址请求命令中包含的地址信息为可用的空闲地址。

10、优选的,在主设备首次上电时,检查主设备内置的存储器,判断存储器中是否存放有当前已连接i2c总线的所有从设备的预设地址;若所有从设备的预设地址均存在,且预设地址互不冲突,主设备则直接将预设地址发送给对应的从设备,完成i2c总线地址的自动分配过程。

11、进一步的,在预先判断过程中,若所有从设备的预设地址均存在,但预设地址中包括冲突地址时,主设备开始执行地址扫描算法,先将确定出的可用的空闲地址存放至存储器中,随后判断从设备中是否已具有地址;若不具有,则进行地址分配,完成地址自动分配过程;若已具有,则进行冲突处理;冲突处理过程为:通过包含有冲突地址的地址请求命令,获得多个从设备的响应信号;再从可用的空闲地址中,选出与响应信号个数相同的具体地址,发送给对应的从设备,完成地址自动分配过程。

12、具体的,执行地址扫描算法时,如果某次地址请求命令获得了多于1个从设备的响应信号,将该次地址请求命令包含的具体地址确定为冲突地址,代表从设备中已具有冲突地址,并在确定出可用的空闲地址后,针对冲突地址进行相同的冲突处理过程,完成地址自动分配过程。

13、优选的,所述s4中,主设备从空闲地址中选出具体地址的过程,采用随机选取方式或顺序选取方式,并将选出的具体地址标记为占用地址;执行地址扫描算法时,若某次地址请求命令仅获得1个从设备的响应信号,则将该次地址请求命令包含的具体地址也确定为占用地址,对应的从设备不再进行地址分配过程;占用地址均被记录于主设备内置的存储器中。

14、优选的,在i2c总线通信过程中,主设备通过电平信号变化,检测是否有新的从设备连接至i2c总线;当有新的从设备连接时,主设备执行地址扫描算法,进行新增从设备的自动分配过程;当已连接的从设备需要从i2c总线中移除时,从设备向主设备发送移除请求信号;主设备将存储器中对应从设备的占用地址重新标记为空闲地址后,向从设备发送移除确认信号,从设备随后进行移除操作。

15、综上所述,由于采用了本技术方案,本发明的有益效果如下:

16、本发明的方法原理可由微控制器中的软件编程方式实现,从而自动为连接至i2c总线的设备分配对应的i2c地址,避免了手动分配工作的繁琐过程;同时,本发明可完全通过软件方法的改进达成效果,也就减少了cpld、电阻和开关等器件在i2c总线电路硬件架构中的设计过程,降低了硬件成本。

17、本发明还可以依据通信系统的需求,动态地分配地址,避免了i2c设备的7位地址中前4位在出厂时就被预设而不可改变的问题,提高了地址分配的灵活性;i2c地址分配过程可依据所应用通信系统的个性化需求,自定义其长度与数量。

18、本发明的方法可扩展至各类使用i2c总线协议进行通信的系统中,如嵌入式系统和物联网设备等。该方法具备自动、可靠和灵活的优点,能简化应用系统的硬件配置成本,提升i2c设备的连接与通信效率。



技术特征:

1.一种i2c总线地址自动分配方法,其特征在于:包括如下步骤:

2.根据权利要求1所述的一种i2c总线地址自动分配方法,其特征在于:所述s1中,主设备上电后,预先确定出i2c总线通信中可用于分配的i2c地址范围;在i2c地址范围的基础上,执行地址扫描算法。

3.根据权利要求2所述的一种i2c总线地址自动分配方法,其特征在于:地址扫描算法由主设备中内置的微处理器进行执行,执行过程为:将i2c地址范围中的每个地址信息,通过地址请求命令,依次向所有已连接i2c总线的从设备广播,每1次地址请求命令的广播仅包括1个地址信息;如果任意从设备响应了地址请求命令,则确定当前地址请求命令中包含的地址信息已被占用;如果地址请求命令广播后,在预设时间内无任何从设备响应,则确定当前地址请求命令中包含的地址信息为可用的空闲地址。

4.根据权利要求3所述的一种i2c总线地址自动分配方法,其特征在于:在主设备首次上电时,检查主设备内置的存储器,判断存储器中是否存放有当前已连接i2c总线的所有从设备的预设地址;若所有从设备的预设地址均存在,且预设地址互不冲突,主设备则直接将预设地址发送给对应的从设备,完成i2c总线地址的自动分配过程。

5.根据权利要求4所述的一种i2c总线地址自动分配方法,其特征在于:在预先判断过程中,若存储器为空或缺失至少1个从设备的预设地址,主设备则开始执行步骤s1的地址扫描算法;通过地址扫描算法确定出可用的空闲地址后,将空闲地址存放至存储器中,用于后续的地址分配过程。

6.根据权利要求4所述的一种i2c总线地址自动分配方法,其特征在于:在预先判断过程中,若所有从设备的预设地址均存在,但预设地址中包括冲突地址时,主设备开始执行地址扫描算法,先将确定出的可用的空闲地址存放至存储器中,随后判断从设备中是否已具有地址;若不具有,则进行地址分配,完成地址自动分配过程;若已具有,则进行冲突处理;冲突处理过程为:通过包含有冲突地址的地址请求命令,获得多个从设备的响应信号;再从可用的空闲地址中,选出与响应信号个数相同的具体地址,发送给对应的从设备,完成地址自动分配过程。

7.根据权利要求6所述的一种i2c总线地址自动分配方法,其特征在于:执行地址扫描算法时,如果某次地址请求命令获得了多于1个从设备的响应信号,将该次地址请求命令包含的具体地址确定为冲突地址,代表从设备中已具有冲突地址,并在确定出可用的空闲地址后,针对冲突地址进行相同的冲突处理过程,完成地址自动分配过程。

8.根据权利要求1所述的一种i2c总线地址自动分配方法,其特征在于:所述s3中,未获得地址分配的所有从设备持续监听i2c总线中的地址分配命令,并在地址分配命令出现时做出响应,依次与主设备建立地址分配通信。

9.根据权利要求3所述的一种i2c总线地址自动分配方法,其特征在于:所述s4中,主设备从空闲地址中选出具体地址的过程,采用随机选取方式或顺序选取方式,并将选出的具体地址标记为占用地址;执行地址扫描算法时,若某次地址请求命令仅获得1个从设备的响应信号,则将该次地址请求命令包含的具体地址也确定为占用地址,对应的从设备不再进行地址分配过程;占用地址均被记录于主设备内置的存储器中。

10.根据权利要求9所述的一种i2c总线地址自动分配方法,其特征在于:在i2c总线通信过程中,主设备通过电平信号变化,检测是否有新的从设备连接至i2c总线;当有新的从设备连接时,主设备执行地址扫描算法,进行新增从设备的自动分配过程;当已连接的从设备需要从i2c总线中移除时,从设备向主设备发送移除请求信号;主设备将存储器中对应从设备的占用地址重新标记为空闲地址后,向从设备发送移除确认信号,从设备随后进行移除操作。


技术总结
本发明提供一种I2C总线地址自动分配方法,属于I2C总线技术领域,解决了现有技术中硬件成本高、手动分配方式困难的问题;该方法中,主设备执行地址扫描算法,确定空闲地址;随后向所有已连接I2C总线的从设备广播地址分配命令,未获得地址分配的从设备均响应此命令,发出地址响应帧;主设备每接收1个地址响应帧,即从空闲地址中选出1个具体地址,发送给对应从设备,完成I2C总线地址的自动分配;地址扫描算法将I2C的每个地址信息,依次向所有从设备广播,通过从设备响应情况来确定空闲地址;本发明降低了硬件电路的复杂度,在减少材料和加工成本的同时也扩展了I2C地址分配范围,整个通信系统具有更好的可扩展性与灵活性。

技术研发人员:邹东斌,张定坤,杜军,张小斌
受保护的技术使用者:成都电科星拓科技有限公司
技术研发日:
技术公布日:2024/2/19
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1