1. 引言
S
3C
2440A
是三星公司推出的16/32位RISC微处理器,采用ARM920t的内核,0.13 μm的CMOS标准宏单元和存储器单元,其最高工作频率为400 MHz。具有功耗低、性能高、全静态设计等优点。实现了MMU、AMBA BUS和Harvard高速缓冲体系结构。这一结构具有独立的16KB指令Cache和16KB数据Cache,且每个都是由具有8字长的行组成,并提供了一套完整的通用系统外设,从而减少整体系统成本和无需配置额外的组件[1] [2] 。
随着技术的进步,LCD作为显示器件在各种嵌入式系统中得到越来越广泛的应用。LCD不仅能为人机界面提供高质量的画面显示,而且能提供更直观、方便的交互性输入。LQ084V3DG01是Sharp公司生产的8.4''透射式彩色有源矩阵液晶显示模块,其接口为TTL电平,采用33脚软性PCB封装,分辨率为640 × 480 [3] 。
本文介绍了S
3C
2440A
LCD控制器和LQ084V3DG01的接口时序和逻辑要求,着重研究了S
3C
2440A
与LQ084V3DG01的硬件接口电路和各种寄存器的设置,完成了字符、清屏、图像显示灯程序的编写。软件采用C语言编写,具有较强的可移植性。运行结果表明,系统工作稳定,显示效果良好。
2. 系统硬件设计
2.1. 接口电路设计
S
3C
2440A
对于片内的各个部件采用了独立的电源供给方式:内核采用1.3 V供电;I/O单元采用3.3 V供电;存储单元采用3.3V供电[4] [5] 。LQ084V3DG01供电电压也为3.3 V,因此S
3C
2440A
的I/O口可以直接和LQ084V3DG01相连,有效简化了硬件系统的设计。LQ084V3DG01共有32路信号与S
3C
2440A
相连,其中18路数据信号(红、绿、蓝各6路),4路控制信号,其余为电源和地,具体硬件电路如图1所示。
2.2. S
3C
2440A
LCD控制器
S
3C
2440A
处理器内置了LCD控制器,其功能能将显示在LCD上的数据从系统内部的数据缓冲区通过逻辑单元传送到外部的LCD驱动器中。支持每像素1位、2位、4位和8位带有调色板的TFT LCD和每像素16位与24位的无调色板真彩色显示[6] [7] 。
LCD控制器主要由REGBANK、LCDCDMA两大部分组成,用于产生必要的控制信号和传输数据信号。REGBANK有17个可编程寄存器组和256 × 16的调色板存储器,用来设定LCD控制器。LCDCDMA是一个专用的DMA (Direct Memory Access),自动从帧存储器传输视频数据到LCD控制器,视频数据可以不经CPU处理直接显示在屏上。TIMEGEN由可编程逻辑器件组成,产生VSYNC、HSYNC、VCLK、VDEN信号等,以支持不同的LCD驱动器接口时序和速率[8] [9] 。框图如图2

Figure 1. Interface of S
3C
2440A
to LQ084V3DG01
图1. S
3C
2440A
与LQ084V3DG01接口电路
所示。
2.3. TFT LCD接口时序
S
3C
2440A
有两种访问LQ084V3DG01的方式:直接访问方式和间接访问方式。由于S
3C
2440A
相对于液晶模块控制器为高速器件,直接访问方式可能会因为时序上不匹配而无法正常运行,因此接口设计采用间接控制方式,即模拟液晶模块时序的方式与其通讯[10] 。
LQ084V3DG01采用18位数字RGB接口,该接口是为TFT LCD模组提供高品质显示而设计的,可以高速、低功耗地完成各种静态和动态图像显示。VSYNC、HSYNC、VCLK、VDEN为控制信号,用于帧、行、像素的数据传输[11] 。LQ084V3DG01液晶模块RGB接口时序示意图如图3所示。
3. 系统软件设计
S
3C
2440A
的软件设计是在ADS (ARM Developer Suite)开发工具下进行的。ADS由命令行开发工具、ARM实时库、GUI开发环境、实用程序和支持软件组成[12] 。用户可以为ARM系列的RISC处理器编写和调试自己的开发应用程序。

Figure 2. Block diagram of S
3C
2440A
LCD controller
图2. S
3C
2440A
LCD控制器框图

Figure 3. Timing diagram of RGB interface
图3. RGB接口示意图
3.1. LCD参数设置
S
3C
2440A
的LCD控制寄存器主要有:LCDCON1~5。LCDCON1对LCD的类型、数据位数、是否需要VDEN输出及VCLK进行设置;LCDCON2对VBPD、VFPD、VSPW进行设置;LCDCON3及LCDCON4对HBPD、HFPD、HSPW进行设置;LCDCON5对VCLK、HSYNC、VSYNC的极性进行设置[13] 。以下为初始化程序部分源代码:


为了保证程序的可移植性,在编写程序时对相关参数用符号常量表示,这样如果需要更换LCD,只需修改符号常量的值即可。
3.2. 液晶清屏程序
系统开机、翻页、复位时,液晶屏要进行清屏,清屏是进行字符、图像显示等工作的前提。清屏程序框图如图4所示。

Figure 4. Flow chart of screen clearing program
图4. 清屏程序流程图
液晶屏分辨率为640 × 480,程序中定义为:

4. 显示效果
系统在设计完硬件接口和软件驱动后,还要配合相应的显示程序才能将需要的信息显示在屏幕上,如各种颜色的汉字、英文、数字及图像等。字符的显示程序与清屏程序编程思路基本相同,不再累述,显示效果如图5所示。
图像显示涉及分辨率变换,系统选用的LQ084V3DG01分辨率为640 × 480,而数字图像分辨率通常较高,为了能显示整幅图像,只能对输入的数字图像进行重抽样,必要时将图像边缘裁减掉[14] ,显示效果如图6所示。
5. 结束语
采用RGB接口的TFT LCD与高性能的32位S
3C
2440A
构成了显示系统。根据设计的硬件接口电路,针对TFT LCD的接口时序和显示要求,完成了软件的编写、编译和加载。本系统已应用到实际工程中,达到了显示稳定、色彩丰富、人机界面友好的显示效果。
基金项目
吉林省青年科研基金(No: 20150520102JH)。