CN105183685A - 一种基于i2c通信协议的获取从机地址的方法及i2c通信系统 - Google Patents
一种基于i2c通信协议的获取从机地址的方法及i2c通信系统 Download PDFInfo
- Publication number
- CN105183685A CN105183685A CN201510354885.XA CN201510354885A CN105183685A CN 105183685 A CN105183685 A CN 105183685A CN 201510354885 A CN201510354885 A CN 201510354885A CN 105183685 A CN105183685 A CN 105183685A
- Authority
- CN
- China
- Prior art keywords
- address code
- machine
- sweep signal
- carrying
- signal
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
- G06F13/4291—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus using a clocked protocol
Abstract
本发明适用于I2C通信领域,提供了一种基于I2C通信协议的获取从机地址的方法,所述方法包括采用主机来执行步骤:向所有从机发送携带有地址码的扫描信号;检测是否接收到其中一个所述从机通过拉低SDA数据线的高电平发送的应答信号;若接收到其中一个所述从机发送的所述应答信号,判定所述地址码为该从机的地址码。本发明还提供一种I2C通信系统,所述系统包括一个主机和多个从机,所述主机包括发送模块、第一检测模块和接收模块。本发明通过发送扫描信号,并接收从机通过拉低SDA数据线的高电平发送的低电平应答信号的方法来确定从机地址,使得所述主机能够简单有效的确定从机地址,实现了基于I2C通信协议的通信设备的二次开发,节省了大人力物力。
Description
技术领域
本发明属于I2C通信领域,尤其涉及一种基于I2C通信协议的获取从机地址的方法及I2C通信系统。
背景技术
I2C通信协议是一种常用的通信协议,因其连接结构简单,只需一条时钟线和一条数据线,就能实现多个设备之间的通信,因而被广泛使用。
然而,大多数基于I2C通信协议进行通信的设备通常包括主机和从机,如果主机不知道其从机的地址,则无法完成通信。现有技术中,对主板和显板之间的通信方式为I2C通信的产品进行二次开发,通常都需要花费较多时间来寻找显板的地址,在寻找不到的情况下,甚至会迫不得已放弃对所述产品的二次开发,而选择重新开发新产品。这极大的延长了产品的开发周期,并且浪费了人力物力从而增加了开发成本。
发明内容
本发明实施例的目的在于提供一种基于I2C通信协议的获取从机地址的方法及I2C通信系统,旨在解决现有技术中的基于I2C通信协议的通信设备中,主机难以获取从机地址而不能对产品进行二次开发,延长了开发周期,并且浪费了人力物力从而增加了开发成本的问题。
本发明实施例是这样实现的,一种基于I2C通信协议的获取从机地址的方法,所述方法包括采用主机来执行以下步骤:
向所有从机发送携带有地址码的扫描信号;
检测是否接收到其中一个所述从机通过拉低SDA数据线的高电平发送的应答信号;
若接收到其中一个所述从机发送的所述应答信号,判定所述地址码为该从机的地址码。
在一优选实施例中,所述方法还包括:
若未接收到任何一个所述从机发送的应答信号,则返回执行所述向所有从机发送携带有地址码的扫描信号的步骤。
本发明还提供一种I2C通信系统,所述I2C通信系统包括一个主机和多个从机,所述主机包括:
发送模块,用于向所有从机发送携带有地址码的扫描信号;
第一检测模块,用于检测是否接收到其中一个所述从机通过拉低SDA数据线的高电平发送的应答信号;
接收模块,用于若接收到其中一个所述从机发送的所述应答信号,判定所述地址码为该从机的地址码。
在一优选实施例中,所述主机还包括:
第一返回模块,用于若未接收到任何一个所述从机发送的应答信号,则返回执行所述向所有从机发送携带有地址码的扫描信号的步骤。
本发明实施例与现有技术相比,其有益效果在于:本发明通过发送扫描信号,并接收从机通过拉低SDA数据线的高电平发送的低电平应答信号的方法来确定从机地,使得所述主机能够简单有效的确定从机地址,实现了基于I2C通信协议的通信设备的二次开发,节省了大人力物力,易于实现;本发明还提供一种基于上述方法的I2C通信系统,该系统结构简单,能够简单快速的获取从机地址,成本低廉,易于操作,适于广泛推广。
附图说明
图1是本发明的实施例提供的基于I2C通信协议的获取从机地址的方法的流程图;
图2是现有技术中基于I2C通信协议的系统的结构框图;
图3是本发明的实施例提供的I2C通信系统的主机的基本结构框图;
图4是本发明的优选实施例提供的基于I2C通信协议的获取从机地址的方法的流程图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
图1是本发明的实施例提供的基于I2C通信协议的获取从机地址的方法的流程图,为了便于说明,仅示出了与本实施例相关的部分。
参阅图1,本发明实施例所提供的基于I2C通信协议的获取从机地址的方法,所述方法包括采用主机来执行以下步骤:
S101:向所有从机发送携带有地址码的扫描信号;
S102:检测是否接收到其中一个所述从机通过拉低SDA数据线的高电平发送的应答信号;
S103:若接收到其中一个所述从机发送的所述应答信号,判定所述地址码为该从机的地址码。
本发明通过发送扫描信号的方式来寻找从机地址,使得所述方法可以适用于大多数基于I2C通信协议的系统或设备。在具体应用中,所述主机为单片机。
在一优选实施例中,所述基于I2C通信协议的获取从机地址的方法,还包括:
若未接收到任何一个所述从机发送的应答信号,则返回执行所述向所有从机发送携带有地址码的扫描信号的步骤。
在具体应用中,所述从机接收到的主机发送的地址码之后,将该地址码与自身的地址码进行比对,若地址码相同,则通过拉低SDA数据线的高电平,使该高电平跳变为低电平,作为向主机发送的应答信号;若地址码不同,则继续接收主机发送的扫描信号。
在一优选实施例中,所述返回执行所述向所有从机发送携带有地址码的扫描信号的步骤,具体包括:
对所述地址码进行更新;
向所有从机发送携带有更新后的所述地址码的扫描信号。
在具体应用中,设变量SlavaAdd的初值SlavaAdd=0x01为所述地址码的初始值。
在一优选实施例中,所述对所述地址码进行更新的步骤,具体包括:
将所述地址码的地址加1,得到更新后的所述地址码。
在具体应用中,更新后的所述地址码为SlavaAdd++。
在一优选实施例中,所述若未接收到任何一个所述从机发送的应答信号,则返回执行所述向所有从机发送携带有地址码的扫描信号的步骤,具体包括:
检测向所有从机发送扫描信号的时间间隔是否超过预设的时间阈值;
若所述时间间隔超过预设的时间阈值且未接收到任何一个所述从机发送的应答信号,则返回执行所述向所有从机发送携带有地址码的扫描信号的步骤。
在具体应用中,所述预设的时间阈值可以为0.2秒、0.4秒、0.5秒、0.8秒、1秒等。
图2是现有技术中基于I2C通信协议的系统的结构图。
参阅图2,现有技术中的基于I2C通信协议的系统包括一个主机10和多个从机20,所述主机和从机之间通过一条串行数据(SDA,SerialDataline)线和一条串行时钟(SCL,SerialClockline)线连接,所述串行数据线30和串行时钟线40分别通过一个电阻R与电源50连接。
图3是本发明的实施例提供的I2C通信系统的主机的基本结构框图。
参阅图3,本发明实施例提供的I2C通信系统是在现有技术中的基于I2C通信协议的系统上所作的改进,利用主机10来破解从机20地址码,所述主机10包括:
发送模块101,用于向所有从机发送携带有地址码的扫描信号;
第一检测模块102,用于检测是否接收到其中一个所述从机通过拉低SDA数据线的高电平发送的应答信号;
接收模块103,用于若接收到其中一个所述从机发送的所述应答信号,判定所述地址码为该从机的地址码。
在具体应用中,所述主机10为单片机。
在一优选实施例中,所述主机10还包括:
第一返回模块,用于若未接收到任何一个所述从机发送的应答信号,则返回执行所述向所有从机发送携带有地址码的扫描信号的步骤。
在一优选实施例中,所述发送模块包括:
地址码更新单元,用于对所述地址码进行更新;
发送单元,用于向所有从机发送携带有更新后的所述地址码的扫描信号。
在一优选实施例中,所述地址码更新单元具体用于将所述地址码的地址加1,得到更新后的所述地址码。
在一优选实施例中,所述主机还包括:
第二检测模块,用于检测向所有从机发送扫描信号的时间间隔是否超过预设的时间阈值;
第二返回模块,用于若所述时间间隔超过预设的时间阈值且未接收到任何一个所述从机发送的应答信号,则返回执行所述向所有从机发送携带有地址码的扫描信号的步骤。
图4是本发明的优选实施例提供的基于I2C通信协议的获取从机地址的方法的流程图。
如图4所示,所述方法具体包括以下步骤:
开始;
设置变量SlavaAdd=0x01作为初始地址码;
检测时间是否超过0.5秒:
否,返回至检测时间是否超过0.5秒的步骤;
是,向从机发送初始地址码SlavaAdd;
检测是否接收到从机发送的应答信号ACK;
是,判定SlavaAdd为从机地址码,结束;
否,将变量SlavaAdd++;
返回至检测时间是否超过0.5秒的步骤。
上述步骤中所述ACK为确认字符,主机每隔0.5秒向从机发送一次值为SlavaAdd的地址码,若果主机没有接收到从机发送的应答信号ACK,则将SlavaAdd加1,继续向从机发送地址码,直到主机接收到从机通过将SDA数据信号线由高电平跳变为低电平所发送的应答信号ACK为止,此时主机记录下所述SlavaAdd的值,该值即为从机的地址码。
通过上述方法可以简单快速的实现对从机地址码的破解,使得通过I2C通信协议进行通信的产品能够进行二次开发,而不用因为破解不了从机地址码浪费大量人力物力财力去重新开发新产品,本发明所提供的方法和系统,结构简单,易于实现,成本低廉,适于广泛推广使用。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种基于I2C通信协议的获取从机地址的方法,其特征在于,所述方法包括采用主机来执行以下步骤:
向所有从机发送携带有地址码的扫描信号;
检测是否接收到其中一个所述从机通过拉低SDA数据线的高电平发送的应答信号;
若接收到其中一个所述从机发送的所述应答信号,判定所述地址码为该从机的地址码。
2.如权利要求1所述的基于I2C通信协议的获取从机地址的方法,其特征在于,所述方法还包括:
若未接收到任何一个所述从机发送的应答信号,则返回执行所述向所有从机发送携带有地址码的扫描信号的步骤。
3.如权利要求2所述的基于I2C通信协议的获取从机地址的方法,其特征在于,所述返回执行所述向所有从机发送携带有地址码的扫描信号的步骤,具体包括:
对所述地址码进行更新;
向所有从机发送携带有更新后的所述地址码的扫描信号。
4.如权利要求3所述的基于I2C通信协议的获取从机地址的方法,其特征在于,所述对所述地址码进行更新的步骤,具体包括:
将所述地址码的地址加1,得到更新后的所述地址码。
5.如权利要求2或4所述的获取从机地址的方法,其特征在于,所述若未接收到任何一个所述从机发送的应答信号,则返回执行所述向所有从机发送携带有地址码的扫描信号的步骤,具体包括:
检测向所有从机发送扫描信号的时间间隔是否超过预设的时间阈值;
若所述时间间隔超过预设的时间阈值且未接收到任何一个所述从机发送的应答信号,则返回执行所述向所有从机发送携带有地址码的扫描信号的步骤。
6.一种I2C通信系统,其特征在于,所述I2C通信系统包括一个主机和多个从机,所述主机包括:
发送模块,用于向所有从机发送携带有地址码的扫描信号;
第一检测模块,用于检测是否接收到其中一个所述从机通过拉低SDA数据线的高电平发送的应答信号;
接收模块,用于若接收到其中一个所述从机发送的所述应答信号,判定所述地址码为该从机的地址码。
7.如权利要求6所述的I2C通信系统,其特征在于,所述主机还包括:
第一返回模块,用于若未接收到任何一个所述从机发送的应答信号,则返回执行所述向所有从机发送携带有地址码的扫描信号的步骤。
8.如权利要求7所述的I2C通信系统,其特征在于,所述发送模块包括:
地址码更新单元,用于对所述地址码进行更新;
发送单元,用于向所有从机发送携带有更新后的所述地址码的扫描信号。
9.如权利要求8所述的I2C通信系统,其特征在于,所述地址码更新单元具体用于将所述地址码的地址加1,得到更新后的所述地址码。
10.如权利要求7或9所述的I2C通信系统,其特征在于,所述主机还包括:
第二检测模块,用于检测向所有从机发送扫描信号的时间间隔是否超过预设的时间阈值;
第二返回模块,用于若所述时间间隔超过预设的时间阈值且未接收到任何一个所述从机发送的应答信号,则返回执行所述向所有从机发送携带有地址码的扫描信号的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510354885.XA CN105183685B (zh) | 2015-06-24 | 2015-06-24 | 一种基于i2c通信协议的获取从机地址的方法及i2c通信系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510354885.XA CN105183685B (zh) | 2015-06-24 | 2015-06-24 | 一种基于i2c通信协议的获取从机地址的方法及i2c通信系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105183685A true CN105183685A (zh) | 2015-12-23 |
CN105183685B CN105183685B (zh) | 2019-03-15 |
Family
ID=54905775
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510354885.XA Active CN105183685B (zh) | 2015-06-24 | 2015-06-24 | 一种基于i2c通信协议的获取从机地址的方法及i2c通信系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105183685B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105354157A (zh) * | 2015-11-26 | 2016-02-24 | 北京天诚盛业科技有限公司 | 配置iic器件的方法、装置和系统 |
CN106055511A (zh) * | 2016-06-16 | 2016-10-26 | 惠州Tcl移动通信有限公司 | 一种移动终端的cpu与传感器的数据通信方法、系统 |
CN106713521A (zh) * | 2016-11-30 | 2017-05-24 | 武汉光迅科技股份有限公司 | 一种基于广播方式来查找i2c设备地址的方法 |
CN107329871A (zh) * | 2017-06-27 | 2017-11-07 | 郑州云海信息技术有限公司 | 一种i2c设备检测方法及装置 |
CN108199867A (zh) * | 2017-12-20 | 2018-06-22 | 北京城市系统工程研究中心 | 一种有线传感器网络的组网方法及数据传输方法 |
CN110825572A (zh) * | 2019-10-29 | 2020-02-21 | 青岛歌尔智能传感器有限公司 | I2c设备地址的探测方法、装置、系统及电子设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050165989A1 (en) * | 2004-01-26 | 2005-07-28 | Yong-Jae Kim | I2C communication system and method enabling bi-directional communications |
US20070156935A1 (en) * | 2006-01-03 | 2007-07-05 | Ellison Brandon J | Address translation device |
CN102163180A (zh) * | 2011-01-20 | 2011-08-24 | 电子科技大学 | 一种i2c总线接口电路模块及其控制方法 |
CN102262607A (zh) * | 2011-05-04 | 2011-11-30 | 山东超越数控电子有限公司 | 一种在pc中利用i2c总线采集温度信息的方法 |
CN104484306A (zh) * | 2014-12-31 | 2015-04-01 | 哈尔滨工业大学 | 基于差分信号的主从同步串行通讯总线及其实现方法 |
-
2015
- 2015-06-24 CN CN201510354885.XA patent/CN105183685B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050165989A1 (en) * | 2004-01-26 | 2005-07-28 | Yong-Jae Kim | I2C communication system and method enabling bi-directional communications |
US20070156935A1 (en) * | 2006-01-03 | 2007-07-05 | Ellison Brandon J | Address translation device |
CN102163180A (zh) * | 2011-01-20 | 2011-08-24 | 电子科技大学 | 一种i2c总线接口电路模块及其控制方法 |
CN102262607A (zh) * | 2011-05-04 | 2011-11-30 | 山东超越数控电子有限公司 | 一种在pc中利用i2c总线采集温度信息的方法 |
CN104484306A (zh) * | 2014-12-31 | 2015-04-01 | 哈尔滨工业大学 | 基于差分信号的主从同步串行通讯总线及其实现方法 |
Non-Patent Citations (2)
Title |
---|
冯冲 等: "《飞思卡尔MC9S12(X)开发必修课》", 30 June 2014, 北京航空航天大学出版社 * |
楚天歌天楚: ""用单片机实现一主三从式多机通信(包括论文)"", 《百度文库》 * |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105354157A (zh) * | 2015-11-26 | 2016-02-24 | 北京天诚盛业科技有限公司 | 配置iic器件的方法、装置和系统 |
CN106055511A (zh) * | 2016-06-16 | 2016-10-26 | 惠州Tcl移动通信有限公司 | 一种移动终端的cpu与传感器的数据通信方法、系统 |
CN106055511B (zh) * | 2016-06-16 | 2019-10-29 | Tcl移动通信科技(宁波)有限公司 | 一种移动终端的cpu与传感器的数据通信方法、系统 |
CN106713521A (zh) * | 2016-11-30 | 2017-05-24 | 武汉光迅科技股份有限公司 | 一种基于广播方式来查找i2c设备地址的方法 |
CN106713521B (zh) * | 2016-11-30 | 2019-12-10 | 武汉光迅科技股份有限公司 | 一种基于广播方式来查找i2c设备地址的方法 |
CN107329871A (zh) * | 2017-06-27 | 2017-11-07 | 郑州云海信息技术有限公司 | 一种i2c设备检测方法及装置 |
CN108199867A (zh) * | 2017-12-20 | 2018-06-22 | 北京城市系统工程研究中心 | 一种有线传感器网络的组网方法及数据传输方法 |
CN110825572A (zh) * | 2019-10-29 | 2020-02-21 | 青岛歌尔智能传感器有限公司 | I2c设备地址的探测方法、装置、系统及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN105183685B (zh) | 2019-03-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105183685A (zh) | 一种基于i2c通信协议的获取从机地址的方法及i2c通信系统 | |
CN101963837B (zh) | 用于功率管理的空闲持续时间报告 | |
US10409251B2 (en) | Automatic inspection and monitoring method based on time domain slotting control | |
CN105224362A (zh) | 上位机对下位机进行程序升级的方法及系统 | |
CN105446928A (zh) | 地址自动分配的串行总线通信方法与系统 | |
CN103974340A (zh) | 调整网络配置的方法及装置 | |
CN103490958A (zh) | 一种测试采集终端本地通信单元互换性的方法 | |
CN110635982B (zh) | 通讯总线上双主机通讯方法、系统、工控网关及储存介质 | |
CN104866421A (zh) | 一种pos终端的测试方法及测试系统 | |
CN102497648B (zh) | 实现远程调试的装置及方法 | |
CN104102607A (zh) | 基于VxWorks操作系统环境下的CAN总线驱动方法及系统 | |
CN103002550A (zh) | 一种控制站点进行睡眠状态的方法及站点 | |
CN105100000B (zh) | 一种接口转换装置和网络系统 | |
CN104683130A (zh) | 一种配置堆叠端口的方法和设备 | |
CN113301182B (zh) | 一种基于plc总线的组网通信系统 | |
CN203754167U (zh) | 一种电梯调试维修手持终端 | |
CN102645965A (zh) | 带u盘功能的usb数据卡进入休眠状态的方法、系统及装置 | |
CN102929828B (zh) | 同时支持标准和非标准i2c接口的数据传输方法及装置 | |
CN104331948A (zh) | 行驶记录仪升级信息发送方法、接收方法、装置及系统 | |
CN103905429A (zh) | 基于dhcp扩展标签实现网络设备自动发现的方法 | |
CN102595483B (zh) | 一种资源状态报告方法和基站 | |
CN102591688B (zh) | 一种心电图机插件接入方法及系统 | |
CN202906948U (zh) | 基于modbus_RTU总线的通讯装置 | |
CN202935897U (zh) | 一种带式输送机急停闭锁开关位置识别装置 | |
CN113553077A (zh) | 一种智能电表的固件升级方法及智能电表 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information |
Address after: 518000 Guangdong province Shenzhen Guangming New District Gongming street Gongming South Avenue Geya Technology Building 3 building 1-4 layer Applicant after: Shenzhen Zhenbang intelligent Polytron Technologies Inc Address before: 518000, Guangdong, Nanshan District, Taoyuan street, Longjing second industrial zone, A building, 2 floor, A building, 3 building, north, B building, 3 floor, B building, 6 floor, building C, building 3, Shenzhen Applicant before: SHENZHEN ZHENBANG INTELLIGENT TECHNOLOGY CO., LTD. |
|
CB02 | Change of applicant information | ||
GR01 | Patent grant | ||
GR01 | Patent grant |