CN109756361B - 基于通用平台的实时以太网设计方法 - Google Patents

基于通用平台的实时以太网设计方法 Download PDF

Info

Publication number
CN109756361B
CN109756361B CN201811380862.6A CN201811380862A CN109756361B CN 109756361 B CN109756361 B CN 109756361B CN 201811380862 A CN201811380862 A CN 201811380862A CN 109756361 B CN109756361 B CN 109756361B
Authority
CN
China
Prior art keywords
time
clock
real
network
ethernet
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
Application number
CN201811380862.6A
Other languages
English (en)
Other versions
CN109756361A (zh
Inventor
吴勇刚
刘宗宝
张宝
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Institute of Computer Technology and Applications
Original Assignee
Beijing Institute of Computer Technology and Applications
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Institute of Computer Technology and Applications filed Critical Beijing Institute of Computer Technology and Applications
Priority to CN201811380862.6A priority Critical patent/CN109756361B/zh
Publication of CN109756361A publication Critical patent/CN109756361A/zh
Application granted granted Critical
Publication of CN109756361B publication Critical patent/CN109756361B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Synchronisation In Digital Transmission Systems (AREA)

Abstract

本发明涉及一种基于通用平台的实时以太网设计方法,其中,包括:时间槽设计,包括:在网络时钟同步基础之上,通过系统内核的时间接口设置;时钟初始化;并指定时钟的维护函数,负责计算和更新指定网络事件的时间片数据;时钟设置;时钟启动数据结构初始化;时钟计时启动;周期收发设计包括:网卡驱动采用内核任务队列和DMA的数据传输方式,并配合使用NAPI的触发方式;实时应用层协议栈设计包括:使用开源的CANOPEN工程作为应用层接口,实现实时协议栈。本发明基于通用硬件平台的方法,实现基于通用硬件平台的实时以太网通信,解决必须使用专用芯片的问题,提高灵活性和开发效率,降低成本。

Description

基于通用平台的实时以太网设计方法
技术领域
本发明涉及计算机网络技术,特别涉及一种基于通用平台的实时以太网设计方法。
背景技术
国外对对实时网络的研究较早,当前主流的高实时性的以太网有三种:TTE、EtherCat和SERCOS。
调查发现,这三种实时以太网都需要专用芯片才能实现,之所以采用专用芯片来实现的原因之一是为了能够控制市场和用户,使总线知识产权的拥有者处于有利地位,以便在将来随时可以垄断市场和控制用户。
国内对实时网络的研究较晚,主要研发单位有西电的通信工程教研室和清华大学软件与通信教研室。并且都是针对特定需求,使用专用的FPGA芯片设计的方式实现,无法实现通用化和厂家设备之间的互联互通。
在美国不断加紧的技术封锁和贸易壁垒的大背景下,我们对完全依赖进口的专用芯片只能避而远之。
时间确定性以太网通信国内研究较晚,没有形成成熟产品,大多依赖进口,对存在的问题分析如下。
1,国外厂商在国内的市场都是通过代理的形式,遇到问题,常常需要先反馈给代理,再由代理跟厂商联系解决问题,一般需要六个月或是更长。
2,时间确定性以太网的使用对用户需求很高,用户既要对确定性网络通信本身较为了解,也要对专业业务和通信模式很熟悉,因此需要行业用户与确定性以太网厂家进行深入合作。由于与国外厂商的沟通都要经中间代理商,合作和交流效率低下。
3,由于国外产品常常包含很多附加服务和功能,导致价格高昂,而这些附加服务和功能常常没有必要。
4,出于政治或是经济考量,随时对特定地域或是用户实施技术和产品断供。
5,因为使用专用芯片和专用应用层协议,不同厂家的实时网络不具有互联互通性。
发明内容
本发明的目的在于提供一种基于通用平台的实时以太网设计方法,用于解决上述现有技术的问题。
本发明一种基于通用平台的实时以太网设计方法,其中,包括:时间槽设计,包括:在网络时钟同步基础之上,通过系统内核的时间接口设置;时钟初始化;并指定时钟的维护函数,负责计算和更新指定网络事件的时间片数据;时钟设置;时钟启动数据结构初始化;时钟计时启动;对于每个进入时间槽的网络事件,计算该事件的剩余时间片,如果为0,直接执行该网络事件,否则通过时间槽机制实现的接口,等待剩余时间长度后运行该网络任务;周期收发设计包括:网卡驱动采用内核任务队列和DMA的数据传输方式,并配合使用NAPI的触发方式;实时应用层协议栈设计包括:使用开源的CANOPEN 工程作为应用层接口,实现实时协议栈;在CANOPEN接入时间触发机制后,对网卡驱动进行时间确定性访问;通过CANOPEN,实现对象字典的功能。
根据本发明所述的基于通用平台的实时以太网设计方法的一实施例,其中,时钟启动数据结构初始化包括:时钟启动数据结构初始化,在该数据结构指定:a)单次触发还是循环触发;b)触发时间长度;c)触发的回调函数;d)传到回调函数的参数。
根据本发明所述的基于通用平台的实时以太网设计方法的一实施例,其中,时间触发的时间精度通过写硬件GPIO信号,通过示波器测量相应硬件GPIO信号的方法进行测试与验证。
根据本发明所述的基于通用平台的实时以太网设计方法的一实施例,其中,时间槽设计中实现接口包括:依照参数指定的循环周期长度,循环发起用户任务;依照参数指定的单次时间长度,单次发起用户任务,从调用时刻起,等待参数指定的时间长度后,运行用户任务。
根据本发明所述的基于通用平台的实时以太网设计方法的一实施例,其中,包括:在端设备需要实现PTP协议,使用支持1588PTP 的以太网卡,端设备的配置过程包括:1),操作系统支持PTP协议; 2),配置和开启PTP协议;3),对于有多个网卡的端设备,设置端设备的同步时钟网卡;4),设置端设备的时钟模式为从模式;以上配置完成后,系统连接,加电后,PTP协议自动把端设备的时钟同步到交换机时钟源。
根据本发明所述的基于通用平台的实时以太网设计方法的一实施例,其中,对象字典是实时以太网的应用层通信协议,分为索引,子索引和数据项,各设备之间,依据不同的功能和子功能,确定对应的索引和子索的数值,接收方收到数据后,依据索引和子索的数值,确定数据项对应的操作、命令或是意义。
根据本发明所述的基于通用平台的实时以太网设计方法的一实施例,其中,包括:NAPI在较低网络数据包流速下,使用中断方式,在较高网络数据包流速下使用轮询机制。
根据本发明所述的基于通用平台的实时以太网设计方法的一实施例,其中,还包括:网络时钟同步设计包括:1),使用网口转串口的交换机配置线缆连接交换机与开发机;2),按照使用说明书,开发机配置好超级终端,交换机加电;3),进入配置模式;4),使能PTP功能;5),设置交换机的时钟优先级为最高优先级,在局域网内,最高优先级的时钟源为主时钟,其他为从时钟;6),设置交换机的时钟模式为边界时钟;7),配置交换机的优先转发转发模型为实时报文优先转发。
根据本发明所述的基于通用平台的实时以太网设计方法的一实施例,其中,时钟初始化,linux下为hrtimer_init;时钟设置,linux 下为hrtimer_set。
根据本发明所述的基于通用平台的实时以太网设计方法的一实施例,其中,时钟计时启动,linux下为hrtimer_start。
本发明基于通用硬件平台的方法,实现基于通用硬件平台的实时以太网通信,解决必须使用专用芯片的问题,提高灵活性和开发效率,降低成本。
附图说明
具体实施方式
为使本发明的目的、内容、和优点更加清楚,下面结合实施例,对本发明的具体实施方式作进一步详细描述。
基于通用硬件平台的时间同步,网络时钟同步是实时以太网设计的基础,在此之上进行需要的网络通信时间测量,包括,通信时延,通信时间抖动和时间窗口。
IEEE1588协议,又称PTP(precise time protocol,精确时间协议),可以达到亚微秒级别时间同步精度,于2002年发布version1,2008年发布version2。IEEE 1588协议对应的国内标准为:GB/T 25931—2010 网络测量和控制系统的精确时钟同步协议。
在支持1588PTP的普通以太网上实现高性能实时以太网协议,无需专用芯片,在各种通用平台上实现实时以太网如ARM、x86CPU等。
实现协议栈包括:物理层(标准以太网)、数据链路层(DLL)、应用层。
基于通用平台的实时以太网设计方法包括:
时间槽设计包括:
在网络时钟同步基础之上,通过系统内核的高精时间接口,对以下内核时钟功能的分析和使用实现对时间槽的设计;
高精时钟初始化,linux下为hrtimer_init;
并在此指定时钟的维护函数,负责计算和更新指定网络事件的时间片数据。
高精时钟设置,linux下为hrtimer_set;
时钟启动数据结构初始化,在该数据结构指定:
a)单次触发还是循环触发
b)触发时间长度
c)触发的回调函数
d)传到回调函数的参数
高精时钟计时启动,linux下为hrtimer_start;
实现接口包括:依照参数指定的循环周期长度,循环发起用户任务;依照参数指定的单次时间长度,单次发起用户任务,即从调用时刻起,等待参数指定的时间长度后,运行用户任务。
以上时间触发的时间精度可以通过写硬件GPIO信号,通过示波器测量相应硬件GPIO信号的方法进行测试与验证。
对于每个进入时间槽的网络事件,计算该事件的剩余时间片,如果为0,直接执行该网络事件,否则通过时间槽机制实现的接口,等待剩余时间长度后运行该网络任务。
周期收发设计包括:
为了保证网络在高吞吐率下的实时性能,网卡驱动采用了内核任务队列和DMA的数据传输方式,并配合使用了NAPI的触发方式。
NAPI统称为NEW API,是一种融合了轮询和中断两种触发方式优点的事件触发机制,在较低网络数据包流速下,使用中断方式,在较高网络数据包流速下使用轮询机制,减少中断的各种现场保护和切换造成的系统资源消耗。
因为现有网卡驱动的数据发送接口,接收接口及其参数依据 TCP/IP协议,进行了标准封装和嵌套。对封装和嵌套进行协议隔离和提取后,使用现有网卡驱动的数据发送和接收接口。
实时应用层协议栈设计包括:
计划使用开源的CANOPEN工程作为应用层接口,实现实时协议栈。
在CANOPEN接入时间触发机制后,对网卡驱动进行时间确定性访问。
通过CANOPEN,实现对象字典的功能。
对象字典是实时以太网的应用层通信协议,分为索引,子索引和数据项,各设备之间,依据不同的功能和子功能,确定对应的索引和子索的数值,这样接收方收到数据后,依据索引和子索的数值,确定该数据项对应的操作,命令或是意义。
使用CANOPEN的意义在于实现统一的应用层协议,便于不同厂家不同设备之间的互联互通。
网络时钟同步设计包括:
不同的交换机和端设备,实现有所不同,总体过程如下:
1),使用网口转串口的交换机配置线缆连接交换机与开发机
2),按照使用说明书,开发机配置好超级终端,交换机加电
3),进入配置模式。
4),使能PTP功能。
5),设置交换机的时钟优先级为最高优先级,在局域网内,最高优先级的时钟源为主时钟,其他为从时钟。
6),设置交换机的时钟模式为边界时钟。
7),配置交换机的优先转发转发模型为实时报文优先转发。
在端设备需要实现PTP协议,使用支持1588PTP的以太网卡。端设备的配置过程归纳如下:
1),操作系统支持PTP协议。
2),配置和开启PTP协议。
3),对于有多个网卡的端设备,设置端设备的同步时钟网卡。
4),设置端设备的时钟模式为从模式。
以上配置完成后,系统连接,加电后,PTP协议自动把端设备的时钟同步到交换机时钟源。
本发明的效果包括:
1基于通用硬件平台的方法,实现基于通用硬件平台的实时以太网通信,解决必须使用专用芯片的问题,提高灵活性和开发效率,降低成本。
2使用通用软件平台的时间槽设计和时隙设计,通过通用软件平台的时间槽设计和时隙设计,实现对网络通信的时间管理功能,解决必须使用专用软件平台的问题,提高灵活性和开发效率,降低成本。
3,实现通用网卡的时间确定性收发设计,通过实现通用网卡的时间确定性收发设计,解决必须使用通用网卡实现实时以太网的问题,提高灵活性和开发效率,降低成本。
4,使用通用的应用层协议,确保不同厂家的实时网络产品互联互通。
本发明实现了对以下国产化平台的支持:天熠操作系统+I7CPU 平台。银河麒麟操作系统+飞腾CPU平台。中标麒麟操作系统+龙芯 CPU平台。通用平台的支持包含ARM平台和X86平台。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变形,这些改进和变形也应视为本发明的保护范围。

