基于FPGA的VGA和HDMI视频拼接系统设计Word格式.docx
- 文档编号:6994591
- 上传时间:2023-05-07
- 格式:DOCX
- 页数:49
- 大小:1.10MB
基于FPGA的VGA和HDMI视频拼接系统设计Word格式.docx
《基于FPGA的VGA和HDMI视频拼接系统设计Word格式.docx》由会员分享,可在线阅读,更多相关《基于FPGA的VGA和HDMI视频拼接系统设计Word格式.docx(49页珍藏版)》请在冰点文库上搜索。
从国内外显示系统的发展历程来看,主要出现了以下几种技术方案:
(1)基于ARM的显示控制系统,它是以ARM微控制器为处理的核心,系统虽然具有体积小、接口丰富和功耗低的优点,但是它的开发周期过长,系统不易于移植和升级,而且如果用于如图像这种数据吞吐量比较大的处理,其运行速度受到限制,这个问题不容忽视。
(2)基于DSP的显示控制系统,这种方式采用复杂的可编程逻辑器件和数字信号处理器,具有强大的数字处理能力和较快的运行速率。
系统虽能满足大数据量的运算要求,但是成本很高,并且电路设计复杂,不利用二次开发。
(3)基于FPGA的显示控制系统,这种方式不仅运算速度快、电路设计简洁,而且成本相对较低,还便于移植和二次开发
随着FPGA(Field-Programmablegatearray)现场可编程门阵列不断的发展,其价格也不断的下降,逐渐地显现出FPGA的应用优势。
FPGA是一种硬件架构,管脚丰富和灵活,便于进行二次开发。
因此目前,嵌入式系统中越来越多的采用了基于FPGA的设计方案。
对于图像拼接技术而言,虽然拼接方法众多,但各方法适用条件各异、鲁棒性差别较大,在使用时需要通盘考虑,择优选择,并针对特定应用需求进行相应改进,然而很少有人能够对现有的图像拼接方法进行总结归纳,对各图像拼接方法的适用范围、算法复杂度、配准精度等问题给予明确说明,导致其不能很好的应用于实际项目中。
对于视频拼接技术而言:
一方面,实时性一直是困扰视频拼接的最大障碍。
在现有条件下如何既能保证较好的拼接效果,又能够很好的满足实时性的要求,成为当下研究中重点要解决的问题;
另一方面,在移动视频拼接系统应用需求激增的情况下,缩小硬件体积也是一个关键的问题。
2系统总体设计与技术基础
2.1技术概述
2.1.1AlteraFPGA介绍
FPGA(FieldProgrammableGateArray)是现场可编程门阵列,逐渐取代了以往的PAL、CPLD等可编程逻辑器件,是目前使用最广泛的逻辑器件。
FPGA的大体结构包括三个部分,CLB(可编译逻辑块),IOB(输入/输出块)和BRAM(随机储存记忆块)。
可配置逻辑模块(CLB)含有RAM-basedLUTs(Look-UpTables),从而实现逻辑和存储单元。
CLB可通过编程来实现广泛多样的逻辑功能,同样也可储存数据。
FPGA中除了具有用LUT构成的分布随机存储器之外,还有块存储器(BlockSelectRAMMemories)。
块存储器是真正的双端存储器(TrueDual-PortRAM),提供了高速的、分布式的、大块的存储资源,在FPGA里块存储器排成几条纵队,块存储器的总量是由器件型号决定的,这些块存储器级联后可以构成更深、更宽的存储器。
FPGA是基于查找表技术,查找表本质上就是一个分布式RAM存储器,因此结构等同于有4位地址线的随机存储器,如图所示。
图2.1LUT单元结构
由图2.1可知,四个输入作为地址进行查表,该地址上的值是由编译软件写好,该值就是所需要的逻辑值。
目前,生产FPGA的厂商有Xilinx、Altera、Lattice等公司,其产品结构均基于查找表结构。
本系统在设计时,采用的是Altera公司生产的CycloneIV系列芯片作为系统开发。
2.1.2显示原理
VGA(VideoGraphicsArray),中文是视频图形阵列,使用的是模拟信号传输数据。
现在大部分的计算机显示器都带有VGA接口,它是最普遍的一种显示接口,如图所示。
图2.2VGA接口
HDMI(HighDefinitionMultimedia),中文是高清晰度多媒体接口,使用的是数字信号传输数据。
HDMI接口可以提供高达5Gbps的数据传输带宽,保证高质量的视频信号传输。
图2.3HDMI接口
R、G、B(3基色信号)、HS(行同步信号)、VS(场同步信号)是我们在设计VGA和HDMI需要考虑的5个信号。
其中R、G、B信号为数据信号,HS、VS为控制信号。
任意所需要的颜色都可由R、G、B3种基色组合得出。
处理好这5个信号的时序就是显示的基础,下面将介绍显示的时序。
图2.4各分辨率条件下使用的频率
图2.5行扫描时序图
图2.6场扫描时序图
当分辨率为1024*768时,水平方向显示器每行有1344(65MHz/48.363kHz)个数据位,当中的1024个数据位用来显示像素,另外的320(1344-1024)个数据位用来输出水平消隐信号和水平同步信号。
垂直方向有80(48.363kHz/60.004Hz)行,其中768行用于显示相应的像素,其余38(806-768)行用来输出垂直消隐信号和垂直同步信号。
显示器显示完一行图像后,同步行信号,接着进行行消隐,同步信号都采用了低电平有效的同步方式。
当所有行都被扫描完后,进行场同步,并将扫描回归到屏幕的左上方,
与此同时进行场消隐,并为下一次扫描做准备。
2.1.3颜色空间
颜色空间是颜色集合的数学表示,最常用的三个颜色模型是RGB、YCbCr、YUV。
RGB主要用于计算机图形学中,YCbCr和YUV主要用于视频系统中,在本次设计中用到了RGB和YCbCr。
RGB即红、绿、蓝三原色,可以通过它们相互叠加来得到各式各样的颜色,一共可以表示256x256x256=16777216种颜色。
YCbCr其中Y是指亮度分量,Cb指蓝色色度分量,而Cr指红色色度分量。
主要的子采样格式有YCbCr4:
2:
0、YCbCr4:
2和YCbCr4:
4:
4。
RGB和YCbCr两种颜色空间可以相互转换,它们的转换送入如下:
Y=0.257*R+0.564*G+0.098*B+16
Cb=-0.148*R-0.291*G+0.439*B+128
Cr=0.439*R-0.368*G-0.071*B+128
R=1.164*(Y-16)+1.596*(Cr-128)
G=1.164*(Y-16)-0.392*(Cb-128)-0.813*(Cr-128)
B=1.164*(Y-16)+2.017*(Cb-128)
2.1.4FPGA设计流程简介
1.设计输入硬件描述语言
设计输入在大规模的系统中使用硬件描述语言(HDL),在较小规模的系统中使用原理图或者使用用户定义原语实现模块功能。
目前,在实际开发中应用最广的就是硬件描述语言,即HDL。
设计常用硬件描述语
言是VerilogHDL和VHDL。
与VHDL相比,VerilogHDL就是在C语言的基础上发展起来的一种件描述语言,仿真器Verilog-XL推出后使得VerilogHDL迅速得到推广应用。
编写代码对综合结果起着决定性的作用,好的编码风格可以更方便地配合综合工具利用最新的技术得出更好的结果;
经过深思熟虑的设计将会有清晰的结构和模块,更容易进行验证,从而有利于缩短设计周期。
总的来讲,VHDL/Verilog的编码风格是非常重要的。
本设计采用IEEEVerilog2001标准作为设计规范,提高了设计的可重用性。
2行为级仿真
行为级仿真,也称为前仿真,是在编译之前对用户所设计的电路进行逻辑功能验证。
如果发现错误,则返回设计修改逻辑设计。
测试台主要是给被测实体加上输入激励,然后进行编译,再比较其输出是否与期望值一致,并给出一些提示信息,直到仿真正确为止。
这部分工作非常重要,因为若行为级仿真做的不到位,会直接影响最终电路的功能,必须要保证通过的前提下,再进行下面的操作。
3.综合优化
综合工具的作用是将代码综合成为实际的电路。
4.设计约束文件
FPGA设计中的约束文件可以完成时序约束、管脚约束。
5.布局布线后仿真
布局布线后仿真主要是将Xilinx布线后所产生的延迟加反标到电路的后面进行仿真,它将所有的延迟信息都计算进去,不仅包括了门延时,还包括了实际布线延时,因此布局布线后仿真最贴近芯片的实际工作情况,反映的的结果最为准确。
6.电路下载验证
下载验证主要是将布线后产生的结果转换为配置文件之后放入FPGA中。
3系统硬件设计
系统硬件电路设计的成功与否,是整个系统能否成功运行起来的前提条件。
本章将对系统的硬件设计做详细的介绍。
3.1FPGA器件选型及外围电路
在本次设计中,采用的FPGA为Altera公司的CycloneIV系列的EP4CE30F23C6N,它具有28848个逻辑单元,可用IO为532个,内嵌存储器为594KB,完全可以胜任此次的工作。
FPGA配套的外围电路主要有时钟电路和JTAG调试下载电路。
FPGA的系统时钟从外部引入,采用的是50M的有源晶振,电路图如图3.1所示。
图3.1时钟发生电路
JTAG接口用于下载和调试程序,电路图如3.2所示
图3.2JTAG接口
3.2FLASH电路设计
由于FPGA是基于RAM结构的,不具有掉电记忆功能,所以需要FLASH存储程序,在每次上电时重新配置FPGA。
本次设计选用的FLASH型号为M25P64,64Mbit的flash,单电源供电2.7~3.6V,SPI总线通讯,75M时钟(最大),VPP=9V,快速读写电压,页操作时间0.6ms,擦出一个扇区时间0.6s,整块擦除时间:
标准23s,快速17s,睡眠模式电流1uA,擦写次数可达100000次,数据可保存20年。
图3.3M25P64电路
3.3DDR2电路设计
本系统中需要大量的存储器做视频处理数据的缓存,而大容量存储器的控制时序和机制都比较复杂,因此缓存部分的控制和使用是整个系统实现的重点和难点之一。
DDR2具有成本低、读写速度快、精密程度高等优点。
该设计中采用了MICRON公司的DDR2,型号为MT47H64M16HR,大小为8Megx16x8banks,即1G。
图3.4为DDR2的功能框图。
图3.4DDR2功能框图
下面对DDR2的引脚进行说明:
(1)CK,CK#:
CK,CK#为一对差分反向时钟信号。
在DDR2-SDRAM中,所有的地址和控制信号都是同步信号,都是CK的上升沿和CK#的下降沿出现时才会被采集输入到芯片内部。
而读出的数据则是以CK、CK#的交叉沿为基准。
(2)BAO,BA1:
BAO和BA1决定具体哪个bank将被操作。
(3)CKE:
CKE是决定系统时钟是否有效的信号,且高电平为有效电平。
当系统一直处于读写过程中时,CKE必需一直保持为有效电平状态,即高电平有效电平。
当CKE为无效电平时,系统电路将会进入PowerDown省电模式和SelfRefresh模式。
(4)CS#:
CS#为片选信号,低有效,当CS#为无效高电平时,系统将视任何指令为无效指令,不进行任何操作。
(5)A0~A13:
A0~A13是输入信号的地址信号。
(6)RAS#,CAS#,WE#:
这三个信号高低电平不同的组合就决定了DDR2-SDRAM选用哪种指令去操作,即不同的高低电平组合代表一利喻令。
这其中RAS#代表行地址信号,CAS#代表列地址信号,WE#就是写使能信号。
(7)DM:
DM(DateMask),该信号在写操作期间用来屏蔽掉不需要的数据,高电平有效。
(8)DQS,DQS#:
DQS、DQS#为差分数据滤波信号。
当读数据时,DQS、DQS#的信号边沿应该和数据的边沿保持对齐;
写数据时,DQS、DQS#的信号边沿则在数据的中间。
(9)DQ:
DQ为数据总线。
(10)ODT:
ODT即片内终结(On-DieTermination)。
就是在某一个环节将信号处理掉,而不会对后面的模块输入端造成任何影响,既不会产生反射信号也不会对后面的信号构成不必要的干扰。
DDR2的电路图如图3.5所示
图3.5DDR2电路
3.4视频输入电路设计
本设计输入的视频是模拟视频信号,由于FPGA处理的是数字信号,所以需要一个ADC进行转换。
本设计采用了techwell公司的TW2867,
该芯片包括四个先进的视频解码器,它通过对模拟信号的采样、量化和编码完成了模数转换,生成的YCbCr信号在监控系统中非常常见。
图3.6TW2867功能框图
它不同与其他A/D芯片的特征为:
·
结合四个视频模拟抗干扰过滤器和10bitCMOSADCs。
能达到所有标准,它有高性能自适应4H梳状过滤器。
IF补偿滤波器能够提高颜色解调。
颜色瞬态改善(CTI)。
可编程的色调,色饱和度,对比度,亮度,清晰度。
支持标准ITU-RBT.656格式或随着54/108MHz时间多路复用输出。
它的电路图如图3.7所示
图3.7TW2867电路图
3.5VGA接口电路设计
由于FPGA输出的是数字信号,所以需要一个DAC芯片把VGA信号转换为数字信号。
本次设计采用的是美国AD公司的ADV7123,它具有240MHz的最大采样速度,三路10位D/A转换器,它的内部电路及接口如图3.8所示。
图3.8ADV7123内部图
要使用ADV7123,它的时序是至关重要的。
ADV7123的操作时序图如图3.9所示,可见输出的时候只要给出输出数据的同步时钟即可,待时钟锁定数据后一段时间(t6)输出对应的模拟RGB量。
图3.9ADV7123的操作时序图
ADV7123芯片可以和多种高精度的显示系统相兼容,能广泛地应用于各种图片图像
处理系统和数字视频系统中。
但在设计硬件电路时需要注意几个问题:
(1)IOR、IOB、IOG信号分别为红色、蓝色、绿色通道的正电流输出端,在本设计中,只用到24位的色彩值,R、G、B的颜色数分别是8、8、8位,其余的位全部接低电平。
(2)COMP信号是对内部的参考运放进行补偿(3)Vref为1.235V的电压参考输出,需要与模拟电源之间连接一个0.1μF的电容。
(4)为了控制图像信号的满幅度,需要在Rest管脚与GND之间连接一个滑动变阻器,通过调整Rest上的电阻值来对模拟输出做出调整,从而使图像可以以最佳的亮度显示在显示器上,该滑动变阻器的阻值选为510Ω。
(5)IOG的电流值分为两种情况:
当使用/SYNC信号时,IOG=11.44Vref/Rset(mA);
当不使用/SYNC信号时,IOG=7.9896×
VREF/Rset(mA)。
此外,为使输入电源干净,应该将0.01μF的退耦电容连接在ADV7123的电源端和模拟地端。
设计时序时,应该注意Pclk是时钟输入端,在时钟的上升沿琐存G0~G9、R0~R9、
B0~B9信号、/SYNC信号以及/BLANK信号。
由FPGA提供的Hsync(行)和Vsync(场)同步信号,直接与VGA显示接口连接器相接。
3个10位的IOR、IOB、IOG信号在点时钟脉冲Pclk的作用下送入到数据寄存器中,之后送到3个DAC模块中,复合同步信号和复合消隐信号加到IOR、IOB、IOG信号并送到输出端。
根据以上分析,设计出VGA接口电路如图3.10所示。
图3.10ADV7123电路图
3.6HDMI接口电路设计
HDMI传输线包括三个不同的TMDS数据信息通道和一个时钟通道,这些通道用来传输音视频数据及附加信息,而FPGA输出的是24位的RGB信号,所以我们需要一个芯片来完成这种转换。
本设计采用SiliconImage公司的Sil9134作为HDMI源接口芯片,该芯片符合HDMI1.3标准的HDMI发送芯片,芯片处理的最高频率达到225MHz,可满足对高清视频格式输入输出系统的要求。
Sil9134是SiliconImage公司推出的第三代HDMI接收器。
它符合HDMI1.3
规范,可支持最高单色12位深度,用HDMI线即可实现显示1080P@60Hz的图像。
同时它后向兼容DVI1.O,因此它可以直接与DVI源相连接,比如高清数字机顶盒和PC等。
高效的色度转换功能将RGB视频数据转化为标清格式或高清格式的Ycbcr格式。
Sil9134支持HDCP加密功能,可以接收经过HDCP密钥加密的信息。
这些密钥降低了成本,同时对传输的视频信息做了最高级的安全保护。
Sil9134使用了最新的TMDS核技术,这种技术通过了所有的HDMI兼容性测试。
如图3.11所示,是Sil9134的功能图。
图3.11,Sil9134功能图
Sil9134电路图如图3.12所示
图3.12,Sil9134电路图
3.7硬件电路总体框图
4软件部分设计
完成了系统的硬件设计,接下来需要在FPGA上实现相应的电路才能完成图像数据的存储与显示。
在研究了本设计需求之后,将FPGA中的模块主要分为图像剪切模块、图像存储模块和图像显示模块。
本设计运用VerilogHDL语言进行设计。
下面将对图像剪切模块、图像存储模块和图像显示模块进行详细的介绍。
本次设计开发工具为ALTERA公司的Quartesii12.1。
4.1图像剪切模块
本次设计输入的视频源为模拟信号,分辨率为1024x768,经过TW2867转换后,输出为16位的YCbCr格式的视频信号,分辨率仍然为1024x768。
因为要把视频信号分别显示在VGA和HDMI两台显示器,所以要把视频信号进行分割,分割后的视频分辨率为原来的一半,即512x768,VGA显示器显示的是原视频的左半部分,HDMI显示器显示的是原视频的右半边分。
下面将解释剪切的代码。
input[11:
0]clipper_top,/*视频剪切参数:
top*/
0]clipper_left,/*视频剪切参数:
left*/
0]clipper_width,/*视频剪切参数:
width*/
0]clipper_height,/*视频剪切参数:
height*/
clipper_top、c
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 FPGA VGA HDMI 视频 拼接 系统 设计