CN114925013A - 一种基于cpld的i2c信号透传方法、设备及介质 - Google Patents

一种基于cpld的i2c信号透传方法、设备及介质 Download PDF

Info

Publication number
CN114925013A
CN114925013A CN202210404241.7A CN202210404241A CN114925013A CN 114925013 A CN114925013 A CN 114925013A CN 202210404241 A CN202210404241 A CN 202210404241A CN 114925013 A CN114925013 A CN 114925013A
Authority
CN
China
Prior art keywords
signal
state
transmitted
tri
buffer
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.)
Pending
Application number
CN202210404241.7A
Other languages
English (en)
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.)
Inspur Cisco Networking Technology Co Ltd
Original Assignee
Inspur Cisco Networking 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 Inspur Cisco Networking Technology Co Ltd filed Critical Inspur Cisco Networking Technology Co Ltd
Priority to CN202210404241.7A priority Critical patent/CN114925013A/zh
Publication of CN114925013A publication Critical patent/CN114925013A/zh
Pending legal-status Critical Current

Links

Images

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
    • 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)

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)

Abstract

本说明书实施例公开了一种基于CPLD的I2C信号透传方法、设备及介质,涉及交换机硬件技术领域,方法包括:基于I2C信号透传系统的复位信号的触发,通过方向判断模块根据所述复位信号,生成待传输I2C信号的方向信号;其中,待传输I2C信号的方向信号用于表示待传输I2C信号的传输方向,包括第一方向和第二方向,第一方向为I2C主设备输出且I2C从设备输入的信号传输方向,第二方向为I2C从设备输出且I2C主设备输入的信号传输方向;通过方向控制模块,根据待传输I2C信号的方向信号,控制待传输I2C信号按照方向信号进行透传,CPLD仅用于传输,无需将数据进行存储后再读取,节省了CPLD的硬件资源,并且保证了信号传输的实时性。

Description

一种基于CPLD的I2C信号透传方法、设备及介质
技术领域
本说明书涉及交换机硬件技术领域,尤其涉及一种基于CPLD的I2C信号透传方法、设备及介质。
背景技术
交换机使用支持数字诊断监控(Digital Diagnostic Monitoring,DDM)的光模块时,需要通过I2C(Inter-Integrated Circuit)总线对多个光模块进行读取操作,因为多个光模块I2C设备地址相同,所以需要多路I2C总线,分别与单个光模块通信,实际通常使用复杂可编程逻辑器件(Complex Programmable Logic Device,CPLD)进行I2C总线的扩展,将一路I2C总线扩展为多路I2C总线,选中通道后进行I2C信号的双向透传。
当前常用的I2C信号透传方法是通过CPLD分别实现一个I2C从机和一个I2C主机,I2C主机主动读取光模块DDM信息,并将读取的DDM信息存储至CPLD,由I2C从机读取DDM信息后,上报DDM信息。现有技术中的信号透传方法占用了较多的CPLD硬件资源,并且无法保证传输的实时性。
发明内容
本说明书一个或多个实施例提供了一种基于CPLD的I2C信号透传方法、设备及介质,用于解决如下技术问题:现有技术中的信号透传方法占用了较多的CPLD硬件资源,并且无法保证传输的实时性。
本说明书一个或多个实施例采用下述技术方案:
本说明书一个或多个实施例提供一种基于CPLD的I2C信号透传方法,应用于I2C信号透传系统,其中,所述I2C信号透传系统包括设置在所述CPLD芯片中的方向判断模块和方向控制模块、I2C主设备以及I2C从设备,所述方法包括:基于I2C信号透传系统的复位信号的触发,通过所述方向判断模块根据所述复位信号,生成待传输I2C信号的方向信号;其中,所述待传输I2C信号的方向信号用于表示所述待传输I2C信号的传输方向,包括第一方向和第二方向,所述第一方向为所述I2C主设备输出且所述I2C从设备输入的信号传输方向,所述第二方向为所述I2C从设备输出且所述I2C主设备输入的信号传输方向;通过所述方向控制模块,根据所述待传输I2C信号的方向信号,控制所述待传输I2C信号按照所述方向信号进行透传。
进一步地,所述方向控制模块包括:第一反相器、第一三态缓冲器、第二三态缓冲器、第一缓冲器以及第二缓冲器;其中,所述第一反相器的输入端用于输入所述方向信号,所述第一反相器的输出端与所述第一三态缓冲器的选项卡通输入端相连;所述第一三态缓冲器的输入端用于接收所述第二缓冲器的输出端的信号,所述第一三态缓冲器的输出端与所述I2C主设备相连;所述第一缓冲器的输入端用于输入所述I2C主设备的待传输I2C信号,所述第一缓冲器的输出端与所述第二三态缓冲器的输入端相连;所述第二三态缓冲器的选项卡通输入端用于输入所述方向信号,所述第二三态的输出端与所述I2C从设备相连;所述第二缓冲器的输入端用于输入所述I2C从设备的待传输I2C信号;通过所述方向控制模块,根据所述待传输I2C信号的方向信号,控制所述待传输I2C信号按照所述方向信号进行透传,具体包括:将所述待传输I2C信号的方向信号输入至所述第一反相器的输入端和所述第二三态缓冲器的选项卡通输入端;根据所述待传输I2C信号的方向信号,确定出所述第一三态缓冲器和所述第二三态缓冲器的工作状态;根据所述第一三态缓冲器和所述第二三态缓冲器的工作状态,生成所述I2C主设备与所述I2C从设备之间的透传路线。
进一步地,根据所述待传输I2C信号的方向信号,确定出所述第一三态缓冲器和所述第二三态缓冲器的工作状态,具体包括:当所述待传输I2C信号的方向信号为所述第一方向时,所述第一三态缓冲器为禁能状态,其中,在所述禁能状态下所述第一三态缓冲器的输出端为高阻态;当所述待传输I2C信号的方向信号为所述第二方向时,所述第二三态缓冲器为禁能状态,其中,在所述禁能状态下所述第二三态缓冲器的输出端为高阻态。
进一步地,根据所述第一三态缓冲器和所述第二三态缓冲器的工作状态,生成所述I2C主设备与所述I2C从设备之间的透传路线,具体包括:当所述第一三态缓冲器为禁能状态时,所述I2C主设备与所述I2C从设备之间的透传路线为:所述I2C主设备的所述待传输I2C信号输入至所述第一缓冲器的输入端,通过所述第一缓冲器的输出端输出所述待传输I2C信号,并将所述待传输I2C信号输入至所述第二三态缓冲器的输入端,通过所述第二三态缓冲器的输出端输出至所述I2C从设备;当所述第二三态缓冲器为禁能状态时,所述I2C从设备与所述I2C主设备之间的透传路线为:所述I2C从设备的所述待传输I2C信号输入至所述第二缓冲器的输入端,通过所述第二缓冲器的输出端输出所述待传输I2C信号,并将所述待传输I2C信号输入至所述第一三态缓冲器的输入端,通过所述第一三态缓冲器的输出端输出至所述I2C主设备。
进一步地,通过所述方向判断模块根据所述复位信号,生成I2C信号的方向信号,具体包括:根据所述复位信号,通过所述方向判断模块确定所述I2C信号透传系统的状态机状态,所述I2C信号透传系统的状态机状态包括空闲状态、设备地址传输状态、读写标志位判断状态、从设备应答状态、第一方向数据传输状态、第二方向数据传输状态以及主设备应答状态;根据所述I2C信号透传系统的状态机状态,确定所述待传输I2C信号的方向信号。
进一步地,所述空闲状态用于表示所述I2C信号透传系统中无信号传输的状态;所述设备地址传输状态用于表示所述I2C主设备向所述I2C从设备依次发送指定位数的设备地址的状态;所述读写标志位判断状态用于表示所述I2C主设备向所述I2C从设备发送读写标志位的状态;从设备应答状态用于表示所述I2C从设备向所述I2C主设备发送应答位或否应答位的状态;所述第一方向数据传输状态用于表示所述I2C主设备向所述I2C从设备依次发送指定数据的状态,其中,所述指定数据包括所述I2C从设备的寄存器地址或待传输至所述I2C从设备的寄存器中的数据;所述第二方向数据传输状态用于表示所述I2C从设备向所述I2C主设备依次发送预设数据的状态,其中,所述预设数据为待传输至所述I2C主设备的寄存器中的数据;所述主设备应答状态用于表示所述I2C主设备向所述I2从设备发送应答位或否应答位的状态。
进一步地,根据所述I2C信号透传系统的状态机状态,确定所述待传输I2C信号的方向信号,具体包括:当所述I2C信号透传系统的状态机状态为所述空闲状态、所述设备地址传输状态、所述第一方向数据传输状态以及所述主设备应答状态中的任意一种状态时,将所述待传输I2C信号的方向信号确定为所述第一方向。
进一步地,根据所述I2C信号透传系统的状态机状态,确定所述I2C信号的方向信号,具体包括:当所述I2C信号透传系统的状态机状态为所述读写标志位判断状态、所述从设备应答状态以及所述第二方向数据传输状态中的任意一种状态时,将所述待传输I2C信号的方向信号确定为所述第二方向。
本说明书一个或多个实施例提供一种基于CPLD的I2C信号透传设备,包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够:基于I2C信号透传系统的复位信号的触发,通过方向判断模块根据所述复位信号,生成待传输I2C信号的方向信号;其中,所述待传输I2C信号的方向信号用于表示所述待传输I2C信号的传输方向,包括第一方向和第二方向,所述第一方向为所述I2C主设备输出且所述I2C从设备输入的信号传输方向,所述第二方向为所述I2C从设备输出且所述I2C主设备输入的信号传输方向;通过方向控制模块,根据所述待传输I2C信号的方向信号,控制所述待传输I2C信号按照所述方向信号进行透传。
本说明书一个或多个实施例提供的一种非易失性计算机存储介质,存储有计算机可执行指令,所述计算机可执行指令设置为:基于I2C信号透传系统的复位信号的触发,通过方向判断模块根据所述复位信号,生成待传输I2C信号的方向信号;其中,所述待传输I2C信号的方向信号用于表示所述待传输I2C信号的传输方向,包括第一方向和第二方向,所述第一方向为所述I2C主设备输出且所述I2C从设备输入的信号传输方向,所述第二方向为所述I2C从设备输出且所述I2C主设备输入的信号传输方向;通过方向控制模块,根据所述待传输I2C信号的方向信号,控制所述待传输I2C信号按照所述方向信号进行透传。
本说明书实施例采用的上述至少一个技术方案能够达到以下有益效果:通过上述技术方案,CPLD仅用于传输,无需将数据进行存储后再读取,节省了CPLD的硬件资源,并且保证了信号传输的实时性。
附图说明
为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1为本说明书实施例提供的一种基于CPLD的I2C信号透传方法的流程示意图;
图2为本说明书实施例提供的一种方向判断模块的判断方法示意图;
图3为本说明书实施例提供的一种方向控制模块的电路连接示意图;
图4为本说明书实施例提供的一种基于CPLD的I2C信号透传设备的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本说明书中的技术方案,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本说明书保护的范围。
交换机使用支持数字诊断监控(Digital Diagnostic Monitoring,DDM)的光模块时,需要通过I2C(Inter-Integrated Circuit)总线对多个光模块进行读取操作,因为多个光模块I2C设备地址相同,所以需要多路I2C总线,分别与单个光模块通信,实际通常使用复杂可编程逻辑器件(Complex Programmable Logic Device,CPLD)进行I2C总线的扩展,将一路I2C总线扩展为多路I2C总线,选中通道后进行I2C信号的双向透传。
当前常用的I2C信号透传方法是通过CPLD分别实现一个I2C从机和一个I2C主机,I2C主机主动读取光模块DDM信息,并将读取的DDM信息存储至CPLD,由I2C从机读取DDM信息后,上报DDM信息。现有技术中的信号透传方法占用了较多的CPLD硬件资源,并且无法保证传输的实时性。
本说明书实施例提供一种基于CPLD的I2C信号透传方法,需要说明的是,本说明书书实施例中的执行主体可以是服务器,也可以是任意一种具备数据处理能力的设备。应用于I2C信号透传系统,其中,I2C信号透传系统包括设置在CPLD芯片中的方向判断模块和方向控制模块、I2C主设备以及I2C从设备,图1为本说明书实施例提供的一种基于CPLD的I2C信号透传方法的流程示意图,如图1所示,主要包括如下步骤:
步骤S101,基于I2C信号透传系统的复位信号的触发,通过方向判断模块根据复位信号,生成待传输I2C信号的方向信号。
其中,待传输I2C信号的方向信号用于表示待传输I2C信号的传输方向,包括第一方向和第二方向,第一方向为I2C主设备输出且I2C从设备输入的信号传输方向(MasterOut Slave In,MOSI),第二方向为I2C从设备输出且I2C主设备输入的信号传输方向(Master In Slave Out,MISO)。需要说明的是,I2C总线包括串行数据线(SDA)和串行时钟线(SCL),其中,串行数据线负责在设备间传输串行数据,串行时钟线负责产生同步时钟脉冲。
具体地,通过该方向判断模块根据该复位信号,生成I2C信号的方向信号,具体包括:根据该复位信号,通过该方向判断模块确定该I2C信号透传系统的状态机状态,该I2C信号透传系统的状态机状态包括空闲状态、设备地址传输状态、读写标志位判断状态、从设备应答状态、第一方向数据传输状态、第二方向数据传输状态以及主设备应答状态;根据该I2C信号透传系统的状态机状态,确定该待传输I2C信号的方向信号。
在本说明书的一个实施例中,根据复位信号,通过方向判断模块确定I2C信号透传系统的状态机状态,在不同的状态下,对应的方向信号不同。需要说明的是,在本说明书的实施例中,传输方向和方向信号相同,均用于表示信号或数据的传输方向。根据I2C信号透传系统的状态机状态,确定出在当前状态机状态下,待传输I2C信号的方向信号。
具体地,该空闲状态用于表示该I2C信号透传系统中无信号传输的状态;该设备地址传输状态用于表示该I2C主设备向该I2C从设备依次发送指定位数的设备地址的状态;该读写标志位判断状态用于表示该I2C主设备向该I2C从设备发送读写标志位的状态;从设备应答状态用于表示该I2C从设备向该I2C主设备发送应答位或否应答位的状态;该第一方向数据传输状态用于表示该I2C主设备向该I2C从设备依次发送指定数据的状态,其中,该指定数据包括该I2C从设备的寄存器地址或待传输至该I2C从设备的寄存器中的数据;该第二方向数据传输状态用于表示该I2C从设备向该I2C主设备依次发送预设数据的状态,其中,该预设数据为待传输至该I2C主设备的寄存器中的数据;该主设备应答状态用于表示该I2C主设备向该I2从设备发送应答位或否应答位的状态。
具体地,根据该I2C信号透传系统的状态机状态,确定该待传输I2C信号的方向信号,具体包括:当该I2C信号透传系统的状态机状态为该空闲状态、该设备地址传输状态、该第一方向数据传输状态以及该主设备应答状态中的任意一种状态时,将该待传输I2C信号的方向信号确定为该第一方向。当该I2C信号透传系统的状态机状态为该读写标志位判断状态、该从设备应答状态以及该第二方向数据传输状态中的任意一种状态时,将该待传输I2C信号的方向信号确定为该第二方向。
在本说明书的一个实施例中,结合图2进行分析,图2为本说明书实施例提供的一种方向判断模块的判断方法示意图,如图2所示,系统在时钟信号的下降沿的驱动下,由复位信号进行同步复位,其中,复位信号可以是Reset信号,还可以是START信号或STOP信号,进入空闲状态。在空闲状态下,I2C信号透传系统中无信号传输,将数据位数寄存器置为7,传输方向寄存器设置为MOSI方向,也就是说第一方向,从主设备向从设备传输,并自动跳转到下一状态。空闲状态的下一状态为设备地址传输状态。
在设备地址传输状态下,传输方向为MOSI方向,以便于主设备向从设备发送设备地址。当接收到时钟信号的下降沿时,主设备向从设备依次发送从设备的设备地址的前七位,每接收一位设备地址,将数据位数寄存器递减一位,直至数据位数寄存器为0。当数据位数寄存器为0时,跳转到读写标志位判断状态,并将传输方向寄存器设置为MISO方向。
在读写标志位判断状态下,表示主设备向从设备发送读写标志位的状态,判断当前SDA信号中的最后一位,也就是设备地址的最低位,当最低位为1时,代表读状态,当最低位为0时,表示写状态。将设备地址的最低位锁存在命令寄存器中,此状态下传输方向仍为MISO方向,并跳转至从设备应答状态。
在从设备应答状态下,传输方向仍为MISO方向,以便于从设备向主设备发送应答位或否应答位,并将数据位数寄存器设置为7。此时,根据命令寄存器中存储的读写标志位,确定下一状态。
当命令寄存器中存储的读写标志位为0时,进入第一方向数据传输状态,也就是在下一状态下,主设备向从设备发送数据,此处的数据可以是寄存器数据,也可以是待传输的数据。在此状态下,传输方向为MOSI方向。在时钟信号下降沿的驱动下,主设备依次向从设备发送数据,每发送一次将数据位数寄存器减一,直至数据位数寄存器为0时,将传输方向转变为MISO方向,进入从设备应答状态。在从设备应答状态下传输方向为MISO方向,以便于从设备根据接收到的数据向主设备发送应答位或否应答位,当主设备接收到应答位之后,此处数据传输完成。
当命令寄存器中存储的读写标志位为1时,进入第二方向数据传输状态,也就是在下一状态下,从设备向主设备发送数据,在此状态下,传输方向为MISO方向。在时钟信号下降沿的驱动下,从设备依次向主设备发送数据,每发送一次将数据位数寄存器减一,直至数据位数寄存器为0时,将传输方向转变为MOSI方向,进入主设备应答状态。在主设备应答状态下传输方向为MOSI方向,以便于主设备根据接收到的数据向从设备发送应答位或否应答位。若从设备接收到应答位,则继续进行字节传输,若从设备接收到否应答位,则结束传输。在主设备应答状态下,读取串行数据线的电平,并锁存至sda_bit中,当sda_bit为1时,将传输方向设置为MOSI方向,并跳转至空闲状态;当sda_bit为0时,将传输方向设置为MISO方向,并将数据位置寄存器置为7,跳转至第一方向传输状态。
步骤S102,通过方向控制模块,根据待传输I2C信号的方向信号,控制待传输I2C信号按照方向信号进行透传。
在本说明书的一个实施例中,根据状态机的状态不同,生成的待传输I2C信号的方向信号不同。根据不同状态下对应的方向信号,实现主设备和从设备之间按照方向信号进行数据信号的透传。
具体地,方向控制模块包括:第一反相器、第一三态缓冲器、第二三态缓冲器、第一缓冲器以及第二缓冲器;其中,该第一反相器的输入端用于输入该方向信号,该第一反相器的输出端与该第一三态缓冲器的选项卡通输入端相连;该第一三态缓冲器的输入端用于接收该第二缓冲器的输出端的信号,该第一三态缓冲器的输出端与该I2C主设备相连;该第一缓冲器的输入端用于输入该I2C主设备的待传输I2C信号,该第一缓冲器的输出端与该第二三态缓冲器的输入端相连;该第二三态缓冲器的选项卡通输入端用于输入该方向信号,该第二三态的输出端与该I2C从设备相连;该第二缓冲器的输入端用于输入该I2C从设备的待传输I2C信号。
通过该方向控制模块,根据该待传输I2C信号的方向信号,控制该待传输I2C信号按照该方向信号进行透传,具体包括:将该待传输I2C信号的方向信号输入至该第一反相器的输入端和该第二三态缓冲器的选项卡通输入端;根据该待传输I2C信号的方向信号,确定出该第一三态缓冲器和该第二三态缓冲器的工作状态;根据该第一三态缓冲器和该第二三态缓冲器的工作状态,生成该I2C主设备与该I2C从设备之间的透传路线。
具体地,根据该待传输I2C信号的方向信号,确定出该第一三态缓冲器和该第二三态缓冲器的工作状态,具体包括:当该待传输I2C信号的方向信号为该第一方向时,该第一三态缓冲器为禁能状态,其中,在该禁能状态下该第一三态缓冲器的输出端为高阻态;当该待传输I2C信号的方向信号为该第二方向时,该第二三态缓冲器为禁能状态,其中,在该禁能状态下该第二三态缓冲器的输出端为高阻态。
具体地,根据该第一三态缓冲器和该第二三态缓冲器的工作状态,生成该I2C主设备与该I2C从设备之间的透传路线,具体包括:当该第一三态缓冲器为禁能状态时,该I2C主设备与该I2C从设备之间的透传路线为:该I2C主设备的该待传输I2C信号输入至该第一缓冲器的输入端,通过该第一缓冲器的输出端输出该待传输I2C信号,并将该待传输I2C信号输入至该第二三态缓冲器的输入端,通过该第二三态缓冲器的输出端输出至该I2C从设备;当该第二三态缓冲器为禁能状态时,该I2C从设备与该I2C主设备之间的透传路线为:该I2C从设备的该待传输I2C信号输入至该第二缓冲器的输入端,通过该第二缓冲器的输出端输出该待传输I2C信号,并将该待传输I2C信号输入至该第一三态缓冲器的输入端,通过该第一三态缓冲器的输出端输出至该I2C主设备。
在本说明书的一个实施例中,图3为本说明书实施例提供的一种方向控制模块的电路连接示意图,如图3所示,方向控制模块的电路包括第一反相器N1、第一三态缓冲器TR1、第二三态缓冲器TR2、第一缓冲器BF1以及第二缓冲器BF2。其中,方向信号输入之后,一路进入第二三态缓冲器TR2的ENB引脚,也就是说选项卡通输入端;另一路方向信号经过第一反相器N1后输入第一三态缓冲器TR1的ENB引脚。第一三态缓冲器TR1的输出接主设备信号,第二三态缓冲器TR2的输出接从设备信号。主设备信号经过第一缓冲器BF1后接第二三态缓冲器TR2的输入引脚;从设备信号经第二缓冲器BF2后接第一三态缓冲器TR1的输入引脚。
当方向信号为MOSI方向,即高电平1时,第一三态缓冲器TR1的使能引脚ENB为低,第一三态缓冲器TR1禁能,此时第一三态缓冲器TR1输出高阻态。主设备信号经第一缓冲器BF1进入第二三态缓冲器TR2的输入端,此时第二三态缓冲器TR2的使能引脚ENB为高电平,第二三态缓冲器TR2使能,输入信号为主设备信号,输出信号为从设备信号,输出信号等于输入信号,实现主机到从机的透传。
当方向信号为MISO方向,即低电平0时,第二三态缓冲器TR2的使能引脚ENB为低,第二三态缓冲器TR2禁能,此时第二三态缓冲器TR2输出高阻态。从设备信号经第二缓冲器BF2进入第一三态缓冲器TR1的输入端,此时第一三态缓冲器TR1的使能引脚ENB为低电平,第一三态缓冲器TR1使能,输出信号为主设备信号,输入信号为从设备信号,输出信号等于输入信号,实现从机到主机的透传。
通过上述技术方案,CPLD仅用于传输,无需将数据进行存储后再读取,节省了CPLD的硬件资源,并且保证了信号传输的实时性。
本说明书实施例还提供一种基于CPLD的I2C信号透传设备,如图4所示,设备包括:至少一个处理器;以及,与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够:基于I2C信号透传系统的复位信号的触发,通过方向判断模块根据所述复位信号,生成待传输I2C信号的方向信号;其中,待传输I2C信号的方向信号用于表示待传输I2C信号的传输方向,包括第一方向和第二方向,第一方向为I2C主设备输出且I2C从设备输入的信号传输方向,第二方向为I2C从设备输出且I2C主设备输入的信号传输方向;通过方向控制模块,根据待传输I2C信号的方向信号,控制待传输I2C信号按照方向信号进行透传。
本说明书实施例还提供一种非易失性计算机存储介质,存储有计算机可执行指令,计算机可执行指令设置为:
基于I2C信号透传系统的复位信号的触发,通过方向判断模块根据所述复位信号,生成待传输I2C信号的方向信号;其中,待传输I2C信号的方向信号用于表示待传输I2C信号的传输方向,包括第一方向和第二方向,第一方向为I2C主设备输出且I2C从设备输入的信号传输方向,第二方向为I2C从设备输出且I2C主设备输入的信号传输方向;通过方向控制模块,根据待传输I2C信号的方向信号,控制待传输I2C信号按照方向信号进行透传。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、设备、非易失性计算机存储介质实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
以上该仅为本说明书的一个或多个实施例而已,并不用于限制本说明书。对于本领域技术人员来说,本说明书的一个或多个实施例可以有各种更改和变化。凡在本说明书的一个或多个实施例的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本说明书的权利要求范围之内。

Claims (10)

1.一种基于CPLD的I2C信号透传方法,其特征在于,应用于I2C信号透传系统,其中,所述I2C信号透传系统包括设置在所述CPLD芯片中的方向判断模块和方向控制模块、I2C主设备以及I2C从设备,所述方法包括:
基于I2C信号透传系统的复位信号的触发,通过所述方向判断模块根据所述复位信号,生成待传输I2C信号的方向信号;
其中,所述待传输I2C信号的方向信号用于表示所述待传输I2C信号的传输方向,包括第一方向和第二方向,所述第一方向为所述I2C主设备输出且所述I2C从设备输入的信号传输方向,所述第二方向为所述I2C从设备输出且所述I2C主设备输入的信号传输方向;
通过所述方向控制模块,根据所述待传输I2C信号的方向信号,控制所述待传输I2C信号按照所述方向信号进行透传。
2.根据权利要求1所述的一种基于CPLD的I2C信号透传方法,其特征在于,所述方向控制模块包括:第一反相器、第一三态缓冲器、第二三态缓冲器、第一缓冲器以及第二缓冲器;
其中,所述第一反相器的输入端用于输入所述方向信号,所述第一反相器的输出端与所述第一三态缓冲器的选项卡通输入端相连;
所述第一三态缓冲器的输入端用于接收所述第二缓冲器的输出端的信号,所述第一三态缓冲器的输出端与所述I2C主设备相连;
所述第一缓冲器的输入端用于输入所述I2C主设备的待传输I2C信号,所述第一缓冲器的输出端与所述第二三态缓冲器的输入端相连;
所述第二三态缓冲器的选项卡通输入端用于输入所述方向信号,所述第二三态的输出端与所述I2C从设备相连;
所述第二缓冲器的输入端用于输入所述I2C从设备的待传输I2C信号;
通过所述方向控制模块,根据所述待传输I2C信号的方向信号,控制所述待传输I2C信号按照所述方向信号进行透传,具体包括:
将所述待传输I2C信号的方向信号输入至所述第一反相器的输入端和所述第二三态缓冲器的选项卡通输入端;
根据所述待传输I2C信号的方向信号,确定出所述第一三态缓冲器和所述第二三态缓冲器的工作状态;
根据所述第一三态缓冲器和所述第二三态缓冲器的工作状态,生成所述I2C主设备与所述I2C从设备之间的透传路线。
3.根据权利要求2所述的一种基于CPLD的I2C信号透传方法,其特征在于,根据所述待传输I2C信号的方向信号,确定出所述第一三态缓冲器和所述第二三态缓冲器的工作状态,具体包括:
当所述待传输I2C信号的方向信号为所述第一方向时,所述第一三态缓冲器为禁能状态,其中,在所述禁能状态下所述第一三态缓冲器的输出端为高阻态;
当所述待传输I2C信号的方向信号为所述第二方向时,所述第二三态缓冲器为禁能状态,其中,在所述禁能状态下所述第二三态缓冲器的输出端为高阻态。
4.根据权利要求3所述的一种基于CPLD的I2C信号透传方法,其特征在于,根据所述第一三态缓冲器和所述第二三态缓冲器的工作状态,生成所述I2C主设备与所述I2C从设备之间的透传路线,具体包括:
当所述第一三态缓冲器为禁能状态时,所述I2C主设备与所述I2C从设备之间的透传路线为:所述I2C主设备的所述待传输I2C信号输入至所述第一缓冲器的输入端,通过所述第一缓冲器的输出端输出所述待传输I2C信号,并将所述待传输I2C信号输入至所述第二三态缓冲器的输入端,通过所述第二三态缓冲器的输出端输出至所述I2C从设备;
当所述第二三态缓冲器为禁能状态时,所述I2C从设备与所述I2C主设备之间的透传路线为:所述I2C从设备的所述待传输I2C信号输入至所述第二缓冲器的输入端,通过所述第二缓冲器的输出端输出所述待传输I2C信号,并将所述待传输I2C信号输入至所述第一三态缓冲器的输入端,通过所述第一三态缓冲器的输出端输出至所述I2C主设备。
5.根据权利要求1所述的一种基于CPLD的I2C信号透传方法,其特征在于,通过所述方向判断模块根据所述复位信号,生成I2C信号的方向信号,具体包括:
根据所述复位信号,通过所述方向判断模块确定所述I2C信号透传系统的状态机状态,所述I2C信号透传系统的状态机状态包括空闲状态、设备地址传输状态、读写标志位判断状态、从设备应答状态、第一方向数据传输状态、第二方向数据传输状态以及主设备应答状态;
根据所述I2C信号透传系统的状态机状态,确定所述待传输I2C信号的方向信号。
6.根据权利要求5所述的一种基于CPLD的I2C信号透传方法,其特征在于,所述空闲状态用于表示所述I2C信号透传系统中无信号传输的状态;
所述设备地址传输状态用于表示所述I2C主设备向所述I2C从设备依次发送指定位数的设备地址的状态;
所述读写标志位判断状态用于表示所述I2C主设备向所述I2C从设备发送读写标志位的状态;
从设备应答状态用于表示所述I2C从设备向所述I2C主设备发送应答位或否应答位的状态;
所述第一方向数据传输状态用于表示所述I2C主设备向所述I2C从设备依次发送指定数据的状态,其中,所述指定数据包括所述I2C从设备的寄存器地址或待传输至所述I2C从设备的寄存器中的数据;
所述第二方向数据传输状态用于表示所述I2C从设备向所述I2C主设备依次发送预设数据的状态,其中,所述预设数据为待传输至所述I2C主设备的寄存器中的数据;
所述主设备应答状态用于表示所述I2C主设备向所述I2从设备发送应答位或否应答位的状态。
7.根据权利要求6所述的一种基于CPLD的I2C信号透传方法,其特征在于,根据所述I2C信号透传系统的状态机状态,确定所述待传输I2C信号的方向信号,具体包括:
当所述I2C信号透传系统的状态机状态为所述空闲状态、所述设备地址传输状态、所述第一方向数据传输状态以及所述主设备应答状态中的任意一种状态时,将所述待传输I2C信号的方向信号确定为所述第一方向。
8.根据权利要求6所述的一种基于CPLD的I2C信号透传方法,其特征在于,根据所述I2C信号透传系统的状态机状态,确定所述I2C信号的方向信号,具体包括:
当所述I2C信号透传系统的状态机状态为所述读写标志位判断状态、所述从设备应答状态以及所述第二方向数据传输状态中的任意一种状态时,将所述待传输I2C信号的方向信号确定为所述第二方向。
9.一种基于CPLD的I2C信号透传设备,其特征在于,所述设备包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够:
基于I2C信号透传系统的复位信号的触发,通过方向判断模块根据所述复位信号,生成待传输I2C信号的方向信号;
其中,所述待传输I2C信号的方向信号用于表示所述待传输I2C信号的传输方向,包括第一方向和第二方向,所述第一方向为所述I2C主设备输出且所述I2C从设备输入的信号传输方向,所述第二方向为所述I2C从设备输出且所述I2C主设备输入的信号传输方向;
通过方向控制模块,根据所述待传输I2C信号的方向信号,控制所述待传输I2C信号按照所述方向信号进行透传。
10.一种非易失性计算机存储介质,存储有计算机可执行指令,所述计算机可执行指令设置为:
基于I2C信号透传系统的复位信号的触发,通过方向判断模块根据所述复位信号,生成待传输I2C信号的方向信号;
其中,所述待传输I2C信号的方向信号用于表示所述待传输I2C信号的传输方向,包括第一方向和第二方向,所述第一方向为所述I2C主设备输出且所述I2C从设备输入的信号传输方向,所述第二方向为所述I2C从设备输出且所述I2C主设备输入的信号传输方向;
通过方向控制模块,根据所述待传输I2C信号的方向信号,控制所述待传输I2C信号按照所述方向信号进行透传。
CN202210404241.7A 2022-04-18 2022-04-18 一种基于cpld的i2c信号透传方法、设备及介质 Pending CN114925013A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210404241.7A CN114925013A (zh) 2022-04-18 2022-04-18 一种基于cpld的i2c信号透传方法、设备及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210404241.7A CN114925013A (zh) 2022-04-18 2022-04-18 一种基于cpld的i2c信号透传方法、设备及介质

