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变为无效,并使外部总线返回到正常状态。