CS4235在DSP嵌入式系统设计
DSP的DMA应答信号也经GAL16V8译码送回8237的HLDA引脚。地址锁存器74LS573的作用是锁存8237在DMA服务周期通过数据线D0"7输出的高8位地址A8"15。由于DSP不直接提供、、和信号,故这些信号只能由GAL16V8译码得到。
图3所示电路提供了4个通道的外设请求DMA服务信号,并且8237直接拥有AEN引脚,满足了表1中的所有要求,从而就能正确实现DSP与声卡的接口。实际工作中,我们根据声卡在PC机中的使用情况设置8237的DREQ1和DACK1为声卡的播放通道,8237的DREQ3和DACK3为声卡的采集通道,声卡的中断申请信号IRQ7经GAL16V8反向后与DSP的引脚连接。 2.3 系统工作原理及时序
图3所示DSP系统对声卡的DMA操作过程可用图4来描述,工作时序如图5所示。现结合图4、图5将系统工作原理及操作顺序说明如下: ① CS4235向DMA控制器8237发出DMA请求信号DREQ; ② 8237向DSP发出总线请求信号HRQ; ③ DSP的引脚检测到下跳沿后,进入INT1中断,保护完断点和现场后,发IDLE指令,DSP的引脚电平变低,响应外部DMA请求; ④ 8237接管总线后,先向CS4235发DMA请求的响应信号DACK,表示允许CS4235进行DMA传送,然后按事先设置的初始地址和需传送的字节数,依次发送地址和读写命令,使得在RAM CS4235之间直接交换数据,直至全部数据交换完毕;
⑤DMA传送结束后,自动撤消向CPU的总线请求信号HRQ,此时DSP检测到引脚的上升沿,DSP返回到IDLE指令的下一条指令,DSP获得总线的控制权,继续在INT1中执行程序。
3 DSP与CS4235的软件接口
CS4235的ISA总线接口是即插即用(PnP)的,必须通过编程激活声卡后,才能直接存取声卡寄存器,对声卡进行配置,以完成不同的工作。实际上,针对非PnP的老ISA卡设计的ISA插槽同样适用于PnP卡,仅需在软件上做出相应的改动而已。DSP对PnP卡的识别过程与微机对PnP卡的识别过程是一模一样的,图6给出了DSP对PnP卡的识别程序流程。从上述的PnP卡的识别与配置过程可见,如果是在PC机环境中,那么这一过程可自动完成;而在用户所设计的系统中,这一过程就显得有些烦琐,且意义不是很大。能不能避开PnP协议直接对每块PnP卡进行编程,就像对老的ISA卡那样操作呢?实际上,大多数芯片确实提供了这种简洁、快速的方法,统称为"某某公司关键字"接口方法。本文以CS4235为例介绍这种接口技术。下面所给出的5个步骤完成后,该声卡就和老的ISA声卡操作过程一样了。唯一不足的是,如果系统中使用了2块该类型的声卡,则该方法失效。 ① DSP送32字节"Crystal Key"到地址端口279H,该PnP卡马上进入配置状态。这32字节数据为: 96,35,9A,CD,E6,F3,79,BC,5E,AF,57,2B,15,8A,C5,E2; F1,F8,7C,3E,9F,4F,27,13,09,84,42,A1,D0,68,34,1A。 ② DSP送句柄号到279H。
③ DSP直接配置每个逻辑器件的配置寄存器,设置I/O端口基址、中断号和DMA通道选择。 ④ DSP送79H到279H激活CS4235。 ⑤ DSP禁止该PnP卡参与将来的PnP循环。
上述配置完成后,CS4235自动退出配置状态,进入正常工作,从而就可以根据具体的功能要求对CS4235的寄存器直接进行编程了。
结束语
在全数字化语言学习系统中,我们采用了声效芯片CS4235来代替以前所用的语音录放芯片MSM6588。尽管硬件电路设计和软件操作复杂了许多,但语言学习系统的重要指标,如通频带、信噪比和失真度都达到了多媒体计算机的音质标准。实践表明,微机中的许多关键技术和优秀的设计思想都可以移植到嵌入式系统中去,使嵌入式系统更加丰富多彩。
- 声效芯片CS4235在DSP嵌入式系统的应用 (07-02)
- 基于DSP的声效芯片CS4235嵌入式系统(02-08)
- CS4235在DSP嵌入式系统的应用研究(08-11)
- 在采用FPGA设计DSP系统中仿真的重要性 (06-21)
- 基于 DSP Builder的FIR滤波器的设计与实现(06-21)
- 达芬奇数字媒体片上系统的架构和Linux启动过程(06-02)