嵌入式系统语音采集与播放程序设计.docx
- 文档编号:2909366
- 上传时间:2022-11-16
- 格式:DOCX
- 页数:28
- 大小:1.52MB
嵌入式系统语音采集与播放程序设计.docx
《嵌入式系统语音采集与播放程序设计.docx》由会员分享,可在线阅读,更多相关《嵌入式系统语音采集与播放程序设计.docx(28页珍藏版)》请在冰豆网上搜索。
嵌入式系统语音采集与播放程序设计
第一章引言
1.1课程设计目的
本课程设计分析linux操作系统下音频设备驱动的结构,编写应用测试程序,实现UDA1341芯片的实时录音及放音功能,进一步熟悉vivi、linux内核和根文件系统的编译和烧写至开发板的开发流程。
1.2课程设计任务与要求
本课程设计要求在Samsung公司S3C2410处理器的edukitⅢ开发板上,在嵌入式linux操作系统环境下,根据语音芯片UDA1341的驱动程序和语音数据的特点自行编写语音采集及播放的应用测试程序,实现语音数据的实时采集与实时播放。
第二章课程设计平台构建与流程
2.1嵌入式系统开发平台构建
1)硬件:
Edukit-III实验平台,PC机,S3C2410开发板,Embest实验箱。
(1)硬件组成:
S3C2410开发板Embest实验箱
(2)EmbestEdukit-
工作原理:
EmbestEdukit-
教学实验平台是一款功能强大的32位的嵌入式开发板,里面采用了SAMSUNG公司的以ARM7TDMI-S位内核的处理器S3C44BOX,同时可以兼容S3C2410,具有JTAG调试功能。
板上提供了一些键盘、LED和串口等一些常用的功能模块,并且具有IDE硬件接口,CF存储卡接口、以太网接口和SD卡接口等等,对用户在32位ARM嵌入式领域进行开发实验非常方便。
2)软件:
Linux模拟开发环境Cygwin,EmbestonlineprogrammerforARM,超级终端,EmbestIDEforARM,Linux的交叉编译环境
(1)cygwin
Cywin是一个在windows平台上运行的unix/Linux模拟环境,是cygnussolutions公司开发的自由软件
(2)EmbestIDE英蓓特提供的一个嵌入式开发的集成环境
(3)windows中的超级终端
(4)EmbestonlineFlashProgrammerforRAM烧写相关文件到NorFlash中的工具
(5)Linux的交叉编译环境
实验中使用的是GNU的gcc编译工具,vivi,linux,文件系统的源代码在/tmp/edukit-2410中编译好vivi,linux,文件系统后烧写到flash存储器中后就可以启动linux系统了。
2.2课程设计流程
图2.1实验步骤
2.3课程设计硬件结构与工作原理
2.3.1硬件模块
(1)
图2.2典型的IIS总线上的设备
(2)IIS总线结构
IIS总线只处理声音数据,其他控制信号等则需单独提供。
IIS总线使用3根串行总线,分别是:
提供分时复用功能的SD线(Serialdata,串行数据),WS线(Wordselect,字段选择(声道选择))和SCK线(ContinuousSerialclock,连续的时钟信号)。
图2.3IIS总线接口内部结构
S3C2410AIIS总线接口各模块的功能描述如下:
●BRFC表示总线接口、寄存器区和状态机。
总线接口逻辑和FIFO访问由状态机控制。
●IPSR表示两个5位的前置分频器ISPR_A和ISPR_B,一个前置分频器作为IIS总线接口的主时钟发生器,另一个前置分频器作为外部音频编解码器CODEC的时钟发生器。
●TxFIFO和RxFIFO表示两个64字节的FIFO。
在发送数据时,数据写到TxFIFO,在接收数据时,数据从RxFIFO读取。
●SCLKG表示主IISCLK发生器。
在主设模式时,由主时钟产生串行位时钟。
●CHNC表示通道发生器和状态机。
通道状态机用于产生和控制IISCLK和IISLRCK。
●SFTR表示16位移位寄存器。
在发送模式时,并行数据移入SFTR并转换成串行数据输出;在接收模式时,串行数据移入SFTR并转换成并行数据输出。
具体的相关寄存器的位功能描述请参观相关资料。
2.3.2工作原理
常用的数字音频处理集成电路包括A/D、D/A、DSP、数字滤波器和数字音频I/O接口及设备(麦克风、话筒)等。
麦克风输入的模拟音频信号经A/D转换、音频编码器实现模拟音频信号到数字音频信号转换,编码后的数字音频信号通过控制器送入DSP或微处理器相应的处理。
音频输出时,数字音频信号(音频数据)经控制器给音频解码器,经D/A转换后由扬声器输出。
数字音频涉及概念很多,重要的是理解:
采样和量化。
采样就是每隔一定时间读一次声音信号的幅度,而量化则是将采样得到的声音信号幅度转换为数字值。
从本质上讲,采样是时间上的数字化,而量化则是幅度上的数字化。
根据奈奎斯特(Nyquist)采样理论采样频率应高于输入信号的最高频率两倍。
为了保证声音不失真,采样频率应该在40kHz左右。
常用的音频采样频率有8kHz、11.025kHz、22.05kHz、16kHz、37.8kHz、44.1kHz、48kHz等,要达到DVD的音质需要采用更高的采样频率。
量化是对模拟音频信号的幅度数字化,量化位数决定模拟信号数字化以后的动态范围,常用的有8位、12位和16位。
量化位越高,信号的动态范围越大,数字化后的音频信号就越接近原始信号,但所需要的存储空间也越大。
声道有单声道、双声道和多声道。
双声道又称立体声,在硬件中有两条线路,音质和音色都优于单声道,但数字化后占据的存储空间的大小要比单声道多一倍。
多声道能提供更好的听觉感受,不过占用的存储空间也更大。
数字音频数据有PCM、MP3、WMA、WAV、OggVorbis、RA、AAC、ATRAC3等多种不同的文件格式。
1)IIS总线
IIS总线(IIS,Inter-ICSoundBus,数字音频集成电路通信总线)是Philip公司提出的音频总线协议,它是一种串行的数字音频总线协议,是音频数据编码或解码常用的串行音频数字接口。
(1)IIS总线的传输模式
数据的发送方和接收方需要采用相同的时钟信号来控制数据传输,数据传输方(主设)必须产生字段选择信号、时钟信号和需要传输的数据信号。
在一个复杂的数字音频系统中,可能会有多个发送方和接收方,通常采用系统主控制模式,主控制模块控制数字音频数据在不同集成电路(设备)间的传输,数据发送方就需要在主控制模块的协调下发送数据。
IIS总线的三种传输模式如图2、3、4所示,这些模式的配置一般需通过软件来实现。
图2.4发送器为主设时的传输模式
图2.5接收器为主设时的传输模式
图2.6控制器为主设时的传输模式
(2)IIS总线时序
串行数据(SD)
串行数据的传输由时钟信号同步控制,且串行数据线每次传输1字节的数据。
当音频数据被数字化成二进制流后,传输时先将数据分成字节(如8位、16位等),每个字节的数据传输从左边的二进制位MSB(MostSignificantBit)开始。
当接收方和发送方的数据字段宽度不一样时,发送方不考虑接收方的数据字段宽度。
如果发送方发送的数据字段宽度小于系统字段宽度,就在低位补0;如果发送方的数据字段宽度大于接收方的宽度,则超过LSB(LeastSignificantBit)的部分被截断。
字段选择(WS)
音频系统一般包含有左右两个声道,字段选择(WS)用来选择左声道或者右声道,WS=0表示选择左声道;WS=0表示选择左声道。
如果不在外部加以控制,WS会在MSB传输前的一个时钟周期发生变化,使数据接收方和发送方保持同步。
此外,WS能让接收设备存储前1字节,并且准备接收后1字节。
时钟信号(SCK)
在IIS总线中,任何一个能够产生时钟信号的电路都可以称为主设备,从设备从外部时钟输入得到时钟信号。
IIS的规范中制定了一系列关于时钟信号频率和延时的限制。
图2.7IIS总线时序
(3)IIS总线接口的工作方式
IIS总线接口是用来连接外部的标准编解码器(CODEC)的接口。
S3C2410A提供一个IIS总线接口,能用来连接一个外部8/16位立体声音频CODEC,支持IIS总线数据格式和MSB-justified数据格式。
该接口对FIFO的访问提供DMA传输模式,而不是采用中断模式。
它可以同时发送数据和接收数据,也可以只发送或只接收数据。
在只发送和只接收模式,S3C2410A的IIS总线接口有以下三种工作方式。
正常传输方式
在正常传输方式,对于发送和接收FIFO,IIS控制寄存器有一个FIFO就绪标志位。
当FIFO准备发送数据时,如果发送FIFO不空,则FIFO就绪标志位为“1”;如果发送FIFO为空,该标志为“0”。
在接收数据时,当接收FIFO是不满时,FIFO就绪标志位为“1”,指示可以接收数据;若接收FIFO满,则该标志为“0”。
通过FIFO就绪标志位,可以确定CPU读/写FIFO的时间。
DMA传输方式
在DMA传输方式,利用DMA控制器来控制发送和接收FIFO的数据存取,由FIFO就绪标志来自动请求DMA的服务。
发送和接收方式
在发送和接收方式,IIS总线接口可以同时发送和接收数据。
(4)S3C2410AIIS总线接口的音频串行接口格式
S3C2410A的IIS总线接口支持IIS总线数据格式和MSB-justified数据格式。
IIS总线格式
IIS总线有IISDI(串行数据输入)、IISDO(串行数据输出)、IISLRCK(左/右通道选择)和IISCLK(串行位时钟)4条线,产生IISLRCK和IISCLK信号的为主设备。
串行数据以2的补码发送,首先发送是MSB位。
首先发送MSB位可以使发送方和接收方具有不同的字长度,发送方不必知道接收方能处理的位数,同样接收方也不必知道发送方正发来多少位的数据。
当系统字长度大于发送器的字长度时,数据发送时,字被切断(最低数据位设置为0)发送。
接收器接收数据时,如果接收到的数据字长比接收器的字长更长时,则多的数据位被忽略。
另一方面,如果接收器收到的数据位数比它的字长短时,则缺少的位设置为0。
因此,MSB有固定的位置,而LSB的位置与字长度有关。
在IISLRCK发生改变的一个时钟周期,发送器发送下一个字的MSB位。
发送器发送的串行数据可以在时钟信号的上升沿或下降沿同步。
然而,串行数据必须在串行时钟信号的上升沿锁存到接收器,所以发送数据使用上升沿进行同步时会一些限制。
左右通道选择线指示当前正发送的通道。
IISLRCK可以在串行时钟的上升沿或者下降沿改变,不需要同步。
在从模式,这个信号在串行时钟的上升沿被锁存。
IISLRCK在MSB位发送的前一个时钟周期内发生改变,这样可以使从发送器同步发送串行数据。
另外,允许接收器存储前一个字,并清除输入以接收下一个字。
MSB-justified数据格式
MSB-justified总线格式在体系结构上与IIS总线格式相同。
与IIS总线格式唯一不同的是,只要IISLRCK有变化,MSB-justified格式要求发送器总是发送下一个字的最高位。
2)音频编解码芯片UDAl341TS
UDA1431TS可把通过麦克风音频输入通道输入的立体声模拟信号转化为IIS格式的数字信号,传送给S3C2410的IIS控制器,然后CPU使用DMA控制器把得到的数字信号存放的一块内存空间上;同样DMA控制器也能把已存的数字信号通过IIS格式发送给UDAl341TS芯片,由该芯片转换成模拟信号,通过耳机音频输出通道输出。
利用UDA1341TS内部的PGA(可编程增益放大器)、AGC(自动增益控制)功能对模拟信号进行处理。
对于数字信号,UDA1341TS提供DSP(数字音频处理)功能。
S3C2410A的IIS接口线分别与UDA1431TS的BCK、WS、DATAI、SYSCLK相连。
当UDA1431TS芯片工作在微控制器输入模式时,使用UDA1431TS的L3总线(L3D
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 嵌入式 系统 语音 采集 播放 程序设计
![提示](https://static.bdocx.com/images/bang_tan.gif)