0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

发送端物理层一致性测试的含义,要素及目标和趋势

电子万花筒 来源:电子万花筒 作者:电子万花筒 2022-09-26 10:36 次阅读

编者注:本文详述了高速串行总线的物理层一致性测试,其实与其说是讲的测试,不如说是告诉工程师如何阅读总线规范,并从中找出规范的要求。全文由远及近,把历史和趋势都介绍的非常好。不仅仅是串行总线,并行总线也是有其明确的设计和测试要求。

前言

物理层的一致性测试作为近10多年来示波器最主要的用途之一,一直是产业界最常提到的名词之一。本文尝试将物理层一致性测试的含义,要素与目的及未来发展趋势做一个简单的探讨和说明。(如无特别说明,本文后续提到的一致性测试均指物理层一致性测试)。

一致性测试的由来和什么是一致性测试?

英文单词 Compliance,广泛用于各行业,用在电子行业顾名思义就是合乎规范。一致性测试作为产业界工程师们最耳熟能详的名词,已经深入人心十几年了。

物理层一致性测试最初发轫于USB2.0 标准,由 USB-IF 协会和业界巨擎Intel 公司推广普及。由于采用 USB2.0 标准的主机(Host)及设备(Device)和集线器(Hub)数量暴增,需要解决各设备之间的物理层和协议层的兼容性和分歧,因此制定了一个统一的标准化的衡量方法来评估各设备的信号质量。一致性测试类似黑盒测试,通常只关注设备外部接口处的信号质量。通过协会认可的一致性测试,可以打上对应的Logo 。今天一致性测试已经广泛被各大标准和协议会组织采纳,比如 HDMI,DisplayPort,USB3.x,SATA/SAS,PCIExpress,ThunderBolt 等。

业界另外一大组织IEEE 相应地后来在 10/100/1000 BaseT 的测试上也引入了一致性测试的概念用于评估各设备的信号质量。事实上无论如何沧海桑田,USB2.0和以太网是最成功和经久不衰的两个接口和通讯标准。即使在近几年 IEEE 发表的最新的200G/400G标准中也定义了类似的测试方法。

那么一致性测试到底是什么呢?其依据是什么?在此,笔者给出一个粗浅的定义:业界广泛接受的用同一把尺子来衡量产品的信号质量是否符合标准的测试的统称,其依据就是各个标准和协会组织定义的一致性测试规范CTS (Compliance Test Specification)。通过对产品进行一致性测试,除了了解产品是否符合标准测试规范外,还可以量化信号的各指标距离CTS 的裕量。如果裕量充分,则意味着可以对产品进行降成本设计,反之则需要重新设计。对于系统厂家,在快速变化的市场和残酷激烈的竞争面前,降低产品成本是生存的法宝。对于上游芯片厂家而言,基于其芯片的系统经过一致性测试如果可以显示出有非常高的裕量,则可以表明其产品的性能,为其下游客户的产品设计和开发提供了充分的信心和裕量以供进行降成本设计。因此一致性测试对于整个行业而言其重要性不言而明。

近年来随着数字技术和芯片集成技术的发展,电子电路调试(Debug)在电子产品开发工作中占比越来越小,而一致性测试作为产品最终出货前的一环日益重要也事实成为示波器最重要的用途。

一致性测试的含义或要素

一致性测试如此重要,那么其含义是什么或者说前面给出的定义同一把尺子包含哪些要素?

1. 统一的标准的测试信号

