CN105183685B - 一种基于i2c通信协议的获取从机地址的方法及i2c通信系统 - Google Patents
一种基于i2c通信协议的获取从机地址的方法及i2c通信系统 Download PDFInfo
- Publication number
- CN105183685B CN105183685B CN201510354885.XA CN201510354885A CN105183685B CN 105183685 B CN105183685 B CN 105183685B CN 201510354885 A CN201510354885 A CN 201510354885A CN 105183685 B CN105183685 B CN 105183685B
- Authority
- CN
- China
- Prior art keywords
- address code
- slave
- scanning signal
- sent
- slaves
- 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
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,Serial Data line)线和一条串行时钟(SCL,Serial Clock line)线连接,所述串行数据线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 (8)
1.一种基于I2C通信协议的获取从机地址的方法,其特征在于,所述方法包括采用主机来执行以下步骤:
在难以获取从机地址码的情况下,向所有从机发送携带有地址码的扫描信号;
检测是否接收到其中一个所述从机通过拉低SDA数据线的高电平发送的应答信号;
若接收到其中一个所述从机发送的所述应答信号,判定所述扫描信号携带的地址码为该从机的地址码;
若未接收到任何一个所述从机发送的应答信号,则返回执行所述向所有从机发送携带有地址码的扫描信号的步骤。
2.如权利要求1所述的基于I2C通信协议的获取从机地址的方法,其特征在于,所述返回执行所述向所有从机发送携带有地址码的扫描信号的步骤,具体包括:
对所述地址码进行更新;
向所有从机发送携带有更新后的所述地址码的扫描信号。
3.如权利要求2所述的基于I2C通信协议的获取从机地址的方法,其特征在于,所述对所述地址码进行更新的步骤,具体包括:
将所述地址码的地址加1,得到更新后的所述地址码。
4.如权利要求1或3所述的获取从机地址的方法,其特征在于,所述若未接收到任何一个所述从机发送的应答信号,则返回执行所述向所有从机发送携带有地址码的扫描信号的步骤,具体包括:
检测向所有从机发送扫描信号的时间间隔是否超过预设的时间阈值;
若所述时间间隔超过预设的时间阈值且未接收到任何一个所述从机发送的应答信号,则返回执行所述向所有从机发送携带有地址码的扫描信号的步骤。
5.一种I2C通信系统,其特征在于,所述I2C通信系统包括一个主机和多个从机,所述主机包括:
发送模块,用于在难以获取从机地址码的情况下,向所有从机发送携带有地址码的扫描信号;
第一检测模块,用于检测是否接收到其中一个所述从机通过拉低SDA数据线的高电平发送的应答信号;
接收模块,用于若接收到其中一个所述从机发送的所述应答信号,判定所述扫描信号携带的地址码为该从机的地址码;
第一返回模块,用于若未接收到任何一个所述从机发送的应答信号,则返回执行所述向所有从机发送携带有地址码的扫描信号的步骤。
6.如权利要求5所述的I2C通信系统,其特征在于,所述发送模块包括:
地址码更新单元,用于对所述地址码进行更新;
发送单元,用于向所有从机发送携带有更新后的所述地址码的扫描信号。
7.如权利要求6所述的I2C通信系统,其特征在于,所述地址码更新单元具体用于将所述地址码的地址加1,得到更新后的所述地址码。
8.如权利要求5或7所述的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 CN105183685A (zh) | 2015-12-23 |
CN105183685B true 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) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105354157A (zh) * | 2015-11-26 | 2016-02-24 | 北京天诚盛业科技有限公司 | 配置iic器件的方法、装置和系统 |
CN106055511B (zh) * | 2016-06-16 | 2019-10-29 | Tcl移动通信科技(宁波)有限公司 | 一种移动终端的cpu与传感器的数据通信方法、系统 |
CN106713521B (zh) * | 2016-11-30 | 2019-12-10 | 武汉光迅科技股份有限公司 | 一种基于广播方式来查找i2c设备地址的方法 |
CN107329871A (zh) * | 2017-06-27 | 2017-11-07 | 郑州云海信息技术有限公司 | 一种i2c设备检测方法及装置 |
CN108199867B (zh) * | 2017-12-20 | 2021-01-05 | 北京城市系统工程研究中心 | 一种有线传感器网络的组网方法 |
CN110825572A (zh) * | 2019-10-29 | 2020-02-21 | 青岛歌尔智能传感器有限公司 | I2c设备地址的探测方法、装置、系统及电子设备 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102163180A (zh) * | 2011-01-20 | 2011-08-24 | 电子科技大学 | 一种i2c总线接口电路模块及其控制方法 |
CN102262607A (zh) * | 2011-05-04 | 2011-11-30 | 山东超越数控电子有限公司 | 一种在pc中利用i2c总线采集温度信息的方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20050076924A (ko) * | 2004-01-26 | 2005-07-29 | 삼성전자주식회사 | 양방향 통신이 가능한 i2c 통신시스템 및 그 방법 |
US7444453B2 (en) * | 2006-01-03 | 2008-10-28 | International Business Machines Corporation | Address translation device |
CN104484306B (zh) * | 2014-12-31 | 2017-06-20 | 哈尔滨工业大学 | 基于差分信号的主从同步串行通讯总线及其实现方法 |
-
2015
- 2015-06-24 CN CN201510354885.XA patent/CN105183685B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102163180A (zh) * | 2011-01-20 | 2011-08-24 | 电子科技大学 | 一种i2c总线接口电路模块及其控制方法 |
CN102262607A (zh) * | 2011-05-04 | 2011-11-30 | 山东超越数控电子有限公司 | 一种在pc中利用i2c总线采集温度信息的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN105183685A (zh) | 2015-12-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105183685B (zh) | 一种基于i2c通信协议的获取从机地址的方法及i2c通信系统 | |
CN104145466A (zh) | 用于动态服务器/客户端控制的连通性逻辑的方法和装置 | |
CN103593419A (zh) | 数据查询方法、装置、服务器及系统 | |
CN102932238A (zh) | 群组消息的提醒方法和设备 | |
CN102693567A (zh) | 基于门禁系统通信的编解码方法 | |
CN101834888A (zh) | 一种通过无线局域网远程启动透明计算系统客户端的方法 | |
CN101605132A (zh) | 一种网络数据流识别方法 | |
CN104317496A (zh) | 应用程序共享方法及装置 | |
CN104980440A (zh) | 基于内容过滤和多Agent协作的有源配电网大数据传输方法 | |
CN104066208A (zh) | 一种抄表系统的组网方法及装置 | |
CN104144223A (zh) | 一种数据获取方法及装置 | |
CN106533621B (zh) | 基于简化的modbus协议的永磁同步电机实时监控的通讯方法 | |
CN102932209A (zh) | 服务器机群的状态检测方法和装置 | |
CN103326747B (zh) | 蓝牙文件传输系统及方法 | |
CN105337850A (zh) | 一种物联网数据处理方法及物联网网关 | |
CN102694598B (zh) | 可见光信号的编码方法和发送方法 | |
CN101442539B (zh) | 实现字段过滤的方法和装置 | |
CN103871217B (zh) | 一种基于Wi-Fi无线互联网的报警方法 | |
CN103581162A (zh) | 一种基于云的持续更新事件结果与统计信息的系统及方法 | |
CN101860884B (zh) | 一种同频邻小区信道估计的方法及装置 | |
CN110831118B (zh) | 实现低功耗的唤醒码Chirp信号生成方法及通信方法 | |
CN103118181B (zh) | 一种处理同步at指令的方法及装置 | |
CN103514123B (zh) | 一种usb设备连接端口的识别方法及系统 | |
CN102055616A (zh) | 检测节点状态的方法 | |
CN102025554B (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 | ||
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. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |