- 金点子论文发表网 设为首页 | 加入收藏 | 支付方式 | 网站经营 | 联系我们

正规刊物      大量征稿      有稿速投


    CN刊号    \\     ISSN刊号齐全

 
首 页 关于我们 经营资质 论文欣赏 合作期刊 发表流程 发表常识 在线投稿 服务承诺 支付方式 联系我们
支付宝担保交易上线了安全可靠快捷1691566468@qq.com
声学论文
农学论文
专题论文
经济论文
会计论文
审计论文
语言论文
英语论文
教育论文
文学论文
热点论文
计算机文
理学论文
医学论文
其他论文
建筑论文
社会论文
文化论文
政治论文
哲学论文
声学论文
工学论文
电 话:0756-8501985
莫老师:13631286992
 
声学论文 首页 > 论文欣赏 > 声学论文

基于S3C2410的IIS音频驱动的设计实现

发布时间:2014-10-23 18:44:54    浏览量:[news:i]

 

一、引言 
  S3C2410处理器是Samsung公司生产的基于ARM920T核心、采用O.18 m制造工艺的32位微控制器,带IIC.BUS和IIS.BUS接口。UDA1341芯片支持IIS总线数据格式.采用位元流转换技术进行信号处理, 具有可编程增益放大器(PGA)和数字自动增益控制器(AGC)。在基于上述硬件平台的嵌入式Linux环境中UDA1341音频驱动程序,而通用的驱动程序不能在此硬件平台直接运行,需要做很多修改.所以对具体移植过程的总结、分析和具体的测试工作变得尤为重要。 
  二、UDA1341技术分析 
  UDA1341支持IIS总线数据格式,对外提供两组音频信号输入接口,每组包含左右2个声道。由于IIS总线只处理音频数据,因此UDA1341还内置用于传输控制信号的L3总线接口I1J。L3接口即混音器控制接口,可以控制输入/输出音频。 
  三、数字音频基础: 
  (一)采样频率和采样精度: 
  在数字音频系统中,声波被转化为一连串二进制数据,从而实现原始声音信号的保存,处理,或再现。这个过程中使用的设备是A/D转换器,即ADC。ADC以上万次每秒的速率对声波进行采样,每次采样都记录下了原始声波在某一时刻的状态,称之为样本。每秒采样的数目称为采样频率,单位为Hz。采样频率越高,所能描述的声波频率就越高。系统对于每个样本均会分配一定的存储位(Bit 数)来表达声波的振幅状态,称之为采样精度。采样频率和精度共同决定声音还原的质量。人耳的听觉范围通常是20Hz ~ 20kHz。根据奈奎斯特采样定理,用两倍于一个正弦波的频率进行采样能够真实的还原该波形;因此,当采样频率高于40kHz 时,可以保证不产生失真。CD音频的采样规格为16位、44kHz,就是根据以上原理制定的。 
  (二)音频编码: 
  脉冲编码调制PCM(Pulse Code Modulation)编码的方法是对语言信号进行采样,然后对每个样值进行量化编码。对语音量化和编码就是一个PCM编码过程。ITU-T 的64kb/s语音编码标准G.711 采用PCM 编码方式,采样频率为8kHz。每个样值用8位非线性的μ律或A律进行编码,总速率为64kb/s。CD音频即是使用PCM编码格式,采样频率为8kHz,对采样值采用16位编码。使用PCM编码的文件在Windows 系统中保存的文件格式为大家熟悉的wav 格式,实验中用到的就是一个采样频率为44.100kHz、16 位的立体声文件t. wav。 
  四、I2S 音频接口: 
  I2S是一种串行总线技术,是SONY和PHILIPS公司等电子巨头共同推出的接口标准,主要针对数字音频处理技术和设备。I2S 将音频数据与时钟信号分离,避免由时钟带来的抖动问题,因此系统中不再需要消除抖动的器件。I2S总线仅处理音频数据,对其他信号(如控制信号等)单独传送。基于减少引脚数目和布线的目的,I2S总线只由3根串行线组成;即分时复用的数据通道线、字选择线和时钟线。I2S总线接口的基本时序,如图1: 
  图1 
  WS信号线指示音频左通道或右通道的数据将被传输,SD信号线按高有效位MSB 到低有效位LSB的顺序传送字长的音频数据。MSB总在WS切换后的第一个时钟发送。如果数据长度不匹配,那么接收器和发送器将对其自动截取或填充。在实验中,I2S总线接口由处理器S3C2410的I2S模块和音频芯片UDA1341硬件来实现。 
  五、WAV 声音格式: 
  WAV声音格式文件是Windows 环境下的一种常用音频文件格式,它依循着一种称为“资源互换文件格式”(Resources Interchange File Format)的格式,简称RIEF。WAV为WAVEFORM(波形)的缩写。“RIEF”的格式辨别码为“WAVE”。整个文件由两个chunk 所组成:辨别码“fmt”(注意,最后一个是空白字符!)及“data”。 
  在“fmt”的chunk下包含了一个PCM WAVE FORMAT数据结构,在“fmt”chunk 之后是原始声音的采样数据,这些数据是可以直接送到I2S总线的数字音频符号。一个典型的WAV 格式文件结构如图2: 
  图2 
  它包含8字节RIFF头、4字节数据类型“WAVE”、“fmt”chunk(共0x18 字节)和“data”chunk。WAV文件中声音数据的大小存放在sizeoff 开始的四字节中,具体的声音数据从dataoff 开始。其中: 
  sizeoff = 0x8+0x4+0x18+0x4 
  dataoff = 0x8+0x4+0x18+0x8 
  本设计针对I2S实现了一个标准Linux的音频驱动,程序比较长但是非常有典型性,建议好好研读,相信一定会获益匪浅的.本程序修正了以前不能同时录音放音的BUG,已经实际应用在产品中。 
  6、实现步骤: 
  1、硬件连接: 
  连接宿主PC机和一台S3C2410-RP目标板。 
  2、在2410RP目标板上运行驱动程序和测试程序: 
  在宿主PC 机端,打开一个终端窗口(Terminal),点击【红帽 System Tools Terminal】 
  启动终端窗口,输入下列9条命令。 
  ① ifconfig eth0 192.168.0.100 
  ② minicom 
  ③ mount -o soft, timeo=100, rsize=1024 192.168.0.100:/ /mnt/ 
  ④ cd /mnt/2410RP_linux/Experiment_Key/IIS 
  ⑤ insmod sound_firmware.o 
  ⑥ insmod sound_core.o 
  ⑦ insmod s3c2410_uda1341.o 
  ⑧ cd ../apl_test 
  ⑨ ./mp3play xiao.mp3 
  此时,只要用一个耳麦插入音频端口,则可以听见优美动听的音乐了。

<