CN117370258B - 一种高速i2c总线的多路低速i2c扩展方法及装置 - Google Patents
一种高速i2c总线的多路低速i2c扩展方法及装置 Download PDFInfo
- Publication number
- CN117370258B CN117370258B CN202311445409.XA CN202311445409A CN117370258B CN 117370258 B CN117370258 B CN 117370258B CN 202311445409 A CN202311445409 A CN 202311445409A CN 117370258 B CN117370258 B CN 117370258B
- Authority
- CN
- China
- Prior art keywords
- speed
- bus
- controller
- low
- data
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 59
- 230000006854 communication Effects 0.000 claims abstract description 77
- 238000004891 communication Methods 0.000 claims abstract description 63
- 230000004044 response Effects 0.000 claims abstract description 42
- 239000000872 buffer Substances 0.000 claims abstract description 37
- 230000005540 biological transmission Effects 0.000 claims description 28
- 238000012545 processing Methods 0.000 claims description 28
- 230000008569 process Effects 0.000 claims description 25
- 230000006870 function Effects 0.000 claims description 11
- 238000001514 detection method Methods 0.000 claims description 5
- 230000002159 abnormal effect Effects 0.000 claims description 4
- 238000012937 correction Methods 0.000 claims description 4
- 230000009471 action Effects 0.000 claims description 2
- 238000013507 mapping Methods 0.000 claims description 2
- 230000003139 buffering effect Effects 0.000 description 7
- 238000010586 diagram Methods 0.000 description 6
- 230000007547 defect Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000008054 signal transmission Effects 0.000 description 1
- 230000001960 triggered effect Effects 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/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
- 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
- G06F13/4291—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus using a clocked protocol
-
- 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)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Bus Control (AREA)
Abstract
本发明提供一种高速I2C总线的多路低速I2C扩展方法及装置,属于I2C总线技术领域;方法包括:将高速I2C总线和多路低速I2C总线接入I2C控制器,初始化并设置基础参数;随后,主机通过高速I2C总线发送通信信号;I2C控制器接收通信信号,并将通信信号缓存于I2C控制器内部;缓存的通信信号被分时复用至多路低速I2C总线上的从机中,从机响应后,通过低速I2C总线发送响应信号;I2C控制器接收响应信号,并将响应信号缓存于I2C控制器内部;缓存的响应信号被复用回高速I2C总线,完成主机与多个从机的并行通信;本发明在面对需要满足从机挂接数而进行多路I2C扩展的场景下,提升了访问效率。
Description
技术领域
本发明属于I2C总线技术领域,应用于多路通信扩展过程中,具体为一种高速I2C总线的多路低速I2C扩展方法及装置。
背景技术
I2C(Inter-Integrated Circuit)总线是一种串行、半双工总线,主要用于近距离、低速的芯片间通信过程。I2C总线包括两根双向的信号线:一根为数据线SDA(SerialData),用于收发数据;一根为时钟线SCL(Serial Clock),用于通信双方的时钟同步。I2C总线的硬件结构简单、成本较低、功能可靠,因此在各个领域得到了广泛的应用。
如今,I2C总线中,面向8位串行通信的双向数据传输速率在不断提高,因此逐渐表露出了现有技术的一些局限。传统的I2C总线结构存在着速度较慢、通信距离有限、设备数量受限的缺陷,限制其在高速数据传输和多设备访问方面的应用。以最常见的数据中心或电路系统为例,由于连接主机的1路I2C总线上挂接的从机数量有限,一般为4个从机,所以需要通过I2C扩展器,将1路I2C总线扩展为多路,例如扩展为4路或8路,来满足需求。
但是,在通过原有的I2C总线访问扩展之后的I2C时,在任意时刻,仅能访问后端的1路扩展总线,其他路的扩展总线是无法同时访问的;这一限制条件使得主机访问多个从机的效率变得低下。此外,在I2C总线硬件结构中使用的I2C缓存器,其输入与输出都是以相同的工作速率进行操作过程,这也将导致访问效率低下的情况出现。
在I2C总线技术中,针对多路通信扩展过程,传统的分时复用方式中,输入与输出串行进行,每个数据包的传输需要经过多个时钟周期。当输入与输出速率相等时,需等待前一个数据包的传输完成后,才可进行下一个数据包的传输;这一方式形成了一定的等待时间,是降低访问效率的关键因素。因此,本领域技术人员围绕这一关键因素,致力于探寻一种新的高速I2C总线扩展为多路低速I2C的技术,以满足I2C总线对于从机挂接数的需求。
发明内容
本发明的目的是为了改善背景技术中传统I2C总线在访问效率上的缺陷,因此提出了一种新的将高速I2C总线扩展为多路低速I2C的方法及对应装置。本发明通过I2C控制器的灵活配置和时序控制,顺利实现了I2C总线新的分时复用过程,从而提高了信号传输速率和通信效率;在需要满足从机挂接数而面对多路I2C扩展的场景时,本发明顺利提升了访问效率。
本发明采用了以下技术方案来实现目的:
一种高速I2C总线的多路低速I2C扩展方法,所述方法包括如下步骤:
S1、将高速I2C总线和多路低速I2C总线接入I2C控制器,初始化I2C控制器并设置基础参数;随后,主机通过高速I2C总线发送通信信号;
S2、I2C控制器接收高速I2C总线中的通信信号,并将通信信号缓存于I2C控制器内部;
S3、I2C控制器将缓存的通信信号分时复用至多路低速I2C总线上的对应从机中;
S4、对应从机响应后,通过低速I2C总线发送响应信号;
S5、I2C控制器接收低速I2C总线中的响应信号,并将响应信号缓存于I2C控制器内部;
S6、I2C控制器将缓存的响应信号复用回高速I2C总线,完成主机与多个从机的并行通信过程。
其中,主机发送的通信信号包括第一数据信号和第一时钟信号;从机发送的响应信号包括第二数据信号和第二时钟信号,第二数据信号中包括对应从机的地址数据。
进一步的,通过I2C控制器内部集成的分时复用单元,完成步骤S3中的通信信号分时复用过程和步骤S6中的响应信号复用过程;分时复用单元对经过自身的信号进行传输与切换操作。
进一步的,通过I2C控制器内部集成的数据处理单元,完成步骤S2中的通信信号缓存过程和步骤S5中的响应信号缓存过程;数据处理单元包括数据缓存组件和数据读取组件。此外,通过应用FIFO存储器的方式,搭建数据缓存组件。
本发明同时提供一种高速I2C总线的多路低速I2C扩展装置,包括主机、多个从机、高速I2C总线、多路低速I2C总线和I2C控制器;I2C控制器通过高速I2C总线与主机相连接,还通过多路低速I2C总线与多个从机相连接;每1个从机与对应的1路低速I2C总线匹配相连;I2C控制器内部集成有分时复用单元和数据处理单元;
所述分时复用单元,用于将主机通过高速I2C总线发送的通信信号分时复用至多路低速I2C总线上的对应从机中;还用于将对应从机通过低速I2C总线发送的响应信号复用回高速I2C总线上的主机中;
所述数据处理单元包括数据缓存组件和数据读取组件;数据缓存组件为FIFO存储器,用于在I2C控制器接收通信信号或响应信号时,对相应信号进行缓存,并按照特定发送速率将缓存的信号进行发送;
I2C控制器在分时复用单元与数据处理单元的共同作用下,完成主机与多个从机的并行通信过程。
综上所述,由于采用了本技术方案,本发明的有益效果如下:
在本发明的I2C控制器中,分时复用单元通过时序控制和数据切换,实现了高效的数据传输和通信过程,提高了应用系统的传输效率和可靠性。高速I2C总线的数据被FIFO缓存,由扩展的低速I2C总线读取,实现了高速I2C总线至低速I2C总线的跨速度域读写功能。
本发明通过直接在I2C控制器上实现分时复用功能的这一理念,减少了应用系统的硬件成本和复杂度,从而提高了应用系统的稳定性。
本发明通过I2C控制器内部的数据处理单元,实现了对高速I2C总线数据的灵活处理与转发,能适应多路低速I2C总线的通信需求。
在本发明方法所对应的硬件结构中,可采用标准的I2C总线接口,能确保与现有设备的兼容性,同时具有较强的扩展性,可适应不同规模及复杂度的应用场景。
附图说明
图1为本发明方法的整体流程步骤示意图;
图2为本发明装置的结构示意图;
图3为本发明I2C控制器的初始化流程示意图;
图4为本发明信号数据传输过程中的缓存流程示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以按各种不同的配置来布置和设计。
因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例
一种高速I2C总线的多路低速I2C扩展方法,图1示出了该方法中的关键流程步骤,该方法的整体流程可总述如下:
S1、将高速I2C总线和多路低速I2C总线接入I2C控制器,初始化I2C控制器并设置基础参数;随后,主机通过高速I2C总线发送通信信号;
S2、I2C控制器接收高速I2C总线中的通信信号,并将通信信号缓存于I2C控制器内部;
S3、I2C控制器将缓存的通信信号分时复用至多路低速I2C总线上的对应从机中;
S4、对应从机响应后,通过低速I2C总线发送响应信号;
S5、I2C控制器接收低速I2C总线中的响应信号,并将响应信号缓存于I2C控制器内部;
S6、I2C控制器将缓存的响应信号复用回高速I2C总线,完成主机与多个从机的并行通信过程。
在详细介绍本实施例的方法前,有必要对应用此方法的装置硬件结构及连接关系做出说明。此方法应用于一种高速I2C总线的多路低速I2C扩展装置,具体结构关系可参看图2的示意。该装置包括主机、多个从机、高速I2C总线、多路低速I2C总线和I2C控制器;I2C控制器通过高速I2C总线与主机相连接,还通过多路低速I2C总线与多个从机相连接;每1个从机与对应的1路低速I2C总线匹配相连;I2C控制器内部集成有分时复用单元和数据处理单元。
本实施例中的主机数量为1,对应于1路高速I2C总线;从机数量为8,对应于8路低速I2C总线。因此,本实施例的方法及装置的目标是将1路I2C总线扩展为8路I2C总线,扩展后的总线上每1路仅挂载1个从机,实现主机与8个从机间的并行通信,以此提升传统串行通信的访问效率。
在本实施例装置中,分时复用单元用于将主机通过高速I2C总线发送的通信信号分时复用至多路低速I2C总线上的对应从机中;还用于将对应从机通过低速I2C总线发送的响应信号复用回高速I2C总线上的主机中。这一单元实现了多从机设备的并行访问,具有精确的时序控制和地址识别效果。
数据处理单元包括数据缓存组件和数据读取组件;数据缓存组件为FIFO存储器,用于在I2C控制器接收通信信号或响应信号时,对相应信号进行缓存,并按照特定发送速率将缓存的信号进行发送。这一单元使得I2C总线系统在需要读取或写入数据时,首先可检查缓存中是否有相应的数据,若有则可直接读取或写入,降低通信访问传输次数。
上述单元及组件的具体应用情况将在本实施例对方法部分的详述中进行详细介绍。对主机与从机间通信数据的分时复用与缓存读取是本实施例的技术要点,最终提高了总线利用率、数据传输效率,还避免了频繁的从机设备访问与数据传输过程,响应时间也得到同步加快。
以下内容详细介绍本发明方法中各步骤的具体细节。
首先是主机与从机间的传输信号介绍。当步骤S1中的I2C控制器初始化及设置完成后,主机发送的通信信号包括第一数据信号与第一时钟信号,其对应于高速I2C总线的一条数据线SDA和一条时钟线SCL进行传输。
同样的,对应从机在响应第一数据信号与第一时钟信号后,发送的响应信号包括第二数据信号与第二时钟信号;本实施例中,第二数据信号即包括了对应从机的地址数据,使得I2C控制器能通过时序控制和地址识别,在同一时间段内与多个从机设备进行通信。
本实施例的I2C控制器在分时复用过程中,为了确保不同从机间的数据传输不会发生冲突,还采用了时钟同步和冲突检测机制。I2C控制器内部集成有冲突检测单元,以确保各从机设备在正确的时序下进行数据传输。当发生冲突时,冲突检测单元内置的冲突处理策略被触发执行,进行如重试和优先级调整的处理操作。
接下来介绍本实施例方法的步骤S1中,I2C控制器的初始化与基础参数设置方式,可参看图3的示意。
S11、设置I2C控制器的引脚,引脚包括SDA引脚和SCL引脚;将I2C控制器的引脚与高速I2C总线和多路低速I2C总线相连后,配置引脚功能寄存器或引脚映射寄存器,使引脚设置为I2C功能;其中,SDA引脚对应连接各总线中的数据线SDA,SCL引脚对应连接各总线中的时钟线SCL;本实施例为了实现1路高速I2C扩展为8路低速I2C的效果,对应的I2C控制器具有1个高速SDA引脚与1个高速SCL引脚,以及8个低速SDA引脚与8个低速SCL引脚。
S12、配置I2C控制器的时钟频率;通过读取或设置I2C控制器内部的I2C时钟频率寄存器的参数,设定并行通信过程的时钟频率;本实施例中,还可依据并行通信过程的需求,启用或禁用I2C时钟频率寄存器的分频或倍频参数。
S13、配置I2C控制器的工作模式;通过读取或设置I2C控制器内部的I2C控制寄存器的参数,选择工作模式,同时配置额外I2C参数;本实施例中,工作模式可包括主模式、从模式和多主模式;额外I2C参数可包括地址格式、数据位宽和传输模式等参数内容。
S14、初始化I2C控制器的中断与DMA;根据实际通信需求,通过读取或设置I2C控制器内部的中断寄存器,以使能或禁用I2C控制器的中断功能;同时配置I2C控制器的DMA传输通道,在并行通信过程中采用DMA传输。
S15、启用I2C控制器;设置I2C控制寄存器的使能位,预设特定时长的启用延时,令完成初始化与基础参数设置的I2C控制器启用,从而进行后续的主机与多个从机的并行通信工作。
本实施例中,以下内容介绍I2C控制器内部集成的分时复用单元。分时复用单元可完成步骤S3中的通信信号分时复用过程和步骤S6中的响应信号复用过程,其对经过自身的信号进行传输与切换操作,设计的操作流程为:
S21、时序控制;依据通信信号或响应信号的时钟信息和时序要求,将信号在不同的输入与输出缓冲器之间进行切换,控制切换时间;这一步骤将确保数据在不同的输入与输出缓存器之间进行正确切换,以避免数据冲突和传输错误。
S22、时钟分频与时钟倍频;将来自高速I2C总线的通信信号进行时钟分频操作,令分频后的通信信号满足低速I2C总线的速度要求;将来自低速I2C总线的响应信号进行时钟倍频操作,令倍频后的响应信号满足高速I2C总线的速度要求。
S23、生成控制信号;分时复用单元依据操作需求,生成并通过控制信号来切换输入与输出缓存器;控制信号包括选择信号、使能信号和时频信号,可以精确控制数据的传输与切换过程。
本实施例中,分时复用单元还具有错误处理组件,对于I2C控制器工作过程的异常情况,错误处理组件可进行错误检测、纠错及处理操作。当出现数据冲突与传输错误时,通过数据纠错与重新传输的方式,解决异常情况。
本实施例中,以下内容介绍I2C控制器内部集成的数据处理单元。数据处理单元包括数据缓存组件和数据读取组件,可完成步骤S2中的通信信号缓存过程和步骤S5中的响应信号缓存过程。本实施例通过应用FIFO存储器的方式,搭建数据缓存组件。
在数据缓存组件的辅助下,本实施例仅介绍数据处理单元对来自高速I2C总线通信信号的缓存处理过程,来自低速I2C总线响应信号的缓存处理与其同理,因此不再赘述。如图4所示,缓存处理具体方法流程为:
S31、配置FIFO缓冲区;以字节为单位,确定FIFO缓冲区的大小,分配主从机通信系统中的一块内存作为FIFO缓冲区,也可以是某芯片内部的RAM或寄存器空间。随后在芯片内部创建一个数组作为FIFO缓存数组,缓存数组的大小与缓冲区的大小相匹配。
S32、定义指针,通过变量或寄存器保存指针值;指针包括两个,一个为读指针,一个为写指针;读指针指向最早存入缓存的信号数据位置,写指针指向最新存入缓存的信号数据位置。
S33、FIFO入队操作;接收高速I2C总线中的通信信号,将对应数据写入FIFO缓冲区的队尾;随后更新写指针,使其指向新写入的数据位置;此时如果队列已满,可以抛弃最早写入的数据,或按实际需求进行其他处理。
S34、配置定时器或中断;通过定时器或中断,周期性地触发FIFO出队操作,将数据发送至对应某一路的低速I2C总线;设置定时器或中断的周期,控制通信信号数据的特定发送速率。
S35、FIFO出队操作;触发时,从FIFO缓冲区的队头读取即将发送的通信信号数据;随后更新读指针,使其指向下一个即将写入数据的位置;此时,如果队列为空,可以选择发送默认值,或按实际需求进行其他处理。
通过本实施例的上述方法过程,以I2C控制器连接高速I2C总线和被扩展的多路低速I2C总线,在I2C控制器中集成的分时复用单元的时序控制和数据切换作用下,实现了主机与多个从机的并行通信过程;同时辅以数据处理单元提供的缓存功能,将缓存理念应用至I2C系统中,提高了数据传输效率与访问效率,使应用此方法的I2C系统具备了高可靠性。
Claims (9)
1.一种高速I2C总线的多路低速I2C扩展方法,其特征在于,所述方法包括如下步骤:
S1、将高速I2C总线和多路低速I2C总线接入I2C控制器,初始化I2C控制器并设置基础参数;随后,主机通过高速I2C总线发送通信信号;
S2、I2C控制器接收高速I2C总线中的通信信号,并将通信信号缓存于I2C控制器内部;
S3、I2C控制器将缓存的通信信号分时复用至多路低速I2C总线上的对应从机中;
S4、对应从机响应后,通过低速I2C总线发送响应信号;
S5、I2C控制器接收低速I2C总线中的响应信号,并将响应信号缓存于I2C控制器内部;
S6、I2C控制器将缓存的响应信号复用回高速I2C总线,完成主机与多个从机的并行通信过程;
通过I2C控制器内部集成的分时复用单元,完成步骤S3中的通信信号分时复用过程和步骤S6中的响应信号复用过程;分时复用单元对经过自身的信号进行传输与切换操作,具体如下:
S21、时序控制;依据通信信号或响应信号的时钟信息和时序要求,将信号在不同的输入与输出缓冲器之间进行切换,控制切换时间;
S22、时钟分频与时钟倍频;将来自高速I2C总线的通信信号进行时钟分频操作,令分频后的通信信号满足低速I2C总线的速度要求;将来自低速I2C总线的响应信号进行时钟倍频操作,令倍频后的响应信号满足高速I2C总线的速度要求;
S23、生成控制信号;分时复用单元依据操作需求,通过控制信号来切换输入与输出缓存器;控制信号包括选择信号、使能信号和时频信号。
2.根据权利要求1所述的一种高速I2C总线的多路低速I2C扩展方法,其特征在于:步骤S1中,将高速I2C总线与主机相连,将每1路低速I2C总线与对应的1个从机相连;随后,当I2C控制器的初始化与设置完成后,主机发送的通信信号包括第一数据信号和第一时钟信号。
3.根据权利要求2所述的一种高速I2C总线的多路低速I2C扩展方法,其特征在于:步骤S4中,当对应从机响应分时复用的第一数据信号与第一时钟信号后,所发送的响应信号包括第二数据信号和第二时钟信号;第二数据信号中包括对应从机的地址数据。
4.根据权利要求1所述的一种高速I2C总线的多路低速I2C扩展方法,其特征在于:步骤S1中,I2C控制器的初始化与基础参数设置方式如下:
S11、设置I2C控制器的引脚,引脚包括SDA引脚和SCL引脚;将I2C控制器的引脚与高速I2C总线和多路低速I2C总线相连后,配置引脚功能寄存器或引脚映射寄存器,使引脚设置为I2C功能;
S12、配置I2C控制器的时钟频率;通过读取或设置I2C控制器内部的I2C时钟频率寄存器的参数,设定并行通信过程的时钟频率;
S13、配置I2C控制器的工作模式;通过读取或设置I2C控制器内部的I2C控制寄存器的参数,选择工作模式,同时配置额外I2C参数;
S14、初始化I2C控制器的中断与DMA;通过读取或设置I2C控制器内部的中断寄存器,以使能或禁用I2C控制器的中断功能;同时配置I2C控制器的DMA传输通道,在并行通信过程中采用DMA传输;
S15、启用I2C控制器;设置I2C控制寄存器的使能位,预设特定时长的启用延时,令完成初始化与基础参数设置的I2C控制器启用。
5.根据权利要求4所述的一种高速I2C总线的多路低速I2C扩展方法,其特征在于:步骤S12中,依据并行通信过程的需求,启用或禁用I2C时钟频率寄存器的分频或倍频参数;步骤S13中,I2C控制器的工作模式包括主模式、从模式和多主模式;配置的额外I2C参数包括地址格式、数据位宽和传输模式。
6.根据权利要求1所述的一种高速I2C总线的多路低速I2C扩展方法,其特征在于:通过分时复用单元的错误处理组件,对I2C控制器的工作过程的异常情况进行错误检测、纠错及处理;当出现数据冲突与传输错误时,通过数据纠错与重新传输的方式,解决异常情况。
7.根据权利要求1所述的一种高速I2C总线的多路低速I2C扩展方法,其特征在于:通过I2C控制器内部集成的数据处理单元,完成步骤S2中的通信信号缓存过程和步骤S5中的响应信号缓存过程;数据处理单元包括数据缓存组件和数据读取组件。
8.根据权利要求7所述的一种高速I2C总线的多路低速I2C扩展方法,其特征在于:通过应用FIFO存储器的方式,搭建数据缓存组件;在数据缓存组件的辅助下,数据处理单元对来自高速I2C总线通信信号的缓存处理过程,具体如下:
S31、配置FIFO缓冲区;确定FIFO缓冲区的大小,创建与缓冲区大小相匹配的缓存数组;
S32、定义指针,通过变量或寄存器保存指针值;指针包括读指针和写指针,读指针指向最早存入缓存的信号数据位置,写指针指向最新存入缓存的信号数据位置;
S33、FIFO入队操作;接收高速I2C总线中的通信信号,将对应数据写入FIFO缓冲区的队尾;随后更新写指针,使其指向新写入的数据位置;
S34、配置定时器或中断;通过定时器或中断,周期性地触发FIFO出队操作,控制通信信号数据的特定发送速率;
S35、FIFO出队操作;触发时,从FIFO缓冲区的队头读取即将发送的通信信号数据;随后更新读指针,使其指向下一个即将写入数据的位置。
9.一种高速I2C总线的多路低速I2C扩展装置,其特征在于:包括主机、多个从机、高速I2C总线、多路低速I2C总线和I2C控制器;I2C控制器通过高速I2C总线与主机相连接,还通过多路低速I2C总线与多个从机相连接;每1个从机与对应1路低速I2C总线匹配相连;I2C控制器内部集成有分时复用单元和数据处理单元;
所述分时复用单元,用于将主机通过高速I2C总线发送的通信信号分时复用至多路低速I2C总线上的对应从机中,以及将对应从机通过低速I2C总线发送的响应信号复用回高速I2C总线上的主机中;所述分时复用单元,还用于对经过自身的信号进行传输与切换操作,具体为:
所述分时复用单元用于依据通信信号或响应信号的时钟信息和时序要求,将信号在不同的输入与输出缓冲器之间进行切换,控制切换时间;
所述分时复用单元用于将来自高速I2C总线的通信信号进行时钟分频操作,令分频后的通信信号满足低速I2C总线的速度要求;将来自低速I2C总线的响应信号进行时钟倍频操作,令倍频后的响应信号满足高速I2C总线的速度要求;
所述分时复用单元用于依据操作需求,通过控制信号来切换输入与输出缓存器;所述控制信号包括选择信号、使能信号和时频信号;
所述数据处理单元包括数据缓存组件和数据读取组件;数据缓存组件为FIFO存储器,用于在I2C控制器接收通信信号或响应信号时,对相应信号进行缓存,并按照特定发送速率将缓存的信号进行发送;
I2C控制器在分时复用单元与数据处理单元的共同作用下,完成主机与多个从机的并行通信过程。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311445409.XA CN117370258B (zh) | 2023-11-02 | 2023-11-02 | 一种高速i2c总线的多路低速i2c扩展方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311445409.XA CN117370258B (zh) | 2023-11-02 | 2023-11-02 | 一种高速i2c总线的多路低速i2c扩展方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117370258A CN117370258A (zh) | 2024-01-09 |
CN117370258B true CN117370258B (zh) | 2024-03-29 |
Family
ID=89390958
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311445409.XA Active CN117370258B (zh) | 2023-11-02 | 2023-11-02 | 一种高速i2c总线的多路低速i2c扩展方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117370258B (zh) |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11184805A (ja) * | 1997-12-24 | 1999-07-09 | Ricoh Co Ltd | バスシステム |
KR20050011822A (ko) * | 2003-07-24 | 2005-01-31 | 삼성전자주식회사 | 동일한 어드레스를 가지는 복수의 디바이스들을 하나의버스제어기에 연결하기 위한 장치 및 그 운용 방법 |
CN102023953A (zh) * | 2009-09-17 | 2011-04-20 | 研祥智能科技股份有限公司 | 具有多路i2c总线的系统的控制方法 |
JP2014232414A (ja) * | 2013-05-29 | 2014-12-11 | ルネサスエレクトロニクス株式会社 | I2c通信スレーブ装置 |
CN106126465A (zh) * | 2016-06-21 | 2016-11-16 | 广东欧珀移动通信有限公司 | 一种数据传输方法及装置 |
CN109684255A (zh) * | 2018-12-12 | 2019-04-26 | 杭州迪普科技股份有限公司 | 一种fpga管脚复用电路及控制方法 |
CN112328518A (zh) * | 2020-11-09 | 2021-02-05 | 阳光电源股份有限公司 | 一种多路串行通信装置、系统及方法 |
CN114217921A (zh) * | 2021-11-16 | 2022-03-22 | 深圳市优必选科技股份有限公司 | 一种分布式并行计算方法、计算设备及存储介质 |
CN114564428A (zh) * | 2022-01-19 | 2022-05-31 | 中国电子科技集团公司第十研究所 | 机载电子设备i/o端口扩展系统 |
CN115001618A (zh) * | 2022-05-25 | 2022-09-02 | 山东泰开电力电子有限公司 | 一种应用于高压级联式设备的同步串行分时复用总线方法 |
CN115599733A (zh) * | 2022-10-21 | 2023-01-13 | 深圳市康必达控制技术有限公司(Cn) | 一种扩展多路串口的电路、方法、装置及终端设备 |
-
2023
- 2023-11-02 CN CN202311445409.XA patent/CN117370258B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11184805A (ja) * | 1997-12-24 | 1999-07-09 | Ricoh Co Ltd | バスシステム |
KR20050011822A (ko) * | 2003-07-24 | 2005-01-31 | 삼성전자주식회사 | 동일한 어드레스를 가지는 복수의 디바이스들을 하나의버스제어기에 연결하기 위한 장치 및 그 운용 방법 |
CN102023953A (zh) * | 2009-09-17 | 2011-04-20 | 研祥智能科技股份有限公司 | 具有多路i2c总线的系统的控制方法 |
JP2014232414A (ja) * | 2013-05-29 | 2014-12-11 | ルネサスエレクトロニクス株式会社 | I2c通信スレーブ装置 |
CN106126465A (zh) * | 2016-06-21 | 2016-11-16 | 广东欧珀移动通信有限公司 | 一种数据传输方法及装置 |
CN109684255A (zh) * | 2018-12-12 | 2019-04-26 | 杭州迪普科技股份有限公司 | 一种fpga管脚复用电路及控制方法 |
CN112328518A (zh) * | 2020-11-09 | 2021-02-05 | 阳光电源股份有限公司 | 一种多路串行通信装置、系统及方法 |
CN114217921A (zh) * | 2021-11-16 | 2022-03-22 | 深圳市优必选科技股份有限公司 | 一种分布式并行计算方法、计算设备及存储介质 |
CN114564428A (zh) * | 2022-01-19 | 2022-05-31 | 中国电子科技集团公司第十研究所 | 机载电子设备i/o端口扩展系统 |
CN115001618A (zh) * | 2022-05-25 | 2022-09-02 | 山东泰开电力电子有限公司 | 一种应用于高压级联式设备的同步串行分时复用总线方法 |
CN115599733A (zh) * | 2022-10-21 | 2023-01-13 | 深圳市康必达控制技术有限公司(Cn) | 一种扩展多路串口的电路、方法、装置及终端设备 |
Non-Patent Citations (2)
Title |
---|
基于CPLD的I~2C总线接口设计;郑采君;;电子设计工程;20110120(02);全文 * |
基于PCF8584实现串行I~2C总线接口的扩展;张艳春;;电子世界;20171008(19);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN117370258A (zh) | 2024-01-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5587957A (en) | Circuit for sharing a memory of a microcontroller with an external device | |
US8667195B2 (en) | Bus-system including an interconnector, a master device, a slave device, and an operating method thereof | |
US20130282991A1 (en) | Method and system for improving serial port memory communication latency and reliability | |
CN114490460B (zh) | 一种用于asic的flash控制器及其控制方法 | |
EP3859542A1 (en) | Spi broadcast mode | |
CN114443529A (zh) | 内存直接访问架构、系统、方法、电子设备和介质 | |
US20100064083A1 (en) | Communications device without passive pullup components | |
US20020184453A1 (en) | Data bus system including posted reads and writes | |
JP4903801B2 (ja) | FlexRay通信モジュールとFlexRay加入者装置とを繋ぐ加入者インタフェース、およびFlexRay通信モジュールとFlexRay加入者装置とを繋ぐ加入者インタフェースを経由するメッセージの伝送方法 | |
CN114265872B (zh) | 一种用于总线的互联装置 | |
CN113626350A (zh) | 系统部件和系统部件的应用 | |
JP2009502072A (ja) | FlexRay通信モジュール及びFlexRay通信制御装置、並びにFlexRay通信接続とFlexRay加入者装置との間でメッセージを伝送する方法 | |
US5717875A (en) | Computing device having semi-dedicated high speed bus | |
CN113722261A (zh) | Spi扩展片选数目和增强读写响应时间灵活性的方法 | |
CN117370258B (zh) | 一种高速i2c总线的多路低速i2c扩展方法及装置 | |
CN110008162B (zh) | 一种缓冲接口电路及基于该电路传输数据的方法和应用 | |
WO2011150496A1 (en) | High speed interface for daisy-chained devices | |
US11789884B2 (en) | Bus system and method for operating a bus system | |
CN112835834B (zh) | 数据传输系统 | |
CN113836058A (zh) | 一种板卡间数据交换方法、装置、设备及存储介质 | |
CN114443524A (zh) | 一种数据传输方法、系统、存储介质及设备 | |
KR100266963B1 (ko) | 전송되는 패킷을 오버래핑하여 인터페이스의 대기시간을 감소시키는 방법 및 장치 | |
CN208077160U (zh) | 基于spi模式的sd卡驱动器 | |
CN112231261A (zh) | 一种用于axi总线的id号压缩装置 | |
EP0382342B1 (en) | Computer system DMA transfer |
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 |