Background
对于整个自动驾驶系统的时钟同步来说,因为各个传感器时钟源都有钟漂,而且每个时钟源钟漂不同,所以即使把各个传感器时间戳在初始时刻对齐,运行一段时间之后,之前对齐的结果仍会偏离。因此,为了统一各个传感器或芯片的时钟,需进行时间同步。同步过程需要设置相应的同步时钟源。
一个时钟同步网络中包括GPS时钟源,grandmaster从时钟源获得时间信息之后给bridge或endpoint进行授时,其中bridge也可以通过PCIe/ETH网络给更多的endpoint进行授时。
PCIe ePTM Protocol
在PCIe拓扑结构中包含4种PTM节点
- PTM Requester:PTM的消费者,通常是EP或USP
- PTM Responder:PTM的生产者,通常是RP或switch中的Port
- Time Source:一个local clock和一个PTM Responder
- PTM Root:某个PTM Hierarchy的Master Time source
某个PCIe Link上的两端通过request和response握手协议完成时间交换。
USP作为PTM Requester发送PTM Request给DSP,DSP作为Responder可以获取PTM Master Time的时间信息并返回Response/ResponseD。
其中64bit的PTM Master Time filed包含本次对话收到PTM Request Msg的时间;32bit Propagation Delay包含上一轮对话中发送Response和收到Request之间的时间间隔。
这样经过至少两轮对话之后,Requester就可以计算出link delay
PTM context=((t4-t1)-(t3-t2))/2
并校正自己的本地时间 t1’=t2’-PTM context