色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
电子发烧友
开通电子发烧友VIP会员 尊享10大特权
海量资料免费下载
精品直播免费看
优质内容免费畅学
课程9折专享价
創作中心

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

3天內不再提示

在STM32平臺上實現基于汽車音頻總線的解決方案

星星科技指導員 ? 來源:嵌入式計算設計 ? 作者:Bhumi Shah ? 2022-06-15 10:43 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

A2B或“汽車音頻總線”是一項主要為信息娛樂系統開發的新技術,旨在減輕音頻線束的重量和成本。A2B 總線是單主多從系統,其中主控制器上的 A2B 收發芯片為主。A2B 收發器芯片通過單根非屏蔽雙絞線支持多通道數字音頻。此外,A2B 總線將直流電源傳輸到遠程總線供電節點。A2B 收發器連接多個 IC 間聲音 (I2S) 同步、脈沖編碼調制 (PCM) 數據,節點之間最長可達 15 米,所有節點的總長度最長可達 40 米。

A2B 主節點生成時鐘、同步和成幀信號以及從節點的直流電源。A2B 芯片可通過 I2C 進行編程,用于配置和從從設備讀取數據。它提供對從收發器的寄存器和狀態信息以及 I2C 到 I2C 通信的直接訪問。

A2B 網絡基于為整個網絡創建的原理圖建立,包括主節點、從節點以及與其連接的外圍設備。一旦通電,發現機制用于識別網絡中連接的每個節點。所有從節點從從節點 0 到系統中最后一個可用節點依次被發現,然后初始化以進行同步數據交換。所有這些功能都在 A2B 軟件堆棧中實現。A2B 軟件堆棧旨在高效配置、設計和部署 A2B 網絡。

本文深入介紹了生成特定于 STM32 微控制器的目標軟件,其中包含單主單從 A2B 網絡的 A2B 堆棧和應用程序。EVAL-AD2428WD1BZ 板已用作主板,EVAL-AD2428WB1BZ 板已用作從板。該應用程序已創建用于從從設備線路輸入到主設備線路輸出的音頻傳輸。一個連接在從板上的 I2c 設備,該設備一直與主 I2c 總線通信,并向 STM32 微控制器提供運行時運動數據。

A2B 軟件堆棧:

poYBAGKpR4GANotpAAGF5Y3F3Zw591.png

圖 1:A2B 軟件堆棧

圖 1 顯示了 A2B 軟件堆棧的架構。此 A2B 軟件堆棧由 ADI 公司提供,可用于構建特定于任何平臺的應用程序,方法是重新實現平臺抽象層 (PAL) 和移植特定于目標平臺和最終應用程序使用的應用程序層。

基于 A2B 的應用程序開發涉及 3 個主要步驟:

構建特定于定制硬件的目標軟件。

在 sigma studio 上設計 A2B 原理圖。

應用程序代碼開發。

1. 構建特定于定制硬件的目標軟件:

圖 2 顯示了 A2B Stack 目錄結構,它由核心 A2B 堆棧和應用程序文件組成。其中,需要對“a2bstack-pal”和“app”文件夾下的文件進行特定于平臺的修改。

poYBAGKpR4mAdW4dAADf8DXilbs381.png

圖 2:A2B 堆棧目錄結構

在這里,每個目錄都包含功能特定的軟件實現。a2bstack包含用于在發現和配置階段有效協調網絡活動的計劃代碼。除此之外,它還執行封裝在消息和作業中的工作單元。a2bplugin-master包含 A2b 堆棧主節點的源代碼。A2B 網絡發現算法和線路故障診斷功能作為主插件的一部分實現,而a2bslave-plugin包含一個簡單的從插件示例,用作開發自定義插件的啟動板。a2bstack -protobuf包含解析使用 ADI sigma studio 生成的 A2B 總線配置文件的源代碼。此外,用于解析和解碼 Google protobuf 編碼的 A2B 配置文件的代碼。

a2bstack-pal包含 I2c 通信、音頻主機配置、計時器和日志記錄功能的驅動程序實現。表 1 包含需要根據目標平臺重新實現的 PAL 功能列表。其余功能根據應用程序需要提供擴展功能。

pYYBAGKpR5CAWA7hAACOuefa9ng959.png

表 1:PAL 函數列表

A2b 堆棧進程從a2b_palInit函數開始。此函數為平臺創建堆棧 ecb(環境控制塊),其中包含 BaseEcb 和 PalECB。PalEcb 包含設備驅動程序和外圍配置結構的句柄。

pYYBAGKpR5iAIJQnAAB9dEmLwJo939.png

內存管理實現:a2b_palinit為平臺特定的內存管理、定時器、I2c、音頻和插件處理程序分配函數指針。此處解釋了每個功能的基于 STM32 微控制器的實現。

