I2S时序及音频驱动

news/2024/12/22 14:17:46/

1.音频采样率及采样精度

1.1采样频率

采样的过程就是将通常的模拟音频信号的电信号转换成二进制码 0 和 1 的过程,这些 0 和 1 便构成了
数字音频文件。图中的正弦曲线代表原始音频曲线,方格代表采样后得到的结果,二者越吻合说明采
样结果越好
在这里插入图片描述
采样频率是每秒钟的采样次数,我们常说的 44.1kHz 采样频率就是每秒钟采样 44100 次。理论上采样
频率越高,转换精度越高,目前主流的采样频率是 48kHz。

在数字音频领域,常用的采样率有:
8,000 Hz - 电话所用采样率, 对于人的说话已经足够
11,025 Hz-AM调幅广播所用采样率
22,050 Hz和24,000 Hz- FM调频广播所用采样率
32,000 Hz - miniDV 数码视频 camcorder、DAT (LP mode)所用采样率
44,100 Hz - 音频 CD, 也常用于 MPEG-1 音频(VCD, SVCD, MP3)所用采样率
47,250 Hz - 商用 PCM 录音机所用采样率
48,000 Hz - miniDV、数字电视、DVD、DAT、电影和专业音频所用的数字声音所用采样率
50,000 Hz - 商用数字录音机所用采样率
96,000 或者 192,000 Hz - DVD-Audio、一些 LPCM DVD 音轨、BD-ROM(蓝光盘)音轨、和 HD-DVD (高清晰度 DVD)音轨所用所用采样率

1.2采样精度

量化精度是指对采样数据分析的精度,比如 24bit 量化精度就是指将标准电平信号按照 2 的 24 次方进
行分析,也就是说将图中的纵坐标等分为 2的24次方等分。量化精度越高,声音就越逼真。常见的采样精度一般为2的24次方或者2的16次方。

2.音频编解码芯片

音频设备硬件接口有PCM接口、I2S接口、AC97接口,以下内存以I2S接口为例进行介绍。常用的音频编解码芯片有es8388、WM8960等。

2.1ES8288

ES8388是一种高性能、低功耗、低成本的音频编解码器。它由两路ADC,2通道DAC,话筒放大器、耳机放大器、数字音效、模拟混合和增益功能。
ES8388采用先进的多位Δ∑调制技术实现数字与模拟之间的数据转换。多比特Δ∑调制器使器件对时钟抖动和低带外噪声的灵敏度低。它应用于:MID,MP3, MP4, PMP,无线音频,数码相机,摄像机,GPS领域,蓝牙,便携式音频设备。

ES8388特性:
ADC:
24位,8 khz至96 khz采样频率
95dB动态范围,95dB信噪比,-85dB THD+N
带麦克风放大器的立体声或单声道麦克风接口
自动电平控制和噪声门
2到1模拟输入选择
各种模拟输入混合和增益

DAC:
24位,8 khz至96 khz采样频率
96 dB动态范围,96 dB信噪比,-83dB THD N
40 mw耳机放大器,无噪音,无阻塞选项
立体增强
低音和高音
各种模拟输出混合和增益

在这里插入图片描述

I2C/SPI控制接口Pin脚(蓝色pin脚)

网络标号引脚说明引脚功能
I2C/SPI_CLK输入I 28脚控制时钟输入,同步时钟
I2C/SPI_DAT输入输出I/0 27脚控制数据输入输出
I2C_AD/SPI_CE输入I 26脚控制悬着或设备地址选择

音频接口(绿色)

网络标号引脚说明引脚功能
MCLK输入I 1脚 主时钟必须等于fs(音频采样率)的256倍
SCLK输入输出I\O 5脚音频数据位时钟 用于同步
LRCK输入输出I\0 7脚音频数据左右声道对齐时钟
DSDIN输入I 6脚DAC音频数据
ASDOUT输出0 8脚ADC音频数据

