Video In to AXI-Stream IP 核:架构、应用与实现(中)
扫描二维码
随时随地手机看文章
一、关键技术特性与参数配置
1. 视频格式支持
Video In to AXI-Stream IP 核需具备灵活的格式适配能力,典型支持范围包括:
分辨率:从 QVGA(320×240)到 4K UHD(3840×2160),部分高端型号支持 8K
帧率:15/30/60/120fps,支持可变帧率输入
色彩格式:RGB(RGB565/RGB888/RGB101010)、YUV(YUV444/YUV422/YUV420)、单色(8/16 位灰度)
扫描方式:逐行扫描(Progressive)和隔行扫描(Interlaced)
2. AXI-Stream 信号映射
IP 核需严格遵循 AXI-Stream 协议规范,典型的信号映射关系如下:
TDATA:承载像素数据,宽度与输入像素位宽一致(如 24 位 RGB 对应 TDATA [23:0])
TUSER:携带控制信息,通常 [0] 位表示 DE,[1] 位表示 HSYNC,[2] 位表示 VSYNC
TLAST:行结束时置位,标识一行像素传输完成
TVALID/TREADY:标准 AXI-Stream 握手机制,控制数据传输节奏
3. 时序适配机制
为应对不同视频源的时序差异,IP 核通常提供多种时序处理模式:
固定模式:按预设的时序参数(如 VESA 标准)解析输入信号
自适应模式:自动检测输入视频的行 / 场周期,动态调整内部参数
同步锁定模式:通过 PLL 或延迟锁定环(DLL)使内部时钟与输入像素时钟同步
4. 配置示例(基于 Xilinx Vivado)
通过 AXI4-Lite 接口配置 IP 核的典型流程:
// 初始化视频输入IP核
void video_in_init(XVideoIn *dev) {
// 配置像素格式为24位RGB
XVideoIn_WriteReg(dev->BaseAddr, XVIO_FORMAT_REG,
XVIO_PIXEL_WIDTH_24 | XVIO_COLORSPACE_RGB);
// 设置同步模式为分离同步
XVideoIn_WriteReg(dev->BaseAddr, XVIO_SYNC_REG,
XVIO_SYNC_MODE_SEPARATE | XVIO_HSYNC_ACTIVE_LOW);
// 使能自动时序检测
XVideoIn_WriteReg(dev->BaseAddr, XVIO_CTRL_REG,
XVIO_CTRL_AUTO_DETECT | XVIO_CTRL_ENABLE);
// 等待同步锁定
while(!(XVideoIn_ReadReg(dev->BaseAddr, XVIO_STATUS_REG) & XVIO_STATUS_LOCKED));
}
二、与上下游模块的接口设计
1. 上游接口(视频输入侧)
需根据视频源类型设计物理接口电路:
并行 CMOS 接口:通常包含 D [23:0](像素数据)、PCLK(像素时钟)、HSYNC、VSYNC、DE 信号
BT.656 接口:8 位数据总线携带嵌入同步信号的 YUV422 数据,无需单独同步线
LVDS 接口:通过 SERDES 将并行数据转换为低压差分信号,适合高速视频传输
2. 下游接口(AXI-Stream 输出侧)
需考虑与后续处理模块的协议兼容性:
数据宽度匹配:当 IP 核输出宽度与下游模块不一致时,需插入 AXI-Stream 宽度转换器
时钟域处理:若上下游时钟不同步,应添加异步 FIFO(如 Xilinx 的 AXI-Stream Data FIFO)
流量控制:确保下游模块的 TREADY 信号能及时响应,避免数据溢出
3. 典型系统集成框图
[CMOS摄像头] → [Video In to AXI-Stream IP] → [AXI-Stream Switch]
↓
[DDR存储器] ← [Video Frame Buffer IP] ← [图像处理IP]
↓
[HDMI输出] ← [AXI-Stream to Video Out IP]
在该架构中,Video In to AXI-Stream IP 核将摄像头数据转换为标准流格式,经交换机分配到帧缓冲和处理链路,实现视频的采集、存储、处理和显示闭环。