CN117743235A - I2c设备的访问方法及装置 - Google Patents

I2c设备的访问方法及装置 Download PDF

Info

Publication number
CN117743235A
CN117743235A CN202311629451.7A CN202311629451A CN117743235A CN 117743235 A CN117743235 A CN 117743235A CN 202311629451 A CN202311629451 A CN 202311629451A CN 117743235 A CN117743235 A CN 117743235A
Authority
CN
China
Prior art keywords
channel
pca9548
access
information
equipment
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
CN202311629451.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.)
Suzhou Metabrain Intelligent Technology Co Ltd
Original Assignee
Suzhou Metabrain Intelligent 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 Suzhou Metabrain Intelligent Technology Co Ltd filed Critical Suzhou Metabrain Intelligent Technology Co Ltd
Priority to CN202311629451.7A priority Critical patent/CN117743235A/zh
Publication of CN117743235A publication Critical patent/CN117743235A/zh
Pending legal-status Critical Current

Links

Classifications

    • 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

  • Information Transfer Systems (AREA)

Abstract

本申请提供一种I2C设备的访问方法及装置,应用于FPGA,FPGA包括PCA9548寄存器、PCA9548通道管理单元和I2C主控设备,该方法包括:PCA9548寄存器根据中央处理器发送的I2C设备访问请求,使能对应的I2C设备访问信息,并将I2C设备访问信息发送至PCA9548通道管理单元;PCA9548通道管理单元根据I2C设备访问信息,选通I2C通道,并将I2C通道的通道信息发送至I2C主控设备;I2C主控设备根据I2C通道的通道信息,驱动I2C通道,并访问I2C通道所连接的I2C设备。本申请提高了访问效率,降低了CPU工作负担,同时减小资源压力。

Description

