本节书摘来自异步社区《嵌入式Linux软硬件开发详解——基于S5PV210处理器》一书中的第2章,第2.5节,作者 刘龙,更多章节内容可以访问云栖社区“异步社区”公众号查看。

2.5 WM8960音频编解码芯片

2.5.1 IIS总线接口概述

Smart210开发板具有音频信号的输入输出功能,通过麦克接口,它可以接收音频信号输入;通过一个耳机插孔,可以连接音频信号线输出音频数据,音频信号的处理是通过一片具有IIS总线接口的WM8960芯片来完成的。

IIS (Intel-IC Sound)总线一般称为集成电路内部声音总线,写作I2S。IIS总线源于SONY和PHILIPS等公司共同提出的一个串行数字音频总线协议,许多音频编解码器(CODEC)和微处理器都提供了对IIS总线的支持,S5PV210微处理器支持IIS总线接口。IIS总线只传送音频数据,其他信号(如控制信号)必须另行传送。

通常IIS只使用3部分串行总线(不同芯片可能会有所不同),3条线分别如下。

  • 数据线:提供分时复用功能,数据线传送数据时由时钟信号同步控制,而且以字节为单位传送。
  • 字段选择线:为0或1,表示选择左声道或右声道。
  • 时钟信号线,能够产生时钟信号的设备称为主设备,从设备引入时钟信号作为内部时钟使用。

2.5.2 WM8960概述

WM8960是欧胜(WOLFSON)电子推出的一款低功耗、高质量的音频编解码芯片。该芯片内置有麦克风接口、立体声耳机驱动器、立体声24比特模数转换器(ADC)和数模转换器(DAC)。它主要应用于便携式电脑游戏、DVD播放器、手机多媒体等。WM8960编解码芯片的特点如下。

  • 数模转换器(DAC)信噪比为98dB,采样率为48kHz、电压为3.3V时总谐波失真为−84dB。
  • 模数转换器(ADC)信噪比为95dB,采样率为48kHz、电压为3.3V时总谐波失真为−82dB。
  • 它具有噪声抑制功能。
  • 该芯片具有麦克风接口。
  • 该芯片可编程自动电平控制/抑制器和噪声门限。
  • 该芯片支持3D立体声增强音效。
  • 该芯片支持立体声D类扬声器驱动器。
  • 该芯片每声道输出到8欧姆BTL扬声器的功率为1W。
  • 该芯片具有灵活的开关时钟。
  • 该芯片支持无滤波连接。
  • 片上集成耳机驱动器,16欧姆负载和3.3V供电时,输出功率为40mW。
  • 该芯片支持无电容模式。
  • 该芯片支持低功率消耗。
  • 该芯片支持低电源电压。

WM8960的引脚分布如图2-15所示。

WM8960各个引脚功能如表2-9所示。

2.5.3 WM8960硬件设计

WM8960与S5PV210硬件连接如图2-16所示。S5PV210具有IIS控制单元,通过IIS总线接口和I2C总线接口与音频编解码芯片WM8960进行交互,其中IIS接口传输声音数据,I2C传输控制信息(如音量调节、静音等),WM8960接收音频数据完成编解码功能。

对于声音信号需要对音频数据的采集与播放。采集是对模拟声音信号进行采集、用数字量进行标示,通过ADC模数转换器来完成。播放将以数字量的形式保存在缓冲区里面的音频数据恢复为模拟信号输出,通过DAC数模转换器来完成。

WM8960同时具备采集和播放所需的ADC与DAC,录音的时候,对模拟声音信号采样,通过内置ADC将模拟信号转换为数字量,经过IIS控制器将转化为的数字量存放在音频芯片内存中;播放的时候,从音频芯片内存中读取数字量,经IIS控制器将数字量传输给WM8960,通过内置DAC将数字量转换为模拟量播放出来。

从图2-15与表2-9所示可以看出,三个引脚与音频信号频率有关。BCLK为串行时钟(也叫位时钟),每一个时钟信号传送一位音频信号,因此BCLK的频率=声道数×采样频率×采样位数(采样频率即每秒钟取样数),如采样频率fs为44.1kHz,采样的位数为16位,声道数两个(左、右两个声道),则BCLK的频率=32fs=1411.2kHz。

XXXLRC为帧时钟,用于切换左、右声道,如LRC为高电平表示正在传输的是左声道数据,为低电平表示正在传输的是右声道数据,因此XXXLRC的频率应该正好等于采样频率。

MCLK为系统时钟,由于IIS控制器只负责数字音频信号的传输,而要真正实现音频信号的放与录还需要额外的处理单元,MCLK为芯片提供系统同步时钟,即编解码时钟,主要用于音频的A/D、D/A采样,一般MCLK为256fs或384fs(fs为采样频率)。通过以上分析我们可以发现,采样频率fs对频率的设置至关重要。fs不是任意设置的,一般基于不同的应用场合和听觉效果,设置不同的值,如8kHz、16kHz、22.05kHz、44.1kHz、48kHz、96kHz等。

在图 2-16 中,CPU的Audio_Xi2sLRCK0连接到了DACLRC,HP_Detect连接到了ADCLRC。ADCLRC和DACLRC分别是输入输出的左右声道时钟引脚。当采样的时候,首先将采样数据传输到左声道缓冲区,然后将下一个采样数据传输到右声道缓冲区,然后又传输到左声道缓冲区,依次往复;当播放的时候,首先将左声道数据提取出来播放,然后是右声道数据,之后又是左声道数据,依次往复。

