打印
[逻辑分析仪]

逻辑分析仪调试原理和应用教程之一----逻辑分析仪能干什么

[复制链接]
2696|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
cedaisong|  楼主 | 2014-10-28 15:47 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 cedaisong 于 2014-10-28 15:48 编辑

         金沙滩工作室:逻辑分析仪调试单片机、ARM、FPGA数字系统之一  -- 逻辑分析仪能干什么      逻辑分析仪调试单片机、ARM、FPGA数字信号的原理和作用.pdf (565.37 KB)
         优酷视频地址:http://v.youku.com/v_show/id_XODAyNTY2NDI0.html
          优酷地址的可能不够清晰,提供百度网盘下载地址:http://pan.baidu.com/s/1gdy3891

        一、逻辑分析仪的作用

        我们要用逻辑分析仪分析单片机、ARM和FPGA的数字信号波形,首先使用逻辑分析仪抓出来这些引脚输出的波形。如何使用逻辑分析仪抓波形将会在后续介绍,这节课先让大家了解一下逻辑分析仪可以哪些强大的测量功能。

        1、测量脉冲宽度、PWM占空比、信号频率
        有的时候,我们想看看我们的单片机输出的脉冲宽度是多少,抓到波形后,逻辑分析仪的软件一般有两种方式可以实现对脉宽的测量。
方式一:把鼠标放在波形处,直接通过信息栏读出。如下图所示,鼠标放在波形的高脉冲部分,在右侧的信息栏就显示高脉冲宽度:1.005005ms,高低脉冲一个周期宽度:2.0089ms,占空比:50.0276%,频率:497.78
      


        方式二:使用时间标签进行一段波形的时间宽度,通过时间宽度计算得出脉冲宽度、占空比、频率等信息。使用时间标签的优势是可以一次性测量很多脉冲的总时间宽度,如下图所示。通过鼠标点击右侧的T1、T2、T3时间标签,可以直接放到波形上,右侧会直接显示T1、T2、T3时间标签当前所在位置的时刻,以及他们之间的时间差值。T1-T2的时间差值是:2.0089ms,T2-T3的时间差值是:4.01672ms,T1-T3的时间差值是:6.02562ms。


       通过逻辑分析仪是不是可以显而易见的把MCU的引脚波形信息观察出来,当然,这些如果使用示波器也都可以测量,不过逻辑分析仪可以测量更长时间,下面来一个绝大多数示波器做不到的功能讲解。

        2、标准协议解码器
        逻辑分析仪一个重要的功能就是协议数据解析。我们刚才测脉宽、占空比那些,都是停留在原始信号位级别上,我们经常调试标准通信的帧数据和包数据,在通信过程中发现通信有故障或者问题,要查找问题的时候,这个时候逻辑分析仪就派上大用场了。比如我们调试串口通信,如果用示波器一般只能显示出波形来,要自己根据波形一个一个计算,而且如果一次收发很多个字节,要一个一个写下来可累死了,这个时候逻辑分析仪的优势就体现出来了,如下图波形解析数据所示。这是一个9600波特率的串口通信数据帧,直接将十六进制显示出来,这样就可以通过数据判断,自己发送数据和接收数据哪里出的问题。


         简单解释一下,串口通信左边是低位,右边高位,1位起始位,8位数据位,1位停止位。大家可以在波形上看出,带白点的位置都是数据位,不带白点的要么是起始位,要么是停止位,或者是字节中间的时间间隙,你还需要趴在示波器面前一位一位的数吗?
再来看看IIC的数据解析波形,绿点表示起始位,红点表示结束位,0x90是器件地址,后续为数据,有了逻辑分析仪,读写EEPROM还用愁吗?


        最后看看SPI协议数据波形,通道0和通道1分别是MISO和MOSI,通道2是CLK,通道3是EABLE,数据直接可以得出,SPI通信读写了什么数据,一目了然,对于调试程序,解密数据是不是很有用呢?


        如果你觉得上边图形显示数据是经典之作,那下边的就是神来之笔,如下图,可以直接把波形上抓到的所有的十六进制数据导出,以表格的形式显示在我们面前,对于大数据帧,非常方便。当前的时间,数据包,数据等信息,一目了然。
     


          截止到2014年10月,jiankun逻辑分析仪LAX016系列的可以支持10种协议,后续软件上协议也会不断添加,当前支持的协议种类有:UART(232/485/422)、I2C、SPI、CAN、DMX512、I2S/PCM、Manchester、1-Wire、Simple Parallel、UNI/O。后续我们会陆续添加一些协议解码器插件,除此之外,你如果会C++语言,熟悉VS2010软件,我们也提供了二次开发协议插件的说明文档和接口,你可以根据说明书自己做协议插件。SDK的下载地址是:http://www.kingst.org/download?fl=JkiAnalyzerSDK.zip
      
       3、原始数据导出
        有时候测量的是标准协议,但是有时候测量的是大量的原始波形,这些波形数据可以导出提供给一些第三方软件进行计算,比如matlab,当然也可以通过这个数据查找波形变化在哪一时刻。任何一个通道发生变化就保存一次当前时刻以及所有通道的状态值


        4、PWM方波发生器
        在某些场合我们需要一个方波发生器的时候,像我们的LAX016系列逻辑分析仪就自带了两路PWM信号发生器,我们可以通过设置让他输出方波信号,方便我们调试一些程序功能。


5、扩展功能
        逻辑分析仪采集到的是原始波形,至于想要什么功能,可以根据波形自己来改进上位机软件就可以了,因此功能可扩展性很强,比如后续增加脉冲计数器,频率计等功能,都是可以的。

       二、什么是逻辑分析仪
   
      1、基础知识

        逻辑分析仪是利用时钟从测试设备上采集和显示数字信号的仪器,最主要作用在于时序判定和分析。逻辑分析仪不像示波器那样有许多电压等级,而是只显示两个电压(逻辑1和0)。设定了参考电压后,逻辑分析仪将被测信号通过比较器进行判定,高于参考电压者为逻辑1,低于参考电压者为逻辑0,在1与0之间形成数字波形。在针对单片机、ARM、FPGA、DSP等数字系统的测量测试时,相比于示波器,逻辑分析仪可以提供更佳的时序精确度、更复杂的逻辑分析手段以及大得多的数据采集量。
例如:一个待测信号使用1MHz采样率的逻辑分析仪进行采样,当参考电压设定为1.5V时,逻辑分析仪每隔1us将当前电压与1.5V相比较,超过1.5V判定为高电平(逻辑1),低于1.5V判定为低电平(逻辑0),从而生成一个采样点,然后将所采集到的采样点(逻辑1和0)用直线连接成一个波形,用户便可以从中观察和分析实际信号的时序、逻辑错误、相互关系等等。
        逻辑分析仪采样原理示意图如下:


三、逻辑分析仪参数介绍

        1、采样频率:每秒采集信号的次数
         逻辑分析仪的采样率可以理解成时间分辨率分之一。比如用1M的采样率,那时间分辨率就是1us,用500M采样率的时间分辨率就是2ns。通常情况下,逻辑分析仪的采样率是信号频率的5倍以上才能正常还原信号,要10倍以上才能比较好的还原信号。
逻辑分析仪的采样原理前边讲过了,那么用10M采样率采集1M方波的话,一个周期点10个点。而1个方波有高低脉冲两部分组成,所以一个脉冲采样的点数是5次,因此这个脉冲宽度所存在的最大脉宽误差就是20%,实际脉冲宽度 = 测量脉冲宽度*(0.8~1.2),这个都是有可能的。这里就可以看出,采样率越高,脉冲宽度误差就越小,测量精度就越高,用100M采样1M的话,脉冲宽度误差就是2%了。不过即使脉冲宽度有误差,也关系不大,因为逻辑分析仪的用途,往往是看时序,对脉冲宽度那点误差,大多情况下是可以忽略,只是大家要明白这个脉宽误差是必然存在的。
因此我们在购买逻辑分析仪以及使用逻辑分析仪的时候,首先要选的第一个指标就是采样率。如果采集9600波特率的UART通信,1M的采样率就可以采集的十分精准,但是如果采集STM32F103的18M的SPI通信,需要最低是100M采样率的分析仪,并且脉宽误差还会比较大,如果希望观察到的波形精度高一些就得选用200M采样率或者500M采样率的分析仪。

        2、存储深度:保存所采集到的点的个数
        刚才讲采样率1M的话,也就是说1秒钟可以采集1M个点,这些点就保存在了我们的存储器中,一共可以保存多少个呢?这个参数就是我们的存储深度。换个角度讲,采样率决定了采样精度,而采样率固定的情况下,存储深度决定了可以存储的信号的时间。存储时间=存储深度/采样率。

        3、健坤逻辑分析仪产品参数
        本系列产品包含LA1016、LA2016、LA5016三款产品:



相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:手把手教你学单片机 www.kingst.org

11

主题

44

帖子

3

粉丝