杨光义, 郭宗昊, 徐 博, 程翰琳
(武汉大学 电子信息学院, 湖北 武汉 430072)
电子墨水屏(或称水墨屏,E-Ink)是一种由大量细小微胶囊组成的电泳显示器(electrophoretic display,EPD),分为有源矩阵(active matrix,AM)和无源矩阵(positive matrix,PM)两种形式[1-2]。每个微胶囊中包含悬浮于澄清液体中的带负电黑色粒子和带正电白色粒子。在通电电场的驱动下,带电粒子呈现出不同的内容。在环境光线较强的情况下,电子墨水屏克服传统液晶屏容易反光的先天不足。另外,电子墨水屏能够提供类似纸张上阅读的体验,有效弥补了传统液晶屏容易引起视觉疲劳的缺陷,使其大量用于电子书阅读器等便携式电子设备[3]。同时,传统液晶屏需要不断刷新图像,所以能耗较大,而电子墨水屏可以让图像有效地保持在屏幕上,只有在刷新时才消耗电能,从而极大降低系统功耗[4]。在国家大力提倡节能环保、低碳高效的背景下,电子墨水屏的优势更加突出。因此,设计开发一套多点触控电子墨水屏显示系统,对于社会生产和群众生活具有很强的现实指导意义[5]。
多点触控电子墨水屏显示系统主要由控制模块、显示模块、触控模块和电源模块构成。控制模块以单片机STM32F407ZET6为核心,实现文本文档(text document,TXT)的读取、电源模块的使能控制和触控/显示模块的通信。显示模块由电子墨水屏GDE043A2及其接口构成,用于图片和TXT文档的显示。触控模块由触摸屏及其接口构成,完成对触摸点坐标和触摸手势的采集,实现显示模块的人机交互。电源模块由+3.3 V供电电路和电子墨水屏供电电路构成。其中,+3.3 V供电电路采用降压型开关稳压芯片TLV62565,为控制和触控模块供电。系统组成框图见图1。
图1 多点触控电子墨水屏显示系统框图
结合图1,硬件电路设计依次按照单片机STM32F407ZET6控制模块、电子墨水屏显示模块、触控模块和电源模块展开。限于论文篇幅,本文在介绍其他模块的同时简要说明电源模块[6],不再单独陈述电源模块。
STM32F407ZET6是意法半导体(ST Microelectronics)公司生产的一种性能良好的单片机,采用ARM Cortex-M4嵌入式内核,上限时钟频率168 MHz,主要面向低功耗、低成本、高性能应用场合。STM32F407ZET6拥有114个GPIO(general purpose input output)端口,集成多个高级/通用定时器,将SPI(serial peripheral interface)和I2C(inter-integrated circuit)挂载到内部总线上,有助于完成复杂的算法功能。STM32F407ZET6可利用JTAG(joint test action group)接口进行代码烧写和在线调试,系统拓展和二次开发十分方便。控制模块具体电路如图2所示。
图2 控制模块电路
图2中,单片机STM32F407ZET6通过GPIO端口PC0—PC7与显示模块连接,实现控制和显示模块间并行通信;通过GPIO端口PB6/PB7与触控模块的时钟/数据接口连接,实现控制和触控模块间的I2C通信;通过GPIO端口PC10/PC11/PC12/PC13与Micro-SD卡连接[7],完成SPI通信;通过GPIO端口PB8/PB9/PG14与电源模块连接,完成电源模块的使能控制。
电子墨水屏采用大连佳显公司生产的152 mm×102 mm有源矩阵电泳显示器GDE043A2,分辨率800×600,采用34引脚、0.5 mm间距的FPC(flexible printed circuit)接口。电子墨水屏供电电路采用美国凌特(Linear Technology)公司生产的升压型开关稳压芯片LT1615,输入电压低至+1 V,升压高达+34 V,静态电流低至20 μA,通过内部控制电路将FB引脚电压钳位在+1.23 V,经精密电阻分压后实现升压。电子墨水屏模块电路见图3。
图3 电子墨水屏模块电路
图3中,D4和D5为瞬态抑制二极管MBR0530,当 MBR0530 两端受到反向瞬态冲击时,能以皮秒量级的速度,将其两极间的高阻抗变为低阻抗,吸收高达1 500 W的浪涌功率,有效保护系统[8]。U2将+5 V转换为+15 V/-15 V/+22 V/-20 V电压,驱动显示模块工作。U2和Q1同时受STM32F407ZET6使能端控制,仅当GDE043A2需要数据传输和控制时,电源电路才输出高压,从而降低静态功耗。GDE043A2内置驱动芯片HX8705-B,对应的引脚定义见表1。
表1 HX8705-B引脚接口定义
触控模块采用深圳敦泰公司生产的触控芯片FT5206,工作电压为+2.8 V~+3.6 V,采用I2C通信方式,可通过中断和查询两种方式读取触摸点信息。最多支持5点同时触摸,可实时获取不同触摸点的状态和位置信息,具有非常好的操控效果[9]。能摸屏模块电路见图4。
图4 触摸屏模块电路
图4中,D7为肖特基二极管SS24,当后级输出电压大于+5 V时,它可以防止电流倒灌而造成的系统短路,实现系统保护的目的。U3为降压性开关稳压芯片TLV62565,效率高达95%,通过内部控制电路将FB引脚电压钳位在+0.6 V,通过精密电阻分压实现降压。
系统软件主要完成触摸点坐标读取、处理、电子墨水屏显示以及Micro-SD卡读取功能。Micro-SD卡采用挂载文件系统方式进行文档读取[10]。由于Micro-SD卡已有非常成熟的读写流程,有兴趣的读者请参阅文献[11]。
主程序流程见图5。首先启动电子墨水屏电源供电,初始化电子墨水屏模块;显示开机界面后,关闭电源模块使能端,断开显示模块供电,同时通过单片机STM32F407ZET6读取Micro-SD卡文档;当用户在触摸屏上点击相应控件时,单片机STM32F407ZET6通过触控模块识别触点位置,选择相应图片或文档;最后单片机STM32F407ZET6使能供电并通过相应时序,控制显示模块,将图片或文档中的ASCII字符显示在电子墨水屏上,同时,系统不断识别触点位置或手势,实现对显示内容的操作。
图5 主程序流程
由于电子墨水屏的物理特性和数据协议与传统液晶屏的差异,GDE043A2无法对指定的像素点进行修改或者填充[12]。另外,由于电子墨水屏需要对原图像进行擦除(图像全白)后,才能显示新图像,否则会产生原图像的残影,导致显示效果不佳。所以,实际使用中只能对屏幕图像整体刷新,这成为制约墨水屏刷新速率的一大瓶颈。另外,由于GDE043A2不带字库,显示ASCII码字符必须要建立字库数组。
GDE043A2最大时钟频率为200 kHz,最低时钟循环周期为40 ns。为提高刷新速率,实现电子墨水屏实时动态显示,系统从硬件选型和算法优化两个方面入手。硬件选型方面,相对于主流单片机20 MHz左右的时钟频率,系统采用的STM32F407ZET6时钟频率高达168 MHz,运行效率大大提升[13]。算法优化方面,系统通过生成一个短周期的RAM波形表[14]进行显示,最大程度提高电子墨水屏的扫描速度,这样既能保证刷新速率,又能使显示时不产生残影。同时,控制和显示模块间通过并行接口传输数据,使得图像显示速度得到极大提高。
GDE043A2显示色彩为4阶灰度,即每个像素点由2个比特位控制,一个字节控制4个像素点,其扫描方式为从上到下、从左到右。系统通过设计16×16的ASCII字符图片和4阶灰度字模转换工具[15],建立对应从32(space)到126(‘~’)的ASCII码字库。同时,通过对应的ASCII码值查找相应字库数据起点,按字符串顺序生成图像数据,送入GDE043A2显示。
单片机STM32F407ZET6与FT5206通过I2C通信,获取触摸点的位置和状态,并采用查询方式进行触摸检测。当需要检测触摸时,程序进入触控子程序,查询触摸状态寄存器(0X02),判断是否存在有效触点。如果存在有效触点,则读取不同触摸点坐标数据寄存器(0X03/0X09/0X0F/0X15/0X1B),得到触摸点个数和对应触摸点的坐标值。触摸点个数与手势之间的对应关系见表2。
表2 触摸点个数及其手势和功能
不同手势对应不同的采样点个数,也决定了不同的识别算法。当用户单点接触触控屏时,触控屏捕捉触摸点坐标,实现单击和上/下/左/右滑动操作。当用户多点接触触控屏时,系统通过相应的手势识别算法,实现放大、缩小或关闭操作[16]。读取触摸点坐标流程见图6。
图6 读取触摸点坐标流程
为验证显示功能,系统预先在Micro-SD卡内建立一个“Test.txt”的文本文档,保存一段歌曲的歌词,同时在单片机STM32F407ZET6的RAM中保存一张图片数据。单片机STM32F407ZET6控制显示模块在文本文档和图片之间轮流显示,观察系统显示文本和图片的效果,同时记录刷新速率。系统显示效果示例如图7所示。
图7 系统显示功能测试效果
实测表明,GDE043A2的文字和图片显示均取得了良好的效果。屏幕刷新时,系统最快可实现1.2帧/s的刷新速率,肉眼未观察到明显图像残影。
为验证触控功能,客观评估触摸手势的识别效率和准确度,系统对各种手势进行多次测试,记录系统识别不同手势的情况,测试结果见表3。为更加直观,以左滑为例,将表3的触摸测试结果以折线图形式表示,如图8所示。为达到最佳显示效果,图8对纵坐标进行了归一化处理。
表3 触摸测试结果
分析图8可知,当采样点数N1=5时,识别成功率P最高;当采样点数N1增加时,识别时长也单调增大。综合考虑识别成功率P和识别时长,系统采用采样点数N1=5。
图8 左滑测试结果折线图
本文设计了一套基于STM32的电子墨水屏显示系统。系统可以读取外设文本文档,实时显示文字和图片,还可以接受用户单点或多点触屏控制,完成单击、上/下/左/右滑动、放大缩小或关闭功能。系统具有电路简单、成本低、耗电少等优良性能,具有良好的应用前景。针对特定应用背景,开发WiFi通信或者USB通信,是本文下一步的工作重点。