【RT摩拳擦掌】如何構建RT AVB switchendpoint平臺

【RT摩拳擦掌】如何構建RT AVB switch&endpoint平臺

  • 一,文檔簡介
  • 二,平臺構建
    • 2.1 軟硬件情況
    • 2.2 配置RT1170 AVB端點
      • 2.2.1 1塊MIMXRT1170開發板做talker配置
      • 2.2.2 2塊MIMXRT1170開發板做listener配置
    • 2.3 AVB Switch 配置
      • 2.3.1 MOTU AVB Switch
      • 2.3.2 RT1180 AVB switch
  • 三,AVB網絡數據包分析

一,文檔簡介

之前講過一篇文章是如何使用單點的RT1170作為talker,單點的RT1170作為listener,兩塊板子直連實現AVB的端點測試。但是實際使用中,很多是多點對多點的應用,不過需要使用到AVB switch。所以本篇文章在之前文章的基礎上,多加了一個listener端點和AVB switch,去實現一個talker,兩個listener的AVB 平臺情況。
在這里插入圖片描述

圖 1

AVB switch可以是第三方的成品AVB switch,當然也可以考慮使用NXP的RT即將推出的新產品RT1180,這款芯片是帶有AVB/TSN switch功能的,并且我們的RT1180 配套的stack也已經發布。

二,平臺構建

本文將會使用兩種AVB switch去做AVB測試:一種使用NXP官方的MIMXRT1180-EVK作為AVB switch,另外一種使用第三方產品MOTU的AVB switch。端點使用的是3塊NXP MIMXRT1170-EVK板子,一塊做talker配置,另外兩塊做listener配置。
對于RT1170作為端點,也就是talker和listener的配置,可以參考之前的文章:

【經驗分享】RT1170 AVB初體驗
這里可以直接快速啟動,拿stack里面做好的avb_app.bin直接燒錄到MIMXRT1170-EVK做talker和listener配置,當然,如果有自定義的一些功能修改了源碼,也可以參考上面的文章重新做編譯,生成avb_app.bin文件再燒錄。

2.1 軟硬件情況

硬件:
MOTU AVB SWITCH(switch)
MIMXRT1180-EVK1(switch)
MIMXRT1170-EVK
3(1: talker, 2: listener),硬件需要改動,參考初體驗文章。
軟件:
RT1170 AVB/TSN stack:
genavb_tsn-mcuxpresso-SDK_2_13_0-5_6_1: https://mcuxpresso.nxp.com/download/52643189c4d74a7b26b8e096ab28df0e
RT1180 AVB/TSN stack:
genavb_tsn-mcuxpresso-SDK_2_15_0-6_0_0 :
https://mcuxpresso.nxp.com/download/c584c33a8d4f55c29b5505b9be8f537a

2.2 配置RT1170 AVB端點

直接燒錄avbstack里面的文件:
genavb_tsn-mcuxpresso-SDK_2_13_0-5_6_1\binaries\genavb-avb_audio_app-evaluation-freertos_rt1176-5_6_1.tar\genavb-avb_audio_app-evaluation-freertos_rt1176-5_6_1\release\avb_app.bin
到3塊MIMXRT1170-EVK開發板中,可以進入serial download模式燒錄:

在這里插入圖片描述

圖 2

三塊板子做同樣的代碼燒錄,燒錄之后,進入internal boot模式,通過串口進行talker和listener的配置,代碼燒錄成功后,板載的串口會一直發log信息,只需要鍵盤輸入INSERT就可以進入到shell命令行狀態。

2.2.1 1塊MIMXRT1170開發板做talker配置

cd .. 
ls 
mkdir avb_app 
write avb_app/mclock_role 0 
mkdir avdecc 
write avdecc/btb_mode 0 
mkdir fgptp 
write fgptp/gmCapable 1 
mkdir port0 
write port0/hw_addr 00:22:33:44:55:66 

2.2.2 2塊MIMXRT1170開發板做listener配置

cd .. 
ls 
mkdir avb_app 
write avb_app/mclock_role 1 
mkdir avdecc 
write avdecc/btb_mode 1 
write avdecc/talker_id 0x00049f4455660000 

2.3 AVB Switch 配置

下面分別給出兩種SWITCH的配置連接情況:

2.3.1 MOTU AVB Switch

使用MOTU AVB switch的連接框圖如下:
在這里插入圖片描述

圖3

實物連接情況如下:
在這里插入圖片描述

圖 4