Claims (10)

1.一种基于通用平台的实时以太网设计方法,其特征在于,包括:
时间槽设计,包括:
在网络时钟同步基础之上,通过系统内核的时间接口设置;
时钟初始化;
并指定时钟的维护函数,负责计算和更新指定网络事件的时间片数据;
时钟设置;
时钟启动数据结构初始化;
时钟计时启动;
对于每个进入时间槽的网络事件,计算该事件的剩余时间片,如果为0,直接执行该网络事件,否则通过时间槽机制实现的接口,等待剩余时间长度后运行该网络事件;
周期收发设计包括:网卡驱动采用内核任务队列和DMA的数据传输方式,并配合使用NAPI的触发方式;
实时应用层协议栈设计包括:使用开源的CANOPEN工程作为应用层接口,实现实时协议栈;
在CANOPEN接入时间触发机制后,对网卡驱动进行时间确定性访问;
通过CANOPEN,实现对象字典的功能。
2.如权利要求1所述的基于通用平台的实时以太网设计方法,其特征在于,时钟启动数据结构初始化包括:时钟启动数据结构初始化,在该数据结构指定:a)单次触发还是循环触发;b)触发时间长度;c)触发的回调函数;d)传到回调函数的参数。
3.如权利要求1所述的基于通用平台的实时以太网设计方法,其特征在于,时间触发的时间精度通过写硬件GPIO信号,通过示波器测量相应硬件GPIO信号的方法进行测试与验证。
4.如权利要求1所述的基于通用平台的实时以太网设计方法,其特征在于,时间槽设计中实现接口包括:依照参数指定的循环周期长度,循环发起用户任务;依照参数指定的单次时间长度,单次发起用户任务,从调用时刻起,等待参数指定的时间长度后,运行用户任务。
5.如权利要求1所述的基于通用平台的实时以太网设计方法,其特征在于,包括:在端设备需要实现PTP协议,使用支持1588PTP的以太网卡,端设备的配置过程包括:
1),操作系统支持PTP协议;
2),配置和开启PTP协议;
3),对于有多个网卡的端设备,设置端设备的同步时钟网卡;
4),设置端设备的时钟模式为从模式;
以上配置完成后,系统连接,加电后,PTP协议自动把端设备的时钟同步到交换机时钟源。
6.如权利要求1所述的基于通用平台的实时以太网设计方法,其特征在于,对象字典是实时以太网的应用层通信协议,分为索引,子索引和数据项,各设备之间,依据不同的功能和子功能,确定对应的索引和子索的数值,接收方收到数据后,依据索引和子索的数值,确定数据项对应的操作、命令或是意义。
7.如权利要求1所述的基于通用平台的实时以太网设计方法,其特征在于,包括:NAPI在较低网络数据包流速下,使用中断方式,在较高网络数据包流速下使用轮询机制。
8.如权利要求1所述的基于通用平台的实时以太网设计方法,其特征在于,还包括:
网络时钟同步设计包括:
1),使用网口转串口的交换机配置线缆连接交换机与开发机;
2),按照使用说明书,开发机配置好超级终端,交换机加电;
3),进入配置模式;
4),使能PTP功能;
5),设置交换机的时钟优先级为最高优先级,在局域网内,最高优先级的时钟源为主时钟,其他为从时钟;
6),设置交换机的时钟模式为边界时钟;
7),配置交换机的优先转发模型为实时报文优先转发。
9.如权利要求1所述的基于通用平台的实时以太网设计方法,其特征在于,时钟初始化,linux下为hrtimer_init;时钟设置,linux下为hrtimer_set。
10.如权利要求1所述的基于通用平台的实时以太网设计方法,其特征在于,时钟计时启动,linux下为hrtimer_start。
CN201811380862.6A 2018-11-20 2018-11-20 基于通用平台的实时以太网设计方法 Active CN109756361B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811380862.6A CN109756361B (zh) 2018-11-20 2018-11-20 基于通用平台的实时以太网设计方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811380862.6A CN109756361B (zh) 2018-11-20 2018-11-20 基于通用平台的实时以太网设计方法

