技术热线: 4007-888-234

基于CPLD的LED大屏幕视频控制系统

更新时间: 2019-03-23
阅读量:1983

基于CPLD的LED大屏幕视频控制系统

Video Control System of Led-large Screen based on CPLD

1 复杂可编程逻辑器件概述


         复杂可编程逻辑器件(CPLD)最早出现于80年代后期,由于其高速、设计灵活、成本低、延时可预测等特点,一经面世便得到广泛的应用。世界各主要PLD厂商都纷纷推出了自己的 CPLD产品,如 Altera公司的 MAX系列,Xilinx的XC9500和Spartan系列,Lattice公司的ispLSI系列等。
1.l 复杂可编程逻辑器件的特点
         与传统的FPGA相比,CPLD最大的特点在于其延时可预测性。在互连特性上,CPLD采用连续互连方式,即用固定长度的金属线实现逻辑单元之间的互连,避免了分段式互连结构中的复杂的布局布线和多级实现问题,能够方便地预测设计时序,同时保证了CPLD的高速性能。用户的仿真与实际系统集成后无太大的时间差异,不会给系统造成性能的波动,即系统具有稳定的可编程性,这使得软件控制下硬件的改变不受器件的影响。
1.2 isp LSI简介
         Lattice公司研制的在系统可编程大规模集成电路(ispLSI)系列芯片具有高密度、高速度和在线可编程等特点[2],使设计变得容易,并且不需要更改线路板就可以立即更改设计,代表了大规模可编程逻辑器件的发展方向。ispLSI包括以下几个主要部分:GLB(通用逻辑块),GRP(集总布线区),ORP(输出布线区),I/O单元和时钟分配网络。
(1) GLB
         ispLSI的基本单元是GLB。每个GLB有18个输入,4个输出,以及实现标准逻辑功能的必要逻辑。GLB的输入来自GRP和专门输入端,GLB的输出反馈回GLB,以便它们能连接到任何别的GLB的输入端。
(2) GRP
         ispLSI芯片中部有一个集总布线区,该布线区在连线延时恒定且可预知的前提下,提供了完善的片内逻辑互连性能。
(3) ORP
         ORP提供了GLB输出与芯片输出引脚之间灵活的连接途径。
(4) I/O单元
         每一个I/O单元直接连接到一个I/O引脚。每个I/O都可编程为输入、输出和双向单元,并可根据所需要编程为锁存或寄存功能。每16个I/O Cell分为一组。8个GLB,16个I/O Cell,一个ORP和2个专用输入连在一起,组成一个                  Megablock(组合模块)。8个GLB的输出通过ORP连到16个I/O Cell。每个Megablock共享一个OE信号。
(5) 时钟分配网络
         以1032为例,时钟分配网络有4个专用的时钟输入端:Y0,Y1,Y2和Y3;另外的一个专用时钟输入来自GLB的输出。5个时钟输出:CLK0,CLK1,CLK2,I/O CLK0和I/O CLK1,用来提供到GLB和I/O单元的时钟线路。CLK0,CLK1和CLK2用作GLB的时钟信号;I/O CLK0和I/O CLK1则用作I/O Cell的时钟信号。
 

2 LED大屏幕视频显示系统原理


         LED大屏幕视频显示系统由于具有亮度高、视角广、寿命长、性价比高,因此在银行、交通、广场、体育场馆等公共场合得到了广泛的应用。笔者用按位分时显示的方法研制了256×256灰度级的LED大屏幕视频显示系统,画面清晰稳定,颜色丰富,取得了良好的视觉效果。
         视频控制系统是LED大屏幕视频显示系统的核心,它负责产生各种显示控制信号,对视频数据进行分割、存储、灰度扫描并按特定的方式输出数据到显示屏体供驱动显示。从电路组成看,视频控制系统包括计算机箱体内的预处理卡及显示屏体内的可级联的视频控制器单元;视频控制器单元(或预处理卡)由控制单元(CPLD)和存储器单元(SRAM组)以及I/O接口单元等部分组成。计算机屏幕上每8×16行单色数据对应两片SRAM存储器(1024列×8×16行为1个存储器单元)8×1位数据口,所有存储器的地址和控制信号由一片控制芯片(ispLSI1032E)产生。它们在显示系统中的关系如图1所示。
         大屏幕显示范围为1024列×768行,时钟频率65MHz,整个显示区域分为6个存储器单元,每个存储器单元对应1024列×128行数据,2个存储器单元及1片控制芯片共同组成一个视频控制器单元(3个视频控制器单元可以级联控制1024列×768行)。计算机视频数据经过预处理卡(如γ反校正)后输出到视频控制器单元,视频控制器单元根据时钟和行、场同步信号对数据进行分割并分时写入到2个存储器单元内,视频控制器的存储器单元同时读出的数据经灰度调制后变成串行数据流,并行输出到显示屏体驱动电路经移位后以1行为周期打入到屏体显示,同时行扫描信号以19行数据刷新时间为周期进行垂直扫描。
 

