基于FPGA及NiosII软核处理器的TFT-LCD接口设计
可推出 17位地址全部电路。在图 3中 RAM_ADD=((LCD_ADD&LCD_选通)+(CPU_ADD&CPU_RAM_选通))且 “LCD_读选通”信号与“ CPU_RAM_选通”信号在任何时刻最多只能有一个是有效的,所以当“ LCD_读选通”信号与“ CPU_RAM_选通”生效时可将 RAM_ADD切换到相应的地址线上。如当某时刻“ LCD_读选通”信号与“ CPU_RAM_选通”全无效则 RAM_ADD输出应全为“ 0”。
![](../img/eep/emb/emb-48019nar5z435ekv.jpg)
图4是数据分离电路中的一位,同样 ,以图 4这一位可推出 32位数据线。
![](../img/eep/emb/emb-48020ytmc3qwhhjw.jpg)
在图 4中,RAM_R_W= (CPU_RAM_选通)&(CPU_WD),当 RAM_R_W有效时, CPU_写 DATA可通过三态门输出到 RAM_DATA上。当 CPU读 RAM时,RAM的数据由门电路输出到锁存器的输入端,在数据稳定后由“ CPU_R_锁存”信号将数据锁存在锁存器上等待 CPU将数据读走(CPU_R_锁存=(( / CPU_RD)& CPU_RAM_选通&25MHz&(/50MHz)))。
同样的在 T0周期内将 RAM的相应数据由“ LCD_锁存”信号将 32位的数据锁存在锁存器上。在相应的 T0-T3周期由 T0-T3选择相应的 8位数据输出到调色电路上,在相应时刻由 “LCD_调色输出锁存”信号将此像素点数据锁存,由 TFT_LCD读取此点的三基色数据并显示。
4.3调色电路
调色电路实际为利用 FPGA内部的片内 RAM,由 Quartus 软件生成的 24位 256字节的 RAM或 ROM,RAM或 ROM的地址线接 LCD数据锁存器的输出端后的数据选择电路,数据选择电路是将 32位的数据,按 T0-T3所决定的时间,选择相应的 8位数据。当 T0时选 D[24]-D[31]、当 T1时选 D[0]-D[7]、当 T2时选 D[8]-D[15]、当 T3时选 D[15]-D[23]。之所以将数据选择设计成 T0时选 D[24]-D[31],是因为 TFT_LCD读显示缓存 RAM时,是在 T0周期的末端才能将新数据锁存到“ LCD-读 DATA”端,新的数据只有在 T1周期才能开始显示。调色电路的输出是 3*8=24bit的本文所用的 TFT_LCD是 3*6bit的所以只用相应 8bit的低 6bit。如果将调色电路设计选择 RAM型时,可以由 CPU改写调色电路 RAM,使色彩显示更加丰富。
4.4显示缓存设计
显示缓存 RAM的选择由 LCD显示彩色多少决定的,如果显示 16色可以选择每像素点占 4bit,这样每读一次 RAM可显示 8个像素点。以此类推来选择显示缓存 RAM的大小和相应修改时序发生电路的周期。对 CPU的显示缓存 RAM口的设置时,一定要注意显示缓存 RAM的 CPU读写周期与时序发生电路的周期相一致,否则会发生读写错误。本例设置的是 160纳秒( T0+T1+T2+T3=160ns)[3,4]。
5 结束语
本文介绍了一种基于 FPGA及 NiosII软核处理器与 TFT-LCD接口的主要部分的设计要点,该设计内容已经在实际电路上得到验证,并在一些仪器的显示系统上得到应用。
- 在采用FPGA设计DSP系统中仿真的重要性 (06-21)
- 基于 DSP Builder的FIR滤波器的设计与实现(06-21)
- 基于FPGA的快速并行FFT及其在空间太阳望远镜图像锁定系统中的应用(06-21)
- 3DES算法的FPGA高速实现(06-21)
- 用FPGA实现FFT算法(06-21)
- FPGA的DSP性能揭秘(06-16)