CN107168897A - 一种实现i2c重复读写控制的装置 - Google Patents
一种实现i2c重复读写控制的装置 Download PDFInfo
- Publication number
- CN107168897A CN107168897A CN201710254649.XA CN201710254649A CN107168897A CN 107168897 A CN107168897 A CN 107168897A CN 201710254649 A CN201710254649 A CN 201710254649A CN 107168897 A CN107168897 A CN 107168897A
- Authority
- CN
- China
- Prior art keywords
- register
- read
- controllers
- master controller
- 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
- 230000003252 repetitive effect Effects 0.000 title claims abstract description 39
- 230000005540 biological transmission Effects 0.000 claims description 6
- 230000000694 effects Effects 0.000 claims 1
- 239000002699 waste material Substances 0.000 abstract description 2
- 238000001514 detection method Methods 0.000 description 4
- 238000000034 method Methods 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000007274 generation of a signal involved in cell-cell signaling Effects 0.000 description 1
- 230000007257 malfunction Effects 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
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/10—Program control for peripheral devices
- G06F13/12—Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
- G06F13/124—Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine
- G06F13/126—Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine and has means for transferring I/O instructions and statuses between control unit and main processor
-
- 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/0016—Inter-integrated circuit (I2C)
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种实现I2C重复读写控制的装置,包括主控制器、重复读写控制器、I2C控制器,该重复读写控制器连接在主控制器与I2C控制器之间;主控制器通过重复读写控制器向I2C控制器发送读写命令,I2C控制器直接关联外部I2C设备以执行所述读写命令;I2C控制器根据执行结果向重复读写控制器反馈完成状态信号、错误状态信号以及所采集的数据;重复读写控制器对I2C控制器反馈的信号进行识别且仅仅反馈有效信号给主控制器。本发明通过在主控制器和I2C控制器之间增加了重复读写控制器,来代替主控制器等待和处理对I2C控制器的读写命令,仅仅反馈有效信号给主控制器,即不会浪费主控制器的处理时间。
Description
技术领域
本发明涉及计算机通信领域,尤其是一种实现I2C重复读写控制的装置。
背景技术
在I2C(inter-integrated circuit内部集成电路,一种标准接口电路,是由PHILIPS公司提出发明的)的某些应用场合比如面板控制(包括LED显示和按键扫描),需要主控制器按照一定间隔读取I2C面板的按键输入值,判断是否有按键输入,由此必然大量耗费主控制器的处理时间。
鉴于上述技术问题,现有技术实现了“一种实现自动读写内部集成电路设备的装置和方法”(公开号CN1558332),其公布了一种用硬件实现而非CPU模拟的方式读写I2C设备。该现有技术如果需要按照一定间隔重复读写I2C设备通常做法如下:主控制器每隔一定时间向I2C控制器发送读写命令,等待I2C控制器返回操作完成状态,如果I2C控制器返回出错状态,则执行错误处理。如果该操作是读操作,主控制器还需判断I2C控制器返回的数据是否有效以便触发下一个事务处理。由于I2C设备为慢速设备,此方法占用主控制器大量处理时间,间隔越小,则占用的处理时间越多。
发明内容
为解决上述技术问题,本发明的目的是提供占有CPU时间极少的一种实现I2C重复读写控制装置。
本发明采用的技术方案是:
一种实现I2C重复读写控制的装置,包括主控制器、重复读写控制器、I2C控制器,该重复读写控制器连接在主控制器与I2C控制器之间;
主控制器通过重复读写控制器向I2C控制器发送读写命令,I2C控制器直接关联外部I2C设备以执行所述读写命令;
I2C控制器根据执行结果向重复读写控制器反馈完成状态信号、错误状态信号以及所采集的数据;
重复读写控制器对I2C控制器反馈的信号进行识别且仅仅反馈有效信号给主控制器。
其中,所述重复读写控制器包括寄存器模块以及与该寄存器模块电连接的中断控制器、数据比较器、启动次数计数器、定时器、启动信号产生器、有效状态计数器;
该寄存器模块通过内部总线与主控制器电连接以用于接收主控制器发来的配置寄存器以及返回寄存器内容给主控制器;
启动次数计数器、定时器、启动信号产生器依次连接,中断控制器、数据比较器、启动信号产生器、有效状态计数器、寄存器模块皆与I2C控制器连接,中断控制器输出端用于输出中断信号给主控制器。
进一步,所述寄存器模块包括启动次数寄存器、启动寄存器、间隔寄存器;
该启动次数寄存器与启动次数计数器连接,启动次数寄存器用于设置发送次数,每发送成功一次启动次数计数器会自动加一,如果达到启动次数寄存器设置的次数,则停止发送启动信号;如果计数寄存器为0,则一直循环发送;
该启动寄存器分别与启动次数计数器、定时器连接,启动寄存器用于控制产生启动信号;间隔寄存器与定时器连接以用于设置START信号的发送周期,定时器根据此间隔寄存器配置产生周期性的使能信号给启动信号产生器。
进一步,所述寄存器模块包括中断状态寄存器,中断状态寄存器分别与中断控制器、有效状态计数器连接,该中断状态寄存器包含三个中断信息:分别是读到有效状态,操作出错以及计数次数满。
进一步,所述寄存器模块包括读写寄存器,读写寄存器分别与I2C控制器、有效状态计数器连接,用于指示当前操作是写操作还是读操作。
进一步,所述寄存器模块包括期望数据寄存器,期望数据寄存器与所述数据比较器连接,用于比较I2C控制器读回数据,如果比较成功,由中断控制器产生中断信号给主控制器。
进一步,所述寄存器模块包括读回数据寄存器,读回数据寄存器与I2C控制器连接,用于主控制器未及时响应中断的情况下可以存储I2C设备的连续有效状态。
进一步,所述寄存器模块包括有效状态数寄存器,该有效状态数寄存器与有效状态计数器连接,以用于记录有效状态计数器所存储的有效状态数目。
本发明的有益效果:
本发明通过在主控制器和I2C控制器之间增加了一个重复读写控制器,来代替主控制器等待和处理对I2C控制器的读写命令,仅仅反馈有效信号给主控制器,即不会浪费主控制器的处理时间,大大解放主控制器的负荷。
附图说明
下面结合附图对本发明的具体实施方式做进一步的说明。
图1是本发明的原理框图;
图2是重复读写控制器的内部结构图;
图3是本发明的流程图。
具体实施方式
如图1所示,为本发明的一种实现I2C重复读写控制的装置,包括主控制器、重复读写控制器、I2C控制器,该重复读写控制器连接在主控制器与I2C控制器之间。
本发明的工作原理为:主控制器通过重复读写控制器向I2C控制器发送读写命令,I2C控制器直接关联外部I2C设备以执行所述读写命令;
I2C控制器根据执行结果向重复读写控制器反馈完成状态信号、错误状态信号以及所采集的数据;
重复读写控制器对I2C控制器反馈的信号进行识别且仅仅反馈有效信号给主控制器。
作为本发明的重要发明点,在于重复读写控制器的结构设计,重复读写控制器包括寄存器模块以及与该寄存器模块电连接的中断控制器、数据比较器、启动次数计数器、定时器、启动信号产生器、有效状态计数器;如图2所示。
该寄存器模块通过内部总线与主控制器电连接以用于接收主控制器发来的配置寄存器以及返回寄存器内容给主控制器;
启动次数计数器、定时器、启动信号产生器依次连接,中断控制器、数据比较器、启动信号产生器、有效状态计数器、寄存器模块皆与I2C控制器连接,中断控制器输出端用于输出中断信号给主控制器。
作为本技术方案的进一步细化,所述寄存器模块包括启动次数寄存器、启动寄存器、间隔寄存器;
该启动次数寄存器与启动次数计数器连接,启动次数寄存器用于设置发送次数,主控制器只需设置一次即可。每发送成功一次启动次数计数器会自动加一,如果达到启动次数寄存器设置的次数,则停止发送启动信号;如果计数寄存器为0,则一直循环发送;
该启动寄存器分别与启动次数计数器、定时器连接,启动寄存器用于控制产生启动信号;间隔寄存器与定时器连接以用于设置START信号的发送周期,定时器根据此间隔寄存器配置产生周期性的使能信号给启动信号产生器。
作为本技术方案的进一步完善,所述寄存器模块包括中断状态寄存器,中断状态寄存器分别与中断控制器、有效状态计数器连接,该中断状态寄存器包含三个中断信息:分别是读到有效状态,操作出错以及计数次数满。
作为本技术方案的进一步完善,所述寄存器模块包括读写寄存器,读写寄存器分别与I2C控制器、有效状态计数器连接,用于指示当前操作是写操作还是读操作。
作为本技术方案的进一步完善,所述寄存器模块包括期望数据寄存器,期望数据寄存器与所述数据比较器连接,用于比较I2C控制器读回数据,如果比较成功,由中断控制器产生中断信号给主控制器。
作为本技术方案的进一步完善,所述寄存器模块包括读回数据寄存器,读回数据寄存器个数为N,N为大于等于1的正整数,N的大小由系统设计中根据需要自行定义。读回数据寄存器与I2C控制器连接,用于主控制器未及时响应中断的情况下可以存储I2C设备的连续有效状态。
作为本技术方案的进一步完善,所述寄存器模块包括有效状态数寄存器,该有效状态数寄存器与有效状态计数器连接,以用于记录有效状态计数器所存储的有效状态数目。
如图3所示,本发明的工作流程为,上电初始化,先配置I2C控制器,再配置重复读写控制器,并设置好启动寄存器,中断控制器检测I2C控制器是否有中断信号产生,没有中断信号产生就循环检测,如果有中断信号产生则进一步判断读操作是否正确完成,没有完成则判定出错,若读操作正确完成则进一步对读取的数据与期望数据寄存器存储的数据进行比较,比较不成功就返回检测前述中断信号,比较成功则读取该有效状态,并判断有效状态是否已读完,未读完就继续读取有效状态,若已读完则执行下一个事务,并返回检测前述中断信号。
以上所述仅为本发明的优先实施方式,本发明并不限定于上述实施方式,只要以基本相同手段实现本发明目的的技术方案都属于本发明的保护范围之内。
Claims (8)
1.一种实现I2C重复读写控制的装置,其特征在于:包括主控制器、重复读写控制器、I2C控制器,该重复读写控制器连接在主控制器与I2C控制器之间;
主控制器通过重复读写控制器向I2C控制器发送读写命令,I2C控制器直接关联外部I2C设备以执行所述读写命令;
I2C控制器根据执行结果向重复读写控制器反馈完成状态信号、错误状态信号以及所采集的数据;
重复读写控制器对I2C控制器反馈的信号进行识别且仅仅反馈有效信号给主控制器。
2.根据权利要求1所述的一种实现I2C重复读写控制的装置,其特征在于: 所述重复读写控制器包括寄存器模块以及与该寄存器模块电连接的中断控制器、数据比较器、启动次数计数器、定时器、启动信号产生器、有效状态计数器;
该寄存器模块通过内部总线与主控制器电连接以用于接收主控制器发来的配置寄存器以及返回寄存器内容给主控制器;
启动次数计数器、定时器、启动信号产生器依次连接,中断控制器、数据比较器、启动信号产生器、有效状态计数器、寄存器模块皆与I2C控制器连接,中断控制器输出端用于输出中断信号给主控制器。
3.根据权利要求2所述的一种实现I2C重复读写控制的装置,其特征在于: 所述寄存器模块包括启动次数寄存器、启动寄存器、间隔寄存器;
该启动次数寄存器与启动次数计数器连接,启动次数寄存器用于设置发送次数,每发送成功一次启动次数计数器会自动加一,如果达到启动次数寄存器设置的次数,则停止发送启动信号;如果计数寄存器为0,则一直循环发送;
该启动寄存器分别与启动次数计数器、定时器连接,启动寄存器用于控制产生启动信号;间隔寄存器与定时器连接以用于设置START信号的发送周期,定时器根据此间隔寄存器配置产生周期性的使能信号给启动信号产生器。
4.根据权利要求2所述的一种实现I2C重复读写控制的装置,其特征在于: 所述寄存器模块包括中断状态寄存器,中断状态寄存器分别与中断控制器、有效状态计数器连接,该中断状态寄存器包含三个中断信息:分别是读到有效状态,操作出错以及计数次数满。
5.根据权利要求2所述的一种实现I2C重复读写控制的装置,其特征在于: 所述寄存器模块包括读写寄存器,读写寄存器分别与I2C控制器、有效状态计数器连接,用于指示当前操作是写操作还是读操作。
6.根据权利要求2所述的一种实现I2C重复读写控制的装置,其特征在于: 所述寄存器模块包括期望数据寄存器,期望数据寄存器与所述数据比较器连接,用于比较I2C控制器读回数据,如果比较成功,由中断控制器产生中断信号给主控制器。
7.根据权利要求2所述的一种实现I2C重复读写控制的装置,其特征在于: 所述寄存器模块包括读回数据寄存器,读回数据寄存器与I2C控制器连接,用于主控制器未及时响应中断的情况下存储I2C设备的连续有效状态。
8.根据权利要求2所述的一种实现I2C重复读写控制的装置,其特征在于: 所述寄存器模块包括有效状态数寄存器,该有效状态数寄存器与有效状态计数器连接,以用于记录有效状态计数器所存储的有效状态数目。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710254649.XA CN107168897B (zh) | 2017-04-18 | 2017-04-18 | 一种实现i2c重复读写控制的装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710254649.XA CN107168897B (zh) | 2017-04-18 | 2017-04-18 | 一种实现i2c重复读写控制的装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107168897A true CN107168897A (zh) | 2017-09-15 |
CN107168897B CN107168897B (zh) | 2019-12-13 |
Family
ID=59812275
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710254649.XA Expired - Fee Related CN107168897B (zh) | 2017-04-18 | 2017-04-18 | 一种实现i2c重复读写控制的装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107168897B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108829626A (zh) * | 2018-04-26 | 2018-11-16 | 常州新途软件有限公司 | 一种用于汽车控制系统的通信方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1558332A (zh) * | 2004-01-18 | 2004-12-29 | 中兴通讯股份有限公司 | 一种实现自动读写内部集成电路设备的装置和方法 |
CN101140556A (zh) * | 2007-09-11 | 2008-03-12 | 中兴通讯股份有限公司 | 用可编程器件实现访问多个i2c从器件的方法及装置 |
US20080177918A1 (en) * | 2007-01-23 | 2008-07-24 | Samsung Electronics Co., Ltd. | Method and apparatus for controlling timing of state transition of serial data line in 12c controller |
CN104050116A (zh) * | 2012-12-27 | 2014-09-17 | 重庆重邮信科通信技术有限公司 | 集成电路总线控制器及集成电路总线操作的处理方法 |
-
2017
- 2017-04-18 CN CN201710254649.XA patent/CN107168897B/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1558332A (zh) * | 2004-01-18 | 2004-12-29 | 中兴通讯股份有限公司 | 一种实现自动读写内部集成电路设备的装置和方法 |
US20080177918A1 (en) * | 2007-01-23 | 2008-07-24 | Samsung Electronics Co., Ltd. | Method and apparatus for controlling timing of state transition of serial data line in 12c controller |
CN101140556A (zh) * | 2007-09-11 | 2008-03-12 | 中兴通讯股份有限公司 | 用可编程器件实现访问多个i2c从器件的方法及装置 |
CN104050116A (zh) * | 2012-12-27 | 2014-09-17 | 重庆重邮信科通信技术有限公司 | 集成电路总线控制器及集成电路总线操作的处理方法 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108829626A (zh) * | 2018-04-26 | 2018-11-16 | 常州新途软件有限公司 | 一种用于汽车控制系统的通信方法 |
Also Published As
Publication number | Publication date |
---|---|
CN107168897B (zh) | 2019-12-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102387074B (zh) | 业务线卡在位检测及复位方法及一种主控制卡和业务线卡 | |
CN103645975B (zh) | 一种异常恢复的方法及串行总线传输装置 | |
CN101937222A (zh) | 板级测试系统 | |
CN103500154A (zh) | 一种串行总线接口芯片、串行总线传输系统及方法 | |
CN103631360A (zh) | 一种支持睡眠模式的芯片及方法 | |
CN102867158B (zh) | 一种切换内存的方法、装置及具有双系统的终端 | |
CN106649021A (zh) | PCIe从设备测试装置 | |
CN111104272A (zh) | 一种基于rx和tx的can总线控制器测试方法 | |
CN102253910A (zh) | 一种i2c传输方法及其装置 | |
CN106610885A (zh) | 服务器故障检测系统及方法 | |
CN102681650B (zh) | 一种电源控制节能方法及其对应的存储系统 | |
CN107168897A (zh) | 一种实现i2c重复读写控制的装置 | |
CN106489137A (zh) | 通用串行总线(usb)通信系统和方法 | |
CN113434442A (zh) | 一种交换机及数据访问方法 | |
CN105404204B (zh) | 一种航空电子设备启动板的控制电路 | |
CN100386751C (zh) | 一种usb设备自动初始化的方法及装置 | |
CN112347017A (zh) | Lpc总线接口的ps/2键盘双机外挂系统和切换方法 | |
CN201876870U (zh) | 内部整合电路总线的测试系统及其装置 | |
CN213122967U (zh) | 一种rs485信号共享装置 | |
CN108536557A (zh) | 一种服务器smbus扫描装置及方法 | |
CN102623728A (zh) | 一种基于can总线的人机界面在燃料电池系统的应用结构 | |
CN1158614C (zh) | 高集成度热主备工控主板 | |
CN202523798U (zh) | 一种基于can总线的人机界面在燃料电池系统的应用结构 | |
CN201854018U (zh) | 一种具有继电保护智能配置功能的综合保护装置 | |
CN107885621B (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 | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20191213 Termination date: 20210418 |