仪器仪表技术专区
400万+工程师在用
华为|鸿蒙开发者日
直播报名
400万+工程师在用
华为|鸿蒙开发者日
直播报名

电子发烧友网工程师

17年用户 16436经验值
擅长:可编程逻辑 MEMS/传感技术 测量仪表 模拟技术 控制/MCU RF/无线
私信 关注

逻辑分析仪的原理和应用

2008-11-27 08:19

<p><font face="Verdana">您需要同时观看 16 位计数器的输入和输出信号,以确定定时错误时,选用不正确的工具将会耗费大量时间。采用逻辑分析仪是对于上述问题的最好解决方案。本文将详细讲述逻辑分析仪的基本原理以及它的功能。</font></p>
<p><font face="Verdana">关键词: 逻辑分析仪;采样;触发</font></p>
<p><font face="Verdana">引言</font></p>
<p><font face="Verdana">一般来说,逻辑分析仪能看到比示波器更多的信号线。对于观察总线上的定时关系或数据 ——例如微处理器地址、数据或控制总线时,逻辑分析仪是特别有用的。逻辑分析仪能够解码微处理器的总线信息,并以有意义的形式显示。总之,当您通过了参数设计阶段,开始关注许多信号间的定时关系和需要在逻辑高和低电平码型上触发时,逻辑分析仪就是正确的测试工具。</font></p>
<p><font face="Verdana">逻辑分析仪</font></p>
<p><font face="Verdana">大多数逻辑分析仪实际是合二而一的分析仪:一部分是定时分析仪,另一部分是状态分析仪。<br/>定时分析仪的信息显示形式与示波器的相同,水平轴代表时间,垂直轴代表电压幅度。由于这两种仪器上的波形都与时间相关,因此称为“时域”显示仪。</font></p>
<p><font face="Verdana">·选择正确的采样方法<br/>定时分析仪好像是一台具有 1bit 垂直分辨率的数字示波器。由于只有 1bit 分辨率,因此只能实现两种状态 —高或低的显示。定时分析仪只关心用户定义的电压阈值。如果采样时信号高于该阈值,就以高或 1 显示,低于阈值的采样信号用低或0显示。从这些采样点得到一张由 1 和 0 组成,代表输入波形 1bit 图的表格。这张表格保存在存储器中,并可用来重建输入波形的 1bit 图,如图1所示。</font></p>
<p><font face="Verdana"><font color="#000000"><img height="167" alt=" " src="https://www.elecfans.com/article/UploadPic/2008-11/200811278254695.jpg" width="500" border="0"/></font></font></p>
<p><font face="Verdana">图 1 定时分析仪的采样点</font></p>
<p><font face="Verdana">定时分析仪趋向于把各种信号拉成方波,这似乎会影响到它的可用性,但如果您需要同时观察几条甚至几百条信号线以验证信号间的定时关系,那么定时分析仪就是正确选择。应记住每个采样点都要使用一个存储器位置。分辨率越高(采样率越快),采集窗就越短。</font></p>
<p><font face="Verdana">·跳变采样<br/>当我们捕获如图2 所示带有数据突发的输入线上的数据时,我们必须把采样率调到高分辨率(例如 4ns),以捕获开始处的快速脉冲。这意味着具有 4K(4096 样本)存储器的定时分析仪在 16.4ms 后将停止采集数据,使您不能捕获到第二个数据突发。</font></p>
<p><font face="Verdana"><font color="#000000"><img height="142" alt=" " src="https://www.elecfans.com/article/UploadPic/2008-11/200811278255647.jpg" width="500" border="0"/></font></font></p>
<p><font face="Verdana">图2 高分辨率采样</font></p>
<p><font face="Verdana">在通常的调试工作中,我们采样和保存了长时间没有活动的数据。它们使用了逻辑分析仪存储器,却不能提供更多的信息。如果我们知道跳变何时产生,是正跳变还是负跳变,就能够解决这一问题。这一信息是有效使用存储器的跳变定时基础。</font></p>
<p><font face="Verdana">为实现跳变定时,我们可在定时分析仪和计数器的输入处使用“跳变探测器”。现在定时分析仪只保存跳变前的那些样本,以及两个跳变之间的时间间隔。采用这种方法,每一跳变就只需使用两个存储器位置,输入无变动时就完全不占用存储器位置。</font></p>
<p><font face="Verdana">在我们的例子中,根据每一突发中存在多少脉冲数,现在能捕获到第二、第三、第四和第五个突发。并同时保持达到 4ns 的高定时分辨率(图3)。</font></p>
<p><font face="Verdana"><font color="#000000"><img height="142" alt=" " src="https://www.elecfans.com/article/UploadPic/2008-11/200811278255224.jpg" width="500" border="0"/></font></font></p>
<p><font face="Verdana">图3 使用跳变探测器采样</font></p>
<p><font face="Verdana">·毛刺捕获<br/>毛刺脉冲因为会随机出现,造成灾难性的后果而声名狼藉。定时分析仪可采样输入数据,保持对采样间所产生任何跳变的跟踪,容易捕获毛刺。在分析仪中,把毛刺定义为相邻两次采样间穿越逻辑阈值一次以上的任何跳变。为了识别毛刺,我们要“教会”分析仪保持对所有多个异常跳变的跟踪,并将它们作为毛刺显示。</font></p>
<p><font face="Verdana">毛刺显示是一种很有用的功能,能够提供毛刺触发和显示超前毛刺的数据,从而帮助我们确定毛刺产生的原因。这种能力也使得分析仪只捕获毛刺产生时所要的数据。</font></p>
<p><font face="Verdana">回顾本节开始时提到的例子。我们有一个系统周期性地因毛刺出现在一条信号线上而崩溃。由于毛刺发生具有偶然性,您即使能保存整个时间上所有数据(假定有足够的存储能力),也很难在巨大的信息量中找到它。另一种方法是使用没有毛刺触发功能的分析仪,您必须坐在仪器前,按运行按钮,等待看到毛刺为止。</font></p>
<p><font face="Verdana">·定时分析仪的触发<br/>逻辑分析仪连续捕获数据,并在找到跟踪点后停止采集。这样,逻辑分析仪就能显示出被称为负时间的跟踪点前的信息,以及跟踪点后的信息。</font></p>
<p><font face="Verdana">码型触发</font></p>
<p><font face="Verdana">设置定时分析仪的跟踪特性与设置示波器的触发电平和斜率稍有一点区别。许多分析仪是在跨多条输入线的高和低码型上触发。为使某些用户更感方便,绝大多数分析仪的触发点不仅可用二进制( 1 和 0),而且可用十六进制、八进制、ASCII或十进制设置。在查看4、 8、16、24、32bit宽的总线时,使用十六进制的触发点会更加方便。设想如果用二进制设置24bit总线就会麻烦得多。</font></p>
<p><font face="Verdana">边沿触发</font></p>
<p><font face="Verdana">在调节示波器的触发电平旋钮时,您知道是在设置电压比较器的电平,这个电平将告诉示波器在输入电压穿越该电平时触发。定时分析仪的边沿触发与其基本相似,但触发电平已预设置到逻辑阈值。大部分逻辑器件都与电平相关,这些器件的时钟和控制信号通常都对边沿敏感。边沿触发使您能与器件时钟同步地捕获数据。您能告诉分析仪在时钟边沿产生(上升或下降)时捕获数据,并获取移位寄存器的所有输出。当然在这种情况下,必须延迟跟踪点,以顾及通过移位寄存器的传播延迟。</font></p>
<p><font face="Verdana">状态分析仪基础</font></p>
<p><font face="Verdana">如果您从未使用过状态分析仪,您可能认为这是一种极为复杂的仪器,需要花很多时间才能掌握使用方法。事实上,许多硬件设计师发现状态分析仪中有许多极有价值的工具。</font></p>
<p><font face="Verdana">一个逻辑电路的“状态”是数据有效时对总线或信号线的采样样本。例如,取一个简单的“D”触发器。“D”输入端的数据直到时钟正沿到来时才有效。这样,触发器的状态就是正时钟沿产生时的状态。</font></p>
<p><font face="Verdana">现在,假定我们有8个这样的触发器并联。所有8个触发器都连到同样的时钟信号上。当时钟线上产生正跳变时,所有8个触发器都要捕获各自“D”输入的数据。这样,每当时钟线上正跳变时就产生一个状态,这8条线类似于微处理器总线。如果我们把状态分析仪接到这8条线上,并告诉它在时钟线正跳变时收集数据,状态分析仪将照此执行。除非时钟跳到高电平,否则输入的任何活动将不被状态分析仪捕获。</font></p>
<p><font face="Verdana">定时分析仪由内部时钟控制采样,因此它是对被测系统作异步采样。而状态分析仪从系统得到采样时钟,因此它是对系统同步采样。状态分析仪通常用列表方式显示数据,而定时分析仪用波形图显示数据。</font></p>
<p><font face="Verdana">理解时钟</font></p>
<p><font face="Verdana">在定时分析仪中,采样是沿着单一内部时钟的方向进行,从而使事情非常简单。但微处理器系统中往往会有若干个“时钟”。假定某个时刻我们要在RAM中的一个特定地址上触发,并查看所保存的数据;再假定使用的微处理器是Zilog公司的 Z80。</font></p>
<p><font face="Verdana">为了用状态分析仪从Z80捕获地址,我们要在MREQ线为低时进行捕获。而为了捕获数据,需要在WR线为低(写周期)或RD线为低(读周期)时让分析仪采样。某些微处理器可在同一条线上对数据和地址进行多路转换。分析仪必须能让时钟信息来自相同的信号线,而非来自不同的时钟线。</font></p>
<p><font face="Verdana"><font color="#000000"><img height="332" alt=" " src="https://www.elecfans.com/article/UploadPic/2008-11/200811278255919.jpg" width="500" border="0"/></font></font></p>
<p><font color="#000000">图 4&nbsp; RAM 定时波形图<br/><br/>在读写周期期间,Z80首先把一个地址放在地址总线上。接着设定MREQ线在该地址对存储器的读或写有效。最后根据现在是读还是写对RD或WR线断言。WR线只有在总线数据有效后才被设定。这样,定时分析仪就作为多路分配器在适当的时间捕获地址,然后在同一信号线上捕获产生的数据。<br/><br/></font><font color="#000000"><strong>触发状态分析 <br/><br/></strong>像定时分析仪一样,状态分析仪也提供限定所要保存数据的功能。如果我们要寻找地址总线上由高低电平构成的特定码型,可告诉分析仪在找到该模式时开始保存,直到分析仪的存储器完全装满。<br/>这些信息可以用十六进制或二进制格式显示。但在解码至汇编码时,十六进制可能更为方便。在使用处理器时,应把这些特定的十六进制字符与处理器指令相比较。大多数分析仪制造商设计了称为反汇编器的软件包,这些软件包把十六进制代码翻译成易于阅读的汇编码。</font></p>
<p><font color="#000000"><img height="340" alt=" " src="https://www.elecfans.com/article/UploadPic/2008-11/200811278255303.jpg" width="500" border="0"/></font></p>
<p><font color="#000000">图 5 把十六进制码翻译成汇编码<br/><br/><strong>序列级和选择性保存</strong><br/><br/>状态分析仪具有帮助触发和存储的“序列级”数据。序列级使您能比单一触发点更精确地限定要保存的数据。也就是说可使用更精确的数据窗,而不必存储不需要的信息。<br/><br/>选择性的保存意味着可只保存较大整体中的一部分。例如,假定我们有一个计算给定数平方的汇编例程。如果该例程不能正确计算平方,我们就告诉状态分析仪捕获这一例程。具体做法是先让状态分析仪寻找该例程的起点。当它找到起始地址时,我们再告诉它寻找终止地址,并保存两者之间的所有信息。当发现例程结束时,我们告诉分析仪停止状态保存。<br/></font><font color="#000000"><strong>  <br/>探测解决方案<br/></strong><br/>为进行调试,向数字系统施加的物理连接必须方便可靠,对被调试的目标系统只有最小的侵扰,这样才能使逻辑分析仪得到精确的数据。<br/><br/>普通的探测解决方案是每条电缆有 16 个通道的无源探头。每个通道的两端用100kΩ并联8pF 端接。您可将这种无源探头与示波器探头的电气性能作一比较。无源探测系统除了更小的尺寸和更高的可靠性外,还能把探头端接在与目标系统的连接点上。这就避免了从大的有源探头接口夹到被测电路之间大量引线所产生的附加杂散电容。因此您的被测电路就只“看到”8pF的负载电容,而不再是前述探测系统的16pF。</font></p>
<p><font color="#000000"><img height="302" alt=" " src="https://www.elecfans.com/article/UploadPic/2008-11/200811278255595.jpg" width="500" border="0"/></font></p>
<p><font face="Verdana">图6 分析探头</font></p>
<p><font face="Verdana">把状态分析仪接到微处理器系统需要进行机械连接和时钟选择。某些微处理器可能需要外部电路对一些信号进行解码,才能得到用于状态分析仪的时钟。分析探头不仅能提供与目标系统快速、可靠和正确的机械连接,而且能提供必要的电气适配能力,如为正确捕获系统运行提供的时钟和多路分配器。</font></p>
<p><font face="Verdana">结语</font></p>
<p><font face="Verdana">绝大多数逻辑分析仪都由定时分析仪和状态分析仪这两个主要部分组成。定时分析仪更适于处理多线的总线型结构或应用。它能够在信号线上的码型上,甚至在毛刺上触发。状态分析仪常被看成是一种软件工具,事实上它在硬件设定也很有用。由于它从被测系统得到时钟,因此捕获的数据也就是系统在时钟上的数据。逻辑分析仪为数字电路设计工程师提供了强大的设计工具。<br/></font></p>

更多回帖

打开APP