超越边沿触发 如何使用示波器触发进行调试
2008-12-16 来源:52RD 我爱研发网
简介
示波器是电气工程师的基础仪器,但我经常发现有些工程师不能有效地使用其触发功能。触发常被认为非常复杂,现在存在这样一种趋势,即如果有任何问题,直接到实验室去求助专家来帮助设置触发。本文的目的在于帮助工程师了解触发的基本原理以及有效使用触发的策略。
什么是触发?
任何示波器的存储器都是有限的,因此所有示波器都必须使用触发。触发是示波器应该发现的用户感兴趣的事件。换句话说,它是用户想要在波形中寻找的东西。触发可以是一个事件(即波形中的问题),但不是所有的触发都是事件。触发实例包括边沿触发、毛刺信号触发和数字码型触发。
示波器必须使用触发的原因在于其存储器的容量有限。例如,Agilent90000系列示波器具有20亿采样的存储器深度。但是,即便拥有如此大容量的存储器,示波器仍需要一些事件来区分哪20亿个采样需要显示给用户。尽管20亿的采样听起来似乎非常庞大,但这仍不足以确保示波器存储器能够捕获到感兴趣的事件。
示波器的存储器可视为一个传送带。无论什么时候进行新的采样,采样都会存储到存储器中。存储器存满时,最旧的采样就会被删除,以便保存最新采样。当触发事件发生时,示波器就会捕获足够的采样,以将触发事件存储在存储器要求的位置(通常是在中间),然后将这些数据显示给用户。
重复采样模式与单次采样模式
过去,最常见的示波器运行模式是重复模式。这意味着一旦示波器触发并将数据显示给用户,它将立即开始搜索下一个触发事件。这就是示波器波形更新如此频繁的原因。
任何一款示波器要想进行触发并将数据显示给用户,都需要时间来重新准备触发。这个时间也称为“挂起时间”。在挂起时间内,示波器不能捕获任何波形。因此,挂起时间越短,错失的事件越少。例如,如果有一个毛刺信号恰巧在挂起时间内出现,那么它将不能在示波器的显示屏上显示。如果这个毛刺信号是一个罕见事件,则用户可能认为波形中没有毛刺信号,而事实上它却是存在的。因此,示波器的挂起时间越短,错失波形中重要事件的几率就越低。
表述此概念的另一种方法是“更新速率”,即每秒钟的波形数量。例如,Agilent7000系列示波器具有100000波形/秒的更新速率。
单次采样模式用于查找单一触发,而不会继续采集更多波形。因此,当用户想要查找某个事件,检查导致该事件的原因和事件发生后所出现的问题时,便可使用单次采样模式。这种模式对于分析不重复并且每次操作都会发生变化的波形尤其重要。
自动模式与触发模式
如果没有发生触发事件,将会出现什么情况呢?这一个非常好的问题。在这种情况下,屏幕上的波形将不会更新。这不是我们想要的情况,因为用户可能不知道如何改变触发来获得屏幕上的波形。例如,如果探头滑落,示波器将可能停止触发。不过,如果屏幕不能更新,信号丢失将很不明显。
为了解决这个问题,示波器拥有一个称为“自动(Auto)”触发的模式。在此模式下,如果在一段时间内无法找到触发,示波器将自动触发以更新屏幕。通常,示波器上有一些指示器(例如前面板上的LED)来指示上一个触发是真实触发还是自动触发。这样,如果用户看到“自动(Auto)”指示器,他们就会知道所设置的触发没有发生。例如,如果用户设置的触发为毛刺信号,他们将会知道示波器没有检测出毛刺信号。
然而,当您回顾上一段的内容时就会发现,当自动触发发生时,它就意味着每次触发之后,示波器进行重新准备时具有挂起时间。为了完全避免这一时间,示波器应改为“触发(triggered)”模式。(这在某些示波器中称为“正常”模式)。在“触发(triggered)”模式中,除非发现触发事件,否则示波器将不会进行触发。因此,如果用户将触发模式设置为毛刺信号并且示波器一直没有进行触发,那么用户就可以确信毛刺信号没有发生(至少示波器能够检测出)。
普通触发模式
边沿触发
边沿触发是所有触发模式中最普通的一种触发。它的使用如此频繁的原因在于,所有波形都有边沿,只要触发电平设置正确,这种触发模式就能正常工作。同时,这一优势也是其最大的劣势,因为它能对大多数波形非常频繁地进行触发,所以它和自动触发(Auto Trigger)非常相似。
毛刺信号/脉冲宽度/超时触发
虽然许多问题只需使用边沿触发便可以轻松找出,但是有时工程师必须使用更复杂的触发。其中,最简单的触发便是脉冲触发。脉冲触发被定义为一段高于(正脉冲)或者低于(负脉冲)某个阈值电平的时间。最常见的脉冲触发是毛刺触发,它常用于对小于最小宽度的脉冲进行触发。这是一个违反触发的实例,因为示波器无论在何时触发都会指示出一个问题。
具有最大时间值的脉宽触发的一个令人困惑的方面是发生触发的时间。在某些情况下,用户可能想要在超过时间值时示波器立即进行触发。这称为“超时”触发,因为示波器并不需求一个完整的脉冲来进行触发。换句话说,即使不发生第二个跳变,超时触发仍将进行。
相反,我们所说的“脉冲”触发只有等到第二个跳变出现后才会进行触发。也就是说,对于正脉冲来说,即使超过最大时间,也要一直等到下降沿才会发生触发。这意味着时间限制点之后的触发可以良好地进行。因此,超时触发的使用率比脉宽触发高得多。由于这并不直观,所以我们为用户提供了两种选择,用户可以使用超时触发,也可以使用脉冲末端触发。如果选择超时选项,则此时的脉宽触发将与超时触发完全相同。
有关脉宽触发的另一个令人费解的地方是它们并不全是违反触发。虽然毛刺信号很明显是违反触发,但长脉冲也可能是一个正常事件。因此,这取决于是否规定了脉冲宽度为违反触发的一个条件。
上升时间和下降时间
违反触发的下一种类型是上升时间触发和下降时间触发。它们可用于查找上升或下降太快或太慢的边沿。此类触发由两个触发电平(逻辑高和逻辑低)和信号在这两个电平之间的最长时间和最短时间来定义。
上升时间触发和下降时间触发的一个令人困惑的方面是触发电压阈值并不依赖于自动测量电压阈值。例如,测量出信号的上升时间并且期望上升时间触发能够在同一时间值上进行触发本来是非常正常的。但在许多情况下,测量阈值默认为信号电压范围的10% 和 90%。因为触发阈值是独立的,所以用户很容易错误地设置不同的阈值,例如 5% 和 95%。在这种情况下,用户可能会感到很困惑,因为测量显示的是上升时间值,但是使用相同的时间值却不能使示波器进行触发。
建立触发与保持触发
另一类违反触发是建立触发和保持触发。当然,这要求使用数据信号和时钟信号。这种触发还要求规定建立时间、保持时间或者两者都要规定。当检测建立时间和保持时间违反触发条件时,示波器将进行触发。
矮脉冲触发
毛刺信号是一个非常窄的脉冲,而矮脉冲是一个非常矮的脉冲。矮脉冲是由三个电压电平来定义的。如果一个信号通过两个阈值(同一方向),然后又再次通过其中一个阈值而未通过第三个阈值,那么将出现矮脉冲触发。例如,如果三个阈值为 1V、2V 和 3V,信号从 0V 向 2.3V 前进,然后返回到 0V,这就是一个矮脉冲,因为它上升时通过 1V、2V ,然后下降时又通过 2V。
这个触发最令人困惑的地方是三个阈值电平的定义。通常,阈值电平定义为 10%、50% 和 90% 时恰好合适,但它不是直观的,为什么需要三个阈值电平,而不是两个阈值电平呢?
窗口触发
窗口触发(Window)是一种高级触发,它使用两个电压阈值和两个时间值。窗口触发即是当信号进入或退出某个电压范围时进行触发。另外,时间也可以是一个范围,因此可以指定信号在某个电压范围之内(或之外)的最短时间和最长时间作为触发条件。这为进行各种不同的触发提供了极大的灵活性。
序列触发
序列触发具有在示波器进行触发之前,首先查找一个事件,然后搜索另一个事件的能力。例如,序列触发使用户可以查找一个信号边沿,该信号边沿后紧随另一个信号脉冲。
图1. 序列触发
所示的是 Agilent 90000 示波器的序列触发实例。 注意,图中所示的即是通道 2 上的脉冲如何紧随通道 1 上的边沿。
图1:序列触发。
软件触发
示波器中最常见的触发是硬件触发。在这种情况下,因为对触发进行实时处理,所以即使是最罕见的触发事件也可以被捕获。然而,一些事件非常复杂,以至于硬件触发无法捕获。为了触发这些事件,需要将软件触发(例如 Agilent Infiniuum 示波器上的 InfiniiScan)与硬件触发一起使用。当进行硬件触发时,软件触发将搜索捕获到的事件迹线。如果找到此迹线,那么示波器就会进行触发。然而,尽管此类触发功能很强大,但无法进行实时触发。对于频繁发生的事件来说,这没有什么问题,但对于罕见事件而言,这却是一个巨大的缺陷。在这种情况下,软件触发将可能错失大多数罕见事件实例,而示波器可能需要很长时间才能触发。即使如此,让示波器自动查找事件还是要好得多,尽管它要花费几分钟的时间,但这总比找不到任何事件要强。
触发策略
进行触发以显示波形
迄今为止,这是最简单的案例,因为它使用的是自动触发。设置此触发的最简单的方法是轻松按下示波器前面板上的“Autoscale”按钮。这是显示示波器波形的最快速的方法。在许多情况下,这已足以使用户了解之后出现的情况。
进行触发以调试模拟问题
如果简单的触发不能够揭示问题,下一种方法是寻找简单的模拟问题。这里尝试的主要触发模式是毛刺信号、矮脉冲、上升时间和下降时间。这些模式可揭示出大多数常见的模拟问题。另外,用户还可以使用建立和保持触发,以确保建立和保持触发不是问题的根源。
在这种情况下,示波器应使用标准可重复模式来运行。(对于大多数示波器来说,这简称为“Run”)。
某些模拟问题(例如非单调边沿)只有使用软件触发才能够检测出来。在这种情况下,请确保将硬件触发和软件触发设置为相同的边沿和斜率。这是一个很常见的问题,它使用户误以为没有触发发生,实际上是由于硬件触发设置不正确造成的。
如果您注意到波形在示波器上显示时间非常短,您可以使用软件触发中的区域触发对其进行触发。区域触发允许我们将一部分格子线指定为“必须交叉”的区域,只有波形穿过那个区域,示波器才会进行触发。或者,此区域也可以设置为“不得交叉”,以便过滤出您不想看到的波形。
在这种情况下,将示波器设置为触发模式是非常明智的,如此一来,在没有发现事件时,示波器就不会进行触发。这也意味着这个特殊问题并未发生,并且可在问题的根源中排除这个问题。因此,这是一个排除问题的过程。
进行触发以调试软件或 FPGA 问题
在前两种情况下,示波器是根据某个特定的模拟问题进行触发。但是,在许多情况(例如软件或 FPGA 问题)下,我们的目标并不是对问题进行触发,而仅仅是想通过对波形的跟踪来尝试着找出逻辑问题,而不是模拟问题。
在这种情况下,将示波器设置为使用深存储器和单次模式运行非常重要。(对于安捷伦示波器来说,这是“Single”按钮,而非“Run”按钮)。深存储器为您提供最大数量的波形,这些波形还可以为您提供捕获问题的最佳时机。对于大多数示波器来说,无论“Time per Division”旋钮何时改变,存储器深度都可进行自动设置,此外,存储器深度也可手动设置。对于 Agilent Infiniium 示波器来说,此设置在“Acquisition”菜单中完成。
触发事件应设置为在感兴趣区域的某个地方发生的已知事件。最常见的选项是脉冲、数字码型和串行触发。脉冲触发是最简单的触发,因为它只需指定脉冲长度。码型触发和串行触发非常特殊,因为它们支持用户指定特定值。例如,常见串行触发是对一个特定地址执行写操作。一旦找到感兴趣的事件,那么跟踪此迹线就会找到问题的根源。对于串行总线来说,启动数据的串行解码功能非常有用。这样不仅可以显示模拟波形,还可将波形转换成数据包,从而使通过数据进行跟踪变得非常容易。
总结
触发是一个非常强大的示波器特性,但是通常用户必须不能仅限于了解简单的边沿触发。其关键是了解用户是否正在寻找模拟问题或者正在跟踪一个逻辑问题。示波器在这两方面都可提供出色的功能,但这取决于用户使用正确的策略。