基于CPLD与DSP组成的声卡接口技术
1 引言
使用复杂可编程逻辑器件(CPLD)可提高系统集成度、降低噪声、增强系统可靠性并降低成本,同时它不仅具有电擦除特性,而且出现了边缘扫描及在线编程等高级特性,因而可用于状态机、同步、译码、解码、计数、总线接口等很多方面,在信号处理领域的应用也非常活跃。MAX7000系列是ALTERA公司采用先进的0.8μm CMOS EEPROM技术制造的高性能、高密度的CPLD[1]。MAX7000的结构可完全模仿TFL,并可将SSI,MSI,LSI和传统PLD的逻辑函数高密度地集成。EPM7128S是MAX7000系列的高密度器件,它有128个逻辑宏单元和最大100个输入,具有在系统编程(ISP)特性,非常适合输入、输出端要求较多的逻辑复杂的控制密集型系统。将EPM7128S用到DSP与ISA总线声卡的接口电路中,不仅使整个系统体积显著减小,且硬件故障率明显降低,调试工作也变得很容易。DSP与ISA总线声卡的接口原理声卡的工作原理 图1示出了声卡的基本工作原理:主机通过总线将数字化的声音信号以PCM方式送到数模转换器(D/A),将数字信号变成模拟的音频信号;同时又可以通过模数转换器(A/D)将传声器或CD的输入信号转换成数字信号,送到计算机进行各种处理。实际具体声卡的硬件结构请参阅有关资料和手册。
2.2 WSS兼容声卡和ISA总线硬件接口
WSS是Microsoft公司为统一声卡的标准、提供方便的应用而提出的Windows环境下多媒体扩展定义的音频子系统标准,它包括硬件平台和软件接口。该类声卡的硬件结构主要包括声音处理芯片/组、功率放大器、总线连接端口、输入输出端口、MIDI及游戏杆接口、CD音频连接器等m。根据实际需要,只需了解声卡与ISA总线的接口信号及时序要求。要实现DSP对声卡的直接操作,DSP系统必须提供上述ISA总线信号。
DSP一般可提供数据信号线、地址信号线、IO读写信号线和READY信号线,同时还有多个中断输入引脚,但并不直接具备DMA功能引脚,这给DSP与声卡之间的接口带来了不便,这也正是笔者所要解决的问题。
2.3 TMS320C2XX使用HOLD操作的DMA
TMS320C2XX[~实现DMA功能的关键是,该类芯片提供了两个信号引脚:HOLD/INTl和HOLDA,这两个信号控制的HOLD操作过程为:
(1)HOLD,外部设备可以把该引脚驱动到低电平从而请求对外部总线的控制。如果HOLD/INTl中断线被允许,那么这将触发中断。
(2)HOLDA,在响应HOLD中断时,软件逻辑可以使处理器发出HOLDA应答信号,表示它将放弃对其外部总线的控制。根据百Z圃5五,外部地址信号(A15~A0)、数据信号(D15~D0)以及存储器控制信号(P5,DS,BR,STRB,R/W,RD,WE)被置为高阻状态。
从(1)、(2)可以看出C2XX的HOLD操作允许对外部程序、数据以及I/O空间进行直接存储器访问,但该功能是在INTl中断程序中实现的,因而中断线INTl对下降沿和上升沿两者都应敏感。当C2XX检测到下降沿时,它完成正在执行的当前指令,然后迫使程序控制转到中断服务子程序,此子程序执行IDLE(空闲)指令。根据IDLE,HOLDA变为有效而外部总线被置为高阻状态。只有在检测到HOLD/INTl引脚上的上升沿之后,CPU才退出IDLE状态,HOLDA变为无效,并使外部总线返回到正常状态。
从以上分析可以看出C2XX的DMA操作与PC机中的DMA操作的区别。在PC机中,CPU收到DMA请求信号后,迫使CPU在现行的总线周期结束后,使其地址、数据和部分控制引脚处于三态,从而让出总线的控制权,并给出一个DMA响应信号;在DMA操作完成后,DMA请求信号无效以后,CPU再恢复对系统总线的控制。而在C2XX中,DMA申请信号将引起C2XX中断,在中断程序中发出软件指令使C2XX各信号引脚处于三态,同时也给出了一个DMA响应信号;在DMA操作完成后,C2XX检测到DMA请求信号无效以后,虽然总线返回到正常状态,C2XX仍处在中断程序中。从以上分析可知,尽管中断需要保护断点和现场,使得C2XX的DMA的处理速度与PC机相比要低得多,但毕竟C2XX也实现了DMA操作,从而可借助DMA控制器8237实现对声卡的DMA操作访问。
2.4 DSP与声卡的接口电路
整个系统结构框图如图2所示。从图中可以看出,CPLD主要完成数据总线驱动、地址总线驱动、地址锁存器、译码和时钟分频等功能,其中译码电路是整个电路的核心。数据总线驱动电路和地址总线驱动将DSP的内部数据与地址总线与外围电路的数据和地址总线相互隔离;地址锁存器生成8237在DMA服务周期通过数据线DB0~D7输出的高8位地址A8~A15。时钟分频电路为外电路提供需要的各种频率的同步时钟。-译码电路为各单元电路以及外围电路提供读写信号、锁存信号、片选信号和使能信号。
图2中1为DSP内部系统总线,2为外部
- 在采用FPGA设计DSP系统中仿真的重要性 (06-21)
- 基于 DSP Builder的FIR滤波器的设计与实现(06-21)
- 达芬奇数字媒体片上系统的架构和Linux启动过程(06-02)
- FPGA的DSP性能揭秘(06-16)
- 用CPLD实现DSP与PLX9054之间的连接(07-23)
- DSP+FPGA结构在雷达模拟系统中的应用(01-02)