CN108681517B - 变换i2c器件地址的方法及系统 - Google Patents

变换i2c器件地址的方法及系统 Download PDF

Info

Publication number
CN108681517B
CN108681517B CN201810435884.1A CN201810435884A CN108681517B CN 108681517 B CN108681517 B CN 108681517B CN 201810435884 A CN201810435884 A CN 201810435884A CN 108681517 B CN108681517 B CN 108681517B
Authority
CN
China
Prior art keywords
address
bit
address conversion
signal
conversion circuit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201810435884.1A
Other languages
English (en)
Other versions
CN108681517A (zh
Inventor
黄锋
杨叶花
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
GUANGZHOU INSTITUTE OF MEASURING AND TESTING TECHNOLOGY
Original Assignee
GUANGZHOU INSTITUTE OF MEASURING AND TESTING TECHNOLOGY
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by GUANGZHOU INSTITUTE OF MEASURING AND TESTING TECHNOLOGY filed Critical GUANGZHOU INSTITUTE OF MEASURING AND TESTING TECHNOLOGY
Priority to CN201810435884.1A priority Critical patent/CN108681517B/zh
Publication of CN108681517A publication Critical patent/CN108681517A/zh
Application granted granted Critical
Publication of CN108681517B publication Critical patent/CN108681517B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • G06F13/4291Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus using a clocked protocol

Abstract

本发明公开了一种变换I2C器件地址的方法及系统,变换I2C器件地址的方法包括以下步骤:a、通过地址变换电路上的地址变换设定开关设置地址中的每位地址码的位地址变换值Ki;b、将地址变换电路接入I2C从机的串行数据线SDA1端与I2C主机的串行数据线SDA2端之间;c、地址变换电路将寻址命令D变换为新的寻址命令Dn;d、地址变换电路将寻址命令Dn输出至述I2C从机的串行数据线SDA2端,I2C从机接收所述寻址命令Dn并响应;其中,所述地址变换电路与所述I2C总线的串行时钟线SCL相连。本发明的变换I2C器件地址的方法,可对I2C器件的地址进行重新设置,解决I2C器件地址冲突的问题。

Description

变换I2C器件地址的方法及系统
技术领域
本发明涉及电子电路技术领域,更具体的说,是一种变换I2C器件地址的方法及系统。
背景技术
I2C总线是一种由PHILIPS公司开发的两线式串行总线,其主要用于连接微控制器及其外围设备,I2C总线包括串行数据线SDA及串行时钟线SCL,串行数据线SDA及串行时钟线SCL在连接到总线的I2C器件间传递信息,每个I2C器件都有一个唯一的地址识别,一般情况下为7位二进制地址识别码,连接到I2C总线上的从机通过识别主机发送的地址码并响应,但同时挂在I2C总线上的I2C器件可为多个,多个I2C器件的地址码是有限的,这样就导致I2C器件间存在相同的地址,而如何解决I2C总线上的器件的地址冲突问题就成为I2C总线应用的一个重要瓶颈。
发明内容
本发明的目的在于提供一种变换I2C器件地址的方法及系统,其对I2C总线上的器件的地址进行重新设定,解决I2C总线上的器件地址冲突的问题。
其技术方案如下:
本发明公开一种变换I2C器件地址的方法,包括以下步骤:
a、通过地址变换电路上的地址变换设定开关设置地址中的每位地址码的位地址变换值Ki;
b、将地址变换电路接入I2C从机的串行数据线SDA1端与I2C主机的串行数据线SDA2端之间;
c、所述地址变换电路接收所述I2C主机发出的寻址命令D,所述地址变换电路将所述寻址命令D中的地址位位信号与对应位的所述位地址变换值Ki经过或运算及异或运算后变换为新的寻址命令Dn;
d、所述地址变换电路将所述寻址命令Dn输出至所述I2C从机的串行数据线SDA2端,所述I2C从机接收所述寻址命令Dn并响应;
在所述步骤c,所述寻址命令Dn的产生步骤为:
所述控制信号Co将译码器进行复位,所述译码器将所述I2C主机发出所述寻址命令D时的对应的所述I2C总线的串行时钟线SCL的串行时钟信号译为并行的每位位信号Pi;
将并行的每位位信号Pi根据对应位设定开关设置的所述位地址变换值Ki产生并行的位地址变换信号Xi;
将每一并行的所述位地址变换信号Xi之间经过或逻辑运算产生串行的地址变换信号S;
将串行的所述地址变换信号S与所述寻址命令D中的地址位位信号进行异或运算,产生所述寻址命令Dn。
每一并行的所述位信号Pi以所述I2C总线上的所述串行时钟线SCL的上一个信号的下降沿开始有效,以每一所述位信号Pi对应的所述串行时钟线SCL信号的下降沿结束。
在所述步骤a中,所述位地址变换值Ki为“1”或“0”,其中,“1”代表对位地址数据进行变换,“0”代表原位地址数据不变。
所述步骤b包括:触发器捕获所述I2C主机在I2C总线的所述串行时钟线SCL上发出的开始命令的起始位,产生控制信号Co,所述控制信号Co控制模拟开关Kc,将所述地址变换电路接入I2C从机与所述I2C主机之间。
所述地址变换电路接收完所述寻址命令D后,所述控制信号Co解除,所述模拟开关Kc复位。
本发明还公开一种变换I2C器件地址的系统,包括I2C主机、I2C从机以及地址变换电路,所述I2C主机与所述I2C从机通过I2C总线相连,所述地址变换电路位于所述I2C从机的串行数据线SDA1端与所述I2C主机的串行数据线SDA2端之间,模拟开关控制所述地址变换电路与所述I2C主机及所述I2C从机的连接,所述地址变换电路与所述I2C总线的串行时钟线SCL相连,所述地址变换电路上设有地址变换设定开关。
所述I2C从机接收的I2C总线上的串行数据线SDA的有效信号比所述I2C总线上的串行时钟线SCL的信号宽。
所述I2C总线上还设有译码器。
所述地址变换设定开关为拨动开关或跳线。
下面对本发明的优点或原理进行说明:
1、地址变换电路通过改变I2C器件的地址,解决I2C总线上的I2C器件地址冲突的问题,通过地址变换电路,I2C器件可以随意接入I2C总线上,不受线路位置的限制,同时,不需要在电子电路上做预先设计,使用的灵活性高。
2、地址变换电路通过逻辑运算即可改变I2C总线上的I2C器件的地址,其成本低廉且响应速度快,地址变换电路可根据需要随时任意调整I2C器件的地址,使用简单方便。
3、对I2C总线上地址冲突的器件重新赋予一个新地址,方便对I2C器件进行管理。
4、地址变换电路不需要改变原I2C系统上的线路,且不需要任何的通讯命令,可方便的在已有的I2C系统上扩展。
5、位信号Pi以I2C总线上的串行时钟线SCL的上一个信号的下降沿开始有效,以每一位信号Pi对应的串行时钟线SCL信号的下降沿结束,确保I2C从机接收的I2C总线上的串行数据线SDA的有效信号比I2C总线上的串行时钟线SCL的信号宽,使变换I2C器件地址的系统的功能稳定可靠。
附图说明
图1是本实施例的I2C总线上的I2C主机发出的串行时钟线SDA及串线数时钟线SCL及控制信号Co的时序图;
图2是本实施例的I2C总线上串行时钟线SCL上的串行时钟信号与并行的位信号Pi及并行的位地址变换信号Xi的时序图;
图3是本实施例的位地址变换信号Xi的时序图及地址变换信号S的时序图;
图4是本实施例的寻址命令D变换成新的寻址命令Dn的时序图。
具体实施方式
下面对本发明的实施例进行详细说明。
本实施例公开一种变换I2C器件地址的方法及系统,其中变换I2C器件地址的系统包括I2C主机、I2C从机及地址变换电路,I2C主机与I2C从机通过I2C总线相连,I2C总线包括串行数据线SDA及串行时钟线SCL,地址变换电路位于I2C从机的串行数据线SDA1端与I2C主机的串行数据线SDA2端之间,且地址变换电路与I2C总线的串行时钟线SCL相连,地址变换电路上设有模拟开关Kc,模拟开关Kc控制地址变换电路与I2C主机及I2C从机的连接及断开,本实施例的模拟开关Kc为低电阻单刀双掷模拟开关,地址变换电路上设有地址变换设定开关,本实施例的地址变换设定开关为拨动开关或跳线,地址变换设定开关用于设置I2C总线上的器件的地址码的每位地址变换值Ki,I2C总线上还设有译码器。
本实施例的变换I2C器件地址的系统可以变换I2C器件地址,以下以具体实施例详细说明变换I2C器件地址的方法。
假设一个测量系统需使用16个ADS1110模数转换器,并需对每个ADS1110的转换精度进行修正,虽然ADS1110有8种地址的不同型号,但也不能解决16个ADS1110模数转换器的地址不冲突的问题,现以器件出厂地址为1001010X(X为1或0)的ADS1110模数转化器为例,其地址码从最高位第七位开始依次设为K7、K6、K5、K4、K3、K2、K1,如转换地址的地址识别符的高4位即K7至K4的地址识别码,则可获得如下表1的16个新地址。
Figure BDA0001654335830000051
表1
现以表1中地址1001010X变换为0011010X为例,其变换方法具体如下:
a、通过地址变换设定开关设置七位二进制地址码的每位地址码的位地址变换值Ki为“1”或“0”,其中,“1”代表对位地址数据进行变换(即1变成0,0变成1),“0”代表位地址数据保持不变,本实施例中的K7和K5位的位地址变换值Ki设置为“1”,其它位的位地址变换值Ki设置为“0”,并以开关状态“1”为高电平,“0”为低电平;
b、触发器捕获I2C总线的串行时钟线SCL的开始信号,当I2C总线的串行数据线为高电平时捕获到I2C总线的串行时钟线由高电平转换为低电平的下降沿信号时,触发器产生高电平的控制信号Co并维持,此时捕获到的是I2C主机发出的开始命令的起始位,控制信号Co控制模拟开关Kc,将地址变换电路接入I2C从机的串行数据线SDA1端与I2C主机的串行数据线SDA2端之间;
c、I2C主机在I2C总线的串行数据线SDA上发出寻址命令D,寻址命令D的地址码为1001010X,控制信号Co将串/并行译码器进行复位,串/并行译码器将I2C主机发出寻址命令D时的I2C总线的串行时钟线SCL的信号译为并行的每位位信号Pi,如图2所示,最高位第7位P7的位信号Pi为1000000X,第六位P6的位信号Pi为010000X,第五位P5的位信号Pi为0010000X,第四位P4的位信号Pi为0001000X,第三位P3的位信号Pi为0000100X,第二位P2的位信号Pi为0000010X,第一位P1的位信号Pi为0000001X;
将并行的P7至P1位的每一位信号Pi根据K7至K1对应位设定开关设置的位地址变换值Ki产生并行的位地址变换信号Xi,其中,第七位X7的位地址变换信号Xi为1000000X;第六位X6的位地址变换信号Xi为0000000X;第五位X5的位地址变换信号Xi为0010000X;第四位X4的位地址变换信号Xi为0000000X;第三位X3的位地址变换信号Xi为0000000X;第二位X2的位地址变换信号Xi为0000000X;第一位X1的位地址变换信号Xi为0000000X;
将X7至X1位并行的位地址变换信号Xi之间经过或逻辑运算产生串行的变换信号S,S的信号为1010000X;
将串行的地址变换信号S(1010000X)与寻址命令D(1001010X)中的地址位位信号进行异或运算,产生新的寻址命令Dn,Dn的寻址命令为0011010X;
d、地址变换电路将寻址命令Dn输出至I2C从机的串行数据线SDA2端,I2C从机接收寻址命令Dn并响应,从而完成寻址。
其中,地址变换电路接收完寻址命令D的7位寻址数据及第八位读写命令后,控制信号Co由高电平变为低电平,控制信号Co令模拟开关Kc复位,使I2C从机的串行数据线SDA1端直接与I2C主机的串行数据线SDA2端相连,此后,I2C从机直接接收I2C主机发出的命令并响应。
在本实施例中,P7至P1位的位信号Pi以I2C总线上的串行时钟线SCL上的上一个串行时钟信号的下降沿开始有效,以本串行时钟信号的下降沿结束,以P3位的位信号Pi为例,P3位的位信号Pi以P4位的位信号Pi的串行时钟信号的下降沿开始有效,以P3位的位信号Pi的下降沿结束,此种设置,使的产生的新的寻址命令Dn的数据在串行时钟信号的上一个下降沿开始有效,从而使I2C从器件接收到的串行数据线SDA的有效信号比串行时钟线SCL的信号要宽。
本实施例的优点或原理如下:
1、地址变换电路通过改变I2C器件的地址,解决I2C总线上I2C器件地址冲突的问题,通过地址变换电路,I2C器件可以随意接入I2C总线上,不受线路位置的限制,同时,不需要在电子电路上做预先设计,使用的灵活性高。
2、地址变换电路通过逻辑运算即可改变I2C总线上的I2C器件的地址,其成本低廉且响应速度快,地址变换电路可根据需要随时任意调整I2C器件的地址,使用简单方便。
3、对I2C总线上地址冲突的器件重新赋予一个新地址,方便对I2C器件进行管理。
4、地址变换电路不需要改变原I2C系统上的线路,且不需要任何的通讯命令,可方便的在已有的I2C系统上扩展。
5、位信号Pi以I2C总线上的串行时钟线SCL的上一个信号的下降沿开始有效,以每一位信号Pi对应的串行时钟线SCL信号的下降沿结束,确保I2C从机接收的I2C总线上的串行数据线SDA的有效信号比I2C总线上的串行时钟线SCL的信号宽,使变换I2C器件地址的系统的功能稳定可靠。
以上仅为本发明的具体实施例,并不以此限定本发明的保护范围;在不违反本发明构思的基础上所作的任何替换与改进,均属本发明的保护范围。

Claims (9)

1.变换I2C器件地址的方法,其特征在于,包括以下步骤:
a、通过地址变换电路上的地址变换设定开关设置地址中的每位地址码的位地址变换值Ki,所述位地址变换值Ki为“1”或“0”,其中,“1”代表对位地址数据进行变换,“0”代表原位地址数据不变;
b、将地址变换电路接入I2C从机的串行数据线SDA1端与I2C主机的串行数据线SDA2端之间;
c、所述地址变换电路接收所述I2C主机发出的寻址命令D,所述地址变换电路将所述寻址命令D中的地址位位信号与对应位的所述位地址变换值Ki经过或运算及异或运算后变换为新的寻址命令Dn;
d、所述地址变换电路将所述寻址命令Dn输出至所述I2C从机的串行数据线SDA2端,所述I2C从机接收所述寻址命令Dn并响应。
2.如权利要求1所述的变换I2C器件地址的方法,其特征在于,在所述步骤c,所述寻址命令Dn的产生步骤为:
控制信号Co将译码器进行复位,所述译码器将所述I2C主机发出所述寻址命令D时的对应的所述I2C总线的串行时钟线SCL的串行时钟信号译为并行的每位位信号Pi;
将并行的每位位信号Pi根据对应位设定开关设置的所述位地址变换值Ki产生并行的位地址变换信号Xi;
将每一并行的所述位地址变换信号Xi之间经过或逻辑运算产生串行的地址变换信号S;
将串行的所述地址变换信号S与所述寻址命令D中的地址位位信号进行异或运算,产生所述寻址命令Dn。
3.如权利要求2所述的变换I2C器件地址的方法,其特征在于,每一并行的所述位信号Pi以所述I2C总线上的所述串行时钟线SCL的上一个信号的下降沿开始有效,以每一所述位信号Pi对应的所述串行时钟线SCL信号的下降沿结束。
4.如权利要求1至权利要求3任一项所述的变换I2C器件地址的方法,其特征在于,所述步骤b包括:触发器捕获所述I2C主机在I2C总线的串行时钟线SCL上发出的开始命令的起始位,产生控制信号Co,所述控制信号Co控制模拟开关Kc,将所述地址变换电路接入I2C从机与所述I2C主机之间。
5.如权利要求1至权利要求3任一项所述的变换I2C器件地址的方法,其特征在于,所述地址变换电路接收完所述寻址命令D后,控制信号Co解除,模拟开关Kc复位。
6.变换I2C器件地址的系统,其特征在于,包括I2C主机、I2C从机以及地址变换电路,所述I2C主机与所述I2C从机通过I2C总线相连,所述地址变换电路位于所述I2C从机的串行数据线SDA1端与所述I2C主机的串行数据线SDA2端之间,模拟开关控制所述地址变换电路与所述I2C主机及所述I2C从机的连接,所述地址变换电路与所述I2C总线的串行时钟线SCL相连,所述地址变换电路上设有地址变换设定开关。
7.如权利要求6所述的变换I2C器件地址的系统,其特征在于,所述I2C从机接收的I2C总线上的串行数据线SDA的有效信号比所述I2C总线上的串行时钟线SCL的信号宽。
8.如权利要求7所述的变换I2C器件地址的系统,其特征在于,所述I2C总线上还设有译码器。
9.如权利要求6至权利要求8任一项所述的变换I2C器件地址的系统,其特征在于,所述地址变换设定开关为拨动开关或跳线。
CN201810435884.1A 2018-05-09 2018-05-09 变换i2c器件地址的方法及系统 Active CN108681517B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810435884.1A CN108681517B (zh) 2018-05-09 2018-05-09 变换i2c器件地址的方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810435884.1A CN108681517B (zh) 2018-05-09 2018-05-09 变换i2c器件地址的方法及系统

Publications (2)

Publication Number Publication Date
CN108681517A CN108681517A (zh) 2018-10-19
CN108681517B true CN108681517B (zh) 2020-09-01

Family

ID=63805862

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810435884.1A Active CN108681517B (zh) 2018-05-09 2018-05-09 变换i2c器件地址的方法及系统

Country Status (1)

Country Link
CN (1) CN108681517B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111078606B (zh) * 2019-11-18 2021-05-11 上海灵动微电子股份有限公司 一种模拟i2c从机及其实现方法、终端设备和存储介质
CN111221765A (zh) * 2019-12-31 2020-06-02 苏州浪潮智能科技有限公司 一种防止i2c总线地址冲突的通信方法及通信系统

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1461440A (zh) * 2000-09-19 2003-12-10 汤姆森特许公司 在集成电路间的环境中具有可编程地址的集成电路
CN1731383A (zh) * 2005-08-29 2006-02-08 杭州华为三康技术有限公司 一种设备管理系统及方法
CN102932049A (zh) * 2012-10-24 2013-02-13 北京空间飞行器总体设计部 一种航天器信息传输方法
CN103095855A (zh) * 2011-10-27 2013-05-08 无锡力芯微电子股份有限公司 I2c通信接口装置
EP2778941B1 (en) * 2013-03-14 2016-10-19 Linear Technology Corporation Address translation in i2c data communications system
CN106502948A (zh) * 2016-10-25 2017-03-15 郑州云海信息技术有限公司 一种i2c地址可选的板载fpga设计方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW201201023A (en) * 2010-06-30 2012-01-01 Hon Hai Prec Ind Co Ltd Inter-Integrated Circuit device communication circuit

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1461440A (zh) * 2000-09-19 2003-12-10 汤姆森特许公司 在集成电路间的环境中具有可编程地址的集成电路
CN1731383A (zh) * 2005-08-29 2006-02-08 杭州华为三康技术有限公司 一种设备管理系统及方法
CN103095855A (zh) * 2011-10-27 2013-05-08 无锡力芯微电子股份有限公司 I2c通信接口装置
CN102932049A (zh) * 2012-10-24 2013-02-13 北京空间飞行器总体设计部 一种航天器信息传输方法
EP2778941B1 (en) * 2013-03-14 2016-10-19 Linear Technology Corporation Address translation in i2c data communications system
CN106502948A (zh) * 2016-10-25 2017-03-15 郑州云海信息技术有限公司 一种i2c地址可选的板载fpga设计方法

Also Published As

Publication number Publication date
CN108681517A (zh) 2018-10-19

Similar Documents

Publication Publication Date Title
US8898358B2 (en) Multi-protocol communication on an I2C bus
TWI651619B (zh) 在一資料通信介面中執行的方法及用於資料通信之設備
US10241955B2 (en) Dynamically adjustable multi-line bus shared by multi-protocol devices
US10007628B2 (en) Dynamically adjustable multi-line bus shared by multi-protocol devices
USRE44270E1 (en) System for providing access of multiple data buffers to a data retaining and processing device
Leens An introduction to I 2 C and SPI protocols
US9448960B2 (en) Address translation in I2C data communications system
US11435959B2 (en) NAND raid controller
CN101398801B (zh) 扩展内部集成电路总线的方法及装置
CN107066746B (zh) 基于i2c接口通过cpld来实现pca9555功能的方法
US20100122003A1 (en) Ring-based high speed bus interface
CN108681517B (zh) 变换i2c器件地址的方法及系统
JP2008545319A (ja) Rs−232/i2c変換icとホスト間の通信用ソフトウェア層
CN109582623B (zh) 一种能够实现多块不同类型扩展板级联的扩展板电路
TW201810959A (zh) 用於符號轉變時鐘轉碼的偵錯和糾錯的翻轉位元
CN101421705B (zh) 具有高储存容量的多媒体卡
US20140149616A1 (en) I2c bus structure and address management method
US11106618B2 (en) Method for addressing an integrated circuit on a bus and corresponding device
TW201921260A (zh) 在i3c多線匯流排上之奇偶校驗位元位置
CN108228520B (zh) 一种面向bmc的i2c控制器的快速传输方法
JP5444911B2 (ja) 送受信制御装置、電子機器、データ送信方法及び制御プログラム
CN108038061B (zh) 一种地址分配方法及plc系统
JP2017215732A (ja) メモリおよび情報処理装置
CN107957969B (zh) 判定设备连接状态及设备类型的方法
CN106713521B (zh) 一种基于广播方式来查找i2c设备地址的方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant