CN106713521B - 一种基于广播方式来查找i2c设备地址的方法 - Google Patents

一种基于广播方式来查找i2c设备地址的方法 Download PDF

Info

Publication number
CN106713521B
CN106713521B CN201611085556.0A CN201611085556A CN106713521B CN 106713521 B CN106713521 B CN 106713521B CN 201611085556 A CN201611085556 A CN 201611085556A CN 106713521 B CN106713521 B CN 106713521B
Authority
CN
China
Prior art keywords
address
slave
register
master
broadcast
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
CN201611085556.0A
Other languages
English (en)
Other versions
CN106713521A (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.)
Accelink Technologies Co Ltd
Original Assignee
Accelink Technologies Co Ltd
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 Accelink Technologies Co Ltd filed Critical Accelink Technologies Co Ltd
Priority to CN201611085556.0A priority Critical patent/CN106713521B/zh
Publication of CN106713521A publication Critical patent/CN106713521A/zh
Application granted granted Critical
Publication of CN106713521B publication Critical patent/CN106713521B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/50Address allocation
    • H04L61/5069Address allocation for group communication, multicast communication or broadcast communication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/30Managing network names, e.g. use of aliases or nicknames
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2101/00Indexing scheme associated with group H04L61/00
    • H04L2101/60Types of network addresses
    • H04L2101/618Details of network addresses

Abstract

本发明涉及一种基于广播方式来查找I2C设备地址的方法,主I2C设备通过向从I2C设备发送包含待设置给从I2C设备的临时地址的广播命令来设置从I2C设备的地址,然后通过该临时地址与从I2C设备通信来读取从I2C设备原来所使用的真实地址。通过本方法,可以找回丢失的从I2C设备的地址。本发明无需添加任何外部辅助设备,能够简单快速地获取从机地址,成本低廉,易于操作,适于广泛推广。

Description

