一种用于多个设备之间的i2c总线通讯检测方法

文档序号:7767799阅读:1250来源:国知局
专利名称:一种用于多个设备之间的i2c总线通讯检测方法
技术领域
本发明涉及总线通信控制技术领域,特别是一种用于多个设备之间的总线通讯 检测方法。
背景技术
目前微控制器(Micro Controller Unit,MCU)的监控纠错方式主要有看门狗、
设置软件陷阱、应用冗余指令等方法,其主要是针对软件跑飞的现象进行控制。而在家 用电器产品的实际应用过程中,由于电网波动的不确定性,以及部分家用电器产品本身 非隔离电源的实际情况,以及个别MCU存在最大的复位电压低于其最低正常工作电压的 情况,导致家用电器产品在工作过程中,出现MCU通讯总线被干扰导致接收数据混乱, 甚至出现无法通信或通信失效、死机等现象,从而引起操作面板操作失效,甚至引起电 器损坏。I2C (Inter 一 Integrated Circuit)总线是一种由PHILIPS公司开发的两线式串行总
线,用于连接微控制器及其外围设备。I2C总线产生于在80年代,最初为音频和视频设 备开发,如今主要在服务器管理中使用,其中包括单个组件状态的通信。例如管理员可 对各个组件进行查询,以管理系统的配置或掌握组件的功能状态,如电源和系统风扇。 可随时监控内存、硬盘、网络、系统温度等多个参数,增加了系统的安全性,方便了管 理。1I2C总线特点 I2C总线最主要的优点是其简单性和有效性。由于接口
直接在组件之上,因此I2C总线占用的空间非常小,减少了电路板的空间和芯片管脚的 数量,降低了互联成本。总线的长度可高达25英尺,并且能够以IOKbps的最大传输速 率支持40个组件。I2C总线的另一个优点是,它支持多主控(multimastering),其中任何 能够进行发送和接收的设备都可以成为主总线。一个主控能够控制信号的传输和时钟频 率。当然,在任何时间点上只能有一个主控。2I2C总线工作原理 2.1总线的
构成及信号类型 I2C总线是由数据线SDA和时钟SCL构成的串行总线,可发送和接 收数据。在CPU与被控IC之间、IC与IC之间进行双向传送,最高传送速率100kbps。各 种被控制电路均并联在这条总线上,但就像电话机一样只有拨通各自的号码才能工作, 所以每个电路和模块都有唯一的地址,在信息的传输过程中,I2C总线上并接的每一模 块电路既是主控器(或被控器),又是发送器(或接收器),这取决于它所要完成的功 能。CPU发出的控制信号分为地址码和控制量两部分,地址码用来选址,即接通需要控 制的电路,确定控制的种类;控制量决定该调整的类别(如对比度、亮度等)及需要调 整的量。这样,各控制电路虽然挂在同一条总线上,却彼此独立,互不相关。I2C
总线在传送数据过程中共有三种类型信号,它们分别是开始信号、结束信号和应答信 号。开始信号SCL为高电平时,SDA由高电平向低电平跳变,开始传送数据。
结束信号SCL为高电平时,SDA由低电平向高电平跳变,结束传送数据。 应答信号接收数据的IC在接收到Sbit数据后,向发送数据的IC发出特定的低电平脉 冲,表示已收到数据。CPU向受控单元发出一个信号后,等待受控单元发出一个应答信号,CPU接收到应答信号后,根据实际情况作出是否继续传递信号的判断。若未收到应 答信号,由判断为受控单元出现故障。目前有很多半导体集成电路上都集成了 I2C
接 口。带有 I2C 接 口 的单片机有CYGNAL 的 C8051F0XX 系列,PHILIPSP87LPC7XX 系列,MICROCHIP的PIC16C6XX系列等。很多外围器件如存储器、监控芯片等也提供 I2C 接口。

