amoBBS 阿莫电子论坛

 找回密码
 注册
搜索
bottom↓
查看: 8767|回复: 54
打印 上一主题 下一主题

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

  [复制链接]
跳转到指定楼层
1
发表于 2014-10-13 16:02:17 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 51kingst 于 2014-10-13 18:19 编辑

        金沙滩工作室:逻辑分析仪调试单片机、ARM、FPGA数字系统之一  -- 逻辑分析仪能干什么            PDF版本地址: 逻辑分析仪调试单片机、ARM、FPGA数字信号的原理和作用.pdf (565.37 KB, 下载次数: 499)    
      
        优酷视频地址: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三款产品:
        


        四、联系我们
       感谢您选择我们的产品,如使用过程中遇到任何疑问或故障,欢迎通过下列方式联系我们,我们将竭诚为您服务。
       Tel:13780615696
        Web:http://www.kingst.org
        E-mail:51kingst@163.com
        QQ:415942827
        淘宝:http://kstmcu.taobao.com
        
      
2
 楼主| 发表于 2014-10-13 16:02:38 | 只看该作者
大家有什么问题,可以直接留言,我会尽快在帖子中给与回复。
3
发表于 2014-10-13 16:08:25 | 只看该作者
51kingst 发表于 2014-10-13 16:02
大家有什么问题,可以直接留言,我会尽快在帖子中给与回复。


1、我一般主要搞搞电机,偶尔搞搞UART的破解,电机的PWM频率一般在5M以下,选哪款比较合适呢?
2、这个PWM是否能还原出过冲,还原出上升时间或下降时间呢?
3、输出波形,最高能输出多少频率,可以输出哪些波形? 方波,正弦波,剧齿波,还是任意波?
4
 楼主| 发表于 2014-10-13 16:20:46 | 只看该作者
kinsno 发表于 2014-10-13 16:08
1、我一般主要搞搞电机,偶尔搞搞UART的破解,电机的PWM频率一般在5M以下,选哪款比较合适呢?
2、这个PWM是 ...

UART通信和电机频率5M以下,选100M就足够,不过LA2016是我们的主打,我们定价相对便宜,性价比高一些,是推荐的一款。电机的PWM测量得注意一个问题,由于电机干扰比较严重,有可能带电机继电器这种东西测量会有干扰脉冲,我不确定。如果去掉电机测量肯定完全没问题。
脉冲信号的过冲和上升时间下降时间这些逻辑分析仪都测不了,必须用示波器,但是破解UART通信,分析仪就要好用的多了。
输出波形只能输出3.3V的方波,频率范围从0.1HZ到20Mhz(LA1016和LA2016),0.1到12.5M(LA5016)
5
发表于 2014-10-13 19:21:29 | 只看该作者
受教了,如果UART的数据是经过上位机运算加密了,能解析得出运算的规律不?
6
发表于 2014-10-13 19:28:54 | 只看该作者
楼主,最近想入手一个逻辑分析仪,但对怎么使用还有些不解,希望楼主,能拿实际的例子讲解下,比如分析IIC,SPI等,并能出相关的视频,以便大家能快速的上手你的逻辑分析仪
7
 楼主| 发表于 2014-10-13 19:32:21 | 只看该作者
xyz2008 发表于 2014-10-13 19:28
楼主,最近想入手一个逻辑分析仪,但对怎么使用还有些不解,希望楼主,能拿实际的例子讲解下,比如分析IIC, ...

你看看这个资料先,这个文字教程里就有比较详细的说明。
下载地址: 逻辑分析仪使用手册.pdf (1.14 MB, 下载次数: 252)

后边还有更详细的,我会陆续做好发布在论坛。
8
发表于 2014-10-13 20:01:04 | 只看该作者
OK,看到了,谢谢,还有,我问下,你们这个逻辑分析仪对USB口有没有限制,是不是usb2.0,usb1.1都可以
9
 楼主| 发表于 2014-10-13 20:04:01 | 只看该作者
