CN106649158A - 通过i2c接口读写内部寄存器堆的装置及方法 - Google Patents
通过i2c接口读写内部寄存器堆的装置及方法 Download PDFInfo
- Publication number
- CN106649158A CN106649158A CN201611234220.6A CN201611234220A CN106649158A CN 106649158 A CN106649158 A CN 106649158A CN 201611234220 A CN201611234220 A CN 201611234220A CN 106649158 A CN106649158 A CN 106649158A
- Authority
- CN
- China
- Prior art keywords
- read
- write
- signal
- reading
- enable
- 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
- 238000000034 method Methods 0.000 title claims abstract description 73
- 230000008569 process Effects 0.000 claims description 45
- 238000012546 transfer Methods 0.000 claims description 29
- 230000008859 change Effects 0.000 claims description 16
- 230000005540 biological transmission Effects 0.000 claims description 8
- 238000013461 design Methods 0.000 abstract description 6
- 238000012360 testing method Methods 0.000 description 3
- 230000004913 activation Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 238000007689 inspection Methods 0.000 description 2
- 230000000630 rising effect Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000012938 design process Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000002401 inhibitory effect Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 238000000465 moulding Methods 0.000 description 1
- 230000000452 restraining effect Effects 0.000 description 1
- 238000006467 substitution reaction 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/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
-
- 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
- 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)
-
- 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/30003—Arrangements for executing specific machine instructions
- G06F9/3004—Arrangements for executing specific machine instructions to perform operations on memory
- G06F9/30043—LOAD or STORE instructions; Clear instruction
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Systems (AREA)
- Communication Control (AREA)
Abstract
一种通过I2C接口读写内部寄存器堆的装置及方法,该装置包括:I2C主机,向I2C从机和读写使能控制单元发送信号并读取I2C从机中的数据;I2C从机,包括第一I2C读写寄存器、第二I2C读写寄存器和I2C只读寄存器,分别存储写ID和写数据、读ID及读数据;读写操作单元,对内部寄存器堆进行读写操作;读写使能控制单元,根据I2C主机的发送信号产生读写使能信号并置1来控制读写操作单元,当写使能信号为1时进行写操作;当读使能信号为1时进行读操作并将读数据反馈至I2C只读寄存器。本发明的装置及方法在不额外增加外部接口开销和内部存储电路消耗的前提下,实现了对芯片内部寄存器堆的读写,对可测试性设计有重要意义。
Description
技术领域
本发明属于电通信技术领域,更具体地涉及一种通过I2C接口读写内部寄存器堆的装置及方法。
背景技术
MIPI接口是一种新兴的高速接口,具有低功耗、高传输速率等特点,在移动设备中有着广泛的应用。MPHY IP是MIPI设计中最关键的部分,MPHY由于可以灵活的配置多种可选模式和属性,因而相比其他串行PHY具有显著的优势。这一灵活性是通过MPHY的配置区域来实现的,MPHY的配置区域由寄存器堆构成,其中的每个寄存器都具有特定的ID号。增强配置区域的可测试性和可观测性对MPHY的设计和验证至关重要。
然而,在芯片设计过程中,面积、功耗、外部接口的数量等制约因素,一定程度上限制了可测试方案。I2C接口作为各种总线中使用信号线最少的总线,仅通过SCL和SDA两根线就可以实现数据的传输,因此,I2C接口成为了常用的解决方案。在芯片设计当中,出于测试用途考虑,常常在芯片的设计中加入I2C从机,将需要观测的片内信号寄存在I2C寄存器中,通过片外I2C主机对片内I2C从机发起读请求的方式来观测片内信号,同样的,也可以将需要强制改写的片内信号的改写值和改写使能寄存在I2C寄存器中,通过片外I2C主机对片内I2C从机发起写请求的方式来强制改写片内信号。而对于内部寄存器堆而言,由于寄存器数目众多,将每个寄存器中存储的数值分别寄存到I2C寄存器中来实现可测试和可观测的方式,会消耗大量的I2C寄存器资源,进而影响功耗、面积等性能指标。因此,如何在不额外增加外部接口开销和内部存储资源消耗的前提下,实现对芯片内部寄存器堆的读写,对可测试性设计有着重要意义。
发明内容
基于以上问题,本发明的主要目的在于提出一种通过I2C接口读写内部寄存器堆的装置及方法,用于解决上述技术问题中的至少之一。
为了实现上述目的,作为本发明的一个方面,本发明提出了一种通过I2C接口读写内部寄存器堆的装置,包括I2C主机、I2C从机、读写使能控制单元和读写操作单元,其中:
I2C主机用于向I2C从机和读写使能控制模块发送信号,并读取I2C从机中的数据;
I2C从机,包括第一I2C读写寄存器、第二I2C读写寄存器和I2C只读寄存器,用于分别接收I2C主机的发送信号并分别存储I2C主机读写的写ID和写数据、读ID及读数据;
读写操作单元用于对内部寄存器堆进行读写操作;
读写使能控制单元用于根据I2C主机的发送信号产生读或写使能信号并置1来控制读写操作单元,当写使能信号为1时,读写操作单元根据写ID和写数据进行写操作;当读使能信号为1时,读写操作单元根据读ID进行读操作,并将读取的读数据反馈至I2C只读寄存器。
进一步地,上述读写操作单元还用于在完成写操作或读操作后产生写完成信号或读完成信号并置1反馈至读写使能控制单元,写完成信号和读完成信号在保持一个周期后置0。
进一步地,上述读写使能控制单元包括一传送过程判断模块、一从机地址及传送方向判断模块、一写使能产生模块和一读使能产生模块。
进一步地,上述I2C主机向读写使能控制单元发送的信号为SCL和SDA线上状态的变化,传送过程判断模块根据此信号来判断I2C主机是否进行I2C操作并在检测到I2C起始信号后,产生传送过程指示信号并置1;在检测到I2C终止信号后,将传送过程指示信号置0。
进一步地,上述从机地址及传送方向判断模块在传送过程指示信号为1时,判断操作为写操作或者读操作,并在进行写操作时,产生预写使能信号并置1;在进行读操作时,产生预读使能信号并置1。
进一步地,上述从机地址及传送方向判断模块还用于接收写完成信号或读使能信号并将预写使能信号或预读使能信号置0。
进一步地,上述写使能产生模块,用于在预写使能信号为1且传送过程指示信号为0时,产生写使能信号并置1传输至读写操作单元,还用于接收写完成信号并将所述写使能信号置0;
进一步地,上述读使能产生模块,用于在预读使能信号为1且传送过程指示信号为0时,产生读使能信号并置1传输至读写操作单元,还用于接收读完成信号并将读使能信号置0。
进一步地,上述读写操作单元包括一写操作模块和一读操作模块。
进一步地,上述写操作模块接收写ID、写数据和写使能信号,并在写使能信号为1时对内部寄存器堆中相应的寄存器进行改写操作,并在完成改写操作后产生写完成信号并置1反馈至从机地址及传送方向判断模块和写使能产生模块。
进一步地,上述读操作模块接收读ID并在读使能信号为1时,对内部寄存器堆中相应的寄存器进行读取操作,并在完成读取操作后产生读完成信号并置1反馈至从机地址及传送方向判断模块和读使能产生模块,同时将读取的读数据发送至I2C只读寄存器存储。
为了实现上述目的,作为本发明的另一个方面,本发明提出一种通过I2C接口改写内部寄存器堆的方法,该方法通过如下装置实现,该装置包括I2C主机、I2C从机、读写使能控制单元和读写操作单元;该方法包括以下步骤:
步骤11、I2C主机向读写使能控制单元发送I2C操作开始信号及数据改写信号,并向I2C从机发送进行数据改写的写ID和写数据;
步骤12、读写使能控制单元根据I2C操作开始信号及数据改写信号,产生预写使能信号并置1;
步骤13、I2C主机向所述读写使能控制单元发送I2C操作停止信号;
步骤14、读写使能控制单元根据I2C操作停止信号及为1的预写使能信号,产生写使能信号并置1;
步骤15、读写操作单元根据写ID及写数据,接收为1的写使能信号,对内部寄存器堆进行改写操作,在完成改写操作后产生写完成信号并置1反馈给读写使能控制单元;
步骤16、读写使能控制单元接收为1的写完成信号将预写使能信号和写使能信号置0,完成对内部寄存器堆的改写。
本发明另一方面还提出一种通过I2C接口读取内部寄存器堆的方法,该方法通过如下装置实现,该装置包括I2C主机、读写使能控制单元和读写操作单元;该方法包括以下步骤:
步骤21、I2C主机向读写使能控制单元发送I2C操作开始信号及数据读取信号,并向I2C从机发送进行数据读取的读ID;
步骤22、读写使能控制单元根据I2C操作开始信号及数据读取信号,产生预读使能信号并置1;
步骤23、I2C主机向读写使能控制单元传输I2C操作停止信号;
步骤24、读写使能控制单元根据I2C操作停止信号及为1的预读使能信号,产生读使能信号并置1;
步骤25、读写操作单元根据读ID,接收为1的读使能信号,对内部寄存器堆进行读取操作,在完成读取操作后产生读完成信号并置1反馈给读写使能控制单元,并将读取的读数据传输至I2C从机;
步骤26、读写使能控制单元接收为1的读完成信号将预读使能信号和读使能信号置0;
步骤27、I2C主机向I2C从机发送信号,读取读数据,完成对内部寄存器堆的读取。
基于上述方案可知,本发明提供的通过I2C接口读写内部寄存器堆的装置及方法,只需两个I2C读写寄存器和一个I2C只读寄存器,I2C从机不需与内部寄存器堆的寄存器一一对应,通过读写使能控制模块和读写操作模块进行读写操作,则在不额外增加外部接口开销和内部存储资源消耗的前提下,可以有效地实现对内部寄存器堆的读写,进而有效地增加了内部寄存器堆的可测试性和可观测性。
附图说明
图1是本发明一实施例示出的通过I2C接口读写内部寄存器堆的装置结构示意图;
图2是本发明一实施例示出的读写使能控制模块的结构示意图;
图3是本发明一实施例示出的读写操作模块的结构示意图;
图4是本发明一实施例示出的通过I2C接口改写指定内部寄存器的信号关系图;
图5是本发明另一实施例示出的通过I2C接口读取指定内部寄存器的信号关系图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明作进一步的详细说明。
本发明一方面公开了一种通过I2C接口读写内部寄存器堆的装置,包括I2C主机、I2C从机、读写使能控制单元和读写操作单元,其中:
I2C主机用于向I2C从机和读写使能控制模块发送信号,并读取I2C从机中的数据;
I2C从机,主要包括第一I2C读写寄存器、第二I2C读写寄存器和I2C只读寄存器,用于分别接收I2C主机的发送信号并分别存储I2C主机读写的写ID和写数据、读ID及读数据;其中作为优选,该I2C从机主要由第一I2C读写寄存器、第二I2C读写寄存器和I2C只读寄存器组成,仅通过这三个寄存器即可实现对内部寄存器堆中的若干个寄存器进行读写操作。
读写操作单元用于对内部寄存器堆进行读写操作;
读写使能控制单元用于根据I2C主机的发送信号产生读或写使能信号并置1来控制读写操作单元,当写使能信号为1时,读写操作单元根据写ID和写数据进行写操作;当读使能信号为1时,读写操作单元根据读ID进行读操作,并将读取的读数据反馈至I2C只读寄存器。
其中,上述读写操作单元还用于在完成写操作或读操作后产生写完成信号或读完成信号并置1反馈至读写使能控制单元,写完成信号和读完成信号在保持一个周期后置0。
优选地,上述读写使能控制单元包括一传送过程判断模块、一从机地址及传送方向判断模块、一写使能产生模块和一读使能产生模块。I2C主机向读写使能控制单元发送的信号为SCL和SDA线上状态的变化,
传送过程判断模块根据此信号来判断I2C主机是否进行I2C操作并在检测到I2C起始信号后,产生传送过程指示信号并置1;在检测到I2C终止信号后,将传送过程指示信号置0。
从机地址及传送方向判断模块在传送过程指示信号为1时,判断操作为写操作或者读操作,并在进行写操作时,产生预写使能信号并置1;在进行读操作时,产生预读使能信号并置1;优选地,从机地址及传送方向判断模块还用于接收写完成信号或读使能信号并将预写使能信号或预读使能信号置0。
写使能产生模块,用于在预写使能信号为1且传送过程指示信号为0时,产生写使能信号并置1传输至读写操作单元,还用于接收写完成信号并将所述写使能信号置0;
读使能产生模块,用于在预读使能信号为1且传送过程指示信号为0时,产生读使能信号并置1传输至读写操作单元,还用于接收读完成信号并将读使能信号置0。
优选地,上述读写操作单元包括一写操作模块和一读操作模块。
写操作模块接收写ID、写数据和写使能信号,并在写使能信号为1时对内部寄存器堆中相应的寄存器进行改写操作,并在完成改写操作后产生写完成信号并置1反馈至从机地址及传送方向判断模块和写使能产生模块。
读操作模块接收读ID并在读使能信号为1时,对内部寄存器堆中相应的寄存器进行读取操作,并在完成读取操作后产生读完成信号并置1反馈至从机地址及传送方向判断模块和读使能产生模块,同时将读取的读数据发送至I2C只读寄存器存储。
本发明另一方面公开了一种通过I2C接口改写内部寄存器堆的方法,该方法通过如下装置实现,该装置包括I2C主机、I2C从机、读写使能控制单元和读写操作单元;该方法包括以下步骤:
步骤11、I2C主机向读写使能控制单元发送I2C操作开始信号及数据改写信号,并向I2C从机发送进行数据改写的写ID和写数据;
步骤12、读写使能控制单元根据I2C操作开始信号及数据改写信号,产生预写使能信号并置1;
步骤13、I2C主机向所述读写使能控制单元发送I2C操作停止信号;
步骤14、读写使能控制单元根据I2C操作停止信号及为1的预写使能信号,产生写使能信号并置1;
步骤15、读写操作单元根据写ID及写数据,接收为1的写使能信号,对内部寄存器堆进行改写操作,在完成改写操作后产生写完成信号并置1反馈给读写使能控制单元;
步骤16、读写使能控制单元接收为1的写完成信号将预写使能信号和写使能信号置0,完成对内部寄存器堆的改写。
本发明还公开了一种通过I2C接口读取内部寄存器堆的方法,该方法通过如下装置实现,该装置包括I2C主机、读写使能控制单元和读写操作单元;该方法包括以下步骤:
步骤21、I2C主机向读写使能控制单元发送I2C操作开始信号及数据读取信号,并向I2C从机发送进行数据读取的读ID;
步骤22、读写使能控制单元根据I2C操作开始信号及数据读取信号,产生预读使能信号并置1;
步骤23、I2C主机向读写使能控制单元传输I2C操作停止信号;
步骤24、读写使能控制单元根据I2C操作停止信号及为1的预读使能信号,产生读使能信号并置1;
步骤25、读写操作单元根据读ID,接收为1的读使能信号,对内部寄存器堆进行读取操作,在完成读取操作后产生读完成信号并置1反馈给读写使能控制单元,并将读取的读数据传输至I2C从机;
步骤26、读写使能控制单元接收为1的读完成信号将预读使能信号和读使能信号置0;
步骤27、I2C主机向I2C从机发送信号,读取读数据,完成对内部寄存器堆的读取。
以下通过具体实施例对本发明提出的通过I2C接口读写内部寄存器堆的装置及方法进行详细描述。
实施例1
如图1所示,为本实施例1提出的通过I2C接口读写内部寄存器堆的装置结构示意图,本装置包括I2C主机、包括三个I2C寄存器的I2C从机、读写使能控制模块和读写操作模块,以下分别说明各部分的具体功能。
I2C主机用于向I2C从机和读写使能控制模块发送信号,并读取I2C从机中的数据;
三个I2C寄存器,具体包括:
第一I2C读写寄存器,用于存储需要进行改写的内部寄存器的ID值及改写后的数据,简称写ID和写数据,其值是读写操作单元在进行写操作时的依据,12C主机可以对第一I2C读写寄存器进行读写控制;
第二I2C读写寄存器,用于存储需要读取的内部寄存器的ID值,简称读ID,其值可被读写操作单元在进行读操作的时候使用,I2C主机可以对第二I2C读写寄存器进行读写控制;
12C只读寄存器,用于存储读写操作单元返回的指定读ID寄存器中的数据,简称读数据,I2C主机只能对I2C只读寄存器进行读操作。
读写使能控制模块,用于根据SCL和SDA总线的起始、从机地址、传送方向以及终止状态,和读写操作模块输出的读写操作完成反馈,来产生读写使能信号。
读写操作模块,用于实现对内部寄存器堆的读写操作,在写使能信号有效时,对指定写ID的内部寄存器写入指定的写内容,并在完成本次写操作后返回写操作完成信号;在读使能信号有效的时刻,将指定读ID的内部寄存器中存储的内容反馈到I2C只读寄存器中,并在完成本次读操作后返回读操作完成信号。
如图2所示,为本实施例1所述的读写使能控制模块的结构示意图,具体包括:
传送过程判断模块,用于根据SCL和SDA线上状态的变化,来判断I2C主机是否正在进行I2C操作,并在检测到I2C起始信号后,将传送过程指示信号置1,直到检测到I2C终止信号,再将其置0;
从机地址及传送方向判断模块,用于根据传送过程指示信号有效之后的前七个比特的值,来判断从机地址,再根据传送过程指示信号有效之后的第八个比特的值,来判断当前I2C操作的传送方向为读操作还是写操作,并在检测到当前I2C操作的传送方向为写操作时,将预写使能信号置1,并保持直至读写操作单元输出的写操作完成信号有效后再重新置0;在检测到当前I2C操作的传送方向为读操作时,将预读使能信号置1,并保持直至读写操作单元输出的读操作完成信号有效时重新置0;
写使能产生模块,用于根据传送过程指示信号、预写使能信号和读写操作单元输出的写操作完成信号,来产生写使能控制信号,并在预写使能信号有效且传送过程指示信号无效时,将写使能控制信号置1,并保持直到写操作完成信号有效后再重新置0;
读使能产生模块,用于根据传送过程指示信号、预读使能信号和读写操作单元输出的读操作完成信号,来产生读使能控制信号,并在预读使能信号有效且传送过程指示信号无效时,将读使能控制信号置1,并保持直到读操作完成信号有效后再重新置0。
如图3所示,为本实施例1所述的读写操作模块的结构示意图,具体包括:
写操作模块,用于根据第一I2C读写寄存器中存储的写ID和写数据,在写使能信号有效时,将写数据写入到指定写ID的内部寄存器中,并在完成本次写操作后将写操作完成信号置1,保持一个周期后重新置0;
读操作模块,用于根据第二I2C读写寄存器中存储的读ID,在读使能信号有效时,将指定读ID的内部寄存器的值写入到I2C只读寄存器中,并在完成本次读操作后将读操作完成信号置1,保持一个周期后重新置0。
实施例2
如图4所示,为本实施例提出的通过I2C接口改写内部寄存器堆的方法的信号关系图,其改写的具体步骤如下描述:
步骤11、读写使能控制模块中的传送过程判断模块,根据SCL和SDA线上状态的变化,来判断I2C传送的起始标志,SDA信号在SCL信号为高电平时出现下降沿即表示I2C传送开始,传送过程判断模块在检测到此变化时将传送过程指示信号置1;
步骤12、读写使能控制模块中的从机地址及传送方向判断模块,根据传送过程指示信号有效之后的前七个比特的从机地址值和第八个比特的传送方向值进行判断,并在检测到当前I2C操作是对第一I2C读写寄存器的写操作时,将预写使能信号置1;
步骤13、读写使能控制模块中的传送过程判断模块,根据SCL和SDA线上状态的变化,来判断I2C传送的终止标志,SDA信号在SCL信号为高电平时出现上升沿即表示I2C传送终止,传送过程判断模块在检测到此变化时将传送过程指示信号置0;步骤14、读写使能控制模块中的写使能产生模块,在预写使能信号为1且传送过程指示信号为0时,将写使能信号置1;
步骤15、读写操作模块中的写操作模块,根据第一I2C读写寄存器中存储的写ID和写数据,将写数据写入到指定写ID的内部寄存器中,并在完成本次写操作后将写完成信号置1反馈给读写使能控制模块的从机地址及传送方向判断模块和写使能产生模块;
步骤16、读写使能控制模块中的从机地址及传送方向判断模块和写使能产生模块,在写操作完成信号为1后,分别将预写使能信号和写使能控制信号重新置0,完成对内部寄存器堆的改写。
实施例3
如图5所示,为本实施例提出的通过I2C接口读取内部寄存器堆的方法的信号关系图,其读取的具体步骤如下描述:
步骤21、读写使能控制模块中的传送过程判断模块,根据SCL和SDA线上状态的变化,来判断I2C传送的起始标志,SDA信号在SCL信号为高电平时出现下降沿即表示I2C传送开始,传送过程判断模块在检测到此变化时将传送过程指示信号置1;
步骤22、读写使能控制模块中的从机地址及传送方向判断模块,根据传送过程指示信号有效之后的前七个比特的从机地址值和第八个比特的传送方向值进行判断,并在检测到当前I2C操作是对第二I2C读写寄存器的写操作时,将预读使能信号置1;
步骤23、读写使能控制模块中的传送过程判断模块,根据SCL和SDA线上状态的变化,来判断I2C传送的终止标志,SDA信号在SCL信号为高电平时出现上升沿即表示I2C传送终止,传送过程判断模块在检测到此变化时将传送过程指示信号置0;
步骤24、读写使能控制模块中的读使能产生模块,在预读使能信号为1且传送过程指示信号为0时,将读使能信号置1;
步骤25、读写操作模块中的读操作模块,根据第二I2C读写寄存器中存储的读ID,在读使能信号为1时,将指定读ID的内部寄存器的值写入到I2C只读寄存器中,并在完成本次读操作后将读完成信号置1并反馈给读写使能控制模块中的从机地址及传送方向判断模块和读使能产生模块;
步骤26、读写使能控制模块中的从机地址及传送方向判断模块和读使能产生模块,在读完成信号为1时,分别将预读使能信号和读使能信号重新置0;
步骤27、I2C主机对I2C只读寄存器发起读操作,进而获取指定读ID的内部寄存器的值,完成对内部寄存器堆的读取。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种通过I2C接口读写内部寄存器堆的装置,包括I2C主机、I2C从机、读写使能控制单元和读写操作单元,其中:
I2C主机用于向I2C从机和读写使能控制模块发送信号,并读取I2C从机中的数据;
I2C从机,包括第一I2C读写寄存器、第二I2C读写寄存器和I2C只读寄存器,用于分别接收I2C主机的发送信号并分别存储I2C主机读写的写ID和写数据、读ID及读数据;
读写操作单元用于对内部寄存器堆进行读写操作;
读写使能控制单元用于根据I2C主机的发送信号产生读或写使能信号并置1来控制读写操作单元,当写使能信号为1时,读写操作单元根据所述写ID和写数据进行写操作;当读使能信号为1时,读写操作单元根据所述读ID进行读操作,并将所述读取的读数据反馈至所述I2C只读寄存器。
2.如权利要求1所述的通过I2C接口读写内部寄存器堆的装置,其特征在于,所述读写操作单元还用于在完成写操作或读操作后产生写完成信号或读完成信号并置1反馈至所述读写使能控制单元,所述写完成信号和读完成信号在保持一个周期后置0。
3.如权利要求2所述的通过I2C接口读写内部寄存器堆的装置,其特征在于,所述读写使能控制单元包括一传送过程判断模块、一从机地址及传送方向判断模块、一写使能产生模块和一读使能产生模块。
4.如权利要求3所述的通过I2C接口读写内部寄存器堆的装置,其特征在于,所述I2C主机向读写使能控制单元发送的信号为SCL和SDA线上状态的变化,所述传送过程判断模块根据此信号来判断I2C主机是否进行I2C操作并在检测到I2C起始信号后,产生传送过程指示信号并置1;在检测到I2C终止信号后,将传送过程指示信号置0。
5.如权利要求4所述的通过I2C接口读写内部寄存器堆的装置,其特征在于,所述从机地址及传送方向判断模块在所述传送过程指示信号为1时,判断所述操作为写操作或者读操作,并在进行写操作时,产生预写使能信号并置1;在进行读操作时,产生预读使能信号并置1,所述从机地址及传送方向判断模块还用于接收所述写完成信号或读使能信号并将所述预写使能信号或预读使能信号置0。
6.如权利要求5所述的通过I2C接口读写内部寄存器堆的装置,其特征在于,所述写使能产生模块,用于在预写使能信号为1且传送过程指示信号为0时,产生写使能信号并置1传输至所述读写操作单元,还用于接收所述写完成信号并将所述写使能信号置0;所述读使能产生模块,用于在预读使能信号为1且传送过程指示信号为0时,产生读使能信号并置1传输至所述读写操作单元,还用于接收所述读完成信号并将所述读使能信号置0。
7.如权利要求6所述的通过I2C接口读写内部寄存器堆的装置,其特征在于,所述读写操作单元包括一写操作模块和一读操作模块。
8.如权利要求7所述的通过I2C接口读写内部寄存器堆的装置,其特征在于,所述写操作模块接收写ID、写数据和写使能信号,并在所述写使能信号为1时对内部寄存器堆中相应的寄存器进行改写操作,并在完成改写操作后产生写完成信号并置1反馈至所述从机地址及传送方向判断模块和写使能产生模块;所述读操作模块接收读ID并在读使能信号为1时,对所述内部寄存器堆中相应的寄存器进行读取操作,并在完成读取操作后产生读完成信号并置1反馈至所述从机地址及传送方向判断模块和读使能产生模块,同时将读取的读数据发送至I2C只读寄存器存储。
9.一种通过I2C接口改写内部寄存器堆的方法,所述方法通过如下装置实现,该装置包括I2C主机、I2C从机、读写使能控制单元和读写操作单元;所述方法包括以下步骤:
步骤11、I2C主机向所述读写使能控制单元发送I2C操作开始信号及数据改写信号,并向所述I2C从机发送进行数据改写的写ID和写数据;
步骤12、读写使能控制单元根据所述I2C操作开始信号及数据改写信号,产生预写使能信号并置1;
步骤13、I2C主机向所述读写使能控制单元发送I2C操作停止信号;
步骤14、读写使能控制单元根据所述I2C操作停止信号及为1的预写使能信号,产生写使能信号并置1;
步骤15、读写操作单元根据所述写ID及写数据,接收为1的写使能信号,对所述内部寄存器堆进行改写操作,在完成改写操作后产生写完成信号并置1反馈给所述读写使能控制单元;
步骤16、读写使能控制单元接收所述为1的写完成信号将所述的预写使能信号和写使能信号置0,完成对所述内部寄存器堆的改写。
10.一种通过I2C接口读取内部寄存器堆的方法,所述方法通过如下装置实现,该装置包括I2C主机、读写使能控制单元和读写操作单元;所述方法包括以下步骤:
步骤21、I2C主机向所述读写使能控制单元发送I2C操作开始信号及数据读取信号,并向所述I2C从机发送进行数据读取的读ID;
步骤22、读写使能控制单元根据所述I2C操作开始信号及数据读取信号,产生预读使能信号并置1;
步骤23、I2C主机向所述读写使能控制单元传输I2C操作停止信号;
步骤24、读写使能控制单元根据所述I2C操作停止信号及为1的预读使能信号,产生读使能信号并置1;
步骤25、读写操作单元根据所述读ID,接收为1的读使能信号,对所述内部寄存器堆进行读取操作,在完成读取操作后产生读完成信号并置1反馈给所述读写使能控制单元,并将读取的读数据传输至所述I2C从机;
步骤26、读写使能控制单元接收所述为1的读完成信号将所述的预读使能信号和读使能信号置0;
步骤27、I2C主机向所述I2C从机发送信号,读取所述的读数据,完成对所述内部寄存器堆的读取。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611234220.6A CN106649158B (zh) | 2016-12-27 | 2016-12-27 | 通过i2c接口读写内部寄存器堆的装置及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611234220.6A CN106649158B (zh) | 2016-12-27 | 2016-12-27 | 通过i2c接口读写内部寄存器堆的装置及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106649158A true CN106649158A (zh) | 2017-05-10 |
CN106649158B CN106649158B (zh) | 2020-10-16 |
Family
ID=58832575
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611234220.6A Active CN106649158B (zh) | 2016-12-27 | 2016-12-27 | 通过i2c接口读写内部寄存器堆的装置及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106649158B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109558083A (zh) * | 2018-11-27 | 2019-04-02 | 惠科股份有限公司 | 防止代码被改写的方法及存储器 |
CN110399325A (zh) * | 2019-07-30 | 2019-11-01 | 江西理工大学 | 一种基于iic总线协议的改进型ip核 |
CN112835648A (zh) * | 2021-02-25 | 2021-05-25 | 中国科学院西安光学精密机械研究所 | 一种基于fpga的芯片内部寄存器高可靠配置方法 |
CN117033293A (zh) * | 2023-10-09 | 2023-11-10 | 井芯微电子技术(天津)有限公司 | 一种主模式i2c/smbus控制器及其控制方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN201917898U (zh) * | 2011-01-20 | 2011-08-03 | 电子科技大学 | 一种i2c总线接口电路模块 |
CN102243619A (zh) * | 2011-06-23 | 2011-11-16 | 天津光电通信技术有限公司 | 一种基于fpga实现多路i2c总线端口扩展的方法 |
CN203561985U (zh) * | 2013-11-13 | 2014-04-23 | 曙光信息产业(北京)有限公司 | 一种用于atca刀片上的fpga芯片与bmc芯片协同电源管理*** |
KR20150079318A (ko) * | 2013-12-31 | 2015-07-08 | 엘지디스플레이 주식회사 | 전력 최적화 시스템과 이의 구동 방법 |
CN104978291A (zh) * | 2014-04-09 | 2015-10-14 | Nxp股份有限公司 | 基于i2c总线协议的单线接口总线收发******及i2c单线通讯方法 |
-
2016
- 2016-12-27 CN CN201611234220.6A patent/CN106649158B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN201917898U (zh) * | 2011-01-20 | 2011-08-03 | 电子科技大学 | 一种i2c总线接口电路模块 |
CN102243619A (zh) * | 2011-06-23 | 2011-11-16 | 天津光电通信技术有限公司 | 一种基于fpga实现多路i2c总线端口扩展的方法 |
CN203561985U (zh) * | 2013-11-13 | 2014-04-23 | 曙光信息产业(北京)有限公司 | 一种用于atca刀片上的fpga芯片与bmc芯片协同电源管理*** |
KR20150079318A (ko) * | 2013-12-31 | 2015-07-08 | 엘지디스플레이 주식회사 | 전력 최적화 시스템과 이의 구동 방법 |
CN104978291A (zh) * | 2014-04-09 | 2015-10-14 | Nxp股份有限公司 | 基于i2c总线协议的单线接口总线收发******及i2c单线通讯方法 |
Non-Patent Citations (1)
Title |
---|
任雪倩等: "《基于串行RapidIO的Buffer层设计》", 《微电子学与计算机》 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109558083A (zh) * | 2018-11-27 | 2019-04-02 | 惠科股份有限公司 | 防止代码被改写的方法及存储器 |
CN110399325A (zh) * | 2019-07-30 | 2019-11-01 | 江西理工大学 | 一种基于iic总线协议的改进型ip核 |
CN112835648A (zh) * | 2021-02-25 | 2021-05-25 | 中国科学院西安光学精密机械研究所 | 一种基于fpga的芯片内部寄存器高可靠配置方法 |
CN112835648B (zh) * | 2021-02-25 | 2022-03-25 | 中国科学院西安光学精密机械研究所 | 一种基于fpga的芯片内部寄存器高可靠配置方法 |
CN117033293A (zh) * | 2023-10-09 | 2023-11-10 | 井芯微电子技术(天津)有限公司 | 一种主模式i2c/smbus控制器及其控制方法 |
CN117033293B (zh) * | 2023-10-09 | 2023-12-08 | 井芯微电子技术(天津)有限公司 | 一种主模式i2c/smbus控制器及其控制方法 |
Also Published As
Publication number | Publication date |
---|---|
CN106649158B (zh) | 2020-10-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106649158A (zh) | 通过i2c接口读写内部寄存器堆的装置及方法 | |
US8898375B2 (en) | Memory controlling method, memory controller and memory storage apparatus | |
CN103823776A (zh) | 面向主从设备通信的单总线及通信方法 | |
CN103488600B (zh) | 通用从机同步串行接口电路 | |
CN104217768B (zh) | 一种eMMC内嵌式存储器的检测方法和装置 | |
CN105335548B (zh) | 一种用于ice的mcu仿真方法 | |
CN108595350A (zh) | 一种基于axi的数据传输方法和装置 | |
CN102147780B (zh) | 一种基于串行数据传输方式的链路接口电路 | |
CN103092806A (zh) | 基于spi数据传输时序的数据传输方法和*** | |
CN102117193B (zh) | 一种实现预读式fifo的方法和预读式fifo | |
CN107290654A (zh) | 一种fpga逻辑测试结构及方法 | |
CN112291027A (zh) | 时钟选择方法、装置、设备及计算机可读存储介质 | |
CN112364583A (zh) | 一种fpga软硬件协同仿真***及方法 | |
CN106649137B (zh) | 一种Nand Flash坏块管理方法、装置及存储器 | |
CN107766266A (zh) | 基于FPGA和PCIe的高速数据采集与存储*** | |
CN103226531B (zh) | 一种双端口外设配置接口电路 | |
CN103257606A (zh) | 一种usb接口高速实时采样逻辑分析仪 | |
CN204155612U (zh) | 闪存烧入器及烧入*** | |
CN209728477U (zh) | 一种多通道温度数据采集电路 | |
CN104035902B (zh) | 一种访问数据的方法及通信*** | |
CN109656350B (zh) | 一种基于dft扫描链的低功耗实现方法 | |
CN104572515B (zh) | 跟踪模块、方法、***和片上***芯片 | |
CN202025311U (zh) | 一种基于串行数据传输方式的链路接口电路 | |
CN102882261B (zh) | 充电***、数字接口电路及其控制方法 | |
CN103473161A (zh) | 一种内存smbus信号测试的发包方法 |
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 |