dos下dsp播音的编程

dos下dsp播音的编程

ID:24199094

大小:52.50 KB

页数:4页

时间:2018-11-12

dos下dsp播音的编程_第1页
dos下dsp播音的编程_第2页
dos下dsp播音的编程_第3页
dos下dsp播音的编程_第4页
资源描述:

《dos下dsp播音的编程》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、DOS下DSP播音的编程声音,无论是从扬声器输出的,还是从话筒输入的,都是模拟量。而数据,无论是内存里操作的,还是磁盘上存储的都是数字量。因此,微机处理声音,大多离不开ADC与DAC两种转换。由于声音数据的数据量比较大,在声音的数字处理中,除直接由CPU进行传输外,批量数据常采用DMA方式传输,以节省较多的CPU时间。总括起来,ADC与DAC两种转换方式,直接传输和DMA传输这两种传输方式,再加上不同的压缩方式,如喇叭控制、静寂等等,所有这些的不同组合,就构成了DSP的各种功能。根据DSP的硬件原理,其各种功能都规定了一定的操作步骤。

2、一、DSP编程要点在DSP编程中,主要注意命令与端口两个层次的操作。1.DSP命令。DSP的功能一般以一个操作码(称作命令号)的写操作为中心,按规定的步骤,配合若干必要的辅助操作,构成一串操作的组合,称为DSP命令。如8位直接播放功能命令号为10h,8位直接录音功能命令号为20h,喇叭的通断功能命令号分别为d1h与d3h等等。2.端口操作。DSP命令主要靠端口操作来实现。端口操作包括DSP初始化、写DSP命令(即发DSP命令)、读DSP状态参数、DSP中断等。所涉及的端口地址及相应的用途如表1。表1DSP端口及用途端口地址由基址2x0

3、h加6、0ah、0ch、0eh等形成,其中,x可取值1、2、3、4、5、6等,具体情况随硬件设置而定,多数卡在出厂被默认设置为2,即基址为220h。通过跳线,可改变此值,避免与其它设备口地址冲突。二、编程实例DSP的功能是比较丰富的,限于篇幅,本文只简要介绍其中的8位直接播放功能,由此举一反三,其它功能的用法不难得知。各功能的规定操作可参考文献1和2。1.命令操作步骤。8位直接播放功能的操作步骤如下:·写命令号10h;·写数据字节(即播放声音的8位数据);·按采样率所需时间周期延时。以此三步操作为循环体,进行n次循环,即完成播放。其中

4、,n为声音数据字节数。2.2xch端口写操作。在DSP编程中,无论是发送命令,还是发送数据,都是通过写端口2xch来完成的。在写端口2xch之前,应先读此端口,直到所得值的bit7为0,这才表明此端口处于可写状态,才能进行写操作。此过程的c语言形式如下:p;0x80);outportb(0x22c,byte);这里假定端口基址为220h。句中byte可以是命令号,也可以是数据。3.定时器。为使播放按一定的采样率进行,需对数据发送进行定时控制。这一般是借用主机定时中断int8,将其调用频率提高到与采样率相当的程度,利用其监视、控制数据发

5、送的时间,来满足播音频率的要求。关于定时中断的编程技术已有过许多介绍,限于篇幅,不再赘述,读读文后的程序清单,即一目了然。应该说明的是,对于CPU较慢的机型如386,由于计时代码本身的执行时间可能已经超过采样率对应的时间周期,定时控制就达不到预期的效果。这种情况下,用一个空循环来定时,调整循环次数,即可满足频率要求。此法的缺点是定时精度差,参数因CPU速度而异。所幸的是,目前多数配置多媒体的PC机,其CPU都在486以上。4.内存利用。人耳可辨声音的最高频率可达20kHz以上,因此DSP的采样率至少也要达到与此相当的水平,而为了容纳立

6、体声双声道信息,采样率还要再翻一倍。常见的ttag;intchannel;longsamplespersec;longbytespersec;intblockalign;intbitspersample;charflg[4];}ain(){fp=-open(name,0-RDONLY);if(fp=-1)errexit("Erroropenfile");-read(fp,p;strncmp(p;datasize,4);//单声道unnik等著,敬万钧等译.声霸--原理与应用.北京:电子工业出版社,1995.3石宁等.在DOS下使用

7、Windows*.WAV文件.计算机世界月刊,1995(3)44-46.

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。