您的位置 首页 电路

在KeyStone 器材完成IEEE1588 时钟计划

摘要IEEE1588 标准又称为网络测量和控制系统的精确时钟同步协议标准,是 IEEE 标准委员会颁布的为了满足定位服务和无线移动通信系统高精度同步要求的标准。随着 Ethernet 技术的广泛应用

摘要

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 高精度时钟同步硬件模块

图2:DP83640 高精度时钟同步硬件模块

DP83640 [11] 是一款百兆网口PHY,集成了1588 功用,对外供给校准过的时钟和PPS 信号,一起还支撑同步以太网功用,直接从物理层取得远端时钟。在支撑同步以太网的情况下,运用1588 做相位调整,试验标明终究的时钟差错精度能够到达纳秒以下。

83640 timestamp 模块保护一个本地的1588 计数器,包含32bit 的秒计数和30bit 的纳秒计数。PTP 报文中要求的48bit 秒计数中的高16 位需求软件保护。上层软件在发送一个1588 报文的时分,时刻戳中秒计数的高16 位由软件设置的,低32 位设置为0。

报文解析模块用来匹配解析PTP 报文。83640 支撑1588 Annex D E 和Annex F 格局的报文。当PTP 报文送至PHY 时,报文解析硬件检测到这个PTP 报文的时钟,在报文宣布时,把本地的时刻戳写到PTP 报文里边,并修正相关的CRC 和CHKSUM 值。83640 支撑1588 single step 形式的时钟源。在报文接纳方向,相同有报文解析硬件。在解析到PTP 报文今后,接纳报文的准确时刻戳能够刺进在报文里,或许经过操控接口上报。

83640 的1588 时钟模块对外供给频率操控接口,软件经过操控寄存器能够调整输出的时钟频率。1588 时钟模块依据上层软件的装备,对1588 时钟模块的输入时钟信号微调,然后分频输出。时钟调整是经过调整每个时钟周期的时刻来完结的。在每个时钟周期调整的单位是2-32ns。在正常形式下,这个调整机制用来补偿本地时钟和时钟源的距离。在长时刻作业今后发生累积同步差错时,软件能够调整寄存器的值,在必守时刻内,对频率向上或许向下微调,以补偿相位距离。当在相位补偿今后,康复正常频率补偿形式。

软件协议栈经过协议处理今后取得本地的时钟与时钟源的肯守时刻差值,然后经过寄存器调整本地肯守时刻戳。在修正时,软件把肯守时刻差值写入寄存器,然后使能修正。这种办法适用初始同步时单次校对本地肯守时刻戳。如在正常作业中呈现累积相位差错,应该运用前面介绍的微调办法,防止输出时钟颤动。

运用层经过设置83640 的trigger control 模块来操控输出PPS 或许其他同步信号。运用能够设置在timestamp 的哪些详细时刻某个GPIO 管脚能够发生回转。trigger 的输出能够线与并输出到GPIO 管脚,经过线与能够是输出杂乱的周期波形。

83640 计划完结简略,直接输出纠正时钟及相位信号,可是关于杂乱传输场景支撑困难;并且比较不包含IEEE1588 功用的PHY 芯片,83640 的本钱要高出许多。

3.2 KeyStone1 1588 计划

KeyStone 架构是TI 推出的高性能多核架构,现在现已有KeyStone1 和KeyStone2 两种架构。KeyStone 架构中也包含了对IEEE1588 功用的支撑。

KeyStone1 系列芯片的1588 计划包含两个硬件部分:记载时刻戳,发送同步脉冲。KeyStone1 支撑two step 的时刻戳形式,一起也能支撑1588 协议中Annex D E 和Annex F规矩的PTP 报文解析。

关于记载时刻戳,KeyStone1 关于Annex D E 和Annex F 选用不同的硬件来支撑。Annex D E 运用以太网协处理(NetCP)里边的包加速器(PA)来支撑;Annex F 报文运用以太网交换机(GE Switch)里边的CPTS 模块来支撑 [12-13] 。

关于同步信号的输出,KeyStone1 里边需求经过Timer64[14]来完结。

软件经过CPTS 或许PA 获取到时刻戳后,核算需求调整的频率和相位,然后经过装备Timer64 的周期寄存器来更改Timer64 的输出周期,调整输出的相位信息;经过SPI 接口调整外部的VCXO 的输出频率,纠正本地时钟频率。

图3:KeyStone1 IEEE1588 时钟同步计划

3.2.1 Annex D E PTP 报文处理

PA 内部会保护一个48bit 的计时器,该计时器的频率与PA 的频率共同(一般是

350MHz)。因为Annex D E 报文的承载办法为IP/UDP 承载(报文形式为IPv4 和IPv6),当用户收到或许发送一个 IPv4 或 IPv6 的 PTP 报文时,在 PA 侧会记载一个报文接纳(或发送)的时刻戳,这个时刻戳只要32bit(为48bit 中的低32bit)。这个时刻戳保存在用户指定的QMSS 的某个Queue 的描绘符里边。

