CN111522757A - 一种基于i2c总线的中断读取与清除的控制方法 - Google Patents
一种基于i2c总线的中断读取与清除的控制方法 Download PDFInfo
- Publication number
- CN111522757A CN111522757A CN202010329318.XA CN202010329318A CN111522757A CN 111522757 A CN111522757 A CN 111522757A CN 202010329318 A CN202010329318 A CN 202010329318A CN 111522757 A CN111522757 A CN 111522757A
- Authority
- CN
- China
- Prior art keywords
- interrupt
- register
- bus
- source
- central controller
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/24—Handling requests for interconnection or transfer for access to input/output bus using interrupt
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
- G06F9/3012—Organisation of register space, e.g. banked or distributed register file
- G06F9/30134—Register stacks; shift registers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/24—Interrupt
- G06F2213/2416—Determination of the interrupt source among a plurality of incoming interrupts
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy 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)
- Software Systems (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种基于I2C总线的中断读取与清除的控制方法,包括以下步骤:步骤S101,中央控制器通过I2C总线接口配置设备控制器和寄存器,其中,寄存器包括:中断源状态寄存器,用于发出模块的中断请求;中断状态寄存器,用于获得模块的工作状态、中断标志和告警标志;步骤S103,设备控制器对中央控制器发送设备中断信号。通过对中央处理器I2C总线接口读取到的中断状态寄存器位bit清零,对发生中断而没有被中央处理器通过I2C总线接口读取到的中断状态寄存器位bit不进行清零的控制,实现了中央处理器不会漏读设备的中断状态寄存器以及设备中断源的中断不会被释放直至中央处理器读取到了这个中断,确保了系统工作的可靠性和安全性,以及和对设备的保护。
Description
技术领域
本发明涉及I2C总线技术领域,具体来说,涉及一种基于I2C总线的中断读取与清除的控制方法。
背景技术
I2C总线(INTER IC BUS)是一个简单双向两线总线,用于连接微控制器及其外围器件。I2C总线最主要的优点是其简单性和有效性,所有符合I2C总线的器件都具有一个片上接口,使器件之间直接通过I2C总线通讯,因此I2C总线占用的空间非常小,减少了电路板的空间和芯片管脚的数量,降低了互联成本。I2C总线的另一个优点是,它支持多主控(multimastering),其中任何能够进行发送和接收的器件都可以成为主总线。
在工业和电子控制系统中,I2C总线是用于中央处理器和其它设备之间的通讯接口,如果有设备异常,设备就会给中央处理器发出中断信号,中央处理器接收到设备中断信号后通过I2C总线接口读取设备的中断信息寄存器,如果发生中断的设备中断源对应的中断寄存器状态为高电平,表示设备中对应的中断源发生了异常,需要中央处理器执行合适的操作来保护设备能维持正常工作,避免对设备造成物理上的损坏。
而目前在现有的设计中,中央处理器对设备中断寄存的读取清零会有中断遗漏的问题发生。设备中断遗漏的问题直接影响了系统工作性和对设备的保护,严重时可能会导致设备的物理损坏。
针对相关技术中的问题,目前尚未提出有效的解决方案。
发明内容
针对相关技术中的问题,本发明提出一种基于I2C总线的中断读取与清除的控制方法,以克服现有相关技术所存在的上述技术问题。
本发明的技术方案是这样实现的:
一种基于I2C总线的中断读取与清除的控制方法,包括以下步骤:
步骤S101,中央控制器通过I2C总线接口配置设备控制器和寄存器,其中,寄存器包括:
中断源状态寄存器,用于发出模块的中断请求;
中断状态寄存器,用于获得模块的工作状态、中断标志和告警标志;
步骤S103,设备控制器对中央控制器发送设备中断信号,中央控制器接收到中断信号后通过I2C总线接口读取设备的中断状态寄存器,确定中断信号的中断源;
步骤S105,设备控制器接收到中央控制器已经读取了设备的中断状态寄存器信号后,将已被中央控制器读取的中断状态寄存器位清零;
步骤S107,中央控制器通过I2C总线接口进一步读取设备的中断源状态寄存器来检查发出中断的中断源。
进一步的,步骤S101,进一步包括:
设备系统时钟,用于选择时钟频率。
进一步的,步骤S101中,其中,
中断源状态寄存器为8比特位,寄存器地址十六进制数表示为0x00,该寄存器的每一个比特位为一个中断源;
中断状态寄存器为8比特位,寄存器地址十六进制数表示为0x01,该寄存器的每一个比特位为一个中断。
本发明的有益效果:
本发明通过对中央处理器I2C总线接口读取到的中断状态寄存器位bit清零,对发生中断而没有被中央处理器通过I2C总线接口读取到的中断状态寄存器位bit不进行清零的控制,实现了中央处理器不会漏读设备的中断状态寄存器以及设备中断源的中断不会被释放直至中央处理器读取到了这个中断,确保了系统工作的可靠性和安全性,以及和对设备的保护。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据本发明实施例的一种基于I2C总线的中断读取与清除的控制方法的流程示意图;
图2是根据本发明实施例的一种基于I2C总线的中断读取与清除的控制方法的原理框图示意图;
图3是根据本发明实施例的一种基于I2C总线的中断读取与清除的控制方法的设备中断源例图;
图4是根据本发明实施例的一种基于I2C总线的中断读取与清除的控制方法的设备中断源状态寄存器时序图;
图5是根据本发明实施例的一种基于I2C总线的中断读取与清除的控制方法的设备中断状态寄存器发生时序图;
图6是根据本发明实施例的一种基于I2C总线的中断读取与清除的控制方法的设备中断状态寄存器清除时序图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员所获得的所有其他实施例,都属于本发明保护的范围。
根据本发明的实施例,提供了一种基于I2C总线的中断读取与清除的控制方法。
如图1-2所示,根据本发明实施例的基于I2C总线的中断读取与清除的控制方法,包括以下步骤:
步骤S101,中央控制器通过I2C总线接口配置设备控制器和寄存器,其中,寄存器包括:
中断源状态寄存器,用于发出模块的中断请求;
中断状态寄存器,用于获得模块的工作状态、中断标志和告警标志;
步骤S103,设备控制器对中央控制器发送设备中断信号,中央控制器接收到中断信号后通过I2C总线接口读取设备的中断状态寄存器,确定中断信号的中断源;
步骤S105,设备控制器接收到中央控制器已经读取了设备的中断状态寄存器信号后,将已被中央控制器读取的中断状态寄存器位清零;
步骤S107,中央控制器通过I2C总线接口进一步读取设备的中断源状态寄存器来检查发出中断的中断源。
其中,步骤S101,进一步包括:
设备系统时钟,用于选择时钟频率。
另外,步骤S101中,其中,
中断源状态寄存器为8比特位,寄存器地址十六进制数表示为0x00,该寄存器的每一个比特位为一个中断源;
中断状态寄存器为8比特位,寄存器地址十六进制数表示为0x01,该寄存器的每一个比特位为一个中断。
借助于上述方案,通过对中央处理器I2C总线接口读取到的中断状态寄存器位bit清零,对发生中断而没有被中央处理器通过I2C总线接口读取到的中断状态寄存器位bit不进行清零的控制,实现了中央处理器不会漏读设备的中断状态寄存器以及设备中断源的中断不会被释放直至中央处理器读取到了这个中断,确保了系统工作的可靠性和安全性,以及和对设备的保护。
另外,在一个实施例中,如图3所示,以设备温度过温信号来表示中断源。设备温度过温会对设备造成损坏,所以在设备中用模拟的温度监测器来实时监测设备的工作温度,不同的设备的过温阈值不一样,一般的过温阈值规定为125摄氏度。如果设备中温度监测器监测到的温度高于或者等于设备过温阈值,设备温度过温中断源就会输出高电平,如果设备中温度监测器监测到的温度低于了设备过温阈值,设备温度过温中断源就会输出低电平。设备温度过温中断源输出高电平就表示设备有异常发生,需要向中央处理器发起中断。
如图3-图4所示,中断源状态寄存器的值是反应中断源的状态。本时序图中以图3产生的设备温度过温中断源信号为输入,中断源定义在中断源寄存器的比特位0,所有中断源均定义为高电平有效,此例图中除了过温中断源发生高电平,其它中断源均未发生高电平。因为设备中的温度比较器输出信号会有信号抖动,为了得到准确的中断源状态,在中断源状态寄存器中的值是经过了系统时钟域去抖动处理的同步中断源信号。
如图4-图5所示,设备中断状态寄存器的值是表示设备中断源对中央控制器发送设备中断信号来通知系统设备由异常情况发生,中央控制器接收到设备的中断信号后会执行对应的操作来保证系统的正常运行。本时序图中以图4产生的设备温度过温中断源信号为输入,过温中断定义在中断状态寄存器的比特位0,所有中断状态均定义为高电平有效,此例图中除了过温中断发生高电平,其它中断均未发生高电平。过温中断状态寄存器在设备上电后的初始状态为低电平,在设备系统时钟域检测到同步中断源产生的时刻,过温中断状态寄存器的状态从低电平跳变为高电平,同时设备向中央处理器发出低电平有效中断信号,设备中断状态寄存器的值也从十六进制数0x00变为十六进制数0x01。只有当设备中断状态寄存器的值为十六进制0x00的时候,设备中断信号才会回到无效高电平状态。只有在设备系统时钟域检测到中央处理器已经通过I2C总线读取到了中断状态寄存器的值以后,设备中断状态寄存器的值才会被清除位十六进制数0x00。
如图5-图6所示,在设备中断状态寄存器的值为非零十六进制0x01时,中央控制器接收到设备的中断信号后将通过I2C总线读取设备中断状态寄存器:寄存器地址为十六进制0x01,寄存器的值为十六进制0x01。在设备系统时钟域检测到中央处理器已经通过I2C总线读取到了中断状态寄存器的值以后,设备中断状态寄存器的值将被清除位十六进制0x00。本例图中中断源从低电平跳变为高电平产生中断,实际系统应用中也可能会检查中断源从高电平跳变为低电平产生中断。在设备应答系统读命令的同一个I2C时钟周期锁存寄存器命令用来判断系统是否在读取中断状态寄存器,在设备应答系统读命令的下一个I2C时钟周期将设备系统时钟域内的寄存器的值进行锁存:如果锁存的寄存器命令是设备中断状态寄存器,这个值就是中断状态寄存器的值。只有中断状态寄存器的值被读取以后,才能清除中断,确保设备没有错误清除中断导致系统漏读了中断。本例图中锁存的寄存器地址为设备中断状态寄存器其地址0x01,锁存下来的寄存器数据为0x01:表示中断状态寄存器收到了中央处理器的读命令,读取到的数据为0x01,只读取到比特位0的中断,设备系统时钟域就只清除已读取到的比特位0的中断状态。如果设备系统时钟域在中央处理器读取的同时产生了其它中断源的中断,但是没有被读取到,设备系统时钟域不会清除这个没有被读取到的中断。
综上所述,借助于本发明的上述技术方案,通过对中央处理器I2C总线接口读取到的中断状态寄存器位bit清零,对发生中断而没有被中央处理器通过I2C总线接口读取到的中断状态寄存器位bit不进行清零的控制,实现了中央处理器不会漏读设备的中断状态寄存器以及设备中断源的中断不会被释放直至中央处理器读取到了这个中断,确保了系统工作的可靠性和安全性,以及和对设备的保护。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (3)
1.一种基于I2C总线的中断读取与清除的控制方法,其特征在于,包括以下步骤:
步骤S101,中央控制器通过I2C总线接口配置设备控制器和寄存器,其中,寄存器包括:
中断源状态寄存器,用于发出模块的中断请求;
中断状态寄存器,用于获得模块的工作状态、中断标志和告警标志;
步骤S103,设备控制器对中央控制器发送设备中断信号,中央控制器接收到中断信号后通过I2C总线接口读取设备的中断状态寄存器,确定中断信号的中断源;
步骤S105,设备控制器接收到中央控制器已经读取了设备的中断状态寄存器信号后,将已被中央控制器读取的中断状态寄存器位清零;
步骤S107,中央控制器通过I2C总线接口进一步读取设备的中断源状态寄存器来检查发出中断的中断源。
2.根据权利要求1所述的基于I2C总线的中断读取与清除的控制方法,其特征在于,步骤S101,进一步包括:
设备系统时钟,用于选择时钟频率。
3.根据权利要求1所述的基于I2C总线的中断读取与清除的控制方法,其特征在于,步骤S101中,其中,
中断源状态寄存器为8比特位,寄存器地址十六进制数表示为0x00,该寄存器的每一个比特位为一个中断源;
中断状态寄存器为8比特位,寄存器地址十六进制数表示为0x01,该寄存器的每一个比特位为一个中断。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010329318.XA CN111522757B (zh) | 2020-04-23 | 2020-04-23 | 一种基于i2c总线的中断读取与清除的控制方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010329318.XA CN111522757B (zh) | 2020-04-23 | 2020-04-23 | 一种基于i2c总线的中断读取与清除的控制方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111522757A true CN111522757A (zh) | 2020-08-11 |
CN111522757B CN111522757B (zh) | 2023-08-22 |
Family
ID=71903785
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010329318.XA Active CN111522757B (zh) | 2020-04-23 | 2020-04-23 | 一种基于i2c总线的中断读取与清除的控制方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111522757B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113641617A (zh) * | 2021-08-06 | 2021-11-12 | 云尖信息技术有限公司 | 一种基于COMe平台通用串行中断模块实现的方法 |
CN114968365A (zh) * | 2022-07-27 | 2022-08-30 | 广州智慧城市发展研究院 | 适配器寄存器单元及包含其的主机适配器电路 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6205509B1 (en) * | 1999-07-15 | 2001-03-20 | 3Com Corporation | Method for improving interrupt response time |
US6662256B1 (en) * | 1999-04-29 | 2003-12-09 | Canon Kabushiki Kaisha | Sequential bus architecture |
CN101699417A (zh) * | 2009-10-16 | 2010-04-28 | 华亚微电子(上海)有限公司 | 中断方法 |
CN105426338A (zh) * | 2015-10-30 | 2016-03-23 | 深圳市芯海科技有限公司 | 一种i2c唤醒mcu电路及唤醒方法 |
CN106372026A (zh) * | 2015-07-22 | 2017-02-01 | 深圳市中兴微电子技术有限公司 | 一种链路检测方法和接收设备 |
US20170139852A1 (en) * | 2014-05-22 | 2017-05-18 | Sanechips Technology Co., Ltd. | Interrupt Processing Method and Interrupt Controller |
CN109062624A (zh) * | 2018-08-22 | 2018-12-21 | 上海稊米汽车科技有限公司 | 一种用于汽车电子控制单元中断唤醒的处理方法 |
CN110928816A (zh) * | 2019-10-28 | 2020-03-27 | 北京时代民芯科技有限公司 | 一种片上可配置中断控制系统电路 |
-
2020
- 2020-04-23 CN CN202010329318.XA patent/CN111522757B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6662256B1 (en) * | 1999-04-29 | 2003-12-09 | Canon Kabushiki Kaisha | Sequential bus architecture |
US6205509B1 (en) * | 1999-07-15 | 2001-03-20 | 3Com Corporation | Method for improving interrupt response time |
CN101699417A (zh) * | 2009-10-16 | 2010-04-28 | 华亚微电子(上海)有限公司 | 中断方法 |
US20170139852A1 (en) * | 2014-05-22 | 2017-05-18 | Sanechips Technology Co., Ltd. | Interrupt Processing Method and Interrupt Controller |
CN106372026A (zh) * | 2015-07-22 | 2017-02-01 | 深圳市中兴微电子技术有限公司 | 一种链路检测方法和接收设备 |
CN105426338A (zh) * | 2015-10-30 | 2016-03-23 | 深圳市芯海科技有限公司 | 一种i2c唤醒mcu电路及唤醒方法 |
CN109062624A (zh) * | 2018-08-22 | 2018-12-21 | 上海稊米汽车科技有限公司 | 一种用于汽车电子控制单元中断唤醒的处理方法 |
CN110928816A (zh) * | 2019-10-28 | 2020-03-27 | 北京时代民芯科技有限公司 | 一种片上可配置中断控制系统电路 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113641617A (zh) * | 2021-08-06 | 2021-11-12 | 云尖信息技术有限公司 | 一种基于COMe平台通用串行中断模块实现的方法 |
CN114968365A (zh) * | 2022-07-27 | 2022-08-30 | 广州智慧城市发展研究院 | 适配器寄存器单元及包含其的主机适配器电路 |
Also Published As
Publication number | Publication date |
---|---|
CN111522757B (zh) | 2023-08-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7395362B2 (en) | Method for a slave device to convey an interrupt and interrupt source information to a master device | |
US8898358B2 (en) | Multi-protocol communication on an I2C bus | |
US6874052B1 (en) | Expansion bridge apparatus and method for an I2C bus | |
US9697167B2 (en) | Implementing health check for optical cable attached PCIE enclosure | |
US7543191B2 (en) | Method and apparatus for isolating bus failure | |
US7917664B2 (en) | Storage apparatus, storage apparatus control method, and recording medium of storage apparatus control program | |
CN111427831B (zh) | 一种基于电源管理总线协议的接口实现方法 | |
US20150046746A1 (en) | Method for ensuring remediation of hung multiplexer bus channels | |
CN104639380A (zh) | 服务器监控方法 | |
CN106610712B (zh) | 基板管理控制器复位系统及方法 | |
CN100474258C (zh) | 计算机可读介质、错误恢复方法和装置、计算机系统 | |
CN110908841A (zh) | 一种i2c通信异常恢复方法及装置 | |
JP2011043957A (ja) | 障害監視回路、半導体集積回路及び故障個所特定方法 | |
CN111522757A (zh) | 一种基于i2c总线的中断读取与清除的控制方法 | |
US7774690B2 (en) | Apparatus and method for detecting data error | |
CN110377135B (zh) | 一种psu的管理方法、系统及装置 | |
CN104914784A (zh) | 数值控制装置 | |
JP2009217435A (ja) | 制御方法、情報処理装置及びストレージシステム | |
CN112083710B (zh) | 一种车载网络can总线节点监测系统及方法 | |
KR100777568B1 (ko) | 임베디드 시스템의 고속 실시간 모니터링 방법 | |
RU2705421C1 (ru) | Способ передачи данных по шине, система связи для осуществления данного способа и устройство автоматической защиты для предотвращения аварийной ситуации на объекте управления | |
JP2018136882A (ja) | 情報処理装置、情報処理システム及び情報処理装置制御方法 | |
CN107783862B (zh) | 一种基于pca9555的8路服务器主从bmc复位控制方法 | |
CN112445744A (zh) | I2c通信 | |
TWI830573B (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 |