引言
随着TFT彩色液晶技术不断发展成熟以及人们对人机界面感官性需求的不断提高,越来越多的产品选用带触摸的TFT彩屏作为人机界面。本文针对RA8875的性能,提出了一种折中的解决方法。
1 RA8875特性分析
RA8875[1]是瑞佑公司推出的256/64K色TFTLCD控制器,最大支持800×480分辨率。RA8875的内部结构图略——编者注。
在本设计中,主要涉及到RA8875的以下功能:
① 480×272以下分辨率支持双图层,特别地,支持图层1的通透模显示,即设置好图层1(Layer1)的透明色(BGTR Color)后,将其叠加在图层2(Layer2)上,Layer1中原本显示透明色的部分将不再显示。其显示效果如图1所示。
② 通过连续/区块数据模式的DMA功能可将SPIFlash中的数据快速搬移到RA8875显存中显示。
③ 可以直接访问指定型号的外挂字库,显示16×16、24×24、32×32点阵文字,支持带底色及通透两种文本显示模式。
④ 内建了直线、矩形、圆角矩形、椭圆的加速绘制引擎。以椭圆的绘制为例,在指定了椭圆的中心点、长短轴、颜色后开启绘制,RA8875会自动按所指定参数绘出椭圆。图2为RA8875用户手册[1]中给出的程序流程图。其中[65hA8h]等均为RA8875中相应的寄存器。
图1 图层叠加的显示效果图
图2 绘制椭圆的程序流程
⑤ RA8875带有一组10位ADC及其控制模块,可用于控制4线电阻式触摸屏。使用RA8875触摸控制器的手动模式并配合中值平均滤波法滤波及三点校准[2]后,能实现触摸屏和TFT屏坐标重合,其误差值在10个像素点内,符合设计需求。
⑥ 带有2组脉冲宽度调制(PWM1、PWM2),可方便用于LCD背光调节。
⑦ 带1个GPOX,可方便用于输出高/低电平。
2 系统组成
如图3所示,本系统由两部分组成,分别为PC端的人机界面编辑软件和应用RA8875组成的人机界面。
图3 系统组成图
2.1 PC端的人机界面编辑软件
PC端的人机界面编辑软件包含两部分:界面编辑、界面编译。其中界面编辑(生成*.opt工程文件)用于设计者根据人机界面功能添加/编辑各个显示页面及其中所包含的显示元素,例如图片、文本、几何图形。特别地,允许设置正常图像与按下图像,这主要是为了在人机界面中使用图片作为触摸按键时能更美观、及时地反映按键弹起/按下的状态。界面编译部分对工程文件(*.otp)进行整合打包,根据接口协议编译生成资源文件(*.otpbin)。
2.2 应用RA8875组成的人机界面
如图3所示,应用RA8875组成的人机界面主要由7部分组成:RA8875、MCU、SPIFlash、字库、TFT数字屏、背光驱动、4线电阻触摸屏。图4为RA8875与各部件连接的电路图。
图4 RA8875的电路框图
① 虽然RA8875可以支持8位或16位的8080/6800系列数据总线接口以及I2C总线或3/4线的SPI串行接口,但是其BTE引擎功能仅对并行MCU接口开放[1],同时RA8875内部均为8位寄存器,所以本设计采用了STM32F103VCT6[3]的8位 FSMC功能来控制。
② RA8875虽能以DMA方式快速显示预存在SPIFlash里的图像数据,但却存在不能写Flash的缺陷,必须将图像取模数据预先保存在SPIFlash中,以留待RA8875访问。在软件调试阶段,可考虑将MCU的串口引出,通过MCU的SPI口访问SPIFlash,将*.otpbin文件下载至SPIFlash中。在本设计的具体实现中采用了存储容量为128 Mb的SPIFlash[4]保存资源文件(*.otpbin)及其他一些需要掉电保存的包括触屏校准信息在内的系统数据。MCU、RA8875共用一组4线SPI总线访问该SPIFlash。为了避免因MCU未完全释放SPI总线而导致RA8875不能正常读取图像数据的干扰问题,当RA8875需要访问SPI总线时,MCU需要执行图5所示的程序流程。
图5 MCU流程图
③ RA8875支持5种集通字库芯片[1],在本设计中采用了GT23L32S4W[5]。两者搭配使用支持15×16、24×24、32×32点阵GB2312标准字符及8×16、12×24、16×32点阵ASCII字符。
④ RA8875的TFT驱动模块用于驱动TFT数字屏的信号,包括时钟信号(PCLK)、有效信号(DE)、垂直同步信号(VSYNC)、水平同步信号(HSYNC)、数据信号(PDAT[15:0])。通过使用STM32内部的定时器中断做精确计时,得出各种像素的TFT数字屏的速度指标,如表1所列。
表1 速度指标测试结果
随着显示屏分辨率的增加,其所需的处理时间相应递增,在480×272像素时能达到24帧以上的刷新速度,由于人的视觉滞留效应,在这种速度下更新显示内容没有闪烁感,能被人肉眼所接受。速度指标测试结果略——编者注。在本设计中,采用驱动IC为OTA5180A的480(RGB)×272点阵TFT数字屏,图6为该屏的接口定义及接线图。
图6 TFTLCD模组引脚定义及接线图
⑤ 如图7所示,使用RT9293[6]作为背光WLED的驱动芯片,通过RA8875的PWM1来调节反馈引脚(FB)的电压,实现背光亮度调节。另外,RA8875带有一个GPOX引脚,通过访问RA8875的C7h寄存器可修改该引脚的输出电平,在本设计中,将其连至RT9293的使能端(LED_EN),当整个系统准备就绪需打开显示时,再拉高电平使能背光。
图7 背光电路图
⑥ 将RA8875的XN、YN、XP、YP连至4线电阻触摸屏,系统就能不断监测触摸事件,为了提升ADC转换稳定度,加10 μF的电容到地。
3 系统软件设计
3.1 接口协议分析
合理的资源文件接口协议是快捷地生成人机界面的关键。将PC端人机界面编辑软件中的工程文件整合成紧凑的十六进制字节流文件就是资源文件。这个资源文件实质上就是由多个表(结构体)、图像取模数据、字符串数据组成。资源文件的第一个字节处开始存放资源表,该表所包含的重要信息有:页面信息表的数目、页面信息表的入口地址、图像信息表的数目、图像信息表的入口地址。根据接口协议,这个接口实际上是由多个表组成。
3.1.1 页面信息表
页面是指一屏显示界面,里面可包含多种元素。这是根据RA8875的功能特性及一般的显示需要而设的,包括显示图像、不同颜色的文本、线段、矩形、圆角矩形、椭圆等。
页面信息表所登记的信息包括该页面唯一标识值、页面元素个数、页面元素表的地址。页面元素表中存放的是上文提及的文本、线段、椭圆框、图片等不同元素的属性表。例如,对于椭圆框元素,其主要属性为椭圆中心点、长短轴。MCU解析椭圆元素的属性表内容后,按流程驱动RA8875显示椭圆。
3.1.2 图像信息表
图像信息表中登记了一幅或多幅图像的信息,包括图像唯一的标识符、尺寸、图像取模数据。当需要显示或剪切显示图像时,仅需操作RA8875的个别寄存器即可将显示工作完全交由RA8875的DMA来完成。其操作流程如图8所示。
图8 操作RA8875完成图像显示的流程图
3.2 人机界面对接口协议的执行
RA8875在480×272像素下支持双图层显示。在本设计中,将Layer2设置为显示加载资源的图层,Layer1设置为根据现场实际需要动态显示的图层。Layge1以背景色(又可称为透明色)透明的方式叠加显示在Layer2之上,如图2所示。从64K色中选取一种Layer1中不会用到的颜色作为透明色,当现场数据需要更新时,利用透明色局部清屏或作为文本底色,以达到现场数据直接叠加于人机界面上却不破坏页面的效果。图9为对RA8875的操作流程图。
图9 接口协议的执行流程图
4 系统性能分析
在本设计中,使用128 Mb Flash来存储资源文件,可存储64幅全屏图像,若为不带图片的页面,大多不足1 KB/页面的数据量,也可存放上万页面,这对一般的人机界面来说已经够用了。
由于SPIFlash支持从任意地址连续读取任意长度数据,尤其是STM32所带的SPI 接口支持DMA功能,可以方便地加载各种资源表、信息表,因此不存在大量消耗内存及长期占用CPU的情况,给MCU留有足够的资源去处理嵌入式系统中其他更重要的实时性任务。
本设计所用的PC端人机界面编辑软件设计的界面图略——编者注。
结语
在充分利用RA8875特性的基础上,借助PC机可视化编辑的优势,提出了一套完整的人机界面设计的方案,并已嵌入于不同的人机界面设计中。虽然前期加入了PC端开发的工作量,但这种仅占用MCU少量工作时间及代码空间的方法十分适用于低成本地缩短产品研发周期场合。