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

文档序号:9432506阅读:来源:国知局
0地址码,所述主机10包括:
[0047]发送模块101,用于向所有从机发送携带有地址码的扫描信号;
[0048]第一检测模块102,用于检测是否接收到其中一个所述从机通过拉低SDA数据线的高电平发送的应答信号;
[0049]接收模块103,用于若接收到其中一个所述从机发送的所述应答信号,判定所述地址码为该从机的地址码。
[0050]在具体应用中,所述主机10为单片机。
[0051 ] 在一优选实施例中,所述主机10还包括:
[0052]第一返回模块,用于若未接收到任何一个所述从机发送的应答信号,则返回执行所述向所有从机发送携带有地址码的扫描信号的步骤。
[0053]在一优选实施例中,所述发送模块包括:
[0054]地址码更新单元,用于对所述地址码进行更新;
[0055]发送单元,用于向所有从机发送携带有更新后的所述地址码的扫描信号。
[0056]在一优选实施例中,所述地址码更新单元具体用于将所述地址码的地址加I,得到更新后的所述地址码。
[0057]在一优选实施例中,所述主机还包括:
[0058]第二检测模块,用于检测向所有从机发送扫描信号的时间间隔是否超过预设的时间阈值;
[0059]第二返回模块,用于若所述时间间隔超过预设的时间阈值且未接收到任何一个所述从机发送的应答信号,则返回执行所述向所有从机发送携带有地址码的扫描信号的步骤。
[0060]图4是本发明的优选实施例提供的基于I2C通信协议的获取从机地址的方法的流程图。
[0061]如图4所示,所述方法具体包括以下步骤:
[0062]开始;
[0063]设置变量SlavaAdd = 0x01作为初始地址码;
[0064]检测时间是否超过0.5秒:
[0065]否,返回至检测时间是否超过0.5秒的步骤;
[0066]是,向从机发送初始地址码SlavaAdd ;
[0067]检测是否接收到从机发送的应答信号ACK ;
[0068]是,判定SlavaAdd为从机地址码,结束;
[0069]否,将变量SlavaAdd++ ;
[0070]返回至检测时间是否超过0.5秒的步骤。
[0071]上述步骤中所述ACK为确认字符,主机每隔0.5秒向从机发送一次值为SlavaAdd的地址码,若果主机没有接收到从机发送的应答信号ACK,则将SlavaAdd加1,继续向从机发送地址码,直到主机接收到从机通过将SDA数据信号线由高电平跳变为低电平所发送的应答信号ACK为止,此时主机记录下所述SlavaAdd的值,该值即为从机的地址码。
[0072]通过上述方法可以简单快速的实现对从机地址码的破解,使得通过I2C通信协议进行通信的产品能够进行二次开发,而不用因为破解不了从机地址码浪费大量人力物力财力去重新开发新产品,本发明所提供的方法和系统,结构简单,易于实现,成本低廉,适于广泛推广使用。
[0073]以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
【主权项】
1.一种基于I2C通信协议的获取从机地址的方法,其特征在于,所述方法包括采用主机来执行以下步骤: 向所有从机发送携带有地址码的扫描信号; 检测是否接收到其中一个所述从机通过拉低SDA数据线的高电平发送的应答信号; 若接收到其中一个所述从机发送的所述应答信号,判定所述地址码为该从机的地址码。2.如权利要求1所述的基于I2C通信协议的获取从机地址的方法,其特征在于,所述方法还包括: 若未接收到任何一个所述从机发送的应答信号,则返回执行所述向所有从机发送携带有地址码的扫描信号的步骤。3.如权利要求2所述的基于I2C通信协议的获取从机地址的方法,其特征在于,所述返回执行所述向所有从机发送携带有地址码的扫描信号的步骤,具体包括: 对所述地址码进行更新; 向所有从机发送携带有更新后的所述地址码的扫描信号。4.如权利要求3所述的基于I2C通信协议的获取从机地址的方法,其特征在于,所述对所述地址码进行更新的步骤,具体包括: 将所述地址码的地址加I,得到更新后的所述地址码。5.如权利要求2或4所述的获取从机地址的方法,其特征在于,所述若未接收到任何一个所述从机发送的应答信号,则返回执行所述向所有从机发送携带有地址码的扫描信号的步骤,具体包括: 检测向所有从机发送扫描信号的时间间隔是否超过预设的时间阈值; 若所述时间间隔超过预设的时间阈值且未接收到任何一个所述从机发送的应答信号,则返回执行所述向所有从机发送携带有地址码的扫描信号的步骤。6.一种I2C通信系统,其特征在于,所述I2C通信系统包括一个主机和多个从机,所述主机包括: 发送模块,用于向所有从机发送携带有地址码的扫描信号; 第一检测模块,用于检测是否接收到其中一个所述从机通过拉低SDA数据线的高电平发送的应答信号; 接收模块,用于若接收到其中一个所述从机发送的所述应答信号,判定所述地址码为该从机的地址码。7.如权利要求6所述的I2C通信系统,其特征在于,所述主机还包括: 第一返回模块,用于若未接收到任何一个所述从机发送的应答信号,则返回执行所述向所有从机发送携带有地址码的扫描信号的步骤。8.如权利要求7所述的I2C通信系统,其特征在于,所述发送模块包括: 地址码更新单元,用于对所述地址码进行更新; 发送单元,用于向所有从机发送携带有更新后的所述地址码的扫描信号。9.如权利要求8所述的I2C通信系统,其特征在于,所述地址码更新单元具体用于将所述地址码的地址加I,得到更新后的所述地址码。10.如权利要求7或9所述的I2C通信系统,其特征在于,所述主机还包括: 第二检测模块,用于检测向所有从机发送扫描信号的时间间隔是否超过预设的时间阈值; 第二返回模块,用于若所述时间间隔超过预设的时间阈值且未接收到任何一个所述从机发送的应答信号,则返回执行所述向所有从机发送携带有地址码的扫描信号的步骤。
【专利摘要】本发明适用于I2C通信领域,提供了一种基于I2C通信协议的获取从机地址的方法,所述方法包括采用主机来执行步骤:向所有从机发送携带有地址码的扫描信号;检测是否接收到其中一个所述从机通过拉低SDA数据线的高电平发送的应答信号;若接收到其中一个所述从机发送的所述应答信号,判定所述地址码为该从机的地址码。本发明还提供一种I2C通信系统,所述系统包括一个主机和多个从机,所述主机包括发送模块、第一检测模块和接收模块。本发明通过发送扫描信号,并接收从机通过拉低SDA数据线的高电平发送的低电平应答信号的方法来确定从机地址,使得所述主机能够简单有效的确定从机地址,实现了基于I2C通信协议的通信设备的二次开发,节省了大人力物力。
【IPC分类】G06F13/42
【公开号】CN105183685
【申请号】CN201510354885
【发明人】柯忠乘, 陈志杰
【申请人】深圳市振邦智能科技有限公司
【公开日】2015年12月23日
【申请日】2015年6月24日
当前第2页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1