这个统一的标准的测试信号,英文名称是Compliance Pattern。从 USB2.0 开始 Intel专门针对 PC 系统开发了一个软件发包工具(USBHSETTool)发出各种信号,比如测试眼图的 Test Packet等。发展到今天支持USB3.x 标准的 被测设备在上电后发出 IN包如果未检测ACK 包,即进入 Compliance 测试模式,发出各种 Compliance Pattern. PCIExpress 标准的原理类似。也有特例,比如显示技术HDMI 就不太一样,Sink 设备一般无高速信号回传给源端,因此需要采用外接EDID Emulator 来欺骗源端设备已经外接某一格式的 Sink 设备,源端设备就会开始输出信号。而DisplayPort 标准和 SATA标准通常需要修改寄存器配置测试码型。有的标准还支持通过外接控制器用软件进行自动化配置测试码型以配合一致性测试,比如 Unigraf公司开发的 DP 测试控制器和 Wilder 公司开发的 Thunderbolt 控制器。

为什么会定义统一的测试信号呢?因为采用不同的码型进行测试,得出的测量结果也是不一样的。比如采用 0101 码型和采用00110011码型,得到的 ISI 抖动肯定是有差异的。所以为了统一和规范测量,协会和标准组织定义了标准的测试码型。当前最典型的是USB3.1 标准定义了多种分别用于不同测试项目的码型:

c634b9c2-3d2f-11ed-9e49-dac502259ad0.jpg

表1. USB3.x测试码型表

以上黄色标注的码型CP13-CP16,是 USB3.1 规范里新增加用于测试发送端预/去加重或均衡的码型:

c66133b2-3d2f-11ed-9e49-dac502259ad0.jpg

图1. USB3.1 CP13-CP16 码型说明图

2. 标准的连接方式,通常为夹具和电缆组合

另外为了统一测试环境,协会和标准组织还定义了标准的连接方式,通常采用协会或第三方公司开发的标准夹具和电缆。夹具和电缆通常都是为了方便测试连接而引入的部件,必然会引入测试误差,降低系统的测试裕量。因此在一致性测试过程中,必须要求采用相同的测试工具以标准化测量避免测试差异。在当下主流的各种标准中,除了USB3.x 和 PCIE 夹具依然主要是由 Intel主导的 USB-IF 和 PCI-Sig 协会组织提供外,其它各种标准的夹具 Wilder 公司均可提供。在测试连接上,HDMI标准由于最初需要接入 3 对 Data,1 对CLK 同时进行测试,采用了夹具 连接 SMA 探头再连接到示波器上进行测试,以实现一次完成所有差分项目的测试。

在标准和规范定义中,一般会定义若干测试点,比如USB2.0 规范里定义了 TP1,TP2,TP3,TP4.TP2 是典型的 Host 测试点位置,而 TP3 则是典型的 Device 设备的测试点位置。不同的标准定义的测试点含义不同,比如到 USB3.x标准则主要定义了 TP1 ―发送端测试的远端测试点,而 TP0通常指发送端近端测试点仅在示波器的测试软件里作为 Informative 测试:

c688c968-3d2f-11ed-9e49-dac502259ad0.jpg

图2. USB3.x 测试方法拓扑说明图

近两年在信号速率持续推高到5Gbps 以上后,通常在测试点上还引入了 TPxEQ 测试点,比如DP1.4 标准中,定义的测试点就是TP3_EQ,这个测试点通常表征的是接收系统里经过均衡算法后的测试点,而实际测试中通常是无法探测得到的,需要在示波器上的一致性测试软件里模拟接收端的均衡算法:

c6b6cf16-3d2f-11ed-9e49-dac502259ad0.jpg

图3. DP1.4 测试点定义和拓扑图

3. 标准的测试算法和流程

被测设备发出标准的测试码型并通过夹具和电缆连接到示波器后,示波器作为接收端,模拟芯片接收端的信号处理方法对信号进行测试和分析,除了常规的针对信号的电气特性参数测量外,通常还要执行眼图和抖动分析。本文提到的标准测试算法在早年主要指时钟恢复和眼图与抖动分析方法,比较简单。近几年在高速串行总线系统普遍引入和嵌入和均衡等技术,信号分析算法程度大大提高。

