DOS下DSP播音的编程(1)
2014-11-16 01:00
导读:计算机应用论文论文,DOS下DSP播音的编程(1)样式参考,免费教你怎么写,格式要求,科教论文网提供的这篇文章不错:摘要 该文介绍了DSP编程的基本原则和方法,并给出程序实例帮助理解,读者可以此
摘要 该文介绍了DSP编程的基本原则和方法,并给出程序实例帮助理解,读者可以此为基础来拓展、生成自己的实用程序。
在DOS下编程,将声音转化为数据记录下来,或将数据转化为声音,通过声卡上配置的喇叭回放出来,是一项很有实用价值和开发魅力的技术。时下流行的声卡,如Sound Blaster Pro及其兼容卡,都配有数字声音处理器DSP芯片(Digital Sound Processor),专门用于对声音进行数字记录及回放,是声音数字处理的基础硬件。而WAV文件、VOC文件等,则都是这些数据记载的具体形式。Creative公司为了方便用户,提供了一组CT-Voice驱动程序,专门针对VOC文件,作为开发利用DSP功能的软接口,使用比较方便。但是,也造成了某些限制。对于开发者而言,直接对DSP硬件编程,实现其功能,也许是更有吸引力的。
声音,无论是从扬声器输出的,还是从话筒输入的,都是模拟量。
而数据,无论是内存里操作的,还是磁盘上存储的都是数字量。因此,微机处理声音,大多离不开ADC与DAC两种转换。由于声音数据的数据量比较大,在声音的数字处理中,除直接由CPU进行传输外,批量数据常采用DMA方式传输,以节省较多的CPU时间。
总括起来,ADC与DAC两种转换方式,直接传输和DMA传输这两种传输方式,再加上不同的压缩方式,如喇叭控制、静寂等等,所有这些的不同组合,就构成了DSP的各种功能。根据DSP的硬件原理,其各种功能都规定了一定的操作步骤。一、DSP编程要点
在DSP编程中,主要注意命令与端口两个层次的操作。1.DSP命令。DSP的功能一般以一个操作码(称作命令号)的写操作为中心,按规定的步骤,配合若干必要的辅助操作,构成一串操作的组合,称为DSP命令。如8位直接播放功能命令号为10h,8位直接录音功能命令号为20h,喇叭的通断功能命令号分别为d1h与d3h等等。2.端口操作。DSP命令主要靠端口操作来实现。端口操作包括DSP初始化、写DSP命令(即发DSP命令)、读DSP状态参数、DSP中断等。所涉及的端口地址及相应的用途如表1。
(科教论文网 lw.nSeAc.com编辑发布) 表1 DSP端口及用途
端口地址由基址2x0h加6、0ah、0ch、0eh等形成,其中,x可取值1、2、3、4、5、6等,具体情况随硬件设置而定,多数卡在出厂被默认设置为2,即基址为220h。通过跳线,可改变此值,避免与其它设备口地址冲突。二、编程实例
DSP的功能是比较丰富的,限于篇幅,本文只简要介绍其中的8位直接播放功能,由此举一反三,其它功能的用法不难得知。各功能的规定操作可参考文献1和2。1.命令操作步骤。8位直接播放功能的操作步骤如下:
·写命令号10h;
·写数据字节(即播放声音的8位数据);
·按采样率所需时间周期延时。
以此三步操作为循环体,进行n次循环,即完成播放。其中,n为声音数据字节数。2.2xch端口写操作。在DSP编程中,无论是发送命令,还是发送数据,都是通过写端口2xch来完成的。在写端口2xch之前,应先读此端口,直到所得值的bit7为0,这才表明此端口处于可写状态,才能进行写操作。此过程的c语言形式如下:
while (inportb(0x22c)