基于Xilinx FPGA SOPC的TFT-LCD 控制器设计与实现

FPGA/ASIC技术

190人已加入

描述

  根据TFT-LCD的工作原理,采用Xilinx公司的Microblaze微处理器软核,提出了一种基于嵌入式FPGA SOPC平台的TFT-LCD控制器方案.并验证了该方案的可行性。该控制器为进一步在嵌入式FPGA 片上系统进行图像和多媒体开发提供了一个稳固的平台。

  0 引言

  目前TFT (Thin Film Transistor,薄膜场效应晶体管)液晶已经广泛应用于信息显示系统,但是这些系统运算能力和工作效率较低,难以适应图像高速处理和数据传输的需求。

  基于最新FPGA嵌入式设计方法,作者提出了一种TFT—LCD显示控制器的设计方案,采用Xilinx公司的MicroBlaze 32位微处理器软核,充分利用FPGA 的高速处理和片内大容量逻辑资源,设计了一个基于FPGA可编程片上系统(SOPC,System On Programmable Chip)的TFT彩屏液晶显示控制器。

  1 系统主要硬件结构介绍

  系统硬件主要部分如图1所示.在该系统中.Xilinx公司的Spartan-3E XC3SS00E FPGA作为主控芯片,外部存储器分别采用Micron公司的32Mxl6 DDR SDRAM 芯片MT46V32M16和Intel公司的JS28F128J3D75 Strata Flash芯片。

  系统采用一片基于Himax HX8347D驱动芯片的2.4 TFT液晶显示模块,支持QVGA(320×240像素)显示分辨率,该芯片内置1 382 400 bits显示数据GRAM,支持最高262 144色的显示。

  

控制器

  2 SOPC系统及TFT-LCD控制器的设计

  SOPC系统“嵌入式硬件平台”设计在Xilinx嵌入式开发套件EDK (Embedded Development Kit)软件内完成.利用EDK的集成开发环境XPS(Xilinx Platform Studio),生成Microblaze一 基本系统构架。Microblaze处理器采用IBM Core Connect总线架构的OPB总线(On—Chip Peripheral Bus,片上外围总线) :与外设相连,由于TFT—LCD控制器不是系统的标准预置可定制外围设备,因此需设计一个TFT-LCD控制器IP核与OPB总线接口连接.并导入系统。

  TFT-LCD显示系统的硬件模块如图2所示,Microblaze微处理器软核作为核心处理器,通过OPB总线与片内外的终端相连,TFT-LCD控制器通过OPB总线IP接口与OPB总线相连,所有的这些模块均在FPGA 内实现,另外TFT-LCD控制器通过输出使能信号开启/关闭显示模块的背光。

  控制器

  TFT—LCD控制器IP核内同时集成了LCD初始化模块,这样整个SOPC系统上电初始化的同时也初始化了显示模块,有利于快速显示.模块的初始化过程如图3所示。

控制器

  以上设计完成后,经过综合、布局布线无误后生成bit文件,下载到开发板上,作为进一步开发调试的硬件平台使用。

  3 软件部分设计

  在完成SOPC虚拟硬件平台设计后,在SDK (Software Development Kit)集成开发环境中进行TFT—LCD模块控制器应用程序的设计。

  在导入自行设计的TFT-LCD IP核后,EDK会自动生成该IP核的基本驱动库,将TFT-LCD控制器作为寄存器进行各项操作。利用这些底层API函数,根据功能需要,作者编写了LCD下列几个显示功能函数,供后续进一步图形显示开发使用.部分主要函数及其功能说明如下:

  (1)void LCD_ Cmd(Xuint32 reg)

  功能:设置寄存器地址,在对显示模块传送寄存器地址时,LCD控制器驱动FPGA芯片向TFT显示模块的CS、RS、WR引脚输出低电平,完成后再将WR引脚电平拉高。

  (2)void LCD_Data(Xuint32 data)

  功能:送参数到寄存器中或者送显示数据到GRAM 中,在对显示模块传送寄存器地址时。LCD控制器驱动FPGA芯片向TFT显示模块的 、RS、WR引脚输出高电平信号,完成后再将WR引脚电平下拉。

  (3)void LCD_Reg— Set1(Xuint32 reg,Xuint32 data)

  功能:把数据送到特定的寄存器,通过调用上面的两个函数完成.当RS输出为低电平时,写寄存器地址;当RS输出为高电平时,写寄存器的设置参数。

  (4)void LCD Pixel(Xuintl6 x,Xuintl6 Y,Xuint32 color)

  功能:将指定颜色的像素在屏幕指定位置显示的函数。

  基于以上针对像素操作的函数,可以构建任何高级功能显示函数,如显示字符函数void display_char(BYTE p)和显示位图函数void Display_Bitmap(Xuint32*pic)。

  4 系统测试运行

  SOPC系统的OPB总线时钟频率设定为50 MHz,Microblaze片上的高速缓存设为8 kB,面板内部显示帧速率设为60 Hz,显示分辨率为320×240,色彩显示深度16 bit(65 536色)。

  经过对软件程序的编译、汇编和链接,生成可执行文件,进行在线联机调试并调试成功后,在XPS中将软件设计中生成的软件镜像同硬件设计中生成的配置文件合并,生成最终的FPGA下载配置文件,下载到芯片中上电运行。

  测试时,将要显示的图形和字符预先存储在DDR SDRAM 指定的地址区间,然后将其读出送给TFT—LCD显示,具体的工作流程如图4所示.测试结果表明图形和字符结果均正常显示,表明系统可以正常稳定工作。

  

控制器

  5 结束语

  实际运行表明,基于Xilinx SOPC系统的TFT—LCD除了具有良好的显示效果外,其最大的优点在于与传统FPGA设计LCD控制器的方法相比,今后进一步进行图形设计时只需在此基础上调用当前设计的显示功能子函数即可进行高层的应用程序设计.由于使用的微处理器软核、系统高速外围总线和控制器IP都是在整个FPGA芯片上实现,因此整个系统的速度和稳定性有了很大提高,系统使用的大容量DDR SDRAM 可以进行大量数据的存储和处理,为今后在此平台上进一步进行多媒体开发提供了良好而又坚实的基础。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分