基于ADV7183A视频采集系统的设计
2011-06-01张尧琴王玉凡
杭 娟,张尧琴,王玉凡
(西安电子科技大学电子工程学院,陕西西安 710071)
人的感觉器官中接受信息最多的是眼睛。为了存储视觉信息,模拟视频信号必须通过模拟/数字(A/D)转换器转变为数字的“0”或“1”,这个转变过程就是所谓的视频捕捉。
在数字图像处理中,一般采用单片机控制芯片的I2C总线,而对数据的采集处理,则可以用专用的数字处理芯片DSP或FPGA进行[1]。随着FPGA器件集成度的增长,完全有能力将ADV7183A的控制电路集成到FPGA内部完成[2]。这样实现了设计的小型化、低功耗,并利用FPGA现场可编程特征充分发挥了ADV7183A 的功能[3]。
传统上是利用I2C总线控制HS,VS和FIELD,并根据这3个信号的有效电平采集有效视频,然而在不用I2C总线配置寄存器的情况下也可提取出有效视频,因为在默认配置下 ADV7183A输出的是8位BT656的YCrCb型4∶2∶2视频数据,可以根据BT656的标准提取有效视频,这样减少了编程工作,降低了FPGA与ADV7183A的连线,从而为FPGA控制其他芯片节约了引脚,提供了设计的灵活性[4]。
1 设计方案
文中嵌入式数字图像采集系统的硬件结构如图1所示。在此视频采集系统中,采用 Altera公司的Cyclone 3系列FPGA:EP3C80F484C6,AD公司的视频解码芯片ADV7183A,TI公司的TMS320C6416。模拟视频信号PAL制输入到ADV7183A中,由FPGA产生的I2C总线配置 ADV7183A内部的寄存器,控制ADV7183A输出的像素时钟频率,行场复位起始位置、宽度以及数据宽度等。ADV7183A输出的数字视频信号经过FPGA的预处理传送到DSP,由DSP显示图像来验证隔点采样是否合理。
图1 系统设计框图
2 ADV7183A的设置
AD公司生产的ADV7183A是一款通用性强的视频解码芯片。芯片应用的关键就是要设置ADV7183A内部的一些寄存器,使ADV7183A能正常工作。而ADV7183A采用了I2C总线接口标准,所以对该芯片的控制主要是通过I2C总线的数据传输。
对于本系统而言,取默认配置,无需再对I2C总线进行配置,当ADV7183A正常工作后输出8位BT656的YCrCb型4:2:2视频数据[5],只需320×256的灰度图像,即取Y,而不要C,因此必须进行隔点采样。
(2)对于输出的8位ITU-BT656,行数据由水平消隐,有效视频开始定时信号,有效行数据以及有效视频结束定时信号组成。帧数据由场消隐,第一场数据,场消隐和第二场数据组成。场消隐和场数据分别由若干行数据组成,消隐数据为0X8010,即在水平消隐和场消隐时一律用16进制的0X8010作为流数据[6]。
有效视频开始(SAV)和有效视频结束(EAV)为两个定时基准信号,每个定时基准信号由FF 00 00 XY组成,前3个是固定前缀,第4个包含场标识,场消隐和行消隐状态的信息,其定义为:F为场同步信号,0表示第一场,1表示第二场;V为垂直同步信号,0表示其他情况,1表示场消隐;H为水平同步信号,0表示有效视频开始,1表示有效视频的结束,P0-P3称为保护比特,它们的状态取决于F,V,H的状态[7],如表 1所示。
表1 保护比特状态
(3)在此系统中没有用HS,VS和F信号,即原理图中没有接这3个信号,而是根据ITU-BT656来截取需要的有效视频数据,依上文所述的有效视频开始(SAV)和有效视频结束(EAV)两个定时基准信号来截取图像。
截取有效图像:每帧分为奇场和偶场,两场的图像是一样的,因此文中选择只截取奇场。由表1可知FF 00 00 AB表示奇场场消隐的开始,FF 00 00 B6表示奇场场消隐的结束,FF 00 00 80表示奇场有效视频的开始,FF 00 00 9D表示奇场有效视频的结束,由于有效图像总是先结束即EAV,然后开始SAV,因此首先检测FF 00 00 AB,紧接着检测第一个FF 00 00 9D,检测到此认为奇场场消隐已经结束,再检测FF 00 00 80表示奇场有效视频的开始,再检测FF 00 00 9D表示奇场有效视频的结束,即需要的是FF 00 00 80和FF 00 00 9D之间的数据,它们之间的数据为奇场的有效视频数据[7]。
隔点采样:由8位ITU-BT656的格式可知[8],每帧的有效视频数据为1 440×576,因此可知每行有1 440个数据,包括Y和C,720个Y和720个C,C包括Cr和Cb。第一场即奇场为288行。隔点采样方案,(1)行截取为:截取第一场的中间256行,即丢掉前后的各16行,由于截取有效视频的时候包含了4个标志位,即每行的数据为1 444,那么16行就是1 444×16个数据,即在有效视频开始后对于前面的1 444×16个数据进行丢弃,而从第1 444×16个数据开始才是想要得到的数据。(2)列截取为:由于每行的Y为720个,而只需320个,因此隔点采样,两个时钟取一个数据,这样的话是360个Y,同行截取一样,取中间的320个Y,即丢掉前后各40个Y,由于每行还有C,因此每行开始丢掉40×2个数据,从第40×2个开始,每两个时钟取一个数据进行隔点取数据。直到达到想要的320×256个数据,此时隔点采样结束。
3 与DSP的传输
图2 DSP与FPGA传输模块
(1)将采样得到的81 920个数据缓存到双口RAM里面,再由DSP读取,如图2所示。
系统采用美国德州仪器公司推出的TMS320C6416[9]。TMS320C6713 是德州仪器公司推出的一款浮点型高性能 DSP,开发工具为 CCS,它与FPGA的传输主要通过中断控制引脚 GP5/EXT-INT5,片选信号TACE2,AECLKOUT时钟引脚,64位数据线,20位地址线,还有GPTO口。
设计方案中FPGA与DSP的传输选择异步双口RAM。
RAM设计:写时钟为LLCC1:27 MHz,写使能为320×256有效数据期间,读时钟是DSP的时钟,读使能是写完一帧图像后开始读,并由DSP的片选信号读取,通过中断来连接FPGA和DSP,写完81 920个数据后给 DSP的中断控制引脚 GP5/EXT-INT5发中断[10],中断可以是上升沿也可以为下降沿,此方案中选择了下降沿,DSP在中断控制引脚上检测到下降沿后,DSP认为收到中断,开始读数据,片选信号TACE2有效,从收到中断到TACE2有效,此期间会有一个延迟,但不影响读数据。
DSP设计:数据线使用低8位,即AED0-AED7,地址线不连接,与FPGA的通信设置为异步,设置读取的数据为81 920,DSP在片选信号TACE2有效期间为DSP读数据,由于TACE2为低电平有效,而双口RAM的读使能是高电平有效,因此需要将片选信号取反后才能作为读使能,DSP以100 MHz进行读数,当读完后DSP的片选信号自动拉高。读取数据结束,STP如图3所示[11]。
图3 STP时序图
(2)CCS可以根据图像数据显示图像,因此把传输过来的数据进行显示,验证采样的正确与否。DSP读完后显示灰度图像,相机拍出的原始图像和隔点采样后DSP显示的图像如图4和图5所示。
图4 原始图像
图5 隔点采样后的图像
由图中可以看出,采样的数据可以很好地显示摄像机所拍图像,表明采样方法是正确的。
4 结束语
本视频采集系统利用FPGA对视频解码芯片进行设置,具有小型化、低功耗、灵活性等特点,采用ADV7183A作为视频解码芯片。同时,作为视频输入前端,将彩色摄像头的模拟视频源转换成8 bit的ITU-BT656的YCrCb型4∶2∶2视频数据,并进行隔点采样得到320×256的图像,实现了FPGA与DSP的接口设计,将隔点采样得到的数据传输给DSP,由DSP显示图像达到了设计要求,能够为后来的去噪声和背景抑制等滤波处理提供良好的数字视频数据。
[1]Texas Instruments Incorporated.TMS320C6000系列 DSP的CPU与外设[M].卞红雨,纪祥春,乔钢,等,译.北京:清华大学出版社,2007.
[2]王旭智,马艳茹,杨胜齐,等.基于ADV7183B的视频解码系统的设计[J].电子技术应用,2009(12):1-2.
[3]吴继华,范丽珍,薛宁,等.Altera FPGA/CPLD设计[M].北京:人民邮电大学出版社,2010.
[4]李立.基于FPGA的视频采集系统的设计与实现[D].湖北武汉:华中科技大学,2006.
[5]Intersil Americas Inc.BT.656 video interface for ICS[M].USA:Altera,2002.
[6]Texas Instruments Incorporated.TMS320C6000系列 DSP编程工具与指南[M].徐盛,胡剑凌,译.北京:清华大学出版社,2007.
[7]姜立东.VHDL语言程序设计及应用[M].北京:北京邮电大学出版社,2004.
[8]Analog Device.Multiformat SDTV video decoder ADV7183A[M].USA:Analog Device,2004.
[9]潘松,黄继业.EDA技术使用教程[M].北京:科学出版社,2006.
[10]Altera.Cyclone III device data sheet[M].USA:Altera,2010.
[11]Altera.Cyclone III device family pin connecting guidelines[M].USA:Altera,2009.