用户从Queue 中提取出该描绘符:假如是接纳,用户可依据描绘符信息解析报文类型,获取报文内容,一起读取32bit 时刻戳并换算成肯守时刻。假如是发送,用户只需读取时刻戳,转换为1588 48bit 肯守时刻后依照1588 two step 的规矩再做报文发送。

3.2.2 Annex F PTP 报文处理

GE Switch 模块上的CPTS 模块支撑对1588 Annex F(以太网封装)的PTP 报文解析,

支撑VLAN。在CPSW 逻辑匹配到PTP 报文时,会触发一个硬件信号给CPTS 模块用来触发时刻戳获取。

CPTS 的时刻戳模块保护一个32bit 的timer,依据装备,这个timer 能够作业在二分之一CPU 主频上。这个timer 是一个free run timer。软件经过这个timer 换算得到1588 的32bit 纳秒时钟和48bit 秒时钟。因为timer 只要32bit,所以软件需求处理timer 回转事情,用来保护秒信息。CPTS 得到时刻事情今后,会将PTP 报文的音讯类型和Sequence ID 等信息压入EVENT FIFO 中,并触发中止让用户处理。

3.2.3 同步信号的发生

同步信号需求经过Timer64 来发生。因为Timer64,PA 以及CPTS 都是共用KeyStone 外部的VCXO,因而从时刻源上确保各个计时器之间没有累积差错。这样核算出来的各个肯守时刻也是固定不变的。

关于同步信号的时刻戳,有两点需求阐明:

1. KeyStone 芯片的1588 功用不保护肯守时刻戳,时刻信息是从CPTS timer 或许PA 的timer 换算出来。这样也不支撑对1588 报文发送时实时修正,所以在用KeyStone 芯片做时钟源时,芯片只支撑two step 形式。

2. 输出时钟计划需运用KeyStone1 芯片上的守时器的输出。因为CPTS(或PA)上打时刻戳的计数器和守时器运用的时钟尽管是同源,可是相位不同,发生的PPS 时钟时,需求软件参加校对两个计数器,并对记载相应的相位差。详细完结时,需求首要对CPTS(或PA)里边的计数器和选定的Timer64 计数器相差相位进行核算。软件首要操作CPTS(或PA)寄存器,触发一个CPTS 时刻戳记载事情(或许建议一个读取PA 时刻戳寄存器的指令),然后立刻读取timer64 的值。考虑到cache 问题以及硬件总线上的竞赛可能性,软件应在一个循环内屡次履行这个操作,确保履行程序加载到 L1 cache 中,两个时钟之间的相位差应该能够经过循环几回取得的值均匀得到。

3.3 KeyStone2 1588 计划

KeyStone2 架构的TI 芯片对1588 的支撑做了改善和增强。CPTS 模块支撑同步以太网(Annex F)和1588 Annex D E 的报文。在KeyStone2 芯片中,PPS 输出是直接由CPTS逻辑驱动的。软件经过设置相关寄存器设置下一个PPS 输出时timestamp 的值,当计数器跑到设置的值的时分,硬件触发PPS 信号输出。

图4:  KeyStone2 IEEE1588 时钟同步计划

比较KeyStone1 的计划,KeyStone2 的首要长处在于:

1. 计划简略,涉及到的硬件和底层器材更少

KeyStone1 需求PA,CPTS,Timer64,QMSS 等外设和加速器来支撑整套计划,而KeyStone2 只需求CPTS 一个模块就能够支撑Annex D E 和Annex F 的PTP 报文,一起也支撑同步信号的输出;

2. 时刻戳个数削减,降低了核算杂乱度

KeyStone1 里边需求核算包含PA 时刻戳,CPTS 时刻戳以及Timer64 的时刻戳在内的合计3 个时刻戳与PTP 报文的实在时刻的肯守时刻相差;KeyStone2 里边只要CPTS一个时刻戳需求核算;

3. 计划全由硬件逻辑完结,完全防止了软件干涉一起也进步了同步精度

KeyStone 1 的计划因为记载时刻戳的时刻源(PA 和CPTS)与发送同步信号的时刻源(Timer64)是不同的,因而在体系运转的时分需求软件核算不一起间源的肯守时刻差,这样才干在后面的时刻同步中准确调整时刻。这儿有软件读取并核算时刻差的作业,这部分作业不可防止的存在软件差错,尽管能够经过屡次核算取均匀等核算手法缩小差错,但仍是对精度存在必定的影响。KeyStone2 中,记载时刻戳和发送同步脉冲都在CPTS中,因而无需核算两者的时刻差,这样就防止了软件干涉,也进步了同步精度。

4 KeyStone1 1588 计划完结

前文从原理和计划上描绘了KeyStone 中怎么完结1588 计划,本章节以KeyStone1 为例,从技能细节方面来论述1588 完结办法。

以Annex F 的PTP 报文为例,1588 的完结首要分为装备Gbe Switch[3]和核算时刻差错两部分。全体流程如下:当接纳(或发送)一个802.3 的PTP 报文时,Gbe Switch 会主动侦测到PTP 报文的接纳(或发送)时刻,并将该时刻戳记载下来;用户依据记载下来的时刻戳,装备Timer64 的时刻输出信号,获取当时需求调整的时刻差错。