典型的外部接口标准如USB3.x/HDMI2.x/DP1.4 均需要测试远端眼图,在实际连接中采用的是在被测设备近端即发送端用夹具拾取信号然后嵌入标准提供的电缆参数模型模拟真实的传输电缆,此有损电缆参数模型给信号带来很大的衰减,在接收端必须采用均衡算法(CTLE/FFE+DFE)恢复信号。示波器上运行的一致性测试软件则会完全嵌入接收端的标准均衡算法恢复信号然后进行各参数分析和眼图与抖动测试。以 DP1.4标准为例:

c6f37ab0-3d2f-11ed-9e49-dac502259ad0.jpg

图4 DP1.4 测试原理框图

可见,在今天的高速信号测试中,一致性测试软件的地位和作用日益重要。一致性测试软件除了执行标准的测试算法进行分析并给出测试结果外,有时还可以进行一些配置的改变以进行调试性测试,即修改一些测试配置参数和选项,称之为DebugMode。

一致性测试软件在测试完毕后会将所有测试结果整理输出成为报告,在报告中会专门标注每个测试项目的裕量水平,比如下表所示KeThunderbolt N6470B 测试报告,绿色方框内分三列显示测量值,裕量及 Pass/Fail判断:

c77c8698-3d2f-11ed-9e49-dac502259ad0.jpg

表2 Thunderbolt 一致性测试软件结果报告

事实上,今天Server,PC 和笔记本行业的很多接口标准比如PCIE,SATA, USB3.x等,业界主导公司 Intel 还开发了专门的测试软件 Sigtest可以进行数据后分析。在 Sigtest 软件里会针对不同的标准不同的测试点定义一些不同的测试脚本文件(在 Sigtest安装文件夹的 Template 文件夹里)。标准的一致性测试软件中通常也可以调用 Sigtest 程序里的 DLL(动态链接库)文件执行此行业内主导公司的标准算法测试。

由于篇幅和标准的多样性及水平有限,本文这里就不再对测试算法做深入探讨和描述。

4. 影响一致性测试精度的因素

前面我们描述了一致性测试的含义与本质,一致性测试到底在追求什么?归根结底是裕量(Margin)。其本质或者最终的动机就是降成本。对于系统厂家而言,在产品设计完成后如果经过一致性测试,发现信号质量距离 CTS 规范规定的要求有较大的裕量,那就意味着可以对产品进行降成本设计,比如可以减少电容,或者采用更廉价的连接器乃至降低 PCB 层数等,所有的每一个看起来很小的降成本考虑,在规模化的大批量生产时都会被放大,从而带来可观的经济效益。当然降成本设计也不是无底线的,底线就是CTS,所以业界有很多厂家有时会反复对产品进行设计和测试以找到最终的平衡点,示波器在这个过程中就在扮演重要的角色。对于芯片或产业链上游厂家而言,在产品设计完成后也需要进行参考设计并做一致性测试验证以提交报告给下游厂家,以证明其产品的高品质和大裕量并给予其客户足够的信心以进行降成本设计。

测试测量过程必然会带来误差,那么如何将误差降到最小或得到最高的Margin?除了我们前面讨论的 3 点,确保进行正确的一致性测试外,就必须要从仪器设备方面考虑。首先是要选择恰当的示波器,示波器的一些指标如带宽,采样率,底噪和抖动等均会影响一致性测试的裕量。关于带宽是很多人都比较耳熟能详的指标,经常提到的选择正弦波3-5被带宽以及方波 9 倍频率的带宽等,针对一般的高速串行总线数据(NRZ编码)过去主要采用一种速算法:信号频率/2*5,比如 5GBps 的 NRZ 信号,基波频率为2.5GHz,采用2.5GHz*5=12.5GHz 以上即可。另外更加准确的是根据被测信号的上升沿时间计算带宽,通常为20%-80% 上升沿时间,信号频率 Bw=0.4/Tr,推荐的示波器带宽再乘以1.4~1.8 左右的系数即可。带宽不能满足测试要求会直接削减信号的幅度从而直接影响到眼高幅度和上升沿的准确测试。

