搞硬件的我们为什么要测信号

搞硬件的我们为什么要测信号

  • 信号一般测些啥
  • 为什么要测这些
  • 信号测试的实际情况
  • 如何避免测出来的波形很挫,影响判断

作为搞硬件的,电脑前,会个Cadence、DxDesigner啥的是基本的(画起图来感觉自己就是个艺术家);面对硬邦邦的板子,会个示波器、万用表、烙铁也是基本的。贴合主题,这里主要说说用示波器测试信号,因为理论与现实的差距,测出来的信号一般千奇百怪,虽然说信号测试也仅供参考,但是搞硬件我们得严谨,起码在我们认知范围内尽量把信号的状态还原出来(对,我觉得我的认知还没有升华到下一层次,不然这种问题还不是分分钟解决,还要思考啥)。

信号一般测些啥

一般就两类:

  1. 信号质量:主要是Vih、Vil、overshoot、undershoot、单调性,对于时钟信号一般还有频率、占空比、rise & fall、持续时间等;
  2. 信号时序:主要是建立与保持时间,具体还看器件或者协议的要求;

为什么要测这些

  1. 对于信号质量,拿vih(判决为1的最低输入高电平)来打比方,当信号电平低于Vih的时候,IC它就不认为你输入的是高电平,就好比鼠标失灵直接送塔;
  2. 对于信号时序,拿建立时间来说,假定IC为时钟上升沿采样,信号从0变为1,那么在时钟上升沿到来之前,信号必须要提前变为1,IC才可能采集到这个1信号,不然IC就认为信号没有变化,还是0,类比天赋没保存就进了游戏。

信号测试的实际情况

既然如此,那我们就需要确认一下看看我们信号的质量与时序是否是达标的。

首先,得先去看看器件手册(datasheet),我们得知道这个器件对信号有啥要求,客户需求我们得了解,有些客户不清楚自己的需求,那咋办呢?不能不搞了,那就按照业界标准来一套吧(协议),生意还得做呀。

  • 然后我们一般通过这些材料看到的波形是这样的(借一张自己之前画的图,https://blog.csdn.net/Nightya/article/details/105454785):
    搞硬件的我们为什么要测信号_第1张图片
    漂亮、方正、大气。

  • 实际测出来是这样的(还是借一张自己之前画的图,家里没有示波器,只能画了):
    搞硬件的我们为什么要测信号_第2张图片
    感觉坨坨的,后面那个小板凳是什么,书里好像没有呀。

  • 测多了就会发现,上面这个算是漂亮的了:
    搞硬件的我们为什么要测信号_第3张图片
    我觉得画的还不够好,不够丑。

来看看这第三个波形,都有些啥:上升下降沿不单调,过冲下冲,回冲,这还仅仅是信号质量。

如何避免测出来的波形很挫,影响判断

这里要澄清一点,是问题,那就是问题,这是无法避免的,如果发现不管如何变更测试方法测出来的波形还是这样。嗯,能医就医,医不了那就只能尽量想办法减轻影响,看看是否接受风险,接受的话那就加大样本量,加长测试时间,接受不了那就改板吧。

  1. 校准
    测之前对示波器和探头进行校准,动作必须,不校准的话可能有啥影响?比如下面:
    搞硬件的我们为什么要测信号_第4张图片

  2. 带宽
    这里带宽不仅仅指信号频率,还要关注它的上升与下降时间,有些频率很低的信号但是上升和下降沿很陡(数字信号边沿高频分量占比很大),低速信号有时候也会有很严重的反射就是这个情况。一般选择测量探头&示波器带宽大于信号频率(或边沿变化频率)的5倍(经验值,以后有时间再整理)。

  3. 无源和有源探头
    现在无源探头带宽也能做得比较大了,但是同样是1GHz的有源探头和无源探头,测出来的波形依旧存在差别。
    无源探头:测信号幅值比较准,因为阻抗大,对链路的影响小;由于寄生电容比较大,所以测出来的信号边沿会更缓一点;一般无源探头会自带接地线,比较长,测量的时候容易引入干扰,如下:
    搞硬件的我们为什么要测信号_第5张图片
    有源探头:一般现在好的有源探头测幅值也还算准的(没具体研究过,一般来说测出来的幅值会偏低,但是确实有些有源探头不会有这种情况,可能是探头本身内部存在补偿,又或者示波器内部有补偿);寄生电容小,对于信号边沿的还原比较好;地环路小,干扰小。

  4. 源端与末端
    信号分别在源端和末端测量会有啥差别?一般情况如下所示:
    搞硬件的我们为什么要测信号_第6张图片
    所以在测量信号时序的时候我们会强调在信号末端测量。对于区分读写的信号,会经常遇到一个问题,参考时钟是由主器件发出来的,但是在读操作的时候,数据是从从器件发出来的,这种时候该如何测量。
    1)都在从器件端测量,时钟信号是准确的,但是数据会有反射,并且时钟信号是从主器件发送到从器件后才被探头捕获到,存在链路延时,而数据信号是从器件发出后直接被捕获,没有链路延时。这会导致数据时序偏早,而时钟的时序偏晚,时序测不准;
    2)都在主器件端测量,从链路延时的角度来看,这种测法是OK的,但是由于时钟信号是在源端测量,所以时钟信号会受到反射的影响,会导致示波器卡不准,一般选取回勾出现前的边沿作为时序测量点,但是实际并不太好操作(波形会很挫);
    3)其实如果裕量比较大的话,第二种方法也就差不多了,但是有时候确实想要更精确的数据,该怎么处理,这个时候可以用skew,将传输线延时给测出来,然后信号我分别就在末端测量,再把传输线延时给加上或减去就好了。

你可能感兴趣的:(01,低速,电脑硬件,单元测试,经验分享)