用于MCU作为从器件识别I2C总线信号的装置及方法制造方法及图纸

技术编号:7054677 阅读:324 留言:0更新日期:2012-04-11 18:40
本发明专利技术提供了一种用于MCU作为从器件识别I2C总线信号的装置及方法。本发明专利技术利用MCU内置的第一计数器捕捉第一计数管脚在SDA信号线感测到的下降沿、利用第二计数器捕捉第二计数管脚在SDA信号线的反向信号线感测到的下降沿(相当于SDA信号线的上升沿),并以中断管脚在SCL信号线感测到的电平状态将上述的捕捉限制在SCL信号线的高电平期间内,从而无需指令采样即可严格按照时序规范识别出起始信号和结束信号,因而既能够避免指令采样对MCU的“多任务”处理能力的限制,同时还能够确保识别起始信号和结束信号的可靠性。

【技术实现步骤摘要】

本专利技术涉及用于微控制单元(Micro Control Unit, MCU)、又称为单片机(Single Chip Microcomputer)作为从器件识别 I2C QnterHntegrated Circuit)总线信号的装置及方法,特别涉及利用MCU所具有的支持门控制器(GATE)控制功能的计数器(COUNTER)模式所实现的用于MCU作为从器件识别I2C总线信号的装置及方法
技术介绍
在例如便携式系统等小型系统的设计中,通常会为了降低功耗和/或提升效率而将一些低时钟频率的应用功能从高时钟频率的CPU移植到低时钟频率的MCU。为了使CPU 与MCU之间的通讯更为便利,通常会设置CPU与MCU之间通过I2C总线连接,并由CPU作为 I2C总线的主器件、MCU作为I2C总线的从器件。如此一来,就需要作为从器件的MCU能够识别1 总线的起始信号和结束信号。图 1为现有的I2C总线的信号时序图。如图1所示,1 总线包括两根串行信号,即串行时钟 (SCL)信号和串行数据(SDA)信号,那么在图1中所表示出的起始信号S就是在SCL信号线处于高电平状态的期间,SDA信号线出现由高电平向低电平变化的下降沿;在图1中所表示出的结束信号P就是在SCL信号线处于高电平状态的期间,SDA信号线出现由低电平向高电平变化的上升沿。为了识别1 总线的起始信号和结束信号,现有技术中提供了硬件1 从器件控制器。但是,考虑到成本,MCU中通常都不会集成有硬件1 从器件控制器,这样,就需要MCU 依据起始信号和结束信号的时序规范来自行识别出起始信号和结束信号。现有技术中提供了如下两种方式用于MCU自行识别起始信号和结束信号方式1,通过MCU的指令采样来识别起始信号和结束信号。具体说,方式1以高频连续发送指令来采样SCL信号线和SDA信号线上出现的电平状态、并依据采样到的SCL信号线和SDA信号线上出现的电平状态是否满足时序规范来判断1 总线上是否出现了起始信号和结束信号。方式2,借助MCU提供的边沿检测功能来识别起始信号和结束信号。具体说,方式 2依据SCL信号上出现的边沿跳变来触发对SDA信号线上的电平状态的读取、并依据SCL信号上出现的跳变以及读取的SDA信号线上的电平状态来判断1 总线上是否出现了起始信号和结束信号。然而,上述两种方式均存在各自的缺陷上述的方式1需要在长时间内持续地以高频连续发送指令,因而不允许采样过程被中断打断,这样,就限制了 MCU通过中断实现的“多任务”处理能力。上述的方式2虽然实现简单、并且能够避免方式1存在的“多任务”处理能力受限制的问题,但是,方式2并没有严格按照时序规范来识别起始信号和结束信号、而是更多地依赖于SCL信号线上出现的边沿跳变,因此,当1 总线上出现异常波动时就会导致方式2出现误识别,即,以方式2识别起始信号和结束信号的可靠性不高。如上可见,现有技术所提供的两种方式均无法同时兼顾MCU的“多任务”处理能力、以及识别起始信号和结束信号的可靠性。
技术实现思路
有鉴于此,本专利技术提供用于MCU作为从器件识别1 总线信号的装置及方法。根据本专利技术的第一方面,提供一种用于MCU作为从器件识别1 总线信号的装置。 该装置包括所述MCU的中断管脚,连接I2C总线的SCL信号线;所述MCU的第一计数管脚,连接I2C总线的SDA信号线;所述MCU的第二计数管脚,连接所述SDA信号线的经一反向器反向后的反向信号线.一入 ,内置于所述MCU的第一计数器,以所述中断管脚在所述SCL信号线感测到的电平状态为高电平时允许、低电平时禁止的门限控制,并捕捉所述第一计数管脚在所述SDA信号线感测到的下降沿、以及在每次捕捉到该下降沿后进行一次用于触发表示起始信号的中断的计数操作;内置于所述MCU的第二计数器,以所述中断管脚在所述SCL信号线感测到的所述电平状态为所述门限控制,并捕捉所述第二计数管脚在所述反向信号线感测到的下降沿、 以及在每次捕捉到该下降沿后进行一次用于触发表示结束信号的中断的计数操作。根据上述的装置,所述第一计数器和所述第二计数器均为可择一地提供计时或计数功能的寄存器器件、并被配置为所述计数功能。根据上述的装置,所述第一计数器和所述第二计数器的计数范围均被设置为寄存器最大值。根据上述的装置,所述中断管脚包括第一中断管脚和第二中断管脚;所述第一计数器以所述第一中断管脚在所述SCL信号线感测到的电平状态为所述门限控制;所述第二计数器以所述第二中断管脚在所述SCL信号线感测到的电平状态为所述门限控制。根据本专利技术的第二方面,提供一种用于MCU作为从器件识别I2C总线信号的方法。 该方法包括设置所述MCU的中断管脚连接I2C总线的SCL信号线;设置所述MCU的第一计数管脚连接I2C总线的SDA信号线;设置所述MCU的第二计数管脚连接所述SDA信号线的经一反向器反向后的反向信号线;设置内置于所述MCU的第一计数器以所述中断管脚在所述SCL信号线感测到的电平状态为高电平时允许、低电平时禁止的门限控制,并利用所述第一计数器捕捉所述第一计数管脚在所述SDA信号线感测到的下降沿、以及在每次捕捉到该下降沿后进行一次用于触发表示起始信号的中断的计数操作;设置内置于所述MCU的第二计数器以所述中断管脚在所述SCL信号线感测到的所述电平状态为所述门限控制,并利用所述第二计数器捕捉所述第二计数管脚在所述反向信号线感测到的下降沿、以及在每次捕捉到该下降沿后进行一次用于触发表示结束信号的中断的计数操作。根据上述的方法,该方法通过将可择一地提供计时或计数功能的寄存器器件配置为所述计数功能来实现所述第一计数器和所述第二计数器。根据上述的方法,该方法将所述第一计数器和所述第二计数器的计数范围均设置为寄存器最大值。根据上述的方法,所述中断管脚包括第一中断管脚和第二中断管脚;该方法设置所述第一计数器以所述第一中断管脚在所述SCL信号线感测到的电平状态为所述门限控制;该方法设置所述第二计数器以所述第二中断管脚在所述SCL信号线感测到的电平状态为所述门限控制。如上可见,本专利技术利用MCU内置的第一计数器捕捉第一计数管脚在SDA信号线感测到的下降沿、利用第二计数器捕捉第二计数管脚在SDA信号线的反向信号线感测到的下降沿(相当于SDA信号线的上升沿),并以中断管脚在SCL信号线感测到的电平状态将上述的捕捉限制在SCL信号线的高电平期间内,从而无需指令采样即可严格按照时序规范识别出起始信号和结束信号,因而既能够避免指令采样对MCU的“多任务”处理能力的限制,同时还能够确保识别起始信号和结束信号的可靠性。附图说明图1为现有的I2C总线的信号时序图;图2为本专利技术具体实施方式中用于MCU作为从器件识别I2C总线信号的装置的示例性结构示意图。具体实施例方式为使本专利技术的目的、技术方案及优点更加清楚明白,以下参照附图并举实施例,对本专利技术进一步详细说明。图2为本专利技术具体实施方式中用于MCU作为从器件识别I2C总线信号的装置的示例性结构示意图。在图2中以一种51系列(例如8051)的MCU为例。首先参见图2,本专利技术具体实施方式中用于MCU作为从器件识别1 总线信号的装置包括MCU的如下外部管脚第一计数管脚TO、第二计数管脚Tl、第一中断管脚INTO、第二中断管脚IN本文档来自技高网
...

【技术保护点】
1.一种用于MCU作为从器件识别I2C总线信号的装置,其特征在于,该装置包括:所述MCU的中断管脚,连接I2C总线的SCL信号线;所述MCU的第一计数管脚,连接I2C总线的SDA信号线;所述MCU的第二计数管脚,连接所述SDA信号线的经一反向器反向后的反向信号线;内置于所述MCU的第一计数器,以所述中断管脚在所述SCL信号线感测到的电平状态为高电平时允许、低电平时禁止的门限控制,并捕捉所述第一计数管脚在所述SDA信号线感测到的下降沿、以及在每次捕捉到该下降沿后进行一次用于触发表示起始信号的中断的计数操作;内置于所述MCU的第二计数器,以所述中断管脚在所述SCL信号线感测到的所述电平状态为所述门限控制,并捕捉所述第二计数管脚在所述反向信号线感测到的下降沿、以及在每次捕捉到该下降沿后进行一次用于触发表示结束信号的中断的计数操作。

【技术特征摘要】

【专利技术属性】
技术研发人员:高平
申请(专利权)人:苏州佳世达电通有限公司
类型:发明
国别省市:32

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

1