對于專用的AVB switch,無需具體配置,因為你可以把它理解為一個帶有AVB功能的交換機,可以實現AVB數據的轉發功能。只需要把1個talker的1G網口,和2個listener的1G網口分別接入到MOTU AVB SWITCH的網口中皆可。然后只要talker,和listener的功能能夠正常,整個音頻傳輸就可以正常,talker負責收集麥克風的音頻數據信息,然后轉發到兩個listener實現播放。當然,兩個listener需要分別接音箱。

2.3.2 RT1180 AVB switch

對于RT1180 AVB switch的配置,也分為快速上手和自行編譯兩種方法。如果源碼沒有任何改動的情況下,可以直接使用stack自帶的bin文件,這里需要注意,選擇正確的bin文件。RT1180有兩個內核:CM33和CM7內核。CM33的image是支持TSN/AVB bridge功能的,也就是switch,CM7 image是支持TSN endpoint功能的。
MIMXRT1180-EVK帶有多個網口,具體情況如下:
在這里插入圖片描述

圖 5

在這里插入圖片描述

圖 6

所以在使用AVB switch網口的時候,需要注意使用ENET0,1,2,3口。
使用MIMXRT1180-EVK做AVB switch網口的連接示意圖如下:

在這里插入圖片描述

圖 7

實際連接圖下:

在這里插入圖片描述

圖 8

要想實現RT1180的代碼工作,需要下載RT1180 M33的TSN bridge代碼到MIMXRT1180-EVK板子中,如果本身的AVB/TSN stack帶的源碼不需要改動,可以使用現成的bin文件測試:
genavb_tsn-mcuxpresso-SDK_2_15_0-6_0_0\binaries\genavb-tsn_app-evaluation-freertos_rt1189_cm33-6_0_0\release\tsn_app.bin
燒錄方法有很多,可以使用工具,或者命令行方式。工具可以是MCUBootutility或者官方的SEC工具,這里選擇使用MCUBootutility工具,下載連接:
https://github.com/JayHeng/NXP-MCUBootUtility/releases/tag/v6.2.0
如果使用SEC工具下載,可以參考stack的文檔:
genavb_tsn-mcuxpresso-SDK_2_15_0-6_0_0\doc\ NXP_GenAVB_TSN_MCUXpresso_User_s_Guide_6_0_rev0.pdf, chapter 11 Flash Image booting.
使用MCUBootutility工具需要做一個改動:
\NXP-MCUBootUtility-6.2.0\src\targets\MIMXRT1189 \MIMXRT1189\bltargetconfig.py
修改:

#flexspiNorMemBase0   = 0x38000000 # CM33 Secure
#flexspiNorMemBase0Ns = 0x28000000 # CM33 Non-Secure

為:

flexspiNorMemBase0   = 0x28000000 # CM33 Non-Secure
flexspiNorMemBase0Ns = 0x38000000 # CM33 Secure

在這里插入圖片描述

圖 9

把tsn_app.bin燒錄到0x2800b000。
MIMXRT1180-EVK進入serial download mode,SW5:1-OFF,2-OFF,3-OFF,4-ON.然后找一根USB線連接J33實現燒錄。燒錄完成后,需要進入internal boot 模式QSPI啟動,即:SW5:1-OFF,2-ON,3-OFF,4-OFF.
這樣就完成了帶有AVB switch功能的app燒錄,這個代碼不需要像RT1170那樣,還需要進入shell配置filesystem,對于RT1180 bridge代碼,燒錄之后,重新啟動就自帶switch功能了。
當然如果需要重新編譯自己的工程,可以直接參考stack的文檔NXP_GenAVB_TSN_MCUXpresso_User_s_Guide_6_0_rev0.pdf, 如果使用linux系統編譯,方法和RT1170一樣,三步走:
(1) 給RT1180 SDK打位于AVB stack的patch
(2) 給RT1180 AVB stack加上兩個軟鏈接,一個是板子SDK的,還有一個是AVB SDK源碼鏈接,構架是這樣的:
在這里插入圖片描述

圖 10

(3) 最后,直接編譯./ build_release.sh
\genavb_tsn-mcuxpresso-SDK_2_15_0-6_0_0\genavb-apps-freertos-6_0_0.tar\genavb-apps-freertos-6_0_0\boards\evkmimxrt1180\demo_apps\avb_tsn\tsn_app\cm33\armgcc\ build_release.sh
這樣就可以生成對應的tsn_app.bin文件。

三,AVB網絡數據包分析

一直都想查看AVB網絡數據包,于是想了如下的辦法去做,又找了一個通用的網絡交換機,可以把其中的某些網口打包到具體網口的方法,這里使用這種方法也只是想查看下基本包,從原理上講,通用交換器是不帶有AVB物理層功能的,所以應該是會對同步功能有所影響,不過本文在此,由于設備的限制,也只是基本了解下AVB數據包結構情況。
準備帶有端口mirror功能的交換器:NETGERA plus switch ProSAFE GS105E。
然后對交換器做一個配置,把端口2,3的數據mirror到端口1:
在這里插入圖片描述

