1 引言
从1991年Intel公司首先提出PCI总线的概念,这种高性能的总线经过十多年的发展,已经成为一种非常成熟的总线结构,应用于包括声卡、网卡和显卡等高速外围设备。它以33MHz的时钟频率操作,在32bit数据总线下,以峰值传输速率132MB/s进行工作,1999年发布的PCI规范2.2版,支持66MHz主频和64bit数据通路,峰值传输速率可达528MB/s,适用于语音、图形、图像的处理和其它各类高速外设对高速数据传输的要求[1>[5>。
另一方面,DSP的发展也异常迅速。TI公司继1982年推出其第一个定点DSP-TMS32010芯片系列产品以后,相继推出了共六代定点DSP芯片系列[2>,片上资源越来越丰富,处理能力提高了几十倍,处理速度也从最初的5MIPS到现在的超过100MIPS,并广泛地应用于信号处理、通信、语音、图像和军事等各个领域。
对于嵌入式系统来说,其核心是具有数据处理和系统管理能力的嵌入式微处理器,这种微处理器要对实时多任务有很强的支持能力。因此充分发挥DSP器件在数据处理和速度方面的优势,组成嵌入式系统,可以改善嵌入式系统的实时操作特性[4>。而以PCI总线作为系统的整体组织结构,可以解决数据传输中的瓶颈问题,提高数据实时处理能力。
2 系统结构
本系统的结构与PC机系统的结构相似,如图1所示,由一块底板和多块PCI插卡组成。它与PC机系统的不同之处在于它的处理器不是直接插于主板之上,而是以PCI插卡的系统板的形式出现。
系统中网卡选用10M/100M兼容的PCI网卡,多个嵌入式系统通过共享集线器和百兆交换机,组成百兆局域网。声卡用于语音数据的采集,并播放从网络上传输来的声音数据。网络上传来的动态图像压缩数据经过DSP系统板的解压缩处理,通过PCI总线传输到显卡,显卡接显示器,用于动态图像显示。
系统底板的作用不仅仅是作为系统的支撑托架,而且为各PCI设备提供33MHz的PCI同步时钟。由于PCI总线是同步总线,在PCI总线上的所有操作都要与PCI时钟信号同步,因此底板上 提供的33MHz的PCI时钟信号要为所有的PCI总线交易包括总线仲裁提供时序。但晶振的驱动能力有限,需加时钟驱动电路。
图1 系统结构图
底板的另一个重要功能是提供PCI总线仲裁器,仲裁器响应各多媒体设备提出的总线使用申请,并协调各设备在总线上的操作,而不至于产生总线冲突和和过长的总线延时,从而实现PCI总线传输的高速度[5>。PCI总线仲裁器可由一片CPLD实现。此外底板上还要提供一些控制信号的上拉电阻,用于防止控制总线在没有设备驱动的时候产生过量电流。
3 DSP系统板硬件结构
作为整个DSP嵌入式系统的核心处理单元的系统板,也是以PCI插卡的形式存在于系统之中。系统板通过PCI接口芯片挂接于PCI总线上,其功能是控制各多媒体设备之间数据传输和存储。
其中,PCI接口芯片使用PCI9054,它具有的功能[6>:
● 支持PCI规范2.2版本;
● 具有主设备功能,支持局部总线处理器访问PCI总线上其它设备;
● 局部总线模式可编程(M、C、J模式),局部总线时钟频率最高可达50MHz;局部总线与PCI总线之间的传输速率最高可达132MB/s;
● 具有6个零等待状态的FIFO可用于突发传输;
● 双路独立的具有可编程FIFO的分散/聚集DMA通道;
● 具有可编程PCI中断和局部总线中断输出。
PCI9054用于连接DSP与PCI总线,它工作在32位数据、32位地址的非数据地址复用的C模式下,控制着DSP与PCI总线上的其它设备之间数据传输的方式。这些传输方式有PCI起始方式、PCI目标方式和DMA方式。
PCI起始方式允许PCI9054执行PCI总线上的存储器操作周期、I/O操作周期和配置周期,允许局部总线的处理器访问接口芯片内部的寄存器,并通过接口芯片访问总线上的其它设备。
PCI目标方式可以允许PCI总线上的其它主设备访问PCI9054的局部总线。这种方式下,接口芯片是作为PCI总线的目标设备和局部总线的主设备。
PCI9054还有两路DMA通道,通道1可以在命令模式、块模式和分散聚集模式下工作,通道2可以在块模式和分散聚集模式下工作,分散聚集DMA控制器允许以最少的软件量完成PCI总线和局部总线之间多通道数据传输的高效管理。
DSP可以选用TI公司的16位定点DSP TMS320VC5409,这种DSP芯片具有如下主要特点[8>:
● 最快可达到10ns定点单周期执行时间(100MIPS);
● 高级多总线接口,具有3个独立的16位数据存储器总线和1个程序存储器总线;
● 扩展地址模式下,可以达到8M*16bit的最大外部程序寻址空间;
● 具有16k*16bit的片上ROM和32k*16bit的片上DARAM,二者都可以通过寄存器和芯片管脚配置为数据存储器或程序存储器;
● 片上有16位数据地址总线的增强型8位主机接口(HPI16);
● 6通道DMA控制器。
DSP系统板的硬件结构如图2所示:
图2 DSP系统板结构
PCI9054与DSP的16位主机接口(HPI16)相连接[7>,DSP的16位主机接口能够使主机(本系统中指PCI9054)通过DMA总线访问全部DSP片上RAM,这样PCI总线上的其它设备可以通过PCI目标方式访问DSP内部的RAM空间。PCI9054和DSP之间能够传输非复用的16位地址和数据,在数据传输过程中双方都能产生中断信号。
主机通过三个HPI寄存器访问DSP芯片内32k的DARAM,当主机要读取DSP某地址DARAM的数据时,向HPI地址寄存器(HPIA)写入此地址,然后读出HPI数据寄存器(HPID)的内容即可。主机写DSP片上空间时,也先写地址于HPIA中,再将数据写入HPID即可完成。HPIC为HPI控制寄存器,用于存储HPI的控制位和状态位[3>[8>。
图2中串行E2PROM用于初始化PCI9054内部的配置寄存器,系统上电之后,PCI9054读取E2PROM,将相应的数据写进配置寄存器,完成初始化。
高速SRAM用于DSP脱机运行时作为高速程序存储器,这样才能发挥出DSP高速的优势,因为如果DSP的程存速度较慢,导致DSP在取指令时需要加等待状态,限制了DSP指令执行的速度。FLASH程存也用于存储DSP的程序,它与高速SRAM的作用不同之处在于FLASH是在DSP程序运行之前暂存程序代码的,因为本系统所选的DSP的程序存储器只有内部掩膜ROM,虽然内部RAM可以做程序存储器,但也只有32k字,因此需要用DSP内掩膜ROM中带的引导程序(BOOTLOADER)将用户引导程序通过DSP通用串口转移到DSP内部RAM中,而用户引导程序的作用就是将存储在FLASH中的程序代码转移到高速SRAM中,然后开始执行。
图中CPLD的作用一方面是作为PCI接口芯片的局部总线和DSP的主机接口之间的译码电路,实际上也就是作为PCI局部总线的仲裁器,它对PCI接口芯片和DSP提出的占用局部总线的请求进行仲裁,协调它们之间的逻辑关系,使局部总线上的操作顺利进行。另一方面CPLD还作为DSP和FLASH程存之间的译码电路,由于FLASH的访问速度比较慢,因此需要DSP加上适量的等待状态才可以从FLASH中顺利读取程序代码到SRAM中。
4 系统应用前景
这种基于DSP和PCI总线的多媒体嵌入式系统组成的百兆局域网,作为基本的高性能实时通信网络平台,其带宽完全满足动态图像和语音压缩数据的传输,可用于多媒体全数字化语言学习系统,由于这种学习系统还不多见,而且基于DSP和PCI总线并带有视频功能的产品尚未出现,因此,这种学习系统具有非常好的市场前景。
此外,这种多媒体嵌入式系统还有更广泛的应用领域,将在视频会议系统、视频点播系统、高速分布式数据采集系统,以及包括军事信息等系统在内的众多领域直接发挥作用。
(转载)