xyz2008 发表于 2014-10-13 20:01
OK,看到了,谢谢,还有,我问下,你们这个逻辑分析仪对USB口有没有限制,是不是usb2.0,usb1.1都可以 ...

理论上都可以,但是我们标的是2.0。一方面1.1的电源供电能力有点弱,另外一个方面通信速度慢些,等的时间会长一些,这个是否绝对能用,过几天我得试试,因为手上暂时没有USB1.1的接口,试完了答复你关于USB1.1的问题。
10
发表于 2014-10-13 20:05:23 | 只看该作者
OK,谢谢!!!!!!!!!!
11
发表于 2014-10-14 10:41:25 | 只看该作者
建议协议分析那里加上红外解码的,就几种协议,对于会的来说应该还比较好做纯属建议
12
发表于 2014-10-14 10:53:06 | 只看该作者
收藏
13
发表于 2014-10-14 10:56:44 | 只看该作者
收藏学习,正需要了解,有一套孕龙的,要学会用起来。
14
发表于 2014-10-14 10:56:49 | 只看该作者
mcu_mouse 发表于 2014-10-14 10:41
建议协议分析那里加上红外解码的,就几种协议,对于会的来说应该还比较好做纯属建议 ...

嗯,感谢支持,这些也是在我们的后续计划之中的,后面会陆续添加
15
发表于 2014-10-14 11:42:05 | 只看该作者
51kingst 发表于 2014-10-13 19:32
你看看这个资料先,这个文字教程里就有比较详细的说明。
下载地址:

我也来学学怎么用
16
发表于 2014-10-14 16:45:21 | 只看该作者
支持USB3.0吗
17
 楼主| 发表于 2014-10-14 17:11:42 | 只看该作者

支持3.0,
18
发表于 2014-10-21 11:04:17 | 只看该作者
good  不错
19
发表于 2014-10-22 10:27:37 | 只看该作者
能不能出个功能,可以把存储的波形载入或者拖拽到任意通道,或者是允许把某个通道的波形锁定,换个通道采集后可以形成对比,这样可以比较方便直观的比较几个波形的区别
20
发表于 2014-10-22 13:31:35 | 只看该作者
stely 发表于 2014-10-22 10:27
能不能出个功能,可以把存储的波形载入或者拖拽到任意通道,或者是允许把某个通道的波形锁定,换个通道采集 ...

这个实现起来问题会比较多,比如采样率不一样会导致时间坐标不同,不同触发条件和深度下波形的对齐也是问题。相比来说,更建议采用以下方法:
把需要对比的波形数据都保存起来,然后打开多个软件界面,每个界面加载一个需要对比的波形,把不关心的通道都隐藏,然后调整窗口大小,想怎么对比都可以了。
21
发表于 2014-10-23 19:10:38 | 只看该作者
视频讲得很细,正在学习
22
发表于 2014-12-27 15:57:18 | 只看该作者
比较下和原装的软件,好像只是翻译
23
发表于 2015-1-5 13:12:16 | 只看该作者

宋老师 : USB2.0用多少M的 100?200 ?500?
24
 楼主| 发表于 2015-1-5 13:15:16 | 只看该作者
AE007 发表于 2015-1-5 13:12
宋老师 : USB2.0用多少M的 100?200 ?500?

USB2.0 低速?全速?高速?低速和全速测量的话,都用100M就可以测,最好是200M或者500M,100M测全速有点吃力。但是高速,所有的分析仪都测不了。
25
发表于 2015-1-5 13:17:30 | 只看该作者
51kingst 发表于 2015-1-5 13:15
USB2.0 低速?全速?高速?低速和全速测量的话,都用100M就可以测,最好是200M或者500M,100M测全速有点 ...

谢谢老师解答 ,现在还有对坛友的活动吗?
26
 楼主| 发表于 2015-1-5 13:30:15 | 只看该作者
AE007 发表于 2015-1-5 13:17
谢谢老师解答 ,现在还有对坛友的活动吗?

