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

文档序号:9432506阅读:691来源:国知局
一种基于i2c通信协议的获取从机地址的方法及i2c通信系统的制作方法
【技术领域】
[0001]本发明属于I2C通信领域,尤其涉及一种基于I2C通信协议的获取从机地址的方法及I2C通信系统。
【背景技术】
[0002]I2C通信协议是一种常用的通信协议,因其连接结构简单,只需一条时钟线和一条数据线,就能实现多个设备之间的通信,因而被广泛使用。
[0003]然而,大多数基于I2C通信协议进行通信的设备通常包括主机和从机,如果主机不知道其从机的地址,则无法完成通信。现有技术中,对主板和显板之间的通信方式为I2C通信的产品进行二次开发,通常都需要花费较多时间来寻找显板的地址,在寻找不到的情况下,甚至会迫不得已放弃对所述产品的二次开发,而选择重新开发新产品。这极大的延长了产品的开发周期,并且浪费了人力物力从而增加了开发成本。

【发明内容】

[0004]本发明实施例的目的在于提供一种基于I2C通信协议的获取从机地址的方法及I2C通信系统,旨在解决现有技术中的基于I2C通信协议的通信设备中,主机难以获取从机地址而不能对产品进行二次开发,延长了开发周期,并且浪费了人力物力从而增加了开发成本的问题。
[0005]本发明实施例是这样实现的,一种基于I2C通信协议的获取从机地址的方法,所述方法包括采用主机来执行以下步骤:
[0006]向所有从机发送携带有地址码的扫描信号;
[0007]检测是否接收到其中一个所述从机通过拉低SDA数据线的高电平发送的应答信号;
[0008]若接收到其中一个所述从机发送的所述应答信号,判定所述地址码为该从机的地址码。
[0009]在一优选实施例中,所述方法还包括:
[0010]若未接收到任何一个所述从机发送的应答信号,则返回执行所述向所有从机发送携带有地址码的扫描信号的步骤。
[0011 ] 本发明还提供一种I2C通信系统,所述I2C通信系统包括一个主机和多个从机,所述主机包括:
[0012]发送模块,用于向所有从机发送携带有地址码的扫描信号;
[0013]第一检测模块,用于检测是否接收到其中一个所述从机通过拉低SDA数据线的高电平发送的应答信号;
[0014]接收模块,用于若接收到其中一个所述从机发送的所述应答信号,判定所述地址码为该从机的地址码。
[0015]在一优选实施例中,所述主机还包括:
[0016]第一返回模块,用于若未接收到任何一个所述从机发送的应答信号,则返回执行所述向所有从机发送携带有地址码的扫描信号的步骤。
[0017]本发明实施例与现有技术相比,其有益效果在于:本发明通过发送扫描信号,并接收从机通过拉低SDA数据线的高电平发送的低电平应答信号的方法来确定从机地,使得所述主机能够简单有效的确定从机地址,实现了基于I2C通信协议的通信设备的二次开发,节省了大人力物力,易于实现;本发明还提供一种基于上述方法的I2C通信系统,该系统结构简单,能够简单快速的获取从机地址,成本低廉,易于操作,适于广泛推广。
【附图说明】
[0018]图1是本发明的实施例提供的基于I2C通信协议的获取从机地址的方法的流程图;
[0019]图2是现有技术中基于I2C通信协议的系统的结构框图;
[0020]图3是本发明的实施例提供的I2C通信系统的主机的基本结构框图;
[0021]图4是本发明的优选实施例提供的基于I2C通信协议的获取从机地址的方法的流程图。
【具体实施方式】
[0022]为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0023]图1是本发明的实施例提供的基于I2C通信协议的获取从机地址的方法的流程图,为了便于说明,仅示出了与本实施例相关的部分。
[0024]参阅图1,本发明实施例所提供的基于I2C通信协议的获取从机地址的方法,所述方法包括采用主机来执行以下步骤:
[0025]SlOl:向所有从机发送携带有地址码的扫描信号;
[0026]S102:检测是否接收到其中一个所述从机通过拉低SDA数据线的高电平发送的应答信号;
[0027]S103:若接收到其中一个所述从机发送的所述应答信号,判定所述地址码为该从机的地址码。
[0028]本发明通过发送扫描信号的方式来寻找从机地址,使得所述方法可以适用于大多数基于I2C通信协议的系统或设备。在具体应用中,所述主机为单片机。
[0029]在一优选实施例中,所述基于I2C通信协议的获取从机地址的方法,还包括:
[0030]若未接收到任何一个所述从机发送的应答信号,则返回执行所述向所有从机发送携带有地址码的扫描信号的步骤。
[0031 ] 在具体应用中,所述从机接收到的主机发送的地址码之后,将该地址码与自身的地址码进行比对,若地址码相同,则通过拉低SDA数据线的高电平,使该高电平跳变为低电平,作为向主机发送的应答信号;若地址码不同,则继续接收主机发送的扫描信号。
[0032]在一优选实施例中,所述返回执行所述向所有从机发送携带有地址码的扫描信号的步骤,具体包括:
[0033]对所述地址码进行更新;
[0034]向所有从机发送携带有更新后的所述地址码的扫描信号。
[0035]在具体应用中,设变量SlavaAdd的初值SlavaAdd = 0x01为所述地址码的初始值。
[0036]在一优选实施例中,所述对所述地址码进行更新的步骤,具体包括:
[0037]将所述地址码的地址加1,得到更新后的所述地址码。
[0038]在具体应用中,更新后的所述地址码为SlavaAdd++。
[0039]在一优选实施例中,所述若未接收到任何一个所述从机发送的应答信号,则返回执行所述向所有从机发送携带有地址码的扫描信号的步骤,具体包括:
[0040]检测向所有从机发送扫描信号的时间间隔是否超过预设的时间阈值;
[0041]若所述时间间隔超过预设的时间阈值且未接收到任何一个所述从机发送的应答信号,则返回执行所述向所有从机发送携带有地址码的扫描信号的步骤。
[0042]在具体应用中,所述预设的时间阈值可以为0.2秒、0.4秒、0.5秒、0.8秒、I秒等。
[0043]图2是现有技术中基于I2C通信协议的系统的结构图。
[0044]参阅图2,现有技术中的基于I2C通信协议的系统包括一个主机10和多个从机20,所述主机和从机之间通过一条串行数据(SDA,Serial Data line)线和一条串行时钟(SCL,Serial Clock line)线连接,所述串行数据线30和串行时钟线40分别通过一个电阻R与电源50连接。
[0045]图3是本发明的实施例提供的I2C通信系统的主机的基本结构框图。
[0046]参阅图3,本发明实施例提供的I2C通信系统是在现有技术中的基于I2C通信协议的系统上所作的改进,利用主机10来破解从机2
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1