一种基于广播方式来查找I2C设备地址的方法
技术领域
本发明涉及I2C通信领域,具体说是一种基于广播方式来查找I2C设备地址的方法。
背景技术
I2C(Inter-Integrated Circuit)总线是一种由PHLIPS公司开发的两线式总线,用于连接微控制器及其外围设备。I2C总线产生于80年代,最初为音频和视频设备开发,如今主要在服务器管理中使用,其中包括单个组件状态的通信,其主要优点是简单性和有效性。由于接口直接设置在组件之上,因此I2C总线占用的空间非常小,能够有效减少电路板空间和芯片管脚数量,降低了设备之间的互联成本。其另一个优点是支持多主控,其中任何能够进行发送和接收的设备都可以成为主总线。一个主控能够控制信号的传输和时钟频率。如今,I2C通讯方式在嵌入式系统技术领域应用越来越多,越来越广。
I2C总线支持任何IC生产过程(NMOS、CMOS、双极性),两线(即串行数据SDA和串行时钟SCL线)在连接到总线的器件间传递信息。每个器件都有一个唯一的地址识别,而且都可以作为一个发送器或接收器。器件在执行数据传输时也可以被看作是主机(Master,即主I2C设备)或从机(Slave,即从I2C设备),主机是初始化总线的数据传输并产生允许传输的时钟信号的器件,此时,任何被寻址的器件都被认为是从机。
I2C总线数据传输时,SCL线为高电平时,SDA线若保持稳定,那么SDA上是在传输数据bit;若SDA发生跳变,则用来表示一个会话的开始(SDA由高电平向低电平跳变)或结束(SDA由低电平向高电平跳变);SCL线为低电平时,SDA线才能改变传输的数据bit。主机每发送完8bit数据后等待从机的应答(ACK),即在第9个时钟clock,若从机发送应答(ACK),SDA线会被拉低,若从机没有响应应答(ACK),则SDA线会被置高,将引起主机发生RESTART或STOP流程。
I2C总线的数据传输过程基本过程为:主机发出开始信号;主机接着送出1字节的从机地址信息,其中最低位为读写控制码(1为读、0为写),高7位为从机器件地址代码;从机发出认可信号(ACK);主机开始发送信息,每发完一字节后,从机发出认可信号给主机;主机发出停止信号,结束输出传输过程。
I2C总线上主机写从机寄存器的标准流程为:
1.主机发起START
2.主机发送I2C addr(7bit)和W操作0(1bit),等待从机ACK
3.从机发送ACK
4.主机发送reg addr(8bit),等待从机ACK
5.从机发送ACK
6.主机发送data(8bit),即要写入寄存器中的数据,等待从机ACK
7.从机发送ACK
8.第6步和第7步可以重复多次,即写多个寄存器
9.主机发起STOP
I2C总线上主机读从机寄存器的标准流程为:
1.主机发送I2C addr(7bit)和W操作1(1bit),等待从机ACK
2.从机发送ACK
3.主机Master发送reg addr(8bit),等待从机ACK
4.从机发送ACK
5.主机发起START
6.主机发送I2C addr(7bit)和R操作1(1bit),等待从机ACK
7.从机发送ACK
8.从机发送data(8bit),即寄存器里的值
9.主机发送ACK
10.第8步和第9步可以重复多次,即顺序读多个寄存器
因此大多数基于I2C通信协议进行通信的设备都包括主机和从机,如果主机不知道其从机的地址,则无法完成主机与指定从机的通信。在I2C通信过程中,由于从I2C的地址可变,在没有保存的情况下,就会发生I2C地址丢失,导致难以再建立通信连接,因此目前急需一种主机查找从机I2C地址的方法。
发明内容
针对丢失从I2C地址的问题,本发明的目的在于提供一种基于广播的方式来查找I2C地址的方法,通过广播的方式设置一个临时的地址给从I2C,然后通过该地址跟从I2C通信,从而得到真正的从I2C地址,进而可以进行正常的通信。
本发明提供了一种基于广播方式来查找I2C设备地址的方法,包括以下步骤:
步骤1,将需要查找地址的I2C设备作为从I2C设备,主I2C设备通过广播命令方式将临时虚拟地址发送给所述从I2C设备;
步骤2,该从I2C设备启用通过广播命令获得的所述临时虚拟地址;
步骤3,所述主I2C设备使用所述临时虚拟地址读取所述从I2C设备原来所使用的真实地址;
步骤4,所述主I2C设备使用所述临时虚拟地址将从I2C设备的地址设置为原来所使用的真实地址。
在上述技术方案中,在所述步骤1之前将所述从I2C设备与所述主I2C设备单独组网。
在上述技术方案中,所述步骤1中所述主I2C设备向从I2C设备发送的广播命令中包括有待设置给从I2C设备的临时虚拟地址。
在上述技术方案中,所述步骤1中的广播命令的格式为:
起始位+广播地址(W)+寄存器地址(2bytes)+寄存器内容(2bytes)+结束位
其中,寄存器地址为对应存放临时虚拟地址的寄存器序号;寄存器内容为给所述从I2C设备分配的临时虚拟地址。
在上述技术方案中,所述步骤3中,所述主I2C设备向所述从I2C设备发出的读取命令的格式为:
起始位+设备地址1(W)+寄存器地址(2bytes)+起始位+设备地址2(R)+寄存器内容(2bytes)+结束位
其中,设备地址1和设备地址2为临时虚拟地址;寄存器地址为所述从I2C设备中存放有原来所使用的真实地址的寄存器序号;寄存器内容为等待从I2C设备应答的寄存器内容。
在上述技术方案中,所述步骤4中,所述主I2C设备通过设置命令将从I2C设备的地址设置为从I2C设备原来所使用的真实地址。
在上述技术方案中,所述设置命令的格式为:
起始位+设备地址(W)+寄存器地址(2bytes)+寄存器内容(2bytes)+结束位
其中,设备地址为临时虚拟地址;寄存器地址为复位寄存器的寄存器序号;寄存器内容为从I2C设备原来所使用的真实地址。
本发明取得了以下技术效果:本发明能够通过发广播的方式虚拟一个地址给从I2C,并且通过该虚拟地址来找到真正的从I2C地址,方法简单有效;本发明还可以提供一种基于上述方法的I2C通信系统,该系统结构简单,没有添加任何外部辅助设备,能够简单快速的获取从机地址,成本低廉,易于操作,适于广泛推广。
附图说明
图1为本发明的方法执行流程图。
具体实施方式
为了便于本领域普通技术人员理解和实施本发明,下面结合附图及具体实施方式对本发明作进一步的详细描述。
由此,本发明提供的一种基于广播的方式来查找I2C地址的方法,包含以下几个步骤:
0.将需要查找地址/确认地址的I2C设备作为从I2C设备与主I2C设备单独组网,使该I2C总线上仅有主I2C设备和需要查找地址/确认地址的I2C设备。
1.主I2C设备通过广播方式将临时虚拟地址发送给从I2C设备。
主I2C设备向I2C总线上的从I2C设备发送广播命令,广播命令中包含主I2C设备发给从I2C设备的虚拟地址A,格式如下:
起始位+广播地址(W)+寄存器地址(2byte)+寄存器内容(2byte)+结束位
其中,寄存器地址对应存放虚拟的I2C地址寄存器序号,例如0x28;寄存器内容存放临时给从I2C设备分配的虚拟地址A。
从I2C设备寄存器地址分配规划举例如下:
2.从I2C设备启用通过广播命令获得的临时虚拟地址,即从I2C设备接收到该广播命令后就自动将寄存器内容中的虚拟地址A作为从I2C设备的地址(即,从I2C设备根据接收到的广播命令将寄存器地址(如步骤1中的举例,此处为0x28)的内容修改为由广播命令发送来的虚拟I2C地址,并将其作为自己的I2C地址);
3.主I2C设备发送普通读取命令给从I2C设备,格式如下:
起始位+设备地址1(W)+寄存器地址(2)+起始位+设备地址2(R)+寄存器内容(2)+结束位
此时的设备地址1和设备地址2就是在步骤2中刚刚设置的虚拟地址A;寄存器地址是从I2C设备上存放原来真实I2C地址的寄存器地址(如步骤1中的举例,此处为0x29);该寄存器内容就是从I2C设备返回给主I2C设备的其原来真实I2C地址B。通过该读取命令,主I2C设备利用虚拟地址A读取从I2C设备之前所使用的真实I2C地址(即真实地址B)。
4.主I2C设备发送设置命令给从I2C设备,将其地址设置为真实I2C地址,格式如下:
起始位+设备地址(W)+寄存器地址(2)+寄存器内容(2)+结束位
在发送此命令时,使用的设备地址为虚拟I2C地址(即虚拟地址A),写入的寄存器地址为复位寄存器(如步骤1中的举例,此处为0x30),寄存器内容为真实I2C地址B。
5.此时主I2C设备可以使用从I2C设备原有地址与从I2C设备进行正常通信。
由于此时已经正确获得从I2C设备原来所使用的地址(真实地址B),可将将可将从I2C设备接入原来的/或其他新的I2C总线上正常使用。
在此过程中省略了通信过程中从I2C设备接收到主I2C设备命令后,对主I2C设备命令的正常ACK响应。
以上实施例仅为本发明的一种实施方式,其描述较为具体和详细,但不能因此而理解为对本发明专利范围的限制。其具体地址/内容分配和命令应答可根据实际需要进行相应的调整。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。

