当前位置:首页 > 嵌入式 > 嵌入式软件
[导读]一种基于S3C2410A的液晶屏接口设计

目前对液晶屏的控制显示多采用单片机、FPGA或CPLD作为控制器,编制程序多采用汇编语言或C51程序。本文以控制器和显示屏集成一体的小型号LCM19264图形点阵式液晶显示器为例,提出并实现了一种新型的基于S3C2410A CPU和KS0107控制器的嵌入式液晶屏接口系统,适用于POS机等许多应用领域,具有较高的应用价值。

1 ARM微处理器及开发环境

1.1 ARM核心板采用S3C2410A

嵌入式系统的硬件核心是嵌入式微处理器,ARM处理器是目前公认的业界领先的32位嵌入式RISC微处理器,它具有体系结构可扩展,功耗低,成本低和支持处理实时多任务等特点,成为设计嵌入式系统时32位RISC芯片的首选,也是许多行业嵌入式解决方案的RISC芯片标准[1]。

16/32位RISC处理器S3C2410A 采用了ARM920T内核,0.18um工艺的CMOS标准宏单元和存储器单元[2]。它的低功耗、精简和出色的全静态设计特别适用于对成本和功耗敏感的应用。它一方面具有处理器的所有优点:低功耗、高性能;同时又具有非常丰富的片上资源, 非常适合嵌入式产品的开发。

1.2   ARM嵌入式系统的开发环境

开发中嵌入式操作系统选用标准的LINUX2.4内核版本。为了满足嵌入式核心板的系统性能要求,需要对内核进行一定程度的裁减修改,对某些功能模块进行合理的配置。其中对指定的端口地址进行映射是必不可少的。采用专用的FPGA下载电缆即可将编译通过的Linux内核下载移植到核心板的 S3C2410A中。内核的启动Bootloader使用了vivi。这里的交叉编译器采用的是Arm-Linux-Toolchains;而 S3C2410A整个根目录则使用了可读写的yaffs文件系统[4]。开发调试中可通过串口或网口来实现宿主机对目标板的控制使用。

2 基于S3C2410A的液晶屏接口设计

2.1 S3C2410A与KS0107的接口控制

S3C2410A的存储系统地址空间总共由8个存储器Bank构成,每个Bank 128M字节,总共1G字节/8Banks。6个是ROM、SRAM等类型存储器Bank。剩下的2个可以作为ROM、SRAM、SDRAM等存储器 Bank。除Bank0只能是16/32位宽之外,其他Bank都具有可编程的访问大小,可以是8/16/32位宽。前7个存储器Bank有固定的起始地址,最后一个Bank的起始地址是可调整的,最后两个Bank的大小是可编程的,且所有Bank的访问周期都是可编程的。Bank0 的数据总线(nGCS0)必须首先设置成16位或32位的。因为Bank0通常作为引导ROM区(映射到地址0x0000-0000)。Bank6和 Bank7通常分给SDRAM.。S3C2410A接16/32位或多片8位存储器时地址线需要错位连接。

系统选用LCM19264系列液晶模块,LCM19264点阵液晶屏单色液晶模块带有KS0107控制器,点阵形式为192 x 64,8位双向数据总线,可以显示图形和文字。3个控制芯片,管理8页(每页为8行像素)和192列(每个芯片各自控制64列)的图形屏幕,因此构成了 192列,64行的像素矩阵,即所能使用的显示范围。

LCM19264型图形点阵液晶显示模块与S3C2410A CPU的连接方式采用直接访问方式。直接访问方式是将液晶显示模块的接口作为存储器或I/O设备直接挂在S3C2410A总线上,S3C2410A以访问存储器或I/O设备的方式操作液晶显示模块的工作。KS0107控制器是应用于S3C2410A系统与液晶模块之间的控制芯片,它接收来自 S3C2410A系统的指令与数据,并产生相应的时序及数据控制模块的显示。这样可以大大缓解S3C2410A CPU的控制输出,使用更加灵活,因此该解决方案具有很强的通用性。

对于液晶显示屏的数据接口,因为S3C2410A与液晶显示屏均由3.3V供电,可以经缓冲后将二者数据线相连,这样S3C2410A就能将ROM或RAM中的数据直接送入KS0107控制器的缓存中以便显示。

 

液晶显示屏的控制信号由S3C2410A地址线的第6位、第7位和第8位经过74HC138译码产生。因此液晶屏控制器的数据端口、控制端口和状态端口具有不同的地址。S3C2410A对液晶屏的控制信号是由其自身的数据口来充当的,即控制信号作为数据的形式发送到液晶屏控制器KS0107,再由 KS0107按照固定时序完成对液晶显示屏的控制。实际上完全可以将液晶屏的读写由一个端口地址来实现,此时译码输出端该管脚为高时,通过非门输出的低电平来做为选通液晶显示屏的读信号;当读管脚为低时,则直接选通液晶显示屏的写管脚。表1是LCM192644的主要引脚功能。

表1  LCM192644芯片引脚说明

[!--empirenews.page--]

VO通过电位器R来进行液晶屏对比度调节,VEE负压也通过电位器进行改变。

