当前位置: 查字典论文网 >> EFD图像数据传输系统设计

EFD图像数据传输系统设计

格式:DOC 上传日期:2023-07-23 00:27:31
EFD图像数据传输系统设计
时间:2023-07-23 00:27:31     小编:

摘 要: 在此计以STM32系列处理器作为控制器,利用uCGUI进行图形界面设计,利用循环移位算法将黑白图像定制成符合TFT?EFD显示的数据格式,实现了静态EFD图像的数据传输,可以根据实际要求传输不同静态EFD图像,后期如果需要可以升级成传输数据流来支持动态显示。

关键词: 循环移位算法; EFD显示; uCGUI; 数据传输

Design of EFD image data transmission system

QIU Guang?dong, LUO Zhi?jie, ZHOU Guo?fu

(Institute of Electronic Paper Displays, South China Academy of Adavanced Optoelectronics, South China Normal University, Guangzhou 510006, China)

Abstract: In this design, STM32 series microprocessor is taken as the controller, uCGUI for graphical interface design and cyclic shift algorithm for making the black?and?white image meet the TFT?EFD (Electro? Fluidic Display) data format to realize static EFD image data transmission. It can transmit various static EFD images according to the practical requirement. If needs later on, it can be upgraded to transmit data flow to support the dynamic display.

Keywords: cycle displacement algorithm; electro? fluidic displays; uCGUI; data transmission

1 设计原理

本设计采用的单色TFT?EFD显示屏的分辨率是320×240,行线连接着晶体管的栅极,控制着晶体管的打开与关闭,列线连接着晶体管的源极,控制着数据的传输,整体的结构如图1所示。

图1 EPD Panel

数据的传输是整个过程的中间阶段,需要进行不断的测试来找到最优的传输数据时序,构造出相对完善的波形序列来实现动态显示。因此搭建数据传输系统来显示不同的图像,测试其显示效果,对于实现稳定的动态显示有积极的作用。本设计利用uCGUI构造图形控制界面,可以传输不同的EFD图像数据给SRAM,FPGA读取其中的数据就可以进行图像显示,并且系统界面简单直观,操作起来也相对简便。

2 系统设计

2.1 硬件设计

图2 系统结构

2.2 软件设计

FATFS文件系统:FATFS是一个完全免费开源的FAT文件系统模块,专门为小型的嵌入式系统而设计。它用标准C 语言编写,一般只需要修改2个文件,即ffconf.h和diskio.c,之后进行简单配置就可以移植到单片机上,进而可以对SD卡和FLASH进行文件的读、写操作。

uCGUI移植:uCGUI 是一种小型化的嵌入式图形界面接口,该接口独立于处理器和LCD 控制器种类,对系统的要求很低[2]。它设计用于为任何使用LCD图形显示的应用提供高效的独立于处理器和LCD控制器的图形用户接口[3],它适用单任务或是多任务系统环境,并且在任意LCD控制器和CPU下进行任何尺寸的真实显示或虚拟显示。

本设计依靠uCGUI进行界面设计,设计比较直观的按键和列表来控制图像传输和图像显示。使用uCGUI也需要做移植的工作,移植的工作包括显示屏和触摸屏两个部分。

显示屏:首先,TFT?LCD显示屏的底层驱动函数需要事先写好,保证单线程程序中正常显示。

其次,向工程中加入uCGUI程序包。

再次,根据自己的显示屏规格配置LcdConf.h GuiConf.h

GuiTouchConf.h文件

最后,修改LcdDriver使uCGUI与你的LCD驱动相互关联。

触摸屏:若要在uCGUI 中使用触摸屏, 则必须将GUI_SUPPORT_TOUCH (Config 目录下GUIConf.h中定义的宏)设置为1[4]。同时要编写底层的触摸屏源驱动函数,对gui_TouchConf.h文件中进行配置,然后在GUI_X_Touch.c文件中进行函数的改动。

具体的移植过程可以参考uCGUI使用手册,这里不再赘述。

数据转换算法?循环移位:显示屏里每一个像素格里有一滴彩色油墨,油墨在加电时会收缩,在不加电时会平铺。下极板是一层反光隔膜,里边每一个像素格里有一个TFT晶体管作为电压开关,上极板是玻璃板,当在上下极板间加入适当电压,像素格里的油墨就会打开,用光照射就显示出明亮状态,当不加电时就会平铺显示出的是油墨的颜色。EFD?Panel的微观结构如图3所示。

图3 EPD Panel微结构

算法流程图如图4所示。

图4 图像转换算法

在Keil集成开发环境下利用C语言编写数据格式转换代码,实现图像转换的重要代码片段如下:

if(*(num++)=='1')

{

if((x%4==0)(x!=0))j++;

data[i][j]|=0x01;

if(x!=(3+4*j))data[i][j]

}

else

{

if(x==320||x==321)continue;

if((x%4==0)(x!=0))j++;

data[i][j]|=0x02;

if(x!=(3+4*j))data[i][j]

}

界面设计部分:进行完所有的移植工作之后,就可以进行界面的设计,具体的界面程序流程图如图5所示。

图5 主程序流程图

整个系统分成了3个界面,界面之间可以实现相互的切换。第一个界面是进入界面,第二个界面是控制界面,第三个界面是数据列表界面。具体实现方法是建立了非模态对话框,以第一个界面为例,其对话框建立代码为: GUI_CreateDialogBox(_aDialogCreate1,GUI_COUNTOF(_aDialogCreate1),

_cbCallback1, 0, 0, 0);

构造的ENTER按键用来控制界面的交换。第二个界面构造了三个按键来实现不同的控制,包括Begin Button,Exit Button,List Button,利用扫描方式来检测按键的触摸,从而执行不同的功能函数,代码片段如下:

switch(GUI_GetKey())

{

case GUI_ID_BUTTON0: datacopy(col); //控制数据传送

break;

case GUI_ID_BUTTON1: LED0=1; //界面转换标志置位

break;

case GUI_ID_BUTTON2: GUI_Clear();

BUTTON_Delete(hButton[0]);

BUTTON_Delete(hButton[1]);

BUTTON_Delete(hButton[2]);

GUI_CreateDialogBox(ImagelistDialog, GUI_COUNTOF(ImagelistDialog), listCallBack, 0, 0, 0); //界面转换

break;

default:break;

}

第三个界面是图像名称的列表,是将对话框与列表结合显示出存储在SD卡中图像名称,进而来控制传输不同的图像。三个界面的显示效果如图6所示。

3 结 语

本设计可以作为EFD图像显示的测试装置来进行使用,通过显示不同的图像来找到合适的波形图来辅助动态图像显示,同时实现了信息的可视化显示[5],后期可以进行程序上的修改,对系统进行改进与升级,以数据流的形式传输数据,和终端的FPGA进行配合来实现动态显示。

图6 整体控制界面

参考文献

[3] 徐宝国,宋爱国.基于UCOS和UCGU I的嵌入式数字示波器[J].测控技术,2007,26(7):7?8.

[4] 王宜结.基于uCGUI 的触摸屏消息流转机制的研究[J].淮南师范学院学报,2013,15(3):35?37.

[6] 申智源.TFT?LCD技术:结构、原理及制造技术[M].北京:电子工业出版社,2012.

全文阅读已结束,如果需要下载本文请点击

下载此文档

相关推荐 更多