Audio_Xi2sSDO0_0连接到了DACDAT数模转换数字音频信号输入引脚,Audio_Xi2sSDI0连接到了ADCDAT引脚。DACDAT从内存里面取出的数据经IIS控制器传输给编解码芯片,数模转换后播放。采样的模拟信号转换为数字信号之后,从ADCDAT输出,经IIS控制器传递给内存。采样速率及串行的音频数据的输入输出,则由连接至MCLK与BCLK的S5PV210的Audio_Xi2sCDCLK0引脚和Audio_Xi2sSCLK0引脚来控制。WM8960的SCLK和SDIN引脚接至S5PV210的IIC总线接口第一个通道,通过S5PV210实现对WM8960的配置。

《嵌入式Linux软硬件开发详解——基于S5PV210处理器》——2.5 WM8960音频编解码芯片...相关推荐

  1. 《嵌入式Linux软硬件开发详解——基于S5PV210处理器》——2.2 DDR2 SDRAM芯片

    本节书摘来自异步社区<嵌入式Linux软硬件开发详解--基于S5PV210处理器>一书中的第2章,第2.2节,作者 刘龙,更多章节内容可以访问云栖社区"异步社区"公众号 ...

  2. 《嵌入式Linux软硬件开发详解——基于S5PV210处理器》——1.2 S5PV210处理器

    本节书摘来自异步社区<嵌入式Linux软硬件开发详解--基于S5PV210处理器>一书中的第1章,第1.2节,作者 刘龙,更多章节内容可以访问云栖社区"异步社区"公众号 ...

  3. 嵌入式linux s5pv210,嵌入式Linux软硬件开发详解 基于S5PV210处理器 P

    相关截图: 资料简介: 本书全面介绍了嵌式Linux系统发过程中,从硬件设计到系统移植.软件发的各方面内容,包含硬件设备的设计原理(囊括了常见硬件,如RAM.Flash.UART.USB.LCD和电源 ...

  4. 嵌入式知识-ARM裸机-学习笔记(9):SD卡启动详解(S5PV210)

    嵌入式知识-ARM裸机-学习笔记(9):SD卡启动详解(S5PV210) 一.SD卡介绍 1. SD卡背景知识和特点 SD卡.MMC卡.MicroSD.TF卡:这些卡其实内部就是Flash存储颗粒,比 ...

  5. Linux系统结构 详解

    Linux系统结构 详解 标签: 产品产品设计googleapple互联网 2011-01-07 14:14 31038人阅读 评论(6) 收藏 举报 分类: Linux(21) 版权声明:本文为博主 ...

  6. linux /proc 详解

    linux /proc 详解 本文整理了一下 linux /proc下的几个常用的目录和文件,可供查阅,之后在学习工作中有别的用到的话会再补充. /proc 简介 Linux系统上的/proc目录是一 ...

  7. Linux: 系统结构详解

    Linux系统一般有4个主要部分: 内核.shell.文件系统和应用程序.内核.shell和文件系统一起形成了基本的操作系统结构,它们使得用户可以运行程序.管理文件并使用系统.部分层次结构如图1-1所 ...

  8. Linux 系统结构详解——新手上路

    Linux 系统结构详解 Linux系统一般有4个主要部分: 内核.shell.文件系统和应用程序.内核.shell和文件系统一起形成了基本的操作系统结构,它们使得用户可以运行程序.管理文件并使用系统 ...

  9. Linux系统调用详解(实现机制分析)

    为什么需要系统调用   linux内核中设置了一组用于实现系统功能的子程序,称为系统调用.系统调用和普通库函数调用非常相似,只是系统调用由操作系统核心提供,运行于内核态,而普通的函数调用由函数库或用户 ...

最新文章

  1. 配置mysql主从服务器
  2. MySQL行(记录)的详细操作
  3. Exchange 2007 迁移 2010
  4. mysql 查询 带数据库实例_数据库查询实例(包含所有where条件例子)
  5. UI设计实用素材|功能性图标ICON的作用
  6. 计算机课程中lnA怎么打,《计算机基础》考试模拟题(含答案)
  7. C#语言-NPOI.dll导入Excel功能的实现
  8. 如果有200万存款吃利息,可以不用上班吗?
  9. lol游戏挂机软件_“本不想挂机,但系统不让重连!”LOL成“挂机联盟”,5局3挂机...
  10. 双击打不开pycharm问题
  11. IDEA使用ideaVim, 配置自定义vim快捷键
  12. ABC分类法在库存优化管理中的应用原理
  13. chrome浏览器本地信息的获取与设置
  14. 磁悬浮matlab,磁悬浮小球matlab
  15. 【前端小实战】遮罩层动画效果
  16. MySQL索引分析以及相关面试题
  17. 图的m色着色问题 回溯法(算法设计与分析)Java
  18. Ubuntu16.04 U盘安装Ubuntu16.04制作 光盘刻录 安装与简介
  19. 申宝策略-沪指放量上行
  20. 基于深度学习的文本摘要自动生成(自然语言处理)-本科毕业设计(附完整代码及数据集)

热门文章

  1. 高速电路的预加重与去加重
  2. 最强chrome、edge的广告拦截插件
  3. 美国标准信息交换标准码 (ASCII)
  4. 中国全国地区MYSQL 地区SQL数据表(省,市,区,县)
  5. Python合并Excel相同连续单元格(已排序)
  6. hive-关系运算符-存储压缩-hive调优
  7. linux xshell用户免密登录设置
  8. Python上手就有
  9. 运营商大数据 | 打造新型获客模式 破除流量困局
  10. GREoverIPsec的本质华为