原创 【博客大赛】调试助手——逻辑分析仪

2014-9-14 18:35 1981 23 26 分类: 测试测量 文集: 单片机那些事儿

单片机开发工程师和电子爱好者,每天都要和各种各样的数字电路打交道。在制作调试电路时会使用万用表、示波器等工具,但是某些电路,用示波器测量起来就有些力不从心了,这是可以借用逻辑分析仪来做测试。那么网友们会问,什么时候应该使用示波器,什么时候应该使用逻辑分析仪呢?下面残弈悟恩简单对两者做一个比较。

10.1 示波器和逻辑分析仪的比较

10.1.1 何时使用示波器?

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

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

   1.jpg

图10-1

10.1.2 何时使用逻辑分析仪?

  • 当您需要同时看到许多信号
  • 当您需要以与硬件相同的工作方式观察系统中的信号
  • 当您需要在若干信号线的高或低电平上进行码型触发,并观察结果

逻辑分析仪源于示波器。它们用和示波器相同的方式展现数据,水平轴代表时间,垂直轴代表电压幅度。但与示波器提供很高的电压分辨率及时间间隔精度不同,逻辑分析仪能同时捕获和显示数百个信号,这是示波器达不到的。当系统中的信号穿越阈值电平时,逻辑分析仪的反应与您的逻辑电路相同。它能识别信号是低电平还是高电平。它也能在这些信号的高和低电平的码型上触发。一般来说,当您需要观察多于示波器通道数的信号线,并且不需要精密的时间间隔信息时,就应使用逻辑分析仪。如果您需要得到像上升和下降时间这类参数信息时,逻辑分析仪并非好的选择。而在观察总线 — 例如微处理器地址、数据或控制总线上的时间关系或数据时,逻辑分析仪是特别有用的。逻辑分析仪还能解码微处理器总线信息,并以有意义的形式呈现。总之,当您完成了参数设计阶段,开始关注许多信号间的定时关系和需要在逻辑高和低电平码型上触发时,逻辑分析仪就是有利的工具,如图10-2所示。

2.jpg

图10-2 逻辑分析仪采样图

10.2 什么是逻辑分析仪

逻辑分析仪是利用时钟从测试设备上采集和显示数字信号的仪器,最主要的作用在于时序判定。逻辑分析仪与示波器不同,它不能显示连续的模拟量波形,而只显示高低两种电平状态(逻辑1和0)。使用逻辑分析仪,可以方便地设置信号触发条件开始采样,分析多路信号的时序,捕获信号的干扰毛刺,也可以按照规则对电平序列进行解码,完成通信协议分析,如1wire、I2C、UART、SPI、CAN等数据的时候,应用逻辑分析仪解决问题可以达到事半功倍的作用。

10.2.1 逻辑分析仪的工作原理

3.jpg

图10-3 数据采集原理图

在设置了参考电压(阈值)后,逻辑分析仪将采集到的信号与电压比较器比较,高于参考电压的为逻辑1,低于参考电压的为逻辑 0。这样就可以将被测信号以时间顺序显示为连续的高低电平波形,便于使用者进行分析和调试,如图10-3所示,就是以“阈值”作为参考值来采样的数据图形。

10.2.1 逻辑分析仪的分类

逻辑分析仪根据其硬件设备的功能和复杂程度,主要分为独立式(单机型)逻辑分析仪和基于电脑(PC-Base)的虚拟逻辑分析仪两大类。独立式逻辑分析仪是将所有的软件,硬件整合在一台仪器中,使用方便。虚拟逻辑分析仪则需要结合电脑使用,利用PC强大的计算和显示功能,完成数据处理和显示等工作。

专业逻辑分析仪,通常具有数量众多的采样通道,超快的采样速度和大容量的存储深度,但昂贵的价格也不是每个穷屌丝所能承受起的。作为工程师手头常备的开发工具,目前有许多入门级的逻辑分析仪设计,整体功能虽然不能和专业高档仪器相比,但是用较低的成本来实现特定的功能,也是非常成功的设计。

另一类的逻辑分析仪,是以低速单片机为基础的。很多爱好者用PIC、AVR等常见单片机设计了自己的作品。但这类基于单片机的逻辑分析仪共同弱点就是采样速度太慢,通常不超过1MHz。

以USB IO芯片为基础的入门级逻辑分析仪现在最为流行。比如Saleae logic(实物如图10-4所示),还有类似的USBee等。这类产品主要采用一个USB IO芯片,例如CYPRESS公司的CY7C68013A,所有的信号触发和处理工作都是电脑上的软件完成的,硬件部分就只是一个数据采集、记录仪。最高采样速度24MHz。它们可以“无限数量”地采样,因为所有的数据都是存储在电脑里的。目前一般最多是8个通道,更多的通道数量会成比例地降低最高采样速度。这类产品构造简单,方便易用,价格便宜,是调试单片机开发工作的好工具。它的缺点主要是采样速度只有24MHz、8个通道,对于分析高速并行总线就不能胜任了。更进一步的设计,需要增加FPGA、SRAM等器件,才能解决速度不够和通道数量不足的问题。

TB2gVMRXVXXXXXWXXXXXXXXXXXX-602075399.jpg

图10-4 Saleae logic Analyzer实物图

10.3 Logic软件的相关概述

上面我们已经提到,这个逻辑分析仪需要借助软件来完成,因此我们首先的安装该上位机软件。

10.3.1 Logic软件的安装

首先安装logic software,软件可以到找我索取,同时也可以到官方网站下载,下载地址是:http://www.saleae.com/downloads。这里有各种系统版本的软件,请网友们按自己电脑的系统、处理器类型选择合适的版本,如图10-5所示,这里残弈悟恩选择“Windows”下的“64 bit”软件(原因1:我用的是Win7系统;原因2:我用的是:64位电脑)。

4.jpg

图10-5 Saleae官网各版本的下载界面图

下载完成之后,直接双击安装应用程序,安装完后,会在桌面出现一个快捷方式 ,双击快捷方式,进入软件,界面如图10-6所示(注意我已经修改过该软件的通道名称了,所以4、5、6通道的名称有别)。

5.jpg

图10-6 Logic1.1.15软件界面图

这个逻辑分析仪软件在没有插入硬件或链接不正常的时候,最上边会显示为如图10-6红色圈内部的“Disconnected”,表明软件还没正确链接,这时当然可以进行模拟运行,即单击绿色圈“Start Simulation”按钮,此时会出现一个模拟的波形,如果你提前设置协议的话(具体如何设置协议,后续自由答案),他还会产生符合你设置的协议波形图!这种波形是为了哄你高兴的,一点都不真实,点鼠标左键放大波形,右键缩小波形,滚动鼠标滑轮也可以放大和缩小波形,模拟波形如图10-7所示。

6.jpg

图10-7 模拟波形图

10.3.2 驱动的安装

软件安装完成后就可以链接硬件了,用我提供的优质USB线链接逻辑分析仪和PC之后,会自动提示发现新硬件,然后出现一个如图10-8所示的对话框,这里直接选择“点自动安装软件(推荐)”则OK,接着单击“下一步”按钮,这样就会自动安装好驱动,此时如图10-6所示的红色圈中的“Disconnected”会变成“Connected”,表明硬件链接无误,可以开始真正的逻辑分析了。

省略

图10-8 驱动安装示意图

10.3.1 采样深度和采样频率

逻辑分析仪中有2个非常重要的参数,分别是采样深度和采样频率,如图10-9所示。第一个就是采样深度,第二个是采样频率,前边那个5M代表我们从开始采集,一共采集到5Mbit个数据他就自动停止了,后边的1M代表我们1s钟可以采集1M个bit位的数据,这样算下来,采集此次数据所用的时间为:5 / 1 = 5s钟时间。

7.jpg

图10-9 采样深度和频率示意图

一、采样频率:每秒钟采集信号的次数。例如Saleae逻辑分析仪的最大采样率是24M,那么也就是说它一秒钟可以采集24M 个样点,即每 1/24 us 采集一个样点,并且高于阈值电压的认定为高电平,低于阈值电压的认定为低电平。加入你的信号是 1M 的频率,你用 24M的采样率去采集,那么一个信号周期我就可以采集 24次,最后用我们小学学过的描点法把采集到的样点连起来,就会还原出信号。根据奈奎斯特定律,采样率必须是信号频率的 2倍以上才能还原出信号,因为逻辑分析仪是数字系统,算法简单,所以最低也是4倍于信号的采样率才可以,为了提高精度,一般选择10倍左右为好。

二、存储深度:我们刚才说了采样率,那采集到的高电平或者低电平信号,我们要有一个存储器存储起来,否则我们到哪里去观察。比如我们用24M的采样率,那么1秒就会产生24M个样点。一款逻辑分析仪能够存储多少个样点数,这是逻辑分析仪很重要的一个指标。如果我们的采样率很高,但是存储的数据量很少,那也没有多大意义,例如我们抢了一火车皮的银子,但是你只拿着一个文具盒,多么可惜?逻辑分析仪可以保存的最大样点数就是一款逻辑分析仪的存储深度。通常情况下,数据采集时间 = 存储深度 / 采样率。

10.4 Saleae逻辑分析仪的使用步骤

接下来我们以一个实例来讲述如何使用逻辑分析仪。当然更具体、更直接的操作方法,还是建议大家去看视频,该视频现以录制了两讲,这里我们以IIC为例来讲述Saleae逻辑分析仪的使用过程。

1、设置协议(标准协议)。如果读者抓取的波形是标准协议,比如UART、I2C、SPI这些类型的协议,逻辑分析仪一般都会配有专门的解码器,可以通过设置解码器,不仅仅像示波器那样把波形显示出来,还可以直接把数据解析出来,以十六进制、二进制、ASCII 码等各种方式显示出来。I2C的设置过程如下。

8.jpg

图10-10 I2C协议设置过程

(1)单击图10-10“Analyzers”右边的“+”,并选择“I2C”选项。

(2)步骤1过后,将出现如图10-11所示的对话框,当然我们可以通过下拉菜单选项来选择通道,但是这里我们选择默认的。之后单击“Save”按钮,此时接着弹出如图10-12所示的对话框,意思是问你是否修改名称,这里选择默认即可,也即将通道0、1分别命名为SDA、SCL,之后单击“Rename”按钮,这时软件的通道名会随之改变,图形也有所变化。

9.jpg

图10-11 I2C设置对话框

10.jpg

图10-12 名称更改对话框

2、连接硬件通道。首先我们要把逻辑分析仪的GND和待测板子的GND连到一起,以保证信号的完整性(有关信号的完整性,我会在后续的PCB章节为大家讲述,当然大家可以提前了解一下,这里为大家推荐一本好书——《EMC电磁兼容设计与测试案例分析》)。然后把逻辑分析仪的通道接到待测引脚上。Saleae逻辑分析仪有两个地,我们都链接到MGMC-V1.0实验板上。

其次,我们需要分别连接通道0、1到MGMC-V1.0实验板的P3.7、P3.6管脚上,这里网友们需要注意,这个顺序不能互换,因为P3.7和P3.6管脚分别为SDA和SCL,必须要和逻辑分析仪一一对应,连接好的硬件如图10-13所示。

11.jpg

如图10-13 Saleae逻辑分析仪与MGMC-V2.0实验板连接图

3、通道数选择。多数情况下,逻辑分析仪有8、16、32通道等。而我们采集信号的时候,往往用不到那么多通道,为了我们更清晰的观察波形,可以把不用的通道隐藏起来。

4、采样率和采样深度设置。首先要对待测信号最高频率有个大概的评估,把采样率设置到它的10倍以上,还要大概判断一下我们要采集的信号的时间长短,在设置采样深度的时候,尽量设置的有一定的余量。采样深度除以采样率,得到的就是我们可以保存信号的时间。

由于我们程序中是按10us(100KHz)为周期给的时钟脉冲,若采样率按10倍来取,那么我们这里设置采样率为1M。我们计划采样5S的时间,那么存储深度设置为5M即可。

5、设置触发。由于逻辑分析仪有深度限制,不可能无限期的保存数据。当我们使用逻辑分析仪的时候,如果没有采用任何触发设置的话,从点击“开始”按钮的那一刻就会计算时间,一直到存满我们设置的存储深度之后,采样才会停止,这样有一个弊端,所抓取的波形有些是有用的,有些是无用的,有限的存储空间,为何要被无用的信号所浪费了,那有没有解决该问题的方法呢?答案当然是肯定的。

我们前面讲述I2C协议的时候说过,SDA、SCL由于上拉电阻的作用的,在默认情况下两条线都为高电平,在主、从机开始通信的是时候,SDA会由高电平变成低电平,因此,我们在采集数据的时候,可以将SDA设置为下降沿触发(通过单击如图10-14所示的“下降沿”按钮来设置),这样,SDA为高电平时,数据不会开始采集,也即采样时间不会开始计算,直到SDA的下降沿到来,数据开始采集,采集时间开始计算,这样就很的避免了无用信号对存储空间的占有,但是对于PC机来说,一般存储空间很大,不会涉及到该问题。

由图10-14可知,该逻辑分析仪除了下降沿触发以外,还有上升沿、高电平、低电平触发方式,我们可以根据实际应用灵活使用。

省略

图10-14 触发方式设置图

6、抓取波形。逻辑分析仪和示波器不同,示波器是实时显示的,而逻辑分析仪需要点击“开始”按钮来启动,开始抓取波形后,一直采样到存储满了我们所设置的存储深度结束,图10-15为我我们采样到的一帧数据,然后我们就可以慢慢的去分析我们所抓到的信号了。

12.jpg

图10-15 采样到的数据波形图

7、数据分析。和示波器类似,逻辑分析仪也有各种测量标线,可以测量脉冲宽度,测量波形的频率,占空比等信息,通过数据分析,查找我们的波形是否符合我们的要求,从而帮助我们解决一些实际问题。

注意:在分析数据之前,我们还需按图10-16来设置一线数据显示的格式,软件默认为“Global Settings”显示方式,这里我们单击右侧的I2C“设置”(如标号1所示),再选择标号2所示的“Display …”,接着选择标号3所示的“Hexadecimal”来设置为十六进制方式,这只是习惯而已,当然选择为别的方式也是可以的。

13.jpg

图10-16 数据显示格式设置对话框

接下来我们就来简单分析一下这帧数据,如果大家对I2C协议掌握的很好的话,这里一看图就很明了了,绿点表示起始信号,红点表示结束信号,这个也完全符合我们所讲述的I2C协议;再之后就是数据,这里总共发生了5组数据,我们只拿第一组来开刀,为何是0x90,不是别的数据呢?打破砂锅问到底!!

这里我下载的是LM75的温度传感器实验,由它的数据手册(31天环游单片机视频、深入浅出玩转51单片机、单片机那些事儿中都有所讲述)可知,该器件的从地址为1001 A0A1A2 R/W,R/W为读写位,这里是写入数据,那么肯定就为低电平“0”,A0A1A2由其硬件电路方式决定,由《深入浅出玩转51单片机》的226页的图13-4可知,A0、A1、A2全都接地,所以也为低电平,这样,它的从地址就为:0b1001 0000(0x90),剩余的4组就留读者自行研究了,这里不赘。

最后关于他的周期测量、数据存储等,大家可以自行研究,或者直接观看“31天环游单片机”视频。

10.5 Saleae逻辑分析仪的使用问题和注意事项

关于最大24M的采样频率绝大多数情况来说,只要您的电脑速度够快,并且没有其他USB设备干扰的基础上,逻辑分析仪达到24M的采样频率是没有任何问题的。但是如果当前的USB设备正在被其他设备所使用,那么最大采样频率可能会有所下降,比如16M、12M、8M等。

一、Saleae 逻辑分析仪使用的是USB2.0的标准,在这种标准下,理论上最大的平均带宽可达24M,但是逻辑分析仪的优先级比较低,这样就意味着有可能“撞”到其他USB设备的通信。

二、Saleae 逻辑分析仪拥有4个512字节的缓冲区,在这4个缓冲区在被填满之前,USB必须将部分数据读出,也就是说,4个缓冲区不可以同时装满,否则数据就无法进入,逻辑分析仪也会直接报错。这就意味着,如果工作在24M的情况下,USB设备不仅要给出24M的通信速率,而且必须在4个缓冲区被填满之前,保证其他设备不占用USB资源。基于这些原因,逻辑分析仪不能够长时间一直工作在24M的采样频率下,具体取决于计算机性能,USB带宽的可用性和延迟等情况。

 

关于使用视频,也已经录制,可搜索《31天环游单片机》。

若有需要的,可以光顾小店:shop109195762.taobao.com

 

文章评论3条评论)

登录后参与讨论

用户403664 2014-10-9 16:30

修改博文技术类别就可以啦

残弈悟恩 2014-10-8 19:54

那把我的这个归结为EDA好了,呵呵。。。

用户403664 2014-10-8 14:37

好文,可是这一季的博客大赛主题没有测试测量啦~
相关推荐阅读
残弈悟恩 2018-11-29 18:36
【博客大赛】国产SWM32单片机学习连载(一)
让更多人知道“中国芯”第1章 SWM320控制器简介单片微型计算机简称单片机,是典型的嵌入式微控制器(Microcontroller Unit),常用缩写MCU表示。单片机由运算器、控制...
残弈悟恩 2018-11-22 21:47
签到
2年没来了,既然来了,就签个到...
残弈悟恩 2016-03-25 18:38
评论:@以芯筑未来 博客中提到的“[转]29岁了,继续做个精致的电子工程师”
今天没时间看,先转了,等有时间了,好好拜读一下。...
残弈悟恩 2016-01-11 14:55
【博客大赛】各位网友,你想对EDN网站说点什么?
自荣获2015年EDN最佳博主奖以后,可能太过于自满,就再也没怎么写过博客自己!! 说心里话,肯定不是自满,实在是太忙了,所以只是常来看看,看大家写了什么,有什么最新的科技动态,反正是不想写。...
残弈悟恩 2015-10-23 14:28
评论:@wshr_king's Blog 博客中提到的“CODE RW RO ZI”
积累一下,谢谢楼主。...
我要评论
3
23
关闭 站长推荐上一条 /2 下一条