桃花源qm花论坛(品茶),凤楼阁论坛官网入口网址,一品楼品凤楼论坛最新动态,风楼阁全国信息2024登录入口

你的位置:首页 > 测试测量 > 正文

什么是逻辑分析仪——定时分析仪基础和状态分析仪基础

发布时间:2011-06-15

中心议题:

  • 什么时候应使用逻辑分析仪
  • 定时分析仪基础
  • 选择正确的采样方法
  • 触发定时分析仪
  • 状态分析仪基础
  • 触发状态分析仪


在选择是使用示波器,还是使用逻辑分析仪时,多数工程师会选择示波器。为什么? 因为大多数用户更熟悉示波器。但示波器的测量能力不能适应有些应用的需要,而逻辑分析仪却可能提供更有用的信息。由于示波器和逻辑分析仪在测量能力上有所重叠,因此在某些情况下两种仪器都可以使用。如何确定哪种仪器更适合您的应用呢? 
 
什么时候应使用示波器

  • 当您需要看到信号上小的电压变化
  • 当您需要很高的时间间隔精度


一般来说,在需要高垂直或电压分辨率时应使用示波器。即如果您需要看到如图1 所示的每一微小电压变化,就应使用示波器。许多示波器,包括新一代数字示波器,还能够提供非常高的时间间隔分辨率。也就是能以很高的精度测量两个事件间的时间间隔。总之,当您需要参数信息时,就应使用示波器。
                                                       图1. 示波器波形
                                                                  图1. 示波器波形

什么时候应使用逻辑分析仪当您需要同时看到许多信号当您需要以与硬件相同的工作方式观察系统中的信号当您需要在若干信号线的高或低电平上进行码型触发,并观察结果逻辑分析仪源出于示波器。它们用和示波器相同的方式展现数据,水平轴代表时间,垂直轴代表电压幅度。但与示波器提供很高的电压分辨率及时间间隔精度不同,逻辑分析仪能同时捕获和显示数百个信号,这是示波器达不到的。当系统中的信号穿越阈值电平时,逻辑分析仪的反应与您的逻辑电路相同。它能识别信号是低电平还是高电平。它也能在这些信号的高和低电平的码型上触发。

一般来说,当您需要观察多于示波器通道数的信号线,并且不需要精密的时间间隔信息时,就应使用逻辑分析仪。如果您需要得到像上升和下降时间这类参数信息时,逻辑分析仪并非好的选择(见图2)。而在观察总线— 例如微处理器地址、数据或控制总线上的时间关或数据时,逻辑分析仪是特别有用的。逻辑分析仪还能解码微处理器总线信息,并以有意义的形式呈现。总之,当您完成了参数设计阶段,开始关注许多信号间的定时关系和需要在逻辑高和低电平码型上触发时,逻辑分析仪就是正确的工具。
                                                 图2. 示波器和定时波形
                                                       图2. 示波器和定时波形


什么是逻辑分析仪?

到目前为止,“逻辑分析仪”这一术语的使用并不十分严格。实际上大多数逻辑分析仪是定时分析仪和状态分析仪的综合体。我们下面将讲述这两种分析仪各自的特殊功能。

定时分析仪基础

定时分析仪是逻辑分析仪中类似示波器的部分。我们可以将它们看成是亲密的堂兄堂弟。定时分析仪用与示波器相同的通用形式显示信息,水平轴代表时间,垂直轴代表电压幅度。由于这两种仪器上的波形与时间相关,因此称为“时域”中的显示。

选择正确的采样方法

定时分析仪通过采样输入波形确定信号是高还是低。定时分析仪只关心用户定义的电压阈值。如果采样时信号高于该阈值,就以高或1显示; 低于阈值的用0或低显示。从这些采样点得到一张由 1 和0 组成,代表输入波形1 bit 图的列表。分析仪只确定波形是高还是低— 而不认可中间电平。这张表格保存在存储器中,并可用它重建输入波形的1bit 图,如图3所示。
                              图3. 定时分析仪采样点
                                            图3. 定时分析仪采样点

现在我们观察图4上的显示,这里数字示波器和定时分析仪显示实际相同的信号(正弦波)。定时分析仪趋向于把各种信号拉成方波,这似乎会影响到它的可用性,但我们应记住定时分析仪并非是用作参数测量的仪器。如果您要检验信号的上升时间,就不应使用分析仪,而应使用示波器。但如果您需要通过同时观察几条甚至几百条信号线验证信号间的定时关系,那么定时分析仪就是正确选择。[page]

例如,假定我们必须每2 ms 刷新一次系统中的动态RAM。为保证存储器内的所有内容均在这2 ms内刷新,我们用计数器对RAM的所有行顺序计数并进行刷新。如果要确认在再次开始前计数器已完成对所有行的计数,就可把定时分析仪设置为在计数器开始和显示所有计数时触发。这里并不关心参数— 我们仅仅要检查计数器从1 到N 的计数,然后再次开始。
                          图4. 示波器和定时分析仪显示相同的信号
                               图4. 示波器和定时分析仪显示相同的信号

当定时分析仪对输入线进行采样时,得到的是状态高或低。如果信号线在某次采样时为一种状态(高或低),在下一次采样时为相反的状态,分析仪就“知道”输入信号在两次采样间的某个时刻产生跳变。它并不知道跳变究竟发生在何时,因此把跳变点放在下一次采样上,如图3所示。这就造成分析仪对跳变实际产生时刻和显示时刻的不确定性。这种不确定性的最坏情况是一个采样周期,即在上一采样点后跳变立即产生的情况。在采用这项技术时,需要对分辨率和总采集时间作适当权衡。应记住每个采样点都要使用一个存储器位置。分辨率越高(采样率越快),采集窗就越短。
图5. 定时分析仪采样输入线
                              图5. 定时分析仪采样输入线
跳变采样

当我们捕获如图6所示带有数据突发的输入线上的数据时,我们必须把采样率调到高分辨率(例如4 ns),以捕获开始处的快脉冲。这意味着具有4K (4096样本)存储器的定时分析仪在16.4 μs后将停止采集数据,使您不能捕获到第二个数据突发。应注意在通常的调试工作中,我们采样和捕获了长时间没有活动的数据。它们使用了逻辑分析仪存储器,却不能提供更多的信息。如果我们知道跳变何时产生,是正跳变还是负跳变,就能够解决这一问题。只存储跳变发生时刻的基本信息,可以更有效地使用存储器。为实现跳变定时,我们可在定时分析仪和计数器的输入处使用“跳变探测器”。现在定时分析仪只保存跳变前的那些样本,以及至上一跳变的流逝时间。采用这种方法,每一跳变就只需使用两个存储器位置,输入无活动时就完全无需存储器。

这里我们谈到了“有效存储器深度”,它等于捕获的总时间数据除以采样周期(4 ns)。
                图6. 高分辨率的采样
毛刺捕获

数字系统中一个令人头痛的问题是“毛刺”。毛刺因为会在最不恰当的时间造成灾难性的后果而声名狼藉。如何捕获36小时才产生一次,并会导致系统崩溃的毛刺呢? 定时分析仪在此可大显身手。毛刺可由电路板走线间的电容性耦合、电源纹波、某些器件要求的高瞬时电流,或其它事件造成。定时分析仪可采样输入数据,保持对采样间所产生任何跳变的跟踪,从而容易地识别毛刺。在分析仪中,把毛刺定义为相邻两次采样间穿越逻辑阈值一次以上的任何跳变(图5)。正如我们在前面所讨论的,分析仪保持对采样间所有跳变的跟踪。为了识别毛刺,我们要“教”分析仪保持对所有多个跳变的跟踪,并将它们作为毛刺显示。显示毛刺是一种很有用的功能,它也有助于提供毛刺触发和显示产生于毛刺前数据的能力,从而帮助我们确定毛刺产生的原因。这种能力也能使分析仪只捕获毛刺产生时我们所要的数据。

回顾本节开始时提到的例子。我们有一个系统因毛刺出现在一条信号线上周期性的崩溃。由于周期很长,即使能保存所有数据(假定我们有足够的存储能力),也必须对如此不可思议的巨大信息量分类。另一种方法是使用没有毛刺触发能力的分析仪,按仪器前面板的run 按钮,直到您看到毛刺??上д饬街址椒ǘ疾皇导?。如果我们能告诉分析仪在毛刺上触发,它就能在找到毛刺后停止,捕获毛刺出现前的所有数据。我们先让分析仪工作,在系统崩溃时就得到导致错误的数据记录。
                       图8. 毛刺
                                                          图8. 毛刺

触发定时分析仪

用户非常熟悉的另一个示波器术语是“触发”。它也在逻辑分析仪中使用,但常称为“跟踪点”。与示波器的迹线总是在触发后开始不同,逻辑分析仪连续捕获数据,并在找到跟踪点后停止采集。这样,逻辑分析仪就能显示出被称为负时间的跟踪点前的信息,以及跟踪点后的信息。[page]

码型触发

设置定时分析仪的跟踪特性与设置示波器的触发电平和斜率稍有一点区别。许多分析仪是在跨多条输入线的高和低码型上触发。注意图6中的菜单。我们已告诉分析仪当“INT4”的通道0, 2 , 4 , 6为高(逻辑1),1 , 3 , 5 , 7 通道为低(逻辑0)时开始捕获数据。图7显示得到的结果,中间的垂直线示出了跟踪点。在跟踪点,通道0 , 2 , 4 , 6均为高,而通道1 , 3, 5, 7 均为低。为使某些用户更感方便,绝大多数分析仪的触发点不仅可用二进制(1 和0),而且可用十六进制,八进制,ASCII或十进制设置。例如在前面的例子若采用十六进制设置,触发特性即可用55代替0101 0101。在查看4, 8, 16, 24, 32 bit 宽的总线时,使用十六进制的触发点会更加方便。想想如果用二进制设置24 bit
总线会多麻烦啊!
                     图9. INT4 设置在高低码型上触发
                                        图9. INT4 设置在高低码型上触发

边沿触发

边沿触发对习惯使用示波器的用户是一种很熟悉的概念。在调节示波器的“触发电平”旋钮时,您知道是在设置电压比较器的电平,它告诉示波器在输入电压穿越该电平时触发。定时分析仪的边沿触发与其基本相似,只是触发电平已预设置到逻辑阈值。为什么在定时分析仪中也包含边沿触发? 许多逻辑器件都与电平相关,这些器件的时钟和控制信号都对边沿敏感。边沿触发使您能与器件时钟同步地捕获数据。例如,考虑一个不能正确移位数据的边沿触发移位寄存器。这是数据问题还是时钟沿问题呢? 为了检查这一器件,我们需要验证时钟边沿记录的数据(图11)。

您能告诉分析仪在时钟边沿(上升或下降)捕获数据,并获取移位寄存器的所有输出。当然在这种情况下,我们必须延迟跟踪点,以顾及通过移位寄存器的传播延迟。

                                  图10. 带有跟踪点的波形
  图11. 边沿触发移位寄存器
                                 图11. 边沿触发移位寄存器

状态分析仪基础

在本应用指南的第一部分,我们讲述了作为逻辑分析仪两个主要部分之一的定时分析仪。下面我们介绍逻辑分析仪的另一主要部分—状态分析仪。如果您从未使用过状态分析仪,您可能认为这是一种极为复杂的仪器,需要花很多时间才能掌握使用方法。您还会问自己: “我为什么要用状态分析仪呢? 我设计的是硬件。”事实上,许多硬件设计师发现状态分析仪是很有价值的工具,特别是跟踪软件或硬件中的一些小错误时。它可避免产生问题时硬件研制组与软件研制组间的相互指责。且掌握状态分析仪也并不比定时分析仪困难。

什么时候应使用状态分析仪如果要了解什么时候应使用状态分析仪,我们首先要知道什么是“状态”。一个逻辑电路的“状态”是数据有效时对总线或信号线的采样样本。例如,取一个如图12 所示的简单“D”触发器。“D”输入端的数据直到时钟上升沿到来时才有效。这样,触发器的状态就是时钟上升沿产生时的状态。现在,假定我们有8个这样的触发器并联。所有8个触发器都连到同样的时钟信号上(图13)。当时钟线上产生正跳变时,所有8个触发器都要捕获各自“D”输入端的数据。这样,每当时钟线上正跳变时就产生一个状态,这8条线类似于微处理器总线。如果我们把状态分析仪接到这8条线上,并告诉它在时钟线正跳变时收集数据,状态分析仪将照此执行。除非时钟跳到高电平,否则输入的任何活动将不被状态分析仪捕获。
图12. D 触发器

这说明了定时分析仪和状态分析仪的主要区别。定时分析仪有内部时钟控制采样,因此它是对被测系统作异步采样。而状态分析仪从系统得到采样时钟,因此它是对系统同步采样。作为经验法则,您应记住要用状态分析仪检查总线上发生了“什么”,而用定时分析仪查看“什么时候”发生。因此,状态分析仪通常用列表方式显示数据,而定时分析仪用波形图显示数据。在逻辑分析仪用波形图显示状态数据,或以列表显示定时数据时,我们应非常小心,以避免错误地解释数据。

理解时钟

在定时分析仪中,采样是沿着单一内部时钟的方向进行,从而使事情非常简单。但微处理器系统中往往会有若干个“时钟”,让我们来看一个简单的例子。假定某个时刻我们要在RAM中的一个特定地址上触发,并查看所保存的数据。再假定使用的微处理器是Zilog 80。为了用状态分析仪从Z80 捕获地址,我们要在MREQ线为低电平时进行捕获。而为捕获数据,需要在WR线为低(写周期)或RD线为低(读周期)时让分析仪采样。某些微处理器可在同一条线上对数据和地址进行多路转换。分析仪必须能得到来自相同信号线不同时钟的时钟脉冲输入信息。在读写周期期间,Z80首先把一个地址放在地址总线上。接着设置MREQ,表示该地址对存储器的读或写有效。最后根据现在是读还是写设置RD或WR状态。WR线只有在总线数据有效后才能进行设置。这样,定时分析仪就作为多路分配器在适当的时间捕获地址,然后在同一信号线上捕获产生的数据。
                              图14. RAM 定时波形
                                                图14. RAM 定时波形[page]

触发状态分析仪

像定时分析仪一样,状态分析仪也提供限定所要保存数据的能力。如果我们要寻找地址总线上由高低电平构成的特定码型,可告诉分析仪在找到该模式时开始保存,直到分析仪的存储器完全装满。在下面的例子中,我们把触发点设置为FFF03187(十六进制)(图15)。在这种情况下我们要找出FFF03187 位置中的内容,因此把数据触发设置为不予关注(XXXX)态。这就告诉分析仪对地址FFF03187触发,而不管该点是什么数据。分析仪捕获地址FFF03187 和所有其后的状态。应注意地址FFF03187的数据是554103E7(图16),并且所有信息均以十六进制格式显示。当然也可使用二进制格式。但在解码至汇编码时,十六进制可能更为方便。如果您规定所有总线信息都用十六进制显示,就得到如(图16)这样的显示。
                                    图15. 状态分析仪的触发设置
                                                              图15. 状态分析仪的触发设置

这些十六进制代码是什么意思?

在使用处理器时,特定的十六进制字符包含一个处理器指令。如果您很熟悉十六进制代码,就能查看这些类似图13 所示的十六进制代码表,并知道它们代表的指令。但我们大部分人做不到这一点。因此,绝大多数分析仪制造商设计了称为反汇编器的软件包。这些软件包把十六进制代码转换成易于阅读的汇编码。例如图13中有0000 41B0 和0000 41B1。我们可以从MotorolaPowerQUICC 手册中查到它们代表存储器写0x00 指令。反汇编器可以为我们做这些事情,使我们不需要查找这些代码。请查看图17 并注意它们之间的差别。
                         图16. 状态分析仪捕获的数据
                                     图16. 状态分析仪捕获的数据
                      
                                    图17. 把十六进制码翻译成汇编码

理解序列级

状态分析仪具有帮助触发和存储的“序列级”。序列级使您能比单一触发点更精确地限定要保存的数据。也就是说可使用更精确的数据窗,而不必存储不需要的信息。序列级的一般形式为:
1 find xxxx
else on xxxx go to level x 2
then find xxxx
else on xxxx go to level x 3
trigger on xxxx

在从程序中的特定点进入子程序时,序列级是特别有用的。节省存储器和时间的选择性保存序列级使我们有可能调用经选择的保存。选择性的保存意味着可只保存较大整体中的一部分。例如,假定我们有一个计算给定数平方的汇编例程。如果该例程不能正确计算平方,我们就告诉状态分析仪捕获这一例程。具体做法是先让状态分析仪寻找该例程的起始地址。当它找到起始地址时,我们再告诉它寻找终止地址,并保存两者之间的所有信息。当发现例程结束时,我们告诉分析仪停止保存(不保存任何状态)。图18示出选择性保存的工作情况。使用触发功能与定义每一序列级相比,更好的方法是使用预定义的触发功能。常用的触发功能库,如“寻找产生的第N 个沿”和“寻找事件N 次”提供把分析仪设置在常见事件和条件上触发的简便方法。状态和定时采集这两种工作模式均可使用这些功能。

您也可把预定义的触发功能作为建立自定义功能的开始点。当您拆分一个功能时,就能使用所有的资源分配字段和分支选项。您也能通过改变这些字段改变触发结构。您也许需要通过这些工作建立自定义的触发规范,或在您的触发序列中建立循环和跳转。

第1 步: 搜索该例程的第1 行,搜索中不存储任何信息
第2 步: 在找到第1 行后,开始存储。连续存储,直到找到最后一行
第3 步: 当遇到最后一行时,停止存储
                  图18. 选择性的保存
图18. 选择性的保存

使用触发功能

与定义每一序列级相比,更好的方法是使用预定义的触发功能。常用的触发功能库,如“寻找产生的第N 个沿”和“寻找事件N 次”提供把分析仪设置在常见事件和条件上触发的简便方法。状态和定时采集这两种工作模式均可使用这些功能。您也可把预定义的触发功能作为建立自定义功能的开始点。当您拆分一个功能时,就能使用所有的资源分配字段和分支选项。您也能通过改变这些字段改变触发结构。您也许需要通过这些工作建立自定义的触发规范,或在您的触发序列中建立循环和跳转。

特别推荐
技术文章更多>>
技术白皮书下载更多>>
热门搜索
发光二极管 防静电产品 防雷 防水连接器 仿真工具 放大器 分立器件 分频器 风力涡轮机 风能 风扇 风速风向仪 风扬高科 辅助驾驶系统 辅助设备 负荷开关 复用器 伽利略定位 干电池 干簧继电器 感应开关 高频电感 高通 高通滤波器 隔离变压器 隔离开关 个人保健 工业电子 工业控制 工业连接器
?

关闭

?

关闭