3.I2S总线

I2S (Inter-IC Sound) 总线是飞利浦公司提出的一种用于数字音频设备之间进行音频数据传输的总线。和 I2C、 SPI 这些常见的通信协议一样, I2S 总线用于主控制器和音频 CODEC 芯片之间传输音频数据。I2S 接口需要 3 根信号线(如果需要实现收和发,那么就要 4 根信号线,收和发分别使用一根信号线):

  • SCK: 串行时钟信号,也叫位时钟(BCLK),音频数据的每一位数据都对应一个 SCK,立体声都是双声道的,因此 SCK=2×采样率×采样位数
    比如采样率为 44.1KHz、 16 位的立体声音频,那么 SCK=2× 44100× 16=1411200Hz=1.4112MHz
  • WS: 字段(声道)选择信号,也叫做帧时钟(LRCK),用于切换左右声道数据,为“1”表示正在传输左声道的数据,为“0”表示正在传输右声道的数据
    WS 的频率等于采样率,比如采样率为 44.1KHz 的音频, WS=44.1KHz
  • SD: 串行数据信号,也就是实际的音频数据,若要同时实现放音和录音,就需要 2 根数据线
    比如 WM8960 的 ADCDAT 和 DACDAT,就是分别用于录音和放音

不管音频数据是多少位的,数据的最高位都是最先传输的。数据的最高位总是出现在一帧开始后(LRCK变化)的第 2 个 SCK 脉冲处。另外,有时为了使音频 CODEC 芯片与主控制器之间能够更好的同步,会引入另外一个叫做 MCLK 的信号,也叫做主时钟或系统时钟,一般是采样率的 256 倍或 384 倍。

3.1声音数字化三要素

采样频率:每秒钟抽取声波幅度样本的次数。采样频率越高,声音质量越好,数据量也越大。常用的采样频率有11.025KHz,22.05KHz,44.1KHz,48KHz,96KHz等。

量化位数:每个采样点用多少二进制位表示数据范围。量化位数也叫采样位数。量化位数越多,音质越好,数据量也越大。常用的采样位数有8位,16位,24位,32位等。

声道数:使用声道的个数。立体声比单声道的表现力丰富,但是数据量翻倍。常用的声道数有单声道,立体声(左声道和右声道)。

音频数据量=采样频率(Hz) * 量化位数 * 声道数 / 8,单位:字节/秒

3.2 I2S的时序

3.2.1标准时序

在这里插入图片描述
左右通道的数据MSB是在WS变化后第二个SCK/BCLK上升沿有效。

WS时钟低电平为左声道,高电平为右声道。

也就是说不管I2S的信号有多少有效数据,数据的最高位都是出现在WCLK(LRCK)变化后的第2个BCLK(SCLK)的脉冲处。

3.2.2 左对齐模式

在这里插入图片描述
左对齐格式的左右声道数据的MSB在WS边沿变化后SCK/BCLK的第一个上升沿有效。

3.2.3 右对齐模式

在这里插入图片描述
WS 有效区间内右边从 WS 变换后的第一个上升沿

3.2.4 协议格式

协议格式分为 I2S、左对齐(Left)和右对齐(Right)三种格式

I2S 解码方式:数据的最高位总出现在 WS 变换后的第二个脉冲(上升沿,在末尾会 多解出 1 到 2 个 bit,但不会与后面信号的重合);

left 解码方式:WS 有效区间内左边从 WS 变换后的第一个上升沿;

right 解码方式:WS 有效区间内右边从 WS 变换后的第一个上升沿
在这里插入图片描述

4. 音频驱动

4.1 OSS音频设备驱动

4.2 ALSA音频设备驱动

4.3 总结