Claims (6)

1.一种基于广播方式来查找I2C设备地址的方法,其特征在于包括以下步骤:
将从I2C设备与主I2C设备单独组网,使I2C总线上仅有主I2C设备和从I2C设备;
步骤1,将需要查找地址的I2C设备作为从I2C设备,主I2C设备通过广播命令方式将临时虚拟地址发送给所述从I2C设备;
步骤2,该从I2C设备启用通过广播命令获得的所述临时虚拟地址;
步骤3,所述主I2C设备使用所述临时虚拟地址读取所述从I2C设备原来所使用的真实地址;
步骤4,所述主I2C设备使用所述临时虚拟地址将从I2C设备的地址设置为原来所使用的真实地址。
2.如权利要求1所述的一种基于广播方式来查找I2C设备地址的方法,其特征在于:所述步骤1中所述主I2C设备向从I2C设备发送的广播命令中包括有待设置给从I2C设备的临时虚拟地址。
3.如权利要求2所述的一种基于广播方式来查找I2C设备地址的方法,其特征在于:所述步骤1中的广播命令的格式为:
起始位+广播地址+寄存器地址+寄存器内容+结束位
其中,寄存器地址为对应存放临时虚拟地址的寄存器序号;寄存器内容为给所述从I2C设备分配的临时虚拟地址;广播地址的读写标志为W,寄存器地址为2bytes,寄存器内容为2bytes。
4.如权利要求1所述的一种基于广播方式来查找I2C设备地址的方法,其特征在于:所述步骤3中,所述主I2C设备向所述从I2C设备发出的读取命令的格式为:
起始位+设备地址1+寄存器地址+起始位+设备地址2+寄存器内容+结束位
其中,设备地址1和设备地址2为临时虚拟地址;寄存器地址为所述从I2C设备中存放有原来所使用的真实地址的寄存器序号;寄存器内容为等待从I2C设备应答的寄存器内容;设备地址1的读写标志为W,设备地址2的读写标志为R,寄存器地址为2bytes,寄存器内容为2bytes。
5.如权利要求4所述的一种基于广播方式来查找I2C设备地址的方法,其特征在于:所述步骤4中,所述主I2C设备通过设置命令将从I2C设备的地址设置为从I2C设备原来所使用的真实地址。
6.如权利要求5所述的一种基于广播方式来查找I2C设备地址的方法,其特征在于:所述设置命令的格式为:
起始位+设备地址+寄存器地址+寄存器内容+结束位
其中,设备地址为临时虚拟地址;寄存器地址为复位寄存器的寄存器序号;寄存器内容为从I2C设备原来所使用的真实地址;设备地址的读写标志为W,寄存器地址为2bytes,寄存器内容为2bytes。
CN201611085556.0A 2016-11-30 2016-11-30 一种基于广播方式来查找i2c设备地址的方法 Active CN106713521B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201611085556.0A CN106713521B (zh) 2016-11-30 2016-11-30 一种基于广播方式来查找i2c设备地址的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201611085556.0A CN106713521B (zh) 2016-11-30 2016-11-30 一种基于广播方式来查找i2c设备地址的方法