发明内容
本发明提供一种用于多个设备之间的I2C总线通讯检测方法,以解决现有技术 使用总线通讯被干扰导致接收数据混乱的技术问题。为了实现本发明的发明目的,采用的技术方案如下
一种用于多个设备之间的总线通讯检测方法,所述多个设备包括采用微控制器的主 设备以及采用微控制器的从设备,所述主设备和从设备包括通讯模块,主设备的通讯模 块通过总线与从设备的通讯模块进行通讯,所述方法包括 主设备每间隔通讯时间执行以下自检操作
(11)检测主设备总线的通讯端口是否处于忙状态;
(12)如果主设备总线的通讯端口处于忙状态,则初始化主设备的通讯模块,否则 退出自检操作。作为一种优选方案,所述方法还包括 从设备每间隔通讯时间执行以下自检操作
(21)检测从设备总线的通讯端口是否处于忙状态;
(22)如果从设备总线的通讯端口处于忙状态,则初始化从设备的通讯模块,否则 退出自检操作。作为一种优选方案,所述方法还包括
主设备每间隔通讯时间执行自检操作,在执行完步骤(11) (12)后,调用通讯 模块通过总线进行通信。作为一种优选方案,所述总线为内置集成电路总线(Inter-Integrated Circuit,
I2C总线),步骤(11)通过检测主设备总线的时钟通讯端口和数据通讯端口判断主设备 总线的通讯端口是否处于忙状态,如果主设备总线的时钟通讯端口或数据通讯端口处于 忙状态,则判断主设备总线的通讯端口处于忙状态;如果主设备总线的时钟通讯端口且 数据通讯端口处于闲状态,则判断主设备总线的通讯端口处于闲状态。作为进一步的优选方案,步骤(11)通过检测主设备总线的时钟通讯端口和数 据通讯端口的电平高低判断主设备总线的通讯端口是否处于忙状态,如果主设备总线的 时钟通讯端口或数据通讯端口为低电平,则判断主设备总线的通讯端口处于忙状态;如 果主设备总线的时钟通讯端口且数据通讯端口为高电平,则判断主设备总线的通讯端口 处于闲状态。作为一种优选方案,所述总线为内置集成电路总线,步骤(21)通过检测从设 备总线的时钟通讯端口和数据通讯端口判断从设备总线的通讯端口是否处于忙状态,如 果从设备总线的时钟通讯端口或数据通讯端口处于忙状态,则判断从设备总线的通讯端 口处于忙状态;如果从设备总线的时钟通讯端口且数据通讯端口处于闲状态,则判断从设备总线的通讯端口处于闲状态。作为进一步的优选方案,步骤(21)通过检测从设备总线的时钟通讯端口和数 据通讯端口的电平高低判断从设备总线的通讯端口是否处于忙状态,如果从设备总线的 时钟通讯端口或数据通讯端口为低电平,则判断从设备总线的通讯端口处于忙状态;如 果从设备总线的时钟通讯端口且数据通讯端口为高电平,则判断从设备总线的通讯端口 处于闲状态。作为进一步的优选方案,所述通讯时间为10 20ms。作为再进一步的优选方案,所述通讯时间为10ms。在复杂的环境下,有很多情况会导致总线受干扰。一般的抗干扰方法只是针对 特定的情况而设定,因此在复杂的环境下并不能有效防止总线受干扰。本发明通过自检,在发现通信失效后自动恢复的软件纠错方法可以大大提高 MCU通信的抗干扰能力,确保电器系统安全可靠的工作。


