基于PCI总线通用DSP信号处理系统的设计方案
的芯片,可以实现与TMS320VC5402的无缝接口 ;可以对端口进行访问读写。PCI2040提供了一个由PCI总线至插卡总线的直通通路(pass-thru)。PCI2040通过这些数据通路将复杂的PCI接口转换为相对简单的插卡总线接口。在本系统中,DSP中的资源映射到PC机的内存D9008000~D9008FFF和D9000000~ D9007FFF,中断请求为11。
PCI2040通过HPI接口与DSP通信,通信流程如下:PCI总线向PCI2040读写数据,PCI2040会根据这些命令在HPI口上发起相应的要求,这个通信过程可以通过编程首先初始化HPI控制寄存器HPIC以及主机地址寄存器HPIA,然后再从主机数据寄存器HPID中读/写数据来完成。具体的接口电路如图4所示:一块PCI2040最多可以挂接4片 DSP,以用于多DSP系统。
3.2 扩展空间
对信号处理系统来讲,DSP芯片所带的资源常常不能满足要求。这包括两个方面,一是程序空间,二是数据空间。对程序空间,可以选择不同的自举方式,充分利用PC机的资源。对数据空间有下面几种解决方法:(1)选择资源多的芯片,但这会引起成本的上升;(2)改进算法,边读取数据边处理;(3)用一个锁存器保存高位地址,自己扩展数据空间。这 里采用的方法是在用算法进行边读数据边处理的同时,用SRAM对数据空间进行了扩展。考虑到时序关系,以及TMS320VC5402只能与异步的存储器连接等因素。选用了TPS73HD318。它是 3.3V,1M×16大小的静态RAM,高低位字节可选,其读写速度达到12ns,能够与DSP的读写速度相匹配,无须另加接口时序。对于等待时间的产生,可以用软件的方法,对等待状态寄存器(SWWSR)进行设置。而产生的时延在调试时可以对DSP的时延寄存器进行设置, 以达到最大速度。硬件接口如图5所示。
4 DSP系统的自举
所谓自举(Bootload),就是在上电时从外部加载并执行用户的程序代码。加载的途径有:(1)从一个外部的EPROM或FLASH加载;(2)从主机通过HPI总线、并行I/O口、任何一个串行口、用户定义的地址热自举等方式加载。因为信号处理的程序一般都比较大,为了保证这个信号处理系统的通用性和可移植性,需把程序保存在主机中,用HPI总线自举。HPI是一个8位的并行口,PC机和'5402通过共享的片内存储器交换信息。选用HPI自举方式,需要把HINT和INT2引脚连在一起。复位时,Bootload使HINT置位,从而使 INT2置位。BootloaD读出中断标志寄存器(IFR)的bit2位后,即能从HPI口进行自举。与别的54X系列一个很重要的不同是:5402要检查数据存储器的OX7FH位以决定程序的入口地址,用户程序也要在复位完成后才能加载到HPI的RAM中。
5 驱动程序
因为PCI2040扩展了配置空间,所以,要通过 HPI口实现与DSP的通信,需要驱动程序。如果直接使用DDK来编写PCI设备的驱动程序,需要大量的Windows底层的知识,难度比较大。因此可以使用别的驱动程序的编写工具,如Vtools和 WinDrive。我们选用了WinDrive 。Jungo公司的WinDrive与其他驱动程序开发工具的最大不同是它可以在编程者不太了解Windows内核的情况下编写驱动程序。这样,可以把精力主要放在功能的实行上,同时用WinDrive写成的驱动程序只需作很少的修改就能很方便地适用于各种操作系统,如Win dows 9x, Window 2000,Windows NT以及Linux等。编写过程如下:(1)用WinDrive 的Drive Wiz ard 工具查找所要编写驱动程序的PCI卡,并用CREATING INF FILE 产生INF 文件,然后添加新硬件;(2)对PCI卡上的配置寄存器,I/O空间,内存范围,中断,片内寄存器进行设置;(3)生成源代码,对它进行功能添加,主要是实现对DSP 片内SRAM的访问。
- 一种基FPGA和DSP的高性能PCI数据采集处理卡设计(08-26)
- 用双端口RAM实现与PCI总线接口的数据通讯(05-06)
- 基于PCI总线和DSP芯片的图像处理平台的硬件设计(07-06)
- 基于DSP和PCI总线的通用数字信号处理系统(11-13)
- 一种基于PCI总线和DSP技术的虚拟仪器设计(03-16)
- 基于DSP的PCI驱动程序开发 (04-08)