CN117033293A - 一种主模式i2c/smbus控制器及其控制方法 - Google Patents

一种主模式i2c/smbus控制器及其控制方法 Download PDF

Info

Publication number
CN117033293A
CN117033293A CN202311293814.4A CN202311293814A CN117033293A CN 117033293 A CN117033293 A CN 117033293A CN 202311293814 A CN202311293814 A CN 202311293814A CN 117033293 A CN117033293 A CN 117033293A
Authority
CN
China
Prior art keywords
state
sda
scl
signal
phase
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
CN202311293814.4A
Other languages
English (en)
Other versions
CN117033293B (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.)
Jingxin Microelectronics Technology Tianjin Co Ltd
Original Assignee
Jingxin Microelectronics Technology Tianjin 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 Jingxin Microelectronics Technology Tianjin Co Ltd filed Critical Jingxin Microelectronics Technology Tianjin Co Ltd
Priority to CN202311293814.4A priority Critical patent/CN117033293B/zh
Publication of CN117033293A publication Critical patent/CN117033293A/zh
Application granted granted Critical
Publication of CN117033293B publication Critical patent/CN117033293B/zh
Active 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/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • G06F13/4291Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus using a clocked protocol
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/06Clock generators producing several clock signals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/06Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor
    • G06F5/065Partitioned buffers, e.g. allowing multiple independent queues, bidirectional FIFO's
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy 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)
  • Communication Control (AREA)

Abstract

本发明提供了一种主模式I2C/SMBUS控制器及其控制方法,包括:相位生成器、SDA生成模块、SCL生成模块;SDA生成模块根据控制字和相位脉冲生成SDA信号,和控制SCL生成模块的控制信号。SCL生成模块根据相位脉冲和控制信号产生SCL信号,所述控制信号包括开启信号和锁存信号;所述相位生成器用于计数,以及生成相位脉冲;SDA生成模块通过写FIFO模块、读FIFO模块与用户接口连接。本控制器无需进行器件地址、器件地址长度、帧长度、ACK\NACK等配置,尤其在挂载多个总线设备时,无需进行配置多次重复,本方案可以不占用ARB总线,在配置多个从设备时,控制器根据控制字执行,待控制器完成传输后读取状态信息即可。

Description