近年随着技术的发展去嵌和均衡的引入,这一规则也在改变。比如针对PCIE4.0 16.0Gbps,为了防止去嵌过度放大仪器的本底噪声,因此在 PCIE4.0 规范里给出的推荐的 CTLE 和去嵌的截止带宽频率是 20GHz:

c7ae8b5c-3d2f-11ed-9e49-dac502259ad0.png

表3 PCIE4.0 规范推荐的去嵌截止频率点

另一方面针对RX测试时的信号源校准为了确保精确校准误码仪输出的信号的边沿,在规范里推荐了 25GHz 带宽的示波器进行测试:

c7fa0d52-3d2f-11ed-9e49-dac502259ad0.jpg

两者兼顾,在CEM 测试中针对 PCIE4.0 推荐的带宽就是 25GHz:

c810cdf8-3d2f-11ed-9e49-dac502259ad0.jpg

图5 PCIE4.0 Compliance Updates 关于一致性测试带宽说明

采样率是示波器另外一个重要指标。对今天的数字实时示波器而言,采样率必须是示波器带宽的2.5 倍才能保证将信号准确还原。虽然奈奎斯特采样定理指出 2 倍采样可将信号还原,但是奈奎斯特定理针对的信号是正弦波,而今天的被测信号多为高速数字信号

另外两个比较明显的影响比较大的指标是示波器的本底噪声和抖动。示波器的固有抖动对眼图测试时的影响也是类似的,必然会增加抖动类相关项目测试的误差。由于均衡和去嵌均在信号垂直幅度方向对信号进行补偿,叠加在固有抖动上的作用和影响需要进行严格的数学运算定量分析。对于还需要采用探头进行测试的HDMI 接口,探头接入信号时由于其固有的衰减特性在对信号衰减后才会进入示波器的前端和 ADC 采样,示波器会对信号再进行放大同时会放大本底噪声,因此探头的衰减倍数也是影响一致性测试精度和裕量的因素之一。关于示波器的本底噪声对眼图测试的影响可参见参考文献《浅论示波器的低本底噪声对高速眼图测试的意义》。

一致性测试的发展趋势

最后再来谈谈一致性测试的发展趋势。

作为产品出货前的重要环节,一致性测试既然在今天的各种产品研发和制造中扮演着如此重要的作用,必然会带来巨大的工作量和负担。因此从最初的几百MBps 级的 USB2.0 和 Ethernet10/100/1000 BaseT 到今天的几十 Gbps 的高速串行数据标准,一直在朝向更加简单,更加标准化,更加自动化的方向发展,最终的宗旨和目的是为了降低测试复杂程度,提高生产效率。

更加简单,主要体现在测试码型的输出上。如前文讨论,从最初的需要专门的发包软件或者改寄存器输出测试信号到今天的内置BIST(Built in Self-Test Pattern)测试码型,目前在 PCIEXpress和 USB3.x 上均已实现。在 DisplayPort 和Thunderbolt 两种标准上,则有第三方开发的专门的测试码型控制器,比如 Unigraf提供的 DP 控制器和 Wilder 公司提供的Thunderbolt 控制器。

更加标准化,体现在测试连接的定义上。比如在USB3.0 测试方法的定义上,最初定义采用通过协会认可的实物电缆来模拟远端测试点,但是后来由于实物电缆依然存在差异,因此后来采用S参数模型替代实物电缆,如此完全消除了不同连接环境的差异。这一方法今天在 HDMI2.0/DP1.4 也得到了应用。在 PCIE4.0规范里,也采用了类似的方法,不过不是软件 S参数模型而是采用由协会提供的一块硬件的 ISI 夹具板来模拟整个链路,以 CEMAdd-inCard TX 测试为例,专门设计了 ISI 夹具板用于模拟额外的标准 20dB@8GHz损耗:

c8504596-3d2f-11ed-9e49-dac502259ad0.jpg

图6 PCIE4.0 CEM 测试原理框图

c8773d0e-3d2f-11ed-9e49-dac502259ad0.jpg

图7 PCIE4.0 CEM ISI 夹具板

这一硬件 ISI夹具由 PCI-Sig 协会组织出售,具有唯一性和标准性。未来是否会采用软件的S 参数模型方法去实现,当然也不排除这种可能性。

最后一个趋势是,测试自动化的要求日益凸显。由于多种标准和接口纷繁复杂,给消费者带来许多使用上的困扰,同时也加剧了研发设计和测试的复杂性。因此产业界正在努力推广采用唯一的Type-C接口,USB,DP,HDMI,Thunderbolt 等标准均支持这一接口。如下为一个完整的测试方案:

c8ad5f06-3d2f-11ed-9e49-dac502259ad0.jpg

图8 Type-C 接口测试方案框图

如上图,采用N7015A Type-C 夹具和 N7018A 控制器,配合交换矩阵,完成所有连接后,运行在示波器上的N7018A 控制软件会自动设置 Type-C Alt Mode,切换 Type-C 接口为为 USB,DP或TBT 模式,N7018A 控制器可以输出LFPS 信令,配置 DUT 发出USB3.x 标准的测试码型,针对 Thunderbolt 和 DP 则分别需要Wilder 和 Unigraf 控制器配置测试码型。被测信号从 N7015A 夹具连接到交换矩阵,然后再连接到示波器上,示波器会通过网口控制切换交换矩阵切换不同链路的信号到示波器上。如果需要测试不同的被测设备,也只需将设备连接到N7015 夹具上即可。

总结

本文讨论了发送端物理层一致性测试的含义,要素及目标和趋势,囿于篇幅无法就许多细节进行详细说明。除了发送端之外,近几年接收端的一致性测试随着信号速率的飞速提升也开始成为各种标准必须考虑的测试内容,请留意更多论述和分享。

c91668b6-3d2f-11ed-9e49-dac502259ad0.png

审核编辑 :李倩

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 高速串行
    +关注

    关注

    2

    文章

    18

    浏览量

    11289
  • 总线
    +关注

    关注

    10

    文章

    2695

    浏览量

    87156
  • 物理层
    +关注

    关注

    1

    文章

    142

    浏览量

    34205

原文标题:【干货】详述高速串行总线的物理层一致性(Compliance)测试

