引言
目前,ARM在嵌入式系统中的应用越来越广泛。本文选用的是NXP公司32位LPC2478。LPC2478丰富的资源适合在工业领域中应用,该芯片的成本和功耗都比较低,是内部集成LCD控制器的ARM7芯片。在工业领域中,相比较数字屏而言,模拟屏具有驱动能力、抗干扰能力强和价格低等优点。根据实际项目应用,本设计中采用了群创公司的7in模拟屏。
1 HX8817芯片简介
HX8817是一个带有ITUR BT.656和BT.601输入接口的TFT-LCD时序控制器。该控制器内置色彩空间转换电路、DAC和运算放大器,并且具有gamma校正和极性翻转功能,将数字数据转化为行极性变换方式的、模拟放大的RGB信号,同时产生模拟屏所需的水平和垂直时序。该芯片结构框图如图1所示。
2 LPC2478的LCD控制器
LCD控制器直接为多种彩色和单色LCD显示屏的接口提供了所有必需的控制信号。显示分辨率最高支持1 024×768。LCD控制器用于将像素编码数据转换成所需格式,并产生相应的时序以驱动各种单屏或双屏的单色和彩色LCD显示屏。该LCD控制还具有两个独立的DMAFIFO缓存器,当液晶屏为单屏,可将这两个缓存器合并为32双字节容量来使用。采用了DMA FIFO之后,SDRAM中的Frame. Buffer中的图像数据以DMA方式传输到LCD控制器数据缓存器FIFO,不占用系统总线时间。LCD控制器包含两个单独的AHB接口。一个是AHB从接口,主要被CPU用于访问LCD控制器内的控制寄存器和数据寄存器;另外一个是AHB主接口,被LCD控制器用来DMA访问存在于内存或系统其他地方的显示数据。LCD控制器的接口和控制信号引脚如表1所列。
3 系统硬件设计
具体的硬件电路框图如图2所示。
硬件电路可以分为以下部分:
①电源驱动电路设计。该电路主要功能是把5 V电源变成模拟屏所需的正负电压(VGL、VGH)。本设计采用MC34063芯片,该芯片外围电路简单,能很方便地设计出模拟屏所需的正负电压。
②ARM的LCD控制器与HX8817芯片接口设计。通过设定HX8817的IFl~IF3引脚,使得HX8817的输入为18位数字信号RGB(R5~R0,G5~GO,B5~B0),具体设定IFl~IF3均为高电平。分辨率通过RESl~RES3引脚设定,本文设定分辨率为480×234。但是由于LPC2478的LCD控制器数据总线为24位,因此在数据总线连接的时候必须注意对应的连接顺序。为了保证颜色的失真最低,只能丢弃LCD 24位RGB中的每种颜色数据的低两位。其他引脚对应方式如下:LCD控制器的LCDDCLK接HX8817的CLKl,LCDFP接VS,LCDLP接HS,LCDENA接DE。
③HX8817与模拟屏接口。此处所要注意的是HX8817的POL信号要经过运放电路,然后叠加直流信号,产生VCOM信号送给模拟屏,具体参考电路如图3所示。其他引脚只要一一对应连接即可。通过调节VCOM的DC端,可以改变LCD的色彩;调节AC端,可以改变LCD的对比度。
4 系统软件设计
本文的重点是讨论如何实现用LCD控制器的信号去驱动模拟屏,具体在显示上的一些GUI函数,不是本文讨论的内容,在此就不展开。HX-8817所需的时序信号是通过对LCD控制器的配置产生的,笔者根据实际项目应用,并比较HX8817输入时序信号和LCD控制器输出时序信号,对LPC2478的LCD控制器里的主要寄存器进行初始化设置。初始化函数Lcd_Init()主要代码如下:
5 总结
本文给出了一种LCD控制器信号直接驱动模拟屏的设计方案,主要就硬件的实现展开论述。经过实验证明,该设计方案具有硬件接口电路设计简单、成本较低等特点,对具有数字屏的项目转换成模拟屏具有很实际的借鉴意义,可广泛应用于工业自动化产品中。