PTP 1588 timestamps



1588PTP中,带时间戳的数据包表示PTP数据包的第一个位离开设备引脚的时间?

这是否意味着如果必须在数据包中馈送该时间,PTP堆栈应该知道从堆栈中的给定阶段到该PTP数据包将占用设备引脚的时间PTP时间?

这样时间就可以在数据包中预先馈送?

是的,我认为IEEE1588标准确实有一个时间戳点的确切定义。这个点到底在哪里并不那么重要,因为延迟(只要它是恒定的延迟(将被补偿。

通常,当您使用 PTP 时,您有一个硬件时间戳单元 (TSU(,该单元具有可以从软件调整的数字时钟。时间戳可以在 PHY(驱动电线的芯片(或 MAC(缓冲帧直到软件有时间读取帧的 CPU 外围(中实现。

识别 PTP 帧时,通常当前时间戳加上 PTP 序列号和消息类型将存储在单独的内存中,供 CPU 稍后获取。然后,CPU 将使用此信息来调整 TSU 的时钟(通常与从操作系统中看到的正常系统时间不同(。然后,TSU 时钟由应用程序编程的硬件使用,例如为外部信号添加时间戳,或生成精确的脉冲。它通常由软件直接使用,因为这会增加许多通过硬件时间戳避免的不可预测的延迟。

您不能只将时间戳附加到帧中,因为这样 CPU 将无法获取任何传输时间戳。如果软件在 CPU 上执行任何类型的时间戳,PTP 的精度通常会丢失,因为存在许多不确定性(如中断延迟、调度程序延迟、队列等(。

但是,PTP 帧还包含一个校正字段,可以通过硬件组件动态调整,例如,交换机可以将转发延迟直接添加到帧中,动态修改它,并计算新的校验和。

OP:在 PTP 1588 中,带时间戳的数据包表示 PTP 数据包的第一个位离开设备引脚的时间?

。所以它不仅仅是当"第一位.离开",但那个信息位的开始:离开或进入。

除非本标准特定于传输的附件中另有规定,否则事件消息的消息时间戳点应为帧开始 (SOF( 分隔符后第一个符号的开头。 IEEE1588-20087.3.4.1 事件消息时间戳点


OP:这是否意味着如果必须在数据包中馈送该时间,PTP 堆栈应该知道从 PTP 堆栈中的给定阶段到该 PTP 数据包将占用设备引脚的时间? 这样时间就可以在数据包中预先馈送?

这是一种课程方法。

一种当然更准确但复杂的方法是在数据包的后面部分注入时间信息。 任何尾随CRC也需要实时计算。

1588没有具体说明如何实现其目标。

最新更新