1. 课程导入
各位同学好,我是老周。做音频嵌入式这行快十五年了,今天咱们聊聊音频Codec。说实话,很多刚入行的工程师把Codec当成一个简单的“ADC+DAC”黑盒子,结果项目里各种翻车——我当年也干过这种蠢事。
音频Codec,全称是Coder-Decoder,中文叫编解码器。但在咱们音频领域,它特指一个混合信号芯片:一边处理模拟音频信号,一边跟数字处理器(比如MCU、DSP)打交道。说白了,它就是个翻译官,把麦克风传来的微弱电压翻译成数字0和1,再把数字0和1翻译成能推动耳机振膜的电信号。
核心定义:音频Codec = 模拟前端(AFE)+ 数字接口(I2S/PDM)+ 信号处理通路(混音、增益、滤波)。它不是单纯的ADC/DAC,而是一个完整的音频模拟-数字桥接子系统。
1.1 Codec在音频链路中的位置
我习惯把音频链路分成三段:声电转换 → 信号处理 → 电声转换。Codec卡在中间,负责最关键的模拟-数字边界。
你看这张图,Codec的边界从模拟前端一直延伸到数字接口。我当年做第一款智能音箱时,以为Codec就是ADC+DAC,结果模拟前端的地没处理好,底噪大到客户退货。嗯,这里要注意:Codec的模拟部分对PCB布局极其敏感,数字地和模拟地一旦串扰,SNR直接掉20dB。
在实际产品中,Codec通常挂在I2S或TDM总线上。主控(MCU/DSP)通过I2C或SPI配置Codec的寄存器,控制采样率、增益、混音路由等参数。我见过不少工程师把I2S的BCLK和LRCLK接反,出来的声音像外星语——别笑,我自己也干过。
避坑指南:我曾经在一个车载项目中,Codec的MCLK用了22.5792MHz(44.1kHz整数倍),但主控只能输出24.576MHz(48kHz整数倍)。结果48kHz采样率下PLL锁不住,声音断断续续。后来加了外部晶振才解决。选Codec时一定要确认MCLK源是否匹配你的系统时钟树。
1.2 主流Codec芯片介绍
市面上的Codec芯片多如牛毛,但真正在量产项目里经得起考验的,其实就那么几个系列。我按应用场景分了三类,大家看表格:
| 厂商 | 型号 | 关键特性 | 典型应用 | SNR(典型) |
|---|---|---|---|---|
| TI | TLV320AIC3254 | miniDSP内核、可编程滤波器、低功耗 | 便携设备、耳机 | 100dB(ADC) |
| ADI | ADAU1361 | SigmaDSP、4路ADC/2路DAC、低延迟 | 智能音箱、会议系统 | 105dB(DAC) |
| Cirrus Logic | CS42L52 | 低功耗、内置DSP、噪声门 | 手机、平板 | 98dB(ADC) |
| Realtek | ALC5682 | USB音频、Type-C直连、低功耗 | 笔记本、扩展坞 | 110dB(DAC) |
| NXP | SGTL5000 | 超小封装、低成本、I2S直连 | IoT设备、玩具 | 90dB(ADC) |
我个人习惯把Codec分成三类:
- 通用型(如SGTL5000):便宜、封装小、外围电路简单。适合对音质要求不高的IoT产品。我有个项目做儿童故事机,就用它,成本压到3块钱以内。
- 高性能型(如ADAU1361):SNR高、THD+N低、内置DSP。适合需要做降噪、回声消除的产品。我做的会议麦克风阵列就用的这颗,配合SigmaStudio调音,效率很高。
- 集成DSP型(如AIC3254):Codec内部集成了可编程DSP核,可以在芯片内部完成EQ、DRC、AEC等算法,不需要额外DSP。但编程门槛高,我当年啃它的miniDSP文档啃了整整两周。
重要提醒:选型时别只看SNR。我踩过最大的坑是某款Codec的ADC输入阻抗只有10kΩ,接高阻抗麦克风直接衰减了6dB。一定要看数据手册里的输入阻抗、共模电压范围、PGA步进精度这些参数。另外,封装和散热也很关键——有个项目Codec离WiFi天线太近,RF干扰直接耦合进模拟输入,怎么滤波都滤不掉,最后只能改板。
1.3 Codec的核心技术指标
做音频算法的人,必须能看懂Codec的数据手册。我挑几个最关键的指标说说:
- SNR(信噪比):信号与噪声的比值,单位dB。越高越好。一般消费类产品需要90dB以上,专业音频设备要110dB以上。
- THD+N(总谐波失真+噪声):衡量信号失真程度。低于0.01%算不错,低于0.001%就是Hi-Fi级了。
- 动态范围:最大不失真信号与最小可分辨信号的比值。跟SNR类似,但定义略有不同。
- 采样率与位深:常见的是48kHz/16bit,高端的支持192kHz/24bit甚至32bit。
- 通道数:立体声是2通道,多通道Codec支持4、6、8甚至16通道。
举个例子,你做一个ANC降噪耳机,Codec的ADC延迟必须小于50μs,否则降噪算法跟不上。这时候就不能只看SNR了,延迟和功耗才是关键。我有个朋友选了高SNR但高延迟的Codec做ANC,结果降噪深度只有-15dB,客户直接拒收。
我的经验:做产品选型时,先列三个硬指标:采样率、通道数、接口类型。然后列三个软指标:SNR、THD+N、功耗。最后列一个“坑指标”:输入阻抗、共模范围、PLL抖动容限。按这个顺序筛,基本不会翻车。
好了,这一章就到这里。Codec是音频算法的物理基础,后面的章节我们会深入DSP算法如何在Codec内部跑起来。记住一句话:算法再牛,Codec不行,声音照样烂。