一种IIC总线接口的抗干扰方法技术

技术编号:11878384 阅读:224 留言:0更新日期:2015-08-13 04:35
本发明专利技术公开了一种IIC总线接口的抗干扰方法,其能够通过建立超时机制监测IIC接口是否存在异常,在监测到存在异常的情况下能够及时处理并复位,从而能够避免接口失效,保证下次IIC通信时能够成功,使IIC接口正常工作。所述抗干扰方法,有效的解决了IIC接口受到干扰后失效的问题,使IIC通信更加实用、增强抗干扰能力。

【技术实现步骤摘要】

本专利技术涉及一种嵌入式系统中,当IIC接口受到干扰异常后,对IIC接口进行恢复处理使其恢复到正常状态的方法。
技术介绍
目前,在嵌入式系统中大量使用具有IIC接口的外围器件与微处理器通信,例如EEPROM芯片、Flash芯片、时钟芯片等都提供了 IIC总线接口。微控制器(MCU)的IIC接口与和外围器件的IIC接口连接,实现主从式的通信功能。Iic使用两条线通信,一条为串行数据线(SDA),另一条为串行时钟线(SCL)。通信时由MCU的IIC接口按照IIC协议来控制时钟线SCL和数据线SDA,产生起始条件、完成数据传输、应答/非应答、停止条件。IIC协议通信时,时钟线SCL和数据线SDA是必须严格按照规定的时序变化。例如,数据有效条件是:SDA线上的数据必须在时钟的高电平周期保持稳定,数据线的高或低电平状态只有在SCL线的时钟信号是低电平时才能改变;起始条件必须是:SCL线是高电平时SDA线从高电平向低电平切换;停止条件是:SCL线是高电平时SDA线由低电平向高电平切换。由于IIC通信时对两条信号线的时序要求特别严格,在实际使用中经常会因为受到电磁干扰,导致信号线时序错乱,致使通信失败。而通信失败后MCU的IIC接口和外部器件的IIC接口由于并未完成一次成功的通信,因此相应的硬件电路仍然处于等待状态,等待接收数据或应答信号,这种状态会一直持续下去,从而导致IIC接口失效。如果不对上述问题进行处理,将导致系统的任务卡死或出现反复复位等现象。
技术实现思路
本专利技术旨在给出一种IIC总线接口的抗干扰方法,以解决嵌入式系统中的IIC接口因为受到干扰异常后,而不能自动恢复的问题。本专利技术所述的IIC总线接口的抗干扰方法,包括如下步骤: 建立IIC通信的超时监测机制,监测IIC通讯等待应答时间; 当Iic通信等待应答时间超时,则认为出现异常,需要进行异常处理; 异常处理时,首先关闭MCU的IIC功能,将MCU的IIC接口配置成普通1 口,通过1口模拟IIC协议发送或接收数据;再模拟停止条件,使外部的Iic器件完成本次通信,恢复到正常状态; 将接口配置回Iic接口,并重新对IIC寄存器进行初始化,开启IIC功能; 与外部IIC器件重新进行通信。本专利技术所述的IIC总线接口的抗干扰方法,能够通过建立超时机制监测IIC接口是否存在异常,在监测到存在异常的情况下能够及时处理并复位,从而能够避免接口失效,保证下次IIC通信时能够成功,从而使IIC接口正常。其有效的解决了 IIC接口受到干扰后失效的问题,使Iic通信更加实用、增强抗干扰能力。【附图说明】图1是本专利技术所述IIC总线接口的抗干扰方法的流程示意图。【具体实施方式】MCU的IIC接口按照IIC协议来控制时钟线SCL和数据线SDA,由MCU的IIC接口产生起始条件、数据传输、应答/非应答、停止条件,外部器件的IIC接口接收起始条件、数据传输、应答/非应答、停止条件,同时外部器件也会产生数据传输、应答/非应答状态。IIC总线接口的抗干扰方法,通过IIC通信的超时监测机制,监测IIC通讯等待应答时间,当IIC通信时,当MCU监测到等待外部器件产生的数据传输、应答/非应答状态超时时,认为Iic接口异常,执行IIC接口异常处理。先关闭MCU的IIC功能,将MCU的IIC接口配置成普通1 口,通过1 口模拟IIC协议发送或接收数据;再模拟停止条件,使外部的Iic器件完成本次通信,恢复到正常状态;之后再将接口配置回IIC接口,并重新对IIC寄存器进行初始化,开启IIC功能;与外部IIC器件重新进行通信。IIC通信的超时监测机制可采用定时器中断的方式计时,每次中断将全局计数器变量加1,IIC通信开始时将计数器清0,然后在IIC通信时读取计数器的值,如果计数器的值大于允许值则认为超时。如图1,IIC通信时,首先,进行IIC通信准备,配置IIC引脚、接口,将IIC初始化。然后,建立IIC超时机制。IIC通信的超时监测机制采用定时器中断的方式计时,初始化用于超时计数的定时器、配置定时器中断、开定时器、全局超时计数器清0,每次定时器中断时对全局超时计数器加I。之后,按照Iic协议规定,发送IIC的起始条件;等待IIC从器件应答,此时轮巡Iic状态寄存器,如果未应答则判断IIC是否超时(判断超时计数器是否大于预设值),如果超时,则认为IIC通信异常,转而执行IIC异常处理流程。如果未超时则继续重新查询Iic状态寄存器。通过查询IIC状态寄存器得知已经收到正确应答,则发送器件地址;发送后同样进行应答判断和超时判断,超时则转异常处理,正常应答则发送或接收数据。而后,继续进行应答判断和超时判断,超时则转异常处理,正常应答则按照Iic协议规定发送停止条件。之后,判断通信是否成功,成功则结束本次Iic通信,未成功转建立超时机制部分重新执行一次。各环节中,如出现超时,均按如下异常处理流程处理:包括关闭IIC功能、1 口配置为普通口、1 口模拟发送数据或接收数据、模拟发送停止条件、重新配置1 口为IIC接口、重新初始化并开启IIC功能等步骤。【主权项】1.一种IIC总线接口的抗干扰方法,包括如下步骤: 建立IIC通信的超时监测机制,监测IIC通讯等待应答时间; 当Iic通信等待应答时间超时,则认为出现异常,需要进行异常处理; 异常处理时,首先关闭MCU的IIC功能,将MCU的IIC接口配置成普通1 口,通过1口模拟IIC协议发送或接收数据;再模拟停止条件,使外部的Iic器件完成本次通信,恢复到正常状态; 将接口配置回Iic接口,并重新对IIC寄存器进行初始化,开启IIC功能; 与外部IIC器件重新进行通信。2.根据权利要求1所述的Iic总线接口的抗干扰方法,其特征在于:IIC通信的超时监测机制采用定时器中断的方式计时,每次中断将全局计数器变量加1,IIC通信开始时将计数器清0,然后在IIC通信时读取计数器的值,如果计数器的值大于允许值则认为超时。【专利摘要】本专利技术公开了一种IIC总线接口的抗干扰方法,其能够通过建立超时机制监测IIC接口是否存在异常,在监测到存在异常的情况下能够及时处理并复位,从而能够避免接口失效,保证下次IIC通信时能够成功,使IIC接口正常工作。所述抗干扰方法,有效的解决了IIC接口受到干扰后失效的问题,使IIC通信更加实用、增强抗干扰能力。【IPC分类】G06F13-40, G06F13-42【公开号】CN104834624【申请号】CN201510272983【专利技术人】廖志梅 【申请人】广州正力通用电气有限公司【公开日】2015年8月12日【申请日】2015年5月26日本文档来自技高网...

【技术保护点】
一种IIC总线接口的抗干扰方法,包括如下步骤:建立IIC通信的超时监测机制,监测IIC通讯等待应答时间;当IIC通信等待应答时间超时,则认为出现异常,需要进行异常处理;异常处理时,首先关闭MCU的IIC功能,将MCU的IIC接口配置成普通IO口,通过IO口模拟IIC协议发送或接收数据;再模拟停止条件,使外部的IIC器件完成本次通信,恢复到正常状态;将接口配置回IIC接口,并重新对IIC寄存器进行初始化,开启IIC功能;与外部IIC器件重新进行通信。

【技术特征摘要】

【专利技术属性】
技术研发人员:廖志梅
申请(专利权)人:广州正力通用电气有限公司
类型:发明
国别省市:广东;44

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

1