图1为本发明本实施例主机主程序调用通信失效后自动恢复的软件纠错程序 流程图2为本发明本实施例从机主程序调用通信失效后自动恢复的软件纠错程序流程图。
具体实施例方式下面结合附图和具体实施例对本发明做进一步详细的说明。本实施例是以本发明的自检方法应用在电磁炉产品上为例进行说明,作为MCU I2C通信失效后自动恢复的软件纠错设计方法,确保使系统工作的MCU通信失效后,能 够自动重启I2C通信,保证电磁炉产品的核心功率器件不损坏和安全。如图1所示,电磁炉主板微控制器MCU作为主机,在主程序循环体中每隔IOms 调用一次I2C通信子程序,在调用通信子程序之前调用I2C通信端口状态判断,确认总线 是否空闲,在总线忙的时候通过初始化主机I2C通信模块达到主机释放总线的目的。如 图2所示,电磁炉显示板微控制器MCU作为从机,每隔IOms调用一次I2C通信端口状 态判断程序,确认总线是否空闲,若连续10次总线忙,则通过初始化从机I2C通信模块 达到从机释放总线的目的。本发明很好解决了 I2C通信受外部干扰而中断的问题,通过主从机双方的自检 来达到释放总线,恢复正常通信的目的,避免了因通讯中断引起操作面板操作失效,甚 至引起电器损坏的情况发生。本发明的实施方式并不受所述实施例的限制,其他的任何未背离本发明的精神 实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含 在本发明的保护范围之内。
权利要求
1.一种用于多个设备之间的I2C总线通讯检测方法,所述多个设备包括采用微控制器 的主设备以及采用微控制器的从设备,所述主设备和从设备包括通讯模块,主设备的通 讯模块通过总线与从设备的通讯模块进行通讯,其特征在于,所述方法包括主设备每间隔通讯时间执行以下自检操作(11)检测主设备总线的通讯端口是否处于忙状态;(12)如果主设备总线的通讯端口处于忙状态,则初始化主设备的通讯模块,否则 退出自检操作。
2.根据权利要求1所述的检测方法,其特征在于,所述方法还包括从设备每间隔通讯时间执行以下自检操作(21)检测从设备总线的通讯端口是否处于忙状态;(22)如果从设备总线的通讯端口处于忙状态,则初始化从设备的通讯模块,否则 退出自检操作。
3.根据权利要求1所述的检测方法,其特征在于,所述方法还包括主设备每间隔通讯时间执行自检操作,在执行完步骤(11) (12)后,调用通讯 模块通过总线进行通信。
4.根据权利要求1所述的检测方法,其特征在于,所述总线为内置集成电路总线,步 骤(11)通过检测主设备总线的时钟通讯端口和数据通讯端口判断主设备总线的通讯端 口是否处于忙状态,如果主设备总线的时钟通讯端口或数据通讯端口处于忙状态,则判 断主设备总线的通讯端口处于忙状态;如果主设备总线的时钟通讯端口且数据通讯端口 处于闲状态,则判断主设备总线的通讯端口处于闲状态。
5.根据权利要求4所述的检测方法,其特征在于,步骤(11)通过检测主设备总 线的时钟通讯端口和数据通讯端口的电平高低判断主设备总线的通讯端口是否处于忙状 态,如果主设备总线的时钟通讯端口或数据通讯端口为低电平,则判断主设备总线的通 讯端口处于忙状态;如果主设备总线的时钟通讯端口且数据通讯端口为高电平,则判断 主设备总线的通讯端口处于闲状态。
6.根据权利要求2所述的检测方法,其特征在于,所述总线为内置集成电路总线,步 骤(21)通过检测从设备总线的时钟通讯端口和数据通讯端口判断从设备总线的通讯端 口是否处于忙状态,如果从设备总线的时钟通讯端口或数据通讯端口处于忙状态,则判 断从设备总线的通讯端口处于忙状态;如果从设备总线的时钟通讯端口且数据通讯端口 处于闲状态,则判断从设备总线的通讯端口处于闲状态。
7.根据权利要求6所述的检测方法,其特征在于,步骤(21)通过检测从设备总 线的时钟通讯端口和数据通讯端口的电平高低判断从设备总线的通讯端口是否处于忙状 态,如果从设备总线的时钟通讯端口或数据通讯端口为低电平,则判断从设备总线的通 讯端口处于忙状态;如果从设备总线的时钟通讯端口且数据通讯端口为高电平,则判断 从设备总线的通讯端口处于闲状态。
8.根据权利要求1 7所述的检测方法,其特征在于,所述通讯时间为10 20ms。
9.根据权利要求8所述的检测方法,其特征在于,所述通讯时间为10ms。
全文摘要
本发明涉及总线通信控制技术领域,特别是一种用于多个设备之间的总线通讯检测方法,所述多个设备包括采用微控制器的主设备以及采用微控制器的从设备,所述主设备和从设备包括通讯模块,主设备的通讯模块通过总线与从设备的通讯模块进行通讯,所述方法包括主设备每间隔通讯时间执行以下自检操作(11)检测主设备总线的通讯端口是否处于忙状态;(12)如果主设备总线的通讯端口处于忙状态,则初始化主设备的通讯模块,否则退出自检操作。本发明通过自检,在发现通信失效后自动恢复的软件纠错方法可以大大提高MCU通信的抗干扰能力,确保电器系统安全可靠的工作。
文档编号H04L12/26GK102025565SQ20101057572
公开日2011年4月20日 申请日期2010年12月7日 优先权日2010年12月7日
发明者丁娟, 刘杰, 毛宏建 申请人:美的集团有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1