Publications (2)

Publication Number Publication Date
CN106713521A CN106713521A (zh) 2017-05-24
CN106713521B true CN106713521B (zh) 2019-12-10

Family

ID=58935300

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201611085556.0A Active CN106713521B (zh) 2016-11-30 2016-11-30 一种基于广播方式来查找i2c设备地址的方法

Country Status (1)

Country Link
CN (1) CN106713521B (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101355482A (zh) * 2008-09-04 2009-01-28 中兴通讯股份有限公司 实现嵌入式设备地址顺序识别的设备、方法和系统
CN105183685A (zh) * 2015-06-24 2015-12-23 深圳市振邦智能科技有限公司 一种基于i2c通信协议的获取从机地址的方法及i2c通信系统
CN105589825A (zh) * 2015-07-17 2016-05-18 贵州全安密灵科技有限公司 主从式串行通信网络中的电子雷管状态快速查询方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106155964B (zh) * 2015-03-31 2019-05-21 恩智浦有限公司 使用串行数据传输总线的系统中的地址解码方法与系统

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101355482A (zh) * 2008-09-04 2009-01-28 中兴通讯股份有限公司 实现嵌入式设备地址顺序识别的设备、方法和系统
CN105183685A (zh) * 2015-06-24 2015-12-23 深圳市振邦智能科技有限公司 一种基于i2c通信协议的获取从机地址的方法及i2c通信系统
CN105589825A (zh) * 2015-07-17 2016-05-18 贵州全安密灵科技有限公司 主从式串行通信网络中的电子雷管状态快速查询方法

Also Published As

Publication number Publication date
CN106713521A (zh) 2017-05-24

Similar Documents

Publication Publication Date Title
US5974475A (en) Method for flexible multiple access on a serial bus by a plurality of boards
US7603501B2 (en) Communication circuit of serial peripheral interface devices
US7249209B2 (en) System and method for dynamically allocating inter integrated circuits addresses to multiple slaves
CN103095855B (zh) I2c通信接口装置
JP2008539497A (ja) 集積回路間におけるスレーブ装置の装置識別コーディング
US20060123168A1 (en) System and method for dynamically allocating addresses to devices coupled to an integrated circuit bus
CN107025203B (zh) 第一板卡、第二板卡及一种设备
TW201321983A (zh) 隨插即用式模組、電子系統以及相應的判斷方法與查詢方法
JP2007251947A (ja) マルチマスタのチェーン接続された二線シリアルバス
US7739435B2 (en) System and method for enhancing I2C bus data rate
CN108694140B (zh) 用于寻址i2c总线上的非易失性存储器的方法和对应的存储器设备
CN110223643B (zh) 数据传输方法、组件及系统、显示装置
US11144305B2 (en) Method for updating IC firmware
US20100036990A1 (en) Network device
US7822040B2 (en) Method for increasing network transmission efficiency by increasing a data updating rate of a memory
CN106713521B (zh) 一种基于广播方式来查找i2c设备地址的方法
CN112148629A (zh) 用于在总线上寻址集成电路的方法和对应设备
CN108228520B (zh) 一种面向bmc的i2c控制器的快速传输方法
CN108681517B (zh) 变换i2c器件地址的方法及系统
CN100504712C (zh) 版本可编程电路模块
US8194480B2 (en) Method for initializing memory device
EP2725499A1 (en) Method for assigning dynamically an identifier to a slave device in I2C data bus
US20160291987A1 (en) Programmable cable and programming method thereof
CN107957969B (zh) 判定设备连接状态及设备类型的方法
WO2010000678A1 (en) Method for transferring or erasing data in a master-slave environment

Legal Events

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