CN103593316B - 一种减少mcu中断占用i2c总线时间的方法 - Google Patents
一种减少mcu中断占用i2c总线时间的方法 Download PDFInfo
- Publication number
- CN103593316B CN103593316B CN201310596210.7A CN201310596210A CN103593316B CN 103593316 B CN103593316 B CN 103593316B CN 201310596210 A CN201310596210 A CN 201310596210A CN 103593316 B CN103593316 B CN 103593316B
- Authority
- CN
- China
- Prior art keywords
- data
- machine
- bus
- mcu
- sent
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims abstract description 27
- 238000007599 discharging Methods 0.000 claims abstract description 4
- 230000006854 communication Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000004377 microelectronic Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Landscapes
- Small-Scale Networks (AREA)
- Bus Control (AREA)
Abstract
本发明一种减少MCU中断占用I2C总线时间的方法,包括以下步骤:步骤一,当从机MCU接收到主机端写入的I2C读取数据起始地址后,从机反馈ACK然后释放I2C总线中的SCL,然后准备待发送的数据并缓存;步骤二,当从机MCU接收到主机读取I2C数据命令后,从机反馈ACK并将步骤一中准备待发送的数据写入到I2C数据寄存器然后释放I2C总线中的SCL,进行下一个待发送的数据的处理准备工作;步骤三,主机收到数据后反馈ACK给从机,从机MCU收到ACK后进入中断将步骤二中待发送的数据写入到I2C数据寄存器并释放I2C总线中的SCL等特征。本发明在从机MCU中断占用I2C总线的过程中进行了最少的操作,减小了从机MCU中断占用I2C总线的时间,提高了从机的匹配度。
Description
技术领域
本发明涉及I2C硬件数据读取过程,尤其涉及一种减少MCU中断占用I2C总线时间的方法。
背景技术
I2C总线以其简单的物理构架在现今的通讯过程中广泛应用,尤其是具有硬件I2C接口MCU的应用更为广泛,在I2C数据的读取过程中,I2C从机的读取响应速度直接影响到该设备的I2C兼容性。
从机MCU接收到I2C主机的读取命令后,首先进入I2C中断,拉低SCL将I2C总线占用,然后反馈ACK给主机,之后进行待发送数据的处理计算,当计算成功后从机MCU将待发送的数据写入I2C发送寄存器并释放I2C总线中的SCL,完成此处中断操作。由于从机MCU数据处理计算量的不确定性,导致该I2C中断处理时间的不确定,这样也就导致了从机占用I2C总线时间的不确定性。
此种处理方法如果I2C主机端不具有SCL等待功能,若此时从机I2C中断处理数据时间过长造成从机占用I2C总线时间过长,就会造成主机读取I2C数据的异常。
发明内容
本发明的目的在于提供一种减少MCU中断占用I2C总线时间的方法,解决了目前I2C从机的读取时中断处理时间的不确定,造成从机占用I2C总线时间不确定的问题。
为解决上述问题,本发明所采取的技术方案是:
一种减少MCU中断占用I2C总线时间的方法,包括以下步骤:
步骤一,当从机MCU接收到主机端写入的I2C读取数据起始地址后,从机反馈ACK然后释放I2C总线中的SCL,然后准备待发送的数据并缓存;
步骤二,当从机MCU接收到主机读取I2C数据命令后,从机反馈ACK并将步骤一中准备待发送的数据写入到I2C数据寄存器然后释放I2C总线中的SCL,进行下一个待发送的数据的处理准备工作;
步骤三,主机收到数据后反馈ACK给从机,从机MCU收到ACK后进入中断将步骤二中待发送的数据写入到I2C数据寄存器并释放I2C总线中的SCL,然后进行下一个待发送的数据的处理准备工作,以此类推直至主机结束此次I2C读取过程。
采用上述技术方案所产生的有益效果在于:在从机MCU中断占用I2C总线的过程中进行了最少的操作,减小了从机MCU中断占用I2C总线的时间,提高了从机的匹配度。
附图说明
图1是本发明一种减少MCU中断占用I2C总线时间的方法一个实施例的流程示意图。
图2是本发明一种减少MCU中断占用I2C总线时间的方法一个实施例中确认字符举例示意表。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
图1示出了本发明一种减少MCU中断占用I2C总线时间的方法的一个实施例:一种减少MCU中断占用I2C总线时间的方法,包括以下步骤:
步骤一,当从机MCU接收到主机端写入的I2C读取数据起始地址后,从机反馈ACK然后释放I2C总线中的SCL,然后准备待发送的数据并缓存;
步骤二,当从机MCU接收到主机读取I2C数据命令后,从机反馈ACK并将步骤一中准备待发送的数据写入到I2C数据寄存器然后释放I2C总线中的SCL,进行下一个待发送的数据的处理准备工作;
步骤三,主机收到数据后反馈ACK给从机,从机MCU收到ACK后进入中断将步骤二中待发送的数据写入到I2C数据寄存器并释放I2C总线中的SCL,然后进行下一个待发送的数据的处理准备工作,以此类推直至主机结束此次I2C读取过程。
名词解释:
MCU:MCU(MicroControlUnit)中文名称为微控制单元,又称单片微型计算机(SingleChipMicrocomputer)或者单片机。
I2C:I2C(Inter-IntegratedCircuit)总线是由PHILIPS公司开发的两线式串行总线,用于连接微控制器及其外围设备。是微电子通信控制领域广泛采用的一种总线标准。它是同步通信的一种特殊形式,具有接口线少,控制方式简单,器件封装形式小,通信速率较高等优点。
SCL:I2C总线的时钟信号线。
SDA:I2C总线的数据信号线。
ACK:ACK(Acknowledgement),即确认字符,如图2所示,在数据通信中,接收站发给发送站的一种传输类控制字符,表示发来的数据已确认接受无误。
Claims (1)
1.一种减少MCU中断占用I2C总线时间的方法,其特征在于包括以下步骤:
步骤一,当从机MCU接收到主机端写入的I2C读取数据起始地址后,从机反馈ACK然后释放I2C总线中的SCL,然后准备待发送的数据并缓存;
步骤二,当从机MCU接收到主机读取I2C数据命令后,从机反馈ACK并将步骤一中准备待发送的数据写入到I2C数据寄存器然后释放I2C总线中的SCL,进行下一个待发送的数据的处理准备工作;
步骤三,主机收到数据后反馈ACK给从机,从机MCU收到ACK后进入中断将步骤二中待发送的数据写入到I2C数据寄存器并释放I2C总线中的SCL,然后进行下一个待发送的数据的处理准备工作,以此类推直至主机结束此次I2C读取过程。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310596210.7A CN103593316B (zh) | 2013-11-25 | 2013-11-25 | 一种减少mcu中断占用i2c总线时间的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310596210.7A CN103593316B (zh) | 2013-11-25 | 2013-11-25 | 一种减少mcu中断占用i2c总线时间的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103593316A CN103593316A (zh) | 2014-02-19 |
CN103593316B true CN103593316B (zh) | 2016-04-06 |
Family
ID=50083467
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310596210.7A Expired - Fee Related CN103593316B (zh) | 2013-11-25 | 2013-11-25 | 一种减少mcu中断占用i2c总线时间的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103593316B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6321221B2 (ja) * | 2014-03-24 | 2018-05-09 | イーエニエーエスセー テック − インスティチュート デ エンゲンハリア デ システマス エ コンピュータドレス テクノロジア エ シエンシアInesc Tec − Instituto De Engenharia De Sistemas E Computadores, Tecnologia E Ciencia | 複数のミックスドシグナルのリソース管理のための制御モジュール |
CN105591854A (zh) * | 2015-08-17 | 2016-05-18 | 杭州华三通信技术有限公司 | 一种基于串行总线的交互方法、装置以及系统 |
CN111274188A (zh) * | 2020-02-20 | 2020-06-12 | 深圳震有科技股份有限公司 | 一种多数据i2c总线 |
CN117193991B (zh) * | 2023-11-08 | 2024-02-23 | 广州翼辉信息技术有限公司 | 一种实时操作系统中断处理时间的准确测量方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1553357A (zh) * | 2003-05-27 | 2004-12-08 | 威达电股份有限公司 | 系统总线控制装置及方法 |
CN101937413A (zh) * | 2010-10-21 | 2011-01-05 | 成都优博创技术有限公司 | 一种i2c总线的通信方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20100078193A (ko) * | 2008-12-30 | 2010-07-08 | 주식회사 동부하이텍 | 슬레이브 및 그와 마스터 간의 통신 방법 |
-
2013
- 2013-11-25 CN CN201310596210.7A patent/CN103593316B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1553357A (zh) * | 2003-05-27 | 2004-12-08 | 威达电股份有限公司 | 系统总线控制装置及方法 |
CN101937413A (zh) * | 2010-10-21 | 2011-01-05 | 成都优博创技术有限公司 | 一种i2c总线的通信方法 |
Also Published As
Publication number | Publication date |
---|---|
CN103593316A (zh) | 2014-02-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11176068B2 (en) | Methods and apparatus for synchronizing uplink and downlink transactions on an inter-device communication link | |
CN102819512B (zh) | 一种基于spi的全双工通信装置及其方法 | |
JP6517243B2 (ja) | リンクレイヤ/物理レイヤ(phy)シリアルインターフェース | |
CN103593316B (zh) | 一种减少mcu中断占用i2c总线时间的方法 | |
CN103914424B (zh) | 基于gpio接口的lpc外设扩展方法及装置 | |
US20130198432A1 (en) | Interrupt handling systems and methods for pcie bridges with multiple buses | |
CN101788972A (zh) | 一种数据传输的系统与方法 | |
TW201822011A (zh) | 使用i2c匯流排與主機連接的從機及其通信方法 | |
CN105119907A (zh) | 一种基于FPGA的BiSS-C通信协议方法 | |
CN203849731U (zh) | 一种基于i2c总线实现的数据处理设备 | |
CN102073611B (zh) | 一种i2c总线控制系统及方法 | |
CN102103564B (zh) | 用于实现总线连接的方法及系统 | |
TWI497307B (zh) | 通用串列匯流排事務轉譯器及通用串列匯流排傳輸轉譯方法 | |
CN101937413B (zh) | 一种i2c总线的通信方法 | |
CN102253910A (zh) | 一种i2c传输方法及其装置 | |
US8874989B2 (en) | Memory system capable of increasing data transfer efficiency | |
CN103077144A (zh) | 一种确保数据完整的spi通讯接口及其通讯方法 | |
CN103107862B (zh) | 逻辑器件及其mdio数据发送方法 | |
CN104144137B (zh) | 一种高速lvds串行同步通讯控制器 | |
CN202018576U (zh) | 单片机通信模块 | |
CN111026691B (zh) | 基于apb总线的owi通讯设备 | |
CN105117179A (zh) | 一种主机与存储设备数据交互的方法及存储控制器 | |
CN105573947A (zh) | 一种基于apb总线的sd/mmc卡控制方法 | |
CN103838694A (zh) | 一种fpga高速读取usb接口数据的方法 | |
CN105068962A (zh) | I2c控制器访问方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20160406 |
|
CF01 | Termination of patent right due to non-payment of annual fee |