坛友8折价格或者是9折送进口夹子。不过测是能测,但是我不确定协议能不能自动解析。这个问题我让同事后边研究一下这块。因为现在是完全参考别人的代码正面分析出来的,别人的代码是1.0和1.1,不知道和2.0低速全速协议上有没有差异。这块问题,近期会着重研究一下这个问题。
27
发表于 2015-1-5 13:37:59 | 只看该作者
51kingst 发表于 2015-1-5 13:30
坛友8折价格或者是9折送进口夹子。不过测是能测,但是我不确定协议能不能自动解析。这个问题我让同事后边 ...

嗯 行 谢谢
28
发表于 2015-1-5 13:57:13 | 只看该作者
zlg的逻辑分析仪有一种 重复启动的模式, 你们的有吗?
29
 楼主| 发表于 2015-1-5 14:02:47 | 只看该作者
love_zjb 发表于 2015-1-5 13:57
zlg的逻辑分析仪有一种 重复启动的模式, 你们的有吗?

这个功能不难,但是由于软件工程师最近有事情忙,所以一直没加。估计春节后会尽快加上这个功能。
30
发表于 2015-4-6 15:37:06 | 只看该作者
现在买还有团购价吗?
31
发表于 2015-4-6 21:43:07 | 只看该作者
这些不贵的逻辑分析仪真的帮了很大的忙
32
发表于 2015-6-4 15:37:00 | 只看该作者
确实一直听到逻辑分析仪有多强大,但是等我买了个昂贵的逻辑分析仪,却发现不知道用来干嘛。。。
33
发表于 2015-7-16 13:32:04 | 只看该作者
Saleae logic 能分析usb协议吗?
34
发表于 2015-7-16 15:48:03 | 只看该作者

Saleae logic 能分析usb协议吗?
35
发表于 2015-8-10 10:48:33 | 只看该作者
以前看到别人用过,不知道是什么东西,原来这叫做逻辑分析仪。
看来需要学习的东西太多了。

努力、努力、努力ing ..........................
36
发表于 2015-9-21 17:18:52 | 只看该作者
只用到3个通道,5M的采样率(SPI的数据 时钟为500K)。能不能将采样的数据,经USB直接写到一个文件。想采集很长时间的数据(大概半个小时),能实现吗?
37
 楼主| 发表于 2015-9-21 20:11:28 | 只看该作者
本帖最后由 51kingst 于 2015-9-21 20:12 编辑
sjx000000 发表于 2015-9-21 17:18
只用到3个通道,5M的采样率(SPI的数据 时钟为500K)。能不能将采样的数据,经USB直接写到一个文件。想采集 ...


这个就不一定能行,如果时间太长的话,始终那么快并且有数据,估计实时送到电脑内存都不够用的。因为当前内存最大的就是通过USB口实时送入电脑的模式,而送入电脑的模式,一个变化量是4个字节,500K的始终,一个周期两个变化量,1秒出现1M个变化量,也就是500K*4=2M个字节,如果SPI的4个通道都变化,那么1秒就会产生8M个字节,1分钟就是480M个字节,4.8G个字节,而由于现在软件都是采用的32位模式,因此大概最大可以存储1.8G,因此你这个估计不管采用底下压缩,还是采用电脑压缩的模式,都是没办法满足你的需求。

当前产品有两种,一种是在设备内部自带DDR存储器,信号变化一次存一个,有32M/通道的,有50M/通道的,这种估计对你这样的不行,另外一种就是实时送入电脑存储的,估计也不行。你这个速度和时间都有点太长了。
38
发表于 2015-11-5 20:06:55 | 只看该作者
收藏。。。
39
发表于 2015-11-5 20:07:18 | 只看该作者
收藏。。。
40
发表于 2016-1-10 23:27:55 | 只看该作者
用的好 我还准备在多买几个!!!
41
发表于 2016-1-29 07:10:24 来自手机 | 只看该作者
可以,,,,,,,,,,,,
42
发表于 2016-2-29 00:18:49 | 只看该作者
请问该逻辑分析能解析出IIC的通信协议吗?即两块单片机控制模块A、B:其中A为主机,B为从机,通信时B接收A的数据,通过逻辑分析仪能否解析出从机B的地址码吗?
43
发表于 2016-3-2 14:18:47 | 只看该作者
宋老师,问个简单的问题,在使用STM32做调试的时候,用哪款逻辑分析仪?顺便的也问一下使用ARM调试时用哪款逻辑分析仪??
44
发表于 2016-3-8 15:47:16 | 只看该作者
本帖最后由 zhuyitou 于 2016-3-8 15:59 编辑

