在KeyStone 器件实现IEEE1588 时钟方案
事件,该事件会记录当前 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。
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 同步功能,也为用户的方案设计提供了更多的选择。
- HyperLink编程和性能考量(01-15)
- 基于KeyStone 器件建立鲁棒性系统(10-29)
- 基于多核处理器的弹载嵌入式系统设计研究(02-18)
- Navigator Runtime 最大限度提高多内核效率(05-08)
- 基于KeyStone DSP的多核视频处理技术(09-15)
- KeyStone多核SoC工具套件: 单个平台满足所有需求(09-07)