首页 资讯 关注 科技 财经 汽车 房产 图片 视频 全国 手机版
浙江 湖北 广东 重庆 陕西 四川 辽宁 吉林 上海 江苏 浙江 北京 安徽

精确时间协议PTP研究

来源:网络整理 作者:精选头条 人气: 发布时间:2018-10-24
摘要:假造仪器之父,专业研发振动测试、新闻态测试说明、数据收罗与信号处理赏罚、假造仪器等软件和装备,提供振动测试专业方案。电话+86 10 62989889/62976685/62979972/

择要:PTP(Precision Time Protocol)协议基于以太网,可以或许到达亚玄妙级的对时精度,在模态说明和振动测试等规模将有着辽阔的应用远景。起首先容了PTP协议的根基道理及事变流程,接着分解了要害数据布局及模块,最后给出了测试功效和下一步要作的事变。

要害词:准确时刻同步,以太网,IEEE 1588,嵌入式体系

1、弁言

跟着收集技能的不绝增进和成长,尤其是以太网在丈量和节制体系中应用越来越普及,计较机和收集界也在致力于办理以太网的按时同步手段不敷的题目,开拓了收集时刻协议(NTP),但其同步精确度只能到达200μs,如故不能满意丈量仪器和家产节制所需的精确度。为了办理这个题目,收集慎密时钟同步委员2002年推出了IEEE1588尺度,即“收集丈量和节制体系慎密时钟同步协议尺度”, 其根基成果是使漫衍式收集内的全部时钟与最准确时钟保持同步,它界说了一种准确时刻协议PTP(Precision Time Protocol),用于对尺度以太网或其他回收多播技能的漫衍式总线体系中的传感器执行器以及其他终端装备中的时钟举办亚微秒级同步,2008年又推出了越发高效、简捷的第二版。IEEE 1588可以以纯软件的方法实现,也可以用可以或许提供更准确的时刻同步的专门的硬件实现。时刻的精度和不确定性首要依模块和IEEE 1588执行的环境而定,一样平常祈望在几十纳秒到几十亚微秒间。IEEE 1588用于必要时刻精度比NTP高的局域漫衍体系,也用于一些不能接管GPS高本钱可能不能吸取到GPS信号的应用场所。因为其精度高、本钱低、装备部署机动,海外很多高端丈量仪器中已普及回收,而我国在这方面的研究与开拓相比拟力落伍,但丈量装备回收PTP同步方法已成为大事所趋,尤其是模态说明和振动测试等规模将有着辽阔的应用远景。


2、PTP道理及事变流程

PTP协议通过以太网同步各装备的时钟,可以提供亚玄妙级的对时精度,其对时进程包括两步:

第一步:通过最佳主时钟(Best Master Clock)算法确定收集中最准确的时钟,作为主时钟master,别的全部时钟都作为slave,并与master同步。

第二步:通过计较主从时钟偏移量和收集延时批改从装备时钟。同步的进程中必要计较主从时刻差别,个中包括主从钟的偏移量和收集传输时延。因此从时钟的批改也包括偏移量的批改和传输时延的批改。


2.1 主从动静互换流程

主从装备首要通过动静互换,完成对时,为保持恒久同等,必要不绝对时,动静互换模式如图1所示:

a、主节点发送一个Sync动静到从节点,并记着动静发送时刻t1。

b、从端吸取Sync动静,并记下吸取时刻t2。

c、主端通过把t1嵌入到Sync动静中或随后的Follow_Up动静中,将时刻戳t1发送给从端。

d、从端发送Delay_Req动静给主端,并记录发送时刻t3。

e、主端吸取Delay_Req动静并记下吸取时刻t4。

f、主通过把时刻戳t4嵌入Delay_Resp动静发送给从端。

 

image001.jpg

                图1  主从动静互换流程

动静互换竣事后,从端拥有了全部4个时刻戳,用它们可以计较主从端时刻差僻静均动静传输延时。

Tmsd = t2 + Tms – t1

Tsmd = t4 –( Tms + t3)

因为通讯路径的对称性,

路径延时Td = Tmsd = Tsmd = 1/2 *(t2 – t1 + t4 – t3)

主从时差 Tms = 1/2*(t2 – t1 + t4 - t3)


2.2调解从装备时钟的原则

假如时刻差Tms过大,则应用绝对时刻调解,从装备时钟要加上时刻差以调解绝对时刻,使那时刻在而今与主时钟时刻完全同等;

假如时刻差Tms较小,则使从时钟的频率改变某一百分比,从时钟装备必要调解各自的时钟频率,与主时钟频率保持同等。

