System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术属于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总线的所有从设备的预设地址;若所有从设备的预设地址均存在,且预设地址互不冲突,主设备则直接将预
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总线中移除时,从设备向主设备发送移除请求信号;主设备将存储器中对应从设备的占用地址重新标记为空闲地址后,向从设备发送移除确认信号,从设备随后进行移除操作。
...【技术特征摘要】
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总线地址自动分配方法,其特征在于:在预先判断过程中,若所有从设备的预设地址均存在,但预设地址中包括冲突地址时,主设备开始执行地址扫描算法,先将确定出的可用的空闲地址存放至存储器中,随后判断从设备中是否已具有地址;若不具...
【专利技术属性】
技术研发人员:邹东斌,张定坤,杜军,张小斌,
申请(专利权)人:成都电科星拓科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。