I2C设备的访问方法及装置
技术领域
本申请涉及I2C设备管理技术领域,尤其涉及一种I2C设备的访问方法及装置。
背景技术
在交换机***中,主要通过CPLD/FPGA实现整个交换机***数据层面的管理,包括I2C设备、MDC/MDIO设备、SPI设备等。光模块管理是交换机数据平面管理重要组成部分,光模块主要通过I2C接口进行管理。
传统设计方案是CPU提供多路I2C接口与控制器,电路板上通过PCA9548扩展实现CPU对光模块的一对一管理。但是由于CPU要驱动I2C Master控制器实现光模块管理与每次管理光模块之前先要选择PCA9548控制的I2C通道,从而增加了CPU工作负担。因此,亟需一种有效的方案以解决上述问题。
发明内容
本申请的目的是提供一种I2C设备的访问方法及装置,用于降低CPU工作负担,并减小Layout压力。
本申请提供一种I2C设备的访问方法,应用于FPGA,所述FPGA包括PCA9548寄存器、PCA9548通道管理单元和I2C主控设备,所述方法包括:
所述PCA9548寄存器根据中央处理器发送的I2C设备访问请求,使能对应的I2C设备访问信息,并将所述I2C设备访问信息发送至所述PCA9548通道管理单元;
所述PCA9548通道管理单元根据所述I2C设备访问信息,选通I2C通道,并将所述I2C通道的通道信息发送至所述I2C主控设备;
所述I2C主控设备根据所述I2C通道的通道信息,驱动所述I2C通道,并访问所述I2C通道所连接的I2C设备。
可选地,所述FPGA还包括总线终端节点;
所述方法还包括:
所述总线终端节点接收总线根节点发送的所述I2C设备访问请求,并将所述I2C设备访问请求通过总线发送至所述PCA9548寄存器;所述总线根节点部署在所述中央处理器上。
可选地,所述FPGA还包括I2C设备管理单元;
所述方法还包括:
所述PCA9548寄存器将所述I2C设备访问信息发送至所述I2C设备管理单元;
所述I2C设备管理单元根据所述I2C设备访问信息,确定I2C设备访问方式,并将所述I2C设备访问方式发送至所述I2C主控设备;
相应地,所述I2C主控设备根据所述I2C通道的通道信息,驱动所述I2C通道,并访问所述I2C通道所连接的I2C设备,包括:
所述I2C主控设备根据所述I2C通道的通道信息,驱动所述I2C通道,并按照所述I2C设备访问方式,访问所述I2C通道所连接的I2C设备。
可选地,所述PCA9548通道管理单元根据所述I2C设备访问信息,选通I2C通道,包括:
所述PCA9548通道管理单元从第一个I2C通道开始轮询:
判断当前I2C通道是否为最后一个I2C通道;
若是最后一个I2C通道,则结束访问;
若不是最后一个I2C通道,则根据所述I2C设备访问信息,判断当前I2C通道的使能标志是否为使能;
若所述使能标志不为使能,则将下一个I2C通道作为当前I2C通道,进行轮询;
若所述使能标志为使能,则当前I2C通道确定为选通的I2C通道,并将所述I2C通道的通道信息发送至所述I2C主控设备;
相应地,所述I2C主控设备根据所述I2C通道的通道信息,驱动所述I2C通道,并访问所述I2C通道所连接的I2C设备,包括:
所述I2C主控设备根据所述I2C通道的通道信息,生成通道使能命令,并将通道使能命令发送至PCA9548设备,以使所述PCA9548设备使能所述I2C通道;
所述I2C主控设备基于使能后的所述I2C通道,访问所述I2C通道所连接的I2C设备,并将访问完成信息发送给所述PCA9548通道管理单元;
所述PCA9548通道管理单元基于所述访问完成信息,将下一个I2C通道作为当前I2C通道,进行轮询。
可选地,所述PCA9548寄存器包括复位单元与通道切换单元;
所述通道切换单元用于记录所述PCA9548设备所连接的各I2C通道的使能状态。
可选地,所述PCA9548寄存器通过Wishbone总线,分别与所述PCA9548通道管理单元和I2C设备管理单元进行通信;
所述I2C主控设备通过Wishbone总线,分别与所述PCA9548通道管理单元和I2C设备管理单元进行通信。
可选地,所述FPGA还包括存储器;
所述访问所述I2C通道所连接的I2C设备之后,还包括:
所述I2C主控设备将访问所述I2C设备的访问结果信息存储在所述存储器中,并将所述I2C设备的访问完成信息发送至所述PCA9548寄存器;
所述PCA9548寄存器根据所述访问完成信息,在确定所述I2C设备访问信息对应的各I2C设备访问完成的情况下,向所述中央处理器发送访问结束信息,以使所述中央处理器从所述存储器中获取所述访问结果信息。
本申请还提供一种I2C设备的访问装置,应用于FPGA,所述装置包括:
PCA9548寄存器、PCA9548通道管理单元和I2C主控设备;
所述PCA9548寄存器,用于根据中央处理器发送的I2C设备访问请求,使能对应的I2C设备访问信息,并将所述I2C设备访问信息发送至所述PCA9548通道管理单元;
所述PCA9548通道管理单元,用于根据所述I2C设备访问信息,选通I2C通道,并将所述I2C通道的通道信息发送至所述I2C主控设备;
所述I2C主控设备,用于根据所述I2C通道的通道信息,驱动所述I2C通道,并访问所述I2C通道所连接的I2C设备。
本申请还提供一种计算机程序产品,包括计算机程序/指令,该计算机程序/指令被处理器执行时实现如上述任一种所述I2C设备的访问方法的步骤。
本申请还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述I2C设备的访问方法的步骤。
本申请还提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述I2C设备的访问方法的步骤。
本申请提供的I2C设备的访问方法及装置,通过PCA9548寄存器根据中央处理器发送的I2C设备访问请求,使能对应的I2C设备访问信息,并将I2C设备访问信息发送至PCA9548通道管理单元;PCA9548通道管理单元根据I2C设备访问信息,选通I2C通道,并将I2C通道的通道信息发送至I2C主控设备;I2C主控设备根据I2C通道的通道信息,驱动I2C通道,并访问I2C通道所连接的I2C设备。能够基于FPGA的MUX切换的I2C设备访问,通过FPGA实现PCA9548模块驱动,从而实现I2C设备的访问,提高I2C设备访问效率,降低CPU工作负担,同时减小Layout压力,减小FPGA IO与资源压力。
附图说明
为了更清楚地说明本申请或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请提供的I2C设备的访问方法的流程示意图之一;
图2是本申请提供的I2C设备访问框架的示意图;
图3是本申请提供的I2C设备的访问方法的流程示意图之二;
图4是本申请提供的I2C设备的访问装置的结构示意图;
图5是本申请提供的电子设备的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请中的附图,对本申请中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请的说明书中的术语“第一”、“第二”等是用于区别类似的对象,而不用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施,且“第一”、“第二”等所区分的对象通常为一类,并不限定对象的个数,例如第一对象可以是一个,也可以是多个。此外,说明书中“和/或”表示所连接对象的至少其中之一,字符“/”,一般表示前后关联对象是一种“或”的关系。
首先,对本申请涉及的相关内容进行说明。
FPGA(Field Programmable Gate Array),即现场可编程门阵列。
CPLD(Complicated Programmable Logic Device),即复杂可编程逻辑器件。
CPU(Central Processor Unit),即中央处理单元。
MDC(Management Data Clock),即总线时钟信号。
MDIO(Management Data Input/Output),即数据线。
SPI(Serial Peripheral interface),即串行外设接口。
MUX(Multiplexer),即多路选择器。
CPLD/FPGA是半定制的专用集成电路,具有灵活编程、快速响应、集成度高等系列优点,在国防、计算机、交换机、车辆及AI等领域前期开发验证及控制应用领域得到越来越广泛的应用。在交换机***中,主要通过CPLD/FPGA实现整个交换机***数据层面的管理,包括I2C设备、MDC/MDIO设备、SPI设备等。
光模块管理是交换机数据平面管理重要组成部分,光模块主要通过I2C接口进行管理。
传统设计方案是CPU提供多路I2C接口与控制器,电路板上通过PCA9548扩展实现CPU对光模块的一对一管理。但是由于CPU单核处理与PCA9548串行特性导致这种管理方案是完全串行方案,因此通信效率低;同时由于CPU要驱动I2C Master控制器实现光模块管理与每次管理光模块之前先要选择PCA9548控制的I2C通道,因此增加了CPU工作负担。
此外,一些方案中实现了基于FPGA控制I2C Master完全并行的光模块管理方案,将FPGA作为CPU的协处理器,这种完全并行的光模块管理方案提高了光模块访问效率,降低了CPU负担。但此方案对FPGA IO数量提出了较高要求,即FPGA需提供双倍于光模块的IO数量才能满足要求。
同时,交换机***中除了光模块外还有其他I2C设备,其也采用CPU提供多路I2C接口与控制器的管理方案。
为此,本申请提供了I2C设备的访问方法及装置,通过PCA9548寄存器根据中央处理器发送的I2C设备访问请求,使能对应的I2C设备访问信息,并将I2C设备访问信息发送至PCA9548通道管理单元;PCA9548通道管理单元根据I2C设备访问信息,选通I2C通道,并将I2C通道的通道信息发送至I2C主控设备;I2C主控设备根据I2C通道的通道信息,驱动I2C通道,并访问I2C通道所连接的I2C设备。能够基于FPGA的MUX切换的I2C设备访问,通过FPGA实现PCA9548模块驱动,从而实现I2C设备的访问,提高I2C设备访问效率,降低CPU工作负担,同时减小Layout压力,减小FPGA IO与资源压力。
下面结合附图,通过具体的实施例及其应用场景对本申请实施例提供的I2C设备的访问方法及装置进行详细地说明。
如图1所示,图1是本申请提供的I2C设备的访问方法的流程示意图之一,应用于FPGA,所述FPGA包括PCA9548寄存器、PCA9548通道管理单元和I2C主控设备,该方法可以包括下述步骤101至步骤103:
步骤101:所述PCA9548寄存器根据中央处理器发送的I2C设备访问请求,使能对应的I2C设备访问信息,并将所述I2C设备访问信息发送至所述PCA9548通道管理单元;
步骤102:所述PCA9548通道管理单元根据所述I2C设备访问信息,选通I2C通道,并将所述I2C通道的通道信息发送至所述I2C主控设备;
步骤103:所述I2C主控设备根据所述I2C通道的通道信息,驱动所述I2C通道,并访问所述I2C通道所连接的I2C设备。
具体地,I2C主控设备即I2C Master。
实际应用中,可以基于FPGA的MUX切换来实现I2C设备访问,其中MUX可以是PCA9548,也可以PCA9546,其原理一致,管理控制命令字存在差异。本发明以MUX为PCA9548进行说明。
CPU通过PCIe访问FPGA中的PCA9548寄存器实现I2C设备的管理,其中PCA9548寄存器包含I2C设备配置信息及PCA9548配置信息,I2C设备的管理是指基于FPGA实现I2CMaster与PCA9548通道管理单元的。
基于FPGA可以实现一路I2C管理8个I2C设备,即每个I2C设备的访问及I2C通道切换,具体包含PCA9548访问管理模块的设计及通用I2C Master的设计,集成PCA9548访问管理模块的设计及通用I2C Master模块统一调度模块采用状态机设计。
参见图2,图2是本申请提供的I2C设备访问框架的示意图:CPU通过PCIe访问FPGA,具体的,CPU通过PCIe访问FPGA的PCA9548寄存器,CPU配置PCA9548通道管理单元,此配置信息通过I2C Master选通I2C通道,进一步FPGA驱动I2C Master并实现I2C Master设备访问。特殊的,FPGA根据寄存器信息依次控制I2C通道。
本申请提供的I2C设备的访问方法,通过PCA9548寄存器根据中央处理器发送的I2C设备访问请求,使能对应的I2C设备访问信息,并将I2C设备访问信息发送至PCA9548通道管理单元;PCA9548通道管理单元根据I2C设备访问信息,选通I2C通道,并将I2C通道的通道信息发送至I2C主控设备;I2C主控设备根据I2C通道的通道信息,驱动I2C通道,并访问I2C通道所连接的I2C设备。能够基于FPGA的MUX切换的I2C设备访问,通过FPGA实现PCA9548模块驱动,从而实现I2C设备的访问,提高I2C设备访问效率,降低CPU工作负担,同时减小Layout压力,减小FPGA IO与资源压力。
在本申请一个或更多可选的实施例中,所述PCA9548寄存器包括复位单元与通道切换单元;
所述通道切换单元用于记录所述PCA9548设备所连接的各I2C通道的使能状态。
参见表1,表1示出了PCA9548(通道切换)寄存器的定义。
表1
由表1可以看出PCA9548寄存器的配置与状态信息。具体地,PCA9548寄存器包括PCA9548复位寄存器(复位单元)与PCA9548的通道完成信息(与通道切换单元)。其中,PCA9548的通道完成信息与其下游I2C设备的使能寄存器一致。
此外,如表1,PCA9548的寄存器接口提供复位、通道完成和周期完成标志位,特殊的,PCA9548通道使能信息与I2C设备的使能信息一致。复位寄存器默认处于解复位状态,即PCA9548默认处于工作状态,只需使能PCA9548的通道即可;此寄存器目的主要是在PCA9548异常的情况下的一种复位接口。通道完成和周期完成标志位,其目的是通知CPU对I2C设备的操作已执行完毕,CPU可执行新的操作或获取数据。
在本申请一个或更多可选的实施例中,所述FPGA还包括总线终端节点;所述方法还包括:
所述总线终端节点接收总线根节点发送的所述I2C设备访问请求,并将所述I2C设备访问请求通过总线发送至所述PCA9548寄存器;所述总线根节点部署在所述中央处理器上。
具体地,总线终端节点即PCIe End Point。总线根节点即PCIe Root Point。
实际应用中,参见图2,FPGA端实现PCIe End point,从而实现CPU与FPGA的PCIe通信,即通过PCIe Root Point与PCIe End Point,实现CPU与FPGA的通信。此功能依赖于FPGA本身IO serdes支持,即实现高速IO。其目的是实现CPU与FPGA的PCIe高速通信,此种设计方案对CPU更友好,CPU只需支持PCIe通信,其他通信接口都是通过FPGA实现的高速到低速的协议转换,CPU只需面向FPGA一个PCIe设备,I2C设备等是FPGA的从设备,I2C从设备的数据信息也通过FPGA RAM与CPU交互。对于不同厂家的开发工具提供不同的硬核配置界面,但基本配置项都相同。此功能也依赖于FPGA是否支持。
在本申请一个或更多可选的实施例中,所述FPGA还包括I2C设备管理单元;所述方法还包括:
所述PCA9548寄存器将所述I2C设备访问信息发送至所述I2C设备管理单元;
所述I2C设备管理单元根据所述I2C设备访问信息,确定I2C设备访问方式,并将所述I2C设备访问方式发送至所述I2C主控设备;
相应地,所述I2C主控设备根据所述I2C通道的通道信息,驱动所述I2C通道,并访问所述I2C通道所连接的I2C设备,包括:
所述I2C主控设备根据所述I2C通道的通道信息,驱动所述I2C通道,并按照所述I2C设备访问方式,访问所述I2C通道所连接的I2C设备。
实际应用中,参见图2,PCA9548寄存器将I2C设备访问信息,如表1中的读写属性,发送给I2C设备管理单元,由I2C设备管理单元根据读写属性确定I2C设备访问方式,如写数据、读数据,并将I2C设备访问方式发送给I2C Master。
进一步地,I2C Master驱动I2C通道,并按照I2C设备访问方式,对I2C通道所连接的I2C设备进行访问。如此,可以提高访问的准确性和可靠性。
在本申请一个或更多可选的实施例中,所述PCA9548通道管理单元根据所述I2C设备访问信息,选通I2C通道,包括:
所述PCA9548通道管理单元从第一个I2C通道开始轮询:
判断当前I2C通道是否为最后一个I2C通道;
若是最后一个I2C通道,则结束访问;
若不是最后一个I2C通道,则根据所述I2C设备访问信息,判断当前I2C通道的使能标志是否为使能;
若所述使能标志不为使能,则将下一个I2C通道作为当前I2C通道,进行轮询;
若所述使能标志为使能,则当前I2C通道确定为选通的I2C通道,并将所述I2C通道的通道信息发送至所述I2C主控设备;
相应地,所述I2C主控设备根据所述I2C通道的通道信息,驱动所述I2C通道,并访问所述I2C通道所连接的I2C设备,包括:
所述I2C主控设备根据所述I2C通道的通道信息,生成通道使能命令,并将通道使能命令发送至PCA9548设备,以使所述PCA9548设备使能所述I2C通道;
所述I2C主控设备基于使能后的所述I2C通道,访问所述I2C通道所连接的I2C设备,并将访问完成信息发送给所述PCA9548通道管理单元;
所述PCA9548通道管理单元基于所述访问完成信息,将下一个I2C通道作为当前I2C通道,进行轮询。
具体地,首先,PCA9548的使能信息是所有其下游I2C使能的“或”,即任何下游I2C设备使能,PCA9548就需要处于有效状态;再者,PCA9548通道依次使能,并从通道1(第一个I2C通道)开始轮询,其通道的开启与关闭均是FPGA配置的;再者,I2C设备操作期间PCA9548通道一直处于开启状态;最后,PCA9548通道依次开启直至第8通道,此时一个周期访问完毕。
PCA9548通道管理模块是基于FPGA实现,并通过基于FPGA实现的I2C Master传递该信息,具体地其遵循I2C通信协议。基于FPGA的PCA9548通道管理首先访问PCA9548的设备地址并执行单字节的写操作;然后,FPGA发送PCA9548的通道选择的命令字;最后,PCA9548反馈完成信号后,FPGA基于I2C Master开启I2C设备的访问。
PCA9548驱动模块(PCA9548通道管理单元)的目的是FPGA控制PCA9548通道的开启与关闭,通过硬件描述语言实现。具体操作流程遵循I2C读写流程,FPGA在确定通道完成切换后开启I2C设备的访问。此种设计方案进一步发挥FPGA作为协处理器的目的:降低CPU工作负担,提高访问速率;FPGA完全控制PCA9548通道开启与I2C设备访问,可以避免CPU与FPGA联合控制带来的协调问题,使设计更加可靠,应用更加灵活。
示例性地,参见图3,图3是本申请提供的I2C设备的访问方法的流程示意图之二:CPU配置访问光模块的寄存器或写入数据,并使能光模块访问;
FPGA从PCA9548第一通道开始轮询;然后PCA9548判断是否达到最后一个通道;若是,则结束一轮访问;若否,则判断I2C设备对应PCA9548通道是否使能。若使能,则FPGA通过I2C Master向PCA9548发送通道使能命令字,并按照寄存器设置完成光模块访问,然后开启下一通道访问;若不使能,则开启下个通道控制。
在本申请一个或更多可选的实施例中,所述PCA9548寄存器通过Wishbone总线,分别与所述PCA9548通道管理单元和I2C设备管理单元进行通信;
所述I2C主控设备通过Wishbone总线,分别与所述PCA9548通道管理单元和I2C设备管理单元进行通信。
如图2所示,PCA9548寄存器和PCA9548通道管理单元通过Wishbone总线进行通信;PCA9548寄存器和I2C设备管理单元进行通信;I2C主控设备和PCA9548通道管理单元通过Wishbone总线进行通信;I2C主控设备和I2C设备管理单元通过Wishbone总线进行通信;I2C主控设备通过I2C与PCA9548设备进行通信。
在本申请一个或更多可选的实施例中,所述FPGA还包括存储器;所述访问所述I2C通道所连接的I2C设备之后,还包括:
所述I2C主控设备将访问所述I2C设备的访问结果信息存储在所述存储器中,并将所述I2C设备的访问完成信息发送至所述PCA9548寄存器;
所述PCA9548寄存器根据所述访问完成信息,在确定所述I2C设备访问信息对应的各I2C设备访问完成的情况下,向所述中央处理器发送访问结束信息,以使所述中央处理器从所述存储器中获取所述访问结果信息。
参见图3,FPGA还包括存储器(RAM),RAM与I2C Master进行信息交互。
具体地,是指CPU通过PCIe访问FPGA寄存器及存储器实现I2C设备的管理,具体的寄存器及存储器包含I2C设备配置信息及PCA9548配置信息,具体的I2C设备的管理是指基于FPGA实现I2C Master与PCA9548通道管理。
基于FPGA实现一路I2C管理8个光模块,即每个光模块的访问及I2C通道切换,具体包含PCA9548访问管理模块的设计及通用I2C Master的设计,具体地,集成PCA9548访问管理模块的设计及通用I2C Master模块统一调度模块采用状态机设计。
示例性地,本申请的I2C设备的访问方法主要包括:
1)PCIe Endpoint实现。
FPGA端实现PCIe Endpoint,从而实现CPU与FPGA的PCIe通信。此功能依赖于FPGA本身IO serdes支持,即实现高速IO。其目的是实现CPU与FPGA的PCIe高速通信,此种设计方案对CPU更友好,CPU只需支持PCIe通信,其他通信接口都是通过FPGA实现的高速到低速的协议转换,CPU只需面向FPGA一个PCIe设备,I2C设备等是FPGA的从设备,I2C从设备的数据信息也通过FPGA RAM与CPU交互。对于不同厂家的开发工具提供不同的硬核配置界面,但基本配置项都相同。此功能也依赖于FPGA是否支持。
2)PCA9548寄存器接口设计。
如表1,PCA9548的寄存器接口提供复位、通道完成和周期完成标志位,
特殊的,PCA9548通道使能信息与I2C设备的使能信息一致。复位寄存器默认处于解复位状态,即PCA9548默认处于工作状态,只需使能PCA9548的通道即可;此寄存器目的主要是在PCA9548异常的情况下的一种复位接口。通道完成和周期完成标志位,其目的是通知CPU对I2C设备的操作已执行完毕,CPU可执行新的操作或获取数据。
3)PCA9548驱动模块设计。
PCA9548驱动模块的目的是FPGA控制PCA9548通道的开启与关闭,通过硬件描述语言实现。具体操作流程遵循I2C读写流程,FPGA在确定通道完成切换后开启I2C设备的访问。此种设计方案进一步发挥FPGA作为协处理器的目的:降低CPU工作负担,提高访问速率;FPGA完全控制PCA9548通道开启与I2C设备访问,可以避免CPU与FPGA联合控制带来的协调问题,使设计更加可靠,应用更加灵活。
4)在FPGA上实现PCA9548通道选择模块的设计,并完成包含I2C设备访问的统一调度模块设计。
5)综合编译后生成镜像并下载,在操作***下实现CPU通过PCIe访问FPGA从而实现I2C设备的高效访问,验证机制的有效性。
本实施例,基于FPGA的MUX切换的I2C设备访问设计与实现提高了I2C设备访问效率,通过将FPGA作为协处理器,降低CPU工作负担,同时减小Layout压力,减小FPGA IO压力;通过将I2C设备访问与PCA9548通道切换统一由FPGA控制,可实现统一调度,提高了整个设计的可靠性;基于硬件描述语言实现PCA9548设计,PCA9548模块采用模块化、参数化的设计方法,便于移植;基于PCA9548模块提供复位、通道完成和周期完成标志位,提高了应用灵活实用性;可通过轮询或中断机制获取通道完成和周期完成标志位,提高了应用灵活性。
本申请提供的I2C设备的访问方法,通过PCA9548寄存器根据中央处理器发送的I2C设备访问请求,使能对应的I2C设备访问信息,并将I2C设备访问信息发送至PCA9548通道管理单元;PCA9548通道管理单元根据I2C设备访问信息,选通I2C通道,并将I2C通道的通道信息发送至I2C主控设备;I2C主控设备根据I2C通道的通道信息,驱动I2C通道,并访问I2C通道所连接的I2C设备。能够基于FPGA的MUX切换的I2C设备访问,通过FPGA实现PCA9548模块驱动,从而实现I2C设备的访问,提高I2C设备访问效率,降低CPU工作负担,同时减小Layout压力,减小FPGA IO与资源压力。
其中,提高I2C设备访问效率,降低CPU工作负担要体现在FPGA作为CPU的协处理器,由FPGA驱动实现PCA9548的方案避免了传统PCA9548器件的使用处理降低Layout压力外,可有效地降低生产成本。在资源上,PCA9548驱动模块及8个I2C设备可以分时复用1个I2C Master模块;在IO上,PCA9548驱动模块及8个I2C设备只需要使用2个IO。
此外,本申请提供的I2C设备的访问方法不仅可以应用于交换机领域I2C设备访问,对服务器应用领域和其他低俗信号的应用领域都有一定借鉴意义。
需要说明的是,本申请实施例提供的I2C设备的访问方法,执行主体可以为I2C设备的访问装置,或者该I2C设备的访问装置中的用于执行I2C设备的访问方法的控制模块。本申请实施例中以I2C设备的访问装置执行I2C设备的访问方法为例,说明本申请实施例提供的I2C设备的访问装置。
需要说明的是,本申请实施例中,上述各个方法附图所示的I2C设备的访问方法均是以结合本申请实施例中的一个附图为例示例性的说明的。具体实现时,上述各个方法附图所示的I2C设备的访问方法还可以结合上述实施例中示意的其它可以结合的任意附图实现,此处不再赘述。
下面对本申请提供的I2C设备的访问装置进行描述,下文描述的与上文描述的I2C设备的访问方法可相互对应参照。
图4为本申请实施例提供的I2C设备的访问装置的结构示意图,如图4所示,具体包括:
PCA9548寄存器401、PCA9548通道管理单元402和I2C主控设备403;
所述PCA9548寄存器401,用于根据中央处理器发送的I2C设备访问请求,使能对应的I2C设备访问信息,并将所述I2C设备访问信息发送至所述PCA9548通道管理单元;
所述PCA9548通道管理单元402,用于根据所述I2C设备访问信息,选通I2C通道,并将所述I2C通道的通道信息发送至所述I2C主控设备;
所述I2C主控设备403,用于根据所述I2C通道的通道信息,驱动所述I2C通道,并访问所述I2C通道所连接的I2C设备。
本申请提供的I2C设备的访问装置,通过PCA9548寄存器根据中央处理器发送的I2C设备访问请求,使能对应的I2C设备访问信息,并将I2C设备访问信息发送至PCA9548通道管理单元;PCA9548通道管理单元根据I2C设备访问信息,选通I2C通道,并将I2C通道的通道信息发送至I2C主控设备;I2C主控设备根据I2C通道的通道信息,驱动I2C通道,并访问I2C通道所连接的I2C设备。能够基于FPGA的MUX切换的I2C设备访问,通过FPGA实现PCA9548模块驱动,从而实现I2C设备的访问,提高I2C设备访问效率,降低CPU工作负担,同时减小Layout压力,减小FPGA IO与资源压力。
在本申请一个或更多个可选的实施例中,所述FPGA还包括总线终端节点;
所述方法还包括:
所述总线终端节点,用于接收总线根节点发送的所述I2C设备访问请求,并将所述I2C设备访问请求通过总线发送至所述PCA9548寄存器;所述总线根节点部署在所述中央处理器上。
在本申请一个或更多个可选的实施例中,所述FPGA还包括I2C设备管理单元;
所述PCA9548寄存器401,进一步用于将所述I2C设备访问信息发送至所述I2C设备管理单元;
所述I2C设备管理单元,用于根据所述I2C设备访问信息,确定I2C设备访问方式,并将所述I2C设备访问方式发送至所述I2C主控设备;
所述I2C主控设备403,进一步用于根据所述I2C通道的通道信息,驱动所述I2C通道,并按照所述I2C设备访问方式,访问所述I2C通道所连接的I2C设备。
在本申请一个或更多个可选的实施例中,所述PCA9548通道管理单元402,进一步用于:
从第一个I2C通道开始轮询:
判断当前I2C通道是否为最后一个I2C通道;
若是最后一个I2C通道,则结束访问;
若不是最后一个I2C通道,则根据所述I2C设备访问信息,判断当前I2C通道的使能标志是否为使能;
若所述使能标志不为使能,则将下一个I2C通道作为当前I2C通道,进行轮询;
若所述使能标志为使能,则当前I2C通道确定为选通的I2C通道,并将所述I2C通道的通道信息发送至所述I2C主控设备403;
相应地,所述I2C主控设备403,进一步用于:
根据所述I2C通道的通道信息,生成通道使能命令,并将通道使能命令发送至PCA9548设备,以使所述PCA9548设备使能所述I2C通道;
基于使能后的所述I2C通道,访问所述I2C通道所连接的I2C设备,并将访问完成信息发送给所述PCA9548通道管理单元402;
所述PCA9548通道管理单元,进一步用于:
基于所述访问完成信息,将下一个I2C通道作为当前I2C通道,进行轮询。
在本申请一个或更多个可选的实施例中,所述PCA9548寄存器401包括复位单元与通道切换单元;
所述通道切换单元用于记录所述PCA9548设备所连接的各I2C通道的使能状态。
在本申请一个或更多个可选的实施例中,所述PCA9548寄存器401通过Wishbone总线,分别与所述PCA9548通道管理单元402和I2C设备管理单元进行通信;
所述I2C主控设备403通过Wishbone总线,分别与所述PCA9548通道管理单元402和I2C设备管理单元进行通信。
在本申请一个或更多个可选的实施例中,所述FPGA还包括存储器;
所述I2C主控设备403,进一步用于:
将访问所述I2C设备的访问结果信息存储在所述存储器中,并将所述I2C设备的访问完成信息发送至所述PCA9548寄存器;
所述PCA9548寄存器401,进一步用于:
根据所述访问完成信息,在确定所述I2C设备访问信息对应的各I2C设备访问完成的情况下,向所述中央处理器发送访问结束信息,以使所述中央处理器从所述存储器中获取所述访问结果信息。
图5示例了一种电子设备的实体结构示意图,如图5所示,该电子设备可以包括:处理器(processor)510、通信接口(Communications Interface)520、存储器(memory)530和通信总线540,其中,处理器510,通信接口520,存储器530通过通信总线540完成相互间的通信。处理器510可以调用存储器530中的逻辑指令,以执行I2C设备的访问方法,该方法应用于FPGA,所述FPGA包括PCA9548寄存器、PCA9548通道管理单元和I2C主控设备,包括:所述PCA9548寄存器根据中央处理器发送的I2C设备访问请求,使能对应的I2C设备访问信息,并将所述I2C设备访问信息发送至所述PCA9548通道管理单元;所述PCA9548通道管理单元根据所述I2C设备访问信息,选通I2C通道,并将所述I2C通道的通道信息发送至所述I2C主控设备;所述I2C主控设备根据所述I2C通道的通道信息,驱动所述I2C通道,并访问所述I2C通道所连接的I2C设备。
此外,上述的存储器530中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
另一方面,本申请还提供一种计算机程序产品,所述计算机程序产品包括存储在计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法所提供的I2C设备的访问方法,该方法应用于FPGA,所述FPGA包括PCA9548寄存器、PCA9548通道管理单元和I2C主控设备,包括:所述PCA9548寄存器根据中央处理器发送的I2C设备访问请求,使能对应的I2C设备访问信息,并将所述I2C设备访问信息发送至所述PCA9548通道管理单元;所述PCA9548通道管理单元根据所述I2C设备访问信息,选通I2C通道,并将所述I2C通道的通道信息发送至所述I2C主控设备;所述I2C主控设备根据所述I2C通道的通道信息,驱动所述I2C通道,并访问所述I2C通道所连接的I2C设备。
又一方面,本申请还提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各提供的I2C设备的访问方法,该方法应用于FPGA,所述FPGA包括PCA9548寄存器、PCA9548通道管理单元和I2C主控设备,包括:所述PCA9548寄存器根据中央处理器发送的I2C设备访问请求,使能对应的I2C设备访问信息,并将所述I2C设备访问信息发送至所述PCA9548通道管理单元;所述PCA9548通道管理单元根据所述I2C设备访问信息,选通I2C通道,并将所述I2C通道的通道信息发送至所述I2C主控设备;所述I2C主控设备根据所述I2C通道的通道信息,驱动所述I2C通道,并访问所述I2C通道所连接的I2C设备。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。

