控制;调节装置的制造及其应用技术一种i2c从机地址可编程控制电路结构及控制方法技术领域1.本发明涉及i2c总线电路,尤其涉及一种i2c从机地址可编程控制电路结构及控制方法。背景技术:2.现有技术中,i2c通信是比较常见的通信控制协议。i2c的从机设备地址是固定不可变更的,设备是固定的7位2进制值,具有128个可选值,如果要同时在总线上使用多个ic,就必需具有用户自己对地址进行设置的功能,例如某一个芯片的i2c地址为1010abc,其中a、b、c为芯片的自定义地址值,那么该芯片的i2c从机地址一共可以设置成8种不同的值,同一总线上一共可以使用8颗这种ic。支持自定义的i2c地址,必需提供相应的pin脚,让用户自行决定地址值,而且通常是由硬件设计人员完成的。由此可见,现有i2c通信方式无法实现i2c地址的任意设置,不利于电路设计和应用。技术实现要素:3.本发明要解决的技术问题在于,针对现有技术的不足,提供一种可任意设置i2c地址、可通过发送i2c指令来更改默认的从机地址、可通过软件实现i2c地址控制的i2c从机地址可编程控制电路结构及控制方法。4.为解决上述技术问题,本发明采用如下技术方案。5.一种i2c从机地址可编程控制电路结构,其包括有mcu控制器以及通信芯片u0~通信芯片un,所述通信芯片u0~通信芯片un均包括有数据引脚m、开关引脚pdn和输出引脚new,所述开关引脚pdn用于控制所述通信芯片的启停状态,所述通信芯片u0~通信芯片un的数据引脚m均通过i2c总线连接于所述mcu控制器,所述通信芯片u0的开关引脚pdn与所述mcu控制器相连接,所述通信芯片u0~通信芯片un通过输出引脚new和开关引脚pdn依次串联。6.优选地,所述通信芯片u0~通信芯片un中,n的最大值为127。7.优选地,当开关引脚pdn输入低电平时,通信芯片处于关闭状态,不允许被i2c总线写入或读取数据;当开关引脚pdn输入高电平时,通信芯片处于启动状态,允许被i2c总线写入或读取数据。8.一种i2c从机地址可编程控制电路结构的控制方法,其包括有如下步骤:步骤s1,设置主芯片的i2c从机地址:将所述通信芯片u0设置为主芯片,由mcu控制器发送高电平信号至所述通信芯片u0的开关引脚pdn,此时,所有通信芯片的new脚处于默认高电平的状态,所述通信芯片u1~通信芯片un的开关引脚pdn输入信号保持在0位,使所述通信芯片u1~通信芯片un不对i2c总线上的信号产生动作;步骤s2,设置其他通信芯片的i2c从机地址:所述通信芯片u0设置完成新地址之后,则所述通信芯片u0的输出引脚new输出高电平,以此标示已经完成地址设置,因所述通信芯片u0的new引脚连接到通信芯片u1的开关引脚pdn,此时的通信芯片u1可由i2c总线控制,再由mcu控制器发送指令,将通信芯片u1的地址改为h01,指令生效后,通信芯片u1的地址变更,同时通信芯片u1的输出引脚new输出高电平;步骤s3,因通信芯片u1的输出引脚new连到通信芯片u2的开关引脚pdn,此时,所述mcu控制器可以对通信芯片u2的从机地址进行修改;重复上述步骤,直至通信芯片u2~通信芯片un的从机地址全部修改完成。9.优选地,所述步骤s2中,修改从机地址时,mcu控制器发送的新的i2c从机地址值应为偶数,如果mcu控制器发送变更i2c从机地址的值为奇数,通信芯片不作响应,继续使用默认的从机地址。10.优选地,还包括有复位及还原默认地址处理步骤:当所述通信芯片u0~通信芯片un掉电后重新上电时,所述通信芯片u0~通信芯片un全部还原至默认的i2c从机地址,同时通信芯片的输出引脚new输出低电平,还原至初始地址状态。11.优选地,还包括i2c从机地址寄存器rega设置步骤:该寄存器rega具有d7~d0共8个可配置位,d7~d1用于设置i2c从机地址,d0位用于功能设置,当d0位设为0时,使用寄存器设置的i2c从机地址(d7~d1位),d0位设为1时,使用默认的i2c地址,当配置新的从机地址时,必需写入一个偶数,这样通信芯片新的设备地址才会生效,同时new输出高电平,因此,在pdn=1时,d0位的值和new的输出电平始终是相反的,而当pdn=0时,new的输出电平始终是0。12.优选地,还包括i2c设备地址保持设置步骤:当所述通信芯片u0~通信芯片un设置了新的i2c设备地址后,在系统要进行不掉电重启或者进入待机状态时,mcu控制器需要通过向所述通信芯片u0的开关引脚pdn输入低电平,这样通信芯片u0的new也变为低电平,使所述通信芯片u0~通信芯片un依次关闭,令所述通信芯片u0~通信芯片un全部进入低功耗待机状态,此时所述通信芯片u0~通信芯片un的rega数据并没有发生变化,因此i2c设备地址依然保持在设置值。13.优选地,所述通信芯片u0~通信芯片un的开关引脚pdn功能包括:当开关引脚pdn为0时,通信芯片的i2c总线接口关闭,mcu控制无法通过i2c总线向通信芯片读写任何数据;当开关引脚pdn为0时,输出引脚new始终输出低电平;当开关引脚pdn为任意值时,不改变通信芯片rega数据的任何一位的值,通信芯片的实际i2c设备地址由rega决定;当开关引脚pdn为1时,通信芯片的i2c数据引脚打开,mcu控制器可通过i2c总线向通信芯片读写数据;当开关引脚pdn为1,且rega-d0位=0时,输出new脚输出高电平,因输出引脚new连接一个芯片的开关引脚pdn,通信芯片使用rega(d7~d1)设置的i2c地址,故开启下一个通信芯片,令下一通信芯片进行i2c通信,当rega-d0位被设置为1时,则输出引脚new重新变成低电平,通信芯片还原默认i2c地址。14.优选地,所述通信芯片u0~通信芯片un可不使用默认地址,而将寄存器rega的默认值改为某一个值来设置默认的i2c地址,无论改成任何值,rega-d0位的上电默认值为1,此时通信芯片的输出引脚new在默认情况下输出低电平,标示没有被重新配置地址,而使用了默认的i2c设备地址。15.本发明公开的i2c从机地址可编程控制电路结构,其能够用较少的引脚实现最多的i2c从机设备控制,并且i2c从机地址可以完全软件化实现操作,不再需要硬件过多干预,每个通信芯片上只需要4根引脚就能实现,而mcu控制器输出只需要3根引脚。相比现有技术而言,本发明可任意设置i2c地址,可通过发送i2c指令来更改默认的从机地址,并且仅通过软件就能实现i2c地址控制,较好地满足了应用需求。附图说明16.图1为本发明i2c从机地址可编程控制电路结构的电路框图;图2为本发明另一应用场景下的i2c从机地址可编程控制电路结构的电路框图;图3为寄存器结构示意图;图4为寄存器连接上拉电阻的电路框图。具体实施方式17.下面结合附图和实施例对本发明作更加详细的描述。18.本发明公开了一种i2c从机地址可编程控制电路结构,请参见图1,其包括有mcu控制器以及通信芯片u0~通信芯片un,所述通信芯片u0~通信芯片un均包括有数据引脚m、开关引脚pdn和输出引脚new,所述开关引脚pdn用于控制所述通信芯片的启停状态,所述通信芯片u0~通信芯片un的数据引脚m均通过i2c总线连接于所述mcu控制器,所述通信芯片u0的开关引脚pdn与所述mcu控制器相连接,所述通信芯片u0~通信芯片un通过输出引脚new和开关引脚pdn依次串联。其中,所述通信芯片u0~通信芯片un中,n的最大值为127,即通信芯片最多128个。19.关于开关引脚pdn的设置,在本发明中,当开关引脚pdn输入低电平时,通信芯片处于关闭状态,不允许被i2c总线写入或读取数据;当开关引脚pdn输入高电平时,通信芯片处于启动状态,允许被i2c总线写入或读取数据。20.本发明公开的i2c从机地址可编程控制电路结构,其能够用较少的引脚实现最多的i2c从机设备控制,并且i2c从机地址可以完全软件化实现操作,不再需要硬件过多干预,每个通信芯片上只需要4根引脚就能实现,而mcu控制器输出只需要3根引脚。相比现有技术而言,本发明可任意设置i2c地址,可通过发送i2c指令来更改默认的从机地址,并且仅通过软件就能实现i2c地址控制,较好地满足了应用需求。21.在上述i2c从机地址可编程控制电路结构的基础上,本发明还公开了一种控制方法,其包括有如下步骤:步骤s1,设置主芯片的i2c从机地址:将所述通信芯片u0设置为主芯片,由mcu控制器发送高电平信号至所述通信芯片u0的开关引脚pdn,同时令所述通信芯片u1~通信芯片un的开关引脚pdn输入信号保持在0位,使所述通信芯片u1~通信芯片un不对i2c总线上的信号产生动作;步骤s2,设置其他通信芯片的i2c从机地址:所述通信芯片u0设置完成新地址之后,则所述通信芯片u0的输出引脚new输出高电平,以此标示已经完成地址设置,因所述通信芯片u0的new引脚连接到通信芯片u1的开关引脚pdn,此时的通信芯片u1可由i2c总线控制,再由mcu控制器发送指令,将通信芯片u1的地址改为h02,指令生效后,通信芯片u1的地址变更,同时通信芯片u1的输出引脚new输出高电平;步骤s3,因通信芯片u1的输出引脚new连到通信芯片u2的开关引脚pdn,此时,所述mcu控制器可以对通信芯片u2的从机地址进行修改;重复上述步骤,直至通信芯片u2~通信芯片un的从机地址全部修改完成。22.上述的所述步骤s2中,修改从机地址时,mcu控制器发送的新的i2c从机地址值应为偶数,如果mcu控制器发送变更i2c从机地址的值为奇数,通信芯片不作响应,继续使用默认的从机地址。23.具体地,修改从机地址时,mcu控制器向通信芯片发送的更改地址的数据值必需为偶数,即rega的d0位为0。如果发送奇数,即rega的d0位为1,表示使用默认的从机地址。24.除此之外,本发明还包括有复位及还原默认地址处理步骤:当所述通信芯片u0~通信芯片un掉电后重新上电时,所述通信芯片u0~通信芯片un全部还原至默认的i2c从机地址,同时通信芯片的输出引脚new输出低电平,还原至初始地址状态。25.在此基础上,本发明还包括i2c从机地址寄存器rega设置步骤:该寄存器rega具有d7~d0共8个可配置位,d7~d1用于设置i2c从机地址,d0位用于功能设置,当d0位设为0时,使用寄存器设置的i2c从机地址(d7~d1位),d0位设为1时,使用默认的i2c地址,当配置新的从机地址时,必需写入一个偶数,这样通信芯片新的设备地址才会生效,同时new输出高电平,因此,在pdn=1时,d0位的值和new的输出电平始终是相反的,而当pdn=0时,new的输出电平始终是0。26.本发明还包括i2c设备地址保持设置步骤:当所述通信芯片u0~通信芯片un设置了新的i2c设备地址后,在系统要进行不掉电重启或者进入待机状态时,mcu控制器需要通过向所述通信芯片u0的开关引脚pdn输入低电平,这样通信芯片u0的new也变为低电平,使所述通信芯片u0~通信芯片un依次关闭,令所述通信芯片u0~通信芯片un全部进入低功耗待机状态,此时所述通信芯片u0~通信芯片un的rega数据并没有发生变化,因此i2c设备地址依然保持在设置值。27.实际应用中,所述通信芯片u0~通信芯片un的开关引脚pdn功能包括:当开关引脚pdn为0时,通信芯片的i2c总线接口关闭,mcu控制无法通过i2c总线向通信芯片读写任何数据;当开关引脚pdn为0时,输出引脚new始终输出低电平;当开关引脚pdn为任意值时,不改变通信芯片rega数据的任何一位的值,通信芯片的实际i2c设备地址由rega决定;当开关引脚pdn为1时,通信芯片的i2c数据引脚打开,mcu控制器可通过i2c总线向通信芯片读写数据;当开关引脚pdn为1,且rega-d0位=0时,输出new脚输出高电平,因输出引脚new连接一个芯片的开关引脚pdn,通信芯片使用rega(d7~d1)设置的i2c地址,故开启下一个通信芯片,令下一通信芯片进行i2c通信,当rega-d0位被设置为1时,则输出引脚new重新变成低电平,通信芯片还原默认i2c地址。28.作为一种优选方式,所述通信芯片u0~通信芯片un可不使用默认地址,而将寄存器rega的默认值改为某一个值来设置默认的i2c地址,无论改成任何值,rega-d0位的上电默认值为1,此时通信芯片的输出引脚new在默认情况下输出低电平,标示没有被重新配置地址,而使用了默认的i2c设备地址。29.本发明公开的i2c从机地址可编程控制电路结构可通过多个通信芯片依次串联的方式实现,在实际应用中还可以采用如图2所示的电路结构来实现单独控制,此情况下最多采用2个通信芯片。30.本发明公开的i2c从机地址可编程控制电路结构及的控制方法,其实际应用场景下的电路结构及工作原理可参考如下实施例。31.实施例一在本实施例中,请参见图1至图4,设定芯片a的默认的i2c地址为h36(16进制值,对应的二进制值为0110110),其中芯片具有3个引脚,abc,可以用来设置从机地址,可设置的地址二进制值为0110abc,这样一共可以设置8个i2c从机地址。总线上一共可以使用8个芯片a通信不受干扰。32.芯片b采用可用户设置的i2c地址方式,内部建立一个1byte的寄存器,用来存放芯片的i2c从机地址(d7~d1位有效,d0写1时表明使用默认的地址,写0时表明使用寄存器设置的地址)。这样理论上,我们可以将最多128个芯片并联在同一个i2c总线上,可以依次对每一个芯片进行地址设置,完成设置后,芯片将在新的i2c地址下工作,这样的话,理论上可以最多实现128个芯片并联在同一个i2c总线上,因为这128个芯片都被重新设置了不同的设备地址。33.首先,由于理论上支持最多128个芯片使用同一个i2c总线,但是在设置地址之前,这些芯片具有同样的设备地址(假设都是默认值h36),因此这类芯片必需有一个pdn开关脚控制,可以控制i2c总线开关或者芯片完全关闭。当pdn输入低电平时,芯片处于关闭状态,不会影响i2c上的数据操作。当pdn输入高电平时,可以被i2c写入。34.其次,设置主芯片的i2c从机地址。这128个芯片必需有一个默认的主芯片(记为u0),这时候,mcu发送pdn信号直接连到主芯片(u0),当mcu输出pdn=1时,可以对u0进行写入,此时,u1~u127的pdn输入信号必需保持在0,不对i2c总线上的信号产生动作。35.之后,设置其他芯片的i2c从机地址。主芯片(u0)完成新地址之后,当mcu向u0设置了新的i2c从机地址(假设为h00),则u0的输出引脚new输出高电平(默认输出低电平),表明已经完成了地址设置,不再使用默认地址。而u0的new引脚是连接到u1的pdn输入引脚上的。这时候,u1就可以被i2c总线控制了,此刻,由于mcu没有发送更改地址的指令,u1的地址依旧为默认值h36,此时让mcu发送指令,将u1的地址改为h02(发送值必需为偶数,因为d0位为1的话,表示使用默认的从机地址),指令生效后,地址变更,并且u1的new输出高电平。由于u1的new引脚连到u2的pdn输入引脚,这样就可以再修改u2的从机地址了。以此类推,一直修改到u127。36.进一步地,在复位及还原默认地址的处理过程中,当所有芯片掉电后再重新上电时,这时候会所有芯片默认的i2c从机地址(h36),同时new输出低电平,还原到最开始的默认设置i2c地址的状态。37.作为一种优选方式,i2c从机地址设置寄存器时,该寄存器具有d7~d0一共8个可配置位,d7~d1用于设置i2c从机地址。d0位用于功能设置,当d0位设为0时,使用寄存器设置的i2c从机地址(d7~d1位),d0位设为1时,使用默认的i2c地址。38.实际应用中,通过修改rega的值,设置了所有的芯片的新的i2c设备地址后,在系统掉电时,是需要重新设置所有芯片的i2c地址的。但是如果系统mcu通过向芯片0的pdn脚输入低电平,使芯片0~127陆续关闭,所有芯片进入低功耗待机状态时,这时候所有芯片的rega数据并没有发生变化,因此依旧是保持设置了的i2c设备地址的。39.pdn脚的功能必需有:1、当输入pdn=0时,芯片的i2c总线接口关闭,mcu无法向芯片通过i2c总线读写任何数据;2、当输入pdn=0时,new脚始终输出高电平,按照图中所示,所有会陆续关闭;3、当输入pdn脚为任意值时,不会改变芯片rega的任何一位的值,芯片的实际i2c设备地址,始终由rega决定;4、当输入pdn=1时,芯片的i2c端口打开,mcu可以通过i2c与芯片通信,读写数据;5、当输入pdn=1时,且rega-d0位=0时,new脚才输出高电平,如果new引脚连接到下一个芯片的pdn脚,那么则会开启下一个芯片,让下一个芯片可以进行i2c通信。一旦rega-d0位被设置为1时,new脚会重新变成低电平。40.最后,通信芯片在具体实施和设计的时候,可以不使用默认地址,而是将寄存器rega的默认值改为某一个值来设置默认的i2c地址,无论改成什么样的值,rega-d0位的上电默认值必需为1,这样芯片的new脚才在默认情况下输出低电平,表明没有被重新配置地址,而是使用了默认的i2c设备地址,同样,控制链才能生效。41.本发明公开的本发明公开的i2c从机地址可编程控制电路结构及的控制方法中,可以任意设置i2c地址的方式,使用了本发明电路结构之后,可以通过发送i2c指令来更改默认的从机地址值。此外,在本发明电路结构的基础上,通常只需要保留1个默认的i2c地址,不需要提供多个引脚供用户设置,可通过完全软件化操作方式实现对i2c地址的设置和控制。42.以上所述只是本发明较佳的实施例,并不用于限制本发明,凡在本发明的技术范围内所做的修改、等同替换或者改进等,均应包含在本发明所保护的范围内。
图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!
内容声明:本文中引用的各种信息及资料(包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主体(包括但不限于公司、媒体、协会等机构)的官方网站或公开发表的信息。部分内容参考包括:(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供参考使用,不准确地方联系删除处理!本站为非盈利性质站点,发布内容不收取任何费用也不接任何广告!
免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理,本文部分文字与图片资源来自于网络,部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理!的,若有来源标注错误或侵犯了您的合法权益,请立即通知我们,情况属实,我们会第一时间予以删除,并同时向您表示歉意,谢谢!
一种I2C从机地址可编程控制电路结构及控制方法与流程
作者:admin
2022-08-31 10:43:27
211
关键词:
控制;调节装置的制造及其应用技术
专利技术
- 下一篇: 一种水下石油管道探伤机器人
- 上一篇: 一种面向最大化分离的用户参数调度方法与流程