LZ您好,我在用LA2016时,采集SPI数据,采样深度为200M,采样率为200M,CS设置为下降沿触发,我发送的数据真实为0x240,0x0,然而采集的数据为0x120,0x0,经过多次测量,
实际数据            采集数据
0x240,0x0          0x120,0x0
0x230,0x00        0x0118,0x0
0x0235,0x1c00   0x011a,0x8e00
0x0226,0x6600  0x0113,0x3300
感觉解析的数据差2倍啊,我最可能出错的地方,可能是哪里,谢谢

另外:其他设置如下:
Most Significant Bit First
16 bits Per Tranfer
Clock is High when inactive(CPOL = 1)
Data is Valid on         Clock Leading Edge(CPHA = 0)
Enable line is Active Low(Standard)
45
发表于 2016-3-9 11:30:31 | 只看该作者
zhuyitou 发表于 2016-3-8 15:47
LZ您好,我在用LA2016时,采集SPI数据,采样深度为200M,采样率为200M,CS设置为下降沿触发,我发送的数据 ...

需要采集到波形的kdat文件来进一步的分析,给您发了站内信,里面有我们的联系方式
46
发表于 2016-3-9 12:23:42 | 只看该作者
其实我一直好奇软件怎么开发的,qt库版本都和saleae不一样
47
发表于 2016-5-19 11:35:51 | 只看该作者
很详细,学习了~
48
发表于 2016-5-19 11:56:14 | 只看该作者
mark一下
49
发表于 2016-5-20 14:09:58 | 只看该作者
kvts 发表于 2014-10-22 13:31
这个实现起来问题会比较多,比如采样率不一样会导致时间坐标不同,不同触发条件和深度下波形的对齐也是问 ...

你好,能不能解释下 选项 里的 触发位置 是什么意思
50
发表于 2016-5-24 13:17:13 | 只看该作者
本帖最后由 kvts 于 2016-5-24 13:18 编辑
horbour 发表于 2016-5-20 14:09
你好,能不能解释下 选项 里的 触发位置 是什么意思


就是触发点所在整个采样时间内的位置,举个例子:触发位置设为10%,整个采样时间为1s,那么总的波形中,前0.1s是触发发生前的数据,后0.9s是触发发生后的数据。
51
发表于 2016-5-24 13:30:57 | 只看该作者
kvts 发表于 2016-5-24 13:17
就是触发点所在整个采样时间内的位置,举个例子:触发位置设为10%,整个采样时间为1s,那么总的波形中, ...

谢谢,那意思就是说:如果没有设置触发条件,这个参数设置成多少都行?
52
发表于 2016-5-25 15:02:43 | 只看该作者
horbour 发表于 2016-5-24 13:30
谢谢,那意思就是说:如果没有设置触发条件,这个参数设置成多少都行? ...

嗯,不设置触发条件的话,这个参数没有意义。
53
发表于 2016-8-29 12:45:44 | 只看该作者
能分析底层的时序,可以动态抓取显示吗
54
发表于 2016-8-29 14:04:16 来自手机 | 只看该作者
暂时还没有用到,先看看
55
发表于 2018-9-2 11:22:10 | 只看该作者
搭车学习!落伍了啊
友情提示:标题不合格、重复发帖,将会被封锁ID。详情请参考:论坛通告:封锁ID、获得注册邀请码、恢复被封ID、投诉必读
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|阿莫电子论坛(原ourAVR/ourDEV) ( 公安备案:44190002001997(交互式论坛) 工信部备案:粤ICP备09047143号 )

GMT+8, 2020-2-27 23:17

阿莫电子论坛, 原"中国电子开发网"

© 2004-2018 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表