大数跨境
0
0

AXI Stream总线介绍

AXI Stream总线介绍 至芯
2025-09-25
0

AXI Stream(AXI4-Stream)总线是 ARM 公司推出的 AXI(Advanced eXtensible Interface)协议家族中的一员,专门用于高速、连续的流式数据传输,广泛应用于 FPGA、SoC 等嵌入式系统中,例如视频处理、音频传输、高速接口(如 Ethernet、PCIe)的数据交换等场景。

与 AXI4(面向地址映射的存储访问)不同,AXI Stream 取消了地址线,专注于 “无地址” 的流式数据传输,通过简化信号和握手机制,实现高带宽、低延迟的数据流转。

一、AXI Stream 的核心特点

  1. 无地址传输数据以 “流” 的形式连续传输,无需地址指定(区别于 AXI4 的地址 - 数据分离传输),适合连续数据流(如视频帧、数据包)。

  2. 单向性总线分为 “主设备(Master)” 和 “从设备(Slave)”,数据只能从主设备流向从设备(单方向),若需双向传输,需两条独立的 AXI Stream 总线。

  3. 灵活的数据宽度支持任意数据宽度(如 8bit、32bit、64bit 等),主从设备可通过协商适配不同宽度(需硬件设计保证兼容性)。

  4. 支持突发传输与帧标记可通过信号标记 “帧的开始 / 结束”“数据有效范围” 等,适合按 “帧” 或 “包” 传输的数据(如网络数据包、视频帧)。

  5. 简单的握手机制仅通过validready信号实现握手,确保数据可靠传输,无复杂的地址或响应信号,降低延迟。

二、AXI Stream 的关键信号

AXI Stream 的信号集精简且灵活,核心信号如下(以标准 32bit 数据总线为例):

信号名称
方向(Master→Slave)
功能描述
TDATA
输出
数据总线,宽度可配置(如 32bit、64bit),传输实际业务数据。
TVALID
输出
数据有效信号:TVALID=1表示TDATA上的数据有效,主设备已准备好发送。
TREADY
输入
接收就绪信号:TREADY=1表示从设备已准备好接收,可接收TDATA的数据。
TLAST
输出
帧结束标记:TLAST=1表示当前TDATA是一帧 / 一包数据的最后一个数据单元。
TUSER
(可选)
输出
用户自定义信号,可携带额外信息(如数据校验位、帧类型、错误标记等)。
TKEEP
(可选)
输出
数据有效字节掩码:当TDATA宽度大于 8bit 时,标记哪些字节有效(如 32bit 总线中,TKEEP=4'b1100表示高 2 字节有效)。
TSTRB
(可选)
输出
字节选通信号,功能与TKEEP类似,通常用于指示哪些字节需要被写入(较少使用)。
TID
(可选)
输出
流标识符,多流传输时区分不同数据流(如多个视频通道复用一条总线)。
TDEST
(可选)
输出
目的地址标识符,用于多从设备场景,指定数据应发送到哪个从设备。

三、核心握手机制(TVALID & TREADY)

AXI Stream 的传输通过TVALIDTREADY的握手实现,规则如下:

  • 当且仅当TVALID=1TREADY=1时,在时钟上升沿完成一次数据传输
  • 主设备可在TREADY=0时保持TVALID=1(数据保持有效),等待从设备就绪。
  • 从设备可在TVALID=0时保持TREADY=1(始终就绪),等待主设备发送数据。

这种机制允许主从设备以各自的速率传输数据(“异步” 适配),避免因速度不匹配导致的数据丢失。

四、帧传输示例(带 TLAST)

以 “一帧数据包含 4 个 32bit 数据单元” 为例,传输时序如下:

  1. 主设备发送第 1 个数据:TVALID=1TDATA=D1TLAST=0;从设备TREADY=1,握手成功,D1 被接收。
  2. 主设备发送第 2 个数据:TVALID=1TDATA=D2TLAST=0;从设备TREADY=1,D2 被接收。
  3. 主设备发送第 3 个数据:TVALID=1TDATA=D3TLAST=0;从设备可能因内部缓冲满而TREADY=0,主设备保持TVALID=1等待。
  4. 从设备缓冲释放,TREADY=1,D3 被接收。
  5. 主设备发送第 4 个数据(最后一个):TVALID=1TDATA=D4TLAST=1TREADY=1,握手成功,D4 被接收,同时TLAST=1标记帧结束。

通过TLAST,从设备可明确识别一帧数据的边界,便于后续处理(如帧缓存、校验等)。

五、可选信号的典型应用

  1. TKEEP
    :用于数据宽度大于 8bit 的场景,例如 32bit 总线传输 “仅高 16bit 有效” 的数据时,TKEEP=4'b1100(高 2 字节有效)。
  2. TUSER
    :携带辅助信息,例如视频传输中标记 “当前像素是否为关键帧”,或网络传输中携带 “数据包校验和”。
  3. TID
    :多流复用场景,例如同一总线上传输摄像头 A 和摄像头 B 的视频流,TID=0表示 A 的流,TID=1表示 B 的流。

六、与 AXI4 的对比

特性
AXI4(存储映射)
AXI Stream(流式传输)
传输对象
地址映射的存储单元(如内存、寄存器)
连续数据流(如视频、音频、数据包)
核心信号
地址(AWADDR/ARADDR)、数据、响应(B/RRESP)
数据(TDATA)、有效(TVALID)、就绪(TREADY)
方向
支持读写双向(通过 AW/W/B 和 AR/R 通道)
单向(主→从),双向需两条总线
地址依赖
必须指定地址
无地址,按顺序传输
典型应用
CPU 访问内存、外设寄存器配置
高速接口数据传输(如 HDMI、Ethernet)

七、AXI Stream 的优势与适用场景

  • 优势
    :结构简单、延迟低、带宽高,适合连续数据流;灵活的可选信号支持复杂场景;握手机制适配主从设备速度差异。
  • 适用场景
    • 视频 / 图像处理(如 HDMI、MIPI 数据传输);
    • 高速通信接口(如 Ethernet、PCIe、USB 的数据包传输);
    • 音频编解码、雷达信号处理等流式数据场景;
    • FPGA 内部 IP 核间的数据交互(如 DMA 与外设、DSP 与 ADC/DAC)。

总结

AXI Stream 是为 “连续流式数据” 设计的高效传输协议,通过精简信号和灵活的握手机制,在高速数据传输场景中表现优异。其核心是TVALID/TREADY握手和TLAST帧标记,配合可选信号可满足从简单到复杂的各类流式传输需求,是 FPGA 和 SoC 设计中不可或缺的总线协议。

🌻亲爱的读者们,今天的分享就到这里啦!如果今天的内容对你有启发

记得点亮右下角的“❤️”或转发给需要的朋友,让温暖传递的更远!

生活或许没有标准答案,但每一次【分享】和【点赞】,都是我们相遇的印记。你最近有哪些感悟或故事?欢迎留言区聊一聊~~~

你的认可,是我们深夜码字的充电桩🔋

明天见!保持好奇,永远鲜活~

🔍关注我们,不错过每一次相遇图片图片图片

扫码领取免费学习资料~~~

图片

往期精彩部分

SATA数据链路层介绍
Xilinx高速收发器内部结构

【声明】内容源于网络
0
0
至芯
至芯科技关于FPGA信息的交流平台
内容 392
粉丝 0
至芯 至芯科技关于FPGA信息的交流平台
总阅读70
粉丝0
内容392