圖 11

然后整個AVB系統連接框圖如下:
在這里插入圖片描述

圖 12

實物連接圖這樣的:
在這里插入圖片描述

圖 13

打開整個系統平臺,讓系統功能跑起來,也就是talker端點聲音輸入,2個listener端點的功放有輸出的情況,在PC端打開wireshark軟件,抓包,抓出來的情況是這樣的:
在這里插入圖片描述

圖 14

可以看到,有很多的AVTP數據包,而且目標地址也有兩個。
要想分析AVTP數據包,首先得知道標準的AVTP數據包情況是怎么樣的,標準數據包是這樣的結構:
在這里插入圖片描述

圖 15

下面打開wireshark軟件,配置好要抓的網口,抓到數據包情況來對比一下:
在這里插入圖片描述

圖 16

可以看到,整個包的情況,基本還是抓出來了,但是對于細節部分,比如VLAN tag,IEC 61883 header,這些沒有體現出來,應該是和普通交換機物理層無法支持AVB的原因有關,但是可以看到,上面的音頻數據還是能看到的,而且確實是雙通道,但是數據只傳了一個通道,所以對于RT1170 listener這邊,雖然接了雙通道的揚聲器,兩個喇叭對應左右聲道,但是聽下來,只有一個喇叭通道有聲音,另一個沒有聲音,這點和抓到的數據包是吻合的,這點的源頭是stack代碼麥采集就用了一個通道,然后雖然音頻配置了2個通道,但是實際只有一個通道有數據。
到目前為止,實現了AVB switch&endpoint平臺的構架與測試。
測試效果查看視頻情況。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/38944.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/38944.shtml
英文地址,請注明出處:http://en.pswp.cn/web/38944.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

未來的鑰匙在于過去:學歷史的真正意義,震驚!歷史竟然是偶然的?從歷史中尋找未來的方向!

我們自幼接受的教育是,學歷史是為了相信歷史是必然的。中國人民必然戰勝日寇的侵略,解放思想和改革開放必定會發生,和平和發展必定是世界的主題,中國經濟必定是高速增長…… 然而,在真正的歷史學家眼中,歷史…

linux應用開發基礎知識(八)——內存共享(mmap和system V)

mmap內存映射 內存共享定義 內存映射,簡而言之就是將用戶空間的一段內存區域映射到內核空間,映射成功后,用戶對這段內存區域的修改可以直接反映到內核空間,同樣,內核空間對這段區域的修改也直接反映用戶空間。那么對…

海外注冊 | 歐盟醫療器械法規下免除臨床試驗的條件與要求

在歐盟醫療器械法規(MDR)的嚴格監管下,植入性醫療器械和III類醫療器械通常需要進行臨床試驗來證明其安全性和性能。 然而,MDR也規定了一些特定情況下免除臨床試驗的可能性。以下是免除臨床試驗的條件和要求的詳細說明&#xff1a…

MVC(Model-View-Controller)模式

MVC(Model-View-Controller)模式三個主要組件:模型(Model),視圖(View),和控制器(Controller): 模型(Model)&a…

【高中數學/基本不等式】已知:a,b皆為正數,且1/(2a+b)+1/(a+2b)=1 求:a+b的最小值?

【問題來源】 https://www.ixigua.com/7025123539728466469?logTag1c2fd2e305d60e6277ab 第二題 【問題】 已知:a,b皆為正數,且1/(2ab)1/(a2b)1 求:ab的最小值? 【解答】 解:此題也有分母難消的問題&#xff…

人口萎縮,韓國釜山“進入消失階段”

KlipC報道:調查顯示,隨著低生育率和人口老化,釜山人口逐漸萎縮,韓國第二大城市釜山顯現出“進入消失階段”的跡象。 據悉,“消失風險指數”是將20歲至39歲女性人口總數除以65歲及以上人口得到的數值。當該指數大于1.5…

自然語言處理學習(2)基本知識 文本預處理+文本數據分析+文本增強

conda activate DL conda deactivate課程鏈接 一 一些包的安裝 1 stanfordcorenlp 在anoconda prompt 里面:進入自己的conda環境,pip install stanfordcorenlp 進入方式 相關包下載,Jar包我沒有下載下來,太慢了,這個…

記錄Atlas800服務器環境安裝

一、創建安裝賬號 groupadd HwHiAiUser useradd -g HwHiAiUser -d /home/HwHiAiUser -m HwHiAiUser -s /bin/bash二、下載依賴包 以下包根據需求自行下載 wget https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/Miniconda3-py39_24.5.0-0-Linux-aarch64.sh wg…