一种主模式I2C/SMBUS控制器及其控制方法
技术领域
本发明涉及集成电路设计领域,特别涉及soc中的I2C控制器,尤其涉及一种主模式I2C/SMBUS控制器及其控制方法。
背景技术
现有的soc中的I2C控制器需要额外的总线接口ARB等总线,且需要配置器件地址,寄存器地址,数据等等参数。现有的产品中,I2C帧格式和SMBUS帧格式差别较大,当挂载I2C/SMBUS从设备种类较多时,每次访问都需要重新配置控制器,灵活度不高,且配置过程中容易因为配置数据之间的冲突等造成运行中的错误。
例如在一条i2c总线上同时挂载89HPES12(SMbus通信)和RXS2448(i2c通信)芯片时,需要重新配置i2c控制器的器件地址、器件地址长度、帧长度、ACK\NACK等参数。
发明内容
针对现有技术中的不足,兼容不同类型的I2C接口器件和SMBUS接口器件,本发明提出了一中精简的主模式I2C/SMBUS控制器及其控制方法,使用控制字作为唯一的用户通信接口。具体而言,本发明提供了以下技术方案:
一方面,本发明提供了一种主模式I2C/SMBUS控制器,所述I2C/SMBUS控制器包括:相位生成器、SDA生成模块、SCL生成模块;
SDA生成模块根据控制字和相位脉冲生成SDA信号,以及控制SCL生成模块的控制信号;
SCL生成模块根据相位脉冲和控制信号产生SCL信号,所述控制信号包括开启信号和锁存信号;
所述相位生成器用于计数,以及基于相位配置寄存器中的配置信息生成相位脉冲,所述相位脉冲以相位p1、相位p2、相位p3、相位p4为一个周期;
所述控制字包括:帧开始F_start,帧结束F_end,读写标识w/r,起始位start,应答位标识ack/nack,截止位标识stop和数据信息Data;
SDA生成模块通过写FIFO模块、读FIFO模块与用户接口连接。
优选地,在执行写操作时:用户接口将控制字写入写FIFO模块,当读写标识为写时,SDA生成模块读取写FIFO模块中的控制字,SDA生成模块根据控制字中的数据信息Data,将数据信息Data转为I2C总线的SDA信号进行输出;
在执行读操作时:用户接口将控制字写入写FIFO模块,当读写标识为读时,SDA生成模块读取写FIFO中的控制字,并根据控制字中的数据信息Data,将I2C总线的SDA信号转化为数据信息Data,并将数据信息Data写入读FIFO模块中。
优选地,所述SDA生成模块中,读或写SDA信号时,SDA信号和相位脉冲的相位对齐。
优选地,所述SDA生成模块包括以下状态:
空闲状态、帧起始和时序同步状态、起始位状态、写数据状态、读数据状态、应答状态、终止位状态、下一控制字加载状态;
SDA生成模块基于控制字,在相位生成器产生的不同相位时刻,执行在上述状态之间的跳转。
优选地,所述SDA生成模块在空闲状态时,SCL使能信号处于不使能状态,SCL锁存信号处于不锁存状态,SDA信号输出为高电平;
当控制字中帧开始F_start=1时,SDA生成模块跳转到帧起始和时序同步状态,否则,SDA生成模块保持本状态。
优选地,所述SDA生成模块在帧起始和时序同步状态时,SCL使能信号在p2相位时置为使能,其他时刻保持原状态;SCL锁存信号处于不锁存状态,SDA信号输出为高电平;
当p2相位时,SDA生成模块跳转到起始位状态,其他时刻保持帧起始和时序同步状态。
优选地,所述SDA生成模块在起始位状态时,SDA生成模块根据控制字是否有起始位产生I2C起始位时序;在起始位状态时:
如果有起始位:则SCL使能信号使能;SCL锁存信号不锁存;SDA信号在p3相位至低电平,其他时刻保持原状态;在p1相位时,SDA生成模块根据控制字的读写标识w/r跳转进入写数据状态或读数据状态;
如果没有起始位:则SCL使能信号使能,SCL锁存信号锁存,SDA信号输出为高电平;在p1相位时,SDA生成模块根据控制字的读写标识w/r跳转进入写数据状态或读数据状态。
优选地,所述SDA生成模块在写数据状态时,SCL使能信号使能,SCL锁存信号不锁存,SDA信号在p1相位发送数据信息Data,并在完成数据信息Data发送后,且在p1相位时跳转至应答状态。
优选地,所述SDA生成模块在读数据状态时:SCL使能信号使能;SCL锁存信号不锁存;SDA信号输入为高阻,并且在p3相位读取I2C/SMBUS的数据,并在完成I2C/SMBUS的数据读取后,且在p1相位时跳转至应答状态。
优选地,所述SDA生成模块在应答状态时,根据读写标识w/r和应答位标识ack/nack生成应答信号或非应答信号,并在p1相位时跳转到终止状态;
在应答状态下,SCL使能信号使能,SCL锁存信号锁存,SDA信号在读写标识w/r为写时,输入为高阻,且在p3相位时读取ack状态;SDA信号在读写标识w/r为读时,作为输出。
优选地,所述SDA生成模块在终止位状态时,根据控制字是否有截止位标识stop来产生I2C终止位时序,并在p1相位时,当有截止位标识stop时,跳转到空闲状态,当无截止位标识stop时,跳转到下一控制字加载状态;
SDA生成模块在终止位状态时,如果有截止位标识stop,则SCL使能信号在p2相位取消使能,SCL锁存信号锁存,SDA信号在p4相位时至高电平,其他时刻为低电平;如果无截止位标识stop,则SCL使能信号使能,SCL锁存信号锁存,SDA信号在p4相位时至高电平,其他时刻为低电平。
优选地,所述SDA生成模块在下一控制字加载状态时,SCL使能信号保持不变,SCL锁存信号保持不变,SDA信号保持不变,在p2相位时跳转至起始位状态。
优选地,对于所述SCL生成模块:
当scl使能信号为低时,scl生成模块不使能,此时scl信号为高;
当scl使能信号为高时,scl生成模块使能,若scl锁存信号为高,此时scl生成模块锁存;
当scl使能信号为高时,scl生成模块使能,若scl锁存信号为低,scl生成模块不锁存,此时scl信号根据相位脉冲进行输出。
优选地,所述相位生成器设置为有计数上限的计数器,其以相位P1、p2、p3、p4为一个小循环。
另一方面,本发明还提供了一种主模式I2C/SMBUS控制方法,所述方法应用于如上所述的主模式I2C/SMBUS控制器,该方法包括:
S1、以轮询方式查看是否启动同步,以及控制字中的帧开始F_start是否标识为开始,当两者均为是时,跳转到S2;
S2、判断控制字中的读写标识w/r,当为读标识时,跳转S3,当为写标识时,跳转至S4;
S3、读取控制字中的数据信息Data,再写应答位标识ack/nack,并跳转至S5;
S4、完成写数据信息Data,并读应答位标识ack/nack,并跳转至S5;
S5、判断是否有截止位标识stop,当有截止位标识stop时,则读FIFO,并跳转至S1;当无截止位标识stop时,则读FIFO,并跳转至S2。
与现有技术相比,本发明具有如下优点:
一方面,本控制器无需进行器件地址、器件地址长度、帧长度、ACK\NACK等配置,本方案将起始位、ACK位、帧起始等信息纳入控制字,由控制字控制控制器实现i2c/SMBUS,在挂载多个总线设备时,无需进行配置。
另一方面,本方案可以不占用ARB总线,用户将本控制器看做一个写FIFO和一个读FIFO,通过写FIFO将控制字写入本控制器。在配置多个从设备时,用户写完控制字后控制器根据控制字执行,待控制器完成传输后读取或状态信息即可。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1为本发明实施例的主模式I2C/SMBUS控制器结构图;
图2为本发明实施例的控制字格式;
图3为本发明实施例的SDA模块状态机流程图;
图4为本发明实施例的相位器计数器的循环计数示意图;
图5为本发明实施例的方法流程图;
图6为本发明实施例的设备结构图。
具体实施方式
下面结合附图对本发明实施例进行详细描述。应当明确,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
本领域技术人员应当知晓,下述具体实施例或具体实施方式,是本发明为进一步解释具体的发明内容而列举的一系列优化的设置方式,而该些设置方式之间均是可以相互结合或者相互关联使用的,除非在本发明明确提出了其中某些或某一具体实施例或实施方式无法与其他的实施例或实施方式进行关联设置或共同使用。同时,下述的具体实施例或实施方式仅作为最优化的设置方式,而不作为限定本发明的保护范围的理解。
本发明中,为了兼容不同类型的I2C接口器件和SMBUS接口器件,提出一中精简的I2C/SMBUS控制器,以及其相关的控制方法。本发明中使用控制字作为唯一的用户通信接口,将I2C/SMBUS通信中的帧起始、帧截止、起始位、读写数据位、ACK\NACK、停止位等统一到控制字中。
在ip实现方面,采用相位脉冲作为逻辑基准(scl\sda的逻辑翻转时刻与脉冲对齐),SDA生成模块控制根据控制字和相位脉冲生成SDA信号,SCL生成模块根据相位脉冲和开启信号、锁存信号控制生成SCL。在用户接口方面,本控制器可以看作是两个特定设计的FIFO,所有的I2C/SMBUS帧均有软件控制,操作简单。
结合图1所示,在一个具体的实施例中,本发明的I2C/SMBUS控制器结构主要包括相位生成器、SDA生成模块、SCL生成模块;SDA生成模块的逻辑状态机根据相位脉冲和读取的FIFO数值产生SDA信号;SCL生成模块根据相位脉冲和控制信号(例如开启信号slc_en、锁存信号slc_latch)产生SCL信号。
用户接口通过相位配置寄存器与相位生成器连接,从而对相位生成器进行配置。相位生成器发送相位脉冲至SCL生成模块,同时发送相位脉冲至SDA生成模块。SDA生成模块发送sd_en信号、sd_latch信号至SCL生成模块,从而控制SCL生成模块结合相位脉冲产生相应的SCL信号。
SDA生成模块通过状态寄存器与用户接口连接,将状态信号发送至用户接口。用户接口通过写FIFO模块,将控制字发送至SDA生成模块,该控制字如图2所示,包括数据信息、帧起始标识、起始位标识、读写标识等。SDA生成模块有两个主要工作状态,即读状态和写状态,由读写标识位来判断。如果在写状态,则SDA生成模块控制SDA总线把数据信号输出;如果在读状态,SDA总线的所属权属于从设备,则此时SDA生成模块的功能是读SDA总线上的数据信号,读取之后,就把连接在SDA总线上的从设备中的数据写到读FIFO中,然后用户接口读取读FIFO,此时用户接口将从设备中的数据读取出来,以供用户后续使用。
进一步地解释,结合图1,SDA生成模块通过写FIFO模块、读FIFO模块与用户接口连接。在执行写操作时:用户接口将控制字写入写FIFO模块,当读写标识为写时,SDA生成模块读取写FIFO模块中的控制字,SDA生成模块根据控制字中的数据信息Data,将数据信息Data转为I2C总线的SDA信号进行输出。在执行读操作时:用户接口将控制字写入写FIFO模块,当读写标识为读时,SDA生成模块读取写FIFO中的控制字,并根据控制字中的数据信息Data,将I2C总线的SDA信号转化为数据信息Data,并将数据信息Data写入读FIFO模块中。
在上文的控制字方面,示例性地,本发明中,将I2C/SMBUS通信中的帧起始、帧结束、起始位、读写数据位、应答位、截止位等统一到控制字中,控制字格式如图2所示。其中,F_start表示帧开始,F_end表示帧结束,w/r表示控制字读写标识,start表示起始位,ack/nack表示应答位标识,stop表示截止位标识,Data表示数据内容。
以下,对各关键模块展开进行说明。
一、SDA生成模块
结合图3所示,SDA生成模块可以视为一个状态机,示例性地,本模块主要应当具备三个功能:功能1——读写SDA信号,SDA信号和脉冲相位对齐;功能2——状态转换与脉冲相位对齐;功能3——控制SCL生成模块的使能或锁存,即通过产生的开启信号和锁存信号,实现对SCL生成模块的控制。我们结合图3及图4的相位图,对SDA生成模块的各个状态及状态的转换进行展开说明。
状态1:即图3中的Idle状态,此时处于空闲状态,示例性地,当前控制字F_start=1时进入下一状态2。在当前状态下:
SCL使能信号不使能,即scl_en=0。
SCL锁存信号不锁存,即scl_latch=0。
SDA信号输出为高电平,即sda=1。
状态机跳转条件为:
当控制字的F_start=1时进入状2:state=Frame_start/syn,即进入帧起始和时序同步状态。
当控制字的F_start=0时保持状态1:state=Idle,此时处于Idle状态(即空闲状态)。
状态2:即Frame_start/sync状态,此时处于帧起始和时序同步状态,该状态是一个完整I2C/SMBUS帧的起始,在特定时刻进行帧起始可以实现scl生成模块、sda生成模块的时序同步。当前状态下:
SCL使能信号在p2相位使能,即t(p2)时scl_en=1,其他时刻SCL使能信号保持原有状态不变,即如果原状态是1,则保持1,原状态是0,则保持0。
SCL锁存信号仍然处于不锁存状态,即scl_latch=0。
SDA信号输出为高电平,即sda=1。
状态机跳转条件为:
当p2相位时跳转进入状态3,即t(p2)时state=st_start状态,其他时刻保持当前状态state= Frame_start/syn。
状态3:即st_start状态,此时处于起始位状态。在该状态下,根据控制字是否有起始位产生I2C起始位时序,在p3相位进入下一状态。在此状态下:
如果有起始位:
SCL使能信号使能,即scl_en=1。
SCL锁存信号不锁存,即scl_latch=0。
SDA信号在p3时刻至低电平,其他时刻保持原状态,即t(p3)时sda=0,其他时刻sda=sda。
状态机跳转条件为:
当p1相位时跳转进入状态4或状态5,其他时刻保持该状态不变。
即t(p1)时state=st_wrbit 或者 st_rdbit,其他时刻state=st_start,即保持起始位状态。
如果没有起始位:
SCL使能信号使能,即scl_en=1。
SCL锁存信号锁存,即scl_latch=1。
SDA信号输出为高电平,即sda=1。
状态机跳转条件为:
当p1相位时(根据控制字读写标识)跳转到状态4或状态5,其他时刻保持状态不变,即t(p1)时state=st_wrbit or st_rdbit,其他时刻state=st_start。
状态4:即st_wrbit状态,此时处于写数据状态,该状态下将控制字的Data数据进行逐位发送,完成发送后在p1相位进入下一状态,示例性地,该Data数据可以是8位的。即这一状态下:
SCL使能信号使能,即scl_en=1。
SCL锁存信号不锁存,即scl_latch=0。
SDA信号在p1相位逐位发送data(7)~data(0),即t(p1+nT)时sda=data(7-n),n=0~7。此处,T表示相位生成器的单个周期,即相邻两个相位之间的时间间隔。
状态机跳转条件为:
当完成8位Data数据发送且p1相位时跳转到状态6,即t(p1+8*T)时state=st_ackbit,其他时刻:state=st_wrbit。
状态5:即st_rdbit状态,此时处于读数据状态,该状态下将逐位读取I2C/SMBUS的8位数据,完成读取后在p1相位进入下一状态。即这一状态下:
SCL使能信号使能, 即scl_en=1。
SCL锁存信号不锁存, 即scl_latch=0。
SDA信号输入为高阻,且在p3相位逐位读取I2C/SMBUS的8位Data数据,即sda=Z,且t(p3+nT)时datain (7-n)= sda,n=0~7。Z表示高阻。
状态机跳转条件为:
当完成8位Data数据读取完毕且p1相位时,跳转到状态6,即t(p1+8*T)时state=st_ackbit,其他时刻state=st_rdbit,即其他时刻保持。
状态6:即st_ackbit状态,此时处于应答状态。在该状态下,根据控制字的读写标识和应答标识生成应答(或非应答)信号或判定应答(或非应答)信号,p1相位时刻进入下一状态,即这一状态下:
SCL使能信号使能, 即scl_en=1。
SCL锁存信号锁存, 即scl_latch=0。
SDA信号在写控制字中为输入高阻,且在p3相位读取ack状态,即sda=Z,ack_in=sda。SDA信号在读控制字中为输出,即sda=ack/nack。
状态机跳转条件为:
当p1相位时跳转到状态7,其他时刻保持。
即t(p1)时state=st_stopbit,其他时刻state=st_ackbit,即其他时候保持。
状态7:即st_stopbit状态,此时处于终止位状态。在该状态下,根据控制字是否有终止位(即截止位标识stop)产生I2C终止位时序,在p1相位进入下一状态。即这一状态下:
当有终止位时:
SCL使能信号在p2相位取消使能,即t(p2)时scl_en=0,其他时刻scl_en=scl_en。
SCL锁存信号锁存,即scl_latch=1。
SDA信号在p4时刻至高电平,其他时刻至低电平。即t(p3)时sda=1,其他时刻sda=0。
当无终止位时:
SCL使能信号使能,即scl_en=1。
SCL锁存信号锁存,即scl_latch=1。
SDA信号在p4时刻至高,其他时刻至低。即t(p3)时sda=1,其他时刻sda=0。
状态机跳转条件为:
当p1相位时(根据终止位标识)跳转到状态8或状态1,其他时刻保持,即在P1相位时,有终止位时跳转到状态1,无终止位时,跳转到状态8,终止位标识表示有终止位或无终止位。即t(p1)时state=st_idle or st_wordstart,其他时刻state=st_stopbit。
状态8:即st_wordstart状态,此时处于下一控制字加载状态,在该状态下,状态机加载下一个控制字,在p2相位进入下一个状态。即这一状态下:
SCL使能信号保持不变,即scl_en=scl_en。
SCL锁存信号保持不变,即scl_latch=scl_latch。
SDA信号保持不变,即sda=sda。
状态机跳转条件为:
当p2相位时跳转到状态3,即t(p3)时state= st_start,其他时刻state=st_wordstart。
二、SCL生成模块
SCL生成模块,基于scl使能信号、锁存信号的不同状态,在不同的相位时,执行对应的动作,以配合SDA生成模块完成状态转换及信号模式的控制。
当scl使能信号为低时,scl生成模块不使能,此时scl信号为高,即:
if(scl_en=0),then(scl=1)。
当scl使能信号为高时,scl生成模块使能,若scl锁存信号为高,此时scl生成模块锁存,此时scl信号为低,即:
If(scl_en=1&scl_latch=1), then(slc=0)。
当scl使能信号为高时,scl生成模块使能,若scl锁存信号为低,scl生成模块不锁存,此时scl信号根据相位脉冲进行输出。具体的,p1相位时scl信号为低,p2相位时scl信号为高,p3相位时scl信号为高,p4相位时scl信号为低,即:
(1)scl锁存信号为低且p1相位信号等于1时,scl为低,即:
If (scl_en=1&scl_latch=0&p1=1),then(slc=0)。
(2)当scl使能信号为高、scl锁存信号为低且p2相位信号等于1时,scl为高,即:If(scl_en=1&scl_latch=0&p2=1),then(slc=1)。
(3)当scl使能信号为高、scl锁存信号为低且p3相位信号等于1时,scl为高,即:If(scl_en=1&scl_latch=0&p3=1),then(slc=1)。
(4)当scl使能信号为高、scl锁存信号为低且p4相位信号等于1时,scl为低,即:If(scl_en=1&scl_latch=0&p4=1),then(slc=0)。
三、相位生成器
参考图4,相位生成器是一个计数器,可通过设置计数器上限后循环计数。相位生成器主要用于为SDA生成模块、SCL生成模块提供脉冲基准(或称为时钟基准)。示例性地,我们可以设置其为P1—P4为一个小循环,相邻相位的时间间隔为T,设工作时钟是100ms,I2C通信速率为100k,计数最大值例如可以设置为:cnt_max=999。
在相应时刻产生脉冲基准为:cnt(p1)=0;cnt(p2)=249;cnt(p3)=499;cnt(p4)=749;
此时的I2C接口scl的数据位为100k,占空比为50%。
基于上述实施例中的控制器设计方案,如图5所示,以数据信息Data为8位的数据为例,本发明的具体执行方法如下:
S1、以轮询方式查看是否启动同步,以及控制字中的帧开始F_start是否标识为开始,当两者均为是时,在p2相位时(即p2=1时)跳转到S2;
S2、判断控制字中的读写标识w/r,当为读标识时,跳转S3,当为写标识时,跳转至S4;
S3、读取控制字中的数据信息Data,再写应答位标识ack/nack,并跳转至S5;
S4、完成写数据信息Data,并读应答位标识ack/nack,并跳转至S5;
S5、判断是否有截止位标识stop,当有截止位标识stop时,则读FIFO,并跳转至S1;当无截止位标识stop时,则读FIFO,并跳转至S2。
示例性地,在S4中,进一步包括:先判断是否有起始位Start,有起始位,那么产生起始位时序(即SCL使能信号使能;SCL锁存信号不锁存;SDA信号在p3相位至低电平,其他时刻保持原状态),进入写数据信息Data状态;无起始位时,产生非起始位时序N_start(即SCL使能信号使能,SCL锁存信号锁存,SDA信号输出为高电平),在p1相位时,进入写数据信息Data状态。
在又一个实施例中,本发明的方案还可以通过系统的方式来实现,以执行如上实施例中涉及的方法中的主要方法流程,并实现对应的功能。
此外,本发明的方案还可以通过设备的方式来实现,即设置为一种电子设备。图6所示为本发明一实施例提供的电子设备的结构示意图。
如图6所示,电子设备600包括一个或多个处理器601和存储器602。
处理器601可以是中央处理单元(CPU)或者具有数据处理能力和/或信息执行能力的其他形式的处理单元,并且可以控制电子设备600中的其他组件以执行期望的功能。
存储器602可以包括一个或多个计算机程序产品,所述计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。所述易失性存储器例如可以包括随机存取存储器(RAM)和/或高速缓冲存储器(cache)等。所述非易失性存储器例如可以包括只读存储器(ROM)、硬盘、闪存等。在所述计算机可读存储介质上可以存储一个或多个计算机程序信息,处理器601可以运行所述程序信息,以实现上文所述的本发明的各个实施例的主模式I2C/SMBUS控制方法或者其他期望的功能。
在一个示例中,电子设备600还可以包括:输入装置603和输出装置604,这些组件通过总线系统和/或其他形式的连接机构(未示出)互连。
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,可以具体实现在任何可读存储介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