Claims (10)

1.一种I2C设备的访问方法,其特征在于,应用于FPGA,所述FPGA包括PCA9548寄存器、PCA9548通道管理单元和I2C主控设备,所述方法包括:
所述PCA9548寄存器根据中央处理器发送的I2C设备访问请求,使能对应的I2C设备访问信息,并将所述I2C设备访问信息发送至所述PCA9548通道管理单元;
所述PCA9548通道管理单元根据所述I2C设备访问信息,选通I2C通道,并将所述I2C通道的通道信息发送至所述I2C主控设备;
所述I2C主控设备根据所述I2C通道的通道信息,驱动所述I2C通道,并访问所述I2C通道所连接的I2C设备。
2.根据权利要求1所述的I2C设备的访问方法,其特征在于,所述FPGA还包括总线终端节点;
所述方法还包括:
所述总线终端节点接收总线根节点发送的所述I2C设备访问请求,并将所述I2C设备访问请求通过总线发送至所述PCA9548寄存器;所述总线根节点部署在所述中央处理器上。
3.根据权利要求1所述的I2C设备的访问方法,其特征在于,所述FPGA还包括I2C设备管理单元;
所述方法还包括:
所述PCA9548寄存器将所述I2C设备访问信息发送至所述I2C设备管理单元;
所述I2C设备管理单元根据所述I2C设备访问信息,确定I2C设备访问方式,并将所述I2C设备访问方式发送至所述I2C主控设备;
相应地,所述I2C主控设备根据所述I2C通道的通道信息,驱动所述I2C通道,并访问所述I2C通道所连接的I2C设备,包括:
所述I2C主控设备根据所述I2C通道的通道信息,驱动所述I2C通道,并按照所述I2C设备访问方式,访问所述I2C通道所连接的I2C设备。
4.根据权利要求1所述的I2C设备的访问方法,其特征在于,所述PCA9548通道管理单元根据所述I2C设备访问信息,选通I2C通道,包括:
所述PCA9548通道管理单元从第一个I2C通道开始轮询:
判断当前I2C通道是否为最后一个I2C通道;
若是最后一个I2C通道,则结束访问;
若不是最后一个I2C通道,则根据所述I2C设备访问信息,判断当前I2C通道的使能标志是否为使能;
若所述使能标志不为使能,则将下一个I2C通道作为当前I2C通道,进行轮询;
若所述使能标志为使能,则当前I2C通道确定为选通的I2C通道,并将所述I2C通道的通道信息发送至所述I2C主控设备;
相应地,所述I2C主控设备根据所述I2C通道的通道信息,驱动所述I2C通道,并访问所述I2C通道所连接的I2C设备,包括:
所述I2C主控设备根据所述I2C通道的通道信息,生成通道使能命令,并将通道使能命令发送至PCA9548设备,以使所述PCA9548设备使能所述I2C通道;
所述I2C主控设备基于使能后的所述I2C通道,访问所述I2C通道所连接的I2C设备,并将访问完成信息发送给所述PCA9548通道管理单元;
所述PCA9548通道管理单元基于所述访问完成信息,将下一个I2C通道作为当前I2C通道,进行轮询。
5.根据权利要求1所述的I2C设备的访问方法,其特征在于,所述PCA9548寄存器包括复位单元与通道切换单元;
所述通道切换单元用于记录所述PCA9548设备所连接的各I2C通道的使能状态。
6.根据权利要求3所述的I2C设备的访问方法,其特征在于,所述PCA9548寄存器通过Wishbone总线,分别与所述PCA9548通道管理单元和I2C设备管理单元进行通信;
所述I2C主控设备通过Wishbone总线,分别与所述PCA9548通道管理单元和I2C设备管理单元进行通信。
7.根据权利要求1所述的I2C设备的访问方法,其特征在于,所述FPGA还包括存储器;
所述访问所述I2C通道所连接的I2C设备之后,还包括:
所述I2C主控设备将访问所述I2C设备的访问结果信息存储在所述存储器中,并将所述I2C设备的访问完成信息发送至所述PCA9548寄存器;
所述PCA9548寄存器根据所述访问完成信息,在确定所述I2C设备访问信息对应的各I2C设备访问完成的情况下,向所述中央处理器发送访问结束信息,以使所述中央处理器从所述存储器中获取所述访问结果信息。
8.一种I2C设备的访问装置,其特征在于,应用于FPGA,所述装置包括:
PCA9548寄存器、PCA9548通道管理单元和I2C主控设备;
所述PCA9548寄存器,用于根据中央处理器发送的I2C设备访问请求,使能对应的I2C设备访问信息,并将所述I2C设备访问信息发送至所述PCA9548通道管理单元;
所述PCA9548通道管理单元,用于根据所述I2C设备访问信息,选通I2C通道,并将所述I2C通道的通道信息发送至所述I2C主控设备;
所述I2C主控设备,用于根据所述I2C通道的通道信息,驱动所述I2C通道,并访问所述I2C通道所连接的I2C设备。
9.一种电子设备,其特征在于,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序时实现如权利要求1至7任一项所述I2C设备的访问方法的步骤。
10.一种计算机可读存储介质,其特征在于,其上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7中任一项所述I2C设备的访问方法的步骤。
CN202311629451.7A 2023-11-30 2023-11-30 I2c设备的访问方法及装置 Pending CN117743235A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311629451.7A CN117743235A (zh) 2023-11-30 2023-11-30 I2c设备的访问方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311629451.7A CN117743235A (zh) 2023-11-30 2023-11-30 I2c设备的访问方法及装置

