与传统的基于电路原理图的设计方法相比,硬件描述语言具有许多优点:
1)设计者能够非常抽象地描述硬件电路。
2)设计者可以在设计周期的早期对电路进行修改并验证,这样有利于在早期发现错误以避免反复的设计工作。
3)硬件描述语言编程通常带有注释,在编程序时可以很方便的修改。
但基于电路原理图的设计在修改上就不如硬件描述语言编程方便。
二、VerilogHDL和VHDL
1)VerilogHDL概述
VerilogHDL语言最初是1983年由GatewayDesignAutomation公司为其模拟器产品开发的硬件建模语言。
它适用于系统级(system)、算法级(alogrithem)、寄存器传输级(RTL逻辑级(logic)、门级(gate)、电路开关级(switch)设计建模。
用VerilogHDL不仅可以设计一些简单的门电路,还可以设计一个复杂的数字电子系统。
它继承了C语言的很多语法结构,非常容易学习和掌握。
采用VerilogHDL描述数字系统,它可以对其按层次地进行描述,并能显式地进行时序建模。
目前,VerilogHDL已经使用的非常广泛。
2)VHDL概述
VHDL(Very-High-SpeedIntegratedCircuitHardwareDescriptionLanguage)于1982年诞生,它是由美国国防部所开发的硬件描述语言[25]。
IEEE于1987年底将VHDL确认为标准硬件描述语言。
自从VHDL的标准版本(IEEE1076)被IEEE公布之后,一些EDA设计公司就推出了自己的VHDL设计环境[26]。
此后,VHDL便得到了广泛的接受,并逐渐代替了原来非标准的HDL,VHDL主要用于描述数字系统的结构、行为、功能和接口。
3)VerilogHDL和VHDL的比较
VerilogHDL和VHDL都可以进行逻辑设计,并且作为一种IEEE标准都己标准化。
它们的区别在于:
与VerilogHDL相比,VHDL语言有着更强的高层建模和抽象能力;VHDL可以使用库、程序包、配置语句、生成语句、类属语句来管理大型设计结构,但Verilog没有管理大型设计结构的语句;VHDL语法规范、规则复杂、代码要求非常严格,但Verilog设计灵活,与C类似,入门比较容易。
1.2.3开发工具
QuartusII是一款由Altera公司推出的FPGA开发工具,它提供的设计环境与结构无关,设计者可以使用QuartusII软件完成设计流程的所有阶段,它是一个全面易用的独立解决方案。
QuartusII设计软件有着完整的多平台设计环境,可能方便地完成特定的设计,并且它提供了全面的可编程芯片系统(SOPC)的设计环境[27]。
在使用QuartusII设计时,设计者不需要非常精通器件内部的复杂结构,只需要会使用自己熟悉的设计工具,如采用原理图设计或采用硬件描述语言VerilogHDL或VHDL进行设计就可,然后利用QuartusII将这些设计进行转换,转换成最终结构所需的格式[28]。
因为设计者可以QuartusII的设计环境中查询到很多有关结构的详细知识,所以通过查询可以加快设计速度。
设计人员可以很快地完成电路的输入、编译、优化、仿真,直到最后芯片的流片过程。
QuartusII设计软件有着先进的功能,使用它可以提高数字系统的性能,能方便地处理潜在的设计延时,并能在布局布线之后对设计作出方便地改善。
QuartusII设计软件不仅包含了现场可编程门阵列(FPGA)的解决方案,还包含了复杂可编程逻辑器件(CPLD)设计各阶段的解决方案。
1.3课题研究的目的、意义及主要研究内容
1.3.1课题研究目的、意义
由于LED显示屏有着亮度高、画面清晰、色彩鲜艳等优点,与其它平板显示产品如:
背投电视、等离子、液晶、电视墙等相比,它有着明显的优势。
LED显示屏在国内外市场上已被广泛应用,市场前景巨大。
视频信号处理技术的发展带动了LED彩色显示屏相关显示技术的发展,LED显示效果正在不断地提高,这促使了LED彩色显示屏成为人们关注的一个焦点[29]。
过去LED显示屏控制电路设计通常采用单片机来实现,单片机作为主控制器用来控制和协调LED显示屏的整个显示系统的显示,但由于单片机的驱动频率有限,无法驱动高分辨率的LED显示屏,特别是对于高灰度级的彩色LED显示屏,数据送到显示屏之前要进行灰度调制,进而实现图像的彩色显示,这样对数据的处理速度要求很高,用单片机控制在速度上无法满足其要求[30]。
由于视频图像信号频率高、数据量巨大,加之LED大屏幕电路的数字逻辑相当复杂,目前也有方案采用FPGA来设计控制电路,设计方案通常分为两个部分:
视频信号的获取和视频信号的处理[31]。
首先,视频信号通过解码芯片从显卡的DVI接口解码获得,然后采用FPGA对所获得的视频信号进行相关处理,最后输出数据给扫描驱动电路进行LED显示。
这种方法与单片机控制电路相比,电路结构更为简洁,可靠性更高,调试也更为简单。
本课题所设计的是基于FPGA的彩色LED点阵显示屏控制器,该控制器在现有LED显示屏控制器设计技术上有所创新,可实现256级灰度的全彩色显示,这使该控制器在LED显示屏市场上有一定的优势及实用性。
该控制器还有:
性价比高、显示面积大、性能稳定、刷新率高等特点。
1.3.2论文研究内容
本课题研究了全彩色LED显示屏的工作原理,设计了一个基于FPGA的彩色LED点阵显示屏控制器,该控制器以上位机软件播放器中的图片和视频为数据源,在LED显示屏上对播放器中的内容进行实时映射。
本课题设计的主要工作如下:
1)设计了FPGA控制模块,完成以太网交换控制器的GMII接口与FPGA之
间的数据通信,并实现数据存储控制、数据处理、扫描控制等功能。
2)完成5种以上的彩色LED屏内置刷屏程序。
3)实现彩色LED屏控制器的控制时序分析,实现同步视频信号的数据显示。
LED器件基本原理及相关知识
2.1发光二级管特性
发光二极管,英文全称是LightEmittingDiode,简称LED,是一种能将电能转化成光能的器件,当有正向电流通过时,会产生发光现象[32],如图2-1所示。
图2-1发光二极管
用于描述LED特性的参数有许多,这些参数之间为非线性关系。
因此,可用特性曲线来描述这种关系。
下面就针对其主要的特性曲线作简单的介绍:
(1)发光强度I与正向电流If的关系曲线
图2-2LED发光强度与正向电流的关系
图2-2LED发光强度与正向电流的关系
图2-2中描述了由三种不同半导体材料制成的黄、绿、红LED器件的Iv和If的关系曲线,这三种材料分别是:
A-GaAsP(N)、B-GaP(N)和C-GaP(Zn-O)。
从图中可知看,Iv是随着If的增加而增加的,但变化的规律有所不同。
(2)LED器件的伏安特性
流过LED器件的电流和加在LED上的电压之间的关系称为伏安特性,如图2-3所示图中描述了A、B两个器件的正向伏安特性曲线,LED器件与普通二极管在伏安特性上基本上相似,略微不同的是LED器件开始导通的正向电压较大,大概在1.6V~3.0V之间,这是由不同的半导体材料来决定的[33]。
图2-3发光二极管正向伏安特性
2.2LED器件的驱动方式
从LED器件的发光原理可知,当正向电压加在LED的两端时,通过器件的电流会使其发光。
所以使得LED的PN结处于正向偏置状态就能实现LED的驱动,同时可以通过调节通过它的正向电流的大小来达到调节其发光强度的目的。
通常驱动LED器件有四种方式:
直流驱动、恒流驱动、脉冲驱动和扫描驱动[34]。
(1)直流驱动
直流驱动在实现上很容易,将电源电压VCC、电阻R与LED器件三者串联组成回路,由电阻R与LED器件的伏安特性一起决定LED的工作点,这种驱动方式适用于LED器件较少且发光强度恒定的情况下[35]。
公交车上的显示公交路线字样的显示器就是采用这种方法。
(2)恒流驱动
LED器件的正向特性较陡,加上器件存在一定的分散性,即使加在不同LED上的电源电压和限流电阻相同,流过这些LED的正向电流也存在差异,这便引起了发光强度的不同。
用恒流来驱动LED器件时,相同的恒流值将产生相同的发光强度[36]。
由于晶体管的恒流输出特性,因此可用其驱动LED,如图2-4。
图2-4用晶体管对LED器件恒流驱动
(3)脉冲驱动
脉冲驱动是指采用重复通电断电的方法使LED器件点亮。
脉冲驱动的方法主要有以下两种:
扫描驱动和占空比驱动。
扫描驱动能够减少驱动电路,使整个电路不会过于复杂。
但在应用扫描驱动方式时需要注意以下两点:
确定好脉冲对应的电流幅值和选择好重复扫描频率。
如果要与直流驱动方式获得同样的发光强度,那么脉冲驱动电流的平均值Ia就要等于直流驱动的电流值。
如图2-5所示,如果要计算平均电流Ia,则需对瞬时电流i在时间上积分,对于图中的矩形波来说,则有以下表达式
公式(2-1)
公式(2-2)
公式(2-2)中的ton/T其实就是占空比,如果要平均电流Ia等于直流驱动电流IF,则脉冲电流幅值就要满足公式(2-3)。
公式(2-3)
图2-5脉冲驱动
由此可知在使用脉冲驱动方式时,脉冲电流的幅值IF必须是直流驱动电流Io的T/ton倍。
对于选择脉冲重复频率,由于视觉暂留特性要求脉冲重复频率必须高于24Hz,这样才不会产生闪烁现象。
除了扫描驱动外,脉冲驱动还可以采用占空比驱动的方式,现以灰度等级为256,简单介绍一下如何利用脉冲占空比方式来驱动LED。
把显示时间分成256个等分,如图2-6所示。
高电平是指LED被点亮,这就形成了255个不同宽度的脉冲(占空比),它对应着LED的256个亮度阶梯即256个灰度等级[37]。
在一个扫描周期内,占空比为1时指的是完全点亮即对应256级灰度;完全熄灭时,此时占空比为0,对应于0级灰度。
不同的灰度级使得LED点亮的时间也不相同,而且灰度级会随对应的点亮时间增长而增加,平均亮度则越大。
图2-6不同占空比与256级灰度的对应关系
占空比控制可分为消隐电平控制方式和非消隐电平控制方式,下面来具体分析两种方式的可行性,若灰度数据位深G为10位,帧扫描频率VF为60Hz,显示屏列数M为256,每个扫描块行数H为16。
非消隐电平控制方式是指在显示屏的扫描周期内二极管一直都处于工作状态,此种方式控制的LED显示屏发光效率最高接近100%。
LED显示屏的灰度数据是按位进行扫描的,每次传输扫描的仅仅是十比特数据中的一比特,并且每位数据都具有不同的占空比。
LED显示屏每一行的灰度数据的D0至D9比特代表的显示时间分别为t、2t、4t、8t、16t、32t、64t、128t、256t、512t,其中t=Hc/1023(Hc为平均行扫描周期),当10bits数据全部扫描显示完成时,就实现了非消隐电平灰度控制过程[38]。
由于LED显示屏每个扫描块的16行是串行扫描的,当一行数据显示的时候,就要把下一行的灰度数据锁存到扫描电路的存储寄存器内,因此当扫描D0比特数据时,每一行数据的锁存时间仅为t。
此时灰度数据的移位频率f=VF×H×1023×M=251.4MHz,如此高的移位频率采用常规的设计方法是难于实现的,除非采用大规模的专用扫描芯片,但是这样将会极大地增加电路设计的难度和成本。
为了改进非消隐电平控制方式,降低灰度数据的移位频率,采用在灰度控制过程中引入了消隐电平的方法。
所谓消隐电平就是控制发光二极管工作状态的电平,当消隐电平有效时发光二极管不工作。
下面将讨论基于等分周期的消隐电平控制方式,若灰度数据位深为10,则将显示屏的帧周期Vc均分为10等份,即每比特数据的扫描周期Dc=Vc/10,此时行扫描周期He为Vc/(10H),每帧图像重复扫描10次实现灰度等级。
LED显示屏每一行的灰度数据的D0至D9比特所代表的工作时间分别为t、2t,、4t、8t、16t、32t、64t、128t、256t、512t,其中t=Hc/1023,当LED显示屏扫描每行灰度数据的D0至D9比特时,分别在扫描时间内引入时长为1022t、1021t、1019t、1015t、1007t、991t、959t、895t、767t、511t的消隐电平,当消隐电平在扫描周期内变低时发光二极管处于不工作状态。
由于每一比特灰度数据的行扫描周期均为Vc/(10H),则所有行数据的准备时间也都为Vc/(10H),所以列数