基于FPGA的OLED真彩色显示的实现
1.3FPGA控制器
利用FPGA的处理速度和数据宽度高的优势以及芯片中可利用的丰富资源,为分辨率为480×RGB×640的OLED显示屏设计了外围驱动控制电路。其主要作用是向OLED显示屏提供扫描控制信号及进行OLED显示数据的数字信号处理。
根据OLED显示屏周边接口的结构和特性,利用FPGA芯片为其设计外围的驱动控制系统,为OLED屏提供控制信号以及传输所要显示的数据信号。本文引用地址://m.amcfsurvey.com/article/190187.htm
如图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位数据锁存器中,然后这些数据进入到DA转换模块,转换成16路模拟量,送至OLED显示屏,完成一个Block数据的载入。
在列扫描驱动脉冲cpy和cpby的控制下,80个Block依次被选通,在每一Block被选通期间,都将进行一次144个数据的移位寄存和锁存,当80个Block都锁存完之后,一行数据的载入也就完成了。当第一行的80个Block数据显示完毕后,列扫描起始信号sty过来,又开始从第一列扫描,与此同时,在行扫描驱动脉冲cpx和cpbx的作用下,第二行像素被选通,所以,这时将进行第二行的1到80个Block的数据载入,以此类推,直到90行数据都显示完毕之后,行扫描起始信号stx到来,重新选通第一行,循环往复,一帧帧地显示数据。
评论