一种I2C总线消除干扰信号的方法和装置制造方法及图纸

技术编号:9358547 阅读:179 留言:0更新日期:2013-11-21 01:51
本发明专利技术属于I2C总线领域,提供了一种I2C总线消除干扰信号的方法和装置。在本发明专利技术实施例中,通过对I2C总线信号进行采样获取信号采样值并存入移位寄存器进行逻辑运算,根据移位寄存器对所述信号采样值的逻辑运算的运算结果对采样的I2C总线信号进行干扰消除后输出,解决了现有技术中I2C总线信号容易受干扰信号的影响,造成装置不稳定的问题,并可采用可编程逻辑器件实现并应用于芯片设计中,将干扰抑制于出现问题之前。

【技术实现步骤摘要】
一种I2C总线消除干扰信号的方法和装置
本专利技术属于I2C总线领域,尤其涉及一种I2C总线消除干扰信号的方法和装置。
技术介绍
I2C(Inter-ICBUS)是由Philip(飞利浦)公司开发的串联总线,用于集成电路间的连接和通信,主要应用于连接微控制器和外围设备。I2C总线有两根信号线,一根SCL时钟线和一根双向SDA数据线。I2C总线具有接口线少,控制方式简化,器件封装形式小,通信速率较高等优点,标准模式下为100KHz,SCL/SDA的高电平最小4us,低电平最小4.7us。一般情况下或者环境较好的情况下,I2C总线通信不会出什么问题,能够保障总线的正常操作。但当设备所处环境较差或者其他异常情况产生时。可能会对I2C通信造成干扰,情况严重时,数据丢失,接收出错,状态紊乱。进而产生如死锁等问题。I2C协议里描述了SCL,SDA的上升沿最大1000ns,在这个处于逻辑值变化的间隙(亚稳态),门电路的反馈系数很大,最容易受到外界干扰而发生逻辑紊乱,而这种变化是不需要的,它会造成与它相连的逻辑部件做出不同的判断,"1"判断成"0","0"判断成"1",又或者是进入亚稳态从而导致系统逻辑紊乱。目前针对该问题常用的解决方法主要有三种1.因容易受到干扰的是信号处于亚稳态的情况,主要是上升沿时间过长给了干扰机会。因此只要减小上升沿时间即可,具体实施方式为减小上拉电阻以减小上升沿时间,但该方法可能会造成系统EMC(辐射超标)问题,且不能从根本上消除干扰,只是概率变小。2.在I2C总线上串入一个死锁恢复的缓冲器,当检测到I2C异常已经死锁后,再对I2C设备进行恢复。该方式需要额外增加电路,提高成本。且并未将异常的发生防患于未然。3.在微控制器中软件增加I2C状态监测功能,当I2C状态出错,通信异常时对I2C模块进行恢复操作。该方式虽不会增加硬件成本,但会占用微控制器有限的资源,且需要进行大量模拟测试,才能确保在监测I2C的同时不会对微控制器的其他功能造成影响,而且如果不出现问题的话,设计人员也很少考虑增加这样一个软件模块,等出现问题时已经造成一些损失。
技术实现思路
本专利技术提供了一种I2C总线消除干扰信号的方法,旨在解决现有技术中I2C总线信号容易受干扰信号影响,造成装置不稳定的问题。为了解决上述技术问题,本专利技术是这样实现的:一种I2C总线消除干扰信号的方法,所述方法包括以下步骤:根据预设采样频率对I2C总线信号进行实时采样以获取信号采样值;根据预设需要消除的干扰信号的最大脉冲宽度和所述预设采样频率获取对干扰信号的最大采样次数n,并将所述信号采样值依次存入位数为n+1的移位寄存器中进行,并对所述信号采样值进行逻辑运算;根据所述逻辑运算的运算结果对所述I2C总线信号进行干扰消除处理后输出。进一步地,所述根据预设需要消除的最大脉冲宽度和所述预设采样频率获取对干扰信号的最大采样次数n的步骤具体为:根据以下算式计算最大采样次数n:n=[A*B];其中,A表示所述预设的消除的干扰信号的的最大脉冲宽度,B表示所述预设采样频率。进一步地,所述对所述信号采样值进行逻辑运算的步骤具体包括以下步骤:根据以下算式对依次存入所述移位寄存器中的的信号采样值进行与运算:Y=S0&S1&S2&S3&...&Sn;根据以下算式对依次存入所述移位寄存器中的的信号采样值进行或运算:Y′=S0|S1|S2|S3|...|Sn;其中,Y和Y’分别表示与运算和或运算的运算结果,S0、S1、S2、S3...Sn表示依次存入移位寄存器中的的信号采样值。进一步地,所述根据所述逻辑运算的运算结果对所述采样的I2C总线信号进行干扰消除后输出的步骤具体为:当Y为1时,将所述采样的I2C总线信号置为高电平后输出;当Y’为0时,将所述采样的I2C总线信号置为低电平后输出;当Y为0且Y’为1时,将所述采样的I2C总线信号维持与其上一进行干扰消除后的I2C总线信号相同的工作状态进行输出。本专利技术还提供了一种I2C总线消除干扰信号的装置,所述装置包括:采样单元,用于根据预设采样频率对I2C总线信号进行实时采样以获取信号采样值;处理单元,用于根据预设需要消除的干扰信号的最大脉冲宽度和所述预设采样频率获取对干扰信号的最大采样次数n,并将所述信号采样值依次存入位数为n+1的移位寄存器中,并对所述信号采样值进行逻辑运算;输出单元,用于根据所述逻辑运算的运算结果对所述采样的I2C总线信号进行干扰消除处理后输出。进一步地,所述处理单元根据预设需要消除的最大脉冲宽度和所述预设采样频率获取对干扰信号的最大采样次数n的步骤具体为:根据以下算式计算最大采样次数n:n=[A*B];其中,A表示所述预设的消除的干扰信号的的最大脉冲宽度,B表示所述预设采样频率。进一步地,所述移位寄存器进行逻辑运算的步骤具体包括以下步骤:根据以下算式对依次存入所述移位寄存器中的的信号采样值进行与运算:Y=S0&S1&S2&S3&...&Sn;根据以下算式对依次存入所述移位寄存器中的的信号采样值进行或运算:Y′=S0|S1|S2|S3|...|Sn;其中,Y和Y’分别表示与运算和或运算的运算结果,S0、S1、S2、S3...Sn表示依次存入移位寄存器中的的信号采样值。进一步地,所述输出单元根据所述逻辑运算的运算结果对所述采样的I2C信号进行干扰消除后输出的步骤具体为:当Y为1时,将所述采样的I2C总线信号置为高电平后输出;当Y’为0时,将所述采样的I2C总线信号置为低电平后输出;当Y为0且Y’为1时,将所述采样的I2C总线信号维持与其上一进行干扰消除后的I2C总线信号相同的工作状态进行输出。在本专利技术中,通过对I2C总线信号进行采样获取信号采样值并存入移位寄存器进行逻辑运算,根据移位寄存器对所述信号采样值的逻辑运算的运算结果对采样的I2C总线信号进行干扰消除后输出,解决了现有技术中I2C总线信号容易受干扰信号的影响,造成装置不稳定的问题。附图说明图1是本专利技术实施例提供的I2C总线消除干扰信号的方法流程图;图2是本专利技术实施例提供的I2C总线消除干扰信号的装置模块结构图。具体实施方式为了使本专利技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本专利技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本专利技术,并不用于限定本专利技术。以下结合具体实施例对本专利技术的具体实现进行详细描述:图1示出了本专利技术实施例提供的I2C总线消除干扰信号的方法流程图,为了便于说明,本实施例仅列举与本实施例相关的部分。作为本专利技术一实施例,I2C总线信号一般包括SCL信号和SDA信号,但是SCL信号和SDA信号中通常含有干扰信号,本专利技术实施例提供了一种I2C总线消除干扰信号的方法,包括以下步骤:步骤S100、根据预设采样频率对I2C总线信号进行实时采样以获取信号采样值;在本专利技术实施例中,预设采样频率为驱动采样的频率,其值由驱动设备决定。步骤S200、根据预设需要消除的干扰信号的最大脉冲宽度和预设采样频率获取对干扰信号的最大采样次数n,并将信号采样值依次存入位数为n+1的移位寄存器M中,并对该信号采样值进行逻辑运算。在步骤S200中,需要消除的干扰信号的本文档来自技高网
...
一种I2C总线消除干扰信号的方法和装置

