北方工业大学信息工程学院 孙 涛 鲁亚松 米国鑫 饶品涛 戴 澜
基于F P G A的L E D大屏幕显示控制器设计
北方工业大学信息工程学院 孙 涛 鲁亚松 米国鑫 饶品涛 戴 澜
描述了一个使用FPGA控制LED点阵屏幕的系统,该系统使用Verilog HDL编制代码,实现了LED屏幕的字符、图像显示与简单的动画效果,在Quartus II平台上通过了编译与仿真。本系统稳定可靠,性能强。
FPGA;LED点阵;动态显示
LED显示技术相比于投影显示、液晶显示、激光显示等其他大屏幕显示技术,有其独特的优越性,例如:高亮度、宽可视角度以及可定制的屏幕外形等。这些特点使得LED显示屏被广泛应用于工业、信息发布、体育比赛等各个领域。
当今市场上的LED显示系统,通常使用单片机作为主控芯片连接I/O扩展电路来控制LED显示屏。但是,对于LED大屏幕显示屏来说,要求扫描速度快,而单片机内部的资源较少、运行速度较慢,在很多时候难于满足系统要求。同时,也使产品的灵活性和稳定性受到一定程度的影响。FPGA器件具有处理速度快,有大量的可编程逻辑单元和丰富的布线资源,在处理大流量数据应用时具有明显的优势,它的引脚资源丰富,可扩展性强。因此,基于FPGA实现的大屏幕LED显示成为目前的应用热点。
图1 系统架构图
图2 16×16点阵示意图
本系统使用的FPGA芯片是Altera公司Cyclone II系列的EP2C35。该芯片具有33216个逻辑单元、322个引脚,是一个功能十分强大、内部资源十分丰富的高密度FPGA芯片。系统使用Verilog HDL语言编制系统代码,实现了双色显示屏控制字符显示与简单动画。本系统由FPGA系统板、74HC595组成的移位寄存器组两组、74HC138组成的行选择信号产生电路、三极管组成的驱动电路以及8块8×8双色点阵组成大屏幕显示单元组成,系统的具体结构如图1所示。
本系统的显示控制原理是采用动态行扫描显示,这也是本系统显示关键技术。具体实施方法如下:首先通过移位寄存器组向显示模块的列端输出相应行的数据,然后使用译码电路点亮对应的行;根据扫描频率,再切换成下一行的数据,再点亮对应行。依次轮流下去,即可实现动态行扫描显示控制。
如图2所示,这是16×16点阵示意图,其中Column是LED点阵中发光二极管的负端,Row是发光二极管的正端。显示过程中,先选择好需要显示的行(Row),再在Column上施加对应行的数据。例如,当需要第一行亮时,先通过驱动电路给Row0高电平,然后在Column上输出对应的信号值。依照这个原理,当给Row1高电平时,第二行亮。依此类推,然后循环显示,以达到动态显示的目的。
本系统中,使用74HC138组成了4-16线译码电路,译码电路和三极管组成的驱动电路共同组成了本系统的行扫描控制。FPGA中存储了需要显示的字符和图形数据,在显示时通过74HC595组成的32位移位寄存器输出到列(Column)端,与行扫描控制共同完成显示。
图3 系统实物图
系统在图像的动画显示方面,可以实现图像的左、右移动,上、下移动四个动画效果。本系统实施动画显示的原理是,在显示控制上添加了一个图像数据暂存单元。行列扫描单元都是从这个图像数据暂存单元中取得数据,而FPGA也要先将将字符和图像数据放到这个暂存单元。这样实现动画效果,其实也就变成了对这个图像暂存单元进行数据处理的问题,从而简化了问题,使得动画显示变得容易。
本系统时在设计时考虑到多种颜色显示的需要,采用的是双色(红色、绿色)LED点阵屏幕,同时在32位移位寄存器上也使用了2组,从而保证了硬件上是支持三色(红黄绿三色)显示的。控制时,根据每个点需要的颜色不同,通过调整移位寄存器的输出即可实现。
利用上述研究结果,对基于FPGA的大屏幕显示控制器进行设计,整个系统采用只显示两个字的简化模型进行实现(大显示屏增加相应的硬件电路即可),具体实现结果如图3:系统使用FPGA控制LED点阵显示屏,实现了双色LED点阵的基本字符显示与简单动画的效果。具有较大的稳定性和灵活性,也使系统设计上可扩展性更大。从而使其具有极高的研究与实用价值。
[1]夏宇闻.Verilog数字系统设计教程(第2版)[M].北京:北京航空航天大学出版社,2008.
[2]NXP Semiconductors.74HC59;74HCT595 Product data sheet.NXP Semiconductors,2011.
[3]吴厚航.深入浅出玩转FPGA[M].北京:北京航空航天大学出版社,2010.
注:本课题获得大学生科学研究与创业行动计划支持。