1.一种水电LCU控制器网卡虚拟控制方法,其特征在于,包括如下步骤:在网络协议栈与物理层的网卡控制器MAC之间的驱动层中虚拟配置虚拟网卡控制器VMAC,在虚拟网卡控制器VMAC中向上路虚拟出多路slave设备用于对接网络协议栈,向下路虚拟出虚拟网络控制器master对接物理层的网卡控制器MAC;在虚拟网卡控制器VMAC中虚拟创建多路网络接口,多路网络接口分别对接多路虚拟网络设备slave,并将多路虚拟网络设备slave的信息数据注册至网络协议栈中;在虚拟网卡控制器VMAC中将多路网络接口注册至虚拟网络控制器master中,并将虚拟网络控制器master注册在物理层的网卡控制器MAC结构的hook中;在物理层的网卡控制器MAC中通过DMA缓冲区后经现场可编程门阵列FPGA与多个网络物理层接口PHY通信连接,进行数据接收或数据发送工作;数据接收工作的具体步骤如下:多个网络物理层接口PHY接收数据,数据经过现场可编程门阵列FPGA进行添加对应报头文后到达物理层的网卡控制器MAC的DMA缓冲区,触发DMA中断;在中断处理中,从DMA缓冲区中取出报文数据,并通过驱动Receive接口处理判断物理层的网卡控制器MAC的hook内是否有虚拟网络控制器master,若没有虚拟网络控制器master,数据走正常的处理流程到达网络协议栈;若有虚拟网络控制器master,通过报文头识别到虚拟网络控制器master,虚拟网络控制器master对报文进行处理,识别报文头找出对应的虚拟网络设备slave,在对应的虚拟网络设备slave上对报文进行处理,并将最终的用户报文内容上传至网络协议栈;数据发送工作的具体步骤如下:网络协议栈接收用户数据后并打包成网络报文,通过多路虚拟网络设备slave分别对应经多路网络接口发送报文;从多路虚拟网络设备slave发送报文触发多路虚拟网络设备slave的驱动发送接口vTransmit,在驱动发送接口vTransmit中添加slave私有的报文头,通过虚拟网络控制器master调用至物理层的网卡控制器MAC的发送接口transmit,物理层的网卡控制器MAC的发送接口transmit完成所有报文发送后,通过经现场可编程门阵列FPGA,在现场可编程门阵列FPGA中删除报文中的私有报文头,并根据私有报文头类型将报文对应发送至多个网络物理层接口PHY中,完成报文数据发送。
2.根据权利要求1所述的一种水电LCU控制器网卡虚拟控制方法,其特征在于,多路虚拟网络设备slave的信息数据包括ip地址、子网掩码、网络设备名、master信息和相应的操作接口,接口类型有数据发送vTransmit、数据接收vRecieve、设备使能vEnable、设备禁止vShutdown和vIoctl。
3.根据权利要求1所述的一种水电LCU控制器网卡虚拟控制方法,其特征在于,虚拟网卡控制器VMAC中的多网络接口与多个网络物理层接口PHY的数量一一对应,并按需进行接口配置,其中master的信息包括物理网卡控制器MAC的信息、slave设备信息和slave设备的数目。
4.根据权利要求1所述的一种水电LCU控制器网卡虚拟控制方法,其特征在于,发送接口vTransmit在待发送的报文上添加报头文数据,其中包括tag信息,该报文头在现场可编程门阵列FPGA中用于进行PHY接口识别,并在识别完成后在FPGA中删除该报文头。
5.根据权利要求1所述的一种水电LCU控制器网卡虚拟控制方法,其特征在于,物理层的网卡控制器MAC与多个网络物理层接口PHY之间通过MII/GMII协议进行数据交换;在发送数据时,物理层的网卡控制器MAC协议判断是否可以发送数据,如果可以发送,将给数据以及控制信息发送到多个网络物理层接口PHY;反之则中断发送,并回复错误信息;在接收数据时,物理层的网卡控制器MACMAC协议判断输入的信息是否发生传输错误,若没有错误,则去掉控制信息发送至内存,由CPU进行数据读取,反之则终止接收,并回复错误信息。
6.一种水电LCU控制器网卡虚拟控制系统,其特征在于,包括:配置模块,用于在网络协议栈与物理层的网卡控制器MAC之间的驱动层中虚拟配置虚拟网卡控制器VMAC;网络接口创建模块,用于在虚拟网卡控制器VMAC中虚拟创建多路网络接口,多路网络接口分别对接多路虚拟网络设备slave,并将多路虚拟网络设备slave的信息数据注册至网络协议栈中;数据注册模块,用于在虚拟网卡控制器VMAC中将多路网络接口注册至虚拟网络控制器master中,并将虚拟网络控制器master注册在物理层的网卡控制器MAC的hook中;数据通信模块,用于在物理层的网卡控制器MAC中通过DMA缓冲区后经现场可编程门阵列FPGA与多个网络物理层接口PHY通信连接,进行数据接收或数据发送工作;数据接收工作的具体步骤如下:多个网络物理层接口PHY接收数据,数据经过现场可编程门阵列FPGA进行添加对应报头文后到达物理层的网卡控制器MAC的DMA缓冲区,触发DMA中断;在中断处理中,从DMA缓冲区中取出报文数据,并通过驱动Receive接口处理判断物理层的网卡控制器MAC的hook内是否有虚拟网络控制器master,若没有虚拟网络控制器master,数据走正常的处理流程到达网络协议栈;若有虚拟网络控制器master,通过报文头识别到虚拟网络控制器master,虚拟网络控制器master对报文进行处理,识别报文头找出对应的虚拟网络设备slave,在对应的虚拟网络设备slave上对报文进行处理,并将最终的用户报文内容上传至网络协议栈;数据发送工作的具体步骤如下:网络协议栈接收用户数据后并打包成网络报文,通过多路虚拟网络设备slave分别对应经多路网络接口发送报文;从多路虚拟网络设备slave发送报文触发多路虚拟网络设备slave的驱动发送接口vTransmit,在驱动发送接口vTransmit中添加slave私有的报文头,通过虚拟网络控制器master调用至物理层的网卡控制器MAC的发送接口transmit,物理层的网卡控制器MAC的发送接口transmit完成所有报文发送后,通过经现场可编程门阵列FPGA,在现场可编程门阵列FPGA中删除报文中的私有报文头,并根据私有报文头类型将报文对应发送至多个网络物理层接口PHY中,完成报文数据发送。
7.一种水电LCU控制器网卡虚拟控制设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至5任一项所述一种水电LCU控制器网卡虚拟控制方法的步骤。
8.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-5任一项所述一种水电LCU控制器网卡虚拟控制方法的步骤。