文章出处:【微信号:ZGDZGCS,微信公众号:电子万花筒】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    DDR一致性测试的操作步骤

    DDR一致性测试的操作步骤  DDR(双数据率)一致性测试是对DDR内存模块进行测试以确保其性能和可靠性。在进行DDR
    的头像 发表于 02-01 16:24 320次阅读

    求助,为什么miniWiggler的JTAG信号映射与设备(TC397)不一致

    )通过引出个JTAG插座,同时兼容JTAG和DAP两种协议。由于上面提到的不一致性,只能通过调整线缆线序来满足这种需求,即当使用DAP协议时,需要将设备(TC397)侧JTAG插座的TMS(DAP1
    发表于 02-01 06:47

    AD9826存偏置电压不为0,并且一致性较差的原因?

    我这边做了批包含AD9826芯片的板卡,实测本底暗信号幅度都是样的,对应到AD9826应该是3000的DN值。但是AD9826采集出来不一致,变化从1500~4800。板卡更换AD9826芯片,暗信号DN值立马跟着改变。请问
    发表于 12-01 06:33

    是德科技验证首个协议一致性测试用例

    是德科技验证了首个采用 NB-IoT 技术的非地面网络 3GPP Rel-17 标准的协议一致性测试用例。 是德科技公司针对采用窄带物联网(NB-IoT)技术的非地面网络,针对第三代合作伙伴计划
    的头像 发表于 11-14 16:01 324次阅读

    ADA4960工作在单输入-差分输出模式下,其输出P、N之间的相位一致性该怎么测试呢?

    ADA4960 工作在单输入-差分输出模式下,其输出P、N之间的相位一致性该怎么测试呢? 我使用矢量网络分析仪进行测试,未用到的端口接50Ω负载,接线方式如下图 原理图如下:增益电
    发表于 11-14 06:53

    MM32F0140 FlexCAN一致性测试 (2)

    MM32F0140 FlexCAN一致性测试 (2)
    的头像 发表于 11-10 18:23 372次阅读
    MM32F0140 FlexCAN<b class='flag-5'>一致性</b><b class='flag-5'>测试</b> (2)

    MM32F0140 FlexCAN一致性测试(1)

    MM32F0140 FlexCAN一致性测试 (1)
    的头像 发表于 11-10 17:50 260次阅读
    MM32F0140 FlexCAN<b class='flag-5'>一致性</b><b class='flag-5'>测试</b>(1)

    浅谈汽车以太网物理层IOP测试

    汽车以太网物理层IOP(Interoperability )测试,即测试被测对象以太网物理层之间的互操作性。用于验证车载以太网PHY能否在有限时间内建立稳定的链路。
    发表于 11-03 12:55 412次阅读
    浅谈汽车以太网<b class='flag-5'>物理层</b>IOP<b class='flag-5'>测试</b>

    EXR示波器系列小故事三,USB2.0高速信号质量一致性测试

    行业,相信大家对它都不陌生。但是如果提到USB2.0的一致性测试,您是否了解如何进行呢? 一般而言,USB2.0接口物理层一致性测试主要分
    的头像 发表于 09-27 07:40 768次阅读
    EXR示波器系列小故事三,USB2.0高速信号质量<b class='flag-5'>一致性</b><b class='flag-5'>测试</b>

    ARM CoreLinK CCN-502高速缓存一致性网络技术参考手册

    CCN-502是基于AMBA 5 CHI架构的可扩展相干互连。它设计用于高端网络和企业计算系统。 CCN-502将互连和一致性功能组合到单个模块中。它提供以下外部接口: •四个完全一致的CHI端口
    发表于 08-02 10:38

    如何进行千兆以太网的一致性测试

    今天我们简单聊一聊,如何进行千兆以太网的Tx一致性测试
    的头像 发表于 07-07 09:32 630次阅读
    如何进行千兆以太网的<b class='flag-5'>一致性</b><b class='flag-5'>测试</b>

    如何使用Vector CANoe与S32k148evb进行LIN一致性测试

    大家好, 我正在使用 Vector CANoe 进行 LIN 一致性(合规测试,我正面临这个问题,那么它的原因应该是什么,解决方案是什么? 在测试用例 PT-CT88,89,9
    发表于 05-09 09:31

    DP83867以太网物理层支持IMX8MP吗?

    我们正致力于为基于 IMX8MPlus 的定制板开发 Windows IOT 支持。我们使用 DP83867 以太网物理层代替 IMX8MPlus 板中使用的 RTL8211F 以太网物理层。 我们
    发表于 05-06 07:34

    示波器进行高速串型总线测试

    以及MIPI的C-PHY D-PHY的测试,需要向我们租赁示波器和相应的探头以及测试夹具。   仪器:23G示波器、USB 3.2物理层一致性测试
    的头像 发表于 05-05 15:23 687次阅读
    示波器进行高速串型总线<b class='flag-5'>测试</b>

    i.MX8M可以调用哪些刷新/无效缓存函数来保证缓存一致性

    的是,我们现在在较小的传输中遇到缓存问题。有时,当缓冲区被复制到用户空间时,64 字节的数据没有被正确的数据 buf 填充为 0xff。我们在次传输中传输了大约 1.1 MBytes,有时些缓存行会得到不正确的数据。 可以调用哪些刷新/无效缓存函数来保证缓存
    发表于 04-27 08:30