欢迎来到天天文库
浏览记录
ID:27520738
大小:362.50 KB
页数:12页
时间:2018-12-04
《tms320c6000系列dsp编程工具与指南 浅谈dsp编程.doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、tms320c6000系列dsp编程工具与指南浅谈dsp编程 本文主要是关于tms320c6000的相关介绍,并着重对tms320c6000系列dsp编程工具与指南进行了详尽的阐述。 dsp DSP(digitalsingnalprocessor)是一种独特的微处理器,是以数字信号来处理大量信息的器件。其工作原理是接收模拟信号,转换为0或1的数字信号,再对数字信号进行修改、删除、强化,并在其他系统芯片中把数字数据解译回模拟数据或实际环境格式。它不仅具有可编程性,而且其实时运行速度可达每秒数以千万条复杂指令程序,源源超过通用微处理器,是数字化电子世界中日益重要的电脑芯片。 它
2、的强大数据处理能力和高运行速度,是最值得称道的两大特色DSP既是DigitalSignalProcessing的缩写(数字信号处理的理论和方法)或者是DigitalSignalProcessor(用于数字信号处理的可编程微处理器)的缩写。我们所说的DSP技术,则一般指将通用的或专用的DSP处理器用于完成数字信号处理的方法和技术。DSP的有以下特点:DSP处理器采用哈佛结构和改进的哈佛结构。哈佛结构就是将程序代码和数据的存储空间分开,各有自己的地址和数据总线。之所以采用哈佛结构,是为了并行进行指令和数据处理,从而可以大大地提高运算的速度。为了进一步提高信号处理的效率,在哈佛结构的基础
3、上,又加以改善。使得程序代码和数据存储空间之间可以进行数据的传输,称为改善的哈佛结构。采用流水技术。流水技术是将各指令的各个步骤重叠起来执行。 DSP处理器所采用的将程序存储空和数据存储空间的地址与数据总线分开的哈佛结构,为采用流水技术提供了很大的方便。为了提高DSP处理器的运算速度,它们无例外地设置了硬件乘法器,以及MAC(乘并且累加)一类的指令。DSP处理器都为DMA单独设置了完全独立的总线和控制器,这是和通用的CPU很不相同,其目的是在进行数据传输是完全不影响CPU及其相关总线的工作。在DSP处理器中,设置了专门的数据地址发生器来产生所需的数据地址。数据地址的产生与CPU的
4、工作是并行的,从而节省CPU的时间,提高信号的处理速度。DSP处理器为了自身工作的需要和外部环境的协调工作。往往都设置了丰富的外设。如时钟发生器。定时器等。 定点DSP处理器和浮点DSP处理器。定点DSP中经常要考虑溢出问题,在浮点DSP基本上可以不考虑。与定点DSP处理器相比,浮点DSP处理器的速度更快,尤其是作浮点运算。在实时性要求很到的场合。往往考虑浮点DSP处理器。而浮点DSP处理器的价格比较高,开发难度更大。DSP的用途2000主要用于控制:供电,光网络等。5000则是通讯和静态图像处理:视频产品,数字无线电等。而6000是数字通信和图像处理:移动通信,打印机,数字扫描
5、仪等。 dsp编程 1、DSP编程 对OSS驱动声卡的编程使用Linux文件接口函数,如图17.5,DSP接口的操作一般包括如下几个步骤: ①打开设备文件/dev/dsp。 采用何种模式对声卡进行操作也必须在打开设备时指定,对于不支持全双工的声卡来说,应该使用只读或者只写的方式打开,只有那些支持全双工的声卡,才能以读写的方式打开,这还依赖于驱动程序的具体实现。Linux允许应用程序多次打开或者关闭与声卡对应的设备文件,从而能够很方便地在放音状态和录音状态之间进行切换。 ②如果有需要,设置缓冲区大小。 运行在Linux内核中的声卡驱动程序专门维护了一个缓冲区,其大小会影
6、响到放音和录音时的效果,使用ioctl()系统调用可以对它的尺寸进行恰当的设置。调节驱动程序中缓冲区大小的操作不是必须的,如果没有特殊的要求,一般采用默认的缓冲区大小也就可以了。如果想设置缓冲区的大小,则通常应紧跟在设备文件打开之后,这是因为对声卡的其它操作有可能会导致驱动程序无法再修改其缓冲区的大小。 ③设置声道(channel)数量。 根据硬件设备和驱动程序的具体情况,可以设置为单声道或者立体声。 ④设置采样格式和采样频率 采样格式包括AFMT_U8(无符号8位)、AFMT_S8(有符号8位)、AFMT_U16_LE(小端模式,无符号16位)、AFMT_U16_BE(大
7、端模式,无符号16位)、AFMT_MPEG、AFMT_AC3等。使用SNDCTL_DSP_SETFMTIO控制命令可以设置采样格式。 对于大多数声卡来说,其支持的采样频率范围一般为5kHz到44.1kHz或者48kHz,但并不意味着该范围内的所有连续频率都会被硬件支持,在Linux下进行音频编程时最常用到的几种采样频率是11025Hz、16000Hz、22050Hz、32000Hz和44100Hz。使用SNDCTL_DSP_SPEEDIO控制命令可以设置采样频率。
此文档下载收益归作者所有