Claims (10)

1.一种主模式I2C/SMBUS控制器,其特征在于,所述I2C/SMBUS控制器包括:相位生成器、SDA生成模块、SCL生成模块;
SDA生成模块根据控制字和相位脉冲生成SDA信号,以及控制SCL生成模块的控制信号;
SCL生成模块根据相位脉冲和控制信号产生SCL信号,所述控制信号包括开启信号和锁存信号;
所述相位生成器用于计数,以及基于相位配置寄存器中的配置信息生成相位脉冲,所述相位脉冲以相位p1、相位p2、相位p3、相位p4为一个周期;
所述控制字包括:帧开始F_start,帧结束F_end,读写标识w/r,起始位start,应答位标识ack/nack,截止位标识stop和数据信息Data;
SDA生成模块通过写FIFO模块、读FIFO模块与用户接口连接。
2.根据权利要求1所述的I2C/SMBUS控制器,其特征在于,所述SDA生成模块包括以下状态:
空闲状态、帧起始和时序同步状态、起始位状态、写数据状态、读数据状态、应答状态、终止位状态、下一控制字加载状态;
SDA生成模块基于控制字,在相位生成器产生的不同相位时刻,执行在上述状态之间的跳转。
3.根据权利要求2所述的I2C/SMBUS控制器,其特征在于,所述SDA生成模块在帧起始和时序同步状态时,SCL使能信号在p2相位时置为使能,其他时刻保持原状态;SCL锁存信号处于不锁存状态,SDA信号输出为高电平;
当p2相位时刻,SDA生成模块跳转到起始位状态,其他时刻保持帧起始和时序同步状态。
4.根据权利要求2所述的I2C/SMBUS控制器,其特征在于,所述SDA生成模块在起始位状态时,SDA生成模块根据控制字是否有起始位产生I2C起始位时序;在起始位状态时:
如果有起始位:则SCL使能信号使能;SCL锁存信号不锁存;SDA信号在p3相位至低电平,其他时刻保持原状态;在p1相位时,SDA生成模块根据控制字的读写标识w/r跳转进入写数据状态或读数据状态;
如果没有起始位:则SCL使能信号使能,SCL锁存信号锁存,SDA信号输出为高电平;在p1相位时,SDA生成模块根据控制字的读写标识w/r跳转进入写数据状态或读数据状态。
5.根据权利要求2所述的I2C/SMBUS控制器,其特征在于,所述SDA生成模块在写数据状态时,SCL使能信号使能,SCL锁存信号不锁存,SDA信号在p1相位发送数据信息Data,并在完成数据信息Data发送后,且在p1相位时跳转至应答状态。
6.根据权利要求2所述的I2C/SMBUS控制器,其特征在于,所述SDA生成模块在读数据状态时:SCL使能信号使能;SCL锁存信号不锁存;SDA信号输入为高阻,并且在p3相位读取I2C/SMBUS的数据,并在完成I2C/SMBUS的数据读取后,且在p1相位时跳转至应答状态。
7.根据权利要求2所述的I2C/SMBUS控制器,其特征在于,所述SDA生成模块在应答状态时,根据读写标识w/r和应答位标识ack/nack生成应答信号或非应答信号,并在p1相位时跳转到终止状态;
在应答状态下,SCL使能信号使能,SCL锁存信号锁存,SDA信号在读写标识w/r为写时,输入为高阻,且在p3相位时读取ack状态;SDA信号在读写标识w/r为读时,作为输出。
8.根据权利要求2所述的I2C/SMBUS控制器,其特征在于,所述SDA生成模块在终止位状态时,根据控制字是否有截止位标识stop来产生I2C终止位时序,并在p1相位时,当有截止位标识stop时,跳转到空闲状态,当无截止位标识stop时,跳转到下一控制字加载状态;
SDA生成模块在终止位状态时,如果有截止位标识stop,则SCL使能信号在p2相位取消使能,SCL锁存信号锁存,SDA信号在p4相位时至高电平,其他时刻为低电平;如果无截止位标识stop,则SCL使能信号使能,SCL锁存信号锁存,SDA信号在p4相位时至高电平,其他时刻为低电平。
9.根据权利要求2所述的I2C/SMBUS控制器,其特征在于,所述SDA生成模块在下一控制字加载状态时,SCL使能信号保持不变,SCL锁存信号保持不变,SDA信号保持不变,在p2相位时跳转至起始位状态。
10.一种主模式I2C/SMBUS控制方法,其特征在于,所述方法应用于权利要求1-9任一所述的主模式I2C/SMBUS控制器,该方法包括:
S1、以轮询方式查看是否启动同步,以及控制字中的帧开始F_start是否标识为开始,当两者均为是时,在p2相位时跳转到S2;
S2、判断控制字中的读写标识w/r,当为读标识时,跳转S3,当为写标识时,跳转至S4;
S3、读取控制字中的数据信息Data,再写应答位标识ack/nack,并跳转至S5;
S4、完成写数据信息Data,并读应答位标识ack/nack,并跳转至S5;
S5、判断是否有截止位标识stop,当有截止位标识stop时,则读FIFO,并跳转至S1;当无截止位标识stop时,则读FIFO,并跳转至S2。
CN202311293814.4A 2023-10-09 2023-10-09 一种主模式i2c/smbus控制器及其控制方法 Active CN117033293B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311293814.4A CN117033293B (zh) 2023-10-09 2023-10-09 一种主模式i2c/smbus控制器及其控制方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311293814.4A CN117033293B (zh) 2023-10-09 2023-10-09 一种主模式i2c/smbus控制器及其控制方法