【技术保护点】
一种I2C总线消除干扰信号的方法,其特征在于,所述方法包括以下步骤:根据预设采样频率对I2C总线信号进行实时采样以获取信号采样值;根据预设需要消除的干扰信号的最大脉冲宽度和所述预设采样频率获取对干扰信号的最大采样次数n,并将所述信号采样值依次存入位数为n+1的移位寄存器中,并对所述信号采样值进行逻辑运算;根据所述逻辑运算的运算结果对所述采样的I2C总线信号进行干扰消除后输出。

【技术特征摘要】
1.一种I2C总线消除干扰信号的方法,其特征在于,所述方法包括以下步骤:根据预设采样频率对I2C总线信号进行实时采样以获取信号采样值;根据预设需要消除的干扰信号的最大脉冲宽度和所述预设采样频率获取对干扰信号的最大采样次数n,并将所述信号采样值依次存入位数为n+1的移位寄存器中,并对所述信号采样值进行逻辑运算;根据所述逻辑运算的运算结果对所述采样的I2C总线信号进行干扰消除后输出。2.如权利要求1所述的I2C总线消除干扰信号的方法,其特征在于,所述根据预设需要消除的最大脉冲宽度和所述预设采样频率获取对干扰信号的最大采样次数n的步骤具体为:根据以下算式计算最大采样次数n:n=[A*B];其中,A表示所述预设需要消除的干扰信号的的最大脉冲宽度,B表示所述预设采样频率。3.如权利要求2所述的I2C总线消除干扰信号的方法,其特征在于,所述对所述信号采样值进行逻辑运算的步骤具体包括以下步骤:根据以下算式对依次存入所述移位寄存器中的的信号采样值进行与运算:Y=S0&S1&S2&S3&...&Sn;根据以下算式对依次存入所述移位寄存器中的的信号...

【专利技术属性】
技术研发人员:赵玮
申请(专利权)人:深圳市九洲电器有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1