CN109753368B - 一种实时数据发送方法及系统 - Google Patents

一种实时数据发送方法及系统 Download PDF

Info

Publication number
CN109753368B
CN109753368B CN201811565563.XA CN201811565563A CN109753368B CN 109753368 B CN109753368 B CN 109753368B CN 201811565563 A CN201811565563 A CN 201811565563A CN 109753368 B CN109753368 B CN 109753368B
Authority
CN
China
Prior art keywords
time
real
data stream
time data
sending
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
CN201811565563.XA
Other languages
English (en)
Other versions
CN109753368A (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.)
Tsinghua University
Original Assignee
Tsinghua University
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 Tsinghua University filed Critical Tsinghua University
Priority to CN201811565563.XA priority Critical patent/CN109753368B/zh
Publication of CN109753368A publication Critical patent/CN109753368A/zh
Application granted granted Critical
Publication of CN109753368B publication Critical patent/CN109753368B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Synchronisation In Digital Transmission Systems (AREA)

Abstract

本发明公开一种实时数据发送方法及系统,该方法包括:用户态将待发送的各条实时数据流的周期及偏移发送至内核态;内核态根据该各条实时数据流的周期及偏移确定宏周期以及各条实时数据流在一个宏周期内的发送时刻;内核态读取系统当前时刻,并根据该系统当前时刻、该宏周期和各条实时数据流在一个宏周期内的发送时刻,确定待发送的实时数据流及相应的发送时刻;将待发送的实时数据流及相应的发送时刻发送至用户态;用户态在相应的发送时刻发送该实时数据流。采用本发明提供的方案,使得实时数据流流的发送能够与全网时间同步。

Description

