CN112540943B - 一种防止i2c接口错误唤醒soc系统的电路结构及方法 - Google Patents

一种防止i2c接口错误唤醒soc系统的电路结构及方法 Download PDF

Info

Publication number
CN112540943B
CN112540943B CN202011276591.7A CN202011276591A CN112540943B CN 112540943 B CN112540943 B CN 112540943B CN 202011276591 A CN202011276591 A CN 202011276591A CN 112540943 B CN112540943 B CN 112540943B
Authority
CN
China
Prior art keywords
sda
circuit
scl
edge detection
falling edge
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.)
Active
Application number
CN202011276591.7A
Other languages
English (en)
Other versions
CN112540943A (zh
Inventor
梁瀚予
崔浩林
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing CEC Huada Electronic Design Co Ltd
Original Assignee
Beijing CEC Huada Electronic Design Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing CEC Huada Electronic Design Co Ltd filed Critical Beijing CEC Huada Electronic Design Co Ltd
Priority to CN202011276591.7A priority Critical patent/CN112540943B/zh
Publication of CN112540943A publication Critical patent/CN112540943A/zh
Application granted granted Critical
Publication of CN112540943B publication Critical patent/CN112540943B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Power Sources (AREA)
  • Manipulation Of Pulses (AREA)

Abstract

本发明属于SOC系统低功耗设计领域。公开了一种防止I2C接口毛刺错误唤醒SOC系统的电路结构及方法。针对SOC系统在复杂工作环境下,由于I2C总线信号(101)的毛刺会导致I2C接口错误的将SOC系统唤醒的不足,提出了一种能够滤除和检测I2C总线信号(101)毛刺的电路。该电路利用毛刺滤除电路(108),分别检测I2C_SDA总线的上升沿、下降沿和I2C_SCL总线的下降沿,能够有效滤除I2C_SCL或者I2C_SDA总线上的毛刺。当检测到I2C起始时序时,系统时钟开启电路(106)工作启动系统时钟。在I2C接口检测地址是否匹配(107)过程中,当计数器(105)计数到设置值,地址匹配仍然没有结束时,则表示上述起始时序是由于I2C_SCL和I2C_SDA同时产生毛刺导致,会关闭系统时钟,复位计数器,SOC恢复到低功耗模式。

Description

一种防止I2C接口错误唤醒SOC系统的电路结构及方法
技术领域
本发明属于SOC系统低功耗设计领域。提出了一种防止I2C接口错误唤醒SOC系统的电路结构及方法。
背景技术
随着SOC芯片规模的逐渐增大,芯片的功耗已经成为评价一颗芯片性能的主要指标,低功耗也是芯片最具有市场竞争力的特性之一。如何降低芯片的功耗和保证芯片在空闲状态时尽可能的保持在低功耗状态是SOC芯片设计不断追求的两个方向。
在现有的低功耗设计中,当芯片处在低功耗状态时,由于恶劣的工作环境,芯片接口的毛刺信号会导致芯片被错误的唤醒,退出低功耗模式,直至下一次工作,这期间会浪费大量的能量。
发明内容
针对上述问题,本发明提出了一种毛刺滤除和检测电路及方法,电路描述如下:
该电路主要由五个部分组成,分别是I2C总线信号(101)、毛刺滤除电路(108)、计数器(105)、系统时钟开启电路(106)、I2C接口模块(107)。
I2C总线信号符合标准的I2C总线协议,与主机的接口直接相连。
毛刺滤除电路(108),包括I2C_SDA下降沿检测寄存器(102)、I2C_SDA上升沿检测寄存器(103)和I2C_SCL下降沿检测寄存器(104),分别检测I2C_SDA的上升沿、I2C_SDA下降沿和I2C_SCL的下降沿。
上述于I2C_SDA下降沿检测寄存器(102)的输出端,分别连接I2C_SCL下降沿检测寄存器(104)的复位端和I2C_SDA的上升沿检测寄存器(103)的复位端,即在I2C_SDA没有产生下降沿时,I2C_SCL的下降沿检测寄存器(104)和I2C_SDA的上升沿检测寄存器(103)都处于复位状态。
I2C_SDA的上升沿检测寄存器(103)的输出,经过一个反相器后分别连接I2C_SCL下降沿检测寄存器(104)的复位端和I2C_SDA下降沿检测寄存器(102)的,即当检测到I2C_SDA检测到上升沿后,认为这是一个毛刺,需要将I2C_SDA和I2C_SCL的边沿检测电路都复位,系统重新恢复到低功耗状态,继续监测I2C总线上的信号变化。
I2C_SCL的下降沿检测寄存器(104)的输出,经过一个反相器后,连接I2C_SDA上升沿检测寄存器(103)的复位端,即当I2C_SCL出现下降沿后,是一个符合I2C起始位的时序,不需要再检测I2C_SDA的上升沿。将该寄存器复位,避免在后续通信过程中影响正常电路工作。
当I2C_SCL和I2C_SDA的时序符合了I2C的起始位时序,I2C_SCL下降沿检测寄存器(104)的输出会控制系统时钟开启电路(106),将低功耗模式下关闭的时钟开启。
I2C接口模块负责接收主机发过来的数据,进行地址是否匹配的判断。
计数器(105)在系统时钟开启后对I2C_SCL的高电平进行计数,当计数值超过设置值后,认为此时总线上没有通信,将毛刺滤除电路复位,关闭系统时钟,系统恢复到低功耗模式。
本发明提出了一种毛刺滤除和检测电路及方法,方法描述如下:
I2C接口的起始时序是在I2C_SCL为高电平期间,I2C_SDA产生下降沿;并且在I2C_SDA为低电平期间,I2C_SCL产生下降沿。基于上述协议要求,利用组合电路对I2C的两个总线信号进行检测。
当I2C_SDA为高电平期间,I2C_SCL不会产生变化,如果产生上升沿或者下降沿则一定是毛刺,将其屏蔽。
当I2C_SCL为高电平期间,I2C_SDA产生下降沿,这是正确的起始时序,然后启动I2C_SDA的上升沿检测电路,如果在I2C_SCL为高电平期间,I2C_SDA又产生了上升沿,则表示上述I2C_SDA的下降沿是一个毛刺,系统不会产生任何动作,将该毛刺滤除。
当I2C_SDA和I2C_SCL先后产生了低电平,是正确的I2C起始时序,该电路会开启系统时钟,在开启时钟的过程中强制将I2C_SCL拉低,使主机等待系统时钟恢复。
系统时钟恢复之后,将I2C_SCL释放,主机可以发送下一个数据,I2C接口模块进行地址匹配的检查,同时计数器开始工作。
当计数器计数到设置值,地址匹配仍没有结果时,说明上述起始位是毛刺产生的,需要复位系统时钟,复位计数器,恢复到低功耗模式;
当地址匹配成功后,会复位计数器,复位I2C唤醒检测电路,唤醒SOC系统;当地址匹配不成功,会复位计数器,关闭系统时钟,使SOC恢复到低功耗模式。
需要说明的是使用上述定时器会要求I2C的速率不能低于设置的计数值,否则会将正确的唤醒当做毛刺信号处理。
附图说明
图1 I2C接口毛刺滤波和检测电路
图2 I2C接口毛刺滤波和检测流程图
具体实施方式
结合图1,本发明的电路结构示意图,对本发明的电路结构进行说明。
I2C总线信号(101)符合标准的I2C总线协议,与主机的接口直接相连。
毛刺滤除电路(108),包括I2C_SDA下降沿检测寄存器(102)、I2C_SDA上升沿检测寄存器(103)和I2C_SCL下降沿检测寄存器(104),,分别检测I2C_SDA的上升沿、I2C_SDA下降沿和I2C_SCL的下降沿。
上述于I2C_SDA下降沿检测寄存器(102)的输出端,分别连接I2C_SCL下降沿检测寄存器(104)的复位端和I2C_SDA的上升沿检测寄存器(103)的复位端。
I2C_SDA的上升沿检测寄存器(103)的输出,经过一个反相器后分别连接I2C_SCL下降沿检测寄存器(104)的复位端和I2C_SDA下降沿检测寄存器(102)的。
I2C_SCL的下降沿检测寄存器(103)的输出,经过一个反相器后,连接I2C_SDA上升沿检测寄存器(103)的复位端,即当I2C_SCL出现下降沿后,是一个符合I2C起始位的时序,不需要再检测I2C_SDA的上升沿。将该寄存器复位,避免在后续通信过程中影响正常电路工作。
当I2C_SCL和I2C_SDA的时序符合了I2C的起始位时序,I2C_SCL下降沿检测寄存器(104)的输出会控制系统时钟开启电路(106),将低功耗模式下关闭的时钟开启。
I2C接口模块负责接收主机发过来的数据,进行地址是否匹配的判断。
计数器(105)在系统时钟开启后对I2C_SCL的高电平进行计数,当计数值超过设置值后,认为此时总线上没有通信,会将毛刺滤除电路复位,关闭系统时钟,系统恢复到低功耗模式。
结合图2本发明的毛刺滤波和检测流程图,对本发明的具体实施方式进行说明。
系统处在低功耗模式,且系统所有的时钟关闭,在I2C_SCL=1的条件下,I2C_SDA产生下降沿。
在I2C_SCL=1时,如果I2C_SDA变高,则表示上一步骤中的下降沿是一个毛刺,则复位边沿检测D触发器,系统恢复到低功耗模式。
在I2C_SDA=0时,如果I2C_SCL产生下降沿,这是I2C协议规定的起始位,开启系统时钟,同时将I2C_SCL总线强制拉低,等待系统时钟开启。
系统时钟开启,释放I2C_SCL,主机可以发送下一个数据。
同时启动计数器和I2C接口模块的地址匹配判断机制。
如果在I2C地址匹配结束之前,计数器计数到了设置值,表示I2C_SCL维持高电平的时间超过了设置值,是由于I2C_SDA和I2C_SCL同时产生毛刺造成的,需要关闭系统时钟,复位计数器,SOC系统恢复到低功耗模式。
如果I2C接口模块返回了地址匹配正确,则复位计数器电路,复位I2C唤醒检测电路,SOC系统执行唤醒流程。
如果I2C接口模块返回了地址匹配错误,则复位计数器电路,关闭系统时钟,保持低功耗模式。

Claims (5)

1.一种防止I2C接口错误唤醒SOC系统的电路结构,其特征在于,该电路结构包括I2C总线信号(101)、毛刺滤除电路(108)、计数器(105)、系统时钟开启电路(106)、I2C接口模块(107):
I2C总线信号(101):来自主机,发送给毛刺滤除电路(108);
毛刺滤除电路(108):将I2C总线信号(101)的毛刺进行滤除,将正确的唤醒信号送给计数器(105)和系统时钟开启电路(106);
计数器(105):接收到来自毛刺滤除电路(108)的信号后,开始计数,当到达设置的计数值时将结果反馈给毛刺滤除电路(108);
系统时钟开启电路(106):当接收到来自毛刺滤除电路(108)的信号后,开启系统时钟,给I2C接口模块(107)提供时钟;
I2C接口模块(107):接收主机发送的I2C总线信号,进行地址匹配判断,如果不匹配将结果反馈给毛刺滤除电路;所述的毛刺滤除电路(108)包括I2C_SDA下降沿检测寄存器(102)、I2C_SDA上升沿检测寄存器(103)和I2C_SCL下降沿检测寄存器(104),并且上述三个寄存器有确定的先后连接关系;
所述I2C_SDA下降沿检测寄存器(102)的输出端,分别连接I2C_SCL下降沿检测寄存器(104)的复位端和I2C_SDA的上升沿检测寄存器(103)的复位端;I2C_SDA的上升沿检测寄存器(103)的输出,经过一个反相器后分别连接I2C_SCL下降沿检测寄存器(104)的复位端和I2C_SDA下降沿检测寄存器(102)的复位端;I2C_SCL的下降沿检测寄存器(104)的输出端,经过一个反相器后连接I2C_SDA的上升沿检测寄存器(103)的复位端。
2.根据权利要求1所述的电路结构,其特征在于,计数器(105)用来对I2C_SCL的高电平进行计数,当计数值到达设置值时认为此时没有I2C通信,系统恢复到低功耗状态。
3.根据权利要求1所述的电路结构,其特征在于,所述的系统时钟开启电路(106)将系统时钟开启。
4.根据权利要求1所述的电路结构,其特征在于,所述的I2C接口模块(107)能够接收I2C主机发送的数据,并返回地址匹配检测结果。
5.一种防止I2C接口错误唤醒SOC系统的方法,基于权利要求1所述的电路结构,其特征在于使用组合逻辑对I2C总线的毛刺进行检测,不需要一直工作的时钟;检测I2C_SDA和I2C_SCL总线的上升沿和下降沿,当I2C_SDA和I2C_SCL总线出现不符合I2C协议的时序时,会认为其是毛刺,能够将其滤除,不会将系统错误唤醒,使系统保持在低功耗状态;如果I2C_SCL和I2C_SDA同时产生符合I2C协议的毛刺,才开启系统时钟,并且在I2C接口进行地址匹配检测的过程中,增加一个计数器对I2C_SCL的高电平进行计数,当计数器计数到设置值,地址匹配检测仍然没有结束时,关闭系统时钟,复位计数器,系统恢复到低功耗模式。
CN202011276591.7A 2020-11-16 2020-11-16 一种防止i2c接口错误唤醒soc系统的电路结构及方法 Active CN112540943B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011276591.7A CN112540943B (zh) 2020-11-16 2020-11-16 一种防止i2c接口错误唤醒soc系统的电路结构及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011276591.7A CN112540943B (zh) 2020-11-16 2020-11-16 一种防止i2c接口错误唤醒soc系统的电路结构及方法

Publications (2)

Publication Number Publication Date
CN112540943A CN112540943A (zh) 2021-03-23
CN112540943B true CN112540943B (zh) 2023-10-10

Family

ID=75014082

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011276591.7A Active CN112540943B (zh) 2020-11-16 2020-11-16 一种防止i2c接口错误唤醒soc系统的电路结构及方法

Country Status (1)

Country Link
CN (1) CN112540943B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114328351B (zh) * 2021-12-23 2024-06-11 西安芯海微电子科技有限公司 一种mcu唤醒电路、方法和电子设备
CN115599458B (zh) * 2022-12-09 2023-04-18 北京紫光青藤微系统有限公司 一种基于i2c总线结构的从机启动方法及装置
CN116028414B (zh) * 2023-03-28 2023-06-27 拓尔微电子股份有限公司 功耗控制电路和控制装置
CN117215983B (zh) * 2023-11-09 2024-03-22 辉芒微电子(深圳)股份有限公司 I2c接口规避错误起始和停止条件的电路结构及方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1996022572A1 (de) * 1995-01-21 1996-07-25 Zf Friedrichshafen Ag Fehlererkennung und fehlerbeseitigung bei einem seriellen datenbussystem
CN105426338A (zh) * 2015-10-30 2016-03-23 深圳市芯海科技有限公司 一种i2c唤醒mcu电路及唤醒方法
CN205959200U (zh) * 2016-06-20 2017-02-15 昆山龙腾光电有限公司 用于i2c总线数据传输的锁存电路

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1996022572A1 (de) * 1995-01-21 1996-07-25 Zf Friedrichshafen Ag Fehlererkennung und fehlerbeseitigung bei einem seriellen datenbussystem
CN105426338A (zh) * 2015-10-30 2016-03-23 深圳市芯海科技有限公司 一种i2c唤醒mcu电路及唤醒方法
CN205959200U (zh) * 2016-06-20 2017-02-15 昆山龙腾光电有限公司 用于i2c总线数据传输的锁存电路

Also Published As

Publication number Publication date
CN112540943A (zh) 2021-03-23

Similar Documents

Publication Publication Date Title
CN112540943B (zh) 一种防止i2c接口错误唤醒soc系统的电路结构及方法
CN102023912B (zh) 休眠唤醒测试系统及方法
CN111427831B (zh) 一种基于电源管理总线协议的接口实现方法
CN103412634A (zh) 一种soc芯片的mcu唤醒装置和方法
KR20030075202A (ko) 온 칩 백그라운드 디버그 시스템 및 그 방법을 갖는데이터 처리 시스템
CN110647486B (zh) 一种PCIe链路训练方法、端设备及通讯系统
US20100153589A1 (en) Method and apparatus for detecting electrical idle
TW201702894A (zh) 獨立式通用非同步接收器/傳輸器brk偵測
CN113688086A (zh) 用于局部网络的高速can收发器波特率匹配检测系统
CN101567178B (zh) 利用显示器通用接口实现vga唤醒功能的方法及装置
CN114003541A (zh) 一种通用型iic总线电路及其传输方法
CN100543713C (zh) 防止lpc总线死锁的方法和装置
US11157290B2 (en) Method and circuit for waking up I2C device
CN113836075A (zh) 一种基于fpga平台的spi接口信号消除毛刺的方法
CN114328351B (zh) 一种mcu唤醒电路、方法和电子设备
CN109739328B (zh) 一种m.3ssd的复位电路及方法
CN115904844A (zh) 一种用于打印boot信息的uart仿真模型及其工作方法
US6874047B1 (en) System and method for implementing an SMBus/I2C interface on a network interface card
CN113709010A (zh) 一种不限帧长的Modbus通信协议系统
CN111338450A (zh) 一种芯片复位电路及芯片
CN116860672B (zh) 一种数字处理SMBus通讯系统及方法
CN113094104A (zh) 一种唤醒低功耗电路的检测电路的设计方法
CN103064806B (zh) 一种利用cpld控制dsp实现二次启动的方法
CN212749823U (zh) 一种访问通道硬件切换控制电路
CN117826967B (zh) 唤醒电路

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant