- 易迪拓培训,专注于微波、射频、天线设计工程师的培养
调试助手——逻辑分析仪
10.1 示波器和逻辑分析仪的比较
10.1.1 何时使用示波器?
- 当您需要看到信号上小的电压变化
- 当您需要很高的时间间隔精度
一般来说,在需要高垂直或电压分辨率时应使用示波器。即如果您需要看到如图10-1所示的每一微小电压变化,就应使用示波器。许多示波器,包括新一代数字示波器,还能够提供非常高的时间间隔分辨率。也就是能以很高的精度测量两个事件间的时间间隔。总之,当您需要参数信息时,就应使用示波器。
图10-2 逻辑分析仪采样图
10.2 什么是逻辑分析仪
逻辑分析仪是利用时钟从测试设备上采集和显示数字信号的仪器,最主要的作用在于时序判定。逻辑分析仪与示波器不同,它不能显示连续的模拟量波形,而只显示高低两种电平状态(逻辑1和0)。使用逻辑分析仪,可以方便地设置信号触发条件开始采样,分析多路信号的时序,捕获信号的干扰毛刺,也可以按照规则对电平序列进行解码,完成通信协议分析,如1wire、I2C、UART、SPI、CAN等数据的时候,应用逻辑分析仪解决问题可以达到事半功倍的作用。
10.2.1 逻辑分析仪的工作原理
图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等器件,才能解决速度不够和通道数量不足的问题。
图10-4 Saleae logic Analyzer实物图
10.3 Logic软件的相关概述
上面我们已经提到,这个逻辑分析仪需要借助软件来完成,因此我们首先的安装该上位机软件。 [p]
10.3.1 Logic软件的安装
首先安装logic software,软件可以到找我索取,同时也可以到官方网站下载,下载地址是:http://www.saleae.com/downloads。这里有各种系统版本的软件,请网友们按自己电脑的系统、处理器类型选择合适的版本,如图10-5所示,这里残弈悟恩选择“Windows”下的“64 bit”软件(原因1:我用的是Win7系统;原因2:我用的是:64位电脑)。
图10-8 驱动安装示意图
10.3.1 采样深度和采样频率
逻辑分析仪中有2个非常重要的参数,分别是采样深度和采样频率,如图10-9所示。第一个就是采样深度,第二个是采样频率,前边那个5M代表我们从开始采集,一共采集到5Mbit个数据他就自动停止了,后边的1M代表我们1s钟可以采集1M个bit位的数据,这样算下来,采集此次数据所用的时间为:5 / 1 = 5s钟时间。
图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的设置过程如下。
图10-10 I2C协议设置过程
(1)单击图10-10“Analyzers”右边的“+”,并选择“I2C”选项。
(2)步骤1过后,将出现如图10-11所示的对话框,当然我们可以通过下拉菜单选项来选择通道,但是这里我们选择默认的。之后单击“Save”按钮,此时接着弹出如图10-12所示的对话框,意思是问你是否修改名称,这里选择默认即可,也即将通道0、1分别命名为SDA、SCL,之后单击“Rename”按钮,这时软件的通道名会随之改变,图形也有所变化。 [p]
图10-11 I2C设置对话框
图10-14 触发方式设置图
6、抓取波形。逻辑分析仪和示波器不同,示波器是实时显示的,而逻辑分析仪需要点击“开始”按钮来启动,开始抓取波形后,一直采样到存储满了我们所设置的存储深度结束,图10-15为我我们采样到的一帧数据,然后我们就可以慢慢的去分析我们所抓到的信号了。
图10-15 采样到的数据波形图
7、数据分析。和示波器类似,逻辑分析仪也有各种测量标线,可以测量脉冲宽度,测量波形的频率,占空比等信息,通过数据分析,查找我们的波形是否符合我们的要求,从而帮助我们解决一些实际问题。
注意:在分析数据之前,我们还需按图10-16来设置一线数据显示的格式,软件默认为“Global Settings”显示方式,这里我们单击右侧的I2C“设置”(如标号1所示),再选择标号2所示的“Display …”,接着选择标号3所示的“Hexadecimal”来设置为十六进制方式,这只是习惯而已,当然选择为别的方式也是可以的。
图10-16 数据显示格式设置对话框
接下来我们就来简单分析一下这帧数据,如果大家对I2C协议掌握的很好的话,这里一看图就很明了了,绿点表示起始信号,红点表示结束信号,这个也完全符合我们所讲述的I2C协议;再之后就是数据,这里总共发生了5组数据,我们只拿第一组来开刀,为何是0x90,不是别的数据呢?打破砂锅问到底!!
这里我下载的是LM75的温度传感器实验,由它的数据手册(31天环游单片机视频、深入浅出玩转51单片机、单片机那些事儿中都有所讲述)可知,该器件的从地址为1001 A0A1A2R/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带宽的可用性和延迟等情况。
上一篇:正确测量TDR上升时间
下一篇:SATA测试常见问题总结-2