首页 > 技术知识 > 正文

前言数据包介绍参考时钟要求参考文章

前言

上一篇文章:高速串行总线设计基础(五)揭秘SERDES高速面纱之多相数据提取电路与线路编码方案 这篇文章介绍了提出了问题,关于SERDES或者Transceiver为什么能跑这么高的速度?当然有它的独特技术特点,上篇文章中介绍了两种技术,一是多相提取技术,另一种是线路编码方案。本篇文章继续这个话题。

数据包介绍

熟悉Xilinx的Transceiver的工程师一定知道,Xilinx有很多基于Transceiver的高速串行协议,例如aurora,srio,pcie等,它们都有自己的数据包,当然自己还可以自定义协议,例如跑Transceiver裸核时候就可以自由定义协议,协议也定义数据包等,只要通信双方都按照这个协议走,就没有任何问题。 下面给出数据包的定义:数据包即定义明确的字节集合,由头,数据和尾部组成。

一些设计人员认为,除了局域网(LAN)(local area network)以外,通过数据包发送数据都是一种浪费。真的是这样吗?我们接着看。

请注意,定义中没有关于源地址和目标地址,CRC,最小长度或开放系统互连(OSI)(Open Systems Interconnection)协议层的内容。数据包只是具有定义的起点和终点的数据结构。虽然LAN数据包通常具有许多这些特征,但还有许多其他更简单的数据包用法。

数据包和吉比特串行接口有什么联系呢?

大多数在千兆串行链路上传输的数据都嵌入在某种数据包中。SERDES需要一种方法将传入的数据流对齐成字,这是非常自然的。如果系统需要时钟校正,就必须发送这种特殊的位序列或逗号。逗号可以是一个帧的开始或结束的自然标记。这在上一节中:高速串行总线设计基础(五)揭秘SERDES高速面纱之多相数据提取电路与线路编码方案

如果需要时钟校正,时钟校正序列通常是理想的字符。在添加几个有序集来表示数据包的结束或开始,以及一个有序集来表示特殊类型的数据包后,我们就有了一个简单而强大的传输路径。

空闲符号或序列是另一个重要的数据包概念。每当没有信息要发送时,就会发送这个符号。连续传输数据可以确保链路保持对齐,PLL保持恢复的时钟锁定。下图展示了一些来自不同标准的样本数据包格式。

高速串行总线设计基础(六)揭秘SERDES高速面纱之数据包与参考时钟要求数据包格式举例

注:Preamble为报文头,SF类似,EF为文件尾部,数据包其他部分具体看数据包定义格式或者数据包协议。

参考时钟要求

千兆位收发器(MGT)的输入或参考时钟具有非常严格的规格。它包括严格的频率要求,通常以频率误差的百万分之几(PPM)指定。它还将有严格的抖动要求,以时间单位(皮秒)或单位间隔(UI)来定义。 下面介绍这几个专业术语:

PPM( Parts per million):百万分之一;一种描述很小比例的方法。 PPM的应用很广泛,在其他领域也有应用,例如:

one inch in 16 miles,one second in 11.5 days,one minute in two years.

它是一个很小比例的概念。

UI(Unit intervals):单位间隔;与符号的时间长度相同,即0.2 UI =符号时间的20%。 例如测量眼图的时候,就常用到UI的概念,如下图的中间一个眼的位置就是一个UI,一个符号的长度。

高速串行总线设计基础(六)揭秘SERDES高速面纱之数据包与参考时钟要求1眼图示例

Jitter:抖动,理想过渡位置的变化。通俗点说: 时钟抖动是时钟源和时钟信号环境的一种特性。它可以定义为 “时钟边缘与理想位置的偏差”。时钟抖动通常由时钟发生器电路、噪声、电源变化、附近电路的干扰等引起。抖动是导致时序闭合所规定的设计裕度的一个因素。

高速串行总线设计基础(六)揭秘SERDES高速面纱之数据包与参考时钟要求2jitter定义

可参考:【 FPGA 】时钟抖动浅记

Clock Jitter

这样严格的要求使得PLL和时钟提取电路能够工作。这往往需要在使用MGT的系统中的每块印刷电路板(PCB)上安装一个精确的晶体振荡器。这些晶体振荡器比大多数用于数字系统的晶体振荡器高一档,成本会更高。

在很多情况下,时钟生成芯片和PLL的抖动太多,无法使用,因此需要选择一种低抖动的晶体振荡器。

高速串行总线设计基础(六)揭秘SERDES高速面纱之数据包与参考时钟要求3低抖动石英振荡器

参考文章

Eye Diagram

What does ppm mean?

【 FPGA 】时钟抖动浅记

Clock Jitter

Jitter

Tutorial: Clock jitter measurement and effects

猜你喜欢