debug-mmlab

mmyolo bug1: MMYOLO for yolov5 instance segmentation on balloon dataset getting this error "ValueError: Key img_path is not in available keys. solution: pip install albumentations1.3.1 reference

【計算機考研】408王道四本書的正確使用順序

個人認為如果對408的分數要求不太高,120分以下跟著王道就夠了,而120分以上還需要看一下教材。 王道的書很適合應試考試,書中的內容都是抓重點,咸魚老師上課講的內容也非常好,通俗易懂,計算機網絡要稍遜一些…

實現Linux C++進程意外退出時信號處理與堆棧打印

文章目錄 0. 引言1. 獲取堆棧信息流程圖2. 實現進程守護與信號處理2.1 進程如何守護化?2.2 信號處理hook函數注冊2.3 守護進程代碼熟宣 3. 堆棧信息捕獲與打印邏輯4. 其他說明5. 附錄完整代碼 0. 引言 在軟件開發中,特別是對于需要高可靠性的后臺服務或…

掌握Go語言郵件發送:net/smtp實用教程與最佳實踐

掌握Go語言郵件發送:net/smtp實用教程與最佳實踐 概述基本配置與初始化導入net/smtp包設置SMTP服務器基本信息創建SMTP客戶端實例身份驗證 發送簡單文本郵件配置發件人信息構建郵件頭部信息編寫郵件正文使用SendMail方法發送郵件示例代碼 發送帶附件的郵件郵件多部分…

大模型知識學習

大模型訓練過程 數據清洗 擬人化描述:知識庫整理 預訓練 擬人化描述:知識學習可以使用基于BERT預訓練模型進行訓練 指令微調 擬人化描述:實際工作技能學習實際操作:讓大模型模仿具體的輸入輸出進行擬合,即模仿學…

Study--Oracle-06-Oracler網絡管理

一、ORACLE的監聽管理 1、ORACLE網絡監聽配置文件 cd /u01/app/oracle/product/12.2.0/db_1/network/admin 2、在Oracle數據庫中,監聽器(Listener)是一個獨立的進程,它監聽數據庫服務器上的特定端口上的網絡連接請求&#xff0c…

Vitis AI - 量化流程詳解

目錄 1. 簡介 2. 具體流程 2.1 校準激活 2.2 量化感知訓練 2.3 量化校準配置 2.4 quantization 函數 3. 總結 1. 簡介 想象一下,你有一個非常聰明的機器人朋友,它可以幫你做很多事情,比如預測天氣。但是,這個機器人的大腦…

01 數據采集層 流量分發第一步規范采集海量數據

《易經》:“初九:潛龍勿用”。潛龍的意思是隱藏,陽氣潛藏,陽爻位于最下方稱為“初九”,龍潛于淵,是學而未成的階段,此時需要打好基礎。 而模塊一我們就是講解推薦系統有關的概念、基礎數據體系…

基于SpringBoot+Vue商戶點評管理與數據分析系統設計和實現(源碼+LW+調試文檔+講解等)

💗博主介紹:?全網粉絲10W,CSDN作者、博客專家、全棧領域優質創作者,博客之星、平臺優質作者、專注于Java、小程序技術領域和畢業項目實戰?💗 Java精品實戰案例《1000套》 2025-2026年最值得選擇的Java畢業設計選題大全&#xff…

使用 Vanna 生成準確的 SQL 查詢:工作原理和性能分析

Vanna工作原理 從本質上講,Vanna 是一個 Python 包,它使用檢索增強功能來幫助您使用 LLM 為數據庫生成準確的 SQL 查詢。 Vanna 的工作分為兩個簡單的步驟 - 在您的數據上訓練 RAG“模型”,然后提出問題,這些問題將返回可設置為在您的數據庫上自動運行的 SQL 查詢。 vn.t…

【后端面試題】【中間件】【NoSQL】MongoDB提高可用性的方案(主從結構、仲裁節點、分片、寫入語義)

主從結構 MongoDB的高可用和別的中間件的高可用方案基本類似。比如在MySQL里,接觸了分庫分表和主從同步;在Redis里,Redis也有主從結構;在Kafka里,分區也是有主從結構的。 所以先介紹啟用了主從同步 我們的系統有一個關…

基于Java的微信記賬小程序【附源碼】

摘 要 隨著我國經濟迅速發展,人們對手機的需求越來越大,各種手機軟件也都在被廣泛應用,但是對于手機進行數據信息管理,對于手機的各種軟件也是備受用戶的喜愛,記賬微信小程序被用戶普遍使用,為方便用戶能夠…