Publications (2)

Publication Number Publication Date
CN109756361A CN109756361A (zh) 2019-05-14
CN109756361B true CN109756361B (zh) 2022-02-22

Family

ID=66403386

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811380862.6A Active CN109756361B (zh) 2018-11-20 2018-11-20 基于通用平台的实时以太网设计方法

Country Status (1)

Country Link
CN (1) CN109756361B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111107020B (zh) * 2019-12-31 2022-01-11 苏州盛科通信股份有限公司 一种多核心以太网交换芯片时间同步的方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108429596A (zh) * 2018-01-26 2018-08-21 武汉中元华电电力设备有限公司 一种用于IEEE 1588v2协议的以太网MAC模块实现装置及实现方法
CN108449285A (zh) * 2018-03-01 2018-08-24 中国航空无线电电子研究所 应用于共享式以太网的分式调度方法
CN108768981A (zh) * 2018-05-17 2018-11-06 中工科安科技有限公司 一种实现Powerlink工业实时以太网通讯的IP核

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108429596A (zh) * 2018-01-26 2018-08-21 武汉中元华电电力设备有限公司 一种用于IEEE 1588v2协议的以太网MAC模块实现装置及实现方法
CN108449285A (zh) * 2018-03-01 2018-08-24 中国航空无线电电子研究所 应用于共享式以太网的分式调度方法
CN108768981A (zh) * 2018-05-17 2018-11-06 中工科安科技有限公司 一种实现Powerlink工业实时以太网通讯的IP核

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
时间触发以太网关键技术研究与核心模块设计;丁培丽;《中国优秀硕士学位论文全文数据库信息科技辑(月刊)》;20180615;全文 *