內存管理實現:

A2B 堆棧提供內置的內存管理器,如果不需要特定于目標的內存管理,可以啟用該管理器。我們為此功能啟用了A2B_FEATURE_MEMORY_MANAGER 。

I2c 驅動程序實現:

STM32 的 I2c 總線已為 STM32 微控制器配置如下。

poYBAGKpR6GAIUnCAACUMkuQLmM752.png

a2b_pal_I2cOpenFunc 已實現為 I2c 設備調用HAL_I2C_Init并配置模擬和數字濾波器

pYYBAGKpR7SAcDMxAAB58UiKV4k331.png

a2b_pal_I2cReadFunc已通過使用HAL_I2C_Master_Receive實現, a2b_pal_I2cWriteFunc已使用HAL_I2C_Master_Transmit函數實現以從 I2c 設備讀取/寫入數據。

a2b_pal_I2cWriteReadFunc函數在一次調用中執行 I2c 設備的讀/寫功能。STM32 HAL 驅動程序不通過調用單個函數來提供讀/寫功能。此函數已通過在 I2c 設備上調用基于中斷的 HAL 發送和接收調用來移植。調用 HAL_I2C_Master_Seq_Transmit_IT來發送數據。已調用HAL_I2C_GetState來檢查外設的狀態并等待狀態顯示為“BUSY”。一旦外設完成數據傳輸,就會調用HAL_I2C_Master_Seq_Receive_IT來接收來自 I2c 設備的數據。同樣,HAL_I2C_GetState檢查外設的狀態并在數據接收成功完成后退出該功能。

pYYBAGKpR_qAJOR-AAE17JMBBMg070.png

使用HAL_I2C_DeInit實現的a2b_pal_I2cCloseFunc以取消初始化 I2c 設備。

定時器實現:

定時器功能已使用 HAL 定時器實現。Timer 已配置為 1 毫秒,并作為a2b_pal_TimerInitFunc的一部分啟動,每次調用a2b_pal_TimerCallback時,計數器都會增加1。a2b_pal_TimerGetSysTimeFunc將當前時間保存在 TimerEcb 中。a2b_pal_TimerShutdownFunc實施以停止計時器。

Audio Host 初始化和配置需要基于主機設備的實現。由于已使用評估板,此處的 PAL 不需要在功能上進行任何重新實現。

完成 PAL 的實現后,下一步是將總線配置應用到目標軟件。

2. 在sigma studio上設計A2B Schematic:

A2B 網絡發現基于使用 sigma studio 創建的示意圖運行。原理圖包含目標處理器、主機控制器、A2B 主節點和從節點,以及 A2B 網絡所需的所有 I2c 從屬外圍設備。

這是為具有 I2c 器件的單主、單從器件以及具有 EVM EVAL-AD2428WD1BZ 和 EVAL-AD2428WB1BZ 的音頻功能創建的原理圖。主從配置文件 (.xml) 中的音頻主機已添加到外圍屬性中,以配置從從屬線路輸入到主線路輸出的音頻傳輸。

poYBAGKpR_GAGNpKAAEIraED3NI353.png

圖 3:A2B 單主單從原理圖

如圖 3 所示,A2B 主節點、音頻主機和 I2c EEPROM 設備使用 I2c 總線連接到目標處理器(STM32)。A2B 主節點連接到 A2B 從節點,其中包含 I2c 外圍設備。所有 I2c 設備都定義了 A2B 堆棧用來訪問該設備的指定地址。

原理圖需要在導出到 .c 文件之前使用 PC 和 sigma studio 進行驗證。這將創建總線配置源文件,其中包含每個節點、主、從 I2c 總線和外圍設備節點地址的詳細信息以進行通信。將總線配置文件放到 a2b_app/src 目錄下。A2B 堆棧解析此文件并獲取所有節點的參數,使用此 A2B 堆棧運行網絡發現。如果節點序列和示意圖中定義的屬性與實際硬件連接匹配,則 A2B 堆棧通過發現階段。

into 原理圖中定義的 I2c 設備地址用于與該設備進行通信。一旦這些實現完成,A2B 堆棧就可以發現和配置連接的 A2B 網絡。

3. 應用程序代碼開發

所需的最后一個實現是應用程序實現。A2B 棧提供了三個注冊到棧中的回調函數,可用于重要的網絡活動。這些可以根據事件處理的最終應用程序設計要求重新實現。

發現完成回調函數:

a2b_msgRtrSendRequest(msg, A2B_NODEADDR_MASTER, a2bapp_onDiscoveryComplete );

電源/線路回調函數:

pApp_Info-》notifyPowerFault = a2b_msgRtrRegisterNotify(pApp_Info-》ctx, A2B_MSGNOTIFY_POWER_FAULT, a2bapp_onPowerFault , pApp_Info, A2B_NULL)。

中斷回調函數:

pApp_Info-》notifyInterrupt = a2b_msgRtrRegisterNotify(pApp_Info-》ctx,

A2B_MSGNOTIFY_INTERRUPT、a2bapp_onInterrupt、pApp_Info、A2B_NULL)。

對于這個基于 STM32 的 A2B 實現,現有的回調實現示例沒有被修改。a2b_setup在應用程序啟動時調用,用于 A2B 發現和配置。一旦 A2B 設置返回成功,A2B 網絡就準備好通過 A2B 將音頻從從屬設備傳輸到主設備。

A2B PAL I2c 功能用于與連接在 A2B 從站的 I2c 設備進行通信。這是與 A2B 從 I2c 設備通信以獲取運動數據的代碼示例。

poYBAGKpR-iALdX7AAC9GmQOyhg357.png

除此應用程序外,還需要有一個連續循環來監控 A2B 上發生的任何故障,并將滴答聲提供給 a2b 堆棧。連續滴答使 A2B 堆棧保持激活狀態。

pYYBAGKpR-CAG8VCAACJPvln70s688.png

硬件接口

EVAL AD2428 主節點使用 I2c 線連接到 STM32。Eval AD2428WD1BZ 板包含 P1 連接器,用于在 AD2428 收發器與目標平臺之間進行通信。如下圖所示,將 Eval 板與 STM32 I2c 總線之間的 I2c 和復位線連接起來。

poYBAGKpR9mAHSXfAAA2CNSegSw741.png

圖 4:AD2428WD1DZ Sigma Studio 到 STM32 連接

對于這個項目,評估板、STM32 微控制器和 I2c 外圍設備連接如下圖所示。

pYYBAGKpR9GAbr58AAEOZzy_4mA800.png

圖 5:A2B-STM32 連接

結論:

在本文中,我們討論了如何使用汽車音頻總線或 A2B 進行音頻傳輸以及通過 STM32 控制器平臺訪問 I2c 設備。該項目是使用 Analog Devices, Inc 評估板創建的。提供的詳細信息有助于圍繞 A2B 和 STM32 微控制器技術創建實際產品(音頻產品和其他產品)。A2B 和汽車音頻總線是 ADI 公司的注冊商標。ADI 的主要 A2B 網頁提供指向部件信息、ADI 工具和設計信息的鏈接。

