1. 一致性的由来


物理层一致性测试最初发轫于 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标准中也定义了类似的测试方法。

2. 什么是一致性测试


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

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

3. 一致性测试的含义或要素


  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 标准定义了多种分别用于不同测试项目的码型:

表 1. USB3.x测试码型表

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

图 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 测试:

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

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

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

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

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

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

图 4 DP1.4 测试原理框图

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

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

表 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:

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

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

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

采样率是示波器另外一个重要指标。对今天的数字实时示波器而言,采样率必须是示波器带宽的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损耗:

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

图 7 PCIE4.0 CEM ISI 夹具板

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

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

图 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 夹具上即可。

物理层一致性(Compliance)测试相关推荐

  1. ORACLE内核管理-一致性读取测试

    测试环境windos 12.2.0.1版本 会话1 更新表T1全部记录 会话2 进行select查询,产生大量的一致性读取. SQL> ALTER SYSTEM FLUSH BUFFER_CAC ...

  2. 测带宽的工具_发送端测试的主力设备 - 实时示波器朝向高带宽高位数发展

    高速数字电路仿真设计与测试技术发展趋势综述(三) 示波器作为时域或数字电路信号测量与分析最重要的仪器设备,本质上是作为相对被测信号或系统的接收机在工作,因此其最主要的根本价值在于真实还原或复现被测信号 ...

  3. 采样频率和带宽的关系_发送端测试的主力设备 - 实时示波器朝向高带宽高位数发展...

    高速数字电路仿真设计与测试技术发展趋势综述(三) 示波器作为时域或数字电路信号测量与分析最重要的仪器设备,本质上是作为相对被测信号或系统的接收机在工作,因此其最主要的根本价值在于真实还原或复现被测信号 ...

  4. BLE 5协议栈-直接测试模式

    文章转载自:http://www.sunyouqun.com/2017/04/page/3/ BLE协议充分考虑了设备的测试问题,在协议栈层面提供了直接测试模式,用于执行BLE设备的RF物理层一致性的 ...

  5. memcached php 测试,php一致性hash性能测试(flexihash/memcache/memcached)

    php一致性hash性能测试(flexihash/memcache/memcached) 发表于:2011-02-09来源:作者:点击数: 标签: php一致性hash 性能测试 (flexihash ...

  6. 《大师说栏目第一期》汽车以太网测试项那么多,到底该测啥呢?

    #<大师说>栏目上线啦# <大师说>栏目是怿星科技2023年推出的深度思考栏目,通过邀请内部专家,针对智能汽车行业发展.技术趋势等输出个性化的观点.每期一位大师,每位一个话题, ...

  7. 实操教程:CANoe在CAN总线测试中的应用

    随着新能源.智能网联等概念发展,车载CAN总线环境变得复杂且紊乱,CAN节点质量不稳定会给主机厂带来极大威胁,所以CAN总线测试已成为保证CAN网络安全运行的重要手段. 而CANoe作为一款支持多种总 ...

  8. java 状态机_基于 RAFT 一致性算法的 Java 实现 SOFAJRaft

    SOFAJRaft 是一个基于 RAFT 一致性算法的生产级高性能 Java 实现,支持 MULTI-RAFT-GROUP,适用于高负载低延迟的场景. 使用 SOFAJRaft 你可以专注于自己的业务 ...

  9. 可载客,可远程驾驶,广州的智能网联道路测试可能出乎你的意料

    虽然比上海.北京.深圳晚了一些,但广州还是跟上了这一波政策步伐.6 月 4 日,广州市交通委员会发布<广州市关于智能网联汽车道路测试有关工作的指导意见(征求意见稿)>(以下称"& ...

最新文章

  1. OpenCL编程详细解析与实例
  2. 学python推荐书籍-零基础学python推荐几本python学习的书籍
  3. 博客美化20150418
  4. bzoj1997 [HNOI2010]平面图判定Plana
  5. Spark _13_二次排序问题
  6. 技术动态 | 知识图谱构建的研究已走入下半场,但大规模落地应用仍需时间
  7. GitHub 上最受欢迎的 5 大 Java 项目
  8. 强烈推荐!FlyAI机器学习数据竞赛启动,丰厚奖金等你来拿
  9. 深入玩转K8S之智能化的业务弹性伸缩和滚动更新操作
  10. 机器学习1/100天-数据预处理
  11. 服务器一定要改默认端口
  12. 南阳理工acm1043高数
  13. PCWorld:流量日趋集中 大公司影响整个互联网
  14. Java读取文件的N种方法
  15. android ddms监听动态资源,Smail动态调试之Android Studio
  16. 将jar文件安装为系统服务
  17. app icon在线生成
  18. 投票男神女神公众号投票系统_男神女神投票 v5.5.21版本
  19. 软件工程师欲发动DDoS攻击白宫网站 抗议特朗普就任总统
  20. 如何评价腾讯发布的区块链游戏《一起来捉妖》?

热门文章

  1. 花花野公子 - 野行之~昆明大理
  2. 深度学习100例-循环神经网络(RNN)实现股票预测第9天之二
  3. ssm项目整合与功能开发(注解开发)
  4. 常见的200,404,503等HTTP状态码大全
  5. 按防电击类型分类的II设备(无保护接地线缆)可免于线对地的浪涌实验
  6. SQL语句--CASE函数写法的简单举例,及应用
  7. java过滤器python是啥_过滤器如何在python中使用softlayer API
  8. textarea 中的换行、空格; 如何处理
  9. C++编程题最常用函数汇总
  10. 使用python uiautomation从钉钉网页版提取公司所有联系人信息