基于linux实时操作系统的PCIE实时网卡数据传输方法及装置与流程

文档序号:28663017发布日期:2022-01-26 20:29阅读:1237来源:国知局
基于linux实时操作系统的PCIE实时网卡数据传输方法及装置与流程
基于linux实时操作系统的pcie实时网卡数据传输方法及装置
技术领域
1.本发明涉及实时网卡技术,尤其涉及一种基于linux实时操作系统的pcie实时网卡数据传输方法及装置。


背景技术:

2.随着计算机网络技术的飞速发展,为了满足各种应用环境和应用层次的需求,出现了许多不同类型的实时网卡,例如usb实时网卡、pci实时网卡、pcix实时网卡、pcie实时网卡等,现在市面最流行的实时网卡类型为千兆pcie实时网卡。
3.千兆pcie实时网卡的常用技术方案是选择实时网卡的以太网控制器芯片,例如市面上常见的rtl81390d等芯片,围绕主控芯片进行电路设计。这种方案设计出的pcie实时网卡完全满足ieee 802.3关于物理层和数据链路层的标准,在接入计算机后pcie实时网卡充当计算机与网络线缆之间的物理连线。
4.现有的千兆pcie实时网卡作为计算机与网络之间的线缆使用,在大数据的收发中受限于mtu,需要将大数据拆分为较小的小数据后逐帧发送。这种情况会持续占用计算机系统资源,同时频繁的系统调用并不能得到及时的响应,导致网络收发周期不稳定,实时性较差。


技术实现要素:

5.本发明实施例提供一种基于linux实时操作系统的pcie实时网卡数据传输方法及装置,利用arm的逻辑控制能力以及操作系统的实时特性,实现大数据的网络收发、实时的网络通信、极高的带宽利用率。
6.本发明实施例的第一方面,提供一种基于linux实时操作系统的pcie实时网卡数据传输方法,所述pcie实时网卡包括带arm核的fpga芯片,包括:
7.预先在arm核处搭载linux实时操作系统;
8.所述arm核的fpga芯片在接收到数据后,linux实时操作系统进行实时响应,所述arm核实时输出逻辑逻辑控制信息对所述数据进行处理。
9.可选地,在第一方面的一种可能实现方式中,预先设置一存储sd卡接口,以提供访问sd卡存储器的功能,所述sd卡接口用于存储所述linux实时操作系统。
10.可选地,在第一方面的一种可能实现方式中,所述带arm核的fpga芯片通过pcie总线与主机内存连接;
11.基于所述linux实时操作系统将所述pcie总线接收到的数据写入pcie实时网卡内。
12.可选地,在第一方面的一种可能实现方式中,基于所述linux实时操作系统的进程调度响应周期为30us。
13.根据本技术的第二方面,提供了一种基于linux实时操作系统的pcie实时网卡数
据传输装置,所述pcie实时网卡包括带arm核的fpga芯片,包括:
14.预先搭载模块,用于预先在arm核处搭载linux实时操作系统;
15.实时响应模块,用于在所述arm核的fpga芯片在接收到数据后,linux实时操作系统进行实时响应,所述arm核实时输出逻辑逻辑控制信息对所述数据进行处理。
16.可选地,在第二方面的一种可能实现方式中,存储模块,用于预先设置一存储sd卡接口,以提供访问sd卡存储器的功能,所述sd卡接口用于存储所述linux实时操作系统。
17.可选地,在第二方面的一种可能实现方式中,所述带arm核的fpga芯片通过pcie总线与主机内存连接;
18.写入模块,用于基于所述linux实时操作系统将所述pcie总线接收到的数据写入pcie实时网卡内。
19.可选地,在第二方面的一种可能实现方式中,基于所述linux实时操作系统的进程调度响应周期为30us。
20.根据本技术的第三方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使所述计算机执行上述第一方面中任意一项所述的基于linux实时操作系统的pcie实时网卡数据传输方法。
21.根据本技术的第四方面,提供了一种电子设备,包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器执行上述第一方面中任意一项所述的基于linux实时操作系统的pcie实时网卡数据传输方法。
22.本发明提供的一种基于linux实时操作系统的pcie实时网卡数据传输方法及装置,使用了带实时操作系统的arm核心,通过arm核心管理pcie,使得本技术方案的pcie2.0 x4性能得到充分利用,理论上可以达到20gb/s的峰值速率。并且,通过上述的技术方案还能够使得pcie实时网卡处理进程调度的响应周期稳定在30us,使得软件有了很好的实时性,不会出现较大的网络抖动。
附图说明
23.图1为基于linux实时操作系统的pcie实时网卡数据传输方法的流程图;
24.图2为pcie实时网卡的结构示意图;
25.图3为fpga通过pcie总线与主机的连接结构示意图;
26.图4为基于zynq实现的实时网卡总体的方案示意图;
27.图5a为sd卡接口的硬件连接方式示意图;
28.图5b为sd卡接口的原理图;
29.图5c为sd卡接口的引脚分配示意图;
30.图6为基于linux实时操作系统的pcie实时网卡数据传输装置的结构图。
具体实施方式
31.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅
仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
32.本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。
33.应当理解,在本发明的各种实施例中,各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
34.应当理解,在本发明中,“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
35.应当理解,在本发明中,“多个”是指两个或两个以上。“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。“包含a、b和c”、“包含a、b、c”是指a、b、c三者都包含,“包含a、b或c”是指包含a、b、c三者之一,“包含a、b和/或c”是指包含a、b、c三者中任1个或任2个或3个。
36.应当理解,在本发明中,“与a对应的b”、“与a相对应的b”、“a与b相对应”或者“b与a相对应”,表示b与a相关联,根据a可以确定b。根据a确定b并不意味着仅仅根据a确定b,还可以根据a和/或其他信息确定b。a与b的匹配,是a与b的相似度大于或等于预设的阈值。
37.取决于语境,如在此所使用的“若”可以被解释成为“在
……
时”或“当
……
时”或“响应于确定”或“响应于检测”。
38.下面以具体地实施例对本发明的技术方案进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例不再赘述。
39.本发明提供一种基于linux实时操作系统的pcie实时网卡数据传输方法,所述pcie实时网卡包括带arm核的fpga芯片,如图1所示其流程图,包括:
40.步骤s110、预先在arm核处搭载linux实时操作系统;
41.步骤s120、所述arm核的fpga芯片在接收到数据后,linux实时操作系统进行实时响应,所述arm核实时输出逻辑逻辑控制信息对所述数据进行处理。带arm核的fpga芯片通过pcie总线与主机内存连接。
42.本发明的技术方案的采用了linux实时操作系统,实时操作系统的进程调度时间稳定在30us左右。因为使用的是实时操作系统,所有到达板卡的数据都可以实时的进行处理。
43.本发明的技术方案充分利用了硬件部分提供的arm核心搭建了实时的操作系统,利用arm的逻辑控制能力以及操作系统的实时特性,实现大数据的网络收发、实时的网络通信、极高的带宽利用率。
44.本发明的技术方案使得pcie在大数据的网络收发中,性能得到充分的使用。按照常用的技术方案,实时网卡的pcie总线受限于网络通信协议和网络的带宽只能发挥出1gb/
s的收发能力。本发明的技术方案使用了带实时操作系统的arm核心,通过arm核心管理pcie,使得本技术方案的pcie2.0 x4性能得到充分利用,理论上可以达到20gb/s的峰值速率。
45.本发明的技术方案使得网络通信更具有实时性。按照常用的技术方案,实时网卡作为计算机与网络之间的线缆使用,在大数据的收发中受限于mtu,需要将大数据拆分为较小的小数据后逐帧发送。这种情况会持续占用计算机系统资源,同时频繁的系统调用并不能得到及时的响应,导致网络收发周期不稳定,实时性较差。而采用本发明的技术方案,在收发大数据的应用场景中,可以通过pcie总线一次性将所有数据写入实时网卡中,大大降低了对计算机系统资源的占用,也不会频繁的进行系统调用,大大减少了因系统资源占用而相应不及时的概率。同时,本发明的技术方案采用了linux实时操作系统,使得进程调度的响应周期稳定在30us,使得软件有了很好的实时性,不会出现较大的网络抖动。
46.对于本发明提供的方法适用于的pcie实时网卡,如图2所示其结构示意图,包括依次连接的应用层、链路层以及物理层,包括:
47.在链路层,包括zynq模块;
48.在物理层,设置有与所述zynq模块连接的至少一个phy芯片,所述phy芯片通过mii和\或rmii接口与zynq模块进行数据交互,所述phy芯片与外接接口连接;
49.在应用层,设置有pcie总线,与所述zynq模块连接,用于将接收的数据传递至所述zynq模块处理。
50.phy芯片通过mii/rmii接口与zynq模块交互实现链路控制和通讯的功能。mii(medium independent interface)即媒体独立接口,负责phy与网络控制器的通讯连接。本方案采用了rmii(reduced medium independent interface)实现phy与网络控制器的通讯连接,解决mii接口消耗io引脚资源多的问题。
51.数据链路层实现的功能包括:将物理层和主站核心层传来的数据帧组包或解包,控制数据帧的收发顺序,检测和恢复传输过程中出现的帧错误。
52.pcie总线是一种新型串行点对点i/o总线体系,是用的是全双工、点对点技术,总线数量明显减少,而且采用差分传输方式,使得线间干扰大大降低,速度高可达5.0gb/s。是用该总线的实时网卡更能适应更高速度、更高带宽网络的需要,故选择pcie实现主控制功能,负责实现总线通讯管理和控制系统软件,包括完成rt-net的协议解析、参数配置与维护、过程数据的交互、系统诊断以及人机交互界面等功能。如图3所示,fpga通过pcie总线与主机内存相连,实现两者的数据交互。其中图2中的host为主机。
53.phy芯片的作用是完成物理层的数据编码、译码和收发。以太网phy芯片应用在rt-net需要满足一些要求:支持1000mbit/s全双工链接,芯片的链接丢失响应时间小。
54.zynq模块包括带arm核的fpga芯片;fpga芯片通过所述pcie总线与主机内存相连,所述fpga芯片与所述主机内存通过所述pcie总线进行数据交互。其中带arm核的fpga芯片也可以是zynq芯片。zynq模块主要实现rt-net数据链路控制与通讯功能。zynq模块的zynq芯片处理器芯片可以采用xilinx公司的zynq7000系列的xc7z015-2clg485i。zynq芯片的ps系统集成了两个arm cortex-a9处理器,amba互连,内部存储器,外部存储器接口和外设。zynq芯片的fpga内部含有丰富的可编程逻辑单元,dsp和内部arm。
55.基于zynq实现的实时网卡总体方案如图4所示,主机通过pcie与zynq模块进行交
互,zynq模块通过rmii接口与phy芯片连接,phy芯片通过网络隔离变压器和rj45接口接入总线和从站相连。主机通过pcie数据总线和zynq模块进行数据帧的交互,zynq将数据帧传给phy芯片,phy芯片将接收到的rt-net数据帧转换为差分信号,并发送到网络中,各个从站响应后数据帧返回主站。
56.在一个实施例中,预先设置一存储sd卡接口,以提供访问sd卡存储器的功能,所述sd卡接口用于存储所述linux实时操作系统。
57.其中,基于所述linux实时操作系统将所述pcie总线接收到的数据写入pcie实时网卡内。基于所述linux实时操作系统的进程调度响应周期为30us。
58.本发明的技术方案包括了一个micro型的sd卡接口,以提供访问sd卡存储器的功能,用于存储zynq芯片的boot程序,linux操作系统内核,文件系统以及其它的用户数据文件。
59.sdio信号与zynq的ps bank501的io信号相连,因为该bank的vccmio设置为1.8v,但sd卡的数据电平为3.3v,这里通过txs02612电平转换器来连接。zynq7000 ps和sd卡连接器的硬件连接方式如图5a所示。
60.如图5b所示sd卡槽原理图。如图5c所示sd卡槽引脚分配示意图。
61.本发明的实施例还提供一种基于linux实时操作系统的pcie实时网卡数据传输装置,所述pcie实时网卡包括带arm核的fpga芯片,包括:
62.预先搭载模块,用于预先在arm核处搭载linux实时操作系统;
63.实时响应模块,用于在所述arm核的fpga芯片在接收到数据后,linux实时操作系统进行实时响应,所述arm核实时输出逻辑逻辑控制信息对所述数据进行处理。
64.进一步的,存储模块,用于预先设置一存储sd卡接口,以提供访问sd卡存储器的功能,所述sd卡接口用于存储所述linux实时操作系统。
65.进一步的,所述带arm核的fpga芯片通过pcie总线与主机内存连接;
66.写入模块,用于基于所述linux实时操作系统将所述pcie总线接收到的数据写入pcie实时网卡内。
67.进一步的,基于所述linux实时操作系统的进程调度响应周期为30us。
68.其中,可读存储介质可以是计算机存储介质,也可以是通信介质。通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。计算机存储介质可以是通用或专用计算机能够存取的任何可用介质。例如,可读存储介质耦合至处理器,从而使处理器能够从该可读存储介质读取信息,且可向该可读存储介质写入信息。当然,可读存储介质也可以是处理器的组成部分。处理器和可读存储介质可以位于专用集成电路(application specific integrated circuits,简称:asic)中。另外,该asic可以位于用户设备中。当然,处理器和可读存储介质也可以作为分立组件存在于通信设备中。可读存储介质可以是只读存储器(rom)、随机存取存储器(ram)、cd-rom、磁带、软盘和光数据存储设备等。
69.本发明还提供一种程序产品,该程序产品包括执行指令,该执行指令存储在可读存储介质中。设备的至少一个处理器可以从可读存储介质读取该执行指令,至少一个处理器执行该执行指令使得设备实施上述的各种实施方式提供的方法。
70.在上述终端或者服务器的实施例中,应理解,处理器可以是中央处理单元(英文:central processing unit,简称:cpu),还可以是其他通用处理器、数字信号处理器(英文:
digital signal processor,简称:dsp)、专用集成电路(英文:application specific integrated circuit,简称:asic)等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
71.最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1