一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示

【技術干貨】原來ARM+Linux音頻方案如此簡單!

武漢萬象奧科 ? 2022-07-13 11:28 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

嵌入式產(chǎn)品開發(fā)中經(jīng)常遇到音頻的輸入輸出問題,如何為其添加“喇叭”、“麥克風”設備呢?本文將簡單介紹ARM+Linux產(chǎn)品中的音頻解決方案。

我們先認識下I2S(Inter-ICSound)總線。I2S又稱集成電路內(nèi)置音頻總線,該總線專門用于音頻設備之間的數(shù)據(jù)傳輸,廣泛應用于各種多媒體系統(tǒng)。它采用了沿獨立的導線傳輸時鐘與數(shù)據(jù)信號的設計,通過將數(shù)據(jù)和時鐘信號分離,有效避免因時差誘發(fā)的失真。

以HDG2L-IoT評估套件為例,RZ/G2L處理器提供至少一路I2S總線,通過該總線與音頻編解碼芯片(IC型號WM8960)連接,用于提供高質量的錄音播音功能。音頻模塊的硬件部署如下所示。

HDG2L-IoT音頻接口

圖1HDG2L-IoT音頻接口

G2L核心板與WM8960的音頻通訊引腳如下所示:

音頻通訊引腳

在Linux系統(tǒng)的音頻編解碼驅動中,通過I2C通訊接口與音頻IC通訊,把音頻IC內(nèi)的各個功能寄存器抽象成音頻控件,這樣用戶即可在User空間內(nèi)直接調(diào)整IC內(nèi)的參數(shù)。I2S音頻引腳,則是數(shù)字信號發(fā)送、接收的通道。

播音時,音頻IC接收到數(shù)字信號后則轉換為模擬信號發(fā)送出去,錄音時,音頻IC把收到的音頻模擬量轉換為數(shù)字量,發(fā)送給處理器。

ALSA是linux的主流音頻體系結構,它包含內(nèi)核驅動集合,API庫和工具對Linux聲音進行支持,應用程序只要調(diào)用alsa-lib提供的API,即可以完成對底層音頻硬件的控制。

Linux通過alsa庫以及alsa工具管理音頻IC的控件,通過“amixercontrols”列出當前系統(tǒng)內(nèi)的音頻控制項:

音頻控制項

