微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 硬件工程师文库 > 基于FPGA的OLED真彩色动态图像显示的实现

基于FPGA的OLED真彩色动态图像显示的实现

时间:03-21 来源:互联网 点击:

,对这两种方法进行优化,256级灰度采用通过对图像数据按位分时显示的方法实现,即对输入的8 bit像素信号RGB,通过给每种颜色字节的不同位分配不同的显示时间达到灰度显示的目的,使每位的显示时间为 128:64:32:16:8:4:2:1,利用其组合可以得到256级灰度显示所对应的子像素发光时间,实现视觉上的256级灰度即1 667万色显示,以实现高质量的显示画面。

  为实现256级灰度,将一个像素点的扫描时间分成19个单位时间t,8 bit灰度数据q[7:0]从高位到低位所占的时间分别为8t,4t,2t,t,t,t,t,t。为使不同位显示时间成一定比例,从q[3]开始引入 t/2的消影时间,q[2]引入t/4的消影时间,d[1]引入t/8的消影时间,d[0]引入t/16的消影时间,如图2所示,由控制电路产生消隐信号进行消隐。由此计算OLED屏亮度百分比λ=(8+4+2+1+1/2+1/4+1/8+1/16)/19=83.9%。

  

  1.3 FPGA控制器

  利用FPGA的处理速度和数据宽度高的优势以及芯片中可利用的丰富资源,为分辨率为480×RGB×640的OLED显示屏设计了外围驱动控制电路。其主要作用是向OLED显示屏提供扫描控制信号及进行OLED显示数据的数字信号处理。

  根据OLED显示屏周边接口的结构和特性,利用FPGA芯片为其设计外围的驱动控制系统,为OLED屏提供控制信号以及传输所要显示的数据信号。

  

  如图3所示,经解码后的图像数据存入FIFO(First In First Out)缓存中,在主时钟的控制下,FIFO中的图像数据将被载入到一个16×8的数据装载寄存器,当这16个8位数据装载寄存器装满时,将被一个144 位的锁存器锁存,等待进入D/A转换模块;同时FPGA控制器还将在主时钟的控制下产生行列移位时钟和行列扫描起始脉冲,产生的时钟和脉冲进入DC-DC 转换模块。

  1.4 各种控制信号周期及频率

  为使FPGA控制器能工作于一个合理的驱动频率以及提高显示屏的亮度,在结构上采用标准单元块的形式。对于分辨率480×3×640的显示屏,以8×16 个显示像素灯管构成一个单元块,将480×3行分组组合成为90个块(Block),即每块由一组列信号同时驱动16行像素。设计列扫描驱动电路时,将 640列电极分组组合成为80个块(Block),每个块并行驱动8列像素。

  OLED显示屏的刷新频率是60 HZ/s,即显示一帧图像的时间为1/60 s,设为T,所以,行扫描起始信号stx的周期T为16 667μs,占空比为1:90;因为OLED显示屏480×3行电极分组组合成为90个Block,所以每一块的选通时间为T/90,即 185.185μs。而cpx和cpbx是一对反相不交叠的脉冲信号,占空比为50%,在脉冲信号的高电平和低电平时,都有一个Block行像素被选通,即在cpx和cpbx一个周期内有两个Block行像素被选通,所以行扫描驱动脉冲cpx和cpbx的周期为T/45,即370.370μs。

  同理,OLED显示屏的列被分为80个Block,每个列Block的选通时间为2.315μs,列扫描起始信号sty的周期为185.1 85μs,占空比为1:80。列驱动脉冲cpy和cpby亦是一对反相不交叠的脉冲信号,占空比为50%,在脉冲信号的高电平和低电平时,都有一个 Block被选通。由于每个列Block的选通时间为2.315μs,所以列扫描驱动脉冲cpy和cpby的周期为4.630 μs。

  在每个列Block选通期间,从FIFO中并行读出的8个8 bit数据进入数据锁存器锁存。在每个BLOCK选通期间都将进行一次数据的锁存,所以数据锁存信号Lock的周期为2.315μs。因为当16个8位的数据装载寄存器都载满数据的时候才进行这144个数据的锁存,所以16位移位寄存器时钟clk_reg的周期为0.145μs。从FIFO中读出数据的速度必须和向数据装载寄存器中装载数据的速度一致,则FIFO的读时钟clk_fifo的周期也为0.145μs。对0.15μs(6.896 MHz)进行近似为7 MHz,所以令系统的基本时钟为14 MHz,由FPGA外部晶振产生。读时钟为基本时钟的二分频。

  1.5 FPGA工作流程

FPGA处理器是设计的核心部分,其工作流程为,在每个clk_fifo时钟周期下,从8个FIFO缓存中并行读出8个8 bit像素数据,在时钟clk_reg上升沿到来时,16位移位寄存器发生移位,它的输出端接16个8位数据装载寄存器的片选端,这样16个8位数据装载寄存器逐个被选通,此时这些数据就可以载入到16个8位数据装载寄存器中,这16个8位寄存器的输出端接在144位锁存器的输入端上。16个时钟 clk_reg上升沿过后,16个8位数据装载寄存器都将依次被装载满,此时数据锁存信号Lock到达,将144个数据锁存到144位数据锁存器中,然后这些

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top