音频设备接口包括 PCM、IIS 和 AC97 等,分别适用于不同的应用场合。针对音频设备,Linux 内核中
包含了两类音频设备驱动框架,OSS 和 ALSA,前者包含 dsp 和 mixer 字符设备接口,在用户空间的编程
中,完全使用文件操作;后者以 card 和组件(PCM、mixer 等)为主线,在用户空间的编程中不使用文件
接口而使用 alsalib。
在音频设备驱动中,几乎必须使用 DMA,而 DMA 的缓冲区会被分割成一个一个的段,每次 DMA
操作进行其中的一段。OSS 驱动的阻塞读写具有流控能力,在用户空间不需要进行流量方面的定时工
作,但是它需要及时地写(播放)和读(录音),以免出现缓冲区的 underflow 或 overflow。

5. 驱动调试

1.硬件上确定i2c总线
2.确定i2c总线是否能够正常读写
该总线下的其他i2c设备是否能够正常读写
3.确定该i2c设备的从地址

常见错误
地址错误 地址左移
频率错误 延时错误
硬件错误 开漏输出 上拉电阻

未完待续……

参考文章:
https://blog.csdn.net/dop102/article/details/124102743
https://blog.csdn.net/Chuangke_Andy/article/details/122494425
https://blog.csdn.net/weixin_59145105/article/details/119137204


http://www.ppmy.cn/news/818006.html

相关文章

视频音频的数据源分析

一、视频数据源分析 一)、视频数据源分析 数字技术就是用数字编码来描述和表达图像、声音等各种媒体信息。其信息处理的流程是:模拟信息→数字化→压缩编码→存储或传输→解码再现。 数字化视频的过程.通常被叫做数字化视频采集。模拟信号到…

把CDLinux制作成U盘启动

原文地址为: 把CDLinux制作成U盘启动 因为用下了CDlinux,本来想在虚拟机上运行的。发现虚拟机跑的时候无法识别集成的笔记本网卡,坑爹啊。后来想刻碟的,发现手头上还没有现成的东西,光驱是只读的,又要用到光驱&#x…

【java】面向对象的七大设计原则

面向对象的七大设计原则 一、单一职责原则 介绍 一个对象应该只包含单一的职责,并且该职责被完整地封装在一个类中。 就一个类而言,应该仅有一个引起它变化的原因。 分析 一个类(或者大到模块,小到方法)承担的职责越…

网络基础1

计算机网络背景 1.局域网和广域网 1、广域网:是连接不同地区局域网或城域网计算机通信的远程网。 2、局域网:是局部地区形成的一个区域网络,分布地区范围有限。 所谓 "局域网" 和 "广域网" 只是一个相对的概念; 比如, 一…

几款强力压缩打包软件

1、 7-Zip是软件盒子极力推荐的免费开源的拥有极高压缩比压缩软件!无论是你是个人还是用于商业,您都可以在任何电脑上使用它,并不需要对 7-Zip 付钱!7-zip使用了 LZMA 与 LZMA2 算法的 7z 格式 拥有比同类软件更高的压缩比&#x…

宝藏 解压缩软件——bandzip

免费软件 (无广告/间谍软件/病毒)、一切皆可解压 目录 bandzip介绍搜索bandzip下载exe文件安装与自定义 bandzip介绍 Bandizip 是一个强大的多功能压缩文件管理工具,可提供很快的解压缩速度和其他各种实用功能。软件免费,其付费版本更是可以使用更多的实…

在idea中添加mapper.xml文件模板

文章目录 1、创建模板2. 创建mapper.xml文件 1、创建模板 打开创建模板页面 位置:File-》Settings-》Editor-》File and Code Templates 点击号,新建模板,填入Name(随意)、Extension(必须为xml&#xff…

数组、指针练习题及解析(含笔试题目讲解)其一

目录 前言 题目列表: 题目解析 一维数组 字符数组 字符串 字符指针 二维数组 笔试题 总结 前言 前几期的博客已经将有关指针、数组的所以知识都已基本讲解完毕,那么接下来我们就做一些练习巩固,这些练习依据历年来一些公司笔试题进行…