音頻功能的關鍵控件信息如下所示。(錄音通道、播音通道、耳機音量大小、喇叭音量大?。?。

音頻功能的關鍵控件信息

在開發(fā)板下,運行aplay程序可以對音頻播放進行測試。在測試前,需要將耳機插入開發(fā)板的耳機插孔中。

為測試基于I2S的音頻輸出接口,在命令行下執(zhí)行如下命令:

5.jpg

其中2.wav為需要播放的音頻文件,且此處假定2.wav位于/home/root/audios目錄下。

在進行音頻播放時,對于基于I2S的音頻輸出接口,可以使用amixer程序對音量進行調(diào)節(jié)。使用amixer程序對耳機播放音量進行調(diào)節(jié)的命令行格式為:

6.jpg

其音量值取值范圍在0~127之間,127表明最大音量。例如要將音量設置為100,可在命令行下執(zhí)行如下命令:

7.jpg

將揚聲器接入HDG2L-IOT開發(fā)板的左右聲道插座中,在播放音頻前可先設置揚聲器播放音量以及總音量,然后播放音頻文件:

8.jpg

錄音功能需設置錄音控件的參數(shù),如下所示。

9.jpg

用arecord命令錄音并保存為“/tmp/t.wav”,然后用aplay命令回放進行驗證。

10.jpg

由于當前的麥克風輸出信號僅接到了音頻處理的Left端作為輸入,所以播放錄音文件時僅左聲道有輸出,若希望將麥克風輸出信號同時記錄在左右聲道可做如下設置:

11.jpg

將“ADCDataOutputSelect”設定為1,其值含義為“LeftData=LeftADC;RightData=LeftADC”。

由上可知,音頻編解碼芯片在Linux系統(tǒng)中以控件的形式存在,內(nèi)部的參數(shù)一般只記錄在內(nèi)存中,當系統(tǒng)掉電時,修改的參數(shù)就會消失,所以需要保存和恢復指令將上次的參數(shù)保存在配置文件中。

alsa的配置文件為:/var/lib/alsa/asound.state

控件修改后的寫入操作如下所示。

12.jpg

控件恢復參數(shù)的操作如下所示(注:重啟板子后會自動讀取配置文件)。

13.jpg
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • ARM
    ARM
    +關注

    關注

    134

    文章

    9353

    瀏覽量

    377558
  • 嵌入式
    +關注

    關注

    5152

    文章

    19675

    瀏覽量

    317576
  • Linux
    +關注

    關注

    87

    文章

    11511

    瀏覽量

    213815
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    藍牙音頻模組中模擬音頻和數(shù)字音頻如何選擇?

    。數(shù)字音頻:藍牙數(shù)字音頻,就是將數(shù)字音頻信號通過藍牙技術進行無線傳輸。它的工作原理可以簡單理解為:1.數(shù)字編碼:將模擬
    的頭像 發(fā)表于 04-17 15:55 ?317次閱讀
    藍牙<b class='flag-5'>音頻</b>模組中模擬<b class='flag-5'>音頻</b>和數(shù)字<b class='flag-5'>音頻</b>如何選擇?

    Linux系統(tǒng)中通過預留物理內(nèi)存實現(xiàn)ARM與FPGA高效通信的方法

    管理子系統(tǒng)管理。因此,需要預留一部分物理內(nèi)存,使其不被內(nèi)核管理。接下來將為大家詳細介紹在 Linux 系統(tǒng)中通過預留物理內(nèi)存實現(xiàn) ARM 與 FPGA 高效通信的方法,預留物理內(nèi)存包括
    的頭像 發(fā)表于 04-16 13:42 ?683次閱讀
    <b class='flag-5'>Linux</b>系統(tǒng)中通過預留物理內(nèi)存實現(xiàn)<b class='flag-5'>ARM</b>與FPGA高效通信的方法

    Arm 技術預測:2025 年及未來的技術趨勢

    Arm 不斷思考著計算的未來。無論是最新架構的功能,還是用于芯片解決方案的新技術Arm 所創(chuàng)造和設計的一切都以未來技術的使用和體驗為導向。
    發(fā)表于 01-14 16:43 ?297次閱讀
    <b class='flag-5'>Arm</b> <b class='flag-5'>技術</b>預測:2025 年及未來的<b class='flag-5'>技術</b>趨勢

    請問ads7957寄存器地址是多少?

    用ads7957采集多路信號,ARM+linux環(huán)境,自己在寫驅動程序。但是看datasheet沒有寄存器的地址介紹啊。 此外,有沒有linux 下的驅動程序參考?
    發(fā)表于 01-02 07:59

    干貨來嘍!實用樹莓派Linux編譯指南

    不友好,有沒有好的解決辦法? 今天來分享一下我的私藏干貨——樹莓派Linux編譯。編譯好之后,開發(fā)板只需插到樹莓派上連接電腦就可以直接用了,極其方便。 本文以樹莓派為例,其他板子只要帶Linux系統(tǒng)的,大體上也都可以按這個操作。
    的頭像 發(fā)表于 12-18 16:31 ?545次閱讀
    <b class='flag-5'>干貨</b>來嘍!實用樹莓派<b class='flag-5'>Linux</b>編譯指南

    音頻功放芯片:音頻設備的核心驅動力

    音頻功放芯片是音頻設備核心,放大音頻信號并精準控制音質、音量。高保真、穩(wěn)定、易集成,但面臨散熱和成本問題。盡管如此,它仍是呈現(xiàn)高品質聲音不可或缺的部分。
    的頭像 發(fā)表于 12-17 16:37 ?921次閱讀
    <b class='flag-5'>音頻</b>功放芯片:<b class='flag-5'>音頻</b>設備的核心驅動力

    瑞芯微主板/開發(fā)板Linux系統(tǒng)播放音頻方法,觸覺智能RK3562開發(fā)板演示

    本文介紹瑞芯微方案主板/開發(fā)板Linux系統(tǒng)播放音頻的方法,觸覺智能RK3562開發(fā)板演示,通用RK3566、RK3568、RK3588等
    的頭像 發(fā)表于 12-13 11:40 ?944次閱讀
    瑞芯微主板/開發(fā)板<b class='flag-5'>Linux</b>系統(tǒng)播放<b class='flag-5'>音頻</b>方法,觸覺智能RK3562開發(fā)板演示

    Linux從零到精通:最簡單的Shell腳本入門教程

    在數(shù)字化時代的浪潮中,Linux操作系統(tǒng)憑借其高效、穩(wěn)定、開源的特性,成為了無數(shù)開發(fā)者和系統(tǒng)管理員的首選。 而在Linux的龐大生態(tài)系統(tǒng)中,Shell編程無疑是連接用戶與系統(tǒng)內(nèi)核的橋梁,它讓我們能夠
    的頭像 發(fā)表于 12-05 09:56 ?1571次閱讀
    <b class='flag-5'>Linux</b>從零到精通:最<b class='flag-5'>簡單</b>的Shell腳本入門教程

    車載應用中的高品質,高性能音頻CODEC解決方案

    車載應用中的高品質,高性能音頻CODEC解決方案 ? ? 新唐科技在全方位布局智能車載應用市場,深入車載音頻多樣化應用場景,持續(xù)推出音頻的新產(chǎn)品及解決
    的頭像 發(fā)表于 11-28 16:21 ?1427次閱讀
    車載應用中的高品質,高性能<b class='flag-5'>音頻</b>CODEC解決<b class='flag-5'>方案</b>

    音頻采集方案

    隨著人工智能的高速發(fā)展,現(xiàn)在結合AI的人工智能音頻采集方案正越來越流行。結合AI的音頻采集方案能有效提升音頻質量、降低噪聲、實現(xiàn)快速轉錄和情
    的頭像 發(fā)表于 09-29 22:25 ?634次閱讀
    <b class='flag-5'>音頻</b>采集<b class='flag-5'>方案</b>

    直播音頻解決方案

    作為一家HiFi音頻解決方案公司,我們的工作就像是為音頻設備“量身定制衣服”,幫助客戶解決各種音頻相關的問題。無論你是音響制造商、會議設備商、耳機品牌還是游戲
    的頭像 發(fā)表于 09-21 10:43 ?1097次閱讀
    直播<b class='flag-5'>音頻</b>解決<b class='flag-5'>方案</b>

    瑞芯微RK3588開發(fā)板Linux系統(tǒng)添加自啟動命令的方法,深圳觸覺智能Arm嵌入式鴻蒙硬件方案

    本文適用所有Linux系統(tǒng)的開發(fā)板、主板添加自啟動命令的方法,本次使用了觸覺智能的EVB3588開發(fā)板演示,搭載了瑞芯微RK3588旗艦芯片,深圳觸覺智能Arm嵌入式硬件方案商,專注工控、國產(chǎn)化、鴻蒙硬件
    的頭像 發(fā)表于 09-19 09:32 ?2017次閱讀
    瑞芯微RK3588開發(fā)板<b class='flag-5'>Linux</b>系統(tǒng)添加自啟動命令的方法,深圳觸覺智能<b class='flag-5'>Arm</b>嵌入式鴻蒙硬件<b class='flag-5'>方案</b>商

    Arm精銳超級分辨率技術解析

    近日,Arm 推出了 Arm 精銳超級分辨率技術 (Arm Accuracy Super Resolution, Arm ASR),這是一款
    的頭像 發(fā)表于 09-03 11:28 ?1377次閱讀
    <b class='flag-5'>Arm</b>精銳超級分辨率<b class='flag-5'>技術</b>解析

    飛騰云音頻解決方案

    飛騰云不僅生產(chǎn)音頻模組和解碼器評估板,還專注于開發(fā)高品質的HiFi音頻解決方案。
    的頭像 發(fā)表于 08-30 18:15 ?1174次閱讀
    飛騰云<b class='flag-5'>音頻</b>解決<b class='flag-5'>方案</b>

    飛騰云會議音頻方案

    會議音頻方案往往會根據(jù)會議室的大小、形狀和用途等因素進行定制。不同的會議環(huán)境需要不同的音頻解決方案,以確保聲音的清晰度、覆蓋范圍和回聲控制。
    的頭像 發(fā)表于 08-28 16:06 ?514次閱讀
    飛騰云會議<b class='flag-5'>音頻</b><b class='flag-5'>方案</b>