[发明专利]一种减少MCU中断占用I2C总线时间的方法有效
申请号: | 201310596210.7 | 申请日: | 2013-11-25 |
公开(公告)号: | CN103593316A | 公开(公告)日: | 2014-02-19 |
发明(设计)人: | 李耀威;许建锐;罗建刚;郭继伟;王彦伟 | 申请(专利权)人: | 深圳市共进电子股份有限公司 |
主分类号: | G06F13/38 | 分类号: | G06F13/38 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 广东省深圳市南山区南海大道1019号南山医疗器械产业园B116、B1*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 减少 mcu 中断 占用 i2c 总线 时间 方法 | ||
技术领域
本发明涉及I2C硬件数据读取过程,尤其涉及一种减少MCU中断占用I2C总线时间的方法。
背景技术
I2C总线以其简单的物理构架在现今的通讯过程中广泛应用,尤其是具有硬件I2C接口MCU的应用更为广泛,在I2C数据的读取过程中,I2C从机的读取响应速度直接影响到该设备的I2C兼容性。
从机MCU接收到I2C主机的读取命令后,首先进入I2C中断,拉低SCL将I2C总线占用,然后反馈ACK给主机,之后进行待发送数据的处理计算,当计算成功后从机MCU将待发送的数据写入I2C发送寄存器并释放SCL释放I2C总线,完成此处中断操作。由于从机MCU数据处理计算量的不确定性,导致该I2C中断处理时间的不确定,这样也就导致了从机占用I2C总线时间的不确定性。
此种处理方法如果I2C主机端不具有SCL等待功能,若此时从机I2C中断处理数据时间过长造成从机占用I2C总线时间过长,就会造成主机读取I2C数据的异常。
发明内容
本发明的目的在于提供一种减少MCU中断占用I2C总线时间的方法,解决了目前I2C从机的读取时中断处理时间的不确定,造成从机占用I2C总线时间不确定的问题。
为解决上述问题,本发明所采取的技术方案是:
一种减少MCU中断占用I2C总线时问的方法,包括以下步骤:
步骤一,当从机MCU接收到主机端写入的I2C读取数据起始地址后,从机反馈ACK然后释放SCL释放I2C总线,然后准备待发送的数据并缓存;
步骤二,当从机MCU接收到主机读取I2C数据命令后,从机反馈ACK并将步骤一中准备待发送的数据写入到I2C数据寄存器然后释放SCL释放I2C总线,进行下一个待发送的数据的处理准备工作;
步骤三,主机收到数据后反馈ACK给从机,从机MCU收到ACK后进入中断将步骤二中待发送的数掘写入到I2C数据寄存器并释放SCL释放I2C总线,然后进行下一个待发送的数据的处理准备工作,以此类推直至主机结束此次I2C读取过程。
采用上述技术方案所产生的有益效果在于:在从机MCU中断占用I2C总线的过程中进行了最少的操作,减小了从机MCU中断占用I2C总线的时间,提高了从机的匹配度。
附图说明
图1是本发明一种减少MCU中断占用I2C总线时间的方法一个实施例的流程示意图。
图2是本发明一种减少MCU中断占用I2C总线时间的方法一个实施例中确认字符举例示意表。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
图1示出了本发明一种减少MCU中断占用I2C总线时间的方法的一个实施例:一种减少MCU中断占用I2C总线时间的方法,包括以下步骤:
步骤一,当从机MCU接收到主机端写入的I2C读取数据起始地址后,从机反馈ACK然后释放SCL释放I2C总线,然后准备待发送的数据并缓存;
步骤二,当从机MCU接收到主机读取I2C数据命令后,从机反馈ACK并将步骤一中准备待发送的数掘写入到I2C数据寄存器然后释放SCL释放I2C总线,进行下一个待发送的数据的处理准备工作;
步骤三,主机收到数据后反馈ACK给从机,从机MCU收到ACK后进入中断将步骤二中待发送的数据写入到I2C数据寄存器并释放SCL释放I2C总线,然后进行下一个待发送的数据的处理准备工作,以此类推直至主机结束此次I2C读取过程。
名词解释:
MCU:MCU(Micro Control Unit)中文名称为微控制单元,又称单片微型计算机(Single Chip Microcomputer)或者单片机。
I2C:I2C(Inter-Integrated Circuit)总线是由PHILIPS公司开发的两线式串行总线,用于连接微控制器及其外围设备。是微电子通信控制领域广泛采用的一种总线标准。它是同步通信的一种特殊形式,具有接口线少,控制方式简单,器件封装形式小,通信速率较高等优点。
SCL:I2C总线的时钟信号线。
SDA:I2C总线的数据信号线。
ACK:ACK(Acknowledgement),即确认字符,如图2所示,在数据通信中,接收站发给发送站的一种传输类控制字符,表示发来的数据已确认接受无误。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于深圳市共进电子股份有限公司,未经深圳市共进电子股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310596210.7/2.html,转载请声明来源钻瓜专利网。