首页> 中国专利> 一种基于I2C通信协议的获取从机地址的方法及I2C通信系统

一种基于I2C通信协议的获取从机地址的方法及I2C通信系统

摘要

本发明适用于I2C通信领域,提供了一种基于I2C通信协议的获取从机地址的方法,所述方法包括采用主机来执行步骤:向所有从机发送携带有地址码的扫描信号;检测是否接收到其中一个所述从机通过拉低SDA数据线的高电平发送的应答信号;若接收到其中一个所述从机发送的所述应答信号,判定所述地址码为该从机的地址码。本发明还提供一种I2C通信系统,所述系统包括一个主机和多个从机,所述主机包括发送模块、第一检测模块和接收模块。本发明通过发送扫描信号,并接收从机通过拉低SDA数据线的高电平发送的低电平应答信号的方法来确定从机地址,使得所述主机能够简单有效的确定从机地址,实现了基于I2C通信协议的通信设备的二次开发,节省了大人力物力。

著录项

  • 公开/公告号CN105183685A

    专利类型发明专利

  • 公开/公告日2015-12-23

    原文格式PDF

  • 申请/专利权人 深圳市振邦智能科技有限公司;

    申请/专利号CN201510354885.X

  • 发明设计人 柯忠乘;陈志杰;

    申请日2015-06-24

  • 分类号G06F13/42;

  • 代理机构深圳中一专利商标事务所;

  • 代理人张全文

  • 地址 518000 广东省深圳市南山区桃源街道龙井第二工业区A栋2楼、A栋3楼北、B栋3楼、B栋6楼、C栋3楼

  • 入库时间 2023-12-18 12:59:36

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2019-03-15

    授权

    授权

  • 2017-12-08

    著录事项变更 IPC(主分类):G06F13/42 变更前: 变更后: 申请日:20150624

    著录事项变更

  • 2016-01-20

    实质审查的生效 IPC(主分类):G06F13/42 申请日:20150624

    实质审查的生效

  • 2015-12-23

    公开

    公开

说明书

技术领域

本发明属于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通 信协议进行通信的产品能够进行二次开发,而不用因为破解不了从机地址码浪 费大量人力物力财力去重新开发新产品,本发明所提供的方法和系统,结构简 单,易于实现,成本低廉,适于广泛推广使用。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发 明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明 的保护范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号