在KeyStone 器件实现IEEE1588 时钟方案
摘要
IEEE1588 标准又称为网络测量和控制系统的精确时钟同步协议标准,是 IEEE 标准委员会颁布的为了满足定位服务和无线移动通信系统高精度同步要求的标准。随着 Ethernet 技术的广泛应用,采用 IEEE1588 方式通过以太网实现时钟同步方案在网络上的应用越来越普遍。本文简要介绍 1588 的原理和常见的实现方式,并详细介绍 TI KeyStone 架构上的1588 实现方案。
1 概述
1588 是IEEE 规范定义的网络实时同步标准 [1] 。它提供一种通过网络信息交互以获得精准时钟信息的标准。和在广域网上的NTP 协议比较,1588 最新标准提供高于纳秒级别的时钟精度,可以用来满足要求在一个相对小的空间范围内对时钟同步有严格要求的应用场景,例如基站同步,音视频网桥(AVB),工业控制,产线控制,军事应用等。
KeyStone 架构是TI 推出的高性能多核架构,该架构目前已演进了两代——KeyStone1 和KeyStone2。基于KeyStone 架构,TI 推出多款针对基站和网络应用的多核芯片。
KeyStone1 家族基于40nm 工艺,包括如下器件型号:
· TCI6616,参见文献[2]
· TCI6618,参见文献[3]
· TCI6614 和TCI6612,参见文献[4]和[5]
· TMS320C6678、TMS320C6674、TMS320C6672 等,参见文献[6]
KeyStone2 家族基于28nm 工艺,包括如下器件型号:
· TCI6636K2H,参见文献[7]
· TCI6634K2K,参见文献[8]
· TCI6638K2K,参见文献[9]
· TCI6630K2L (即将发布),参见文献[10]
本文首先介绍IEEE1588 的基本原理,然后以常见的基于PHY 的IEEE1588 实现方案为参考,介绍KeyStone 架构上支持IEEE1588 的硬件功能。同时,本文总结了在KeyStone1 芯片上实现IEEE1588方案需要注意的实现细节,并对KeyStone2 芯片的1588 方案做初步介绍。
2 IEEE1588 时钟同步原理
IEEE1588 使用精准时间协议PTP (Precision Timing Protocol) ,通过端到端的报文交互获得时钟参考信息,矫正本地时钟频率和相位。1588 协议基于两个假设条件:第一,在时钟源设备和受时钟设备之间,网络报文传输时间是对称的。也就是说一个报文从时钟源设备到受时钟设备的传输时间等于报文从受时钟设备到时钟源设备的传输时间相同;第二,在PTP 报文交换过程当中,本地时钟的漂移可以忽略不计。
实际部署时,时钟源发送sync 消息,从设备根据多个sync 消息来计算本地时钟的偏差。当从设备需要同步本地时钟相位的时候,发送delay_req 消息,时钟源发送delay_response,从设备根据获得的4 个时间值来估计相位的偏差。
对于时钟源设备,如果在发送sync 报文时所带的时间戳就是报文发送时采集的准确时间,这种模式叫做single step 模式。如果发送sync 报文的时候所带的时间戳只是一个近似时间,sync 报文发送的准确时间不能在发送sync 报文的时候获得或者实时插入到sync 报文中,时钟源设备需要发一个follow up消息报文,用来传递sync 报文的准确发送时间,这种模式叫做two step 模式。下面介绍的PHY 方案支持时钟源single step,TI 的KeyStone 架构支持时钟源two step 模式。
3 1588 芯片实现方案
根据打时间戳的方式不同,常见的1588 方案分为软件时间戳方案和硬件时间戳方案。软件方案通常是通过软件手段在网络报文的接收中记录PTP 报文接收或发送时间,处理灵活,可以根据应用场景灵活处理PTP 协议报文,支持多种封装格式。但是因为软件中断的时间抖动大,软件时间戳方案的精度较差,在对精度要求不高的情况下使用。硬件方案通过特殊硬件解析PTP 报文,并用硬件记录报文发送或接收时间。硬件方案精度高,但是需要特殊硬件解析 PTP 报文,在特殊场景中,例如 PTP over IPSec,报文经过加密,硬件无法解析PTP 报文。根据硬件方案获取报文收发时间地点不同,硬件方案又分在PHY 上集成的1588 方案和MII 集成的1588 方案等。
下面先简单介绍一下TI 基于PHY 的硬件解决方案作为参考,然后着重介绍KeyStone 架构上的基于MII 和PA 的1588 方案。
3.1 以太网PHY1588 方案 (DP83640)
图2:DP83640 高精度时钟同步硬件模块
DP83640 [11] 是一款百兆网口PHY,集成了1588 功能,对外提供校准过的时钟和PPS 信号,同时还支持同步以太网功能,直接从物理层获得远端时钟。在支持同步以太网的情况下,使用1588 做相位调整,实验表明最终的时钟偏差精度可以达到纳秒以下。
83640 timestamp 模块维护一个本地的1588 计数器,包括32bit 的秒计数和30bit 的纳秒计数。PTP 报文中要求的48bit 秒计数中
- HyperLink编程和性能考量(01-15)
- 基于KeyStone 器件建立鲁棒性系统(10-29)
- 基于多核处理器的弹载嵌入式系统设计研究(02-18)
- Navigator Runtime 最大限度提高多内核效率(05-08)
- 基于KeyStone DSP的多核视频处理技术(09-15)
- KeyStone多核SoC工具套件: 单个平台满足所有需求(09-07)