欢迎光临本站![会员登录][免费注册]
敬告用户:本站内容全部人工审核,请勿发表非LED行业信息,请勿发表重复信息。(登陆后,找到您发布的信息,使用“申请本页到首页版块”功能即可将您的信息提升到首页)
低帧频,无闪烁LED全彩屏的逻辑设计
作者:游客  |  时间:05-27
  由于LED本身不具有余辉效应的特性,所以采用传统的恒流源脉冲调宽控制灰度的LED屏的刷新率必须大于120Hz才能实现无闪烁的图像显示。这样就需要 对灰度数据较低的输入帧频的图像信号进行增频刷新。其结果造成刷新数据出现了极大冗余度,并增加了LED驱动板的硬件开销。本文提出了一种全新的脉冲打散 的方法,大大减少了刷新冗余,降低了硬件开销,免除了闪烁,相应增加了伽马校正的比特数,提高了图像质量。实现了30Hz帧频连续图像的无闪烁显示,并把 每点每色的8bit数据扩展到13bit,实现256灰度级,达到更逼真的显示效果。脉冲分散控制逻辑设计,灰级控制逻辑在CPLD上实现。采用新方案的 系统控制逻辑硬件在6B595驱动的全彩屏上得到验证。
  
  图1 LED控制系统框图
  
  系统结构见图1。
  
  系统接收计算机显示卡送来帧频为f的数字图像信号,经传输到达屏体。子屏控制器采用级联方式,接收属于自己的显示数据包。在统一的时序控制下,每个子屏控制器控制32×64个像素,独立的完成扫描显示工作,各个单元的扫描同步完成,不会影响显示速度和质量。
  
  图2 子屏控制器框图
  
  子屏控制逻辑设计
  
  根据实现功能的需要,每个子屏控制器被分为五个模块:读入发送数据(read_send)、伽马矫正(gamma)、数据重组(dataprocess)、读写SRAM(rwsram)、脉冲打散输出(scatter)。如图2子屏控制器框图所示。
  
  读入发送数据(read_send)
  
  子屏控制器是LED大屏幕显示的重要组成部分,它的主要功能是接收上一级子屏控制器或行控制器传来的数据,将其转换成具有灰度信息的数据,按照要求传送给下一级595驱动电路。
  
  由于视频数据量很大,按照RGB三种颜色数据依次输入,对于后面的数据处理部分需要的缓存器比较多,使得现有的硬件资源无法实现,因此决定将三个数据缓存部分缩减到一个RGB,三种颜色共用一个缓存器,这样就可以使缓存部分的寄存器使用数量减少三分之二。
  
  伽马矫正(gamma)
  
  伽马校正是子屏控制器中重要的部分,直接影响整个显示图象的色彩质量。本节中只考虑gamma校正的实现,gamma校正的方法原理及具体数值在本文中不详细说明。
  
  单色伽马表大小为256*13=3328bit,因此三种颜色的伽马表需要9948bit存储,利用FPGA内部的EAB单元实现而不用外部sram实 现,这样查表的速度非常快,同时节约硬件,简化逻辑设计。将EAB分成RGB三个单元,每个单元内置伽马曲线表,每输入一个8bit灰级数据,立即查表输 出13bit经过伽马矫正的灰级数据。如图3 gamma校正示意图所示。
  
  gammar :伽马转换后的13bit红色灰级数据。
  
  gammag :伽马转换后的13bit绿色灰级数据。
  
  gammab :伽马转换后的13bit蓝色灰级数据。
  
  数据重组(dataprocess)
  
  由于受到后端数据处理速度的限制,必须在前端对数据就进行处理,使得数据方便后端打散的使用,因此伽马矫正输出的13bit数据并不马上送到外部sram 中去,先缓存到暂存寄存器中。当寄存器组存满16个数据后(即16条链同一位置的点一种颜色的灰度值),取每个数据的第i位组合成新的数据,转存到另一个 寄存器组中,最后按顺序存到外部sram中。由于三种颜色RGB是分时输入,因此可以共用一组寄存器,节约硬件资源。如图4所示。
  
  脉冲打散输出(scatter)
  
  脉冲打散输出子模块分为G信号脉宽调制和现实脉冲打散两部分。
  
  1) G信号脉宽调制
  
  G信号是led点亮使能脉冲,在G信号为有效电平期间,锁存的脉冲数据才可以驱动led显示。因此可以通过控制G信号的宽度,来细调led的发光亮度。
  
  所谓脉宽调制,是采用计数的方式,设置计数初值。开始计数后,在计数期间内,G信号为有效电平;否则,为无效电平。通过设置不同的计数初值,产生不同宽度的G信号脉冲。
  
  2) 脉冲打散
  
  这里只讨论全彩屏设计中关于数字信号由CPLD传入595以及由595控制LED发光阵列的过程。
  
  现以4比特灰度举列说明,一般的显示方法如图5所示,定为方案一:
  
  方案一在显示高位比特时,是采用集中显示,如果将其均匀分配,则有更好的视觉效果,如果屏幕的闪烁与高位比特有关的话,采用此方法将明显降低闪烁。改进方案二的显示如图6所示。
  
  方案二存在的问题是,由于帧频率为30Hz,低比特(13位灰级时b3-b0位)在一行显示过程中没有足够的重复点亮次数(只点亮了一次或两次),如果要达到120Hz的显示效果,则至少需要重复点亮四次。
  
  为了解决低灰级可能闪烁的问题,将b3-b0特殊控制,和b4一样重复显示4次。同时用G信号控制显示的宽度,这样既可以达到最低120Hz的显示频率,又可以不增加低灰级的显示亮度。如图7显示方案三所示。
  
  由于是完全均匀的打散方式,因此可以各位输出的时刻是有规律的。对于13bit灰级数据按照以下规律:
  
  b12: n=2*a+1 a=0,1,2,3,......,1023
  
  b11: n=4*b+2 b=0,1,2,3,......,511
  
  b10: n=8*c+4 c=0,1,2,3,......,255
  
  b9 : n=16*d+8 d=0,1,2,3,......,127
  
  b8 : n=32*e+16 e=0,1,2,3,......,63
  
  b7 : n=64*f+32 f=0,1,2,3,......,31
  
  b6 : n=128*g+64 g=0,1,2,3,......,15
  
  b5 : n=256*h+128 h=0,1,2,3,4,5,6,7
  
  b4 : n=512*i+256 i=0,1,2,3
  
  b3 : n= 512*j+0 j=0,1,2,3
  
  b2/b1/b0: 强行均匀插入到显示中去。
  
  ● 注释1:n为输出的时刻,每个时刻表示脉冲信号的输出时间间隔。
  
  ● 注释2:b2/b1/b0强行均匀的插入到显示序列中去,每一位需要显示4次。
  
  数字逻辑实现的方法:
  
  方法一,用查表的方法。表的大小是2048*4bits。
  
  方法二,用组合电路+状态机。
  
  定义9位计数器Cnt[8..0]为状态变量。
  
  b12: n=2*a+1 a=0,1,2,3,......,1023; Cnt[0]=1;
  
  b11: n=4*b+2 b=0,1,2,3,......,511; Cnt[1:0]=10;
  
  b10: n=8*c+4 c=0,1,2,3,......,255; Cnt[2:0]=100;
  
  b9: n=16*d+8 d=0,1,2,3,......,127; Cnt[3:0]=1000;
  
  b8: n=32*e+16 e=0,1,2,3,......,63; Cnt[4:0]=10000;
  
  b7: n=64*f+32 f=0,1,2,3,......,31; Cnt[5:0]=100000;
  
  b6: n=128*g+64 g=0,1,2,3,......,15; Cnt[6:0]=1000000;
  
  b5: n=256*h+128 h=0,1,2,3,4,5,6,7; Cnt[7:0]=10000000;
  
  b4: n=512*i+256 i=0,1,2,3; Cnt[8:0]=100000000;
  
  b3-0: n=512*j+0 j=0,1,2,3; Cnt[8:0]=000000000;
  
  实际程序中我们使用了9位的计数器cnt[8:0]为状态机变量,当计数器Cnt[8:0]=000000000时,暂时停止计数,插入低灰级亮度,输出 低灰级亮度地址。用一个四个状态的小状态机low[3:0]来实现,当低灰级显示完毕,cnt继续计数,进入下一个状态。
  
  结语
  
  从显示卡获得的像素数据变化频率与帧频率相同,比较低。如果只靠像素数据控制脉冲宽度来驱动LED大屏幕,由于频率低,再加上LED本身不具有余辉效应, 图象就会产生明显的闪烁现象。而且灰度层次也无法提高。本文提出了一种独特的脉冲打散的方法,把表示像素灰度级的数据转换为在一帧的时间内均匀分散的个数 不等的定宽窄脉冲,其脉冲个数与灰度数据直接关联,相当于延长了余辉效应。 因而有效地消除了闪烁现象,同时可获得很高的显示灰度层次,结合反伽马校正, 实现整个LED显示屏灰度和亮度的调整,使显示屏达到了良好的显示效果。该显示方法的控制逻辑已经在可编程器件上实现。样机试验结果表明,该方案是切实可 行的,显示效果有明显改进。
关键字:
闪烁
LED
全彩屏
收藏关注:关注该技术文章
将本页加入IE收藏夹
推荐本页给朋友
分享到:
相关留言
暂无回复。
发表留言/评论
您的姓名:   联系方式:
留言内容:
验证码: 若图片看不清,单击图片可更换