《AXI4Stream总线的FPGA视频系统的开发研究.docx》由会员分享,可在线阅读,更多相关《AXI4Stream总线的FPGA视频系统的开发研究.docx(6页珍藏版)》请在第一文库网上搜索。
1、AXMStream总线的FPGA视频系统的开发研究摘要:基于AXI4Stream总线协议,在Xi1inX公司提供的国近上实现了一个具有缺陷像素校正、色彩滤波阵列插值、图像降噪实时图像采集与显示功能的视频系统。AXMStream总线协议由咽公司提出,该协议专门针对视频、额、数组等数据在片内通信设计。利用IP核进行嵌入式系统开发具有简化设计、缩短开发周期等明显优势。设计结果显示,基于AXMStream总线的视频系统具有通用性强、独立、简洁易维护等优势。引言随着科技的发展,实时视频处理技术作为数定值号处理领域最活跃的研究方向之一得到了普遍的研究关注,并在通信、航空航天、雷达、遥测遥感和多媒体等行业中
2、广泛应用。与用分离元器件构建电路的模式相比,基于现场可编程门阵列(FPGA)技术的新型视频采集系统在处理速度、可靠性、成本、扩展能力和开发周期等方面具有明显的优势。近年来,基于FPGA的视频采集系统得到了充分的研究1,2,3,4,但鉴于此类研究对图像数据未做通用的格式处理,使得系统过于集成,模块间过于依赖,降低了系统通用性。AXI(Advancedextensib1eInterfaCe)是一种总线协议,该协议是ARM公司提出的AMBA(AdvancedMicrocontro11erBustArChiteCUtre)协议中重要部分,是一种面向高性能、高带宽、低延迟的片内总线。AXI4于2010年
3、由ARM公司发布,其中AXMStream属于AXI4的子类,特别适宜流媒体数据的传输5。本文以一种专门针对视频数据传输的总线,即AXMStream总线,对整个视频采集系统进行重新研究。在保证高集成度的情况下,通过简化模块间通信接且大大提高了系统的通用性,具备良好的实用性和可扩展性。1AXI4Stream总线介绍AXMStream总线主要应用于数字信息单向传递的系统中。经过采样的物理量,例如图像像素点数据、音频采样数据和经过离散数字信号系统处理的数据等,尤其适用于此总线协议。AXMStrcam是一种单向的,由主机(master)到从机(S1aVe)的基于握手信号传递数据的总线。系统采用的AXMS
4、tream总线是基于ARM公司发布的AMBA4AXI4StreamProtoco1V1o参考手册6,该标准已广泛应用在主流市场上的燧式系统当中。在保证功能完整的情况下,设计仅采用了部分信号线进行数据传输。相关信号线名称和功能解释图略一一编者注。2系统结构简介系统基于AXIStream总线,以FPGA为主控芯片,由咽2缓存图像数据,从CMOS图像传感器读取数据并处理后,送入视频编码芯片,最终通过DV1接口的出,实现了一个实时图像采集与显示的视频系统。该系统硬件框图如图1所JO图1系统硬件结构框图系统选用芯片组分别为:CMoS图像传感器选用APtina公司的MT9V022,有效分辨率为752HX4
5、81V,该芯片广泛应用于视频监控、机器视觉等系统中:FPGA主控芯片选用Xi1inx公司的Spartan61X16,该芯片采用45nm低功耗工艺技术,提供多达15OOO个逻辑单元,满足了低成本、大容量应用的市场要求,并极大地降低了总功耗;DDR缓存芯片选用MiCro公司提供的MT47H64M16HR25E,存储容量为1Gb;视频编码芯片选用Chronte1公司提供的CH7301芯片,该芯片已广泛应用于显示接口电路中。由于主控芯片选用Xi1inx公司生产的FPGA,所以开发软件采用由该公司提供的ISE(IntegratedSoftwareEnvironment)DesignSUit套件。系统功能
6、模块结构图如图2所示,所有模块均采用硬件描述语言送旦1%HD1在ISE内实现。图2系统功能模块结构框图对于图1中所示功能模块主要考虑以下几点:CMOS图像传感器芯片和视频编码芯片与主控FPGA芯片通信采用的是12C协议,所以加入了专门的些通信模块。由CMOS图像传感器送出的图像数据并非基于AXMStream总线,引入了一个通用视频数据转AXMStream模块对数据进行AXMStream格式化处理。图像传感器存在缺陷像素(DefeC11VePixe1),需要篁法进行去除,所以数据需经过缺陷像素校正(DefeCtiVePixe1COrreCtion)模块处理。从图像传感器获取来的像素数据是Baye
7、r格式(BayerPatten)的,需要转换为RGB格式,引入了色彩滤波阵列插值(Co1orFi1terArrayInterpo1ation)模块。经过格式转换后的原始数据噪点较多,需要引入图像降噪(ImageNoiseRedUCtiOn)模块。图像数据量庞大,而FPGA有限的存储空间不能满足数据吞吐需求,为了解决这个问题本文引入了外部存储芯片DDR2,并采用专用的内存接口管理(MemoryInterfaceContrO1Ier)模块进行管理。 砺数据需要匹配相应的时序信号进行输出,所以系统内设计了一个视频时序信号控制(VideoTimingCOntroI1er)模块解决这个问题。 送入视频编
8、码芯片的数据格式基于AXMStream协议,需要引入AXMStream转视频数据模块将图像数据和视频时序控制信号进行整合,转换为编码芯片可直接利用的数据格式。3功能实现模块8.1 I2C总线通信模块I2C总线协议有以下几种不同的传输编码,按顺序依次为:开始位(Startbit)从设备地址(SIaVedeviceaddress)、应答位(acknow1edgebit)数据信息(datamessage),以及停止位(StoPbit)0一个典型的I2C总线读、写时序如图3所示。其中SCK为时钟信号线,2A为数据信号线。空闲状态下SCK和SDA都为高电平,读写开始的标志是SDA信号线拉低电平,生成一个
9、开始位,随后主设备送出8位从设备地址信号。从设备地址的最后一位决定了此次操作的读写性质,低电平表示写操作,高电平表示读操作。从设备随后拉低SDA信号线以应答。主设备随后以8位为单位进行读或写操作,并在应答后拉高SDA信号线表示停止位,回到空闲状态。StartSCKSDA1789189189addrRAVACKB15-B8ACKB7-B0ACK;图3I2C总线时序传输图8.2 视频数据转AXMStream模块由CMOS图像传感器MT9V022输出的时序如图4所示,其中1INE_VA1ID表示行数据有效,FRAMEJA1ID表示帧数据有效。本模块通过侦测FRAMEJA1ID和1INE_VA1ID信
10、号而上升和下降沿,以判断图像中每一行数据的开始和结束,通过结合并行传输的10位像素点信息,对AXMStream接口信号进行匹配。该模块以主模式(mastermode)接口输出,接口信号包含:tdata表示像素点数据;TVA1ID和tready表示握手信号;tuser表示一帧图像第一行第一个像素点;t1ast表示每一行最后一个像素点。该模块在MoCIeI迎软件中的功能仿真图略一一编者注。经验证,该模块可实现数据格式转换功能。3.3缺陷像素校正模块由于生产制造上的缺陷、日常操作中的故障,或是基于温度或曝光差异等引起像素点电压变化,从图像传感器获取来的数据存在一定数目的缺陷像素数据。这些缺陷像素的特
11、征大体可概括为以下几个方面:失活(总为低),活跃(总为高),粘连(固定值)。这些异常可以进一步表征为静态的(总是存在的)或动态的(作为曝光量或温度的函数)。模块核心代码采用XiIinX公司提供的IP核DefectivePixe1CorrectionIPCore7,其编程接口如图5所示。ac1kac1kcnaresetnsaxiac1ksaxiac1kensaxiaresetnmaxivideotdatam_axis_video_tva1:m_axis_wideo_tream_axis_video_tusem_axis_wideo_t1asirqintc_if8:0图5缺陷像素校正模块编程接口s
12、_axis_video_tdata23:0Saxisvideotva1id)s_axis_videOtreadysaxisvideotusers_axis_video_t1ast)对于图像中较大的固定区域,此模块需要去判断该区域是图像里静止的部分还是奇异点,也就是有缺陷的像素。由于处理的数据是原始的Bayer格式,此模块将对一个像素点相邻且相同格式(例如同为绿色分量)的像素点进行追踪比对,并将差值超过阈值的像素点间的信息记录下来。模块里预先设定好阈值和连续比对帧数,当像素点差异在连续若干帧内都超出预定的阈值时,即可定为缺陷像素点。对于缺陷像素点,本模块通过内插的方式将相邻格式像素数据替换过来。