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