CN109150354B - 一种时间触发以太网中压缩修正值的计算方法 - Google Patents
一种时间触发以太网中压缩修正值的计算方法 Download PDFInfo
- Publication number
- CN109150354B CN109150354B CN201810879947.2A CN201810879947A CN109150354B CN 109150354 B CN109150354 B CN 109150354B CN 201810879947 A CN201810879947 A CN 201810879947A CN 109150354 B CN109150354 B CN 109150354B
- Authority
- CN
- China
- Prior art keywords
- input
- pcf
- kmax
- state
- value
- 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
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04J—MULTIPLEX COMMUNICATION
- H04J3/00—Time-division multiplex systems
- H04J3/02—Details
- H04J3/06—Synchronising arrangements
- H04J3/0635—Clock or time synchronisation in a network
- H04J3/0638—Clock or time synchronisation among nodes; Internode synchronisation
- H04J3/0658—Clock or time synchronisation among packet nodes
- H04J3/0661—Clock or time synchronisation among packet nodes using timestamps
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/0078—Avoidance of errors by organising the transmitted data in a format specifically designed to deal with errors, e.g. location
- H04L1/0083—Formatting with frames or packets; Protocol or part of protocol for error control
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明涉及一种时间触发以太网中压缩修正值的计算方法。采用统一的状态机控制计算流程,每个新到的pcf时间触发状态机状态的转换,当观测窗口结束后,可以立刻得到时间修正值的结果。该方法不需要在压缩计算前就指定计算方法,而是随着到达pcf帧数量的变化而不断动态调整计算方法,因此计算前不需要缓存所有pcf帧,可以减小压缩计算延时;计算过程使用简单的有限状态机控制实现,需要保存临时数据的寄存器数目要求少,便于硬件电路实现。
Description
技术领域
本发明是针对时间触发以太网中压缩控制器设备上基于硬件电路实现时间压缩修正值的一种方法。
背景技术
时间触发以太网中,为了实现全网节点的时间同步,压缩控制器(CM)需要周期性的设置观测窗口,接收各压缩控制器发过来的pcf帧,通过计算pcf帧到达时间的平均值,得到经过各SM可接受的“标准时间”,然后CM将自己的时间修订为这个“标准时间”,再通知各SM与自己的标准时间同步。设在观测窗口中CM收到i(i≥1)个pcf帧,以第1个帧的到达时间为基准,第i个帧与第1个帧的到达时间差为input[i],显然input[1]=0,input[k]<input[k+1],k=1…i-1。时间触发以太网规范中规定了压缩修正值CC(Compression_correction)的计算原则。
·当i=1时,CC=input[1]
·当i=2时,CC=(input[1]+input[2])/2
·当i=3时,CC=input[2]
·当i=4时,CC=(input[2]+input[3])/2
·当i=5时,CC=(input[2]+input[4])/2
·当i>5时,CC为第k个最大输入与第k个最小输入的算术平均值。其中,k是一个可配置参数,如在2容错情况下设置为3。
CC计算的难点是当观测窗口开始时,无法预估究竟有多少个pcf帧到达,因此无法确定具体使用何种计算方法,通常只能将所有的pcf帧到达时间保留下来,待观测窗口结束后,再开始CC的计算。这样做的缺点有两个,一是计算延时大,二是需要保存所有pcf帧到达时间戳。
而在时间触发以太网中,同步间隔越小,全网的同步精度越高,而缩小压缩计算的延时对缩小同步间隔具有重要意义。因此需要压缩算法能够以更加快速的方式实现,特别是能够以硬件模块的方式嵌入到时间触发以太网专用芯片中实现,然而目前还没有相关实现方法的报道。
此外,在复杂的时间触发以太网环境下不同的SM可能产生结团现象,此时每个CM可能同时打开多个监测窗口以监测分属不同集成周期的pcf帧,这种复杂的情况本发明不做考虑。
发明内容
本发明提出一种CM进行压缩计算时间修正值的方法,该方法的主要特点是采用统一的状态机控制计算流程,每个新到的pcf触发状态机状态的转换,当观测窗口结束后,可以立刻得到时间修正值的结果;本方法具体内容如下:
(一)电路的基本组成
本发明提出的方法适合硬件电路实现,其组成如附图1所示,主要包含偏差计算模块,压缩计算模块和K计算模块。电路的输入信号包括win_open,Rx_pit和参数K。win_open从0变到1代表一个观测窗口打开,从1变到0代表观测窗口关闭;Rx_pit代表每次接收一个pcf帧的时刻;参数K是系统工作的参数,在系统初始化时配置,工作过程中不会改变。电路的输出信号包括计算的到的CC值,以及参与计算该值的pcf的帧数目pcf_num;
偏差计算模块通过监测Win_open信号获取观测窗口打开时刻,然后将窗口打开后接收的第一个pcf帧到达时间作为基准时间input[1],同时计算后续到达pcf帧的时间与基准时间的差值input[i],i>1。并将每个pcf分组对应的input值送压缩计算模块和K计算模块;
K计算模块通过监测Win_open信号获取观测窗口打开时刻,根据预先配置的K值,在计算整个观测窗口中接收pcf帧中第K个最大的input值和第K个最小的input值,并将这两个值送给压缩计算模块;
压缩计算模块是电路的核心模块,通过监测Win_open信号获取观测窗口打开时刻后,监测接收pcf帧的数量,并根据接收pcf帧的数量不断调整CC的计算方法,获取最新的CC值,一旦接收到win_open从1变成0的信号,立刻输出CC的计算结果;
(二)偏差计算模块工作流程
偏差计算模块设置一个First_input_pit寄存器;
(1)当监测到win_open从0变1后,接收到第一个RX_pit时:
First_input_pit=Rx_pit;
input=0;
(2)当接收到后续RX_pit时:
Input=Rx_pit-First_input_pit;
(三)压缩计算模块工作流程
压缩计算模块的工作流程由一个包含7个状态的有限状态机控制,如附图2所示。其中状态机的状态转换条件在图中已经标明,带箭头的实线表示接收到有效的input输入,虚线箭头标示观测窗口关闭(win_open信号变为0);
每个状态中的操作如下,其中tmp1和tmp2是两个用于计算CC的变量寄存器;
(1)idle状态:
CC=0;tmp1=0;tmp2=0;pcf_num=0;
(2)R1状态(接收到第1个pcf帧后)
CC=0;tmp1=0;tmp2=0;pcf_num=1;
(3)R2状态(接收到第2个pcf帧后)
CC=input>>2;tmp1=input;pcf_num=2;
其中>>代表右移两位,即除以2的操作。此时tmp1中保存input[2]的值;
(4)R3状态(接收到第3个pcf帧后)
CC=tmp1,tmp2=input;pcf_num=3;
此时tmp1中保存input[2]的值,tmp2中保存input[3]的值;
(5)R4状态(接收到第4个pcf帧后)
CC=(tmp1+tmp2)>>2;tmp2=input;pcf_num=4;
此时tmp1中保存input[2]的值,tmp2中保存input[4]的值;
(6)R5状态(接收到第5个pcf帧后)
CC=(tmp1+tmp2)>>2;pcf_num=5;
(7)Rx状态(接收到第6个及其以后的帧)
CC=(Kmin+Kmax)>>2;pcf_num=pcf_num+1;
根据上述流程,当在窗口内到达有效input数目不大于5时,在每个状态中CC的计算算法完全不同,而当状态机进入Rx状态时,CC根据K计算模块输出的Kmax和Kmin求平均值得到,完全符合规范要求;
(四)K计算模块工作流程
K计算模块主要监测接收pcf帧的数量和时间,根据配置的参数K,计算第K个最大的input值和第K个最小的input值。K计算模块通过一个有限状态机控制,如附图3所示。其中状态机的状态转换条件在图中已经标明,带箭头的实线表示接收到有效的input输入,虚线箭头标示观测窗口关闭(win_open信号变为0)。在waitK状态接收到有效input信号是,若pcf_num<K表示还没有收到K个有效的pcf帧,状态机仍保留在该状态,否则状态机进入WaitClose状态;
K计算模块保留两个变量寄存器,Kmin表示到当前为止,第K个最小的input值,Kmax表示到当前为止,第K个最大的input值。Kmax_tmp[1]…Kmax_tmp[K]为长度为K的数组,用于临时保存相关的input数据;
每个状态中的操作如下:
K_Idle状态:
Kmin=0;Kmax=0;Kmax_tmp[i]=0,i=1…K;
WaitK状态:
Kmin=input;Kmax=Kmax_tmp[1];
Kmax_tmp[i]=Kmax_tmp[i+1],i=1…K-1;
Kmax[K]=input;
WaitClose状态:
Kmax=Kmax_tmp[1];
Kmax_tmp[i]=Kmax_tmp[i+1],i=1…K-1;
Kmax[K]=input;
Kmin的值实际上就是pcf_num为K时的input值,因此Kmin在WaitClose状态时不再改变,一直保存到状态机返回Idle状态。在waitclose状态时,数组Kmax_tmp[K]中,Kmax_tmp[1]实际上就是当前第K大的input值,Kmax_tmp[K]就是当前最大的input值。因此在waitclose状态,每次收到新的有效input值时,Kmax_tmp[i]将被Kmax_tmp[i+1]替代,i=1…K-1。而Kmax_tmp[K]被设置为最新接收的input值。
本发明的优点是:一是不需要在压缩计算前就指定计算方法,而是随着到达pcf帧数量的变化而不断动态调整计算方法,因此计算前不需要缓存所有pcf帧,可以减小压缩计算延时;二是计算过程使用简单的有限状态机控制实现,需要保存临时数据的寄存器数目要求少,便于硬件电路实现。
附图说明
图1为本发明硬件电路示意图;
图2、图3为电路时钟图。
具体实施方式
本发明提出的时间触发以太网中压缩修正值的计算方法适合硬件电路实现。在具体实现时还需考虑以下问题。
一是所有电路的时钟是完全同步的,复位信号有效时,图2和图3的状态机需要分别置为idle和K_idle状态。当每个时钟上升沿到达时,没有有效input到达,也没有Win_open信号变化时,状态机状态保持不变;
二是在具体实现时,附图1中的RX_pit、input和CC信号分别需要用额外的1位宽的有效信号,如Rx_pit_v,input_v和CC_v来标识该信号在当前时钟周期是否有效。而输出的pcf_num信号是否有效可以使用CC_v标识;
此外,当硬件实现逻辑可以方便调用FIFO存储资源时,可将数组Kmax_tmp[K]用深度为K的FIFO实现,Kmax计算可以利用FIFO先进先出的特性进一步化简。即当FIFO不满时,将接收到的有效input值写入,当FIFO被写满后且到达新的input值时,只需从FIFO中读取一个值丢弃(当前第K+1大的input),同时将新到达的input值(当前最大的input)写入FIFO即可。当观测窗口关闭时,从FIFO读出的第一个input值就是最终的Kmax值。
Claims (2)
1.一种时间触发以太网中压缩修正值的计算方法,采用统一的状态机控制计算流程,每个新到的pcf触发状态机状态的转换,当观测窗口结束后,立刻得到时间修正值的结果;其特征在于,本方法具体内容如下:
(一)电路的基本组成
本方法采用如下的电路来实现,
该电路包含偏差计算模块、压缩计算模块和K计算模块,
电路的输入信号包括win_open、Rx_pit和参数K,
win_open从0变到1代表一个观测窗口打开,从1变到0代表观测窗口关闭;
Rx_pit代表每次接收一个pcf帧的时刻;
参数K是系统工作的参数,在系统初始化时配置,工作过程中不会改变,
电路的输出信号包括计算得到的压缩修正值CC,以及参与计算该值的pcf的帧数目pcf_num;
偏差计算模块通过监测Win_open信号获取观测窗口打开时刻,然后将窗口打开后接收的第一个pcf帧到达时间作为基准时间input[1],同时计算后续到达pcf帧的时间与基准时间的差值input[i],K>i>1,并将每个pcf分组对应的input值送压缩计算模块和K计算模块;
K计算模块通过监测Win_open信号获取观测窗口打开时刻,根据预先配置的K值,在计算整个观测窗口中接收pcf帧中第K个最大的input值和第K个最小的input值,并将这两个值送给压缩计算模块;
压缩计算模块是电路的核心模块,通过监测Win_open信号获取观测窗口打开时刻后,监测接收pcf帧的数量,并根据接收pcf帧的数量不断调整CC的计算方法,获取最新的CC值,一旦接收到win_open从1变成0的信号,立刻输出CC的计算结果;
(二)偏差计算模块工作流程
偏差计算模块设置一个First_input_pit寄存器;
(1)当监测到win_open从0变1后,接收到第一个RX_pit时:
First_input_pit=Rx_pit;
input=0;
(2)当接收到后续RX_pit时:
Input=Rx_pit- First_input_pit;
(三)压缩计算模块工作流程
压缩计算模块的工作流程由一个包含7个状态的有限状态机控制,
每个状态中的操作如下,其中tmp1和tmp2是两个用于计算CC的变量寄存器;
(1)idle状态:
CC=0;tmp1=0;tmp2=0;pcf_num=0;
(2)R1状态,接收到第1个pcf帧后
CC=0;tmp1=0;tmp2=0;pcf_num=1;
(3)R2状态,接收到第2个pcf帧后
CC=input>>2;tmp1=input;pcf_num=2;
其中>>代表右移两位,即除以2的操作,此时tmp1中保存input[2]的值;
(4)R3状态,接收到第3个pcf帧后;
CC=tmp1,tmp2=input;pcf_num=3;
此时tmp1中保存input[2]的值,tmp2中保存input[3]的值;
(5)R4状态,接收到第4个pcf帧后;
CC=(tmp1+tmp2)>>2;tmp2=input;pcf_num=4;
此时tmp1中保存input[2]的值,tmp2中保存input[4]的值;
(6)R5状态,接收到第5个pcf帧后;
CC=(tmp1+tmp2)>>2; pcf_num=5;
(7)Rx状态,接收到第6个及其以后的帧;
CC= (Kmin+Kmax)>>2;pcf_num= pcf_num+1;
根据上述流程,当在窗口内到达有效input数目不大于5时,在每个状态中CC的计算算法完全不同,而当状态机进入Rx状态时,CC根据K计算模块输出的Kmax和Kmin求平均值得到,完全符合规范要求;
(四)K计算模块工作流程
K计算模块主要监测接收pcf帧的数量和时间,根据配置的参数K,计算第K个最大的input值和第K个最小的input值,K计算模块通过一个有限状态机控制,带箭头的实线表示接收到有效的input输入,虚线箭头标示观测窗口关闭,在waitK状态接收到有效input信号是,若pcf_num<K表示还没有收到K个有效的pcf帧,状态机仍保留在该状态,否则状态机进入WaitClose状态;
K计算模块保留两个变量寄存器,Kmin表示到当前为止,第K个最小的input值, Kmax表示到当前为止,第K个最大的input值,Kmax_tmp[1]…Kmax_tmp[K]为长度为K的数组,用于临时保存相关的input数据;
每个状态中的操作如下:
K_Idle状态:
Kmin=0;Kmax=0;Kmax_tmp[i]=0,i=1…K;
WaitK状态:
Kmin=input;Kmax=Kmax_tmp[1];
Kmax_tmp[i]= Kmax_tmp[i+1],i=1…K-1;
Kmax[K]=input;
WaitClose状态:
Kmax=Kmax_tmp[1];
Kmax_tmp[i]= Kmax_tmp[i+1],i=1…K-1;
Kmax[K]=input。
2.根据权利要求1所述的一种时间触发以太网中压缩修正值的计算方法,其特征在于,所述Kmin的值实际上就是pcf_num为K时的input值,因此Kmin在WaitClose状态时不再改变,一直保存到状态机返回K_Idle状态,在waitclose状态时,数组Kmax_tmp[K]中,Kmax_tmp[1]实际上就是当前第K大的input值,Kmax_tmp[K]就是当前最大的input值,因此在waitclose状态,每次收到新的有效input值时,Kmax_tmp[i]将被Kmax_tmp[i+1]替代,i=1…K-1,而Kmax_tmp[K]被设置为最新接收的input值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810879947.2A CN109150354B (zh) | 2018-08-03 | 2018-08-03 | 一种时间触发以太网中压缩修正值的计算方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810879947.2A CN109150354B (zh) | 2018-08-03 | 2018-08-03 | 一种时间触发以太网中压缩修正值的计算方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109150354A CN109150354A (zh) | 2019-01-04 |
CN109150354B true CN109150354B (zh) | 2020-01-10 |
Family
ID=64791840
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810879947.2A Active CN109150354B (zh) | 2018-08-03 | 2018-08-03 | 一种时间触发以太网中压缩修正值的计算方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109150354B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110299957A (zh) * | 2019-06-20 | 2019-10-01 | 北京工业大学 | 基于晶振频率数字补偿的时间触发以太网时钟同步方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104009893A (zh) * | 2014-06-16 | 2014-08-27 | 北京航空航天大学 | 一种适用于压缩主控器内部监听的能够增强时钟同步容错的方法 |
CN106059701A (zh) * | 2016-08-17 | 2016-10-26 | 北京航空航天大学 | 一种通过捕获协议控制帧测试时间触发以太网的时钟同步修正值的装置 |
CN107070578A (zh) * | 2017-04-02 | 2017-08-18 | 北京航空航天大学 | 一种适用于多同步域时间触发以太网的主从时钟同步方法 |
CN107147465A (zh) * | 2017-06-30 | 2017-09-08 | 西安微电子技术研究所 | 一种面向时间触发网络的交换机时钟同步控制器及控制方法 |
CN108322280A (zh) * | 2017-12-12 | 2018-07-24 | 北京时代民芯科技有限公司 | 一种分布式计算机网络时钟同步延时补偿方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102282787B (zh) * | 2008-06-02 | 2015-01-14 | Tttech电脑技术股份公司 | 将分布式计算机网络中的本地时钟同步的方法 |
US8516534B2 (en) * | 2009-04-24 | 2013-08-20 | At&T Intellectual Property I, Lp | Method and apparatus for model-based recovery of packet loss errors |
CN103647682B (zh) * | 2013-12-09 | 2016-08-10 | 北京航空航天大学 | 一种模拟交换式以太网时钟同步的仿真系统 |
-
2018
- 2018-08-03 CN CN201810879947.2A patent/CN109150354B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104009893A (zh) * | 2014-06-16 | 2014-08-27 | 北京航空航天大学 | 一种适用于压缩主控器内部监听的能够增强时钟同步容错的方法 |
CN106059701A (zh) * | 2016-08-17 | 2016-10-26 | 北京航空航天大学 | 一种通过捕获协议控制帧测试时间触发以太网的时钟同步修正值的装置 |
CN107070578A (zh) * | 2017-04-02 | 2017-08-18 | 北京航空航天大学 | 一种适用于多同步域时间触发以太网的主从时钟同步方法 |
CN107147465A (zh) * | 2017-06-30 | 2017-09-08 | 西安微电子技术研究所 | 一种面向时间触发网络的交换机时钟同步控制器及控制方法 |
CN108322280A (zh) * | 2017-12-12 | 2018-07-24 | 北京时代民芯科技有限公司 | 一种分布式计算机网络时钟同步延时补偿方法 |
Also Published As
Publication number | Publication date |
---|---|
CN109150354A (zh) | 2019-01-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP2381622B1 (en) | Update of a cumulative residence time of a packet in a packet-switched communication network | |
US7885296B2 (en) | Maintaining consistency among multiple timestamp counters distributed among multiple devices | |
US8914662B2 (en) | Implementing transparent clock by correcting time information carried in data using residence time information | |
US11522627B2 (en) | TSN enabled controller | |
EP2254278A1 (en) | Timing recovery over packet networks | |
US8036202B2 (en) | Physical layer transceiver with integrated time synchronization | |
US8416814B2 (en) | System and method for high precision clock recovery over packet networks | |
AU2002302300B2 (en) | Synchronization of at least one node of a bus system | |
WO2014067339A1 (zh) | 一种流量监管方法和装置 | |
CN108833366B (zh) | 基于as6802协议的控制帧压缩方法 | |
US20120087402A1 (en) | In-system method for measurement of clock recovery and oscillator drift | |
CN107402534A (zh) | 调节方法、EtherCAT主站及计算机可读存储介质 | |
CN109150354B (zh) | 一种时间触发以太网中压缩修正值的计算方法 | |
JP4842754B2 (ja) | 通信装置および通信方法 | |
EP1908206B1 (en) | Method for exchanging information among digital units in a distributed system | |
CN114297833A (zh) | 一种面向分布式仿真的时间同步方法 | |
JP2022518631A (ja) | パケット交換ネットワークにおいて通信エンティティのコンピューター手段によって実施される方法、並びにそのコンピュータープログラム及びコンピューター可読非一時的記録媒体、並びにパケット交換ネットワークの通信エンティティ | |
US8081639B2 (en) | Method and apparatus for supporting client data transport with timing transparency | |
EP1882224B1 (en) | A system and method for transmitting data | |
CN114205309B (zh) | 一种面向tsn输出接口的帧发送时刻精确计算方法 | |
CN112600804B (zh) | 一种时间触发以太网中压缩算法的实现方法 | |
CN109991887B (zh) | 嵌入式实时EtherCAT主站的实时性优化方法 | |
CN103812633B (zh) | 工业以太网控制系统及其网络诱导延时计算方法 | |
CN111262790B (zh) | 一种令牌桶实现方法、装置和计算机可读存储介质 | |
CN114640415B (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 |