一种实时数据发送方法及系统
技术领域
本发明涉及通信领域,具体而言,涉及一种实时数据发送方法及系统。
背景技术
嵌入式系统近年来一直在工业自动化工业、列车工业、航空航天工业等关键领域的网络通信中扮演着重要的角色,普通以太网虽然具有很高的传输效率却不能实现控制设备间的即时通信。标准以太网IEEE802.3的通信机制使数据传输时间可被任意推迟,也就谈不上实时性,而在工控领域中,特别是高动态过程的控制中,实时却是必不可少的。所以实时以太网结合了以太网的天然优势,成为最具代表性的实时网络之一。
网卡是工作在链路层的网络组件,是局域网中连接计算机和传输介质的接口,不仅能实现与局域网传输介质之间的物理连接和电信号匹配,还涉及帧的发送与接收、帧的封装与拆封、介质访问控制、数据的编码与解码以及数据缓存的功能等。
IEEE 1588协议,又称精确时间协议(precision time protocol,PTP),可以达到亚微秒级别时间同步精度,实时以太网交换机之间使用IEEE 1588时钟同步协议已经能够基本满足网络实时调度传输的需求,但由于端设备仍使用通用网卡,无法参与全网时间同步,因此现有的交换机设备一般都是整合了等候室(WaitingRoom)的解决方案,即,将端设备发出的帧暂时缓存到边缘交换机上,交换机再依据调度表去发送数据,但是该方案也导致数据流传输不可避免地存在抖动。
发明内容
本发明提供一种实时数据发送方法及系统,用以克服现有技术中存在的至少一个问题。
为达到上述目的,本发明提供了一种实时数据发送方法,包括:用户态将待发送的各条实时数据流的周期及偏移发送至内核态;内核态根据该各条实时数据流的周期及偏移确定宏周期以及各条实时数据流在一个宏周期内的发送时刻;内核态读取系统当前时刻,并根据该系统当前时刻、该宏周期和各条实时数据流在一个宏周期内的发送时刻,确定待发送的实时数据流及相应的发送时刻;将待发送的实时数据流及相应的发送时刻发送至用户态;用户态在相应的发送时刻发送该实时数据流。
可选地,在内核态读取系统当前时刻之前,包括:以寄存器时钟为主时钟,同步该内核态时钟;将同步后的该内核态的系统当前时刻写入该寄存器;内核态读取系统当前时刻,包括:将从该寄存器读取的值作为系统当前时刻。
可选地,根据该系统当前时刻、该宏周期和各条实时数据流在一个宏周期内的发送时刻,确定待发送的实时数据流及相应的发送时刻,包括:根据寄存器的值对该宏周期进行取模操作;将取模操作后的结果与各条实时数据流在宏周期内的发送时刻比较,得到当前时刻对应的实时数据流;并将该当前时刻对应的实时数据流的下一实时数据流及其相应发送时刻确定为待发送的实时数据流及相应的发送时刻。
可选地,在内核态根据该系统当前时刻、该宏周期和各条实时数据流在一个宏周期内的发送时刻,确定待发送的实时数据流及相应的发送时刻之后,包括:该内核态启动定时器;该定时器用于在定时到期后,触发该内核态重新执行内核态读取系统当前时刻,并根据该系统当前时刻、该宏周期和各条实时数据流在一个宏周期内的发送时刻,确定待发送的实时数据流及相应的发送时刻的步骤。
可选地,该定时器的到期时刻为该内核态确定待发送的实时数据流及相应的发送时刻、加上当前时刻对应的实时数据流的发送时刻与下一实时数据流的发送时刻之间的间隔。
可选地,用户态在相应的发送时刻发送该实时数据流,包括:用户态将从内核态接收到的、待发送的实时数据流相应的发送时刻与当前时刻进行比较;当该待发送的实时数据流相应的发送时刻与当前时刻之间的差小于预定时长后,发送该实时数据流。
为达到上述目的,本发明还提供了一种实时数据发送系统,包括:内核态,用于根据用户态发送的各条实时数据流的周期及偏移确定宏周期以及各条实时数据流在一个宏周期内的发送时刻;读取系统当前时刻,并根据该系统当前时刻、该宏周期和各条实时数据流在一个宏周期内的发送时刻,确定待发送的实时数据流及相应的发送时刻;将待发送的实时数据流及相应的发送时刻发送至该用户态;用户态,用于将待发送的各条实时数据流的周期及偏移发送至内核态;并在相应的发送时刻发送内核态确定的实时数据流。
可选地,该内核态还用于:以寄存器时钟为主时钟,同步该内核态时钟;将同步后的该内核态的系统当前时刻写入该寄存器;将从该寄存器读取的值作为系统当前时刻。
可选地,该内核态用于:根据寄存器的值对该宏周期进行取模操作;将取模操作后的结果与各条实时数据流在宏周期内的发送时刻比较,得到当前时刻对应的实时数据流;并将该当前时刻对应的实时数据流的下一实时数据流及其相应发送时刻确定为待发送的实时数据流及相应的发送时刻。
可选地,该内核态还用于启动定时器;该定时器用于在定时到期后,触发该内核态重新执行内核态读取系统当前时刻,并根据该系统当前时刻、该宏周期和各条实时数据流在一个宏周期内的发送时刻,确定待发送的实时数据流及相应的发送时刻的步骤;该定时器的到期时刻为该内核态确定待发送的实时数据流及相应的发送时刻、加上当前时刻对应的实时数据流的发送时刻与下一实时数据流的发送时刻之间的间隔。
本发明的有益效果如下:通过用户态与内核态共同配合实现实数据流的发送,使得实时数据流流的发送能够与全网时间同步。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了根据本发明实施例的实时数据发送方法的流程图;
图2示出了两条实时数据流在不同的宏周期上的发送时刻的位置;
图3示出了根据本发明实施例的实时数据发送方法的流程图;
图4示出了根据本发明实施例的定时器调度方式示意图;
图5示出了根据本发明实施例的实时数据发送系统的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有付出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
交换机通常采用Linux操作系统,Linux操作系统的体系架构分为用户态(即,用户空间)和内核态(即内核)。内核从本质上看是一种软件——控制计算机的硬件资源,并提供上层应用程序运行的环境。用户态即上层应用程序的活动空间,应用程序的执行必须依托于内核提供的资源,包括CPU资源、存储资源、I/O资源等。为了使上层应用能够访问到这些资源,内核必须为上层应用提供访问的接口:即系统调用。系统调用是操作系统的最小功能单位。
本发明的核心思想在于,由于每条实时数据流的发送周期都是2ns的幂次方,所以以流的最小公倍数作为一个宏周期,然后根据偏移点,在宏周期内打点,确定每个流在宏周期内的时间点,同时因为常用寄存器均采用二进制,所以计时长度保证一定是2的幂次方的整倍数,例如,32位寄存器维护的范围为0~232-1,因此可以保证每个宏周期内打点的位置都是一样的,这样便可以只维护一个宏周期内的打点位置,便可以根据给定的时间点算出该位置正常应该发送的流。
具体实施时,用户态可以通过调用ioctl陷入到内核态,并调用wait_event等待规定发包时间,在内核态维护一个高精度定时器,当高精度定时器启动回调函数时,读取当前的寄存器时间,判断当前应该发送哪一条流,以及发送的时间点,并调用wake_up函数,同时将信息会传到用户态,用户态根据返回的信息发流。
本发明通过用户态与内核态共同配合实现实数据流的发送,使得实时数据流流的发送能够与全网时间同步。
实施例一
图1示出了根据本发明实施例的实时数据发送方法的流程图。
如图1所示,根据本发明实施例的实时数据发送方法包括:
S101,用户态将待发送的各条实时数据流的周期及偏移发送至内核态。
在具体实施时,每条流的发送周期都是2的幂次方,因此可以根据相应的调度工具基于线性规划的思想为每条流生成偏移,偏移保证流与流之间的发送间隔尽量大,至少会大于200us,之后在Linux中编写相应的代码使得每条流可以在规定时间发出。
S102,内核态根据该各条实时数据流的周期及偏移确定宏周期以及各条实时数据流在一个宏周期内的发送时刻。
S103,内核态读取系统当前时刻,并根据该系统当前时刻、该宏周期和各条实时数据流在一个宏周期内的发送时刻,确定待发送的实时数据流及相应的发送时刻。
在具体实施时,在内核态读取系统当前时刻之前,可以包括:以寄存器时钟为主时钟,同步该内核态时钟;将同步后的该内核态的系统当前时刻写入该寄存器;内核态读取系统当前时刻,包括:将从该寄存器读取的值作为系统当前时刻。
具体地,可以在底层交换机用一个32位寄存器维护当前的运行时间,每次运行加1说明过了1ns,交换机之间通过IEEE1588的改进版协议实现了寄存器时间的同步,因此在Linux系统中只要按照这个寄存器的时间定期发包即可。
在具体实施时,根据该系统当前时刻、该宏周期和各条实时数据流在一个宏周期内的发送时刻,确定待发送的实时数据流及相应的发送时刻,包括:根据寄存器的值对该宏周期进行取模操作;将取模操作后的结果与各条实时数据流在宏周期内的发送时刻比较,得到当前时刻对应的实时数据流;并将该当前时刻对应的实时数据流的下一实时数据流及其相应发送时刻确定为待发送的实时数据流及相应的发送时刻。
在具体实施时,在内核态根据该系统当前时刻、该宏周期和各条实时数据流在一个宏周期内的发送时刻,确定待发送的实时数据流及相应的发送时刻之后,包括:该内核态启动定时器;该定时器用于在定时到期后,触发该内核态重新执行内核态读取系统当前时刻,并根据该系统当前时刻、该宏周期和各条实时数据流在一个宏周期内的发送时刻,确定待发送的实时数据流及相应的发送时刻的步骤。
因为用户态没有定时函数能够精确到微秒级,而Linux内核态中提供了高精度定时器hrtimer;因此可以采用该定时器来触发下一次计算。经过测试,这一定时器的偏差大约在20us~80us之间,因此可以通过对该定时器进行改进以满足发包时间抖动在10us之内。
具体地,该定时器的到期时刻为该内核态确定待发送的实时数据流及相应的发送时刻、加上当前时刻对应的实时数据流的发送时刻与下一实时数据流的发送时刻之间的间隔。
S104,将待发送的实时数据流及相应的发送时刻发送至用户态。
S105,用户态在相应的发送时刻发送该实时数据流。
具体地,用户态在相应的发送时刻发送该实时数据流,包括:用户态将从内核态接收到的、待发送的实时数据流相应的发送时刻与当前时刻进行比较;当该待发送的实时数据流相应的发送时刻与当前时刻之间的差小于预定时长后,发送该实时数据流。
本发明实施例通过用户态与内核态共同配合实现实数据流的发送,使得实时数据流流的发送能够与全网时间同步。
由于本发明将Linux时钟源修改成了底层网卡的时钟,保证了Linux时钟运行频率会和底层网卡时钟一样,经历的时间间隔不会相差很大,同时每次使用下层网卡的时间作为当前的时间,保证即使网卡时间经过IEEE1588协议的微调依然会和上层Linux时钟保持一致,这样便实现了全网的时间同步。
通过线性规划使流之间的发送间隔尽可能大,这样便可以通过提前调度的思想屏蔽掉内核高精度定时器以及等待唤醒机制的误差,使得整体时间抖动在10us以内,使得Linux系统也能实现调度的实时性。
实施例二
图2示出了两条实时数据流在不同的宏周期上的发送时刻的位置。
假定有2条流flow1和flow2,flow1发送的周期为4,偏移为3;flow2发送周期为8,偏移为8。那么宏周期取所有流的最小公倍数即8,每8个为1个周期,这样便可以将32位寄存器(0~232-1)划分成229个周期,而且根据图1可以看出,在每个周期上,每条流发送的时刻距离起始点位置都是一样的,这样给定一个寄存器时间,便可以通过对宏周期取模找到在该时间应该发送的流标识即流id。
同时因为下层网卡的时钟已经通过了IEEE 1588进行了同步,所以每次可以在Linux系统中通过读寄存器的时间实现发包时间的整体同步。但是Linux本身并非是一个实时操作系统,所以本发明通过一些措施使得Linux可以在特定的时间发送相应的流。
考虑到Linux用户态程序的精度仅在毫秒之间,所以本发明分为两个部分,一部分是用户态代码,负责在特定时刻将流发出去,另一部分是内核态代码,负责高精度定时任务。
接下来根据图3的流程图对整体细节进行描述:
用户态最开始先初始化流信息,将流的编号id、周期、偏移通过ioctl发送到内核态,内核态根据这些信息计算出宏周期,并且计算出一个宏周期上的打点位置。接着读取寄存器的值以及Linux时钟当前的值,根据寄存器的值对宏周期进行取模操作,然后便可以得到当前时间节点将要发送的流,以及发送下一个流与发送当前流之间的时间间隔。
在定时器起始阶段,先丢弃当前将要发送的流,使用下一个流的开始时间作为整个系统的起始点,Linux高精度定时器采用的时钟为Linux系统自身的时钟源,一般默认为tsc,因此还需要实现一个以寄存器时间为基准的clocksource结构,设定为系统的默认时钟源,这样Linux的时钟也会按照寄存器的时钟运行,同时保证了时钟的运行频率与寄存器的时钟运行频率一样。同时经过测试Linux的高精度定时器误差在0~50us之间,所以在调用定时器的时候会提前200us执行。
而用户态程序保持一直调用ioctl 3指令,内核态对3这个信号的处理过程中会调用wait_event()函数等待,同时不会占用CPU资源。
在定时器的回调函数内部会首先调用wake_up()函数唤醒该等待,经过测试wake_up()函数与wait_event()函数之间的唤醒机制误差大约在0-100us,而定时器是提前200us触发的,这样便能保证用户层知道要发送流的时刻至少提前50us左右,因为考虑到寄存器时间可能会因为IEEE1588的策略会定期有微小的调整,所以回调函数内部每次都会调用寄存器时间计算查找当前要发送的流id以及下次要发送流的时间间隔,而Linux内部的时钟源更换成了寄存器的时钟,所以运行频率也一样,这就保证了高精度定时器经历的时间间隔和寄存器的时间间隔相差很小,保证了每次回调的精度。
回调函数在wake_up()之前会将当前时刻要发送的流id,以及该流期待发送的时刻expect_time会传到用户态,用户态得到这些信息之后,会拿到当前的时刻current_time与expect_time作比较,因为用户层收到可以发送流的时刻实际要比正常要发送的流的时刻提前50us左右,所以这50us会进行一个忙等待的动作,直到expect_time与current_time之间的差小于10为止。
具体的定时器调度方式如图4所示,图4上面为实际的发送时刻,图4下面为定时器的到期事件,每次根据寄存器中的时间得到下次要发送的流与当前要发送流的时间间隔interval,然后每次将到期时间向后推迟interval的时间,因为定时器和等待唤醒机制的误差,这样保证定时器到期的时间会在实际发包时间之前200us以内,同时内核态会将实际发包时间expect_time会传到用户态,用户态通过一个忙等待,不断比较current_time和expect_time的时间实现精准时间发包。
总的来说,本发明的主要思想是通过牺牲一部分CPU的运行时间辅助Linux内核的高精度定时器以及等待唤醒机制实现流的实时传递,Linux高精度定时器会有0-50us的误差,等待唤醒机制可以保证在不浪费CPU资源的情况下有0-100us的误差,同时根据已经经过IEEE 1588同步过的网卡时钟来确定流的发送时刻,通过小幅度的忙等待机制最终在通用网卡上实现了流的发送能够与全网时间同步。
实施例三
图5示出了根据本发明实施例的实时数据发送系统的结构示意图。
如图5所示,根据本发明实施例的实时数据发送系统500包括:内核态501,用于根据用户态发送的各条实时数据流的周期及偏移确定宏周期以及各条实时数据流在一个宏周期内的发送时刻;读取系统当前时刻,并根据该系统当前时刻、该宏周期和各条实时数据流在一个宏周期内的发送时刻,确定待发送的实时数据流及相应的发送时刻;将待发送的实时数据流及相应的发送时刻发送至该用户态;用户态502,用于将待发送的各条实时数据流的周期及偏移发送至内核态;并在相应的发送时刻发送内核态确定的实时数据流。
在具体实施时,该内核态还用于:以寄存器时钟为主时钟,同步该内核态时钟;将同步后的该内核态的系统当前时刻写入该寄存器;将从该寄存器读取的值作为系统当前时刻。
在具体实施时,该内核态用于:根据寄存器的值对该宏周期进行取模操作;将取模操作后的结果与各条实时数据流在宏周期内的发送时刻比较,得到当前时刻对应的实时数据流;并将该当前时刻对应的实时数据流的下一实时数据流及其相应发送时刻确定为待发送的实时数据流及相应的发送时刻。
在具体实施时,该内核态还用于启动定时器;该定时器用于在定时到期后,触发该内核态重新执行内核态读取系统当前时刻,并根据该系统当前时刻、该宏周期和各条实时数据流在一个宏周期内的发送时刻,确定待发送的实时数据流及相应的发送时刻的步骤;该定时器的到期时刻为该内核态确定待发送的实时数据流及相应的发送时刻、加上当前时刻对应的实时数据流的发送时刻与下一实时数据流的发送时刻之间的间隔。
本发明实施例通过用户态与内核态共同配合实现实数据流的发送,使得实时数据流流的发送能够与全网时间同步。
本领域普通技术人员可以理解:附图只是一个实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。
本领域普通技术人员可以理解:实施例中的装置中的模块可以按照实施例描述分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围。

