目前,TI公司DSP芯片的应用越来越广泛,DSP的仿真器是每一个DSP开发者
必备的工具之一。早期的DSP并口仿真器由于传输速度慢,很难适应开发者的需求,而最近TI公司推出的PCI560仿真器,由于价格高,而且使用PCI接
口,使得连接十分不方便。为此,本文介绍一种基USB2.0接口的DSP仿真器(TDS510/XDS510),其理论上数据传输速度可以达到448
Mb/s,而且USB接口可以带电插拨,使用方便。 详情见http://www.okdsp.com/
本文研制的DSP仿真器以美国Cypress公司的USB2.0控制器
CY7C68013为核心,配置实现IEEE1149.1的JTAG片内扫描协议芯片,实现对DSP片内数据的读写和传输等功能。整个系统具有小型化、价
格低以及制造简单的特点,该系统可以实现对TI公司所有系列DSP的仿真,包括C54x、C55x、C6x、C24x、C28x、OMAP等。DSP开发
者可以自行按照本文的方法研制仿真器(网站上还可以提供制作套件,在产品商城可以看到),真正学会制作仿真器的过程,从而避免购买高价的DSP仿真器。
2 系统硬件结构
整个系统以USB2.0控制器CY7C68013和JTAG扫描芯片ACT8990为核心,还包括E2PROM、电压转换芯片、总线驱动以及电压比较器。
2.1 USB2.0控制器CY7C68013
CY7C68013是美国Cypress公司推出的USB2.0芯片,是一个全面
集成的解决方案。CY7C68013主要结构如下:1个增强的8051微处理器、1个智能串行接口引擎(SIE)、1个USB收发器、16
KB片上RAM(其中包括4 KB FIFO)存储器和1个通用可编程接口GPIF(General Programmable
Interface)。这种独创性结构可使数据传输率达到448
Mb/s,即USB2.0允许的最大带宽。智能SIE可以硬件处理USB1.1和USB2.0协议,从而减少了开发时间,并确保了USB的兼容性。
GPIF和主/从端点FIFO(8位或16位数据总线)为ATA、UT0PIA、EPP、PCM—CIA和DSP等提供了简单甚至无缝连接接口,使得和外
设的连接十分方便可靠。
CY7C68013独特的架构具有如下特点。
◆ 包括1个智能串行接口引擎(SIE)。它执行所有基本的USB功能,将嵌入的MCU解放出来以用于实现其他功能,保证持续高速有效的数据传输。
◆
具有4 KB的大容量FIFO用于数据缓冲,当作为从设备时,可采用Synchronous/Asynchronous
FIFO接口与主设备(如ASIC,DSP等)连接;当作为主设备时,可通过通用可编程接口(GPIF)形成任意的控制波形来实现与其他从设备连接,能够
轻易地兼容绝大多数总线标准。
◆ 固件软配置,可将需要在CY7C68013上运行的固件存放在主机上,当USB设备连上主机后,下载到设备上。这样就实现了在不改动硬件的情况下,很方便地修改固件。
◆ 能够充分实现USB2.0(2000版)协议,并向下兼容USB1.1协议。
CY7C68013和外部设备的接口包括I C总线、GPIF接口和FIFO
接口三种方式。数据通过这些接口传输到内部的数据和地址总线,由805l微控制器处理或者直接送到USB的SIE单元,然后传输到USB收发器。此外,还
包括片内的PLL时钟电路,将外部时钟信号连接到USB收发器和8051处理器。
2.2 JTAG扫描芯片ACT8990
ACT8990是美国TI公司推出的测试DSP芯片,它通过JTAG接口扫描
DSP片内的数据区和程序区,扫描结果通过其内部的主机模块传输到其他设备上。ACT8990实际上是实现IEEE1149.1的TBC(Test
Bus
Controller)协议,从而实现对DSP片内空间的访问。ACT8990主要由队列管理模块、主机模块、串行模块、事件管理器、计数器、命令管理以
及读写总线组成。
队列管理模块和串行模块实现IEEEl149.1的扫描协议。队列管理模块通过
SDO
从串行模块读取IEEE1149.1的扫描命令,并通过TMS5~0引脚通知所访问的多片DSP,每个TMS对应一个DSP。队列管理模块将串行模块中的
多个任务分配到EVENT3~0引脚,这样可以让流水完成3个任务,从而加快访问速度。DSP上的数据通过TD10
1引脚传输到队列管理模块,队列管理模块首先确定该任务的状态,然后根据任务状态确定数据属于哪个任务,最后通过SDI将数据传送到串行模块。
事件管理器实现外部事件的管理,DSP可以通过外部事件来中断
IEEE1149.1的协议。事件管理器一般用于DSP控制协议的过程。在DSP仿真过程中,一般不使用事件管理器。计数器用于计算各个任务所访问的数据
地址,如果DSP通过事件管理器控制协议,计数器也可以用于事件管理器的计数。命令模块包括主命令寄存器和副命令寄存器,此外命令模块也可以控制所有的状
态寄存器。
主机模块实现ACT8990和外部设备的数据通信,本文使用CY7C68013作为外部设备,两者之间通过数据和地址总线以及必要的读、写、中断和准备好等控制信号进行数据通信,此时ACT8990为从设备。
2.3 系统硬件结构
仿真系统主要由CY7C68013、24C01、ACT8990、HC244
和EPM7032组成。下方的JTAG接口直接连接到DSP的JTAG接口,USB接口直接连接到计算机的USB接口。整个系统的电源由计算机的USB接
口提供,使用电压转换芯片TPS7333将5 V电压转换成3.3
V提供给各个芯片。使用1片HC244总线驱动芯片,有两个作用:一是驱动总线,以适应驱动能力不同的各个系列DSP芯片;另外一个作用是隔离DSP和
ACT8990,从而保护ACT8990避免受到DSP传输的高电压伤害。
3 系统软件结构
系统软件从上层到底层包括以下几个部分:DSP的仿真软件CCS和USB接口的连
接;USB接口和仿真器上CY68013 的连接;CY7C68013 和ACT8990
的连接;ACT8990和DSP的连接。在以上4个部分中,CCS和USB接口的实现由TI公司提供,使用TI公司提供的通用USB
仿真器驱动程序就可以。USB 接口和CY7C68013
的连接使用24C01实现,实际上就是对CY7C68013进行配置,使得计算机可以识别到仿真器的USB设备,从而实现CY7C68013下载驱动程序
到其内部处理器。一旦软件下载成功,CY7C68013就会发出命令,驱动ACT8990工作,ACT8990根据IEEE1
149.1协议实现对DSP的访问。
3.1 USB2.0驱动程序
需要编写三个程序来实现USB设备的使用。一个是负责USB接口调用程序;另一个
是安装USB的信息文件,用于对USB设备的一些说明;第三个是设备驱动程序,用于对数据的传输。下面对这三个程序分别做一些简单的说明。USB接口调用
程序由Cypress提供,其提供的CY7C68013开发工具包中提供了开发板的源程序,而其开发板的设计就是基于GPD的。这使得开发者在示例程序的
指引下,能快速地编写出用于通信的应用软件。GPD的设计思想是服务于一般用户的,其接口函数具有通用性。通过GPD提供的接口函数原型,可以实现各种
USB操作,包括实现负责USB设备的请求(即打开USB设备);负责USB的GPIF接口控制;通过改变IOCTL(I/OControl
Code)实现各种操作。该程序可以直接使用TI公司提供的源程序或者使用任何一家仿真器供应商提供的源程序。安装信息文件的任务就是将驱动程序文件绑定
到特定的VID/PID,主要说明哪一个文件负责USB接口调用程序.哪一个文件是CY7C68013需要下载的文件。用户还可以根据需要将自己对USB
设备的描述(包括说明、版本号、日期、生产商等信息)加到安装信息文件中。安装文件的编写十分简单,使用记事本直接修改通用的信息文件即可,主要就是将该
仿真器生产公司的信息输入到安装文件。这样,在Windows设备管理器的硬件描述中,将出现生产公司的信息。计算机识别到USB仿真器,并安装好信息文
件后,就可以将驱动程序下载到CY7C68013
中,此程序实现CY7C68013对其内部FIFO和USB接口的监控和数据通信。该程序还要实现数据和DSP仿真软件CCS的连接。由于涉及到CCS的
接口,而TI公司未公开CCS的源代码,用户无法编写该程序,但该程序未涉及USB设备的ID和VID,也就是该程序在所有的仿真器板子上通用,用户使用
任何一家仿真器供应商的程序代码都可以。第三个设备驱动程序的设计我们将会在后面介绍。
3.2 USB2.0配置E2PROM程序
为了配合TI公司提供的仿真器驱动程序,CY7C68013的配置文件相当重要,
只有USB配置正确后,驱动程序才可以下载到CY7C68013中运行。CY7C68013的配置是通过其外接E 2PROM
完成的。上电时,内部逻辑会检查连接到IC总线上的E2PROM
中的第一个字节(0xC0或0xC2),如果是0xC0,就会使用E2PROM中的VID/PID/DID来替代内部存储值;如果是0xC2,内部逻辑就
会把E2PROM 中的内容装入到内部RAM
中;如果没有检查到E2PROM,使用内部存储的描述符来枚举。本系统使用普通的24C01芯片完成配置。配置信息实际上只包括16个字节的信息,其信息
如下:CO 1E 0B 06 00 00 02 00 FF FF FF FF FF FF FF
FF。对24C01的编程,使用Cypress提供的EZ—USB软件完成,该软件中带有专门的EPROM
编程控件,将以上16个字节信息存成扩展名为IC的文件,然后从EZ—USB中下载该文件到E2PROM,完成E2PROM 的配置。
3.3 CPLD的程序
CPLD采用的是EPM7032,实现CY7C68013与ACT8990之间以及ACT8990与HC244之间的逻辑组合。
文章评论(0条评论)
登录后参与讨论