審核編輯:郭婷

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

    關注

    48

    文章

    7960

    瀏覽量

    155478
  • 控制器
    +關注

    關注

    114

    文章

    17136

    瀏覽量

    184555
  • 總線
    +關注

    關注

    10

    文章

    2961

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    CAN總線電容過大?三種解決方案來了

    新能源汽車路試中,CAN總線傳輸異常是一個常見問題。本期我們將探討由于總線電容過大導致的下降沿過緩問題,并介紹三種有效的解決方案。CAN
    的頭像 發表于 07-22 11:36 ?130次閱讀
    CAN<b class='flag-5'>總線</b>電容過大?三種<b class='flag-5'>解決方案</b>來了

    能在Meteor Lake平臺上使用SDK 3.5嗎?

    因為客戶有一些特殊要求 ,所以 PD FW 必須實現一些定制功能。 因此,我們希望流星湖中使用 CCG6 - CYPD6127,它的閃存大小比 CYPD6227 大。 因為最新版本的 Host
    發表于 05-26 08:01

    stm32F407平臺上使用freertos,使用pvPortMalloc申請內存,發現內存中的數據總被修改,怎么解決?

    如題,我現在在stm32F407平臺上打開FREERTOS,然后使用pvPortMalloc動態申請內存的時候,發現這塊內存中的數據總是變化,后面改為malloc申請,內存中的數據就符合預期了,我已經按照網上的流程配置了freertos,不知道是什么原因導致這種現象?
    發表于 03-07 09:03

    XMOS將在CES 2025展出多款由邊緣AI驅動的創新音效、音頻、識別和處理解決方案

    XMOS順應AI技術的發展大潮,開發了諸多基于邊緣智能和音頻話音的消費性及專業性解決方案,將在一年一度的CES大展展出這些解決方案。
    的頭像 發表于 12-10 11:20 ?710次閱讀

    HAL庫Arduino平臺上的使用

    HAL庫Arduino平臺上的使用 Arduino平臺是一個開源的電子原型平臺,它包括硬件(基于微控制器的電路板)和軟件(Arduino IDE)。Arduino
    的頭像 發表于 12-02 14:04 ?1668次閱讀

    飛騰云 - 音頻解決方案專家

    高保真音頻。怎樣給客戶提供更好的音頻體驗?如果你音頻方面有任何問題,這個時候都可以找飛騰云音頻解決方案
    的頭像 發表于 11-30 01:08 ?389次閱讀
    飛騰云 - <b class='flag-5'>音頻</b><b class='flag-5'>解決方案</b>專家

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

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

    物聯數據中是什么意思?AI+IOT物聯網中平臺解決方案

    物聯數據中是什么意思?AI+IOT物聯網中平臺解決方案
    的頭像 發表于 11-25 10:37 ?1110次閱讀
    物聯數據中<b class='flag-5'>臺</b>是什么意思?AI+IOT物聯網中<b class='flag-5'>臺</b><b class='flag-5'>平臺</b><b class='flag-5'>解決方案</b>

    CAN總線關閉故障的解決方案

    CAN(Controller Area Network,控制器局域網)總線作為一種實時數據通信協議,廣泛應用于汽車、工業控制等領域。然而,實際應用中,CAN總線可能會遇到各種故障,其
    的頭像 發表于 09-30 11:37 ?6750次閱讀

    請問TLV320ADC6140NXP的iMX6UL平臺上如何配置route?

    我正在嘗試NXP的iMX6UL平臺上,Linux 4.1.15版本,使用TLV320ADC6140作為音頻的codec輸入。 此外,
    發表于 09-30 06:09

    直播音頻解決方案

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

    STM32平臺新選擇:Nand Flash(貼片TF卡)的應用解析

    MK米客方德SD NAND的高性能和高可靠性,使其成為STM32平臺上理想的存儲解決方案。它的廣泛應用不僅提升了嵌入式系統的性能,也為未來的技術創新和應用拓展提供了堅實的基礎。
    的頭像 發表于 09-18 11:04 ?1530次閱讀
    <b class='flag-5'>STM32</b><b class='flag-5'>平臺</b>新選擇:Nand Flash(貼片TF卡)的應用解析

    飛騰云音頻解決方案

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

    使用PCM6xx0-Q1系列產品的可擴展汽車音頻解決方案

    電子發燒友網站提供《使用PCM6xx0-Q1系列產品的可擴展汽車音頻解決方案.pdf》資料免費下載
    發表于 08-30 09:22 ?0次下載
    使用PCM6xx0-Q1系列產品的可擴展<b class='flag-5'>汽車</b><b class='flag-5'>音頻</b><b class='flag-5'>解決方案</b>

    MK米客方德SD NAND:STM32平臺上的存儲方案

    STM32平臺上,SD卡的重要性不言而喻,它為嵌入式系統提供了必要的數據存儲和讀寫能力。MK米客方德SD作為市場上的一種選擇,因其耐用性、較小的體積以及高速的傳輸性能,
    的頭像 發表于 08-26 10:23 ?1117次閱讀
    MK米客方德SD NAND:<b class='flag-5'>STM32</b><b class='flag-5'>平臺上</b>的存儲<b class='flag-5'>方案</b>
    主站蜘蛛池模板: 久久精品一本到东京热 | 精品久久久99大香线蕉 | 国产色精品VR一区二区 | 亚洲高清免费在线观看 | 成激人情在线影院920 | 曰曰夜夜在线影院视 | 日韩精品久久久久久久电影 | 琪琪伦伦影院理论片 | 办公室里呻吟的丰满老师电影 | 国产AV精品国语对白国产 | 国模精品一区二区三区视频 | 94色94色永久网站 | 成人国产在线视频 | 久久全国免费观看视频 | 国产午夜小视频 | 国产精品自产拍在线观看中文 | 人人草人人草 | 久久久视频2019午夜福利 | 国产精品一久久香蕉国产线看 | 久草免费视频在线观看 | 色噜噜色啪在线视频 | 男女疯狂一边摸一边做羞羞视频 | 男男腐文污高干嗯啊快点1V1 | 麻豆成人久久精品二区三区网站 | 日韩午夜中文字幕电影 | 久久99热只有频精品 | 伊人久久精品午夜 | 欧美性爱 先锋影音 | 人人爽久久久噜噜噜丁香AV | xx69美国| 国内精品久久人妻无码HD浪潮 | 欧美内射AAAAAAXXXXX | 中文字幕亚洲乱码熟女在线萌芽 | 欧美激情一区二区三区四区 | 蜜臀AV熟女人妻中文字幕 | 国产国拍亚洲精品av麻豆 | 久久三级网站 | 出差无套内射小秘书 | 国产视频这里只有精品 | 51精品国产AV无码久久久密桃 | 伊人青青久久 |

    電子發燒友

    中國電子工程師最喜歡的網站

    • 2931785位工程師會員交流學習
    • 獲取您個性化的科技前沿技術信息
    • 參加活動獲取豐厚的禮品