目前,掌上电脑CPU中比较流行的有MIPS系列、SuperH系列、DragonBall系列以及ARM系列。在操作系统领域,除了部分采用Linux和自行开发的操作系统外,大部分产品采用PalmOS、WindowsCE和EPOC操作系统。
为了在掌上电脑这一嵌入式系统的主要应用领域中占有一席之地,清华大学自动化系和深圳翔龙公司决定开发具有民族自主知识产权的掌上电脑。这就需要选好和开发出自己的硬件平台;同时还要开发自己的嵌入式Linux操作系统;在硬件平台和操作系统之上,再开发各种具体的应用程序,以满足特定用户的需求。本文介绍的液晶显示器的设计是整个系统设计的重要组成部分。
1硬件电路组成
基于SA1110微处理器的掌上电脑液晶显示器的硬件电路如图1所示。主要由三部分组成:LCD控制器、专用集成电路芯片CPLD和液晶显示屏LCD。
2SA1110的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控制器数据行被分成两组,一组驱动上半屏,另一组驱动下半屏。
在此方案中选择了无源彩色模式。在此模式下,SA1110LCD控制器的控制过程如图2所示。
CPLDPZ3128是Philips公司的专用集成芯片。由于手持设备的液晶显示屏种类繁多,各厂家的标准不一致使SA1110的LCD控制器与SHARP公司的3.9寸TFT有源型彩色液晶显示器在数据格式及显示时序上无法匹配。因此,对CPLDPZ3128编程可为不同数据格式的数据接口进行映射为不同类型的LCD屏配置专用的ASIC芯片。
SA1110LCD控制器由以下引脚组成:
·LDD0~7:7位数据线用于4位和8位显示模式,同时也是16位TFT方式的低8位;
·GPIO2~9:当采用的液晶模块是16位TFT方式时,构成数据线的高8位;
·L_PCLK:点时钟(Pixelclock),用于把每一点的数据送入移位寄存器;
·L_LCLK:行时钟(Lineclock),用于指示一行数据由移位寄存器到显示驱动芯片传输完毕,并使得行指针加1。在16位TFT方式下,就是水平同步信号;
·L_FCLK:帧时钟(Frameclock),用于指示一帧图像的开始,同时把行指针置于显示屏的第一行。在16位TFT方式下,就是垂直同步信号;
·L_BIAS:在16位TFT方式下,输出允许信号,用于指示数据信号在时钟信号的同步下,锁存到引脚。
为了显示一帧图像,SA1110LCD控制器首先在RAM中开辟一片缓冲区作为帧缓冲(FRAMEBUFFER)。存入要显示的图像数据,然后让LCD控制器的DMA地址寄存器指向FRAMEBUFFER的起始地址,读出FRAMEBUFFER中的数据到输入先入先出队列(INPUTFIFO)。由于在本设计中采用16位方式,无需对帧缓冲中的数据进行解码,所以LCD控制器不处理直接把数据送到输出先入先出队列(OUTPUTFIFO)。OUTPUTFIFO再将数据通过引脚送到CPLD以驱动液晶显示。由于SA1110的LCD控制器拥有自己独立的双通道DMA,同时选用了高性能SDRAM,能满足显示带宽的需求。
3LCD模块
随着价格的下降,液晶显示由于低功耗、无辐射、轻便而广泛用于各种掌上设备。特别是TFT-LCD,具有高分辨率、宽视角、高对比度等优点,在高档掌上电脑中应用较多。
作为SOC芯片的SA1110中本身就带有LCD控制器,支持4、8、12和16位格式的多种型号的单色和彩色LCD,给开发者的选择带来很大方便。根据用户的要求,考虑到实际的显示效果,本方案选择了SHARP的3.9寸TFT有源型彩色液晶显示器,具体型号为:LQ039Q2DS54。该显示模块是彩色反射型和有源矩阵LCD模块,由TFT彩色LCD屏、驱动芯片、FPC引线、前置灯光、触摸屏及后封板组成。点阵形式为320×3×240,可以显示图形和文字,最多可以显示262144种颜色。
液晶模块需要10个等级的标准模拟脉冲电压V0~V9,用于LCD模块内部产生灰度显示时的参考。这些电压直接影响LCD显示的色彩和灰度的准确性,对其数值要求精度较高。同时,它们是脉冲信号,要求边沿陡,以保证显示点清晰。图3为V0~V9的波形示意图,V0~V9的幅度参数要求如表1。
表1中电压信号的产生先用高精度电阻构成阵列,用电阻分压法产生基准电压,再由二选一开关按照LCD显示的帧频率进行高速切换,在输出端就可得到所需的标准模拟脉冲电压。其中,二选一开关选用LMC6009,该部分电路如图4所示。
LQ039Q2DS54与众多的TFT一样,每一象素采用18位的编码方式。红、绿、蓝每一种基色6位,即RGB666。但SA1110的LCD控制器支持16位方式,因此必须把红、蓝的最低位接地,从而形成5位红、6位绿、5位蓝的RGB565格式。这样产生的色差非常小。
4触摸屏
通常,供掌上设备使用的触摸屏一般都与LCD液晶屏集成安装在一起,紧贴在LCD的表面。SHARP3.9寸TFTLCD(LQ039Q2DS54)表面装有一个电阻式触摸屏,其基本结构如图5所示,分为X和Y上下两个极板。
通过电阻式触摸屏,可以测得接触点的位置和压力。当需要测试X坐标时,首先给X极板的两端加偏置电压,然后测试tspy、tsmy之一或全部。它们相当于电位器的滑动端,其测得的电压值正比于触点的X坐标。Y坐标的测试同理,只是X极板和Y极板互换而已。SHARP3.9寸TFTLCD(LQ039Q2DS54)表面安装的电阻式触摸屏的特性参数如下:
·输入电压:5V;
·X1和X2之间的电阻:320Ω;
·Y1和Y2之间的电阻:580Ω;
·X或Y方向的行线性:1.5%;
·绝缘电阻大于:20MΩ;
·能检测到的最小压力:24g。
本设计中所采用的Philips公司的UCB1300不仅可以作为MODEM和音频模拟前端芯片,而且它的内部集成有触摸屏控制器,可以一片多用,便于在掌上系统中使用。触摸屏控制器的功能包括:对触摸屏的两层极板间施加偏置电压,当有点击动作时,产生中断信号;同时对点击处的X和Y方向的模拟电压信号进行数字量化,得到点击位置数据,保存在内部寄存器中;再通过MCP接口读到微处理器中。UCB1300与触摸屏控制器相关的特征有:
(1)完整的四线电阻式(压感式)触摸屏接口电路,分别连接触摸屏的4条信号线tspx、tsmx、tspy和tsmy,可以实现位置、压力和极板电阻的测量。
(2)带有内部跟踪保持电路以及模拟多路开关的10位连续逼近型ADC,用于触摸屏触点数据的读出和外电路4个模拟电压的监视,其中外电路4个模拟电压监视用于电源管理。
(3)内部带有参考电压源,为10位ADC提供基准电压和虚拟地参考。这样就可以不受电源电压和温度变化的影响。
(4)4线高速串行接口数据总线,实现与主处理器SA1110的MCP同步串口通信,有严格的数据帧定义。
(5)触摸屏的各种工作模式由UCB1300的内部控制寄存器设置,而这些控制寄存器由SA1110通过MCP同步串口来读写。
(6)因为触摸屏与LCD的近耦合,来自LCD屏的大的尖峰干扰信号会影响触摸屏的工作,因此触摸屏控制器内部有4个低通滤波器,用于降低来自LCD的高频干扰。
尽管目前国内市场上的各种PDA和掌上电脑产品比较多,某些国内的品牌也很畅销,但是在产品设计和制造上,都是靠台湾地区等厂商的OEM,真正自主研究开发的硬件平台几乎为零。因此,本项目中掌上电脑硬件平台系统的研制成功,特别是基于IntelStrongARMSA1110高性能CPU的样机,在国内仍处于领先地位,并且为同组人员开发嵌入式操作系统和各种应用程序提供了硬件环境。