CN114513381B - 基于af_xdp的实时以太网现场总线数据包处理方法 - Google Patents
基于af_xdp的实时以太网现场总线数据包处理方法 Download PDFInfo
- Publication number
- CN114513381B CN114513381B CN202011276994.1A CN202011276994A CN114513381B CN 114513381 B CN114513381 B CN 114513381B CN 202011276994 A CN202011276994 A CN 202011276994A CN 114513381 B CN114513381 B CN 114513381B
- Authority
- CN
- China
- Prior art keywords
- real
- time ethernet
- data packet
- time
- xdp
- 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
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/40—Bus networks
- H04L12/40006—Architecture of a communication node
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/161—Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
- H04L69/162—Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields involving adaptations of sockets based mechanisms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/40—Bus networks
- H04L2012/40208—Bus networks characterized by the use of a particular bus standard
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/02—Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Small-Scale Networks (AREA)
Abstract
本发明涉及一种基于AF_XDP的实时以太网现场总线网络数据包处理方法,涉及数控技术领域,尤其涉及实时以太网现场总线技术领域,具体涉及一种基于AF_XDP的实时以太网现场总线网络数据包处理方法。本发明首先,分析实时以太网现场总线数据包在原生网卡驱动中的传输路径,建立在网卡驱动入口的实时以太网总线数据包的捕获点;然后,分析数据包在捕获点的特征,建立基于AF_XDP的数据包捕获及转发方法;最后,根据数据包所属的总线协议类型,设计在用户空间的实时以太网总线组件中数据包的解析处理方法。
Description
技术领域
本发明涉及数控技术领域,尤其涉及实时以太网现场总线技术领域,具体涉及一种基于AF_XDP的实时以太网现场总线网络数据包处理方法。
背景技术
高档数控系统不仅要求需要有很强的实时性,同时又需要具有很短的插补周期,在网卡驱动内部以及内核网络协议栈入口捕获处理数据包会占用较多的周期时间,很难满足高档数控系统对网络数据包传输时间的苛刻要求,理想的方式是直接在网卡的入口捕获实时以太网数据包并直接重定向到数控系统的用户态组件中进行处理,可以有效缩短数据传输的时间并增强传输网络的实时性能。
AF_XDP机制利用XDP的数据包重定向功能,可以直接将以太网协议的网络数据包以零拷贝(zero-copy)的方式重定向到用户空间的应用程序中,避免了以太网数据包在驱动及内核中的多次数据拷贝,降低了系统延迟,但是尚未应用在基于标准网卡的高档数控系统中,因此如何基于AF_XDP机制设计简单高效的实时以太网总线网络数据包处理方法,是解决高档数控系统实时以太网现场总线网络数据包实时高速传输的关键。
发明内容
为解决上述技术问题,本发明提出了一种基于AF_XDP的实时以太网现场总线网络数据包处理方法。
本发明为实现上述目的所采用的技术方案是:
基于AF_XDP的实时以太网现场总线数据包处理方法,包括以下步骤:
开启内核调试功能,通过内核输出的调试信息,确定实时以太网现场总线数据包在原生网卡驱动中的传输路径,在网卡驱动入口建立实时以太网总线数据包的捕获点;
针对在网卡驱动入口的实时以太网总线数据包捕获点,基于XDP机制进行实时以太网总线数据包的捕获及转发,将实时以太网总线数据包发送到实时以太网总线组件中;
根据实时以太网总线数据包所属的总线协议类型,在用户空间的实时以太网总线组件中进行实时以太网总线数据包的解析处理。
所述实时以太网现场总线数据包类型包括EtherCAT协议和SSB-III协议中的任意一种。
所述捕获点位于网卡驱动建立套接字缓冲器之前。
所述基于XDP机制进行实时以太网总线数据包的捕获及转发具体为:
采用实时以太网总线数据包接收中断事件,触发XDP处理实时以太网总线数据包;
采用XDP的重定向的功能,以AF_XDP的MMAP内存映射方式将实时以太网总线数据包以零拷贝的方式直接重定向到用户空间的实时以太网总线组件中。
所述在用户空间的实时以太网总线组件中进行实时以太网总线数据包的解析处理具体为:
建立用户态实时线程并设置实时线程为周期性实时线程,在每个用户态实时线程的实时周期中,完成对实时以太网总线数据包的解析处理工作;
在用户态实时以太网总线组件的实时线程的开始部分,采用PF_XDP的原始套接字的方式轮询的获取实时以太网总线数据包;
在用户态实时以太网总线组件的实时线程中解析以太网协议数据包头,确定实时以太网总线数据包类型;
根据实时以太网总线数据包类型解析实时以太网总线数据包的指令数据;
将解析出的指令数据组织成为NML中性消息命令,通过用户态实时以太网总线组件的消息通信通道与用户空间的实时应用程序交换数据;
等待下一周期轮询实时以太网总线数据包。
EtherCAT协议的指令数据包括周期性指令数据和非周期的指令数据,周期性的指令数据采用EtherCAT协议的过程数据进行数据传递,根据传递方向不同分为周期性的命令数据和状态数据,非周期性的指令数据采用EtherCAT协议的邮箱进行数据传递,根据传递方向不同分别为非周期性的命令数据和状态数据。
SSB-III协议的指令数据包括周期性指令数据和非周期性的指令数据,两种数据均采用邮箱进行数据传输。
本发明具有以下有益效果及优点:
1.实时以太网现场总线采用标准网卡传递数据包。现有数控系统中实时以太网现场总线仍采用传统的通信板卡形式进行总线数据的传输,不同的现场总线(如EtherCAT、SSB-III实时以太网总线等)对应不同的通信板卡,针对每一种现场总线都要开发一套与之对应的硬件板卡,使系统变得臃肿且不可复用。
2.在网卡驱动的入口捕获实时以太网总线数据包并重定向到用户空间,可以有效降低系统延迟及抖动。采用基于XDP机制在网卡驱动的入口捕获实时以太网总线数据,采用基于AF_XDP机制直接将实时以太网现场总线协议的网络数据包以零拷贝(zero-copy)的方式重定向到用户空间的实时以太网总线组件中,避免了数据包在驱动及内核中的多次数据拷贝,降低了系统延迟;与此同时,避免了数据包在内核协议栈中的传输,降低了系统的抖动。
附图说明
图1实时以太网总线网络结构图;
图2数据包的捕获处理方法图。
具体实施方式
下面结合附图及实施例对本发明做进一步的详细说明。
本发明适合应用于数控系统领域,尤其适用于采用标准网卡传输实时以太网现场总线网络数据包的应用场合,具体适用于高档数控系统中采用标准网卡传输实时以太网现场总线网络数据包的应用场合。下面结合附图对本发明方法的具体实施方式作进一步详细说明。
基于AF_XDP的实时以太网现场总线网络数据包处理方法,包括以下步骤:
1)确定实时以太网现场总线数据包在原生网卡驱动中的传输路径,建立在网卡驱动入口的实时以太网总线数据包的捕获点;
2)针对在网卡驱动入口的网络数据包捕获点,建立基于XDP机制的网络数据包捕获方法;
3)根据XDP的数据包捕获方法,建立基于AF_XDP机制的网络数据包转发方法;
4)根据数据包所属的总线协议类型,设计在用户空间的实时以太网总线组件中数据包的解析处理方法;
所述的确定实时以太网现场总线数据包从网卡驱动到内核网络协议栈的传输路径,实时以太网现场总线为EtherCAT和SSB-III;
所述的确定实时以太网现场总线数据包从网卡驱动到内核网络协议栈的传输路径,网卡为XDP支持的网卡;
所述的建立在网卡驱动入口的实时以太网总线数据包的捕获点,捕获点位于网卡驱动建立套接字缓冲器之前;
所述的建立基于AF_XDP的数据包捕获及转发方法,XDP的bpf_redirect_map()方法将实时以太网总线数据包以零拷贝(zero-copy)的方式重定向到用户空间的实时以太网总线组件中;
所述的建立基于AF_XDP的数据包捕获及转发方法,采用PF_XDP的原始套接字的编程方式;
所述的建立基于AF_XDP的数据包捕获及转发方法,AF_XDP采用mmap机制;
所述的建立基于AF_XDP的数据包捕获及转发方法,其特征在于数据包捕获方法包括以下步骤:
a.采用实时以太网数据包接收中断事件触发XDP处理数据包;
b.采用XDP的重定向的功能,以AF_XDP的机制将数据包以零拷贝的方式直接重定向到用户空间的实时以太网总线组件中;
所述的设计在用户空间的实时以太网总线组件中数据包的解析处理方法,其特征在于数据包的解析处理方法包括以下步骤:
a.建立用户态实时线程并设置实时线程为周期性实时线程,在每个用户态线程的实时周期中,完成对实时以太网现场总线数据包的解析处理工作;
b.在用户态实时以太网总线组件的实时线程的开始部分,采用PF_XDP的原始套接字的方式轮询的获取实时以太网数据包;
c.在用户态实时以太网总线组件的实时线程中解析以太网协议数据包头,确定实时以太网数据包类型;
d.根据数据包类型解析数据包的指令数据;
e.将解析出的指令数据组织成为消息命令,通过实时以太网组件的消息通信通道与上层的运动控制组件交换数据;其中,上层的运动控制组件为实时应用程序,用于轨迹规划、加减速控制以及插补计算。
f.等待下一周期轮询数据包。
如图1所示,基于AF_XDP的实时以太网现场总线的网络结构为图中的左半部分,默认情况下,网络数据包首先会经过内核空间的网卡驱动和网络协议栈,然后通过AF_INET套接字或者AF_PACKET标准套接字,被发送的用户空间中的应用程序中,本发明在网卡驱动的入口设置实时以太网总线数据包的捕获点,通过数据接收中断触发XDP的处理程序,采用XDP的bpf_redirect_map()重定向功能,和AF_XDP的机制mmap方法将EtherCAT、SSB-III实时以太网总线数据包以零拷贝的方式直接重定向到用户空间的实时以太网总线组件中,在用户态实时以太网总线组件中对数据包进行解析处理。
基于AF_XDP的实时以太网现场总线的数据流结构如图1中的右半部分所示,通过AF_XDP的mmap机制直接将实时以太网数据包以DMA的方式重定向到用户空间的环形队列中,上层实时以太网总线组件中的实时线程,通过轮询机制读取环形队列中的实时以太网数据包,数据包会在实时以太网总线组件中被解析处理,最后通过实时以太网组件的消息通信通道与上层的运动控制组件交换数据。
如图2所示,基于AF_XDP的实时以太网现场总线数据包的捕获处理方法的具体实施步骤包括:
A.采用实时以太网数据包接收中断事件触发XDP处理数据包;
B.采用XDP的bpf_redirect_map()重定向功能,以AF_XDP的机制将数据包以零拷贝的方式直接重定向到用户空间的实时以太网总线组件中;
C.建立用户态实时线程并设置实时线程为周期性实时线程,在每个用户态线程的实时周期中,完成对实时以太网现场总线数据包的解析处理工作;
C.在用户态实时以太网总线组件的实时线程的开始部分,采用PF_XDP的原始套接字的方式轮询的获取实时以太网数据包;
D.在用户态实时以太网总线组件的实时线程中解析以太网协议数据包头,确定实时以太网数据包类型,分别有EtherCAT、SSB-III以及其他实时以太网协议;
E.根据数据包类型解析数据包的指令数据,其中EtherCAT协议的指令数据包括周期性指令数据和非周期的指令数据,周期性的指令数据采用EtherCAT协议的过程数据进行数据传递,根据传递方向不同分为周期性的命令数据和状态数据,非周期性的指令数据采用EtherCAT协议的邮箱进行数据传递,根据传递方向不同分别为非周期性的命令数据和状态数据;SSB-III协议与EtherCAT协议类似,指令数据也包括周期性指令数据和非周期性的指令数据,不同的是SSB-III协议对于这两种数据均采用邮箱进行数据传输;
F.将解析出的指令数据组织成为消息命令,通过实时以太网组件的消息通信通道与上层的运动控制组件交换数据;
G.等待下一周期轮询数据包。
Claims (6)
1.基于AF_XDP的实时以太网现场总线数据包处理方法,其特征在于,包括以下步骤:
开启内核调试功能,通过内核输出的调试信息,确定实时以太网现场总线数据包在原生网卡驱动中的传输路径,在网卡驱动入口建立实时以太网总线数据包的捕获点;
针对在网卡驱动入口的实时以太网总线数据包捕获点,基于XDP机制进行实时以太网总线数据包的捕获及转发,将实时以太网总线数据包发送到实时以太网总线组件中;
根据实时以太网总线数据包所属的总线协议类型,在用户空间的实时以太网总线组件中进行实时以太网总线数据包的解析处理;
所述在用户空间的实时以太网总线组件中进行实时以太网总线数据包的解析处理具体为:
建立用户态实时线程并设置实时线程为周期性实时线程,在每个用户态实时线程的实时周期中,完成对实时以太网总线数据包的解析处理工作;
在用户态实时以太网总线组件的实时线程的开始部分,采用PF_XDP的原始套接字的方式轮询的获取实时以太网总线数据包;
在用户态实时以太网总线组件的实时线程中解析以太网协议数据包头,确定实时以太网总线数据包类型;
根据实时以太网总线数据包类型解析实时以太网总线数据包的指令数据;
将解析出的指令数据组织成为NML中性消息命令,通过用户态实时以太网总线组件的消息通信通道与用户空间的实时应用程序交换数据;
等待下一周期轮询实时以太网总线数据包。
2.根据权利要求1所述的基于AF_XDP的实时以太网现场总线数据包处理方法,其特征在于,所述实时以太网现场总线数据包类型包括EtherCAT协议和SSB-III协议中的任意一种。
3.根据权利要求1所述的基于AF_XDP的实时以太网现场总线数据包处理方法,其特征在于,所述捕获点位于网卡驱动建立套接字缓冲器之前。
4.根据权利要求1所述的基于AF_XDP的实时以太网现场总线数据包处理方法,其特征在于,所述基于XDP机制进行实时以太网总线数据包的捕获及转发具体为:
采用实时以太网总线数据包接收中断事件,触发XDP处理实时以太网总线数据包;
采用XDP的重定向的功能,以AF_XDP的MMAP内存映射方式将实时以太网总线数据包以零拷贝的方式直接重定向到用户空间的实时以太网总线组件中。
5.根据权利要求1所述的基于AF_XDP的实时以太网现场总线数据包处理方法,其特征在于,EtherCAT协议的指令数据包括周期性指令数据和非周期的指令数据,周期性的指令数据采用EtherCAT协议的过程数据进行数据传递,根据传递方向不同分为周期性的命令数据和状态数据,非周期性的指令数据采用EtherCAT协议的邮箱进行数据传递,根据传递方向不同分别为非周期性的命令数据和状态数据。
6.根据权利要求1所述的基于AF_XDP的实时以太网现场总线数据包处理方法,其特征在于,SSB-III协议的指令数据包括周期性指令数据和非周期性的指令数据,两种数据均采用邮箱进行数据传输。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011276994.1A CN114513381B (zh) | 2020-11-16 | 2020-11-16 | 基于af_xdp的实时以太网现场总线数据包处理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011276994.1A CN114513381B (zh) | 2020-11-16 | 2020-11-16 | 基于af_xdp的实时以太网现场总线数据包处理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114513381A CN114513381A (zh) | 2022-05-17 |
CN114513381B true CN114513381B (zh) | 2023-07-25 |
Family
ID=81546408
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011276994.1A Active CN114513381B (zh) | 2020-11-16 | 2020-11-16 | 基于af_xdp的实时以太网现场总线数据包处理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114513381B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101582895A (zh) * | 2009-06-18 | 2009-11-18 | 重庆邮电大学 | 基于epa的嵌入式工业无线wia-pa网关 |
CN103076780A (zh) * | 2012-12-28 | 2013-05-01 | 广州数控设备有限公司 | 基于工业以太网总线的绝对式光栅控制系统及控制方法 |
CN103269284A (zh) * | 2013-05-17 | 2013-08-28 | 汉柏科技有限公司 | 实时网络数据的捕获方法 |
CN108803568A (zh) * | 2018-06-08 | 2018-11-13 | 西安应用光学研究所 | 一种基于arinc429总线航电操控模拟系统及方法 |
CN108900400A (zh) * | 2018-06-22 | 2018-11-27 | 长春工业大学 | 一种应用于汽车网络的CAN-Ethernet网关时序分析策略 |
-
2020
- 2020-11-16 CN CN202011276994.1A patent/CN114513381B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101582895A (zh) * | 2009-06-18 | 2009-11-18 | 重庆邮电大学 | 基于epa的嵌入式工业无线wia-pa网关 |
CN103076780A (zh) * | 2012-12-28 | 2013-05-01 | 广州数控设备有限公司 | 基于工业以太网总线的绝对式光栅控制系统及控制方法 |
CN103269284A (zh) * | 2013-05-17 | 2013-08-28 | 汉柏科技有限公司 | 实时网络数据的捕获方法 |
CN108803568A (zh) * | 2018-06-08 | 2018-11-13 | 西安应用光学研究所 | 一种基于arinc429总线航电操控模拟系统及方法 |
CN108900400A (zh) * | 2018-06-22 | 2018-11-27 | 长春工业大学 | 一种应用于汽车网络的CAN-Ethernet网关时序分析策略 |
Non-Patent Citations (1)
Title |
---|
"基于AM3358处理器的嵌入式实时EtherCAT主站的构建";李备备;《组合机床与自动化加工技术》(第5期);第1-3节 * |
Also Published As
Publication number | Publication date |
---|---|
CN114513381A (zh) | 2022-05-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5663037B2 (ja) | 映像および音声用デジタル相互インターフェース(DiiVA)上のマルチメディアUSBデータ転送 | |
US8375145B2 (en) | Doorbell handling with priority processing function | |
US9143467B2 (en) | Network interface controller with circular receive buffer | |
US20140163810A1 (en) | Method for data transmission among ECUs and/or measuring devices | |
KR101401874B1 (ko) | 통신제어 시스템, 스위칭 노드, 통신제어 방법, 및 통신제어용 프로그램 | |
JP2011050071A (ja) | シリアライザ及びデシリアライザ機能を有するクロスポイントスイッチ | |
US10609125B2 (en) | Method and system for transmitting communication data | |
EP1471705A1 (en) | A means and control method for adapting different media of transmission link of network on physical layer. | |
CN111600852A (zh) | 一种基于可编程数据平面的防火墙设计方法 | |
WO2022237332A1 (zh) | 工业异构网络高速协议转换装置及并行处理单元 | |
US20040019704A1 (en) | Multiple processor integrated circuit having configurable packet-based interfaces | |
CN112929418B (zh) | 一种基于发布订阅的RapidIO高速通信方法及系统 | |
CN114513381B (zh) | 基于af_xdp的实时以太网现场总线数据包处理方法 | |
CN114513383B (zh) | 基于原始套接字的实时以太网现场总线数据包处理方法 | |
JP2003050788A (ja) | 高レベル・データ・リンク・コントローラから多数個のディジタル信号プロセッサ・コアに信号を分配するための装置と方法 | |
US20040017813A1 (en) | Transmitting data from a plurality of virtual channels via a multiple processor device | |
CN114513382B (zh) | 一种基于网卡的实时以太网现场总线网络数据包处理方法 | |
JP2012023511A (ja) | シリアルデバイスサーバ | |
CN111836024A (zh) | 一种基于视频传输的混合网络系统设计 | |
KR100261813B1 (ko) | 티씨피의 오오비 채널을 이용한 부가 데이터 전송방법 | |
WO2023185237A1 (zh) | 报文传输的方法及装置 | |
WO2021035798A1 (zh) | 一种在多核场景中自动切换外送数据的uart主控系统 | |
CN114509993B (zh) | 一种基于国产cpu的自主可控数控系统构建方法 | |
CN112073291B (zh) | 一种无抖动链路层消息插入装置及方法 | |
CN112073206B (zh) | 一种基于可编程网络硬件设备实现面向可靠组播的数据包过滤方法 |
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 |