女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

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

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

3天內不再提示

高通驍龍上的藍牙A2DP和HFP

星星科技指導員 ? 來源:嵌入式計算設計 ? 作者:Shahrad Payandeh ? 2022-08-12 11:58 ? 次閱讀

Snapdragon 平臺具有適用于任何類型的音頻/語音處理系統的所有必要組件。本文著眼于如何使用 Snapdragon 的藍牙無線電芯片來創建完整的藍牙音頻系統。

將 QCA 藍牙/Wi-Fi 模塊與 Snapdragon 配合使用是藍牙用例的完整解決方案。在本文中,我們將提供一些有關音頻路由和 BlueZ 接口的信息,以使 Snapdragon 平臺(在此示例中為 APQ8009 - Snapdragon 200 系列)成為免提設備。在這個平臺中,我們使用帶有 I2S 接口的 WCD9326 作為前端音頻編解碼器

QCA 模塊具有專用于 APQ 的總線接口,使用此總線和定制的主機控制器接口 (HCI) 驅動程序,用戶應用程序可以以與以前相同的方式與藍牙接口通信(圖 1)。接口模塊可以使用共享內存基礎通信直接訪問低功耗音頻子系統 (LPASS)。LPASS 是 Hexagon 數字信號處理器DSP),它為信號處理應用提供了一個平臺。這意味著需要對藍牙流進行的任何處理都可以在作為 Snapdragon 的一部分的 LPASS 中完成。

450-58b609b42dccb-Picture1.png.jpg

【圖1 | 與藍牙接口通信的用戶應用程序]

該平臺上的人機交互 (HCI) 接口是一個共享的、基于內存的驅動程序,您可以將它與各種藍牙堆棧一起使用。我們將使用 BlueZ 作為示例。

使用高級音頻分發配置文件 (A2DP) 接收器和免提配置文件 (HFP),您可以設計出大多數車載套件中的藍牙揚聲器/HFP 設備。

A2DP 接收器配置文件

讓我們完成啟用此配置文件的步驟:

在 BlueZ 配置中啟用配置文件。

在 DBus 配置中啟用正確的消息。使用 。添加與每個接口相關的 DBus 消息dbus_bus_add_match。

開始偵聽 DBus 以獲取與請求連接相關的消息,并提供代理以使用dbus_connection_pop_message.

media_register_endpoint使用 A2DP的正確 UUID 為A2DP 接收器注冊正確的端點。

等待 DBus 上的設置和選擇配置消息,這將由遠程設備觸發。SelectConfiguration 之類的消息將通知 SBC 編解碼器的正確設置。

配置編解碼器(如 SBC)后,收聽播放消息。收到 SetConfiguration 消息后,打開線程進行下一步。

BlueZ 堆棧提供指向來自遠程設備的音頻流的文件指針。

打開該流,讀取數據包,對其進行解碼,然后將它們發送到輸出音頻設備。

在這個級別,LPASS 就位,音頻流將由 DSP 處理。使用 Hexagon DSP 及其軟件開發套件 (SDK),您可以在將其傳遞到 APQ 之前進行任何自定義音頻處理。例如,您可以將低復雜度子帶編碼 (SBC) 解碼留給 DSP 和/或對音頻流進行一些過濾。高級操作系統 (HLOS) 上的音頻接口是標準的。例如,在 Linux/Android 上,高級 Linux 聲音架構 (ALSA) 是音頻層。在 ALSA 端使用混音器命令,您可以控制音頻路由,這為 HLOS 端提供了靈活性。

音頻路由

要設置揚聲器路由,請應用混音器命令來設置 CODEC。

cset “name=‘MI2S_RX Channels’ 1”

cset “name=‘SLIM RX0 MUX’ 1”

cset “name=‘RX INT7_1 MIX1 INP0’ 5”

cset “name=‘COMP7 Switch’ 1”

cset “name=‘SpkrLeft COMP Switch’ 1”

cset “name=‘SpkrLeft BOOST Switch’ 1”

cset “name=‘SpkrLeft SWR DAC_Port Switch’ 1”

cset “name=‘PRI_MI2S_RX Audio Mixer MultiMedia2’ 1”

現在,使用任何將音頻流發送到 MultiMedia2 的播放應用程序將音頻流從 DSP 路由到揚聲器。

免提配置文件

