基于USB2.0与FPGA的视频的采集卡设计_基于fpga的计算器设计
基于USB2.0与FPGA的视频的采集卡设计由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“基于fpga的计算器设计”。
第一章绪论 播、大屏融合、高清录播等企业和工程商都开始筹划高清视频设备,视频采集卡
开始朝着高清视频采集卡的方向前进。
§1.5 本论文所做的工作
本课题设计的视频采集卡的功能是将从CCD摄像头出来的PAL制式旳标准模
拟视频源解码成Y:U:V = 4:2:2的数字格式,然后经过FPGA所控制的SDRAM存
储模块进行数据暂存及频率变换,最后通过USB2.0接口上传至PC进行视频的实
时显示。
因此,本论文所做的工作主要包括以下几个方面:
1)对PAL、NTSC、SECAM制式的标准模拟视频源进行一些简单的说明,重
点关注它们的不同点和几个主要的参数。
2)视频采集卡的原理图设计以及主要芯片的作用和特点。
3)下位机程序和上位机程序设计的思想和实现方法。
4)整个系统的实验结果和分析。
5)说明现阶段工作的不足并提出一些改进的措施。
B2.0与FPGA的视频采集卡设计
§1.3 视频采集卡的应用范围
政府:远程工作会议、政府采购会议、远程统计与协作、政府招投标会议、人事招聘与考核、群众政务咨询、信访、公共卫生指挥丨5]。
金融:金融工作会议、远程客户服务、办公会议、电子商贸、远程咨询、操
作指导、路演、远程招聘与培训。
企业:企业例会、远程商务谈判、协同办公、远程招聘、代理商渠道商远程
培训、技术研讨、行政办公、内部培训学习、分支机构会议、远程客服、远程监 控。
医疗:远程会诊、远程医疗咨询、远程医学交流。
教育:多媒体教学视频直播录制,网络教育培训、远程家教辅导、考场监控、家长会、异地学术交流、远程教学观摩课。
公检法、部队:远程会议、远程协同作战指挥、远程警务指挥、远程审讯、远程探监、法庭直播、应急指挥。
运营:电信级网络会议服务、即时通讯服务、VOIP、PSTN。
资讯与媒体:电视五动、远程采访、远程咨询、远程商务。
§1.4视频采集卡的发展
视频采集卡是一个完整的视频信号处理系统的最前端部分,是进行视频信号处
理的前提条件,它随着集成电路技术以及通信接口技术的进步得到了极大地发展,目前正在朝着高速度、高分辨率、高可靠性、高集成化的方向前进
早期的视频釆集卡采用分立的元器件进行视频釆集系统的搭建,设计的系统稳
定性差,功耗大,成像质量也不够理想。
随着集成电路技术的发展,幵始出现一些A/D、D/A转换芯片以及视频同步分
离芯片,使用这些芯片搭建的视频采集卡稳定性高,功耗降低,成像质量也较好。
但是使用的仍然是传输速率较低,操作不太方便的PCI传输接口,此时的视频采
集卡不能实现硬压缩。
集成电路的进一步发展导致诸多性能优异的视频编解码芯片以及FPGA、DSP
等处理器芯片的出现,视频釆集卡的功能得到了极大地扩展,它不仅仅实现采集 的功能,而且能够实现硬件压缩的功能;而通信接口技术的发展使得各种传输速
率快、操作方便、支持热插拔的接口先后出现,如USB接口、IEEE 1394接口等 等。此时出现的视频采集卡功能强大,操作简捷,稳定性以及成像质量都非常优
秀。
进入2011年,由于高清视频的高度发展,各种视频会议、电子教学、视频直
B2.0与FPGA的视频采集设计
第一章绪论
§1.1课题研究背景及意义
在这个五彩续纷的世界里,图像是人类获取外部信息及认知自然界的重要来源。
国内外许多业界的人士曾经统计得知:人类获得的信息中80%以上都是来自眼睛
直接看到的生活现象⑴。
随着社会的发展和科技的进步,人们想要更快、更好、更直接地获取图像视频
信息,由此导致了视频采集技术的不断发展。如今,视频采集卡已经成为电子产
品家族中的重要成员。它广泛应用于安防监控、教育课件录制、大屏拼接、多媒
体录播录像、会议录制、虚拟演播室、虚拟现实、安检X光机、雷达图像信号、VDR纪录仪、医疗X光机、内窥镜、CT机、胃肠机、工业检测、智能交通、医
学影像、工业监控、仪器仪表、机器视觉等领域I2]。各种各样的功能用来满足用户 的不同需求,完美的性能以及简捷的操作极大地提升了用户的视觉体验。目前国
内外视频采集卡的品牌很多,主要有天敏、佳的美、E视宝、Osprey、品尼高、圆
刚和好莱玛制片等等13],每个品牌都拥有众多优秀的产品。即便如此,开发一款用
户定制的视频采集卡依然有着重要的意义。它只需满足用户特定的需求,因而资
源利用率较高、成本较低;并且由于用户可以灵活地操纵板子上的各个器件以及
上位机程序,系统的进一步开发和升级将会非常方便。
§1.2 视频采集卡的分类 视频采集卡(Video Capture Card)也叫视频卡,是将模拟摄像机、录像机、LD
视盘机、电视机等输出的视频数据或者视频音频的混合数据输入电脑,并转换成
电脑可辨别的数字数据,存储在电脑中,成为可编辑处理的视频数据文件。它可
以按照不同的参数进行分类14]。
视频釆集卡按照视频信号源,可以分为数字采集卡(使用数字接口)和模拟采
集卡;按照安装链接方式,可以分为外置采集卡(盒)和内置式板卡;按照视频
压缩方式,可以分为软压卡(消耗CPU资源)和硬压卡;按照视频信号输入输出
接口,可以分为1394采集卡、USB采集卡、HDMI采集卡、VGA采集卡、PCI
釆集卡、PCI-E采集卡;按照其性能作用,可以分为电视卡、图像采集卡、DV采
集卡、电脑视频卡、监控采集卡、多屏卡、流媒体釆集卡、分量采集卡、高清采
集卡、笔记本采集卡、DVR卡、VCD卡、非线性编辑卡(简称非编卡);按照其
用途可分为广播级视频采集卡,专业级视频采集卡,民用级视频采集卡。因此,根据以上的分类方法,可以将本课题设计的这款视频采集卡定义为模拟外置型非
压缩式USB视频采集卡。
电视制式、主要芯片即OpenCV的介绍
SAA7114、SAA7118、SAA7121、SAA7129都是这个家族中的重要组成部分。前
面四款芯片跟7115—样是解码芯片,后面两款是编码芯片。考虑到数据解码以后 的接口以及7115自身的一些特点,使用7115这款芯片进行视频解码将是一个不错 的选择。7115其实是7114的升级版,它的管脚与7114完全兼容,也就是说,这
两款芯片在板子上可以相互替换。不过,71]5增强了 71]4的某些性能参数,例如
7115能自动进行TV/VCR检测,拥有全自动色标准检测等更优秀的性能。其他更
多的性能参数可以参见7115的芯片资料,芯片资料上有7115和7114的详细对比。
下面简单地列举SAA7115视频解码芯片的几个特点⑴
a)6通道模拟信号输入,内有源选择器(例如:六路CVBS或者(2路YC
禾口 2路CVBS)或者(1路YC和4路CVBS))。
b)两只改进的9位CMOS模数转换器,以两倍的(速率)在微分CMOS类
型(进行)ITU-656 采样(27MHz)。
c)对于所有的标准,只需要一个晶振(32.1]MHz或者24.576MHz)。
d)自动检测50/60HZ的场频,并自动识别所有普通的广播标准。
e)在梳状视频解码器处的10位位宽视频输出。
0水平和垂直方向缩放至任意大小窗口。
g)信号可以从扩展端口(X-port)获得。
h)可以为二维亮、色分离提供自适应2/4线梳状滤波器,其中为所有PAL制
和NTSC制提供高亮、色带宽,降低亮色窜扰。
i)通过串行lie总线编程,位速率高达400kbit/s。
由于7115功能的多样性,比如用户可以自己选择输入信号的制式,输出视频
窗口的大小等等。因而用户需要自己通过IIC总线配置7115内部的寄存器,71]5
内部一共有256个寄存器,这也是使用7115这款芯片的难点所在。
通过IIC总线配置7115内部的寄存器,可以使用两种方法[12][12]。一种是通过
FPGA模拟IIC总线的时序对其进行配置,这种方法稍显麻烦;另一种是通过68013
单片机对其进行配置,只需将两款芯片的SCL和SDA管脚直接相连,然后使用舉
片机将配置的数据写入寄存器中,如图2.2所示,7]15和68013芯片上都有这两
个管脚,这种方法相对简单。经过考虑,本课题使用后一种方法。
-广 n、,77 ‘ “
~ RESO: 丄V—、w 了
——^~ SDA SCL ~^^
A:I:
:S …
^ 似工
^■
一、7、p“ ?-V ^ T..T ?.K—T ^ ?
图2.2 SAA7n5和68013芯片的SCL、SDA管脚原理图
具体到每个寄存器需要配置成哪些数值,是需要好好的研究芯片资料并不断
地进行调试。当然有些寄存器的配置影响不大,而有些寄存器的配置非常关键。
2.0与FPGA的视频采集卡设计
比如SA88这个寄存器,需要重复地对它进行配置。让解码芯片不断地进行唤醒、复位操作。这样芯片才会起震,才会工作;由于在配置寄存器的初期没有意识到
这个问题,走了很多弯路。
正如2.1.1节的最后所提到的,配置完寄存器后,我们需要用示波器检测几个
关键的管脚以确保解码芯片已经工作,并且已经按照用户的想法工作。我们可以
按照以下的步骤进行检测:
1)第28管脚,LLC管脚。用示波器检测LLC管脚的频率是否为27MHz,从
而确定芯片是否已经起震,是否已经工作。27MHz是一个非常重要的参数,它表
示解码芯片以这个速度输出解码的8位数据。图2.3是示波器检测LLC管脚的输
出波形。
^-1 Hiri Willi I” r “ll I I^roi I _ B I I m 醒醒 J
图2.3 LLC管脚的输出波形
2)第48管脚,IGPO管脚;第52管脚,IGPV管脚;第53管脚,IGPH管脚。
它们分别代表帧频、场频、行频。用示波器依次检测这几个管脚,观察IGPO的频
率是否为25Hz,IGPV的频率是否为50Hz,IPGH的周期是否为64us。从而确定
解码芯片是否已经对PAL制式的模拟视频进行解码。图2.4至图2.6显示了这三个
管脚的波形。
电视制式、主要芯片即OpenCV的介绍
第二章电视制式、主要芯片及OpenCV的介绍
§2.1三种电视广播制式的简要说明
视频采集卡的输入信号是标准模拟视频源,可以是三种电视广播制式的任意一
种,只需对视频解码芯片的寄存器进行不同的配置即可。三种电视广播制式分别
为PAL制式、NTSC制式和SECAM制式。中国(不含香港地区)、印度、巴基斯
坦等国家采用PAL制式,美国、日本、韩国以及我国台湾地区等采用NTSC制式,法国、俄罗斯、希腊等国家采用SECAM制式。下面对三种电视广播制式进行简 单的介绍,根据实际的应用情况,着重介绍一下PAL制式。
§2.1.1 PAL制式的介绍
PAL制式于1966年在前西德开始使用,它是属于同时制的一种制式。PAL是
Phase Alternation Line的缩写,其全称为逐行倒相:|下:交平衡调幅制式,这是由它色
度信号的处理特点所决定的[7]。
PAL制式对同时传送的两个色差信号中的其中一个采用逐行倒相,另一个进行
正交调制方式。这样,如果在信号传输过程中发生相位失真,则会由于相邻两行
信号的相位相反起到互相补偿的作用,从而有效地克服了因相位失真引起的色彩
变化。因此,PAL制式对相位失真不敏感,图像彩色误差较小,与黑白电视的兼
容性也较好。
PAL制电视的供电频率为50Hz,场频为50Hz,巾贞频为25Hz,扫描线为625
行,隔行扫描,奇数场在前,偶数场在后。标准的数字化PAL电视标准分辨率为
720*576,24比特的色彩位深,画面的宽高比为4:3。图像信号带宽分别为4.2MHz、5.5MHz、5.6MHz 等。
根据以上对PAL制式的介绍可知,当对PAL制式的标准模拟视频源进行解码
后,视频采集卡上的解码芯片有几个管脚是需要特别注意的。比如说IGPO、IGPV
和IGPH三个管脚,这三个管脚代表的分别是倾同步信号、场同步信号以及行同步
信号。用示波器测量它们的频率以及相互之间的相位关系,看是否满足要求。由
此来检测SAA7115视频解码芯片是否配置成功,是否己经正常工作。下文对
SAA7115解码芯片的介绍部分会对此做进一步的说明。
§ 2.1.2 NTSC制式的介绍
NTSC制式于1954年在美国开始使用,它也属于同时制制式【8]。NTSC是 National Television Standards Committee的缩写,意思是“(美国)国家电视标准委
电视制式、主要芯片即OpenCV的介绍 IHO I I匪邏麗麗■麗匪歴 I iHli L ,.?^., :.'1 ?”W'l^ f >?-A ^ ? f ??■.U.'】...■■‘--■■ ':.'■...........、I.基 ^.k.....~.图2.4 IGPO管脚的输出波形
'''''''''''''II!W------i''“''''''' W''_”“”1
IIHMI^MTli
1画顯灣I OT _|pBiiiPiiiiiP^^^?ww 」.ii丨,111 丨j._ 画_? 敵■.丨腳雕
-.『等.I If.華r青言’~1 I M J?v.^一一一二,一一二?—
一、* II ftI I _ I ? I I BAO.BA1 X BANK Y Y BANK)))^;~ 1 ~ I I J I “ I!I I ■
tAc W:Sat Kov 26 12:58:36 2011
Quarlus II Version 8.1 Euild 163 10/28/2008 SJ Full Version
Revision Name sdra/n—control
Top-level Entity Name sdram^conlrol
Family Cyclone
Device EF1C6Q240C8
Timing Models Final
Met timing requirements Yes
Total logic elements 408 / 5,980(7 %)
Total pins 53 / 185(29 %)
Total virtual pins 0
Total memory bits 16, 384 / 92, 160(18 %)
Total PlXs 0/2(0 %)
图3.5 FPGA资源实际耗费情况截图
3.2节的最后给出FPGA控制程序顶层模块的输入输出信号,这些信号通过管
脚分配后直接与FPGA的输入输出管脚相对应。
输入信号:iclk、igpv、idq、igpO、data_7115、clk_40M、ifdk、full;
输出信号:sd_bank、sd—data、sd—elk、sd_ras、sd—cas、sd—we、sd—dqmh、sd dqmK
sd—add、slwr、slad、fd、pktend。
§3.3 68013单片机程序的设计
在使用EZ-USB FX2芯片进行应用开发中,禾I」用EZ-USB FX2固件框架可以
简化和加速基于EZ-USB FX2芯片的外围设备的开发。而EZ-USB FX2固件函数
库则提供了一系列函数来进一步加速USB外设固件程序的开发,这就大大提高了
用户开发的效率。
固件框架主要包含初始化、处理标准USB设备请求以及USB挂起时的电源管
理等,提供了现成的8051程序代码,只需简单地提供USB描述符表及编写外设
功能代码,就可以开发出一个功能完整的USB外设
框架完成USB设备的基本功能需求。通过链接一个描述符表,甚至不写一行
代码就可以开发出一个功能完善的USB外设功能。框架完成了一个简单的任务循
环,如下图3.6所示。首先框架初始化内部的状态变量,然后调用用户初始化函数
TD_Init()。从该函数返回后,框架初始化USB接口到未配置状态并使能中断。然
后每隔Is进行一次设备重枚举,直到端点0接收到一个SETUP包。一旦检测到
SETUP包,框架将开始交互的任务调度,其任务调度的步骤如下:
1)调用用户函数TD—Polio。这部分程序由开发者填写,以实现USB外设的
主要功能。
章固件程序以及上位机程序的设计
2)判断是否有标准设备请求等待处理。如果有,则分析该请求并相应。
3)判断USB内核是否收到USB挂起信号。如果收到,则调用用户函数
TD_Suspend().从该函数成功返回后(返回值为TRUE),再检测是否发生USB唤
醒事件。如果未检测到,则处理器进入挂起方式;如果检测到,则调用用户函数
TD_Resume(),程序继续运行。如果从TD—Suspend函数返回FALSE,则程序继续
运行。
上电或复位
初始化
I [
调用 TDJnitO Y
使能中断
卜
N
延 nil 秒 ?从新列举 ^^1
调用 TD_PollO
I ~ I___
^闲置位 ?执行设备请求
-i ~
J 调用 TD_Resume()
图3.6 固件框架流程图
标准请求和vendor专用请求由框架分析和执行。默认情况下,对标准请求执
行USB规定的响应。无论如何,框架提供交互的连接,以允许用户程序处理或覆
盖指定的设备请求。EZ-USB中断也交给框架进行处理。
从上述几段话的描述中可以看出,68013开发包内的固件框架确实简化了用户 的幵发过程,用户无需深入地理解USB2.0开发协议,只需要在固件框架中的
TD—Init和TD_Poll函数中写下简单的几行代码就可以完成USB外设固件程序部分
B2.0与FPGA的视频采集F;-没计
always @(posedge sys—elk)// busbusy
begin
busbusy
end
always @(posedge sys—elk)// state
begin
if(busbusy 1| {!sd ini end))state
case(state)
stepO: state
stepl: state
step2: state
step3: state 〈二 step4;
step4: slate
step5: state
step6: state
step?: state
step8: state
step9: state
default: state
endcase end
always @(state)
begin
case(state)
stepO: begin
sd-Wren = I'bO;
sd_rden = I'bO;
sd—refen = I'bO;end
step2: begin
sd_wren = rbO;
sd_rden = I'bO;
sd_refen = l’bl;
end
B2.0与FPGA的视频釆集设计