Publications (2)

Publication Number Publication Date
CN117033293A true CN117033293A (zh) 2023-11-10
CN117033293B CN117033293B (zh) 2023-12-08

Family

ID=88630385

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311293814.4A Active CN117033293B (zh) 2023-10-09 2023-10-09 一种主模式i2c/smbus控制器及其控制方法

Country Status (1)

Country Link
CN (1) CN117033293B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117648084A (zh) * 2024-01-29 2024-03-05 井芯微电子技术(天津)有限公司 一种实现i2c底层驱动的方法、装置及可读介质

Citations (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060104396A1 (en) * 2004-10-21 2006-05-18 Hewlett-Packard Development Company, L.P. Serial bus system
CN101089838A (zh) * 2007-07-28 2007-12-19 中兴通讯股份有限公司 一种实现i2c读写时序的方法
CN102163180A (zh) * 2011-01-20 2011-08-24 电子科技大学 一种i2c总线接口电路模块及其控制方法
US20130019039A1 (en) * 2011-06-10 2013-01-17 Intersil Americas LLC System and method for operating a one-wire protocol slave in a two-wire protocol bus environment
CN104111906A (zh) * 2013-04-16 2014-10-22 Nxp股份有限公司 针对单线内部集成电路控制总线的方法和系统
CN105468547A (zh) * 2015-11-18 2016-04-06 哈尔滨工业大学 一种基于axi总线的便捷可配置帧数据存取控制系统
CN105677598A (zh) * 2016-01-04 2016-06-15 中国科学院嘉兴微电子与系统工程中心 基于i2c接口快速读取多个mems传感器数据的模块和方法
CN106649158A (zh) * 2016-12-27 2017-05-10 中国科学院微电子研究所 通过i2c接口读写内部寄存器堆的装置及方法
CN111626010A (zh) * 2020-04-24 2020-09-04 广西华南通信股份有限公司 一种硬件兼容通用型i2c控制器ip核设计的方法及装置
CN113114550A (zh) * 2021-04-07 2021-07-13 中国科学院苏州生物医学工程技术研究所 一种i2c通信控制方法、设备及存储介质
CN114443544A (zh) * 2022-04-02 2022-05-06 井芯微电子技术(天津)有限公司 基于i2c模块主从模式切换方法及设备
CN114564428A (zh) * 2022-01-19 2022-05-31 中国电子科技集团公司第十研究所 机载电子设备i/o端口扩展系统
CN116226016A (zh) * 2023-01-09 2023-06-06 湖南品腾电子科技有限公司 一种i2c接口电路及其控制方法
CN116450552A (zh) * 2023-06-09 2023-07-18 江苏润石科技有限公司 基于i2c总线异步批量读写寄存器的方法及系统

Patent Citations (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060104396A1 (en) * 2004-10-21 2006-05-18 Hewlett-Packard Development Company, L.P. Serial bus system
CN101089838A (zh) * 2007-07-28 2007-12-19 中兴通讯股份有限公司 一种实现i2c读写时序的方法
CN102163180A (zh) * 2011-01-20 2011-08-24 电子科技大学 一种i2c总线接口电路模块及其控制方法
US20130019039A1 (en) * 2011-06-10 2013-01-17 Intersil Americas LLC System and method for operating a one-wire protocol slave in a two-wire protocol bus environment
CN104111906A (zh) * 2013-04-16 2014-10-22 Nxp股份有限公司 针对单线内部集成电路控制总线的方法和系统
CN105468547A (zh) * 2015-11-18 2016-04-06 哈尔滨工业大学 一种基于axi总线的便捷可配置帧数据存取控制系统
CN105677598A (zh) * 2016-01-04 2016-06-15 中国科学院嘉兴微电子与系统工程中心 基于i2c接口快速读取多个mems传感器数据的模块和方法
CN106649158A (zh) * 2016-12-27 2017-05-10 中国科学院微电子研究所 通过i2c接口读写内部寄存器堆的装置及方法
CN111626010A (zh) * 2020-04-24 2020-09-04 广西华南通信股份有限公司 一种硬件兼容通用型i2c控制器ip核设计的方法及装置
CN113114550A (zh) * 2021-04-07 2021-07-13 中国科学院苏州生物医学工程技术研究所 一种i2c通信控制方法、设备及存储介质
CN114564428A (zh) * 2022-01-19 2022-05-31 中国电子科技集团公司第十研究所 机载电子设备i/o端口扩展系统
CN114443544A (zh) * 2022-04-02 2022-05-06 井芯微电子技术(天津)有限公司 基于i2c模块主从模式切换方法及设备
CN116226016A (zh) * 2023-01-09 2023-06-06 湖南品腾电子科技有限公司 一种i2c接口电路及其控制方法
CN116450552A (zh) * 2023-06-09 2023-07-18 江苏润石科技有限公司 基于i2c总线异步批量读写寄存器的方法及系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
翁俊礼 等: "传感器现场校准测试系统电气系统设计与实现", 计测技术, vol. 34, no. 4, pages 38 - 55 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117648084A (zh) * 2024-01-29 2024-03-05 井芯微电子技术(天津)有限公司 一种实现i2c底层驱动的方法、装置及可读介质
CN117648084B (zh) * 2024-01-29 2024-04-30 井芯微电子技术(天津)有限公司 一种实现i2c底层驱动的方法、装置及可读介质

Also Published As

Publication number Publication date
CN117033293B (zh) 2023-12-08

Similar Documents

Publication Publication Date Title
CN117033293B (zh) 一种主模式i2c/smbus控制器及其控制方法
TWI338835B (en) Method and apparatus for controlling a data processing system during debug
JP4550439B2 (ja) Ecc制御装置
JP5531372B2 (ja) ロバストメモリリンク試験の方法
EP3242199A1 (en) Flash memory controller and control method for flash memory controller
US7197590B2 (en) Method and apparatus for connecting LPC bus and serial flash memory
JPH04119588A (ja) メモリのリフレッシュ制御回路
US20070038795A1 (en) Asynchronous bus interface and processing method thereof
US6769051B2 (en) Memory controller and memory control method for controlling an external memory device to be accessible even in an addressing mode that is not supported thereby
TW201007734A (en) Flash memory control apparatus having signal-converting module
ITTO20010333A1 (it) Dispositivo e metodo di gestione dei cicli di attesa durante la lettura di una memoria non volatile.
KR100389038B1 (ko) 레이트 라이트 기능을 갖는 동기형 에스램 장치
JPH1173778A (ja) 半導体記憶装置
TW516037B (en) Buffer and method for compensating adjacent bit threshold voltage
JPH10340596A (ja) データ記憶装置および半導体記憶装置
JP4859650B2 (ja) 解析方法及び解析装置
JP2010088188A (ja) モータ制御回路
JP5022783B2 (ja) データ出力回路
JP2011043354A (ja) 集積回路装置、表示コントローラー及び電子機器
US10991434B2 (en) Serial interface circuit, semiconductor device and serial-parallel conversion method
JP4640792B2 (ja) 半導体論理装置およびこれを備える電子機器
KR200151265Y1 (ko) 시분할다중접속방식의 gsm단말기를 위한 카운터회로
JP2023150107A (ja) インサーキットエミュレータ装置
KR100994356B1 (ko) 통신 시스템 및 통신 방법
JP2010088186A (ja) モータ制御回路

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