由于 BlueZ 堆棧支持 HFP,我們可以輕松設置對 HFP 的支持,如下所示

設置 BlueZ 配置以支持 HFP。

設置 DBus 配置以獲取 HFP 消息。

使用適當的設置設置語音的 HCI。

hciconfig hci0 類 4C0100

聽取配對請求并提供適當的代理來完成配對。

啟用同步面向連接 (SCO) 連接。

等待 BlueZ 堆棧提供 RFCOMM 和 SCO 套接字。

當 SCO 連接建立后,LPASS 將擁有來自藍牙接口模塊的 TX 和 RX 音頻流。

現在 LPASS(Hexagon DSP)就位。音頻流將通過 DSP 并傳遞到 APQ。使用 DSP 上的現有模塊,您可以輕松地為 HFP 案例設置回聲消除系統。此外,現有的模塊可用于噪聲消除或抑制。

音頻路由

amixer cset name=‘MI2S_RX Channels’ ‘Two’

amixer cset name=‘SLIM RX0 MUX’ ‘AIF1_PB’

amixer cset name=‘SLIM RX1 MUX’ ‘AIF1_PB’

amixer cset name=‘RX INT7_1 MIX1 INP0’ ‘RX0’

amixer cset name=‘RX INT8_1 MIX1 INP0’ ‘RX1’

amixer cset name=‘COMP7 Switch’ 1

amixer cset name=‘COMP8 Switch’ 1

amixer cset name=‘SpkrLeft COMP Switch’ 1

amixer cset name=‘SpkrLeft BOOST Switch’ 1

amixer cset name=‘SpkrLeft VISENSE Switch’ 1

amixer cset name=‘SpkrLeft SWR DAC_Port Switch’ 1

amixer cset name=‘RX7 Digital Volume’ 90

amixer cset name=‘RX8 Digital Volume’ 90

amixer cset name=‘AIF1_CAP Mixer SLIM TX6’ 1

amixer cset name=‘MI2S_TX Channels’ 0

amixer cset name=‘SLIM TX6 MUX’ 2

amixer cset name=‘ADC MUX6’ 0

amixer cset name=‘DMIC MUX6’ 1

amixer cset name=‘IIR0 INP0 MUX’ 7

amixer cset name=‘PRI_MI2S_RX Port Mixer INTERNAL_BT_SCO_TX’ 1

amixer cset name=‘HFP_INT_UL_HL Switch’ 1

amixer cset name=‘INTERNAL_BT_SCO_RX Audio Mixer MultiMedia6’ 1

amixer cset name=‘MultiMedia6 Mixer QUAT_MI2S_TX’ 1

aplay -D hw:0,5 -P &

arec -D hw:0,17 -P -R 8000 -C 1 &

aplay -D hw:0,18 -P &

arec -D hw:0,18 -P -R 8000 -C 1 &

使用此環回,音頻流來自藍牙,被路由到揚聲器和來自麥克風的音頻流,并被路由到藍牙。

在所有這些情況下,您需要做的是在 RX 或 TX 音頻路徑中設置拓撲(音頻/語音處理模塊的組合),并在拓撲中定義它。然后,在需要時將該拓撲 ID 加載/發送到 DSP。

審核編輯:郭婷

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • dsp
    dsp
    +關注

    關注

    555

    文章

    8142

    瀏覽量

    355177
  • 揚聲器
    +關注

    關注

    29

    文章

    1338

    瀏覽量

    63890
