微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 基于Avalon-ST接口帧读取IP核的设计和应用

基于Avalon-ST接口帧读取IP核的设计和应用

时间:06-05 来源:互联网 点击:

可编程片上系统SoPC将软核处理器Nios II、存储器、I/O等IP核集成到单片FPGA上,它同时具有软件和硬件所固有的特点。利用SoPC Builder将自定义的IP核加入到Nios II系统中,充分发挥IP核的可移植性、复用性,提高产品设计效率[1]。IP核通过Avalon总线与Nios II进行数据交互,Avalon片内总线成为CPU与IP核交流的桥梁,直接影响系统的整体效率。Avalon总线是Altera公司专门为SoPC而推出的一套片内总线系统,与Nios系列的处理器软核一起,二者构成了Altera公司SoPC方案中的核心部分。Avalon总线标准规定了Avalon-MM(Memory Mapped)和Avalon-ST(Strming)两种接口[2]。使用SoPC技术进行视频数据处理时,两种接口的不同使用可以提高系统的运行速度。Avalon-ST接口是一种单向点对点的高速接口,主要针对的是高速数据流的传输,减少数据流处理中的瓶颈,特别适合处理图像和视频数据,利用Avalon-ST接口进行视频处理,可极大地提高系统的处理速度[3]。

本设计研究了如何将从外部存储器中读取的视频数据转换为满足Avalon-ST视频处理协议的视频流,针对Altera公司提供的视频及图像处理套件中Frame Reader IP核只支持紧缩格式的使用局限,设计并实现了紧缩和平面两种帧格式的帧读取IP核。

1 Avalon-ST视频处理协议

带有Avalon-ST接口的IP核可以用来处理要求高带宽、低延迟、单向性的数据。典型应用包括多路复用数据流、数据包及DSP数据处理等。Avalon-ST接口信号既可以用来描述传统的没有确认信号的简单数据流,也可以描述复杂的带有传输协议或多通道交叉存取的数据包传输。

Avalon-ST接口包含两种传输方式:普通传输方式和包传输方式[4]。普通传输方式如图1所示。


图中写明了用到的接口信号,带箭头的横线表示端口的作用方向,省略了端口接收端的信号名称。当ready信号有效时,发送端通过data端口发送数据,valid信号指明了发送的数据是否有效。channel为通道号,error信号为错误标识号,零值代表传输无误。

包传输方式是在普通传输方式的基础上增加了startofpacket、endofpacket、empty三个信号,实现了对封包型数据传输的支持。Startofpacket信号用来标识包的开始,endofpacket表示包的结尾,empty代表了包结尾的补零个数。

Altera公司提供的视频及图像处理套件可以方便、灵活地对视频和图像进行处理。它提供通用的Avalon-ST接口及Avalon-ST视频处理协议,使用Avalon Memory-Mapped(Avalon-MM)接口连接外部存储器模块并进行实时控制,可以很方便地通过MegaWizard面板进行参数设置及硬件生成。视频及图像处理套件中的IP核使用Avalon-ST视频处理协议,该协议以封包的方式通过Avalon-ST接口传输控制数据和视频数据。在很大程度上减小了视频处理系统对外部控制逻辑的需求。

Avalon-ST视频处理协议将包分成若干个记号,每个记号代表一段单独数据。传输前需要确定一个周期中并行传输的记号个数及记号位宽,每个记号最小为4位。传输的视频数据包只能是未压缩的视频数据,控制数据包用来对输入的视频数据进行配置。每个包并行传输的第一组记号中,最低4位为包类型标识符。0代表视频数据包,1~8为用户自定义包类型,9~14保留将来使用,15表示控制数据包。

一个视频数据包包含完整的逐行扫描帧或隔行扫描场的像素值,按图像平面中从左上到右下的顺序扫描发送,发送前需要确定颜色模式Color Pattern和每个像素占用的比特数。每个像素对应传输中的一个记号,其位宽也决定了记号的位宽。颜色模式是对颜色平面采样的组织形式,每种颜色模式都可按并行方式传输或串行方式传输。一般常用的颜色模式有RGB、YCbCr、YCbCr(4:2:2)和YCbCr(4:2:0)。

完整的RGB和YCbCr型视频数据包结构如图2所示。

控制数据包用来传输控制信号,除了4位的包类型标识符15外,还包含宽(Width)16位、高(Height)16位、隔行标志位(Interlacing)4位。宽为一帧图像每行所包含的像素数,高为一帧或一场中包含的行数。隔行标志位Interlacing的前两位指明了下一个视频数据包是否为隔行扫描方式,00表示逐行扫描方式,10表示偶数场,11为奇数场。当前两位为10或11时,标志位中的后两位用于隔行数据的同步。

每次发送视频数据包之前必须先发送控制数据包,每个控制数据包一般由10个有效记号组成,每个记号只使用最低4位,其余位不使用。第一个有效记号为包类型标识符,剩下的9个有效记号为宽、高和隔行标志位。图3为并行传输3个记号的控制数据包。

图中第一列记号是包类型标识符,F为十六进制数,等于十进制数中的15。记号1~4的低4位共同组

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top