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” 

  • 2
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
首先,说明一下开源这个仿真器的原因。 1、XDS510仿真器能够调试TI公司绝大多数的DSP器件,仿真速度比较快。将该仿真器的资料公布出来,可以进一步降低学习DSP的门槛,给更多的人提供学习DSP的机会。 2、目前,介绍该仿真器的资料已经比较多,也有很多网友根据这些资料进行DIY。其中有成功的,也有失败的。究其原因是网上的资料透明度不够高,很多地方存在歧义或者避而不谈。我们成功开发了该仿真器,了解该仿真器制作过程中存在的一些问题。将该仿真器开源,一者可以帮助喜欢DIY的网友解决一些问题,二者是想请网友们提供更好的解决思路,从而进一步完善该仿真器。毕竟我们的技术水平有限,而我们的论坛是高手如云之地。 3、我们论坛的DSP版块不是很活跃,在过去的一段时间里,在论坛的开源活动中得到了很多的经典资料,现在也应当为论坛做点贡献了,呵呵。 下面对资料进行说明: 1、原理图。在研究该仿真器的过程中,参考了网上的多个版本的资料,进行了分析和综合(在此需要感谢那些热心的网友)。大多数版本都是采用的CY7C68013A + SN74ACT8990 + CPLD的形式,其中关于该仿真器制作的论文《基于USB2.0接口的DSP仿真技术》没有采用CPLD,而是采用了跳线的形式。网上版本的原理图连线多数混乱,按照个人习惯,给连线关系添加了网络标号,看着比较舒服了些,也避免了一部分歧义。 2、EEPROM。其中存储的内容是:0xC0, 0x05, 0x11 ,0x01, 0xE0, 0x01, 0x00, 0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF。在板子上设置了专门的烧写口,可以通过外部工具烧写。 3、CPLD。在这里只是实现了一个简单的逻辑粘合,逻辑比较简单。这也是很多开发中的一个瓶颈,很多资料对这里是避而不谈。我采用的软件版本是ISE10.1,在板上设有CPLD的烧写口。 XDS510仿真器PCB实物截图:

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值