找回密码
 注册
关于网站域名变更的通知
查看: 233|回复: 2
打印 上一主题 下一主题

【技术干货】原来ARM+Linux音频方案如此简单!

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2022-7-13 16:29 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
  嵌入式产品开发中经常遇到音频的输入输出问题,如何为其添加“喇叭”、“麦克风”设备呢?本文将简单介绍ARM+Linux产品中的音频解决方案。
  我们先认识下I2S(Inter-IC Sound)总线。I2S又称集成电路内置音频总线,该总线专门用于音频设备之间的数据传输,广泛应用于各种多媒体系统。它采用了沿独立的导线传输时钟与数据信号的设计,通过将数据和时钟信号分离,有效避免因时差诱发的失真。
  以HDG2L-IoT评估套件为例,RZ/G2L处理器提供至少一路I2S总线,通过该总线与音频编解码芯片(IC型号WM8960)连接,用于提供高质量的录音播音功能。音频模块的硬件部署如下所示。

& _6 W: O8 s' [) D
图1   HDG2L-IoT音频接口; F: W4 w* k' |' {  u$ G6 Q
  G2L核心板与WM8960的音频通讯引脚如下所示:
& l1 u5 o9 w$ u. p
  在Linux系统的音频编解码驱动中,通过I2C通讯接口与音频IC通讯,把音频IC内的各个功能寄存器抽象成音频控件,这样用户即可在User空间内直接调整IC内的参数。I2S音频引脚,则是数字信号发送、接收的通道。
播音时,音频IC接收到数字信号后则转换为模拟信号发送出去,录音时,音频IC把收到的音频模拟量转换为数字量,发送给处理器。
  ALSA是linux的主流音频体系结构,它包含内核驱动集合, API 库和工具对 Linux 声音进行支持,应用程序只要调用alsa-lib提供的API,即可以完成对底层音频硬件的控制。
  Linux通过alsa库以及alsa工具管理音频IC的控件,通过“amixer controls”列出当前系统内的音频控制项:

( y* _# o) O  D- W* l: D) W5 E. I
/ l0 O1 \, m, o' q1 i* o
  音频功能的关键控件信息如下所示。(录音通道、播音通道、耳机音量大小、喇叭音量大小)。
* V# G6 O6 P7 M6 T1 o
- {- C4 @$ }- \+ L4 v
  在开发板下,运行aplay程序可以对音频播放进行测试。在测试前,需要将耳机插入开发板的耳机插孔中。
为测试基于I2S的音频输出接口,在命令行下执行如下命令:
  其中2.wav为需要播放的音频文件,且此处假定2.wav位于/home/root/audios目录下。
在进行音频播放时,对于基于I2S的音频输出接口,可以使用amixer程序对音量进行调节。使用amixer程序对耳机播放音量进行调节的命令行格式为:
  其音量值取值范围在0~127之间,127表明最大音量。例如要将音量设置为100,可在命令行下执行如下命令:
  将扬声器接入HDG2L-IOT开发板的左右声道插座中,在播放音频前可先设置扬声器播放音量以及总音量,然后播放音频文件:
9 a1 Z3 o* ~8 |9 S& [* _% A  t5 R

- }! k3 ]* ]- f0 w- Q/ X
  录音功能需设置录音控件的参数,如下所示。
  用arecord命令录音并保存为“/tmp/t.wav”,然后用aplay命令回放进行验证。
: u% ?+ I9 H) g2 U" U. k
  由于当前的麦克风输出信号仅接到了音频处理的Left端作为输入,所以播放录音文件时仅左声道有输出,若希望将麦克风输出信号同时记录在左右声道可做如下设置:
  将“ADC Data Output Select”设定为1,其值含义为“Left Data = Left ADC;   Right Data = Left ADC”。
  由上可知,音频编解码芯片在Linux系统中以控件的形式存在,内部的参数一般只记录在内存中,当系统掉电时,修改的参数就会消失,所以需要保存和恢复指令将上次的参数保存在配置文件中。
  alsa的配置文件为:/var/lib/alsa/asound.state
  控件修改后的写入操作如下所示。
  控件恢复参数的操作如下所示(注:重启板子后会自动读取配置文件)。
* M1 Q- }3 e  t' a0 T6 E7 e; }
  • TA的每日心情
    开心
    2022-12-5 15:27
  • 签到天数: 1 天

    [LV.1]初来乍到

    2#
    发表于 2022-7-13 18:04 | 只看该作者
    开发板,应该有配套的程序

    该用户从未签到

    3#
     楼主| 发表于 2022-7-19 11:17 | 只看该作者
    有的,都会有配套资料

    “来自电巢APP”

    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

    推荐内容上一条 /1 下一条

    EDA365公众号

    关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

    GMT+8, 2025-7-30 11:39 , Processed in 0.109375 second(s), 23 queries , Gzip On.

    深圳市墨知创新科技有限公司

    地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

    快速回复 返回顶部 返回列表