CN107168897B - 一种实现i2c重复读写控制的装置 - Google Patents
一种实现i2c重复读写控制的装置 Download PDFInfo
- Publication number
- CN107168897B CN107168897B CN201710254649.XA CN201710254649A CN107168897B CN 107168897 B CN107168897 B CN 107168897B CN 201710254649 A CN201710254649 A CN 201710254649A CN 107168897 B CN107168897 B CN 107168897B
- Authority
- CN
- China
- Prior art keywords
- controller
- register
- read
- write
- interrupt
- 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
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 (7)
1.一种实现I2C重复读写控制的装置,其特征在于:包括主控制器、重复读写控制器、I2C控制器,该重复读写控制器连接在主控制器与I2C控制器之间;
主控制器通过重复读写控制器向I2C控制器发送读写命令,I2C控制器直接关联外部I2C设备以执行所述读写命令;
I2C控制器根据执行结果向重复读写控制器反馈完成状态信号、错误状态信号以及所采集的数据;
重复读写控制器对I2C控制器反馈的信号进行识别且仅仅反馈有效信号给主控制器;
所述重复读写控制器包括寄存器模块以及与该寄存器模块电连接的中断控制器、数据比较器、启动次数计数器、定时器、启动信号产生器、有效状态计数器;
该寄存器模块通过内部总线与主控制器电连接以用于接收主控制器发来的配置寄存器以及返回寄存器内容给主控制器;
启动次数计数器、定时器、启动信号产生器依次连接,中断控制器、数据比较器、启动信号产生器、有效状态计数器、寄存器模块皆与I2C控制器连接,中断控制器输出端用于输出中断信号给主控制器。
2.根据权利要求1所述的一种实现I2C重复读写控制的装置,其特征在于:所述寄存器模块包括启动次数寄存器、启动寄存器、间隔寄存器;
该启动次数寄存器与启动次数计数器连接,启动次数寄存器用于设置发送次数,每发送成功一次启动次数计数器会自动加一,如果达到启动次数寄存器设置的次数,则停止发送启动信号;如果计数寄存器为0,则一直循环发送;
该启动寄存器分别与启动次数计数器、定时器连接,启动寄存器用于控制产生启动信号;间隔寄存器与定时器连接以用于设置START信号的发送周期,定时器根据此间隔寄存器配置产生周期性的使能信号给启动信号产生器。
3.根据权利要求1所述的一种实现I2C重复读写控制的装置,其特征在于:所述寄存器模块包括中断状态寄存器,中断状态寄存器分别与中断控制器、有效状态计数器连接,该中断状态寄存器包含三个中断信息:分别是读到有效状态,操作出错以及计数次数满。
4.根据权利要求1所述的一种实现I2C重复读写控制的装置,其特征在于:所述寄存器模块包括读写寄存器,读写寄存器分别与I2C控制器、有效状态计数器连接,用于指示当前操作是写操作还是读操作。
5.根据权利要求1所述的一种实现I2C重复读写控制的装置,其特征在于:所述寄存器模块包括期望数据寄存器,期望数据寄存器与所述数据比较器连接,用于比较I2C控制器读回数据,如果比较成功,由中断控制器产生中断信号给主控制器。
6.根据权利要求1所述的一种实现I2C重复读写控制的装置,其特征在于:所述寄存器模块包括读回数据寄存器,读回数据寄存器与I2C控制器连接,用于主控制器未及时响应中断的情况下存储I2C设备的连续有效状态。
7.根据权利要求1所述的一种实现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 CN107168897A (zh) | 2017-09-15 |
CN107168897B true 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) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108829626A (zh) * | 2018-04-26 | 2018-11-16 | 常州新途软件有限公司 | 一种用于汽车控制系统的通信方法 |
Citations (3)
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从器件的方法及装置 |
CN104050116A (zh) * | 2012-12-27 | 2014-09-17 | 重庆重邮信科通信技术有限公司 | 集成电路总线控制器及集成电路总线操作的处理方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101086426B1 (ko) * | 2007-01-23 | 2011-11-23 | 삼성전자주식회사 | I2c 컨트롤러에서 직렬 데이터 라인의 상태 변화의타이밍 제어 장치 및 그 제어 방법 |
-
2017
- 2017-04-18 CN CN201710254649.XA patent/CN107168897B/zh not_active Expired - Fee Related
Patent Citations (3)
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从器件的方法及装置 |
CN104050116A (zh) * | 2012-12-27 | 2014-09-17 | 重庆重邮信科通信技术有限公司 | 集成电路总线控制器及集成电路总线操作的处理方法 |
Also Published As
Publication number | Publication date |
---|---|
CN107168897A (zh) | 2017-09-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9582443B1 (en) | Serial control channel processor for executing time-based instructions | |
US10936524B2 (en) | Bus system with slave devices | |
US10509595B2 (en) | System and method for communication in a semiconductor device | |
CN112765082B (zh) | 多主机仲裁方法、装置和可读存储介质 | |
US6070204A (en) | Method and apparatus for using universal serial bus keyboard to control DOS operations | |
CN104599227A (zh) | 用于高速ccd数据存储的ddr3仲裁控制器及方法 | |
US20170329363A1 (en) | Serial peripheral interface and methods of operating same | |
CN102867158B (zh) | 一种切换内存的方法、装置及具有双系统的终端 | |
US20070038795A1 (en) | Asynchronous bus interface and processing method thereof | |
TWI539275B (zh) | 觸控裝置及其控制器、測試方法與測試系統 | |
CN105388982A (zh) | 多处理器上电复位电路 | |
CN110444156A (zh) | 显示装置及其驱动器 | |
CN107168897B (zh) | 一种实现i2c重复读写控制的装置 | |
CN113824741A (zh) | 一种iic设备的通信方法、装置、设备、系统及介质 | |
CN109240130B (zh) | 可程序化接脚位准的控制电路 | |
CN112711559A (zh) | 串行中断方法、设备、串行中断处理方法以及处理器 | |
US11907155B2 (en) | Bus system connecting slave devices with single-wire data access communication | |
CN113177388B (zh) | 用于ip核测试与验证的装置、系统及方法 | |
JP3379762B2 (ja) | ローカルコンピューティングシステムによるホストコンピューティングシステムへのアクセス制御を調整するためのローカルコンピューティングシステムとともに使用される装置 | |
CN109542198A (zh) | 一种控制pcie卡上电的方法及设备 | |
EP3428804A1 (en) | Biometric sensing system | |
US7103692B2 (en) | Method and apparatus for an I/O controller to alert an external system management controller | |
CN110659236B (zh) | 可自主回复写应答的axi总线传输装置 | |
CN111782574A (zh) | 一种串行外设接口控制方法和串行外设接口控制器 | |
CN111562946A (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 |