目前,掌上电脑CPU中比较流行的有MIPS系列、SuperH系列、DragonBall系列以及ARM系列。在操作系统领域,除了部分采用Linux和自行开发的操作系统外,大部分产品采用Palm OS、Windows CE和EPOC操作系统。
为了在掌上电脑这一嵌入式系统的主要应用领域中占有一席之地,清华大学自动化系和深圳翔龙公司决定开发具有民族自主知识产权的掌上电脑。这就需要选好和开发出自己的硬件平台;同时还要开发自己的嵌入式Linux操作系统;在硬件平台和操作系统之上,再开发各种具体的应用程序,以满足特定用户的需求。本文介绍的液晶显示器的设计是整个系统设计的重要组成部分。
1 硬件电路组成
基于SA1110微处理器的掌上电脑液晶显示器的硬件电路如图1所示。主要由三部分组成:LCD控制器、专用集成电路芯片CPLD和液晶显示屏LCD。
2 SA1110的 LCD控制器
SA1110芯片内部集成了LCD控制器,该控制器有三种显示类型
·无源彩色模式:支持3375种彩色每帧允许显示256种彩色;
·有源彩色模式:支持高达65536种彩色(16位);
·无源黑白模式: 支持15级灰度。
LCD控制器支持高达1024×1024象素的显屏。然而在帧存储器中,由于存储器的总线宽度、象素编码数据的大小限制了LCD能驱动的显示屏幕的大小。LCD控制器也支持单屏和双屏显示。象素编码数据存储在外部存储器中,LCD的双通道DMA控制器可根据具体情况把数据装入一个5单元(32位长)的队列缓冲器中。DMA控制器的一个通道用于单屏显示,另一个用于双屏显示。
在帧存储器中,存储着象素编码数据。LCD控制器将其用作指针去索引一个256单元12位宽的调色板。黑白调色板4位宽,彩色调色板12位宽。来自帧存储器的象素编码数据(4位)寻址黑白调色板的顶部16单元;8位象素编码数据可访问调色板中的256单元的任意一个。在无源彩色12位象素模式下,彩色象素数据旁路掉彩色调色板并且直接送到LCD的抖动逻辑电路。在有源彩色16位象素模式下,彩色象素数据不仅旁路掉彩色调色板,而且旁路掉LCD 的抖动逻辑电路,并直接送到LCD的数据管脚。一旦4位或8位的象素编码数据选定了一个调色板单元,在这个单元中被编码的值就被传送到抖动逻辑电路。抖动逻辑电路使用一种空基和时基算法产生输出到屏幕的象素数据。抖动逻辑促使每一个象素以不同的速率在每一帧上关断,从而给黑白屏产生15级灰度,为彩色屏幕的红、绿、蓝三基色中的每一种都产生15级色度,总计为3375种彩色(每帧可获得256种彩色)。来自抖动逻辑电路的输出数据在被输出到LCD引脚和象素时钟驱动显示器之前,被放置在一个9单元的引脚数据队列缓冲区内。
根据所使用的显示屏类型,可将LCD控制器编程为4位、8位或16位的象素数据引脚。单屏黑白显示器在每个象素时钟周期内既可以采用4位也可以采用8位的数据引脚去输出4位或8位的象素。单屏彩色显示器可以采用8位的数据引脚在每个象素时钟周期内去输出2~2/3位的象素(8引脚/3种色彩/每个象素)。LCD控制器也支持双屏显示。双屏显示促使LCD控制器数据行被分成两组,一组驱动上半屏,另一组驱动下半屏。
在此方案中选择了无源彩色模式。在此模式下,SA1110 LCD控制器的控制过程如图2所示。
CPLD PZ3128是Philips公司的专用集成芯片。由于手持设备的液晶显示屏种类繁多,各厂家的标准不一致使SA1110的LCD控制器与SHARP公司的3.9寸TFT有源型彩色液晶显示器在数据格式及显示时序上无法匹配。因此,对CPLD PZ3128编程可为不同数据格式的数据接口进行映射为不同类型的LCD屏配置专用的ASIC芯片。