3 视频控制器单元的实现

3.1 灰度扫描方法
         对于多灰度级LED大屏幕显示而言,灰度的分层(灰度扫描)显示方法是视频控制器设计的关键,由于LED的发光亮度与扫描周期内的发光时间近似成正比,所以灰度等级的实现通常是由控制LED的发光时间与扫描周期的比值,即采用调制占空比来实现的。
(1) 灰度扫描约束公式
         首先给出几个定义:行周期h指视频控制器输入1行数据的时间,即计算机输出视频行周期。显示基本时间单位td定义为灰度级为1的像素在屏体的对应点亮时间。帧扫描周期T定义为存储单元的存储器中1帧图像的读出时间,存储器中1帧图像对应2×8×16行1/n屏(n=l,2,3,…)输入视频图像。帧频F为帧扫描周期的倒数,为满足人眼的视觉要求,假定帧频不低于60Hz。屏体显示效率η定义为帧扫描周期内LED屏体全亮(即全屏数据皆为最高灰度级)时间与帧扫描周期的比值。全屏显示指视频控制器每个存储单元存储的数据列数为计算机屏幕全屏的有效显示列数,相对应的是半屏显示、l/3屏显示等等。
         设显示灰度等级数为N,由于灰度级为1的像素在屏体的对应点亮时间为td,因而灰度线性调制后灰度级为i的数据显示时间为i×td,灰度级最高的数据显示时间为(N-1)×td。通常的考虑[3]是在td内完成对存储器一行数据的一次读出,同时以td为周期将读出的一行数据打入到屏体进行灰度显示。由于共有N级灰度级数,帧扫描周期为


         由以上分析可知,高的灰度级数、高扫描帧频与低的存储器读出速率是相互矛盾的。要获得高的灰度级数,就必须提高存储器读出速率,或者降低帧扫描频率,当灰度级数较高时,以目前的集成电路实现水平难以达到三者的兼顾。
         解决的方法之一是大量采用并行结构,但扫描频率每减小一倍成本就增加将近一倍,而且电路的复杂程度也有所增加;另一种方法是适当牺牲屏体显示效率η以求得帧频与速率的折中,这种方法经实践验证是可行的。
         仍然以td作为显示基本时间单位,以对存储单元1行数据的一次读出时间作为屏体数据更新时间(屏体数据打入周期),引入“消隐时间”的概念:“消隐时间”指屏体正常工作时间里的无效显示时间。屏体数据更新时间可以大于显示基本时间单位,即在屏体数据更新低灰度级时存在“消隐时间”,它虽然使显示效率有所下降,但可以实现较低的扫描速率和较高的扫描帧频。举例来说,若屏体数据更新时间为h,而显示基本时间单位td为h/16,则灰度级为1的数据会引入15/16行“消隐时间”,灰度级为2的数据会引入7/8行“消隐时间”…,灰度级为8的数据会引入1/2行“消隐时间”,而灰度级为16的数据则不会引入“消隐时间”,这样就能在不提高存储器读出速率(λ≤1)的情况下(而且可以降低存储器读出速率Vo=32.5MHz,h=31.7,λ=0.5)实现256级灰度扫描。这时帧扫描周期为
