APP下载

嵌入式LCD裸机驱动的设计与实现

2017-01-11王永涛

沈阳理工大学学报 2016年6期
关键词:字段寄存器处理器

王永涛,虞 闯

(沈阳理工大学 信息科学与工程学院,沈阳 110159)

嵌入式LCD裸机驱动的设计与实现

王永涛,虞 闯

(沈阳理工大学 信息科学与工程学院,沈阳 110159)

设计一个典型的基于arm架构处理器的TFT-LCD显示系统,处理器采用三星公司的S3C2440A,显示器采用东华的WXCAT43-TG6液晶显示模块,通过对S3C2440A处理器中LCD控制寄存器中参数的分析,以及对WXCAT43-TG6模块的控制时序和逻辑要求的研究,实现了由S3C2440控制WXCAT43-TG6图像显示的设计。

ARM;S3C2440;TFT-LCD;WXCAT43-TG6

随着技术的不断发展,嵌入式技术与显示技术越来越受到人们的关注[1]。目前,国内TFT-LCD技术与嵌入式技术的结合还处在初级阶段,TFT-LCD主要应用与低端处理器与高端智能产品中,在中低端产品中的应用还不够广泛。本文采用arm9处理器设计了一种典型的TFT-LCD显示系统。WXCAT43-TG6是一种有源矩阵液晶显示器模块,其由驱动电路、背光灯和4线电阻触摸屏组成,分辨率为480×272像素,用24bit数据信号能显示16777216种色,适用于各种终端设备的显示。

1 LCD控制器分析

处理器S3C2440A中的LCD 控制器可以用于传输视频数据并且产生必要的控制信号,例如VCLK、VM 、VFRAME和VLINE等。除此之外,S3C2440A处理器还集成了传输视频数据的数据端口,如图1所示, 其中VD[23∶0]即为传输视频数据的数据端口。在LCD控制器中主要包括 LPC3600、VIDPRCS、REGBANK、TIMEGEN 和 LCDCDMA等。其中, LCDCDMA模块专门用于控制DMA,它可以通过专用DMA自动地把帧存储器中的视频数据读取并传输;VIDPRCS用来接收LCDCDMA传来的视频数据,然后将数据变换为特定的格式,再通过VD[23∶0]数据端口将其发送到LCD驱动器中,例如4/8位单扫描或4位双扫描显示模式;在REGBANK模块中包含用于配制LCD控制器的256×16个调色存储器和17个可编程寄存器集;TIMEGEN模块由可编程逻辑组成, 该模块可以用来产生VCLK、VM VFRAME和VLINE信号等[2-3]。

图1 LCD控制器方框图

2 处理器与显示器的连接

S3C2440A内置的LCD控制器提供33个输出端口,其中包括24个数据位和9个控制位,如图2所示。

VD[23∶0]表示LCD像素数据输出端口; VFRAME/VSYNC可以收发LCD的控制器和驱动器之间的帧同步信号,该信号可以控制LCD屏显示新的一帧的开始;HSYNC/VLINE可以收发LCD的控制器和驱动器之间的行同步信号,该信号可用于控制LCD驱动器将行移位寄存器中的内容送给LCD屏显示;VCLK/DCLK表示像素的时钟信号;DE/VM可以收发数据使能信号,该信号可用于控制像素点的显示或熄灭。

3 TFT-LCD控制时序分析

TIMEGEN产生控制信号给LCD驱动器。这些控制信号的控制操作如图3所示:VSYNC每当发出一个脉冲时,表示新的一帧(即一屏视频数据)开始发送;每当HSYNC发出一个脉冲,意味着新的一行数据开始发送;每一个VCLK周期,表示一个像素点,即会通过VD数据线发送一个24位的数据,如图所示只有在HOZVAL区域内VD数据线上发送的数据才会在屏幕上显示,每行包含的VCLK周期数计算表达式为(HOZAL)+(HBPD+1)+(HSPW+1+1)+(HFPD+1),每一帧包含的VCLK周期计算式为(HSPW+HBPD+HOZAL+ HFPD+4)(VSPW+VBPD+LINEVAL+VFPD+4),其中,LCDCON1寄存器的CLKVAL字段可控制VCLK的频率,其关系式为VCLK(Hz)=HCLK/[2(CLKVAL+1)],以上表达式中的HSPW、HBPD、HOZAL、HFPD、VSPW、VBPD、LINEVAL和VFPD的值可在LCDCON2/3/4寄存器中设置[4-6]。

图3 TFT-LCD控制时序图

4 软件设计

4.1 寄存器设置

因为S3C2440A处理器的大多数引脚都是多功能引脚,所以在使用前都需要将其配置成相关功能才能使用,首先将24个数据输出管脚配置成VD功能,并打开其上拉功能。然后设置LCD的控制寄存器,其代码为:

rLCDCON1=(clkval≪8)|(mmode≪7)|(pnrmode≪5)|(bppmode≪1);∥右值宏的值依次为4,0,3,13

rLCDCON2=(vbpd≪24)|(lineval≪14)|(vfpd≪6)|(vspw);∥右值宏的值依次为1,9,271,1

rLCDCON3=(hbpd≪19)|(hozval≪8)|(hfpd);∥右值宏的值依次为1,1,479

rLCDCON4=hspw;∥其值为40

rLCDCON5=(bpp24b1≪12)|(1≪11)|(invvclk≪10)|(invvline≪9)(invvframe≪8)|(invvd≪7)|

(invvden≪6)|(bswp≪1)|hwswp;∥右值宏的值依次为0,0,1,1,0,0,0,0

其中,语句中的右值字符串为宏定义,分别对应各字段的值。除了以上寄存器外,还需要设置3个寄存器,它们是帧缓冲开始地址寄存器,这些寄存器包含LCDBANK、LCDBASEU、LCDB ASEL、OFFSIZE和PAGEWIDTH字段。对于单扫描模式,LCDBANK字段表示系统存储器中视频缓冲器的bank位置的A[30∶22],LCDBASEU字段表示帧缓冲器的开始地址的A[21∶1],LCDBASEL字段表示帧缓冲器的结束地址的A[21∶1],OFFSIZE字段表示虚拟屏偏移尺寸,PAGEWIDTH字段表示虚拟屏页宽度。当LCD控制器为打开时,可以通过改变LCDBASEU和LCDBASEL的值来实现滚屏。这三个寄存器的设置如下:

rLCDSADDR1=(((U32)1cd_buffer≫22)≪21)|lower21bits((U32)1cd_buffer≫1);

rLCDSADDR2=lower21bits(((U32)1cd_buffer+ysize*xsize*4)≫1);∥lcdbasel;

rLCDSADDR3=xsize*2;∥其中xsize和ysize480和272

其中lcd_buffer定义为“volatile U32 lcd_buffer[ysize][xsize];”;low21bits()函数的功能是取参数的低21位;xsize和ysize的值为屏的大小,即为480和272。

4.2 程序设计

上面的过程已经初始化好了LCD的控制寄存器,现在打开LCD屏,操作为将LCDCON1寄存器的第1位置1;显示图像的操作为将图像数据写到视频缓冲器中,例如显示函数为:“void paint_bmp(U32 x0,U32 y0,U32 h,U32 l,const unsigned char bmp[]);”。

参数x0和y0为显示图像的左上角的位置,h和l表示图像的右下角的位置,bmp即为图像数据。在函数中要先将图像数据转化为24位表示,然后将其写入lcd_buffer帧缓冲区中。LCDCDMA模块会自动从帧缓冲区中将数据读取并传输。

将一幅图像数据载入并显示,其结果见图4。

图4 图像显示示意图

5 结束语

对TFT-LCD显示器显示原理及控制时序的详细分析,通过软件编码对S3C2440A处理器中LCD控制寄存器中参数进行设置,实现了一种基于arm9处理器的LCD裸机驱动的设计。

[1]刘增水,胡力刚.基于ARM芯片的TFT-LCD显示系统设计[J].仪表技术,2009(5):43-45.

[2]童庆平,刘笃仁.基于ARM芯片S3C2410的TFT-LCD驱动方法[J].电子元器件应用,2007(3):20-22.

[3]赵晶晶.基于Qt的多电飞机电源检测系统研究及实现[D].南京:南京航空航天大学,2013.

[4]张有迪,张传胜.基于ARM控制器的TFT-LCD显示系统[J].长春工业大学学报:自然科学版,2012,33(6):681-685.

[5]吴利刚.基于ARM驱动TFT-LCD模块研究与应用[D].汕头:汕头大学,2011.

[6]韦东山.嵌入式linux应用开发完全手册[M].北京:人民邮电出版社,2008:197-221.

(责任编辑:马金发)

Design and Implementation of an Embedded LCD Bare-metal Driver

WANG Yongtao,YU Chuang

(Shenyang Ligong University,Shenyang 110159,China)

Introduces a typical TFT-LCD display system design based on arm processor.The processor uses Samsung S3C2440A and display adopts the WXCAT43-TG6 liquid display module of Donghua.By analyzing the S3C2440 LCD control register parameters,as well as understanding the control timing and logic requires of WXCAT43-TG6 module,achieved the image displayed design by S3C2440 control WXCAT43-TG6.

ARM;S3C2440;TFT-LCD;WXCAT43-TG6

2015-07-01

王永涛(1988—),男,硕士研究生;通讯作者:虞闯(1967—),女,副教授,研究方向:计算机应用。

1003-1251(2016)06-0088-04

TP368

A

猜你喜欢

字段寄存器处理器
图书馆中文图书编目外包数据质量控制分析
STM32和51单片机寄存器映射原理异同分析
Lite寄存器模型的设计与实现
Imagination的ClearCallTM VoIP应用现可支持Cavium的OCTEON® Ⅲ多核处理器
CNMARC304字段和314字段责任附注方式解析
ADI推出新一代SigmaDSP处理器
无正题名文献著录方法评述
关于CNMARC的3--字段改革的必要性与可行性研究
高速数模转换器AD9779/AD9788的应用
一种可重构线性反馈移位寄存器设计