AXI4-Stream 格式:高性能流式數(shù)據(jù)傳輸?shù)臉?biāo)準(zhǔn)化協(xié)議(上)
在現(xiàn)代數(shù)字系統(tǒng)設(shè)計(jì)中,流式數(shù)據(jù)傳輸(如視頻、音頻、傳感器數(shù)據(jù)流)的高效性和可靠性直接決定了系統(tǒng)性能。AXI4-Stream 作為 ARM 公司 AMBA(Advanced Microcontroller Bus Architecture)協(xié)議家族的重要成員,專為連續(xù)流式數(shù)據(jù)傳輸設(shè)計(jì),已成為片上系統(tǒng)(SoC)和 FPGA 中高速數(shù)據(jù)鏈路的事實(shí)標(biāo)準(zhǔn)。本文將系統(tǒng)解析 AXI4-Stream 格式的協(xié)議規(guī)范、技術(shù)特性及應(yīng)用實(shí)踐。
一、AXI4-Stream 格式的核心定義與設(shè)計(jì)目標(biāo)
AXI4-Stream 是一種面向無地址、連續(xù)數(shù)據(jù)流的點(diǎn)對(duì)點(diǎn)傳輸協(xié)議,與面向存儲(chǔ)器映射的 AXI4 協(xié)議不同,它取消了地址通道,專注于數(shù)據(jù)的高效流式傳輸。其核心設(shè)計(jì)目標(biāo)包括:
高帶寬利用率:通過簡(jiǎn)化控制信號(hào)和支持突發(fā)傳輸,最大化數(shù)據(jù)傳輸效率
靈活性:適應(yīng)不同類型的流式數(shù)據(jù)(從低速傳感器數(shù)據(jù)到高速視頻流)
可擴(kuò)展性:支持寬數(shù)據(jù)總線(8 位至 1024 位)和多種擴(kuò)展信號(hào)
簡(jiǎn)單性:減少協(xié)議開銷,降低硬件實(shí)現(xiàn)復(fù)雜度
AXI4-Stream 格式的本質(zhì)是定義了一套數(shù)據(jù)幀結(jié)構(gòu)和傳輸規(guī)則,使發(fā)送端(Source)和接收端(Sink)能夠無縫協(xié)作,實(shí)現(xiàn)數(shù)據(jù)的有序、高效傳輸。
二、AXI4-Stream 的信號(hào)組成與幀結(jié)構(gòu)
1. 基礎(chǔ)信號(hào)集
AXI4-Stream 的核心信號(hào)包括數(shù)據(jù)傳輸和控制兩類,構(gòu)成了協(xié)議的基礎(chǔ)框架:
TDATA:數(shù)據(jù)總線,寬度可配置(8/16/32/64/128/256/512/1024 位),承載實(shí)際傳輸?shù)臄?shù)據(jù)
TVALID:發(fā)送端有效信號(hào),高電平表示 TDATA 上的數(shù)據(jù)有效
TREADY:接收端就緒信號(hào),高電平表示接收端可接收數(shù)據(jù)
TLAST:幀結(jié)束標(biāo)志,高電平標(biāo)識(shí)當(dāng)前數(shù)據(jù)是一個(gè)數(shù)據(jù)幀的最后一個(gè)傳輸單元
這四個(gè)信號(hào)構(gòu)成了 AXI4-Stream 的最小實(shí)現(xiàn)集,其中 TVALID 和 TREADY 組成握手機(jī)制:只有當(dāng) TVALID 和 TREADY 同時(shí)為高電平時(shí),數(shù)據(jù)傳輸才會(huì)發(fā)生。
2. 擴(kuò)展信號(hào)集
為滿足復(fù)雜場(chǎng)景需求,AXI4-Stream 定義了可選的擴(kuò)展信號(hào):
TUSER:用戶自定義信號(hào),可攜帶元數(shù)據(jù)(如視頻同步信號(hào)、錯(cuò)誤標(biāo)記),寬度可配置
TID:事務(wù)標(biāo)識(shí),用于多流復(fù)用場(chǎng)景下的流識(shí)別,支持亂序傳輸?shù)闹匦屡判?span>
TDEST:目標(biāo)標(biāo)識(shí),用于路由控制,指示數(shù)據(jù)應(yīng)發(fā)送到的目標(biāo)節(jié)點(diǎn)
TKEEP:字節(jié)使能信號(hào),每 bit 對(duì)應(yīng) TDATA 的一個(gè)字節(jié),高電平表示該字節(jié)有效
TSTRB:字節(jié)選通信號(hào),功能與 TKEEP 類似,主要用于寫操作的數(shù)據(jù)掩碼
這些擴(kuò)展信號(hào)使 AXI4-Stream 能夠適應(yīng)從簡(jiǎn)單到復(fù)雜的各類應(yīng)用場(chǎng)景,例如 TUSER 在視頻傳輸中可攜帶 HSYNC/VSYNC 信號(hào),TID 和 TDEST 則支持多通道數(shù)據(jù)的并行傳輸與路由。
3. 幀結(jié)構(gòu)定義
AXI4-Stream 的數(shù)據(jù)以 "幀(Frame)" 為基本傳輸單元,每個(gè)幀由一個(gè)或多個(gè) "傳輸單元(Transfer)" 組成:
傳輸單元:?jiǎn)未挝帐种袀鬏數(shù)臄?shù)據(jù),對(duì)應(yīng) TDATA 的寬度(如 32 位 TDATA 一次傳輸 32 位數(shù)據(jù))
幀:由 TLAST 信號(hào)界定的一組傳輸單元,TLAST=1 標(biāo)識(shí)幀結(jié)束
子幀:復(fù)雜場(chǎng)景中可通過 TUSER 信號(hào)定義更小的邏輯單元(如視頻的一行像素)
典型的視頻幀結(jié)構(gòu)示例:
[行1像素?cái)?shù)據(jù)] → [TLAST=0] → [行2像素?cái)?shù)據(jù)] → ... → [行n像素?cái)?shù)據(jù)] → [TLAST=1]
這種幀結(jié)構(gòu)使 AXI4-Stream 既能支持連續(xù)無界數(shù)據(jù)流(如音頻),也能支持有明確邊界的塊數(shù)據(jù)(如視頻幀、網(wǎng)絡(luò)包)。