24702010,31(11)计算机工程与设计ComputerEngineeringandDesign
·嵌入式系统工程·
$3C2440的LCD控制器的配置与应用
付虹,刘桂方,李春善,王经
(长春工业大学电气与电子工程学院,吉林长春130012)
摘要:描述了目前嵌入式系统中人机界面的现实与要求,以Samsung公司的32位嵌入式微处理器S3C2440为例,详细说明
了液晶显示控制器的功能及软件配置方法。结合Sharp公司640x480点阵的薄膜晶体管液晶(TFT型)与处理器的接口设计,
给出了可方便移植的程序代码、具体的配置参数以及相关函数。实验结果表明了该接口软件设计的正确性和实用性。
关键词:嵌入式;人机交互界面;S3C2440;薄膜晶体管液晶;液晶显示
中图法分类号:TP368.33文献标识码:A文章编号:1000—7024(2010)11-2470-03
ConfigurationandapplicationofLCDcontrollerbasedon$3C2440
。FUHong,LIUGui-fang,LIChun-shan,WANGJing
(CollegeofElectronicsandElectricalEngineering,ChangchunUniversityofTechnology,Changchun130012,China)
Abstract:Therealityandrequirementsofhuman-machineinterfacesisdescribedinthecurrentembeddedsystem.TakentheSamsung’S32一
bitembeddedmicroprocessor$3C2440asexample,thefunctionofliquidcrystaldisplaycontrollerandsoftwareconfigurationisillustra-
ted.ItisalsocombinedwithSharpCorporationof640x480dot·matrixthin·filmtransistor(TFT-type)liquidcrysmlscreen.On$3C2440
processorLCDcontrollerinterface,aconvenienttransplantprogramcodeandthespecificparametersoftheconfigurationisgiven.The
experimentalresultsshowthatpracticalityandcorrectnessofthedesignofinterfacesoftware.
KeyWOrds:embedded;man..machineinterface;$3C2440;thin··filmtransistor;LCD
0引言
传统的发光二极管、数码管和LED等交互手段已经远远
不能满足现实的需求,而LCD液晶显示以其高像素显示、尺寸
大、重量轻等优势迅速普及,已成为大多数情况下人机交互的
必然选择“1。基于ARM920T内核构架的$3C2440是针对嵌入
式系统的高性能处理器,其最高工作频率为400MHz,处理器
内部集成了LCD(1iquidcrystaldisplay)控制器。
本文讨论了$3C2440中LCD控制器的一般配置方法,并
以Sharp公司640x480TFT型LCD显示输出为实例详细说明
了相关寄存器的配置过程。
1S3C2440的LCD控制器简介
三星公司的$3C2440处理器内置了LCD控制器,其支持
单色\灰度\彩色LCD屏。LCD控制器支持单色,使用基于时
间的抖动算法和帧频控制的方法,可以支持每像素2位(四级
灰度)或每像素4位(16级灰度)的单色LCD显示屏;也支持彩
色LCD接口,可以是每像素8位(256种颜色)和每像素12位
(4096种颜色)的STN型LCD。支持每像素1位、2位、4位和
8位带有调色板的TFT彩色LCD和每像素16位与24位的无
调色板真彩色显示。根据实际屏幕的水平与垂直像素数、数
据界面的数据宽度、界面时间和自刷新速率等,LCD控制器可
以编程支持各种不同要求的显示屏:可以支持很多种不同规
格和工作方式的STN液晶显示器和TFT液晶显示器。①STN
型LCD显示器:支持4bit单扫、4位双扫和8位单扫3种扫描
方式;支持单色、4级灰度和16级灰度屏:支持256色和4096
色彩色STN屏;支持多种屏幕尺寸,应用中典型的屏幕尺寸有
640×480,320x240,160x160和其它最大虚拟屏幕尺寸达
4Mbytes。256色颜色模式下最大虚拟屏幕尺寸:4096x1024,
2048x2048,1024x4096及其它。(g)TFT型LCD显示屏:支持1
位、2位、4位和8位(每像素)调色板TFT显示;支持16位/像素
非调色板真彩色TFT显示;支持24位/像素非调色板真彩色
TFT显示;24位/像素模式下最大支持16M彩色TFT;支持多
种屏幕尺寸典型分辨率为640x480、320x240、160x160及其它
多种规格的LCD。最大虚拟显示达4Mbytes。虚拟显示尺寸
在64K模式下最大为2048x1024像素。
LCD控制器外部接口信号包括:①VFR^^伍,、,SYNC/s丁V:帧同步信号(STN)/垂直同步信号佃F1r)/SEC耵呵信号;帆INE/
HSYNC/CPV:行同步脉冲信号(STN)/水平同步信号(TFT)/
SECTFT信号;③VCLI孔CDHCLK:像素时钟信号(STN肝T)/
SECTFT信号:④VD[23:0】:LCD像素数据输出端口(STN肿T/
SECTFT);垣)VM/VDEN/TP:LCD驱动器交流信号(sTN)/数据
收稿日期:2009.06-15:修订日期:2009-08—31。
作者简介:付虹(1963一),女,辽宁台安人,硕士,教授,研究方向为嵌入式系统、智能控制及信号枪测等;刘桂方(1981一),男,湖北天门
人,硕士研究生,研究方向为嵌入式系统:李春善(1983一),男,吉林长春人,硕士研究生,研究方向为信号处理;王经(1982一),男,山
西平遥人,硕士研究生,研究方向为信号处理。E-mail:fuhong_1963@yahoo.tom.cn
万方数据
付虹,刘桂方,李春善,等:S3C2440的LCD控制器的配置与应用2010,31(11)2471
使能信号(盯T)/SECTFT信号;@LENWSTH:行结束信号
{ITFT)/SECTFT信号;⑦LcDLPWREN:LCD屏电源控制信
号;⑧LCDVF0:SECTFT信号OE;@LCDVFI:SECTFT信号
REV;(固)LCDVF2:SECTFT信号REVBⅢ。
2TFT型LCD控制器配置
三星公司的$3C2440处理器的LCD控制器有17个控制
寄存器,对其相关寄存器进行初始化操作即可正常使用。LCD
的控制寄存器分别为5个可编程控制寄存器:3个帧缓冲起始
地址寄存器;红色查找表寄存器REDLUT,绿色查找表寄存器
GREENLUT:蓝色查找表寄存器BLUELUT;抖动模式寄存器
DITHMODE;临时调色板寄存器TPAL;LCD中断寄存器
ECDINTPND,指示中断请求状态:中断优先寄存器
LCDSRCPND;中断屏蔽寄存器LCDINTMSK,指示哪一个中断
被屏蔽:LPC3600控制寄存器TCONSEL。根据Sharp公司
640x480TFT型LCD的时序要求进行配置,以达到理想的显示
效果。这里我们主要介绍在实际中使用到的几个寄存器。
2.1可编程控制寄存器的配置
LCD控制寄存器一共有5个,分别为:①LCDCONl包括
只读的行计数器状态位LINECNT、确定像素时钟频率用的
CLKVAL:MMODE决定VM信号的触发速率、显示模式选择
位PNRMODE、BPPMODE为单个像素的位数选择、ENVID是
LCD视频输出和逻辑信号使能位。(窑)LCDCON2包括VBPD
(列开始等待周期),指在一帧开始时,垂直同步信号上升沿之
后非活动时钟周期的数目,使用STN型LCD时此位应为0;
LINEVAL决定LCD屏的垂直尺寸:VFPD(歹U结束等待周期)
指在一帧结束时,垂直同步信号下降沿之前非活动时钟周期
的数目。使用STN型LCD时此位应为O:VSPW对非活动行
计数,垂直同步脉冲宽度决定着VSYNC脉冲高电平宽度,使
用STN型LCD时此位应为O。③LCDCON3包括:HBPD(行开
始等待周期)为水平同步信号下降沿之后与有效数据之前非
活动时钟周期数目;HOZVAL决定着LCD屏水平尺寸,HOZ-
VAL必须满足一行有4n个字节的条件。如单色模式下LCD
一行有120个点,但120点是不被支持的,因为这一行是由15
个字节组成,而单色模式下设置成一行128个点是可以支持
的,因为这一行由16(4n)个字节组成,但LCD屏将丢弃多余
的8个点;HFPD(行结束等待周期)为有效数据之后与水平同
步信号上升沿之前非活动时钟周期数目。@LCDCON4包括:
MVAL在STN模式下,如果MMODE=I,MVAL定义VM信
号变化速度;水平同步脉冲宽度(HsPw)决定着HSYNC高电
平脉冲的宽度。(亘)LCDCON5包括:VSn虹us(只读垂真扫描
状态)、HSTATUS(只读水平扫描状态)、BPP24BL(确定24bpp显
示时显存中数据的格式)、FI洲565(确定16bpp显示时输出数
据的格式)、INWCLK(决定VCLK的有效极性)、INVVLINE
(指明VLINEPrtSl州C脉冲的极性)、INVVFRAME(指明
VFRAME/VSYNC脉冲的极性)、INvVD(指明视频数据脉冲的
极性)、INWDEN(指明VDEN信号的极性)、INVPWI也N(指明
PWREN信号的极性)、INVLEND(指明LEND信号的极性)、
PWREN(LCDPWREN输出信号使能位)、ENLEND(LEND输
出信号使能位)、BSWP(字节交换控制位)、HwswP(半字交换
控制位)∞】。
2.2帧缓冲起始地址寄存器配置
帧缓冲起始地址寄存器共3个:(£)LCDSADDRl包括:
LCDBANK,它指明在系统内存中视频缓冲区的位置,
LCDBANK赋值后不可轻易改变,并且LCD帧缓冲地址应保
证在4MB的连续区域内,以确保在移动观察窗口时
LCDBANK的值不被改变,因此在使用函数mallocO时务必要
小心;LCDBASEU,对于双扫描LCD用来指示帧缓冲区或上帧
缓冲区的开始地址,对单扫描LCD用来指示帧缓冲区的开始
地址(④LCDSADDR2包括:LCDBASEL,对于双扫描LCD该位
用来指示下帧存储区的开始地址,对于单扫描LCD该位用来
指示帧存储区的末地址。(要)LCDSADDR3包括:OFFSIZE,用
来指定虚拟屏幕起始点离显示存储区起始点的水平距离;
PAGEWIDlH,用来指定虚拟屏的水平宽度。
3软件设置
$3C2440处理器与Sharp公司640x480TFT型LCD搭配下的
软件设计包括寄存器的初始化及相关应用程序的设计两部分。
3.1初始化函数
voidledinit(void)肌CD初始化函数
{rLCDCONl=(CLKVALUSED 5)I(12<<1)lO;
//初始化控制寄存器l
rLCDCON2=(:VBPD<<24)I(LINEVAL_TFT<<14)I(VFPD<<
6)l(vsPw);
//初始化控制寄存器2
rLCDCON3=(IHBPD<<19)I(HOZVALtl_TFT<<8)I(HFPD);
初始化控制寄存器3
rLCDCON4=(MVAL<<8)I(HSPW);//初始化控制寄存器4
rLCDCON5=(1“11)1l(1“10)I(1<<9)I(1“8)I(O“7)I(O“
6)1(1<<3)I(BSwP<<1)I(HWSWP);//初始化控制寄存器5
rLCDSADDRl=I:(LCDFRAMEBUFFER>>22)<<21)IM5D
(LCDFRAMEBUFFER>>1):
//初始化帧缓冲起始地址寄存器l
rLCDSADDR2=M5D(((int32)LCDFRAMEBUFFER+(SCR
)(_TFT+scR—yJ''FT‘4))>>l+1);∥初始化帧缓冲起始地址寄
存器2
rLCDSADDR3=(((0)<<1I)I(SCR_X_TFT/1));//初始化帧缓
冲起始地址寄存器3
rLCDINTMSKJ=(3);//LCD中断屏蔽器,中断屏蔽
rT队L=o;/,临时调色板寄存器,设置无效
rLCDCONII=I;//修改位ENVID=I,视频输出使能
)
为了提高程序的可移植性,本文在程序设计的时候,对相
关参数用符号常量表示。这样在需要更换LCD时只需要修
改符号常量的值即可,极大地方便了程序的移植。下面以Sharp
公司640×480TFT型LCD为例说明符号常量的设置以及编制
的相关函数。
3.2T兀-LcD模块的时序要求
本显示模块LQ080V3DG01是Sharp公司的TFT-LCD器
万方数据
24722010,31(11)计算机工程与设计ComputerEngineeringandDesign
Vsync
ENAB
3.3编制的相关函数
函数M5DO为获取变量(字长32个二进制位)的低21个二
进制位。函数由一条宏定义实现:#defineM5D(nX(n)&0xl髓D。
函数PutPixel0功能为在640x480TI吓型LCD上指定位置
的单个像素显示为指定数据的颜色。
函数定义如下:
staticvoidPutPixel(int32xx.int32yy,intl6ee)
{if(xx ferl6BitTfi[(yy)][(xx)】=cc;}
指针fi''ameBufferl6BitTfl指向帧存储区在内存中的开始
地址,传输颜色值的操作因此变为给指针数组赋值操作了。利
用如下语句实现:
frameBufferl6BitTR=(intl6(‘)[SCRXTFT])LCDFRAM:
EBUFFER;
函数Paint_Bmp0功能为在LCD屏幕上指定坐标点画一
个指定大小的图形,图形数据由函数参数bmp[]数组传递。函
数定义如下:
staticvoidPaint_Bmp(intx0,inty0,inth,intl,unsignedchar
bmp[]){
intxa,y;.
int32c;
intP=0:
for(y=0;Y for(xa=0;xa C=bmp”l】I(bmp[p】“8);if(((xO+xa) YTFr))
l旨ameBufferl6BitTR[y0+y][x0+xa]=c:
P=P+2;
))}
4实验与结果分析
根据上述分析,将LCD初始化函数lcdmit0中的代码写
入bootloader的LCDINIT.C文件中编译,并在bootloader运行
时调用PaintBmp0函数,即可进行友好的人机交互。
本文实验以昆山市华恒焊接设备技术有限责任公司的焊
接平台的开发为出发点,结合实际需要设计了一套软件系统。
本系统中所用到的图片数组为24位位图格式,输出显示采用
本文3.3节介绍的PaintBmp()函数,相关寄存器的配置利用本
文方法即可。为该公司设计的系统启动的画面如图2所示。
图2华恒公司焊接系统启动画面
(下转第2553页)
万方数据
黄璞,陈才扣:基于局部人脸图像的ICA人脸识别方法2010,31(11)2553
像作为训练样本,将每人剩余的26-n幅图像作为测试样本,同
时我们将分块大d,(mP局部人脸图像大小)取为(c=25,d=20),利
用最近邻分类器进行分类,可得本文方法与ICA、PCA的识别
率比较结果如表3所示。
样本数本文方法ICAPCA
l’l67.67(6x6)l58.97(35x2000)I57.37(1t9x2000)
l=785.53(8x8)81.40(74x2000)l70.88(147x2000)
参考文献:
f1】曹丽,陈才扣.最大散度差无监督鉴别特征抽取与人脸识别[J】i
计算机应用,2008,28(增刊):182.184.
[2】KirbyM,SirovichL.ApplicationoftheKLprocedureforthe
characterizationofhumanfaces[J].IEEETransactionsonPat-
ternAnalysisandMachineIntelligence,1990,12(1):103-108.
【3]BartlettMS,MovellanJKs白nowsl【iTJ.Facerecognitionbyin-
dependentcomponentanalysis[J].IEEETransactionsonNeural
Networks,2002,13(6):1450—1464.
[4JDraperBA,BackILBartlettMS,eta1.Recognizingfaceswith
PCAandICA【J】.ComputerVisionandImageUnderstanding,
2003,91(1/2):115·137.
[5】LiuCJ.Enhancedindependentcomponentanalysisanditsappli—
cationtocontentbasedfaceimagerecognition[J].IEEETransae-
tionsonNeuralNetworks,2003,14(4):919-928.
【6】徐勇,张重阳,杨靖宇.主分量特征与独立分量特征的人脸识别
实验【J】.计算机工程与设计,2005,26(5):1155-1157.
【7】GaoQ,ZhangLeidZhangDavid.Sequentialrow-columnindepen—
dentcomponentanalysisforfacerecognition[J】.Neuroeompu·
ting,2009,72(4):1152—1159.
【8】姚雪梅,古丽拉,阿东别克.基于ICA和SVIVl的局部人脸识别
方法【J】.现代计算机,2005,12:15-16.
[9】叶伊松,武妍.基于1CA和NFL分类的局部人脸识别方法忉.
中国图象图形学报,2005,10(4):468-472.
【10】JongsunKim,JunehoYi.Robustfacerecognitionbasedonpart-
basedlocalizedbasisimages[C].ICIAP,2005,3617:1026—1034.
【ll】杨万扣,王建国,任明武,等.基于分块独立成分分析的人脸识别
【J】计算机工程与应用,2008。44(1):42-44.
【12】AapoHyvarinen.Fastandrobustfixed-pointalgorithmforinde-
pendentcomponentanalysis【J】.IEEETramonNeuralNet-
works。1999.10(3):624.634.
(上接第2472页)
5结束语
详细分析了S3C2440的LCD控制器和Sharp公司640x
480TFT型LCD屏幕搭配下的相关寄存器设置;介绍了
$3C2440与其它类型的LCD搭配下的设置方式;详细说明了
几个方便移植引用的基本函数,给S3C2440的LCD控制器的
使用带来了便利;给出了具体可行的实例,并用实践验证了此
方案的可行性。事实证明了相关寄存器配置的正确性以及函
数运行的稳定性,方便了该芯片LCD显示方面的程序开发。
参考文献:
【l】万永波,张根宝,田泽,等.基于ARM的LCD控制器的配置与
编程应用【J】.计算机工程与设计,2007,28(5):1196一1198.
SAMSUNG公司.S3C2440AEN.pdf[Z].
周立功,陈明计,陈渝.ARM嵌入式Linux系统构建与驱动开
发范例【M】.jB京:北京航空航天大学出版社,2006.
孙琼.嵌入式Linux应用程序开发详解【M】.北京:人民邮电出
版社2006.
田泽.嵌入式系统开发与应用[M】.jE京:北京航空航天大学出
版社,2005.
周立功.ARM嵌入式系统基础教程[晴】.北京:北京航空航天大
学出版社,2005.
马忠梅,马广云,田泽,等.ARM嵌入式处理器结构与应用基础
D叫.北京:北京航空航天大学出版社,2002.
刘淼.嵌入式系统接口设计与Linux驱动程序开发【M】.北京:
北京航空航天大学出版社,2006.
脚跚
Ⅲ
吲
旧
忉
网
万方数据
|
|