Claims (10)

1.一种实时数据发送方法,其特征在于,包括:
用户态将待发送的各条实时数据流的周期及偏移发送至内核态;
内核态根据所述各条实时数据流的周期及偏移确定宏周期以及各条实时数据流在一个宏周期内的发送时刻,其中,以实时数据流的最小公倍数作为一个宏周期;
内核态读取系统当前时刻,并根据所述系统当前时刻、所述宏周期和各条实时数据流在一个宏周期内的发送时刻,确定待发送的实时数据流及相应的发送时刻;
将待发送的实时数据流及相应的发送时刻发送至用户态;
用户态在相应的发送时刻发送所述实时数据流。
2.根据权利要求1所述的实时数据发送方法,其特征在于,在内核态读取系统当前时刻之前,包括:
以寄存器时钟为主时钟,同步所述内核态时钟;
将同步后的所述内核态的系统当前时刻写入所述寄存器;
内核态读取系统当前时刻,包括:
将从所述寄存器读取的值作为系统当前时刻。
3.根据权利要求2所述的实时数据发送方法,其特征在于,根据所述系统当前时刻、所述宏周期和各条实时数据流在一个宏周期内的发送时刻,确定待发送的实时数据流及相应的发送时刻,包括:
根据寄存器的值对所述宏周期进行取模操作;
将取模操作后的结果与各条实时数据流在宏周期内的发送时刻比较,得到当前时刻对应的实时数据流;
并将所述当前时刻对应的实时数据流的下一实时数据流及其相应发送时刻确定为待发送的实时数据流及相应的发送时刻。
4.根据权利要求3所述的实时数据发送方法,其特征在于,在内核态根据所述系统当前时刻、所述宏周期和各条实时数据流在一个宏周期内的发送时刻,确定待发送的实时数据流及相应的发送时刻之后,包括:
所述内核态启动定时器;所述定时器用于在定时到期后,触发所述内核态重新执行内核态读取系统当前时刻,并根据所述系统当前时刻、所述宏周期和各条实时数据流在一个宏周期内的发送时刻,确定待发送的实时数据流及相应的发送时刻的步骤。
5.根据权利要求4所述的实时数据发送方法,其特征在于,所述定时器的到期时刻为所述内核态确定待发送的实时数据流及相应的发送时刻、加上当前时刻对应的实时数据流的发送时刻与下一实时数据流的发送时刻之间的间隔。
6.根据权利要求1所述的实时数据发送方法,其特征在于,用户态在相应的发送时刻发送所述实时数据流,包括:
用户态将从内核态接收到的、待发送的实时数据流相应的发送时刻与当前时刻进行比较;
当所述待发送的实时数据流相应的发送时刻与当前时刻之间的差小于预定时长后,发送所述实时数据流。
7.一种实时数据发送系统,其特征在于,包括:
内核态,用于根据用户态发送的各条实时数据流的周期及偏移确定宏周期以及各条实时数据流在一个宏周期内的发送时刻,其中,以实时数据流的最小公倍数作为一个宏周期;读取系统当前时刻,并根据所述系统当前时刻、所述宏周期和各条实时数据流在一个宏周期内的发送时刻,确定待发送的实时数据流及相应的发送时刻;将待发送的实时数据流及相应的发送时刻发送至所述用户态;
用户态,用于将待发送的各条实时数据流的周期及偏移发送至内核态;并在相应的发送时刻发送内核态确定的实时数据流。
8.根据权利要求7所述的实时数据发送系统,其特征在于,所述内核态还用于:
以寄存器时钟为主时钟,同步所述内核态时钟;
将同步后的所述内核态的系统当前时刻写入所述寄存器;
将从所述寄存器读取的值作为系统当前时刻。
9.根据权利要求8所述的实时数据发送系统,其特征在于,所述内核态用于:根据寄存器的值对所述宏周期进行取模操作;将取模操作后的结果与各条实时数据流在宏周期内的发送时刻比较,得到当前时刻对应的实时数据流;并将所述当前时刻对应的实时数据流的下一实时数据流及其相应发送时刻确定为待发送的实时数据流及相应的发送时刻。
10.根据权利要求9所述的实时数据发送系统,其特征在于,所述内核态还用于启动定时器;所述定时器用于在定时到期后,触发所述内核态重新执行内核态读取系统当前时刻,并根据所述系统当前时刻、所述宏周期和各条实时数据流在一个宏周期内的发送时刻,确定待发送的实时数据流及相应的发送时刻的步骤;所述定时器的到期时刻为所述内核态确定待发送的实时数据流及相应的发送时刻、加上当前时刻对应的实时数据流的发送时刻与下一实时数据流的发送时刻之间的间隔。
CN201811565563.XA 2018-12-20 2018-12-20 一种实时数据发送方法及系统 Active CN109753368B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811565563.XA CN109753368B (zh) 2018-12-20 2018-12-20 一种实时数据发送方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811565563.XA CN109753368B (zh) 2018-12-20 2018-12-20 一种实时数据发送方法及系统

Publications (2)

Publication Number Publication Date
CN109753368A CN109753368A (zh) 2019-05-14
CN109753368B true CN109753368B (zh) 2020-12-04

Family

ID=66402948

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811565563.XA Active CN109753368B (zh) 2018-12-20 2018-12-20 一种实时数据发送方法及系统

Country Status (1)

Country Link
CN (1) CN109753368B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110324211A (zh) * 2019-08-08 2019-10-11 宜人恒业科技发展(北京)有限公司 一种数据获取方法及装置
CN111984412A (zh) * 2020-08-18 2020-11-24 上海睿赛德电子科技有限公司 一种基于信号量机制的用户态定时器实现方法
CN112492046A (zh) * 2020-12-11 2021-03-12 交控科技股份有限公司 一种列车分布式tcms主备冗余管理方法及系统

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105939365A (zh) * 2015-06-29 2016-09-14 杭州迪普科技有限公司 主控板用户态从业务板内核态获取数据的方法及装置
CN108132811A (zh) * 2017-12-15 2018-06-08 杭州迪普科技股份有限公司 一种fpga程序数据的加载方法及装置

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101203157B1 (ko) * 2009-03-05 2012-11-20 한국전자통신연구원 데이터 전달 시스템, 장치 및 방법
CN101534230B (zh) * 2009-04-15 2012-02-01 中控科技集团有限公司 基于以太网的发送数据的方法、以太网节点及控制系统
CN103269284B (zh) * 2013-05-17 2016-09-14 汉柏科技有限公司 实时网络数据的捕获方法
CN103428226B (zh) * 2013-08-30 2017-04-19 天津汉柏汉安信息技术有限公司 一种用户态与内核通信的方法与系统
CN106685829B (zh) * 2016-12-27 2020-06-19 京信通信系统(中国)有限公司 一种实时传输协议rtp用户面数据转发的方法和装置
CN108768981B (zh) * 2018-05-17 2020-10-27 中工科安科技有限公司 一种实现Powerlink工业实时以太网通讯的IP核

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105939365A (zh) * 2015-06-29 2016-09-14 杭州迪普科技有限公司 主控板用户态从业务板内核态获取数据的方法及装置
CN108132811A (zh) * 2017-12-15 2018-06-08 杭州迪普科技股份有限公司 一种fpga程序数据的加载方法及装置