收藏 人收藏

    評論

    相關推薦
    熱點推薦

    正在成為PC出色動力的核心

    一年前搭載開創性X系列平臺的設備開始面市。如今,正在成為PC出色動力的核心。通公司總裁兼CEO安蒙在COMPUTEX 2025
    的頭像 發表于 05-21 17:33 ?415次閱讀

    通明年8 Elite 2芯片全數交由臺積電代工

    芯片代工伙伴。一次通選擇三星代工,還要追溯到2021年的8第一代芯片,當時采用的是三星的4納米制程。 據悉,臺積電將為通生產
    的頭像 發表于 12-30 11:31 ?960次閱讀

    通推出8至尊版

    計算攝影時代,AI在手機拍攝場景中扮演著越來越重要的角色。通始終致力于以強大的AI性能賦能終端側影像發展,全新推出的8至尊版移動平臺搭載第二代通Oryon CPU和
    的頭像 發表于 12-23 13:38 ?1039次閱讀
    <b class='flag-5'>高</b>通推出<b class='flag-5'>驍</b><b class='flag-5'>龍</b>8至尊版

    通發布汽車新品:Ride至尊版平臺

    近日,在峰會2024通正式揭曉了其汽車產品路線圖中的最新力作——
    的頭像 發表于 10-23 10:32 ?758次閱讀

    性能提升45%!通推出8 Elite,首款采用Oryon 核心的移動SoC

    北京時間10月22日凌晨,在美國夏威夷舉行的技術峰會上,通CEO安蒙說,我們用平臺
    的頭像 發表于 10-22 18:24 ?6368次閱讀
    性能提升45%!<b class='flag-5'>高</b>通推出<b class='flag-5'>驍</b><b class='flag-5'>龍</b>8 Elite,首款采用Oryon 核心的移動SoC

    PSOC6將藍牙A2DP源移植到STM32未定義引用\"\" 錯誤,如何解決?

    我正在嘗試將 PSOC6 藍牙 A2DP 信號源導入 STM32。 但我檢查了所有內容,卻得到一個未定義引用的錯誤,如何解決?
    發表于 09-23 06:15

    經典藍牙協議PAN詳解

    藍牙 Profile定義了藍牙設備之間如何進行通信以及實現特定的功能和應用場景。正是由于各種Profile的存在拓展出了藍牙豐富的應用場景,例如A2DP
    的頭像 發表于 07-17 09:25 ?5167次閱讀
    經典<b class='flag-5'>藍牙</b>協議PAN詳解

    請問哪種型號的藍牙或WIFI/bt組合支持A2DP、AVRCP、HFP、MAP 1.3.1或1.4.2配置文件?

    請問哪種型號的藍牙或 WIFI/bt 組合支持 A2DP、AVRCP、HFP、MAP 1.3.1 或 1.4.2 配置文件? 謝謝!
    發表于 07-05 06:28

    使用ESP32-WROVER-E模塊,A2DP/BLE coex情況下連接BLE的時候會造成系統重啟怎么解決?

    我有一個項目使用ESP32-WROVER-E 模塊,需要實現BLE/A2DP 共存工作。功能要求是: 1.連接BLE后使用手機的MAC地址(保存在FLASH中)去連接A2DP2.關閉BLE后同時
    發表于 06-28 07:57

    使用ESP32_LyraT 4.3開發板編譯燒錄pipeline_a2dp_sink_and_hfp工程在hfp模式下有雜音怎么解決?

    使用一塊ESP32_LyraT 4.3開發板編譯燒錄esp-adfexamplesget-startedpipeline_a2dp_sink_and_hfp示例工程后發現在hfp模式下通話有雜音。
    發表于 06-28 07:53

    ESP32-LyraT v4.3 HFP模式中聽筒噪音嚴重,MIC聲音對方聽不清怎么解決?

    ESP32-LyraT v4.3開發板,運行 pipeline_a2dp_sink_and_hfp 例程,并使ESP32-LyraT開發板與安卓手機通過藍牙成功連接。(hfp ove
    發表于 06-28 07:53

    ble和a2dp共存,進入ble掃描的時候,音頻數據接收會丟失怎么解決?

    ble和a2dp共存,進入ble掃描的時候。音頻數據接收會丟失。會卡卡頓 怎么解決?
    發表于 06-24 08:10

    使用ESP32 A2DP藍牙音頻制作了藍牙音箱,手機來電話時通話也走ESP32,如何接電話時自動切換到iphone?

    使用ESP32 A2DP藍牙音頻制作了藍牙音箱,但是手機來電話時,通話也走ESP32, 如何接電話時自動切換到iphone?
    發表于 06-14 06:58

    IDF-4.4.1的藍牙A2DP Source例子,初始化失敗的原因?

    IDF-4.4.1的藍牙A2DP Source例子,初始化失敗 但是改用4.3.4就可以成功,有沒有遇到這個問題的。 esp_bt_controller_config_t bt_cfg
    發表于 06-13 06:46

    A2DP在esp32-c3和esp32-s3的開發板編譯不通過的原因?

    設置目標芯片idf set-target esp32c3后, 經典雙模藍牙a2dp例程編譯不通過后 設置目標芯片idf set-target esp32s3后, menuconfig中去掉ble5
    發表于 06-11 08:04