T=(1+1+1+1+1+2+4+8)×h×m=304h=9.64(ms) (11)
帧频为,F=1/T=103.6(Hz) (12)
但这时LED大屏幕显示屏体的显示效率降低为
η'=(1/16+1/8+1/4+1/2+1+2+4+8)×h×m/T=83.88% (13)
也可以取显示基本时间单位td为h/32或h/8,经计算得256级灰度td与帧频F的关系如图2所示,td与LED屏体显示效率η的关系如图3所示。


         设计中考虑到帧频与LED屏体显示效率的折中,采用td=h/16,即存储器读出速率等于1/2数据输入速率,显示基本时间单位为1/16倍行周期。灰度扫描通过对灰度数据按位分时显示的方法实现,即计算机屏幕图像以每像素24bit输出(红、绿、蓝各8bit)时,通过给每种颜色8bit字节的不同位分配不同的显示时间达到灰度显示的目的。比如,最低位(第8位)对应1/16行显示时间,第7位对应1/8行显示时间,…,第2位对应4行显示时间,最高位对应8行显示时间。屏体数据更新时间以行周期为单位,最低位对应更新时间为1行时间,其中显示1/16行时间,其余15/16行时间里,由控制电路产生消隐信号进行消隐,其余位类同。
3.2 视频控制器单元设计
         根据上述256级灰度视频数据灰度扫描的原理设计了256级灰度视频控制器,原理(单个颜色通道)如图4所示。
   

         按功能来分,设计的视频控制器单元可以分为四个部分:控制单元、存储器单元(SRAM)、数据缓冲器和接口单元。视频控制器单元的核心是存储器单元,计算机屏幕上每128行数据对应一个存储器单元,显示屏所要实时显示的内容(即计算机屏幕图像数据)都存放在存储器单元中。控制单元产生存储器单元的地址信号和分时选通控制信号及灰度扫描控制信号如扫描地址信号、消隐、移位、锁存脉冲等。数据缓冲器用于实现视频数据的读写(输出输入)缓冲。接口单元用于产生符合显示屏驱动电路接口格式的信号。
         当一个帧存储器进行数据写入时,另一个帧存储器进行数据扫描读出,这样两组存储器可以分别交替工作于视频数据高速扫描和高速写入两种方式,因而可以提高数据读写的速率和显示屏的帧频,播放出来的图像更加稳定。
3.3 视频控制器单元设计

         视频图像信号频率高、数据量大,要求实时处理,加之LED大屏幕的数字逻辑相当复杂,采用复杂可编程逻辑器件(CPLD)设计系统中的关键控制电路,可以简化系统结构,便于调试。笔者利用Lattice公司的CPLD器件,用按位分时显示的方法设计了256级灰度*256级灰度(红、绿双基色)视频控制器单元的控制单元部分,经测试画面清晰稳定,颜色丰富,取得了预期的效果。以下是设计的大致过程。
         首先是器件选型。为了提高器件的利用率,从结构化观点出发,统计出视频控制器存储单元、数据缓冲器和接口单元需要的控制信号数目为56,决定采用1片Lattice的ispLSI1032作为控制芯片。该芯片包含32个GLB,192个寄存器,I/O口及输入数为72,门数为6000,速度为70MHz,具有在系统编程功能,能够比较高效地满足应用要求,同时还可兼顾系统今后的重构。
         按照设计要求,控制芯片用于产生读、写地址信号、扫描地址信号、分时选通控制信号和一些显示控制信号如消隐、移位、打入脉冲等。在设计中采用了“自顶向下,逐步细化”的策略。
         设计中开发软件采用Lattice公司的EDA工具ispEXPERT7.0,设计输入采用了原理图和硬件描述语言混合输入的方法,并对设计结果进行了仿真。定时分析结果为最小时钟周期为26.7ns,时钟周期计算公式为
时钟周期=路径延时+时钟到输出端延时+建立时间
存储单元采用双总线结构的高速SRAM,每行数据对应19行时间读出,读出后帧频为103.6Hz。计算机视频工作频率为65MHz,行频48.4kHz,帧频60Hz。
 

4 结束语
         本文讨论了LED大屏幕视频控制器单元中的灰度扫描方法,提出了256级灰度扫描时的实现方案,并用CPLD器件实现其控制电路。由于采用了EDA工具,降低了设计难度,缩短了开发周朗,同时由于只需一片集成电路即可实现过去需要几十片中规模集成电路的控制功能,印刷板的面积大大缩小,系统抗干扰能力显著增强,此外ISP功能给电路板的调试和系统的维护带来了很大的方便,并且有利于系统今后的升级和重构。