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

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

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

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

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

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

掃碼添加小助手

加入工程師交流群

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

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

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

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

A2B 軟件堆棧:

poYBAGKpR4GANotpAAGF5Y3F3Zw591.png

圖 1:A2B 軟件堆棧

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

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

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

在 sigma studio 上設計 A2B 原理圖。

應用程序代碼開發(fā)。

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

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

poYBAGKpR4mAdW4dAADf8DXilbs381.png

圖 2:A2B 堆棧目錄結構

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

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

pYYBAGKpR5CAWA7hAACOuefa9ng959.png

表 1:PAL 函數(shù)列表

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

pYYBAGKpR5iAIJQnAAB9dEmLwJo939.png

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

內(nèi)存管理實現(xiàn):

A2B 堆棧提供內(nèi)置的內(nèi)存管理器,如果不需要特定于目標的內(nèi)存管理,可以啟用該管理器。我們?yōu)榇斯δ軉⒂昧薃2B_FEATURE_MEMORY_MANAGER 。

I2c 驅動程序實現(xiàn):

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

poYBAGKpR6GAIUnCAACUMkuQLmM752.png

a2b_pal_I2cOpenFunc 已實現(xiàn)為 I2c 設備調(diào)用HAL_I2C_Init并配置模擬和數(shù)字濾波器。

pYYBAGKpR7SAcDMxAAB58UiKV4k331.png

a2b_pal_I2cReadFunc已通過使用HAL_I2C_Master_Receive實現(xiàn), a2b_pal_I2cWriteFunc已使用HAL_I2C_Master_Transmit函數(shù)實現(xiàn)以從 I2c 設備讀取/寫入數(shù)據(jù)。

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

pYYBAGKpR_qAJOR-AAE17JMBBMg070.png

使用HAL_I2C_DeInit實現(xiàn)的a2b_pal_I2cCloseFunc以取消初始化 I2c 設備。

定時器實現(xiàn):

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

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

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

2. 在sigma studio上設計A2B Schematic:

A2B 網(wǎng)絡發(fā)現(xiàn)基于使用 sigma studio 創(chuàng)建的示意圖運行。原理圖包含目標處理器、主機控制器、A2B 主節(jié)點和從節(jié)點,以及 A2B 網(wǎng)絡所需的所有 I2c 從屬外圍設備。

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

poYBAGKpR_GAGNpKAAEIraED3NI353.png

圖 3:A2B 單主單從原理圖

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

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

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

3. 應用程序代碼開發(fā)

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

發(fā)現(xiàn)完成回調(diào)函數(shù):

a2b_msgRtrSendRequest(msg, A2B_NODEADDR_MASTER, a2bapp_onDiscoveryComplete );

電源/線路回調(diào)函數(shù):

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

中斷回調(diào)函數(shù):

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

A2B_MSGNOTIFY_INTERRUPT、a2bapp_onInterrupt、pApp_Info、A2B_NULL)。

對于這個基于 STM32 的 A2B 實現(xiàn),現(xiàn)有的回調(diào)實現(xiàn)示例沒有被修改。a2b_setup在應用程序啟動時調(diào)用,用于 A2B 發(fā)現(xiàn)和配置。一旦 A2B 設置返回成功,A2B 網(wǎng)絡就準備好通過 A2B 將音頻從從屬設備傳輸?shù)街髟O備。

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

poYBAGKpR-iALdX7AAC9GmQOyhg357.png

除此應用程序外,還需要有一個連續(xù)循環(huán)來監(jiān)控 A2B 上發(fā)生的任何故障,并將滴答聲提供給 a2b 堆棧。連續(xù)滴答使 A2B 堆棧保持激活狀態(tài)。

pYYBAGKpR-CAG8VCAACJPvln70s688.png

硬件接口

EVAL AD2428 主節(jié)點使用 I2c 線連接到 STM32。Eval AD2428WD1BZ 板包含 P1 連接器,用于在 AD2428 收發(fā)器與目標平臺之間進行通信。如下圖所示,將 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 評估板創(chuàng)建的。提供的詳細信息有助于圍繞 A2B 和 STM32 微控制器技術創(chuàng)建實際產(chǎn)品(音頻產(chǎn)品和其他產(chǎn)品)。A2B 和汽車音頻總線是 ADI 公司的注冊商標。ADI 的主要 A2B 網(wǎng)頁提供指向部件信息、ADI 工具和設計信息的鏈接。

審核編輯:郭婷

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

    關注

    48

    文章

    7947

    瀏覽量

    154875
  • 控制器
    +關注

    關注

    114

    文章

    17095

    瀏覽量

    184166
  • 總線
    +關注

    關注

    10

    文章

    2959

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

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

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

    stm32F407平臺上使用freertos,使用pvPortMalloc申請內(nèi)存,發(fā)現(xiàn)內(nèi)存中的數(shù)據(jù)總被修改,怎么解決?

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

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

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

    HAL庫Arduino平臺上的使用

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

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

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

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

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

    物聯(lián)數(shù)據(jù)中是什么意思?AI+IOT物聯(lián)網(wǎng)中平臺解決方案

    物聯(lián)數(shù)據(jù)中是什么意思?AI+IOT物聯(lián)網(wǎng)中平臺解決方案
    的頭像 發(fā)表于 11-25 10:37 ?1078次閱讀
    物聯(lián)數(shù)據(jù)中<b class='flag-5'>臺</b>是什么意思?AI+IOT物聯(lián)網(wǎng)中<b class='flag-5'>臺</b><b class='flag-5'>平臺</b><b class='flag-5'>解決方案</b>

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

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

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

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

    直播音頻解決方案

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

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

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

    飛騰云音頻解決方案

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

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

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

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

    STM32平臺上,SD卡的重要性不言而喻,它為嵌入式系統(tǒng)提供了必要的數(shù)據(jù)存儲和讀寫能力。MK米客方德SD作為市場上的一種選擇,因其耐用性、較小的體積以及高速的傳輸性能,
    的頭像 發(fā)表于 08-26 10:23 ?1096次閱讀
    MK米客方德SD NAND:<b class='flag-5'>STM32</b><b class='flag-5'>平臺上</b>的存儲<b class='flag-5'>方案</b>

    深度學習算法嵌入式平臺上的部署

    隨著人工智能技術的飛速發(fā)展,深度學習算法各個領域的應用日益廣泛。然而,將深度學習算法部署到資源受限的嵌入式平臺上,仍然是一個具有挑戰(zhàn)性的任務。本文將從嵌入式平臺的特點、深度學習算法的優(yōu)化、部署流程、代碼示例以及面臨的挑戰(zhàn)和未來
    的頭像 發(fā)表于 07-15 10:03 ?3177次閱讀