Publications (1)

Publication Number Publication Date
CN117743235A true CN117743235A (zh) 2024-03-22

Family

ID=90251722

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311629451.7A Pending CN117743235A (zh) 2023-11-30 2023-11-30 I2c设备的访问方法及装置

Country Status (1)

Country Link
CN (1) CN117743235A (zh)

Similar Documents

Publication Publication Date Title
US6434660B1 (en) Emulating one tape protocol of flash memory to a different type protocol of flash memory
KR101035832B1 (ko) 집적 종단점 장치와, 집적 pci 익스프레스 종단점 장치및 pci 익스프레스 통신 시스템
KR100352224B1 (ko) 핀-총수가 적은 버스 상에서의 직접 메모리 억세스 트랜잭션
US10078568B1 (en) Debugging a computing device
CN113849433B (zh) 一种总线控制器的执行方法、装置、总线控制器、计算机设备和存储介质
CN110968352B (zh) 一种pcie设备的复位***及服务器***
CN108268414A (zh) 基于spi模式的sd卡驱动器及其控制方法
CN113270137B (zh) 一种基于fpga嵌入式软核的ddr2测试方法
CN116541227B (zh) 故障诊断方法、装置、存储介质、电子装置及bmc芯片
CN112749113A (zh) 一种数据交互的方法、***、设备及介质
CN110765060B (zh) Mdio总线到并行总线转换方法及装置、设备、介质
CN117743235A (zh) I2c设备的访问方法及装置
CN115470163A (zh) Dma传输的控制方法、控制装置、控制设备及存储介质
CN112486274B (zh) 计算机扩展卡及计算机***
CN113326220A (zh) 一种外设电子标签信息获取方法及设备
JP3504572B2 (ja) 論理回路のエミュレータ
CN112783071A (zh) 一种sdio控制器、fpga板卡和sdio测试***
CN111782574A (zh) 一种串行外设接口控制方法和串行外设接口控制器
RU72772U1 (ru) Модуль-контроллер магистрального последовательного интерфейса
CN216014148U (zh) 一种服务器和服务器背板
CN113868179B (zh) 一种LPC_DPRam的通信装置及数据转换方法
CN218886572U (zh) 一种简单外设总线***
CN115202257B (zh) 一种lpc总线协议转换及设备并行控制装置及方法
CN117591378B (zh) 一种服务器的温度控制方法、***、设备及存储介质
EP4373038A1 (en) Processing system, related integrated circuit, device and method

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