4.1 Gbe Switch 装备

KeyStone1 中的 Gbe Switch 是一个集成了1588 PTP 报文检测的交换机,其间CPTS 用来记载时刻戳,CPSW 用来侦测1588 报文。因而1588 完结办法首要经过装备CPTS 和装备CPSW 来完结。

4.1.1 CPTS 装备

CPTS 是KeyStone1 架构中Gbe Switch 中的一个模块,请参阅文献 [12] 中的2.3.5 章节。该章节详细介绍了CPTS 模块的作业场景和寄存器列表。

CPTS 装备过程如下:

1) 复位CPTS 模块;

CPTS 的复位经过将TS_CONTROL 寄存器中的CPTS_EN 位域写0 来完结。

2) 挑选CPTS 时钟源;

CPTS 时钟源在CPTS_RFTCLK_SEL 寄存器中挑选,有四种时钟源能够挑选:SYSCLK3,SYSCLK4,TIMI0 和TIMI1。其间SYSCLK3 是1/2 CPU 时钟,SYSCLK4是1/3 CPU 时钟,TIMI0 和TIMI1 分别是两个外部时钟输入pin 脚,原本是作为Timer64 的输入时钟,这儿也能够复用为CPTS 的时钟源。

3) 使能CPTS 模块;

CPTS 的使能经过将TS_CONTROL 寄存器中的CPTS_EN 位域写1 来完结。当CPTS使能后,CPTS 内部的时刻记数器就会依据输入时钟的频率开端记数。

4) 使能CPTS 中止;

CPTS 模块中止使能经过装备INT_EABLE 来完结。CPTS 能够发生多种事情的中止,首要有:

· Push 中止:用户手动触发一个 Push 事情,该事情会记载当时 CPTS 的时刻戳,并触发中止;

· 记数器翻转中止:当CPTS 的32bit 记数器从0xFFFFFFFF 变为0x00000000 时会主动触发一个中止;

· 记数器半翻转中止:当CPTS 的32bit 记数器从0x7FFFFFFF 变为0x80000000时会主动触发一个中止;

· 以太网PTP 报文接纳中止:当承受1 个以太网PTP 报文时触发中止;

· 以太网PTP 报文发送中止:当发送1 个以太网PTP 报文时触发中止;

4.1.2 CPSW 的装备

CPSW 是归于Switch 的组成部分,能够经过装备CPSW 让Switch 辨认PTP 报文。CPSW 的报文辨认功用也经过装备寄存器的办法来完结。需求阐明的是,因为Switch 对外有两个接口(port1 和port2),因而对应的寄存器也有两份。其寄存器列表如下图所示:

装备过程如下:

1)装备LTYPE;

每种以太网报文都有一个类型,CPSW 将依据这个类型装备侦测用户需求的报文。依据以太网报文的界说,IEEE1588 的PTP 报文的类型为0x88F7。用户需求将这个类型写入Pn_TS_SEQ_LTYPE 中(n 表明端口号)。

2)装备VLAN ID(假如使能了VLAN 报文的话);

用户能够界说需求的VLAN ID,在Pn_TS_VLAN 寄存器里边装备。

3)使能CPSW 检测模块;

CPSW 的使能包含接纳和发送的使能,需求用户装备Pn_TS_CTL 里边对应的位域。

4.2 时刻差错的核算和调整

Gbe Switch 完结对PTP 报文的时刻戳记载之后,用户需求依据时刻戳核算当时需求调整的时刻数。因为实在体系时刻是依据Timer64 的时刻戳,因而用户在核算CPTS 的时刻戳之后需求换算到实在体系时刻。

为了便利阐明和核算,鄙人面的装备中,假定CPU 时钟为1GHz,CPTS 选用1/3 CPU 时钟,Timer64 的守时周期为1ms。

360截图20150306163140125.jpg

4.3 KeyStone1 1588 计划的阐明

KeyStone1 的1588 计划首要依托装备Gbe Switch 和软件换算时刻戳两部分来完结。需求着重的是,在软件换算时刻的部分,这涉及到详细的1588 时刻戳核算算法。依据运用的需求和精度需求,许多算法往往比这儿介绍的更杂乱,可是原理上来说都是相同的。这也是KeyStone架构运用软件完结 1588 部分的一个优势,用户能够灵敏运用软件功用来进步 1588 的同步精度。

5 小结

从现在来看,IEEE1588v2 规范现已越来越多的运用在通讯网络中。因为IEEE1588v2 规范也还在不断的完善中,因而从技能视点动身,了解1588 同步原理,了解并规划不同场景中的1588 计划,不论是从芯片规划视点或许基站全体解决计划视点来说,都是十分必要的。

本文扼要的介绍了IEEE1588 的原理,并分类剖析了1588 同步功用在PHY 以及KeyStone1 和KeyStone2 芯片上的运用计划。以太网PHY 完结1588 同步的精度最高,可是本钱相对比较贵重;德州仪器的KeyStone 架构上集成了支撑1588 的Switch,用户能够经过KeyStone 架构灵敏完结1588 同步功用,也为用户的计划规划供给了更多的挑选。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/fangan/dianlu/292696.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部