Publications (1)

Publication Number Publication Date
CN114925013A true CN114925013A (zh) 2022-08-19

Family

ID=82806814

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210404241.7A Pending CN114925013A (zh) 2022-04-18 2022-04-18 一种基于cpld的i2c信号透传方法、设备及介质

Country Status (1)

Country Link
CN (1) CN114925013A (zh)

Similar Documents

Publication Publication Date Title
US5434980A (en) Apparatus for communication between a device control unit having a parallel bus and a serial channel having a serial link
US6842806B2 (en) Method and apparatus for interconnecting wired-AND buses
EP0009678A1 (en) Computer input/output apparatus
EP1764703A1 (en) A system for providing access to multiple data buffers of a data retaining and processing device
US20070240011A1 (en) FIFO memory data pipelining system and method for increasing I²C bus speed
CN101788972A (zh) 一种数据传输的系统与方法
EP1820110B1 (en) Multimedia card interface method, computer program product and apparatus
CN102073611B (zh) 一种i2c总线控制系统及方法
CN116185936A (zh) 一种spi通信数据收发异常检测控制系统及检测方法
CN114253898A (zh) 总线装置及数据读写电路
CN113434442A (zh) 一种交换机及数据访问方法
CN114996184B (zh) 兼容实现spi或i2c从机的接口模块及数据传输方法
CN110990310A (zh) 一种设备端sd控制器、控制方法及电子设备
CN114925013A (zh) 一种基于cpld的i2c信号透传方法、设备及介质
CN110659236B (zh) 可自主回复写应答的axi总线传输装置
CN114443530A (zh) 基于TileLink的芯片互联电路及数据传输方法
JP2988443B2 (ja) データ転送方式
CN113836058A (zh) 一种板卡间数据交换方法、装置、设备及存储介质
CN216014148U (zh) 一种服务器和服务器背板
CN115202257B (zh) 一种lpc总线协议转换及设备并行控制装置及方法
CN213715913U (zh) 一种微控制系统
CN218886572U (zh) 一种简单外设总线系统
CN100527113C (zh) 多媒体卡接口方法、计算机程序产品和装置
CN106250336A (zh) 一种fpga及进行总线切换的方法和系统
CN118467434A (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