技术摘要:
本发明涉及一种PCIE千兆以太网MAC层控制器及驱动方法,所述控制器包括PCI Express Endpoint核、PCI Express接口逻辑单元、DMA单元、NVM接口、以太网GMAC控制器,本发明的有益效果在于,提供了一种高性能的PCIE千兆以太网MAC层控制器及驱动方法。
背景技术:
要实现PCIe转以太网有很多种方式,如中国专利CN101719873公开的千兆虚拟网 卡,是利用FPGA芯片来实现千兆以太网控制器功能,包括了FPGA模块和物理接口收发器。然 而,这种依托利用市售的FPGA芯片和物理接口收发器进行简单组合的千兆虚拟网卡处理性 能并不理想。控制器为PCIe转以太网实现计算与以太网的通信功能的核心组件,因而当前 需要一种高性能的千兆以太网MAC层控制器(芯片)。
技术实现要素:
为了解决上述技术问题,本发明一方面提供一种PCIE千兆以太网MAC层控制器,所 述控制器包括PCI Express Endpoint核、PCI Express接口逻辑单元、DMA单元、NVM接口、以 太网GMAC控制器, 所述Express Endpoint核,包括PCIe PHY单元,所述PCIe PHY单元用于将信号进 行数模(模数)转换,用于实现PCIe物理层、PCIe链路层和PCIe传输层; PCI Express接口逻辑单元,用于实现所述PCIe传输层到所述DMA单元的接口逻 辑; DMA单元,用于以太网帧的发送接收,包括数据发送模块和数据接收模块,与驱动 的软硬件协同; 以太网GMAC控制器,与外部PHY连接,用于实现以太网链路层; 本发明的又一种PCIE千兆以太网MAC层控制器中, 所述PCI Express Endpoint核包括pci_exp_txp、pci_exp_txn、pci_exp_rxp、 pci_exp_rxn等PCIE数据接口信号,sys_reset_n(主板Reset信号),sys_clk_n、sys_clk_P 等PCIE时钟信号; 本发明的PCIE千兆以太网MAC层控制器中,选择基于公知标准可以定义的大规模 集成电路、内核和接口,均在本发明的选择范围之内。 PCI Express接口逻辑单元(PCIE_IO),包括EP_TX模块和EP_RX模块,其中,EP_TX 模块通过trn_lnk_up_n、rn_tsof_n、trn_teof_n、trn_td[63:0]、trn_trem_n[7:0]、trn_ tsrc_rdy_n、trn_tsrc_dsc_n、trn_tdst_rdy_n、trn_tdst_dsc_n为PCI Express Endpoint 核的PCIe传输层提供接口逻辑,EP_RX模块通过trn_rd[63:0]、trn_rrem_n[7:0]、trn_ rsrc_rdy_n、trn_rsrc_dsc_n、trn_rdst_rdy_n、trn_rbar_hit_n[6:0]为PCI Express Endpoint核的PCIe传输层提供接口逻辑。EP_TX模块和EP_RX模块之间,通过req_tc、req_ rid、req_len、req_attr、req_ep、req_td、req_tag通讯。EP_TX模块和EP_RX模块分别通过 ReadScbBus(SCB读总线)、WriteScbBus((SCB写总线))与EP_SCB(System Control Block 4 CN 111614551 A 说 明 书 2/12 页 (SCB)系统控制块)模块相连,PCI Express接口逻辑单元(PCIE_IO)通过EP_SCB的实现与 DMA单元的接口逻辑。 EP_TX模块和EP_RX模块分别通过Request Packet Bus(请求包总线)Compl Packet Bus(综合分组总线)与DMA单元通讯。CU(Command Unit命令单元)中,实现Transmit MAC Confige(MAC配置)。 本发明的又一种PCIE千兆以太网MAC层控制器中, 所述DMA单元中,CU Cmd Bus用于连接CU_cfg、CU_tsf和EP_SCB,RU Cmd Bus用于 连接RU(Receive Unit接收单元);EP_SCB为PCIE Bar寄存器读写控制模块,上端连接PCIE 逻辑的发送(EP_TX)以及接收(EP_RX)模块,下端分别通过命令控制单元总线(CU Cmd Bus) 以及接收单元命令总线(RU Cmd bus)连接到DMA模块,进行MAC控制器的配置(CU_cfg),发 送数据的DMA信息(CU_tsf)的写入以及接收数据DMA空间信息的写入。DMA单元还通过MAC_ Tx_bus(MAC发送数据总线)、MAC_Rx_bus(MAC接收数据总线)、MAC_cs_bus(MAC控制器选择 总线)与以太网GMAC控制器通讯; 以太网GMAC控制器通过GMII接口与以太网PHY(Ethernet PHY)相连,实现MDIO (Management Data Input/Output) ,对G比特以太网而言,串行通信总线称为管理数据输入 输出(MDIO)。 本发明的所述以太网PHY(Ethernet PHY)包括MDI[3:0]p、MDI[3:0]n、PHY_REF (PHY参考电阻。需要在PCB板上外置5K欧姆精确电阻(±1%)至地。)、CLK125(PHY输出 125MHz时钟。建议PCB板上NC处理或接测试点。)、XTAL1(输入时钟频率)、XTAL2(25M时钟输 出)、PHY_TESTn(PHY接口测试。PCB板上可以不处理。)、PHY_TESTp(PHY接口测试。PCB板上可 以不处理。)、PHY_TSTPT引脚(PHY接口测试。PCB板上可以不处理。),与以太网链路层MAC通 讯;以太网链路层MAC连有发送FIFO和接收FIFO,DMA单元包括发送通道和接收通道,分别与 以太网链路层MAC和PCIe接口通讯;PCIe接口包括PE_RST#、PE_R0p(PCIe差分数据输入 )、 PE_R0n(PCIe差分数据输入-)、PE_T0n(PCIe差分数据输出-)、PE_T0p(PCIe差分数据输出 )、PE_CLKp(100M差分输入时钟 )、PE_CLKn(100M差分输入时钟-)、JTAG_TCK(JTAG测试时 钟,内置上拉电阻。建议用户在PCB板上用1K欧姆电阻下拉到地。)、JTAG_TDI(JTAG测试输 入,内置上拉电阻。建议用户在PCB板上用1K欧姆电阻下拉到地。)、JTAG_TDO(JTAG测试输 出。)、JTAG_TMS(JTAG测试模式选择,内置上拉电阻。建议用户在PCB板上用1K欧姆电阻下拉 到地。)、TEST_EN(测试使能,内置上拉电阻。请用户注意:在PCB上务必NC处理。)、ALT_ CLK125(PHY输入125MHz时钟)、CLKREQ#(时钟请求,复位输出高电平。)、PE_WAKE#(总线唤 醒,复位输出高电平。)、CLK_VIEW引脚(测试用。PCB板上做NC即可。);PCIe接口分别与状态 模块和NVW接口通讯,其中状态模块包括FUSEV(接2.5V电源)、THERMp(热测试,输出高电平。 PCB板上做NC即可。)、THERMn(热测试,输出低电平。PCB板上做NC即可。)、LED2#(软件驱动 LED灯)、LED1#(软件驱动LED灯)、LED0#(软件驱动LED灯)引脚,NVW接口包括NVM_SHARED#、 NVM_TYPE(NVM类型。内置上拉电阻。)、NVM_PROT(NVM保护使能。内置上拉电阻。)、NVM NVM_ SO(NVM串行数据输入。内置上拉电阻。)、接口NVM_REQ(NVM请求)、NVM_SK(注:NVM信号由驱 动软件生成NVM_SI、NVM_CS#、NVM_SK的信号波形来访问EEPROM芯片。建议EEPROM芯片采用 AT25010A芯片。)、NVM_SI(NVM串行数据输出,内置上拉电阻。)、NVM_CS#(NVM片选。内置上拉 电阻。)引脚。 5 CN 111614551 A 说 明 书 3/12 页 本发明的又一种PCIE千兆以太网MAC层控制器中,所述EP_SCB模块包括SCB寄存器 组,所述SCB寄存器组包括REG0 0x00寄存器、REG1 0x04寄存器、REG2 0x08寄存器、REG3 0x0C寄存器、REG4 0x10寄存器、REG5 0x14寄存器、REG6 0x18寄存器、REG7 0x1C寄存器、 REG8 0x20寄存器、REG9 0x24寄存器、REG10 0x28寄存器、REG11 0x38寄存器。 本发明的又一种PCIE千兆以太网MAC层控制器中,所述以太网GMAC控制器为2个或 2个以上且配置参数相同;所述数据发送模块与每个以太网GMAC控制器之间通过第一切换 器连接,所述数据接收模块与每个以太网GMAC控制器之间通过第二切换器连接; 发送数据时,当检测到任意一个以太网GMAC控制器与外部PHY连接上(Link up), 所述第一切换器就把数据链路切换到到此以太网GMAC控制器上去; 接收数据时,当检测到任意一个MAC控制器有数据到来,则切换器就切换到此MAC 上,来进行正常的数据通讯。 本发明的又一种PCIE千兆以太网MAC层控制器中,所述以太网GMAC控制器为2个, 发送数据或接收数据时,如果二个所述以太网GMAC控制器都连接上,那么切换器 会优先选择第一个MAC作为主数据接收端,把数据链路切换到第一个以太网GMAC控制器上 去。 本发明的又一种PCIE千兆以太网MAC层控制器中,在两个所述以太网GMAC控制器 与外部的两个PHY接口连接好的情况下,当检测到目前通讯的链路发生故障(Link up变为 Link down)时,则所述数据发送模块通过所述第一切换器立即把数据切换到另外一个所述 以太网GMAC控制器上;与此同时,所述数据接收模块也检测到目前的链路出现故障(Link up变为Link down),则立刻也通过所述第二切换器把接收链路切换到另一个所述以太网 GMAC控制器上。 满足了面向高可靠以太网应用,一个以太网控制器可以接两个以太网链路AB,当 链路A断开时,控制器会自动切换到链路B。反之亦然,切换过程无缝透明,延时时间在1ms以 内,上层应用基本无感。目前市场上的网络高可用应用,要不主机配合切换,要不需要 bypass设备来切换,前者费用高,不适合一般应用场景,而bypass设备切换延迟时间长,费 用也相对较高。应用本发明的控制器的一个网卡即可实现,不需要其它任何附加设备,而且 延迟时间极短(1ms以内)。 本发明还提供了一种驱动PCIE千兆以太网MAC层控制器的方法,包括如下步骤: 以第一程序配置所述PCI Express Endpoint的配置空间; 以第二程序配置与SCB寄存器组相关的PCI Express Endpoint内存空间; 其中,第一程序或第二程序还配置主机共享内存数据结构。 本发明进一步提供的一种驱动千兆以太网MAC层控制器的方法为, 所述第一程序为PCI Express驱动程序、所述第二程序为网卡驱动程序。 本发明进一步提供的一种驱动千兆以太网MAC层控制器的方法为, 配置主机共享内存数据结构的方法包括,在主机内存中申请1536B的内存块用于 接收发送以太网帧,该内存块的1532偏移中的4B用于存储接收帧大小,发送帧发送状态;优 选的,在配置TFD(以太网帧在主机内存中的地址和帧的尺寸)和RFD(接收帧在主机内存中 的地址)时,将1532偏移中的4B清零。 本发明的有益效果在于,提供了一种高性能的千兆以太网MAC层控制器及驱动方 6 CN 111614551 A 说 明 书 4/12 页 法。 附图说明 图1、系统架构示意图; 图2、功能框图; 图3-1、外形尺寸图; 图3-2、外形尺寸图; 图4、NVM(EEPROM)接口时序图; 图5、PCI Express Endpoint配置空间; 图6、PCI Express Endpoint内存空间(BARO基地址空间); 图7、REG0[15:0]为中断屏蔽位; 图8、状态寄存器; 图9、主机网卡共享内存数据结构;
本发明涉及一种PCIE千兆以太网MAC层控制器及驱动方法,所述控制器包括PCI Express Endpoint核、PCI Express接口逻辑单元、DMA单元、NVM接口、以太网GMAC控制器,本发明的有益效果在于,提供了一种高性能的PCIE千兆以太网MAC层控制器及驱动方法。
背景技术:
要实现PCIe转以太网有很多种方式,如中国专利CN101719873公开的千兆虚拟网 卡,是利用FPGA芯片来实现千兆以太网控制器功能,包括了FPGA模块和物理接口收发器。然 而,这种依托利用市售的FPGA芯片和物理接口收发器进行简单组合的千兆虚拟网卡处理性 能并不理想。控制器为PCIe转以太网实现计算与以太网的通信功能的核心组件,因而当前 需要一种高性能的千兆以太网MAC层控制器(芯片)。
技术实现要素:
为了解决上述技术问题,本发明一方面提供一种PCIE千兆以太网MAC层控制器,所 述控制器包括PCI Express Endpoint核、PCI Express接口逻辑单元、DMA单元、NVM接口、以 太网GMAC控制器, 所述Express Endpoint核,包括PCIe PHY单元,所述PCIe PHY单元用于将信号进 行数模(模数)转换,用于实现PCIe物理层、PCIe链路层和PCIe传输层; PCI Express接口逻辑单元,用于实现所述PCIe传输层到所述DMA单元的接口逻 辑; DMA单元,用于以太网帧的发送接收,包括数据发送模块和数据接收模块,与驱动 的软硬件协同; 以太网GMAC控制器,与外部PHY连接,用于实现以太网链路层; 本发明的又一种PCIE千兆以太网MAC层控制器中, 所述PCI Express Endpoint核包括pci_exp_txp、pci_exp_txn、pci_exp_rxp、 pci_exp_rxn等PCIE数据接口信号,sys_reset_n(主板Reset信号),sys_clk_n、sys_clk_P 等PCIE时钟信号; 本发明的PCIE千兆以太网MAC层控制器中,选择基于公知标准可以定义的大规模 集成电路、内核和接口,均在本发明的选择范围之内。 PCI Express接口逻辑单元(PCIE_IO),包括EP_TX模块和EP_RX模块,其中,EP_TX 模块通过trn_lnk_up_n、rn_tsof_n、trn_teof_n、trn_td[63:0]、trn_trem_n[7:0]、trn_ tsrc_rdy_n、trn_tsrc_dsc_n、trn_tdst_rdy_n、trn_tdst_dsc_n为PCI Express Endpoint 核的PCIe传输层提供接口逻辑,EP_RX模块通过trn_rd[63:0]、trn_rrem_n[7:0]、trn_ rsrc_rdy_n、trn_rsrc_dsc_n、trn_rdst_rdy_n、trn_rbar_hit_n[6:0]为PCI Express Endpoint核的PCIe传输层提供接口逻辑。EP_TX模块和EP_RX模块之间,通过req_tc、req_ rid、req_len、req_attr、req_ep、req_td、req_tag通讯。EP_TX模块和EP_RX模块分别通过 ReadScbBus(SCB读总线)、WriteScbBus((SCB写总线))与EP_SCB(System Control Block 4 CN 111614551 A 说 明 书 2/12 页 (SCB)系统控制块)模块相连,PCI Express接口逻辑单元(PCIE_IO)通过EP_SCB的实现与 DMA单元的接口逻辑。 EP_TX模块和EP_RX模块分别通过Request Packet Bus(请求包总线)Compl Packet Bus(综合分组总线)与DMA单元通讯。CU(Command Unit命令单元)中,实现Transmit MAC Confige(MAC配置)。 本发明的又一种PCIE千兆以太网MAC层控制器中, 所述DMA单元中,CU Cmd Bus用于连接CU_cfg、CU_tsf和EP_SCB,RU Cmd Bus用于 连接RU(Receive Unit接收单元);EP_SCB为PCIE Bar寄存器读写控制模块,上端连接PCIE 逻辑的发送(EP_TX)以及接收(EP_RX)模块,下端分别通过命令控制单元总线(CU Cmd Bus) 以及接收单元命令总线(RU Cmd bus)连接到DMA模块,进行MAC控制器的配置(CU_cfg),发 送数据的DMA信息(CU_tsf)的写入以及接收数据DMA空间信息的写入。DMA单元还通过MAC_ Tx_bus(MAC发送数据总线)、MAC_Rx_bus(MAC接收数据总线)、MAC_cs_bus(MAC控制器选择 总线)与以太网GMAC控制器通讯; 以太网GMAC控制器通过GMII接口与以太网PHY(Ethernet PHY)相连,实现MDIO (Management Data Input/Output) ,对G比特以太网而言,串行通信总线称为管理数据输入 输出(MDIO)。 本发明的所述以太网PHY(Ethernet PHY)包括MDI[3:0]p、MDI[3:0]n、PHY_REF (PHY参考电阻。需要在PCB板上外置5K欧姆精确电阻(±1%)至地。)、CLK125(PHY输出 125MHz时钟。建议PCB板上NC处理或接测试点。)、XTAL1(输入时钟频率)、XTAL2(25M时钟输 出)、PHY_TESTn(PHY接口测试。PCB板上可以不处理。)、PHY_TESTp(PHY接口测试。PCB板上可 以不处理。)、PHY_TSTPT引脚(PHY接口测试。PCB板上可以不处理。),与以太网链路层MAC通 讯;以太网链路层MAC连有发送FIFO和接收FIFO,DMA单元包括发送通道和接收通道,分别与 以太网链路层MAC和PCIe接口通讯;PCIe接口包括PE_RST#、PE_R0p(PCIe差分数据输入 )、 PE_R0n(PCIe差分数据输入-)、PE_T0n(PCIe差分数据输出-)、PE_T0p(PCIe差分数据输出 )、PE_CLKp(100M差分输入时钟 )、PE_CLKn(100M差分输入时钟-)、JTAG_TCK(JTAG测试时 钟,内置上拉电阻。建议用户在PCB板上用1K欧姆电阻下拉到地。)、JTAG_TDI(JTAG测试输 入,内置上拉电阻。建议用户在PCB板上用1K欧姆电阻下拉到地。)、JTAG_TDO(JTAG测试输 出。)、JTAG_TMS(JTAG测试模式选择,内置上拉电阻。建议用户在PCB板上用1K欧姆电阻下拉 到地。)、TEST_EN(测试使能,内置上拉电阻。请用户注意:在PCB上务必NC处理。)、ALT_ CLK125(PHY输入125MHz时钟)、CLKREQ#(时钟请求,复位输出高电平。)、PE_WAKE#(总线唤 醒,复位输出高电平。)、CLK_VIEW引脚(测试用。PCB板上做NC即可。);PCIe接口分别与状态 模块和NVW接口通讯,其中状态模块包括FUSEV(接2.5V电源)、THERMp(热测试,输出高电平。 PCB板上做NC即可。)、THERMn(热测试,输出低电平。PCB板上做NC即可。)、LED2#(软件驱动 LED灯)、LED1#(软件驱动LED灯)、LED0#(软件驱动LED灯)引脚,NVW接口包括NVM_SHARED#、 NVM_TYPE(NVM类型。内置上拉电阻。)、NVM_PROT(NVM保护使能。内置上拉电阻。)、NVM NVM_ SO(NVM串行数据输入。内置上拉电阻。)、接口NVM_REQ(NVM请求)、NVM_SK(注:NVM信号由驱 动软件生成NVM_SI、NVM_CS#、NVM_SK的信号波形来访问EEPROM芯片。建议EEPROM芯片采用 AT25010A芯片。)、NVM_SI(NVM串行数据输出,内置上拉电阻。)、NVM_CS#(NVM片选。内置上拉 电阻。)引脚。 5 CN 111614551 A 说 明 书 3/12 页 本发明的又一种PCIE千兆以太网MAC层控制器中,所述EP_SCB模块包括SCB寄存器 组,所述SCB寄存器组包括REG0 0x00寄存器、REG1 0x04寄存器、REG2 0x08寄存器、REG3 0x0C寄存器、REG4 0x10寄存器、REG5 0x14寄存器、REG6 0x18寄存器、REG7 0x1C寄存器、 REG8 0x20寄存器、REG9 0x24寄存器、REG10 0x28寄存器、REG11 0x38寄存器。 本发明的又一种PCIE千兆以太网MAC层控制器中,所述以太网GMAC控制器为2个或 2个以上且配置参数相同;所述数据发送模块与每个以太网GMAC控制器之间通过第一切换 器连接,所述数据接收模块与每个以太网GMAC控制器之间通过第二切换器连接; 发送数据时,当检测到任意一个以太网GMAC控制器与外部PHY连接上(Link up), 所述第一切换器就把数据链路切换到到此以太网GMAC控制器上去; 接收数据时,当检测到任意一个MAC控制器有数据到来,则切换器就切换到此MAC 上,来进行正常的数据通讯。 本发明的又一种PCIE千兆以太网MAC层控制器中,所述以太网GMAC控制器为2个, 发送数据或接收数据时,如果二个所述以太网GMAC控制器都连接上,那么切换器 会优先选择第一个MAC作为主数据接收端,把数据链路切换到第一个以太网GMAC控制器上 去。 本发明的又一种PCIE千兆以太网MAC层控制器中,在两个所述以太网GMAC控制器 与外部的两个PHY接口连接好的情况下,当检测到目前通讯的链路发生故障(Link up变为 Link down)时,则所述数据发送模块通过所述第一切换器立即把数据切换到另外一个所述 以太网GMAC控制器上;与此同时,所述数据接收模块也检测到目前的链路出现故障(Link up变为Link down),则立刻也通过所述第二切换器把接收链路切换到另一个所述以太网 GMAC控制器上。 满足了面向高可靠以太网应用,一个以太网控制器可以接两个以太网链路AB,当 链路A断开时,控制器会自动切换到链路B。反之亦然,切换过程无缝透明,延时时间在1ms以 内,上层应用基本无感。目前市场上的网络高可用应用,要不主机配合切换,要不需要 bypass设备来切换,前者费用高,不适合一般应用场景,而bypass设备切换延迟时间长,费 用也相对较高。应用本发明的控制器的一个网卡即可实现,不需要其它任何附加设备,而且 延迟时间极短(1ms以内)。 本发明还提供了一种驱动PCIE千兆以太网MAC层控制器的方法,包括如下步骤: 以第一程序配置所述PCI Express Endpoint的配置空间; 以第二程序配置与SCB寄存器组相关的PCI Express Endpoint内存空间; 其中,第一程序或第二程序还配置主机共享内存数据结构。 本发明进一步提供的一种驱动千兆以太网MAC层控制器的方法为, 所述第一程序为PCI Express驱动程序、所述第二程序为网卡驱动程序。 本发明进一步提供的一种驱动千兆以太网MAC层控制器的方法为, 配置主机共享内存数据结构的方法包括,在主机内存中申请1536B的内存块用于 接收发送以太网帧,该内存块的1532偏移中的4B用于存储接收帧大小,发送帧发送状态;优 选的,在配置TFD(以太网帧在主机内存中的地址和帧的尺寸)和RFD(接收帧在主机内存中 的地址)时,将1532偏移中的4B清零。 本发明的有益效果在于,提供了一种高性能的千兆以太网MAC层控制器及驱动方 6 CN 111614551 A 说 明 书 4/12 页 法。 附图说明 图1、系统架构示意图; 图2、功能框图; 图3-1、外形尺寸图; 图3-2、外形尺寸图; 图4、NVM(EEPROM)接口时序图; 图5、PCI Express Endpoint配置空间; 图6、PCI Express Endpoint内存空间(BARO基地址空间); 图7、REG0[15:0]为中断屏蔽位; 图8、状态寄存器; 图9、主机网卡共享内存数据结构;