DSP仿真器原理

我们在硬件学习时通常会接触到仿真器以及编程器:
在线仿真器 (In-Circuit Emulator,ICE) 是用来调试嵌入式系统软件的硬件设备。嵌入式系统开发者要面对一般软件开发者所没有的特殊问题,因为嵌入式系统往往不像商业计算机那样具有键盘、显示屏、磁盘机和其他各种有效的用户界面和存储设备。当仿真器被插入到待开发芯片的某个部分的时候,在线仿真也被称作硬件仿真。这样的在线仿真器,可以在系统运行实时数据的情况下,提供相对很好的调试能力。
编程器:有两个部分组成,分别为编程器(又叫烧录器、烧写器)和连接线。把裸芯片(非裸芯片电擦除后再烧写、OTP的报废)放入编程器中,启动软件连接,就可以烧写了。

一般来说调试是通过调试工具完成的,调试工具通常是一个在PC 上运行的软件。Debugger 调试工具的主要任务是从目标CPU 获取信息并控制程序在目标CPU 上的运行(例如单步执行,设置断点,运行)。但仿真器在执行上述工作时需要把在目标CPU 上运行的程序停下来。对于实时系统需要实时调试工具,实时调试工具是在不停止目标CPU 工作的情况下,从目标CPU 获取信息并控制程序在目标CPU 上的运行。想要实现实时调试,需要在调试工具和目标CPU 之间建立一条实时信息通道。实时通道包括两个方面:硬件通道和软件通道。我们称实时硬件通道为实时仿真器,实时软件通道为实时调试工具。

仿真器应该与目标MCU在电气及物理上等价,并能在开发系统中替代MCU。目标系统的操作可由调试工具得以控制及观察。在开发初期,开发系统依靠仿真器工作,当目标功能完善后,仿真器将被真正的MCU取代。

1、DSP实时调试——Realtime Emulator
    要在调试工具和目标CPU 之间实现硬件实时通信通道,需要在PC 端和目标DSP 端定义硬件接口。TI 的DSP 用JTAG 作为硬件调试接口,我们通常所用的PC 端的硬件接口有PCI、USB、EPP、PCMCIA,所以ICE包括两个接口,一个是连接到目标板上的MCU插座,另一个与PC相连。(使用仿真器前一定要检查一下供给的电源是否正确,否则很容易造成仿真器损坏。)实时仿真器的代表是TI 的XDS560 和闻亭公司的XDS560,支持高速RTDX、ATE,并包含了510的主要函数。TI 的XDS510和闻亭公司的XDS510 是准实时仿真器,支持低速RTDX,但不支持AET。

2、Realtime Debugger——High Speed RTDX
    为在调试工具和目标CPU之间实现软件实时数据交换通道,TI在CCS中定义了RTDX技术(实时数据交换)。在PC上使用CCS调试工具的使用者要在目标DSP中使能RTDX模块,DSP软件工程师要把RTDX.obj与他自己的程序连接起来,然后在他的应用软件中调用RTDX功能。当使用RTDX功能时,需要停止目标DSP的运行,然后在调试工具和DSP之间建立数据通道。当使用TDS510或XDS510型号的仿真器时,RTDX的速度仅有5-10K bytes/S,对于DSP的应用来说,这远远不够。仿真器与DSP的JTAG接口造成了RTDX的瓶颈,想要增大RTDX的带宽就需要使用TDS560 或XDS560 和选择DSP的EJTAG接口(如6211,64x,55x)。如果使用XDS560和6211芯片,RTDX速度可以提高到1.5M bytes/S,我们称之为高速RTDX。

3、Real Time Event Debug——Advance Event Trigger (AET)
    在实时系统,需要处理(像硬件中断,定时器)这样的实时事件。我们在处理一般事件时,通常是在中断程序入口插入一个软件中断,事件一旦被触发,程序将停在中断处,我们可以观察所需要的信息。但目标DSP被停止运行后,我们将丢失其他的实时事件和实时数据流。为解决这样的问题TI 提出了AET(高级事件触发),我们可以在不停止DSP运行的情况下捕捉到实时事件。要运行AET,我们需使用560和选择有EJTAG接口的DSP芯片(621X,64X,55X,OMAP)。

DSP仿真器为什么必须连接目标系统(Target)?
    DSP的仿真器同单片机的不同,仿真器中没有DSP,提供IEEE标准的JTAG口对DSP进行仿真调试,所以仿真器必须有仿真对象,及目标系统。目标系统就是你的开发板,上面必须有DSP。仿真器提供JTAG同目标系统的DSP相接,通过DSP实现对整个目标系统的调试。

仿真工作正常对于DSP的基本要求
       1)DSP电源和地连接正确。
       2)DSP时钟正确。
       3)DSP的控制信号RS和HOLD信号接高电平。
       4)Watchdog关掉。
       5)不可屏蔽中断NMI上拉高电平。
CCS或Emurst运行时提示“Can't Initialize Target DSP”
       1)仿真器连接是否正常?
       2)仿真器的I/O设置是否正确?
       3)仿真器的电源是否正确?
       4)目标系统是否正确?
       5)仿真器是否正常?建议使用目标板测试。

参见:“https://blog.csdn.net/levet/article/details/62216646” 

你可能感兴趣的:(DSP开发与技巧,DSP仿真器)