一样平常来说,PC机可以通过配置体系时刻来调解主从时刻差,但不能调解时钟的频率。为了可以或许调解时钟频率,必要1588时钟芯片或内置1588时钟的PHY芯片支持,如美国NS的DPS83640。体系各时钟对时时,假如没有硬件支持,只能到达亚毫秒级的同步精度;假若有专用硬件支持时,可以到达亚玄妙级的同步精度。


2.3 动静范例

PTP中动静分为变乱动静和通用动静两种。个中,变乱动静在分开和达到一台装备时必需打时标(记录当地时刻),包罗Sync、Delay_Req、Pdelay_Req、Pdelay_Resp;通用动静不必要打时刻戳,包罗Announce、Follow_Up、Delay_Resp、Delay_Resp_Follow_Up、

Management和Signaling。


3、要害数据布局

要害数据布局对付PTP协议的领略和说明至关重要,现列出一些首要的数据布局。


3.1 时刻戳范例,暗示相对付1970年1月1日0时0分0秒的时刻。

struct Timestamp {

    u48 seconds;    //

    u32 nanoseconds;   //纳秒 (<10^9)

    u16 frac_nanoseconds;  //分数纳秒

};


3.2  端口上下文,作为每个端口相干函数的参数。

struct ptp_port_ctx {

    struct ptp_port_ctx *next;  //内部列表指针

    bool port_state_updated;    //端口状态修改符号

    int timer_flags;            //各按时器使能符号

    struct Timestamp announce_timer; // announce报文超时时刻戳

    struct Timestamp sync_timer;        //sync报文发送超时时刻戳

    struct Timestamp delay_req_timer;   //delay_req 报文发送超时时刻戳

    struct Timestamp pdelay_req_timer;  // pdelay_req报文发送超时时刻戳

    struct Timestamp announce_recv_timer; // announce报文吸取超时时刻戳

    bool announce_recv_timer_expired; // announce报文吸取超时符号

    u16 sync_seqid;             //sync报文序号

    u16 delay_req_seqid;        //delay_req 报文序号

    u16 announce_seqid;         // announce 报文序号

    struct Timestamp sync_recv_time;    //sync报文吸取时刻戳

    u64 sync_recv_corr_field;   // sync报文中的校正字段

    struct Timestamp delay_req_send_time; /// delay_req报文发送时刻戳

    struct ForeignMasterDataSetElem *foreign_master_head;

   ClockIdentity current_master;       //当前主时钟ID

    bool unicast_port;          //单播端口符号

    struct PortDataSet port_dataset;    //端口数据集     

};


3.3 PTP报文头名目

struct ptp_header {

    u8 msg_type; // ptp 动静范例 (bits 3-0), 传输相干 (bits 7-4)

    u8 ptp_ver;                 //ptp版本 (bits 3-0)

    u16 msg_len;                //动静长度

    u8 domain_num;              //域号

    u8 res;                     //预留

    u16 flags;                  //符号

    u64 corr_field;             //校正值

    u32 res1;                   //预留

    struct PortIdentity src_port_id;    // 源端口Id

    u16 seq_id;                 //序号

    u8 control;                 //节制

    u8 log_mean_msg_interval;   //对数均匀隔断

} __attribute__ ((packed));


4、首要模块

体系由主控、设置、端口收发、最佳主时钟算法、端口状态机和时钟接口等模块构成。其挪用相关如图2所示。

Catch.jpg

                    图模块挪用相关


4.1 PTP主控模块

1)初始化:分派存储器,各类上下文,各类数据集,包互换、操纵体系和时钟接口等。

然后,轮回举办以下4步:

2)搜查各端口Announce报文接管按时器是否超时

3)运行BMC最佳主时钟算法

4)运行各端口的状态机

5)守候新动静达到或某些按时器超时


4.2 PTP设置模块

首要成果包罗:读取xml名目标设置文件放入响应的数据布局,说明各项设置的正当性,

设置各收集端口。


4.3 PTP端口收发模块

发送模块首要认真建设、封锁新PTP端口,建设SYNC、FOLLOW_UP、ANNOUNCE、DELAY_REQ和DELAY_RESP动静,并由端口发变乱动静包。

吸取模块认真吸取处理赏罚全部的PTP动静,包罗sync、follow_up、announce、delay_req和delay_resp。

操纵体系相干包模块认真底层的收集端口socket(变乱动静和通用动静各占一个socket)的初始化与封锁,PTP帧的发送与吸取。


4.4 PTP最佳主时钟选择算法和端口状态机

责任编辑:精选头条

上一篇:廉租住房杭州市住保房管网保障房专栏

下一篇:没有了

首页 | 资讯 | 关注 | 科技 | 财经 | 汽车 | 房产 | 图片 | 视频 | 全国

Copyright © 2016 精选头条新闻 版权所有 Power by DedeCms 沪ICP备16054515号-7  技术支持:多米互动

电脑版 | 移动版