Also Published As

Publication number Publication date
CN109756361A (zh) 2019-05-14

Similar Documents

Publication Publication Date Title
Forencich et al. Corundum: An open-source 100-gbps nic
CN202870808U (zh) 一种spi串口模块的fpga实现装置
CN101420328B (zh) 远程升级现场可编程门阵列的系统、接口卡及方法
CN106603367A (zh) 一种用于时间同步的can总线通信方法
CN102739491B (zh) 一种以太网通信主站实现方法
JP2011065685A (ja) 開放形コアプロトコルを基盤とするバスシステム
CN105337421A (zh) 一种智能电网系统中的协议转换及其相互通讯方法
CN105824275B (zh) 一种控制从站伺服驱动器同步主站的方法
CN103440219A (zh) 一种新型的通用总线转换桥ip核
CN106685735A (zh) Epa片上系统、epa通信系统及通信方法
US20140281036A1 (en) Synchronizing Scheduler Interrupts Across Multiple Computing Nodes
CN109756361B (zh) 基于通用平台的实时以太网设计方法
CN105281433A (zh) 一种配电终端通信系统
CN108628784A (zh) 串行通信器及串行通信系统
CN110968352A (zh) 一种pcie设备的复位系统及服务器系统
TW201510727A (zh) 用於多晶片減少引腳交叉觸發以增強除錯體驗的方法和裝置
CN103885421A (zh) 一种标准总线控制器
CN103124195A (zh) 一种光纤通道链路速度协商的实现方法
CN102420735B (zh) 一种基于硬件提取1588时间戳的lxi接口电路
CN109328449A (zh) RTEX-EtherCAT协议转换装置及工业控制系统
CN207625600U (zh) 基于交换机芯片的以太网扩展电路
CN107563075B (zh) 一种实现CosiMate网络和DDS网络互联的方法
CN210780847U (zh) 一种EtherCAT总线时钟分布系统
CN105389155B (zh) 一种利用spi接口实现tdm音频数据接收的方法及系统
CN114257469A (zh) 一种EtherCAT主站的通讯方法、装置以及介质

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