单片机制作逻辑分析仪(逻辑分析仪在嵌入式系统调试中的应用)

如今,嵌入式系统的功能越来越强,但设计和验证问题也变得越来越复杂。善用逻辑分析仪,可以提高查找和解决问题的效率,尤其是最困扰嵌入式系统工程师的时序问题和一些硬件本身固有的问题。

逻辑分析仪介绍

逻辑分析仪(Logic Analyzer)是一种数字数据域测试的常用仪器,它可以把测试通道上的逻辑信号捕捉并存储下来,供设计人员分析。与示波器相比,逻辑分析仪具有测量通道数多(一般有32个通道);触发功能完善;分析功能强大等优点。

逻辑分析仪主要的技术指标有:

* 最高采样频率:最高采样频率越高,捕获带宽越高。

* 通道数:通道数越多,能同时捕获的信号数也就越多。

* 存储深度:存储深度越大,能够记录的数据就越多。

* 输入阻抗:输入阻抗越高,对被测信号的影响越小。

* 触发方式:触发方式越多,使用起来越灵活。

其它技术指标还有:触发门限电平范围、是否有协议分析工具等等,这些都决定了逻辑分析仪的性能。

图1 液晶时序图

单片机制作逻辑分析仪(逻辑分析仪在嵌入式系统调试中的应用)(1)

图2 驱动数码管的时序图

单片机制作逻辑分析仪(逻辑分析仪在嵌入式系统调试中的应用)(2)

图3 读写E2PROM存储器时序图

单片机制作逻辑分析仪(逻辑分析仪在嵌入式系统调试中的应用)(3)

图4 经I2C分析插件解码后的时序图

单片机制作逻辑分析仪(逻辑分析仪在嵌入式系统调试中的应用)(4)

图5 SD卡CMD0命令时序图

本文使用广州致远电子有限公司生产LA1032逻辑分析仪进行测量,LA1032逻辑分析仪集成了逻辑分析、总线分析、协议分析、频率计、逻辑笔等多种测量分析功能,适用于各种数字电路的开发、测量、分析和调试工作。LA1032逻辑分析仪属于虚拟逻辑分析仪,性价比非常高。

应用

通常,嵌入式系统设计可以分为硬件部分和软件部分,从硬件电路的调试到驱动程序的测试几乎都需要逻辑分析仪的帮助。逻辑分析仪在嵌入式系统调试中的应用可以分为三个层次:

第一层:测试信号的时序和时间,这是逻辑分析仪最基本的应用;

第二层:利用逻辑分析协议分析的辅助功能,分析总线协议;

第三层:在线仿真器一起构成组合调试平台,调试驱动程序。

捕获毛刺

由于信号间延时不同,多路信号同时变化的瞬间往往会导致逻辑电路输出中一些不正确的尖峰信号,这些尖峰信号称为“毛刺”。另外,如果设备运行的环境比较恶劣,也会有高频信号串入电路,造成毛刺。如果让“毛刺”进入时钟、清零和置位等对毛刺敏感的输入端口,将会使电路产生不可预知的结果。

确定关键信号的建立时间和保持时间。

建立时间(setup time)是指在触发器的时钟信号上升沿到来以前,数据稳定不变的时间,如果建立时间不够,数据将不能在这个时钟上升沿被打入触发器;保持时间(hold time)是指在触发器的时钟信号上升沿到来以后,数据稳定不变的时间,如果保持时间不够,数据同样不能被打入触发器。

液晶既是一个慢速设备也是一个对时序很敏感的设备。如果数据的建立时间不够,很容易显示乱码。图1是利用逻辑分析仪捕获的液晶总线时序,并利用测量点来获取建立时间和保持时间的信息。

验证电路逻辑

电路设计好后,通常利用逻辑分析仪对输入输出信号进行采集分析,这样可以比较可靠的验证电路的逻辑功能。笔者为NiosII处理器设计了一个用于动态扫描8位数码管的IP核,由逻辑分析仪捕获的数据输出如图2所示。

分析总线协议

在确定关键信号路径上无“毛刺”干扰,且建立时间和保持时间符合器件时序要求后,下一步就是分析器件间是否能正常传输数据,即协议是否正确。MCU通过I2C总线对两个外部E2PROM存储器(器件地址分别是0xA0和0xA2)进行操作的时序图如所示。

若工程师要根据逻辑电平的高低进行人工分析,显然十分困难,更不要说区分哪些数据是发给E2PROM1的,哪些数据是发给E2PROM2的。这时,可以启动逻辑分析仪的I2C分析插件,分析结果的局部放大图如。

常见的总线分析插件还有SPI总线、UART、1-WIRE、CF协议分析等。插件的种类会因厂商的不同而不同。

配合调试工具单步调试程序

嵌入式系统的开发人员通常使用在线仿真器(ICE)来完成软件的调试,但随着嵌入式系统复杂性的提高,单纯的软件调试已经很难适应需求。在线仿真器 逻辑分析仪已经构成一种新的组合调试平台。借助逻辑分析仪可以发现许多隐匿很深的问题。例如,笔者在为NiosII处理器开发SD卡驱动的时候,遇到一个很奇怪的情况,SD卡命令已正确发送,逻辑分析仪也捕捉到了有效应答信号,如图5所示,但是程序仍然返回应答信号等待超时错误。

单步调试程序发现,虽然逻辑分析仪捕捉到了有效应答信号,但是由SPI核读入数据却是0x80,即SD卡忙。最后,问题的原因是,Altera公司提供的SPI核的CPOL=1,CPHA=0模式并不适合SD卡,将SPI核的工作模式设为CPOL=1,CPHA=1则驱动程序就可以正常工作了。

结语

综上所述,逻辑分析仪在嵌入式系统调试中的应用可以从基本数字电路的时序分析到器件间总线协议的分析,还以配合在线仿真器调试驱动软件。借助在线仿真器 逻辑分析仪这种新的调试平台,可以提高查找和解决问题的效率,增加产品的可靠性并能加快产品的上市速度。

查看原文章可了解更多设计型号参数及下载文件:

http://application.ameya360.com/resource/portal.php?mod=view&aid=34

文章中涉及到的料号均可以在AMEYA360电子采购网(www.ameya360.com)中进行购买。

上海皇华信息科技有限公司专属研发方案部门,为您提供产品开发过程中:

1、器件选型

2、功能验证咨询

3、产品定制开发服务

方案设计、智能选型:joeli@ameya360.com

单片机制作逻辑分析仪(逻辑分析仪在嵌入式系统调试中的应用)(5)

更多应用请关注我们的官方ameya360 回复“应用”即可获得更多文章

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页