CN117111539B - 以太网物理层芯片的控制方法及装置 - Google Patents
以太网物理层芯片的控制方法及装置 Download PDFInfo
- Publication number
- CN117111539B CN117111539B CN202311387850.7A CN202311387850A CN117111539B CN 117111539 B CN117111539 B CN 117111539B CN 202311387850 A CN202311387850 A CN 202311387850A CN 117111539 B CN117111539 B CN 117111539B
- Authority
- CN
- China
- Prior art keywords
- physical layer
- target
- register
- layer chip
- fpga
- 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 79
- 230000002093 peripheral effect Effects 0.000 claims description 28
- 230000005540 biological transmission Effects 0.000 claims description 27
- 238000012546 transfer Methods 0.000 claims description 10
- 238000004458 analytical method Methods 0.000 claims description 5
- 238000007726 management method Methods 0.000 description 16
- 238000010586 diagram Methods 0.000 description 14
- 230000006870 function Effects 0.000 description 12
- 230000008569 process Effects 0.000 description 12
- 230000003993 interaction Effects 0.000 description 7
- 238000004891 communication Methods 0.000 description 6
- 230000000694 effects Effects 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 238000001514 detection method Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000004590 computer program Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/04—Programme control other than numerical control, i.e. in sequence controllers or logic controllers
- G05B19/042—Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
- G05B19/0423—Input/output
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/20—Pc systems
- G05B2219/24—Pc safety
- G05B2219/24215—Scada supervisory control and data acquisition
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Automation & Control Theory (AREA)
- Logic Circuits (AREA)
- Advance Control (AREA)
Abstract
本申请公开了一种以太网物理层芯片的控制方法及装置,属于工业自动化控制领域。所述方法包括:现场可编程门阵列FPGA接收处理器发送的地址信息和目标命令信息;所述FPGA根据所述地址信息,确定待控制的多个物理层芯片中的目标物理层芯片;所述FPGA根据所述目标命令信息,确定所述目标物理层芯片所执行的目标操作;所述FPGA按照所述目标操作,对所述目标物理层芯片进行控制。
Description
技术领域
本申请涉及工业自动化控制技术领域,尤其涉及一种以太网物理层芯片的控制方法及装置。
背景技术
在工业自动化控制领域中,以太网通信技术已经是应用非常广泛且成熟的数据传输方式。由于工业自动化控制领域中以太网的应用环境面临着温度,电磁等方面的复杂环境,因此要求网络具有很高的可靠性和鲁棒性。
在目前的现场应用中,会使用冗余网络的方式保障数据传输的可靠性、稳定性以及完整性,但是这种方式往往需要增加网口的使用数量。目前对于CPU这类元件而言,网口是非常稀有的接口资源,扩展难度较大。
同时,在工业自动化控制领域,以太网物理层芯片得到了越来越广泛的应用。在存在多个以太网物理层芯片的情况下,受CPU接口资源限制,如何对多个物理层芯片进行控制是一个值得关注的问题。
发明内容
本申请实施例提供一种以太网物理层芯片的控制方法及装置,以解决在存在多个以太网物理层芯片的情况下,受CPU接口资源限制,无法对多个物理层芯片进行控制的问题。
第一方面,本申请提供了一种以太网物理层芯片的控制方法,应用于控制系统中的控制器,所述方法包括:
现场可编程门阵列(Field Programmable Gate Array,FPGA)接收处理器发送的地址信息和目标命令信息;
所述FPGA根据所述地址信息,确定待控制的多个物理层芯片中的目标物理层芯片;
所述FPGA根据所述目标命令信息,确定所述目标物理层芯片所执行的目标操作;
所述FPGA按照所述目标操作,对所述目标物理层芯片进行控制。
第二方面,本申请提供了一种现场可编程门阵列装置,所述装置包括:
总线解析模块,用于接收接收处理器发送的地址信息和目标命令信息;根据所述地址信息,确定待控制的多个物理层芯片中的目标物理层芯片;根据所述目标命令信息,确定所述目标物理层芯片所执行的目标操作;
外设模块,用于按照所述目标操作,对所述目标物理层芯片进行控制。
本申请实施例采用的上述至少一个技术方案能够达到以下有益效果:
在本申请实施例中,FPGA接收处理器发送的地址信息和目标命令信息;所述FPGA根据所述地址信息,确定待控制的多个物理层芯片中的目标物理层芯片;所述FPGA根据所述目标命令信息,确定所述目标物理层芯片所执行的目标操作;所述FPGA按照所述目标操作,对所述目标物理层芯片进行控制。如此,由于FPGA是可编程芯片,可以根据项目需求扩展出符合需求数量的网口,通过接收的地址信息和目标命令信息,可确定待控制的多个物理层芯片中的目标物理层芯片以及对目标物理层芯片执行的目标操作,进而可完成对多个物理层芯片中的目标物理层芯片的控制,实现处理器对多个物理层芯片的单独控制,解决了在存在多个以太网物理层芯片的情况下,受CPU接口资源限制,无法对多个物理层芯片进行控制的问题。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为本申请实施例提供的一种以太网物理层芯片的控制方法的示意图;
图2为本申请实施例提供的一种以太网物理层芯片的控制方法的流程图;
图3为本申请实施例提供的一种以太网物理层芯片的控制方法的流程图;
图4-1为本申请实施例提供的一种以太网物理层芯片的控制方法中实现读功能的时序框图;
图4-2为本申请实施例提供的一种以太网物理层芯片的控制方法中实现写功能的时序框图;
图5-1为本申请实施例提供的一种以太网物理层芯片的控制方法的流程图;
图5-2为本申请实施例提供的FPGA实现串行管理接口(Serial ManagementInterface,SMI)接口读取功能的时序框图;
图6-1为本申请实施例提供的一种以太网物理层芯片的控制方法的流程图;
图6-2为本申请实施例提供的FPGA实现SMI接口写功能的时序框图;
图7为本申请实施例提供的一种以太网物理层芯片的控制方法的完整流程图;
图8为本申请实施例提供的一种以太网物理层芯片的控制方法的总体构思的完整示意图;
图9为本申请实施例提供的一种现场可编程门阵列装置的结构框图;
图10为本申请实施例提供的一种电子设备的结构框图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请的说明书和权利要求书中的术语“第一”、“第二”等是用于区别类似的对象,而不用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施,且“第一”、“第二”等所区分的对象通常为一类,并不限定对象的个数,例如第一对象可以是一个,也可以是多个。此外,说明书以及权利要求中“和/或”表示所连接对象的至少其中之一,字符“/”,一般表示前后关联对象是一种“或”的关系。
因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本申请实施例提供的以太网物理层芯片的控制方法可应用于工业自动化控制领域,特别地,可应用于以太网通信环境下。
在工业自动化控制领域中,对MCU、CPU等元件的外设资源非常有限,为了扩展所需要的接口,相关技术是通过将其他接口转换为网口,例如利用转换芯片将通用串口总线转换为以太网接口。不同于相关技术,本申请中采用现场可编程门阵列(Field ProgrammableGate Array,FPGA)这种可编程芯片,FPGA可以根据项目需求扩展出符合需求数量的网口。
本申请实施例提供的以太网的物理层芯片的控制方法可以由具有FPGA的目标设备执行,其中,目标设备可以是一台电子设备。具体地,可以由安装在电子设备上的软件或硬件来执行。其中,所述电子设备例如可以为诸如台式电脑、手机、笔记本电脑、平板电脑等终端设备,也可以为服务器。
本申请实施例可以采用各种处理器,包括但不限于国产自主研发的处理器(例如龙芯2K1000系列处理器)作为业务处理的核心处理器。
以下结合附图,详细说明本申请各实施例提供的技术方案。
图1是本申请实施例提供的一种以太网物理层芯片的控制方法的示意图。如图1所示,本申请实施例提供的以太网物理层芯片的控制方法中涉及到了处理器110、FPGA 120和物理层芯片(PHY)130。其中,处理器110可与FPGA 120相耦接,FPGA可以与物理层(PHY)芯片相耦接。其中,处理器可以是CPU,也可以是微控制单元(Micro Controller Unit,MCU),还可以是其他发挥类似功能的元件。虽然图1中仅示出了一个物理层芯片,但需了解这只是用于举例,物理层芯片的具体数量可根据实际情况确定,实际上,在本申请实施例提供的以太网物理芯片的控制方法中,可涉及更多的物理层芯片。在多个物理层芯片的情况下,针对每一个物理层芯片的接口(例如SMI接口),FPGA内都存在相应的控制空间,例如寄存器空间,通过此单独的控制空间实现对此物理层芯片的控制,从而实现对多个物理层芯片的单独管理。换言之,FGPA中控制空间的数目与物理层芯片的数目是一一对应的,多个物理层芯片中的每个均对应FGPA内单独的控制空间。此外,FPGA可实现与处理器之间的总线读写驱动,并将处理器总线对应的内存空间映射为FPGA内接口(例如SMI接口)对应的控制空间(例如寄存器空间),实现处理器读写相应的控制空间就可以实现控制对应的接口(例如SMI接口)。同时,FPGA内可存在多个控制模块,控制模块的数目可以与物理层芯片的数目一一对应,且每一个控制模块都可包含各种不同的寄存器,例如后文提及的各个寄存器。如此,可通过增加控制模块的方式,实现更多不同接口的扩展。
图2是本申请实施例提供的一种以太网物理层芯片的控制方法的流程图,如图2所示,该方法可包括:
步骤210,FPGA接收处理器发送的地址信息和目标命令信息;
在一个实施例中,步骤210中所述FPGA接收处理器发送的地址信息和目标命令信息,包括:FPGA接收处理器通过命令总线发送的第一命令信息;所述FPGA根据所述第一命令信息,从锁存器获取所述处理器发送的地址信息;所述FPGA接收所述处理器通过命令总线发送的第二命令信息,并将所述第二命令信息作为目标命令信息;其中,所述命令总线包括M种总线,所述第一命令信息和所述第二命令信息是基于所述M种总线传输的信息确定的。
步骤220,所述FPGA根据所述地址信息,确定待控制的多个物理层芯片中的目标物理层芯片;
在本申请实施例中,所述目标物理层芯片可以为一个,根据实际情况可作调整。
在一个实施例中,步骤220中所述FPGA根据所述地址信息,确定待控制的多个物理层芯片中的目标物理层芯片,包括:FPGA将所述地址信息转换为所述FPGA内以太网接口对应的目标地址,所述目标地址包括目标物理层芯片的物理地址和寄存器地址。
在本申请实施例中,通过FPGA将所述地址信息转换为目标物理层芯片的物理地址和寄存器地址,以此确定待控制的多个物理层芯片中的目标物理层芯片。如此,通过FPGA实现地址信息转换,便捷地实现了对多个以太网物理层芯片的单独管理。
步骤230,所述FPGA根据所述目标命令信息,确定所述目标物理层芯片所执行的目标操作;
在本申请实施例中,所述目标操作包括读取操作、写操作、读取结束操作、写结束操作中的至少一种。
步骤240,所述FPGA按照所述目标操作,对所述目标物理层芯片进行控制。
在本申请实施例中,若所述目标操作为读取操作,则从所述目标物理层芯片读取数据;若所述目标操作为写操作,则将待写入数据写入所述物理层芯片;若所述目标操作为读取结束操作,表示此次读取操作结束,确定对所述目标物理层芯片终止此次读取操作;若所述目标操作为写结束操作,表示此次写操作结束,确定对所述目标物理层芯片终止此次写操作。
本申请实施例提供的一种以太网物理层芯片的控制方法,FPGA接收处理器发送的地址信息和目标命令信息;所述FPGA根据所述地址信息,确定待控制的多个物理层芯片中的目标物理层芯片;所述FPGA根据所述目标命令信息,确定所述目标物理层芯片所执行的目标操作;所述FPGA按照所述目标操作,对所述目标物理层芯片进行控制。如此,由于FPGA是可编程芯片,可以根据项目需求扩展出符合需求数量的网口,通过接收的地址信息和目标命令信息,可确定待控制的多个物理层芯片中的目标物理层芯片以及对目标物理层芯片执行的目标操作,进而可完成对多个物理层芯片中的目标物理层芯片的控制,实现处理器对多个物理层芯片的单独控制,解决了在存在多个以太网物理层芯片的情况下,受CPU接口资源限制,无法对多个物理层芯片进行控制的问题。
可选地,在本申请的一个实施例中,待控制的多个物理层芯片中的每一个物理层芯片对应所述FPGA内的一个控制参数寄存器,所述控制参数寄存器用于设置发往物理层芯片的时钟信号的分频参数,待控制的多个物理层芯片中不同的物理层芯片对应于不同频率的时钟信号。
在本申请实施例中,FPGA中可设置有多个控制参数寄存器,每个控制参数寄存器对应于一个物理层芯片。通过FPGA中的控制参数寄存器来设置FPGA的系统时钟,对FPGA系统时钟进行分频,以满足所述控制参数寄存器对应的物理层芯片的不同频率的时钟信号。
在本申请实施例中,待控制的多个物理层芯片中的每一个物理层芯片对应所述FPGA内的一个控制参数寄存器,所述控制参数寄存器用于设置发往物理层芯片的时钟信号的分频参数,待控制的多个物理层芯片中不同的物理层芯片对应于不同频率的时钟信号。如此,通过在FPGA中设置多个控制参数寄存器,并且待控制的多个物理层芯片中的每一个物理层芯片对应一个控制参数寄存器,通过各个物理层芯片对应的控制参数寄存器可以实现对不同频率的时钟信号的物理层芯片的控制,可以适应不同厂家或者同厂家不同物理层芯片对于SMI接口时钟频率的要求。
请参见图3、图4-1和图4-2,图3为本申请实施例提供的一种以太网物理层芯片的控制方法的流程图,图4-1和图4-2为本申请实施例提供的以太网物理层芯片的控制方法中实现读、写数据功能的时序框图。该方法可以包括以下步骤:
步骤310,FPGA接收处理器通过命令总线发送的第一命令信息;
在本申请实施例中,所述第一命令信息可以为处理器通过命令总线发送的命令信息。具体地,所述第一命令信息可以为由0或1组成的控制命令信息,例如00100111,可理解为一种由处理器发出的指令。
步骤320,所述FPGA根据所述第一命令信息,从锁存器获取所述处理器发送的地址信息;
在本申请实施例中,所述锁存器用于地址数据存储。当锁存信号处于高电平时锁存器可触发,锁存器开始存储处理器发送的地址信息,直到锁存信号处于低水平时,锁存器可输出存储的地址信息。
步骤330,所述FPGA接收所述处理器通过命令总线发送的第二命令信息,并将所述第二命令信息作为目标命令信息;
其中,所述命令总线包括M种总线,所述第一命令信息和所述第二命令信息是基于所述M种总线传输的信息确定的。
在本申请的一个实施例中,所述FPGA和所述目标物理层芯片之间的信息传输是通过SMI接口进行的,所述FPGA和所述处理器之间的信息传输是通过本地输入输出(LocalIO,LIO)总线进行的。以龙芯2K1000处理器为例,龙芯2K1000处理器支持本地输入输出(LocalIO,LIO)总线,在LIO总线中,所述命令总线包括片选信号总线LIO_CSn、数据有效信号总线LIO_DEn、数据传输方向信号总线LIO_DIR、读使能信号总线LIO_RDn、写使能信号总线LIO_WRn。
其他类型的命令总线可以为外围器件互联(Peripheral ComponentInterconnect,PCI)总线、工业标准结构(Industy Standard Architecture,ISA)总线等其他处理器的总线。
步骤340,所述FPGA根据所述地址信息,确定待控制的多个物理层芯片中的目标物理层芯片;
步骤350,所述FPGA根据所述目标命令信息,确定所述目标物理层芯片所执行的目标操作;
以龙芯2K1000处理器为例,当所述目标命令信息为5b00001时表示为读命令,确定目标物理层芯片执行读取操作;当所述目标命令信息为5b00110时表示为写命令,确定目标物理层芯片执行写操作;当所述目标命令信息为5b00011时表示为读操作结束命令,确定目标物理层芯片执行读取结束操作;当所述目标命令信息为5b00111时表示为写操作结束命令,确定目标物理层芯片执行写结束操作;当所述目标命令信息为5b11111时表示为总线空闲命令,不对目标物理层芯片执行操作;当所述目标命令信息为其他数据时表示为无效命令,FPGA不会进行任何处理,不对目标物理层芯片执行操作。
步骤360,所述FPGA按照所述目标操作,对所述目标物理层芯片进行控制。
在本申请实施例中,所述FPGA根据所述第一命令信息,从锁存器获取所述处理器发送的地址信息。如此,所述地址信息是从锁存器中获取的,所述锁存器可以实现输出端的状态不会随输入端的状态变化而变化,因此在数据和地址线复用的情况下可以避免在传输地址信息时,地址线被数据线影响。
需了解的是,图3中步骤320仅是一种示例的获取地址信息的方式。在本申请的另一个实施例中,所述地址信息可以为由FPGA直接接收的处理器发送的地址信息。或者,在本申请的另一个实施例中,所述地址信息可以由两个部分组成,一部分为由FPGA直接接收处理器发送的地址信息,一部分为当接收到当FPGA接收到地址采集命令时,从锁存器接收处理器发送的地址信息。
此外,在本申请实施例中,所述FPGA和所述目标物理层芯片之间的信息传输可以是通过SMI接口进行的。请参见图5-1和图5-2,图5-1为本申请实施例提供的一种以太网物理层芯片的控制方法的流程图,图5-2为本申请实施例提供的FPGA实现SMI接口读取功能的时序框图。
本申请实施例中的FPGA可包括地址译码器模块、命令译码器模块、寄存器控制模块和SMI外设模块。其中,来自命令译码器模块的信息可发往地址译码器模块,来自地址译码器模块的信息可发往寄存器控制模块,寄存器控制模块可以与SMI外设模块进行数据交互。所述SMI外设模块可包括一个或多个控制模块。每一个控制模块可与寄存器控制模块进行数据交互,且每一个控制模块可包括控制参数寄存器、地址参数寄存器、发送数据寄存器、接收数据寄存器、收发状态寄存器以及SMI接口驱动模块。其中,所述SMI接口驱动模块可包括SMI发送模块以及SMI接收模块。
如图5-1所示,该方法可包括以下步骤:
步骤510,FPGA接收处理器发送的地址信息和目标命令信息;
在本申请实施例中,由FPGA中的地址译码器模块接收处理器发送的地址信息,由FPGA中的命令译码器模块接收处理器发送的目标命令信息。
步骤520,所述FPGA根据所述地址信息,确定待控制的多个物理层芯片中的目标物理层芯片;
在本申请实施例中,由FPGA中的地址译码器模块来解析所述地址信息,并可将解析得到的目标物理层芯片的物理地址和寄存器地址存放到寄存器控制模块,根据解析得到的目标物理层芯片的物理地址和寄存器地址,确定待控制的多个物理层芯片中的目标物理层芯片。
在本申请实施例中,可以确定目标物理层芯片所在的控制模块,并将寄存器控制模块中存放的目标物理层芯片的物理地址和寄存器地址发送给所述控制模块中的地址参数寄存器。
步骤530,所述FPGA根据所述目标命令信息,确定所述目标物理层芯片所执行的目标操作;
在本申请实施例中,由FPGA中的命令译码器模块解析所述目标命令信息,若所述命令信息为读命令,确定对目标物理层芯片执行读操作;若所述命令信息为写命令,确定对目标物理层芯片执行写操作。
步骤540,在所述目标操作为读取操作的情况下,所述FPGA向目标物理层芯片发送读取操作信息,所述读取操作信息包括所述目标物理层芯片的物理地址和寄存器地址;
在本申请实施例中,在所述目标操作为读取操作的情况下,设置控制参数寄存器的操作标志位为读操作,从地址参数寄存器中获取目标物理层芯片的物理地址和寄存器地址,并向目标物理层芯片发送所述目标物理层芯片的物理地址和寄存器地址。SMI接口驱动模块中的SMI发送模块会接收到FPGA中的控制参数寄存器发送的开始使能参数,FPGA开始接收目标物理层芯片返回的读取数据。
步骤550,所述FPGA接收所述目标物理层芯片返回的读取数据;
在本申请实施例中,可由FPGA中SMI接口驱动模块的SMI接收模块接收所述目标物理层芯片返回的读取数据。
步骤560,向所述处理器返回所述读取数据;
在本申请实施例中,所述FPGA向目标物理层芯片发送读取操作信息,所述读取操作信息包括所述目标物理层芯片的物理地址和寄存器地址;所述FPGA接收所述目标物理层芯片返回的读取数据;向所述处理器返回所述读取数据。如此,在处理器对目标物理层芯片的目标操作为读取操作时,所述FPGA基于所述目标物理层芯片的物理地址和寄存器地址,可以接收所述目标物理层芯片返回的读取数据,并向处理器返回所述读取数据,通过FPGA可以实现对多个物理层芯片中的目标物理层芯片的读取操作。
在本申请的一个实施例中,所述FPGA和所述目标物理层芯片之间的信息传输是通过SMI接口进行的,所述FPGA和所述处理器之间的信息传输是通过LIO总线进行的。在本申请实施例中,由于LIO总线的数据总线为16比特位(bit),SMI接口的协议寄存器数据长度也为16比特位(bit),因此选用LIO总线来扩展SMI接口具有天然的优势。
在本申请实施例中,SMI接口可包括管理数据接入输出接口(Management DataInput/Output,MDIO)信号线和媒体独立接口(Media Indepedent Interface,MII)信号线,通过MDIO信号信号线可以完成FPGA与物理层芯片之间的数据交互,通过MII信号线可以处理目标物理层芯片与以太网MAC之间的交互。
具体地,如图5-2所示,在目标操作为读取操作的情况下,SMI发送模块会接收到FPGA中的控制参数寄存器发送的开始使能参数,并将MDIO的方向切换为发送方向,并将所述读取操作信息放到MDIO信号线上。当转向符发送完成,标志着由SMI接收模块开始接收数据,SMI接收模块将接收完成的数据存放到接收数据寄存器中,并修改收发状态寄存器中读操作的操作标志。
在本申请实施例中,可通过对MDIO信号线进行错误检测,检测此次读取操作的准确性。所述MDIO信号线在空闲时应为高电位,如果MDIO信号线在空闲时为低电位,判定MDIO信号线错误,同时将MDIO中错误标志位置位。具体地,在SMI发送模块接收到开始使能参数的同时,收发状态寄存器检测MDIO信号线的错误标志位。处理器会对收发状态寄存器进行轮询,如果检测到接收错误标志位,则处理器需重新读取数据。
可选地,在本申请的一个实施例中,在步骤550中所述FPGA接收所述目标物理层芯片返回的读取数据之后,所述方法还包括:将所述读取数据放入所述目标物理层芯片对应的接收数据寄存器中;其中,待控制的多个物理层芯片中的每一个物理层芯片对应所述FPGA内的一个接收数据寄存器;
在本申请实施例中,FPGA中的接收模块会将接收完成的数据放在接收数据寄存器中。所述FPGA内有多个接收数据寄存器,其中,每一个接收数据寄存器都对应一个物理层芯片。在进行目标物理层芯片的读取操作时,可以将目标物理层芯片的读取数据放入与目标物理层芯片对应的接收数据寄存器,并修改收发状态寄存器中接收完成的标志位。
相应地,步骤560中向所述处理器返回所述读取数据,包括:从所述目标物理层芯片对应的所述接收数据寄存器中获取所述读取数据,并向所述处理器返回所述读取数据。
在本申请实施例中,将所述读取数据放入所述目标物理层芯片对应的接收数据寄存器中;其中,待控制的多个物理层芯片中的每一个物理层芯片对应所述FPGA内的一个接收数据寄存器。如此,通过将多个物理层芯片与FPGA中的接收数据寄存器一一对应起来,通过FPGA内的多个接收数据寄存器对多个物理层芯片进行读取操作,可以通过FPGA实现处理器对多个物理层芯片的单独管理。
在本申请实施例中,所述FPGA和所述目标物理层芯片之间的信息传输可以是通过SMI接口进行的。请参见图6-1和图6-2,图6-1为本申请实施例提供的一种以太网物理层芯片的控制方法的流程图,图6-2为本申请实施例提供的FPGA实现SMI接口写功能的时序框图。
本申请实施例中的FPGA包括地址译码器模块、命令译码器模块、寄存器控制模块和SMI外设模块。其中,来自命令译码器模块的信息可发往地址译码器模块,来自地址译码器模块的信息可发往寄存器控制模块,寄存器控制模块可以与SMI外设模块进行数据交互。所述SMI外设模块可包括一个或多个控制模块。每一个控制模块可与寄存器控制模块进行数据交互,且每一个控制模块可包括控制参数寄存器、地址参数寄存器、发送数据寄存器、接收数据寄存器、收发状态寄存器以及SMI接口驱动模块。其中,所述SMI接口驱动模块可包括SMI发送模块以及SMI接收模块。
如图6-1所示,该方法可包括以下步骤:
步骤610,FPGA接收处理器发送的地址信息和目标命令信息;
步骤620,所述FPGA根据所述地址信息,确定待控制的多个物理层芯片中的目标物理层芯片;
步骤630,所述FPGA根据所述目标命令信息,确定所述目标物理层芯片所执行的目标操作;
步骤640,在所述目标操作为写操作的情况下,所述FPGA通过读取目标总线获取待写入数据;
在本申请实施例中,在所述目标操作为写操作的情况下,所述FPGA设置控制参数寄存器的操作标志为写操作,所述FPGA通过读取目标总线获取待写入数据,并将所述待写入数据发送给发送数据寄存器。
步骤650,所述FPGA向所述目标物理层芯片发送写操作信息,所述写操作信息包括所述目标物理层芯片的物理地址、寄存器地址和所述待写入数据;
在本申请实施例中,FPGA中的SMI发送模块会从地址参数寄存器中获取目标物理层芯片的物理地址和寄存器地址,从发送数据寄存器中获取代写入数据,然后向目标物理层芯片发送所述目标物理层芯片的物理地址和寄存器地址,再向目标物理层芯片发送待写入数据。
可选地,在本申请的一个实施例中,所述FPGA和所述目标物理层芯片之间的信息传输是通过串行管理接口进行的,所述FPGA和所述处理器之间的信息传输是通过本地输入/输出总线进行的。
在本申请实施例中,SMI接口可包括MDIO信号线和MII信号线,通过MDIO信号信号线可以完成FPGA与物理层芯片之间的数据交互,通过MII信号线可以处理目标物理层芯片与以太网MAC之间的交互。
具体地,如图6-2所示,在所述目标操作为写操作的情况下,FPGA中的发送模块会接收到开始使能参数,并将MDIO的方向切换为发送方向,从目标总线上获取待写入数据。当转向符发送完成,表示写操作完成后将MDIO方向切换为收方向,并修改收发状态寄存器中写操作的操作标志。
在本申请实施例中,可通过对MDIO信号线进行错误检测,检测此次读取操作的准确性。所述MDIO信号线在空闲时应为高电位,如果MDIO信号线在空闲时为低电位,判定MDIO信号线错误,同时将MDIO中错误标志位置位。具体地,在SMI发送模块接收到开始使能参数的同时,收发状态寄存器检测MDIO信号线的错误标志位。处理器会对收发状态寄存器进行轮询,如果检测到接收错误标志位,则处理器需重新写入数据。
在本申请实施例中,所述FPGA通过读取目标总线获取待写入数据;所述FPGA向所述目标物理层芯片发送写操作信息,所述写操作信息包括所述目标物理层芯片的物理地址、寄存器地址和所述待写入数据。如此,在处理器对目标物理层芯片的目标操作为写操作时,所述FPGA通过目标总线获取待写入数据,基于所述目标物理层芯片的物理地址和寄存器地址,向所述目标物理层芯片发送所述待写入数据实现对目标物理层芯片的写操作。
可选的,在本申请的一个实施例中,在步骤640中在所述目标操作为写操作的情况下,所述FPGA通过读取目标总线获取待写入数据之后,所述方法还包括:将获取的所述待写入数据放入发送数据寄存器中;其中,待控制的多个物理层芯片中的每一个物理层芯片对应所述FPGA内的一个发送数据寄存器;
在本申请实施例中,所述FPGA内有多个发送数据寄存器,其中,每一个发送数据寄存器都有一个对应的物理层芯片。在进行目标物理层芯片的写操作时,可以将所述待写入数据放入与目标物理层芯片对应的发送数据寄存器。
在步骤650中所述FPGA向所述目标物理层芯片发送写操作信息,包括:所述FPGA从所述目标物理层芯片对应的发送数据寄存器中获取所述待写入数据,并将向所述目标物理层芯片发送包含所述待写入数据的写操作信息。
在本申请实施例中,将获取的所述待写入数据放入发送数据寄存器中;其中,待控制的多个物理层芯片中的每一个物理层芯片对应所述FPGA内的一个发送数据寄存器;所述FPGA从所述目标物理层芯片对应的发送数据寄存器中获取所述待写入数据,并将向所述目标物理层芯片发送包含所述待写入数据的写操作信息。通过将多个物理层芯片与FPGA中的多个发送数据寄存器一一对应起来,通过FPGA内的多个发送数据寄存器对多个物理层芯片进行写操作,可以通过FPGA实现处理器对多个物理层芯片的单独管理。
在本申请的一个实施例中,所述FPGA和所述目标物理层芯片之间的信息传输是通过串行管理接口(SMI)进行的,且所述FPGA和所述处理器之间的信息传输是通过本地输入/输出总线(LIO)进行的。在本申请实施例中,由于LIO总线的数据总线为16比特位(bit),SMI接口的协议寄存器数据长度也为16比特位(bit),因此选用LIO总线来扩展SMI接口具有良好的扩展效果。
需了解的是,在图5-1和图6-1中,仅是以SMI接口为例来进行论述,并不意为限制,在本申请实施例中,还可以采用除了SMI接口之外的接口。
请参见图7,图7为本申请实施例提供的一种以太网物理层芯片的控制方法的完整流程图,图8为本申请实施例提供的一种以太网物理层芯片的控制方法的总体构思的完整示意图。
由图8所示,FPGA包括LIO总线解析模块和SMI外设模块。其中,LIO总线解析模块包括地址译码器模块、命令译码器模块和寄存器控制模块。SMI外设模块包括多个控制模块,每个控制模块中包括控制参数寄存器、地址参数寄存器、发送数据寄存器、收发状态寄存器和接收数据寄存器以及SMI接口驱动模块,SMI接口驱动模块包括SMI时钟模块、SMI发送模块和SMI接收模块。SMI接口分为MDIO信号线和MII信号线。各个模块之间的信息传递方向可如图8所示。本申请实施例中设置的SMI接口驱动模块的数目可以与物理层芯片的数目相同,且一一对应,如此,可通过各个物理层芯片对应的SMI接口驱动模块与各个物理层芯片实现SMI通信,实现对SMI接口的扩展,并通过扩展的SMI接口实现对各个物理层芯片的单独管理。
需了解的是,在图8中,仅是以SMI接口为例来进行论述,并不意为限制,在本申请实施例中,还可以采用除了SMI接口之外的接口。也就是说,图8中的SMI接口驱动模块是对应于SMI接口而设置的,实际的FPGA中设置与物理层芯片一一对应的多个接口驱动模块即可,而未必是SMI接口驱动模块。相应地,SMI时钟模块、SMI发送模块和SMI接收模块也是对应于SMI接口而设置的,实际的FPGA中的各个接口驱动模块中包括时钟模块、发送模块和接收模块即可。
下面对图8中的各个模块进行进一步阐释。
LIO总线解析模块用于解析处理器发送的地址信息和目标命令信息,实现处理器与FPGA之间的LIO总线数据通信功能。
锁存器用于地址数据存储,锁存器可以是高电平触发,LIO_ADLOCK信号和地址数据可以同时发出,因此可以采用LIO_ADLOCK信号作为地址数据锁存的触发信号。地址译码器模块用于解析LIO总线的地址。LIO总线的地址数据可分为两部分,分别为A_H和A_M,A_H为地址数据的低7位,A_M为地址数据的高16位,地址译码器模块采集LIO_A和LIO_AD两条总线上的数据并组合出23位真实的地址数据,并将真实的地址数据映射到FPGA内的寄存器地址空间,并发送给寄存器控制模块。命令译码器模块用于解析LIO总线的读写命令,LIO总线读写数据对应的命令不同,命令译码器模块解析出LIO的读写指令,并输出相应的控制信息发送给寄存器控制模块。寄存器控制模块根据地址译码器模块发送的地址和命令译码器模块发送的命令,读取LIO_AD总线上的数据发送到相应地址的寄存器,或者将相应地址寄存器的数值放到LIO_AD总线上,并根据读写命令控制LIO_AD总线的收发方向切换。三态控制门(图8中的三角形所示即为三态控制门),用于切换信号线的收发方向,LIO总线中LIO_AD和SMI接口中MDIO都是收发数据在同一信号线上,可根据实际情况切换总线的收发方向。以太网MAC模块用于以太网处理收发数据。
控制参数寄存器用于设置SMI时钟模块的分频参数、读写操作标志位以及SMI接口开始使能,开始使能位会在SMI接口发送起始码时清0;地址参数寄存器用于设置SMI接口所需要的物理层芯片芯片物理地址和寄存器地址;发送数据寄存器用于存放SMI接口需要写入到物理层芯片内寄存器的数据;接收数据寄存器用于存放SMI接口从物理层芯片内寄存器读取的数据;收发状态寄存器用于存放SMI发送模块和SMI接收模块的状态信息,每次读取该寄存器完成时,寄存器的内容会被全部清零。由于SMI接口协议中数据为16bit,因此所有寄存器的长度均为16bit,除收发状态寄存器外其他寄存器权限均为可读可写,收发状态寄存器的权限为只读。
SMI接口驱动模块,用于实现SMI接口所需要的时钟和数据收发。SMI接口驱动模块包含SMI时钟模块、SMI发送模块和SMI接收模块。其中,SMI时钟模块用于产生SMI接口协议中MDC(Management Data Clock)时钟。SMI时钟模块根据控制参数寄存器对FPGA系统时钟进行分频,得到满足物理层芯片规定的频率。SMI发送模块用于发送需要写入物理层芯片寄存器的数据。SMI发送模块接收到控制参数寄存器开始使能参数后,将MDIO(ManagementData Input/Output)的方向切换为发送方向,并根据SMI接口协议将相应数据放到MDIO信号线上,协议中需要的地址数据从地址参数寄存器中读取,需要的数据参数从发送数据寄存器中读取,需要的读写方向数据从控制参数寄存器中读取,当写操作完成后将MDIO方向切换为收方向,并修改收发状态寄存中发送完成的标志位。SMI接收模块用于接收从物理层芯片内寄存器读取的数据。SMI发送模块接收到控制参数寄存器开始使能参数后,将MDIO的方向切换为发送方向,并根据SMI接口协议将数据放到MDIO信号线上,协议中需要的地址数据从地址参数寄存器中读取,需要的读写方向数据从控制参数寄存器中读取,当开始接收数据时将MDIO切换为收方向,并告诉SMI接收模块进行接收(发送转向符完成的同时),SMI接收模块将接收完成的数据存放到接收数据寄存器中,并修改收发状态寄存中接收完成的标志位。正常状态下,MDIO信号线在空闲时应为高,当空闲时MDIO信号线为低,认为MDIO信号线错误,将错误标志位置位。错误检测在发送使能那一瞬间采样总线,如果总线为低,根据收发标志位,对收或者发错误标志位置位。
SMI写数据时,SMI发送模块先发送需要写入物理层芯片的物理地址和寄存器地址,然后SMI发送模块向物理层芯片发送数据;SMI读数据时,SMI发送模块向物理层芯片发送物理地址和寄存器地址,接着转向符发送完成的同时通知SMI接收模块准备接收数据,然后接收模块接收物理层芯片发送的数据。
其中,MII用于物理层芯片与以太网媒体访问控制子层协议(Media AccessControl,MAC)模块的交互,所述以太网MAC模块用于以太网处理收发数据。
处理器通过LIO总线写数据的步骤可如下:1)处理器写控制参数寄存器设置MDC(Management Data Clock)的分频参数;2)处理器写地址参数寄存器设置PHY芯片的物理地址和寄存器地址;3)处理器写发送数据寄存器设置将要写入物理层芯片寄存器的数据;4)处理器写控制参数寄存器设置操作标志位为写操作和开始使能;5)处理器轮询读收发状态寄存器检测发送完成或者发送错误标志位;6)当处理器检测到发送错误标志位可以写控制参数寄存器开始使能重新写入数据。
处理器通过LIO总线读数据的步骤可如下:1)处理器写控制参数寄存器设置MDC的分频参数;2)处理器写地址参数寄存器设置PHY芯片的物理地址和寄存器地址;3)处理器写控制参数寄存器设置操作标志位为读操作和开始使能;4)处理器轮询读收发状态寄存器检测接收完成和接收错误标志位;5)处理器检测到接收完成标志位时,从接收数据寄存器中读取物理层芯片寄存器的数据;如果检测到接收错误标志位,则处理器重新写控制参数寄存器开始使能重新读取数据。
参照图4-1和图4-2,LIO总线的地址数据可分为两部分,分别为A_H和A_M,A_H为地址的低7位,A_M为地址数据的高16位,其中A_H为地址译码器模块从地址总线LIO_A中获取的数据,A_H为地址译码器模块从地址复用总线LIO_AD中获取的数据,地址译码器模块通过采集LIO_A和LIO_AD中的数据组合为23位真实的地址数据。
本申请实施例可设置三态控制门,所述三态控制门用于切换信号线的收发方向,根据具体的实际操作切换总线的收发方向。
如图7所示,本申请实施例提供的一种以太网物理层芯片的控制方法包括以下步骤:
步骤710,FPGA接收处理器通过命令总线发送的第一命令信息;
步骤720,所述FPGA根据所述第一命令信息,从锁存器获取所述处理器发送的地址信息;
在本申请实施例中,可参照图4-1和图4-2,由FPGA中的命令译码器模块检测命令总线上的数据,当检测到命令总线上得到的数据为5b00111时,是处理器发送第一命令信息的最佳时间。锁存信号LIO_ADLOCK信号和地址数据同时发出,因此,采用LIO_ADLOCK信号作为地址数据锁存的触发信号。所述地址信息为地址数据,从锁存器中获取处理器发送的地址数据。
在本申请的一个实施例中,所述地址信息可分为两部分,一部分从LIO_AD总线中直接获得,即A_H部分地址数据,另一部分为,当FPGA中地址译码器模块接收到命令译码器模块发出的地址采集命令后,由地址译码器模块从锁存器中接收的地址信息,即A_M部分地址数据,将两个部分组合成最终的地址信息。
步骤730,所述FPGA接收所述处理器通过命令总线发送的第二命令信息,并将所述第二命令信息作为目标命令信息;
在本申请实施例中,得到最终地址信息后,FPGA中的命令译码器模块会继续采集命令总线上的信息,将检测得到的信息为所述第二命令信息,并将第二命令信息作为目标命令信息。
步骤740,FPGA将所述地址信息转换为所述FPGA内以太网接口对应的目标地址,所述目标地址包括目标物理层芯片的物理地址和寄存器地址;
在本申请实施例中,FPGA中的地址译码器模块将所述地址信息转换为FPGA内关于SMI外设接口的寄存器地址数据,所述SMI外设接口的寄存器地址数据包括目标物理层芯片的物理地址和寄存器地址,并使其一一对应,并将转换之后的地址数据发送给FPGA中的寄存器控制模块。
步骤750,所述FPGA根据所述目标命令信息,确定所述目标物理层芯片所执行的目标操作;
在本申请实施例中,当所述命令数据为读命令时,FPGA中的寄存器控制模块会根据,地址译码器模块发送的目标物理层芯片的物理地址和寄存器地址,读取相应地址寄存器的数值,并切换LIO_AD的总线方向为发送方向,将读取的寄存器数据放到LIO_AD总线上。直到命令译码器模块收到读操作结束命令时,会发送读操作完成信号给寄存器控制模块。当寄存器控制模块接收到读操作完成信号时,会切换LIO_AD的总线方向为接收方向,完成一次LIO总线读寄存器操作。
当所述命令数据为写命令时,FPGA中的寄存器控制模块会读取LIO_AD总线上的数据,读取数据完成后,寄存器控制模块会根据地址译码器模块发送的地址信息,将所述读取数据写到与地址信息相应的控制模块中的地址参数寄存器中。直到命令译码器模块收到写操作结束命令时,会发送写操作完成信号给寄存器控制模块,完成一次LIO总线写寄存器操作。
下面对目标操作为读取操作和写操作这两种情况分别进行具体说明,如以下步骤760至步骤766,以及步骤770至步骤774所示。
步骤760,在所述目标操作为读取操作的情况下,所述FPGA向目标物理层芯片发送读取操作信息,所述读取操作信息包括所述目标物理层芯片的物理地址和寄存器地址;
步骤762,所述FPGA接收所述目标物理层芯片返回的读取数据;
步骤764,将所述读取数据放入接收所述目标物理层芯片对应的接收数据寄存器中;其中,待控制的多个物理层芯片中的每一个物理层芯片对应所述FPGA内的一个接收数据寄存器;
步骤766,从所述目标物理层芯片对应的所述接收数据寄存器中获取所述读取数据,并向所述处理器返回所述读取数据;
步骤770,在所述目标操作为写操作的情况下,所述FPGA通过读取目标总线获取待写入数据;
步骤772,将获取的所述待写入数据放入发送数据寄存器中;其中,待控制的多个物理层芯片中的每一个物理层芯片对应所述FPGA内的一个发送数据寄存器;
步骤774,所述FPGA从所述目标物理层芯片对应的发送数据寄存器中获取所述待写入数据,并将向所述目标物理层芯片发送包含所述待写入数据的写操作信息;
在本申请实施例提供的一种以太网物理层芯片的控制方法中,待控制的多个物理层芯片中的每一个物理层芯片对应所述FPGA内的一个控制参数寄存器,所述控制参数寄存器用于设置发往物理层芯片的时钟信号的分频参数,待控制的多个物理层芯片中不同的物理层芯片对应于不同频率的时钟信号。
在本申请实施例中,对于多个物理层芯片中的每一个物理层芯片,与其对应的控制模块中的控制参数寄存器设置时钟模块(例如SMI时钟模块)的分频参数,所述分频参数与所述物理层芯片的时钟频率相匹配。由时钟模块根据控制参数寄存器中的分频参数对所述控制模块进行分频,产生管理数据时钟(Management Data Clock,MDC),满足物理层芯片的时钟频率要求。
在本申请实施例中,FPGA接收处理器发送的地址信息和目标命令信息;所述FPGA根据所述地址信息,确定待控制的多个物理层芯片中的目标物理层芯片;所述FPGA根据所述目标命令信息,确定所述目标物理层芯片所执行的目标操作;所述FPGA按照所述目标操作,对所述目标物理层芯片进行控制。如此,在需要对物理层芯片进行单独管理的情况下,基于FPGA接收处理器发送的地址信息和目标命令信息,可确定对目标物理层芯片执行的目标操作,完成对多个物理层芯片中的目标物理层芯片的控制,实现处理器对多个物理层芯片的单独管理。同时,通过SMI时钟模块根据控制参数寄存器中的分频参数进行分频,可以实现对不同频率的时钟信号的物理层芯片的控制,可以适应不同厂家或者同厂家不同物理层芯片对于SMI接口时钟频率的要求。
需了解的是,图1至图7中对各个相同或相应步骤的解释可相互参照。例如,图5-1中步骤510和步骤520的解释可适用于图6-1中的步骤610和步骤620。
同时,需了解的是,本申请实施例提供的一种以太网物理层芯片的控制方法还可具有以下有益效果:其一,在不改变本申请设计架构的情况下,可通过增加寄存器的方式,实现更多不同接口的扩展;其二,本发明实用性强,稳定性强,移植性强,可以在其他厂家或者其他可编程芯片上使用,并且有很强的可扩展性,在FPGA内资源充足的情况下,可以扩展出任意数量的SMI接口,并且可以扩展任意数量的其他外设接口,对于外设接口要求多,且接口种类复杂的情况下有很强的实用价值。
图9为本申请实施例提供的一种现场可编程门阵列装置的结构框图。参照图9,本申请实施例提供的现场可编程门阵列装置900包括:
总线解析模块910,用于接收处理器发送的地址信息和目标命令信息;根据所述地址信息,确定待控制的多个物理层芯片中的目标物理层芯片;根据所述目标命令信息,确定所述目标物理层芯片所执行的目标操作;
外设模块920,用于按照所述目标操作,对所述目标物理层芯片进行控制。
本申请实施例提供的一种现场可编程门阵列装置,总线解析模块接收处理器发送的地址信息和目标命令信息;根据所述地址信息,确定待控制的多个物理层芯片中的目标物理层芯片;根据所述目标命令信息,确定所述目标物理层芯片所执行的目标操作;外设模块按照所述目标操作,对所述目标物理层芯片进行控制。如此,由于FPGA是可编程芯片,可以根据项目需求扩展出符合需求数量的网口,通过接收的地址信息和目标命令信息,可确定待控制的多个物理层芯片中的目标物理层芯片以及对目标物理层芯片执行的目标操作,进而可完成对多个物理层芯片中的目标物理层芯片的控制,实现处理器对多个物理层芯片的单独控制,解决了在存在多个以太网物理层芯片的情况下,受CPU接口资源限制,无法对多个物理层芯片进行控制的问题。
在本申请的一个实施例中,在所述根据所述地址信息,确定待控制的多个物理层芯片中的目标物理层芯片的过程中,所述总线解析模块910可以具体用于:将所述地址信息转换为以太网接口对应的目标地址,所述目标地址包括目标物理层芯片的物理地址和寄存器地址。
在本申请的一个实施例中,在所述接收处理器发送的地址信息和目标命令信息的过程中,所述总线解析模块910可以具体用于:接收处理器通过命令总线发送的第一命令信息;根据所述第一命令信息,从锁存器获取所述处理器发送的地址信息;接收所述处理器通过命令总线发送的第二命令信息,并将所述第二命令信息作为目标命令信息;其中,所述命令总线包括M种总线,所述第一命令信息和所述第二命令信息是基于所述M种总线传输的信息确定的。
在本申请的一个实施例中,在所述目标操作为读取操作的情况下,在所述按照所述目标操作,对所述目标物理层芯片进行控制的过程中,所述外设模块920可以具体用于:向目标物理层芯片发送读取操作信息,所述读取操作信息包括所述目标物理层芯片的物理地址和寄存器地址;接收所述目标物理层芯片返回的读取数据;在所述按照所述目标操作,对所述目标物理层芯片进行控制之后,所述总线解析模块910还用于:向所述处理器返回所述读取数据。
在本申请的一个实施例中,在所述接收所述目标物理层芯片返回的读取数据之后,所述外设模块920还用于:将所述读取数据放入接收所述目标物理层芯片对应的接收数据寄存器中;其中,待控制的多个物理层芯片中的每一个物理层芯片对应所述外设模块920内的一个接收数据寄存器。在所述向所述处理器返回所述读取数据的过程中,所述总线解析模块910可以具体用于:从所述目标物理层芯片对应的所述接收数据寄存器中获取所述读取数据,并向所述处理器返回所述读取数据。
在本申请的一个实施例中,在所述目标操作为写操作的情况下,在所述确定所述目标物理层芯片所执行的目标操作之后,所述总线解析模块910还用于:通过读取目标总线获取待写入数据。在所述按照所述目标操作,对所述目标物理层芯片进行控制的过程中,所述外设模块920可以具体用于:向所述目标物理层芯片发送写操作信息,所述写操作信息包括所述目标物理层芯片的物理地址、寄存器地址和所述待写入数据。
在本申请的一个实施例中,在所述通过读取目标总线获取待写入的数据之后,所述总线解析模块910还用于:将获取的所述待写入数据放入发送数据寄存器中;其中,待控制的多个物理层芯片中的每一个物理层芯片对应外设模块内的一个发送数据寄存器。在所述向所述目标物理层芯片发送写操作信息的过程中,所述外设模块920可以具体用于:从所述目标物理层芯片对应的发送数据寄存器中获取所述待写入数据,并将向所述目标物理层芯片发送包含所述待写入数据的写操作信息。
在本申请的一个实施例中,所述外设模块920和所述目标物理层芯片之间的信息传输是通过串行管理接口进行的。所述总线解析模块910和所述处理器之间的信息传输是通过本地输入/输出总线进行的。
在本申请的一个实施例中,待控制的多个物理层芯片中的每一个物理层芯片对应所述外设模块920内的一个控制参数寄存器,所述控制参数寄存器用于设置发往物理层芯片的时钟信号的分频参数,待控制的多个物理层芯片中不同的物理层芯片对应于不同频率的时钟信号。
需要说明的是,本申请实施例提供的现场可编程门阵列装置与上文提到的以太网物理层芯片的控制方法相对应。相关内容可参照上文对以太网物理层芯片的控制方法的描述,在此不做赘述。
如图10所示,本申请实施例还提供一种电子设备1000,所述电子设备可以为各种类型的计算机等。所述电子设备1000包括:处理器1010和FPGA 1020,FPGA 1020上存储程序或指令,所述程序或指令被执行时实现上文所描述的任一种方法的步骤。举例而言,所述程序被执行时实现如下过程:FPGA接收处理器发送的地址信息和目标命令信息;所述FPGA根据所述地址信息,确定待控制的多个物理层芯片中的目标物理层芯片;所述FPGA根据所述目标命令信息,确定所述目标物理层芯片所执行的目标操作;所述FPGA按照所述目标操作,对所述目标物理层芯片进行控制。如此,由于FPGA是可编程芯片,可以根据项目需求扩展出符合需求数量的网口,通过接收的地址信息和目标命令信息,可确定待控制的多个物理层芯片中的目标物理层芯片以及对目标物理层芯片执行的目标操作,进而可完成对多个物理层芯片中的目标物理层芯片的控制,实现处理器对多个物理层芯片的单独控制,解决了在存在多个以太网物理层芯片的情况下,受CPU接口资源限制,无法对多个物理层芯片进行控制的问题。
本申请实施例还提供一种可读存储介质,所述可读存储介质上存储有程序或指令,该程序或指令被处理器执行时实现以太网物理层芯片的控制方法的各个实施例的步骤,且能达到相同的技术效果,为避免重复,这里不再赘述。
其中,所述处理器为上述实施例中所述的电子设备中的处理器。所述可读存储介质,包括计算机可读存储介质,如计算机只读存储器ROM、随机存取存储器RAM、磁碟或者光盘等。
本申请实施例另提供了一种芯片,所述芯片包括处理器和通信接口,所述通信接口和所述处理器耦合,所述处理器用于运行程序或指令,实现上述方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
本申请实施例提供一种计算机程序产品,该程序产品被存储在存储介质中,该程序产品被至少一个处理器执行以实现如上述方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。此外,需要指出的是,本申请实施方式中的方法和装置的范围不限按示出或讨论的顺序来执行功能,还可包括根据所涉及的功能按基本同时的方式或按相反的顺序来执行功能,例如,可以按不同于所描述的次序来执行所描述的方法,并且还可以添加、省去、或组合各种步骤。另外,参照某些示例所描述的特征可在其他示例中被组合。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以计算机软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,或者网络设备等)执行本申请各个实施例所述的方法。
上面结合附图对本申请的实施例进行了描述,但是本申请并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本申请的启示下,在不脱离本申请宗旨和权利要求所保护的范围情况下,还可做出很多形式,均属于本申请的保护之内。
Claims (10)
1.一种以太网物理层芯片的控制方法,其特征在于,包括:
现场可编程门阵列FPGA接收处理器发送的地址信息和目标命令信息;
所述FPGA根据所述地址信息,确定待控制的多个物理层芯片中的目标物理层芯片;
所述FPGA根据所述目标命令信息,确定所述目标物理层芯片所执行的目标操作;
所述FPGA按照所述目标操作,对所述目标物理层芯片进行控制;
其中,所述FPGA和所述目标物理层芯片之间的信息传输是通过串行管理接口SMI进行的;
其中,所述FPGA内存在多个控制模块,控制模块的数目与物理层芯片的数目一一对应;每个控制模块中包括控制参数寄存器、地址参数寄存器、发送数据寄存器、收发状态寄存器和接收数据寄存器以及SMI接口驱动模块;SMI接口驱动模块包括SMI时钟模块、SMI发送模块和SMI接收模块;
所述控制参数寄存器用于设置SMI时钟模块的分频参数、读写操作标志位以及SMI接口开始使能;所述地址参数寄存器用于存放SMI接口所需要的物理层芯片物理地址和寄存器地址;所述发送数据寄存器用于存放SMI接口需要写入到物理层芯片内寄存器的数据;所述接收数据寄存器用于存放SMI接口从物理层芯片内寄存器读取的数据;所述收发状态寄存器用于存放SMI发送模块和SMI接收模块的状态信息;
所述SMI接口驱动模块,用于实现SMI接口所需要的时钟和数据收发;所述SMI时钟模块根据所述控制参数寄存器对FPGA系统时钟进行分频,得到满足物理层芯片规定的频率;所述SMI发送模块用于发送需要写入物理层芯片寄存器的数据;所述SMI接收模块用于接收从物理层芯片内寄存器读取的数据。
2.根据权利要求1所述的控制方法,其特征在于,所述FPGA根据所述地址信息,确定待控制的多个物理层芯片中的目标物理层芯片,包括:
FPGA将所述地址信息转换为所述FPGA内以太网接口对应的目标地址,所述目标地址包括目标物理层芯片的物理地址和寄存器地址。
3.根据权利要求1所述的控制方法,其特征在于,所述FPGA接收处理器发送的地址信息和目标命令信息,包括:
FPGA接收处理器通过命令总线发送的第一命令信息;
所述FPGA根据所述第一命令信息,从锁存器获取所述处理器发送的地址信息;
所述FPGA接收所述处理器通过命令总线发送的第二命令信息,并将所述第二命令信息作为目标命令信息;
其中,所述命令总线包括M种总线,所述第一命令信息和所述第二命令信息是基于所述M种总线传输的信息确定的。
4.根据权利要求1所述的控制方法,其特征在于,所述目标操作包括读取操作;所述FPGA按照所述目标操作,对所述目标物理层芯片进行控制,包括:
所述FPGA向目标物理层芯片发送读取操作信息,所述读取操作信息包括所述目标物理层芯片的物理地址和寄存器地址;
所述FPGA接收所述目标物理层芯片返回的读取数据;
在所述FPGA按照所述目标操作,对所述目标物理层芯片进行控制之后,所述方法还包括:
向所述处理器返回所述读取数据。
5.根据权利要求4所述的控制方法,其特征在于,在所述FPGA接收所述目标物理层芯片返回的读取数据之后,所述方法还包括:
将所述读取数据放入所述目标物理层芯片对应的接收数据寄存器中;其中,待控制的多个物理层芯片中的每一个物理层芯片对应所述FPGA内的一个接收数据寄存器;
所述向所述处理器返回所述读取数据,包括:从所述目标物理层芯片对应的所述接收数据寄存器中获取所述读取数据,并向所述处理器返回所述读取数据。
6.根据权利要求1所述的控制方法,其特征在于,所述目标操作包括写操作;在所述确定所述目标物理层芯片所执行的目标操作之后,所述方法还包括:
所述FPGA通过读取目标总线获取待写入数据;
所述FPGA按照所述目标操作,对所述目标物理层芯片进行控制,包括:
所述FPGA向所述目标物理层芯片发送写操作信息,所述写操作信息包括所述目标物理层芯片的物理地址、寄存器地址和所述待写入数据。
7.根据权利要求6所述的控制方法,其特征在于,在所述FPGA通过读取目标总线获取待写入数据之后,所述方法还包括:
将获取的所述待写入数据放入发送数据寄存器中;其中,待控制的多个物理层芯片中的每一个物理层芯片对应所述FPGA内的一个发送数据寄存器;
所述FPGA向所述目标物理层芯片发送写操作信息,包括:所述FPGA从所述目标物理层芯片对应的发送数据寄存器中获取所述待写入数据,并向所述目标物理层芯片发送包含所述待写入数据的写操作信息。
8.根据权利要求4-7任一项所述的控制方法,其特征在于,所述FPGA和所述处理器之间的信息传输是通过本地输入/输出总线进行的。
9.根据权利要求1所述的控制方法,其特征在于,待控制的多个物理层芯片中的每一个物理层芯片对应所述FPGA内的一个控制参数寄存器,所述控制参数寄存器用于设置发往物理层芯片的时钟信号的分频参数,待控制的多个物理层芯片中不同的物理层芯片对应于不同频率的时钟信号。
10.一种现场可编程门阵列FPGA装置,其特征在于,包括:
总线解析模块,用于接收处理器发送的地址信息和目标命令信息;根据所述地址信息,确定待控制的多个物理层芯片中的目标物理层芯片;根据所述目标命令信息,确定所述目标物理层芯片所执行的目标操作;
外设模块,用于按照所述目标操作,对所述目标物理层芯片进行控制;
其中,所述FPGA和所述目标物理层芯片之间的信息传输是通过串行管理接口SMI进行的;
其中,所述外设模块包括多个控制模块,控制模块的数目与物理层芯片的数目一一对应;每个控制模块中包括控制参数寄存器、地址参数寄存器、发送数据寄存器、收发状态寄存器和接收数据寄存器以及SMI接口驱动模块;SMI接口驱动模块包括SMI时钟模块、SMI发送模块和SMI接收模块;
所述控制参数寄存器用于设置SMI时钟模块的分频参数、读写操作标志位以及SMI接口开始使能;所述地址参数寄存器用于存放SMI接口所需要的物理层芯片物理地址和寄存器地址;所述发送数据寄存器用于存放SMI接口需要写入到物理层芯片内寄存器的数据;所述接收数据寄存器用于存放SMI接口从物理层芯片内寄存器读取的数据;所述收发状态寄存器用于存放SMI发送模块和SMI接收模块的状态信息;
所述SMI接口驱动模块,用于实现SMI接口所需要的时钟和数据收发;所述SMI时钟模块根据控制参数寄存器对FPGA系统时钟进行分频,得到满足物理层芯片规定的频率;所述SMI发送模块用于发送需要写入物理层芯片寄存器的数据;所述SMI接收模块用于接收从物理层芯片内寄存器读取的数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311387850.7A CN117111539B (zh) | 2023-10-24 | 2023-10-24 | 以太网物理层芯片的控制方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311387850.7A CN117111539B (zh) | 2023-10-24 | 2023-10-24 | 以太网物理层芯片的控制方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117111539A CN117111539A (zh) | 2023-11-24 |
CN117111539B true CN117111539B (zh) | 2024-02-02 |
Family
ID=88811452
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311387850.7A Active CN117111539B (zh) | 2023-10-24 | 2023-10-24 | 以太网物理层芯片的控制方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117111539B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118502323B (zh) * | 2024-07-16 | 2024-10-11 | 杭州康吉森自动化科技有限公司 | 工业以太网数据的传输方法和fpga |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102222435A (zh) * | 2011-05-20 | 2011-10-19 | 齐齐哈尔大学 | 单片机与fpga一体开发板 |
CN102291423A (zh) * | 2011-05-12 | 2011-12-21 | 福建星网锐捷网络有限公司 | 控制物理层芯片的方法及控制电路 |
CN106302460A (zh) * | 2016-08-16 | 2017-01-04 | 许继集团有限公司 | 过程层点对点sv发送方法和系统 |
CN206775530U (zh) * | 2017-06-09 | 2017-12-19 | 郑州云海信息技术有限公司 | 一种基于arm+fpga架构的路由器 |
CN111835491A (zh) * | 2019-04-19 | 2020-10-27 | 马维尔亚洲私人有限公司 | 使用oam控制以太网链路伙伴gpio |
CN112511542A (zh) * | 2020-12-01 | 2021-03-16 | 四川灵通电讯有限公司 | 在设备内部实现多ip地址网络隔离的系统及应用方法 |
WO2022088542A1 (zh) * | 2020-11-02 | 2022-05-05 | 芯启源(上海)半导体科技有限公司 | 一种基于fpga的usb3.0/3.1控制系统 |
CN216772297U (zh) * | 2021-07-28 | 2022-06-17 | 成都凌亚科技有限公司 | 一种基于fpga架构的可编程串口集板卡 |
CN115061973A (zh) * | 2022-04-14 | 2022-09-16 | 东方电子股份有限公司 | 一种基于非对称多处理模式的网卡映射方法及设备 |
CN115208805A (zh) * | 2022-07-01 | 2022-10-18 | 中国电子科技集团公司第五十四研究所 | 一种多路以太网物理层收发器测试系统及方法 |
CN219842683U (zh) * | 2023-05-19 | 2023-10-17 | 国网浙江省电力有限公司 | 一种用于电力监控系统测试的多类网口接入装置 |
-
2023
- 2023-10-24 CN CN202311387850.7A patent/CN117111539B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102291423A (zh) * | 2011-05-12 | 2011-12-21 | 福建星网锐捷网络有限公司 | 控制物理层芯片的方法及控制电路 |
CN102222435A (zh) * | 2011-05-20 | 2011-10-19 | 齐齐哈尔大学 | 单片机与fpga一体开发板 |
CN106302460A (zh) * | 2016-08-16 | 2017-01-04 | 许继集团有限公司 | 过程层点对点sv发送方法和系统 |
CN206775530U (zh) * | 2017-06-09 | 2017-12-19 | 郑州云海信息技术有限公司 | 一种基于arm+fpga架构的路由器 |
CN111835491A (zh) * | 2019-04-19 | 2020-10-27 | 马维尔亚洲私人有限公司 | 使用oam控制以太网链路伙伴gpio |
WO2022088542A1 (zh) * | 2020-11-02 | 2022-05-05 | 芯启源(上海)半导体科技有限公司 | 一种基于fpga的usb3.0/3.1控制系统 |
CN112511542A (zh) * | 2020-12-01 | 2021-03-16 | 四川灵通电讯有限公司 | 在设备内部实现多ip地址网络隔离的系统及应用方法 |
CN216772297U (zh) * | 2021-07-28 | 2022-06-17 | 成都凌亚科技有限公司 | 一种基于fpga架构的可编程串口集板卡 |
CN115061973A (zh) * | 2022-04-14 | 2022-09-16 | 东方电子股份有限公司 | 一种基于非对称多处理模式的网卡映射方法及设备 |
CN115208805A (zh) * | 2022-07-01 | 2022-10-18 | 中国电子科技集团公司第五十四研究所 | 一种多路以太网物理层收发器测试系统及方法 |
CN219842683U (zh) * | 2023-05-19 | 2023-10-17 | 国网浙江省电力有限公司 | 一种用于电力监控系统测试的多类网口接入装置 |
Also Published As
Publication number | Publication date |
---|---|
CN117111539A (zh) | 2023-11-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6233635B1 (en) | Diagnostic/control system using a multi-level I2C bus | |
US4792896A (en) | Storage controller emulator providing transparent resource sharing in a computer system | |
CN117111539B (zh) | 以太网物理层芯片的控制方法及装置 | |
US6427198B1 (en) | Method, system, and program for determining system configuration | |
JPS61225946A (ja) | ローカル・エリア・ネツトワークにおいて第1のノードから第2のノードを診断する方法 | |
CN114048164B (zh) | 芯片互联方法、系统、设备及可读存储介质 | |
US4899274A (en) | Dynamic terminal address allocation by the terminal itself in a data processing system | |
RU2006100275A (ru) | Система разработки интегральной схемы | |
CN104298579A (zh) | 一种逻辑芯片以及包含该逻辑芯片的板卡装置 | |
JP2009217813A (ja) | 集積回路内のデバイス間のデータ転送 | |
CN105183575A (zh) | 处理器故障的诊断方法、装置及系统 | |
US6078742A (en) | Hardware emulation | |
CN117093438A (zh) | 测试系统 | |
CN114513436B (zh) | Sdio设备传输速率的检测方法、系统及存储介质 | |
CN106940684B (zh) | 一种按比特写数据的方法及装置 | |
US7443886B1 (en) | Communication protocol system and method | |
CN104572515A (zh) | 跟踪模块、方法、系统和片上系统芯片 | |
CN107704417A (zh) | 与被测设备通信的方法及其通信系统 | |
JP2000341357A (ja) | 通信制御装置、計測制御システム、及び記録媒体 | |
CN114444423B (zh) | 基于验证平台的数据处理方法、系统及电子设备 | |
CN114416453B (zh) | 一种基于外设接口的芯片硬件调试方法和装置 | |
US9081743B2 (en) | Communication system and communicaton method | |
CN216014148U (zh) | 一种服务器和服务器背板 | |
US5748909A (en) | Interface board and instruction processing device without a local CPU | |
JP3704469B2 (ja) | Ioポート接続方式 |
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 |