[发明专利]一种防止I2C读写错误的方法有效
申请号: | 201110260266.6 | 申请日: | 2011-09-05 |
公开(公告)号: | CN102298564A | 公开(公告)日: | 2011-12-28 |
发明(设计)人: | 曾元清 | 申请(专利权)人: | 广东欧珀移动通信有限公司 |
主分类号: | G06F13/40 | 分类号: | G06F13/40;G06F13/42 |
代理公司: | 广州粤高专利商标代理有限公司 44102 | 代理人: | 罗晓林;李志强 |
地址: | 523860 广东*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 防止 i2c 读写 错误 方法 | ||
技术领域
本发明涉及一种防止I2C读写错误的方法,特别是涉及一种防止I2C握手失败的方法。
背景技术
2C协议规定,在数据传输过程中,如果从设备要完成一些其他功能后才能接收或发送下一个完整的数据字节,此时从设备可以通过一个握手协议强行将时钟线SCL拉低,迫使主机进入等待状态,当从设备准备好接收或发送下一个数据字节并释放SCL后,数据传输继续。当从设备强行拉低SCL时,理论上说应该把SCL拉到一个稳定的低电平,但是当I2C接口为推挽方式时,如果总线上有串联电阻或设备I2C内部设计有保护电阻时,SCL可能会被拉到一个中间电平,驱动电流越大。中间电平会影响时钟SCL的低电平判断,很可能会导致握手失败,从而造成时钟不同步,影响总线的数据传输,甚至使数据传输出错。本发明的意图就是解决类似这种握手过程中CLK被拉到一个中间电平,进而影响握手,造成时钟不同步的问题。从而保证I2C总线数据传输的稳定性、可靠性。
众所周知,I2C总线是PHILIPS公司开发的两线式串行总线,用于连接微控制器及其外围设备。I2C总线是微电子通信控制领域广泛采用的一种总线标准,具有接口线少,控制方式简单,器件封装小,通信速率较高等优点。正因为I2C总线的这些优点,现在越来越多的外围设备都采用I2C控制方式。正是由于外围I2C设备多,通常一个I2C总线上会挂接几个I2C设备。I2C协议虽然支持一个总线上挂接多个设备,但是其数量也要受到总线最大电容400pF的限制,因此有时在HOST端I2C接口有限的情况下,不得不用GPIO模拟I2C的方式。我们知道,I2C总线一般都是开漏输出,因此可以保证高低电平的稳定。但是当使用GPIO模拟I2C时,有时只能采用推挽输出方式,这时,由于总线上串联电阻或设备I2C内部保护电阻的存在,就会出现图一的问题。从SCL波形看虽然影响到CLK低电平的判断,但还没有影响到数据的传输。有时甚至会直接影响数据传输。
发明内容
本发明的目的在于克服现有技术的不足,提供一种防止I2C读写错误的方法,保证I2C总线数据传输的稳定性,可靠性,且结构简单,易于实现。
为了达到上述目的,本发明采用的技术方案是,一种防止I2C读写错误的方法,其步骤如下:
步骤1、确定I2C速率,确定时钟周期T;
步骤2、将高电平与低电平时钟的持续时间均设定为T/2;
步骤3、产生高电平与低电平时钟信号;
步骤4、判断SCL总线为高电平或低电平;
步骤5、SCL总线为高电平,则将GPIO配置为input no pull模式;SCL总线为低电平,则将GPIO配置为push-pull模式;
步骤6、判断时钟信号的高电平是否被设备拉低;
步骤7、 被设备拉低则使时钟信号停止,达成与设备握手,直到设备释放时钟信号的下拉,使得时钟信号上产生高电平;
步骤8、时钟信号与设备同步。
所述的input no pull模式为GPIO输入模式;所述的push-pull模式为推挽模式。
与现有技术相比,本发明的有益效果是:保证I2C总线数据传输的稳定性,可靠性,且结构简单,易于实现。
附图说明
图1为本发明的方法流程图;
图2为本发明的具体实施图;
图3为从设备强制拉低SCL时握手过程的流程图;
图4为本发明的标准的I2C总线结构图;
图5为本发明的主机端为推挽方式的I2C总线结构图;
图6为本发明的实际使用中主机端为推挽方式的I2C总线结构图。
具体实施方式
下面结合实施例参照附图进行详细说明,以便对本发明的技术特征及优点进行更深入的诠释。
图4所示的是标准的I2C总线结构,可见主机和设备的内部都是开漏输出,这样就可以保证高低状态的稳定。然而实际使用中,有时我们不得不用推挽方式,例如用软件模拟I2C时,其内部结构如图5所示。可见此时主机端是推挽方式的,而设备端是开漏方式的。由于推挽方式驱动时,总线上会有较大的驱动电流产生,同时,一般出于降噪的考虑会在I2C总线上串小电阻(0-300欧),现在很多的I2C器件在芯片内部出于保护芯片的考虑也会串一个小电阻。因此实际使用中的I2C总线结构如图6所示。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于广东欧珀移动通信有限公司,未经广东欧珀移动通信有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201110260266.6/2.html,转载请声明来源钻瓜专利网。