13 音频
1 音频接口介绍
1.1 音频解码芯片介绍
众所周知,在集成电路中的处理器只能理解二进制数据,要让它理解外界的模拟信号,就需要使用到ADC芯片把模拟信号转换为数字型信号。同样的,如果处理器需要发出声音,就需要把数字信号转为模拟信号,用到的是DAC芯片。有了以上两个过程,就可以实现发声和收声的功能了,但不经过进一步处理的音频信号听起来肯定会"辣耳朵",我们还需要加入DSP单元等。既然CODEC芯片获取声音的的本质就是采样,那么采用速率越块,采样深度越大,声音自然就越真实,也就是我们说的 ”HIFI“ 音频。
声音的问题解决了,我们还想要实现进行音效、音量调节,还要统一接口方便开发调试等......为了方便的实现音频开发,把以上所有的功能集成起来的音频专用芯片就诞生了,也就是音频编解码芯片,英文名字就是 Audio CODEC,所以我们在手机或者电脑的介绍中看到"CODEC"这个词语,一般说的都是音频编解码。
1.2 RK809 介绍
板卡的核心板已经有了一颗来自瑞芯微的RK809音频解码芯片,RK809 集成了高性能 24 位 ADC 和高性能 24 位 DAC。录音路径由 MIC_PGA 和音频 ADC组成。 DAC 将数字信号转换为模拟信号, ab 类驱动器采用实地结构,用于耳机应用, THD 非常低(-90dB @1KHz@-3dBFS 源)。同时,集成了用于扬声器应用的 d 类驱动程序。扬声器和耳机可以同时使用。集成 I2S 接口,与处理器通信。其音频处理框图如下:
RK809音频解码芯片配置特点
特点 | 描述 |
---|---|
一体化设计 | RK809集成了PMIC和音频编解码器功能,简化了硬件设计 |
标准I2S接口 | 通过I2S1_8CH与主控连接,支持高质量数字音频传输 |
完整音频链路 | 支持音频输入(麦克风)、输出(耳机/扬声器)全链路 |
灵活引脚配置 | 支持多种引脚复用模式,适应不同PCB布局需求 |
集成电源管理 | 内置LDO为音频模块提供稳定的3.3V电源 |
可配置参数 | 支持音量、采样率、时钟频率等参数的灵活配置 |
差分输入支持 | 支持差分麦克风输入,提高音频输入质量 |
1.3 I2S总线介绍
I2S和I2C都是飞利浦公司提出的,I2S主要用于数字音频设备之间进行音频数据传输,以及用于主控制器和音频 CODEC 芯片之间传输音频数据。
I2S 接口需要3-4根信号线:
- SCK:串行时钟信号
- WS:声道选择信号
- SD:串行数据信号(如果同时需要录音和出声,就需要2根信号线分别为 SDO 和 SDI)
2 音频接口的板卡位置
3 音频使用---命令行方式
3.1 音频测试指令
这里使用开源鸿蒙系统提供的专用音频调试工具 idl_capture 和idl_render进行录音和播放功能的测试。
指令如下:
idl_capture xxx.wav //录制音频保存到文件xxx.wav 中
idl_render xxx.wav //播放xxx.wav音频文件
3.2 音频测试的具体演示
首先在/data目录下创建一个测试文件:
touch data/test.wav
然后执行指令 idl_capture data/test.wav
开始录音,过程如下:
录音完成,下面执行播放录音的指令 idl_render data/test.wav
: