CN107168897A - 一种实现i2c重复读写控制的装置 - Google Patents

一种实现i2c重复读写控制的装置 Download PDF

Info

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
Application number
CN201710254649.XA
Other languages
English (en)
Other versions
CN107168897B (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.)
Shenzhen Core Semiconductor Technology Co Ltd
Original Assignee
Shenzhen Core Semiconductor Technology 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 Shenzhen Core Semiconductor Technology Co Ltd filed Critical Shenzhen Core Semiconductor Technology Co Ltd
Priority to CN201710254649.XA priority Critical patent/CN107168897B/zh
Publication of CN107168897A publication Critical patent/CN107168897A/zh
Application granted granted Critical
Publication of CN107168897B publication Critical patent/CN107168897B/zh
Expired - Fee Related 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/10Program control for peripheral devices
    • G06F13/12Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
    • G06F13/124Program 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/126Program 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0016Inter-integrated circuit (I2C)

Abstract

本发明公开了一种实现I2C重复读写控制的装置,包括主控制器、重复读写控制器、I2C控制器,该重复读写控制器连接在主控制器与I2C控制器之间;主控制器通过重复读写控制器向I2C控制器发送读写命令,I2C控制器直接关联外部I2C设备以执行所述读写命令;I2C控制器根据执行结果向重复读写控制器反馈完成状态信号、错误状态信号以及所采集的数据;重复读写控制器对I2C控制器反馈的信号进行识别且仅仅反馈有效信号给主控制器。本发明通过在主控制器和I2C控制器之间增加了重复读写控制器,来代替主控制器等待和处理对I2C控制器的读写命令,仅仅反馈有效信号给主控制器,即不会浪费主控制器的处理时间。

Description

一种实现I2C重复读写控制的装置
技术领域
本发明涉及计算机通信领域,尤其是一种实现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重复读写控制的装置,其特征在于: 所述寄存器模块包括有效状态数寄存器,该有效状态数寄存器与有效状态计数器连接,以用于记录有效状态计数器所存储的有效状态数目。
CN201710254649.XA 2017-04-18 2017-04-18 一种实现i2c重复读写控制的装置 Expired - Fee Related CN107168897B (zh)

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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108829626A (zh) * 2018-04-26 2018-11-16 常州新途软件有限公司 一种用于汽车控制系统的通信方法

Citations (4)

* Cited by examiner, † Cited by third party
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 重庆重邮信科通信技术有限公司 集成电路总线控制器及集成电路总线操作的处理方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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
CN103645975B (zh) 一种异常恢复的方法及串行总线传输装置
CN102387074B (zh) 业务线卡在位检测及复位方法及一种主控制卡和业务线卡
CN110941218B (zh) 一种can总线控制器测试方法
CN111104272B (zh) 一种基于rx和tx的can总线控制器测试方法
CN101581964B (zh) 计算机系统及外围设备驱动方法
CN103746889B (zh) 半竞争式rs-485总线多主通讯系统及其工作方法
CN102724092A (zh) 一种Profibus-DP现场总线通信协议冗余主站
CN101592934A (zh) 可编程逻辑控制器与扩展模块的通信方法
CN102867158B (zh) 一种切换内存的方法、装置及具有双系统的终端
CN103186440B (zh) 检测子卡在位的方法、装置及系统
CN103246628A (zh) Smi接口管理方法及可编程逻辑器件
CN102253910A (zh) 一种i2c传输方法及其装置
CN103106113A (zh) 一种中断事件处理方法和处理设备
CN101118528A (zh) 一种i2c总线被从器件锁定后的恢复方法及装置
CN106610885A (zh) 服务器故障检测系统及方法
CN103309422A (zh) 电源装置
CN106249687A (zh) 一种背板通讯的方法
CN107168897A (zh) 一种实现i2c重复读写控制的装置
CN113434442A (zh) 一种交换机及数据访问方法
CN201707675U (zh) 一种计算机隔离卡
CN102681650B (zh) 一种电源控制节能方法及其对应的存储系统
CN105404204B (zh) 一种航空电子设备启动板的控制电路
CN100386751C (zh) 一种usb设备自动初始化的方法及装置
CN201876870U (zh) 内部整合电路总线的测试系统及其装置
CN213122967U (zh) 一种rs485信号共享装置

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