xiaoxiaoyuwts的个人空间 https://blog.eetop.cn/72471 [收藏] [复制] [分享] [RSS]

空间首页 动态 记录 日志 相册 主题 分享 留言板 个人资料

日志

1588频率同步实现

已有 4367 次阅读| 2009-11-4 17:34 |个人分类:排兵布阵

 1、1588 core收到Sync报文后,提取t1,t2时间戳,并计算t2-t1差值,送给适配逻辑处理
2、适配逻辑对收到的多组t2-t1差值做最小值提取处理
3、软件算法每秒读取一次t2-t1最小值,进行系列滤波运算后,判断出本地时钟频率与MASTER之间的差异,定期调整本地晶振频率

点赞

全部作者的其他最新日志

发表评论 评论 (3 个评论)

回复 xiaoxiaoyuwts 2009-11-27 13:58
9558_8844_0200_0725397 父工
回复 xiaoxiaoyuwts 2009-12-2 11:24
时间同步实现: 1、在完成与MASTER频率同步的基础之上,软件算法读取t1~t4时间戳,计算出时间偏差offset,调整主RTC,完成时间初始同步 2、在系统运行过程中,软件算法不断周期性获取Min(t2-t1)和offset值,检测频率和相位,通过调整频率来调整相位。
回复 xiaoxiaoyuwts 2009-12-2 11:35
一个slave时钟和一个master普通时钟或边界时钟的时间误差定义为:<offsetFromMaster> = <Time on the slave clock> - <Time on the master clock>,这两个时间都是在同一时刻测量的。 slave通过下面的方法计算<offsetFromMaster>: a) 收到Sync报文时,slave应该产生一个时间戳<syncEventIngressTimestamp>。 b) 如果这个Sync报文的twoStepFlag位为False,意味着不再会接收到Follow_Up报文,那么: <offsetFromMaster> = <syncEventIngressTimestamp> - <originTimestamp> - <meanPathDelay> - Sync报文的correctionField。 c) 如果这个Sync报文的twoStepFlag位为TRUE,意味着Follow_Up报文会被接收到,那么: <offsetFromMaster> = <syncEventIngressTimestamp> - <preciseOriginTimestamp> - <meanPathDelay> - Sync报文的correctionField - Follow_Up报文的correctionField。 其中: a) <originTimestamp>应该是接收到的Sync报文的originTimestamp字段 b) <preciseOriginTimestamp> 应该是接收到的Follow_Up报文的preciseOriginTimestamp字段。 如果端口被配置成使用延迟请求-响应机制,那么: a) master准备并产生Sync报文,如果这个节点是一个two-step时钟,那它也会准备和产生一个Follow_Up报文。 b) slave节点将: 1) 接收到Sync报文的时候,生成t2时间戳。 2) 如果需要asymmetry更正,修改接收到的Sync报文的correctionField字段。 3) 如果需要发送一个Delay_Req报文 i) 准备一个Delay_Req报文,其中correctionField设为0。originTimestamp设置为0,或者是Delay_Req报文的发出时间的估计值(误差小于1秒)。 ii) 如果需要asymmetry更正,修改correctionField字段。 iii) 发送Deley_Req报文,并产生时间戳t3。 c) 接收到Delay_Req报文时,master节点会 1) 产生时间戳t4。 2) 准备Delay_Resp报文。 3) 从Delay_Req报文中把sequenceId拷贝到Delay_Resp的sequenceId中 4) 从Delay_Req报文中把sourcePortIdentity拷贝到Delay_Resp的requestingPortIdentity中 5) 从Delay_Req报文中把domainNumber拷贝到Delay_Resp的domainNumber中 6) 设置Delay_Resp的correctionField为0 7) 将Delay_Req报文中的correctionField加入到Delay_Resp报文中的correctionField中。 8) 设置Delay_Resp报文中的receiveTimestamp为t4时刻的秒和纳秒值 9) 从Delay_Resp中的correctionField值中减去任何纳秒的小数值 10) 发出Delay_Resp报文 d) 即收到Delay_Resp报文时,slave节点会: 1) 如果接收到的Sync报文指明了不会有Follow_Up报文,那<meanPathDelay>可以计算为: <meanPathDelay> = [(t2 - t3) + (Delay_Resp报文的receiveTimestamp - Sync报文的originTimestamp) - Sync报文的correctionField - Delay_Resp报文的correctionField]/2 2) 如果接收到的Sync报文指明了还会有Follow_Up报文,那<meanPathDelay>可以计算为: <meanPathDelay> = [(t2 - t3) + (DelayResp报文的receiveTimestamp - Follow_Up报文的preciseOriginTimestamp) - Sync报文的correctionField - Follow_Up报文的correctionField - Delay_Resp报文的correctionField]/2 如果端口被配置成使用peer延迟机制,那么: 链路延迟测量应该是由实现peer延迟机制的每个端口独立完成的,意味着链路延迟能够为一条链路的两端都所知道,这样在网络重构的时候,链路长度更正能够立即完成。

facelist

您需要登录后才可以评论 登录 | 注册

  • 关注TA
  • 加好友
  • 联系TA
  • 0

    周排名
  • 0

    月排名
  • 0

    总排名
  • 0

    关注
  • 2

    粉丝
  • 0

    好友
  • 0

    获赞
  • 85

    评论
  • 611

    访问数
关闭

站长推荐 上一条 /2 下一条


小黑屋| 手机版| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-12-23 01:12 , Processed in 0.023662 second(s), 15 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
返回顶部