Also Published As

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

Similar Documents

Publication Publication Date Title
CN109753368B (zh) 一种实时数据发送方法及系统
US8001225B2 (en) Server time protocol messages and methods
CN101404618B (zh) 实现精确时钟同步协议中透传时钟的系统、装置及方法
CN112637318B (zh) 一种面向存储完整性的智能网关系统、装置及其控制方法
CN106708617B (zh) 一种基于Service的应用进程保活系统及保活方法
GB2429550A (en) Allocating resources in a time-aware system
US20090257456A1 (en) Coordinated timing network having servers of different capabilities
JP6449430B2 (ja) ネットワーク装置用の時刻同期方法、装置及び時刻同期サーバ
CN101009546A (zh) 采用不同时间同步协议的网段间实现时间同步的方法
CN101951300B (zh) 一种实现以太网精确对时的方法
CN110519016B (zh) 一种基于实时优先级动态调整的三网合一数据发送方法
CN105955398B (zh) 一种基于fpga的系统对时装置及对时方法
CN111506156B (zh) 一种处理器阵列的授时方法及系统
CN105577310B (zh) 一种时间触发以太网络中任务分区与通信调度的同步方法
CN214480655U (zh) 一种兼容可定义确定性通信以太网的嵌入式设备
JP4961589B2 (ja) ネットワークシステムおよびスレーブ同期方法
CN101887286A (zh) 时间格式的转换方法及装置
Hank Pelican: A new can controller supporting diagnosis and system optimization
CN102413017A (zh) 时延性能监测方法及装置
Juanole Quality of service of communication networks and distributed automation: models and performances
Lee et al. On determinism in event-triggered distributed systems with time synchronization
Martins et al. An Approach to the Synchronization of Backup Masters in Dynamic Master-Slave Systems
CN109388177B (zh) 基于多内核dsp的内核间时序同步方法和数据传输方法
CN116184920A (zh) 一种基于软定时器的多plc控制器指令输出高精度同步方法
CN103713544A (zh) 一种基于fpga的soe系统及其实现soe的方法

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