嵌入式linux ASoC架构声卡驱动开发
文章目录
需求分析
基于linux操作系统,使用ASoC框架,将系统中的音频文件从扬声器中播放出来。
首先,各种格式的音频文件,mp3,wav,FLAC,都是将模拟量以一定的规范进行了编码,才能保存下来的,所以对应的你需要一个播放器。播放器会将音频解码成i2s数据,然后向CPU外部传输。
扬声器只能接受模拟信号,所以需要一个数字信号处理芯片(DSP digital signal process)将i2s转换成模拟信号,这个DSP芯片从系统的角度理解就是声卡,除了将数字信号转换成模拟信号,有点DSP还具有放大、调音等功能。
ASoC架构下声卡驱动代码结构
ASoC架构下,添加一块声卡需要三个部分:
- codec驱动,也就是DSP芯片的驱动,负责直接对DSP进行控制的代码在这一部分驱动中。
- 平台驱动,这部分内容和名字一样,只和CPU这个平台有关,只关心CPU内部对i2s信号相关的处理,这部分代码一般由CPU的厂商负责写好。
- board驱动,板级驱动,也就是针对你的开发板部分的代码,这部分代码主要负责将你的CPU和DSP绑定起来。