液晶显示模块的速度相对于S3C24510A CPU较慢,中间用到三片SN74ALS573B锁存数据和控制信息。S3C2410A CPU选取其低8位数据线来做为数据、命令的发送端,以及液晶屏数据、状态的读入端。这几类信息均通过SN74ALS573B来连接到LCM19264液晶屏上。

2.2软件设计

2.2.1设计分析

LCM192×64型液晶显示器模块与S3C2410A CPU模块的连接采用直接控制方式,其特点是电路简单,控制时序由软件实现,可以实现高速ARM CPU与液晶显示模块的接口。

液晶屏的驱动控制程序软件包括数据传送、设置X/Y地址、液晶显示控制等程序。

数据传送包括初始化和将显示数据发送到液晶屏的显示存储器中。

设置X/Y地址包括设置显示起始行、设置页面地址(即X地址)、设置Y地址。

液晶显示控制等程序包括显示开关控制、读取液晶屏状态以及读取显示数据等。

 

因此,要使液晶屏正常显示,主要实现两个功能,一个是向与写指令和写数据相对应的I/O端口地址,写入控制液晶屏工作的指令代码和所要显示的内容的编码。另一个就是要用程序来控制实现KS0107的读写时序[5],尤其是控制管脚E的高低电平持续时间产生液晶显示所需的写时序。KS0107写操作的工作时序如图3。

借助坐标设置指令可以对所要显示的图形进行准确的定位。KS0107有两个常用指令用于设置光标的X(行)方向坐标、Y(列)方向坐标。光标出现的位置由0XB8(0~3比特位有效)和0x40(0~ 6比特位有效)分别加上一定的地址偏移量决定的。原则上在写数据,显示一行图形的过程中,X(行)坐标保持不变,Y(列)坐标会自动循环加1,这样对于静态图形的显示,由于只需考虑行坐标,就很方便,但如果要动态显示各种文字图形,它的编程效率就不是很高。最好对X,Y向的地址偏移量都进行人为的设置,就可以精确控制图像出现的位置。

[0XB8+(disp_x(屏幕坐标))]→X(行)向的物理坐标

[0XB8+(disp_y(屏幕坐标))]→Y(列)向的物理坐标

disp_x表示X(行)向的地址偏移量,取值范围为0~7,也即代表显示屏上的8行;disp_y表示Y(列)向的地址偏移量,取值范围为0~63,也即代表显示屏上的64列;当然在开始显示图形之前,由0X3F打开显示,此外还要存入所要显示图形的编码。

[!--empirenews.page--]

2.2.2LCM 硬件层原子编程

2.2.2.1LCM初始化

初始化 LCM 实现为后续写入显示数据做准备。

 

写整个 LCD 内部显示存储器的内容为 0x00,这样整个 LCD 显示空白的屏幕以达到清屏效果。

2.2.2.2    读LCM状态

每次读写LCM之前,都需要判断LCM的上作状态,以便能够得到期望的结果。读LCM状态,就是读LCM命令状态寄存器,其最高位为‘1’,表示了 LCM的出于忙状态,不能接受任何命令或者数据的写入。在从端口读到数据中,最高位表示了 LCM 的工作状态,据此位即可获得LCM状态。

2.2.2.3    写命令到 LCM

将一个命令字写到指定的控制芯片的命令寄存器中(对应一个控制端口地址)。

设置页地址即X地址时,DDRAM中8行为一页,LCM19264液晶模块共计64行即8页,由最低3位地址来选择0~7页,读写数据对页地址没有影响,页地址由本指令或RST信号改变,复位后页地址为0。

2.2.2.4    写数据到 LCM

将一个数据(就是显示的数据)写到指定控制芯片的 RAM 中。Y地址计算器具有自动加1功能,在每次读/写数据后自动加1,所以,在连续进行读/写数据时,不必每次都设置一次Y地址计数器。

写LCM数据到DDRAM中,数据在E信号下降沿,瞬时打入LCM中。

[!--empirenews.page--]

2.2.2.5    读 RAM 数据

从指定控制器的规定地址 RAM 中,读出一个相应数据。读LCM数据可以从DDRAM中读出某个位置的内容到数据总线DB7~DB0,此时Y地址指针自动加1。

3  结语

本文创新点在于:通过软、硬件设计相结合的方式,提出的LCM19264液晶显示模块接口设计,结合特定的应用场合,搭建了以S3C2410A和 KS0107控制器为基础的嵌入式液晶屏开发底层平台。成功解决了液晶模块与ARM9 CPU的读写和控制等问题,大大提高了显示效果和控制灵活性,为ARM嵌入式系统液晶显示平台的构建提供了一种新的参考。该开发模式可以有效地运用到以 POS机为主的嵌入式应用场合,在其他显示场合稍作修改,即可使用,因此,具有很强的移植性。

参考文献:
[1] 周立功. ARM微控制器基础与实战[M]. 北京:北京航空航天大学出版社,2005.8
[2] S3C2410 Data sheet
[3] LCM Product Specifications—LCM 192644-01.
[4] 杨于镭. 基于ARM的Sam sung S3C44BOX触摸屏接口设计[J].计算机应用,2006,9:2264—2266
[5]周广禄,王翠华,孙鹏娇等. 基于AVS-M和DM642视频服务器的研究,微计算机信息,2006,10-2:46-48
 

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