EFD图像数据传输系统设计论文

2022-09-02 论文

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

  1 设计原理

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

  图1 EPD Panel

  基于EFD的图像显示经历了图像采集,图像传输,图像显示等步骤。EFD目前只支持黑白图像显示,因此图像采集利用Processing软件对图片进行一次加工,转换成黑白图像。数据生成之后需要进行传输,传递给微控制器进行处理,这时需要对数据进行二次加工,变成满足TFTEFD显示屏驱动芯片要求的格式,之后通过DMA方式传递给外部的SRAM。FPGA读取SRAM的数据,根据相应的时序控制驱动芯片输出数据,从而实现图像显示。如果控制好时序,能在1 s内刷新25帧以上,那么就可以实现图像的动态显示。

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

  2 系统设计

  2.1 硬件设计

  利用STM32F103ZET6微处理器作为主控芯片,SD卡作为存储设备,SRAM作为转换数据的输送目的地,TFT?LCD用作显示与触摸控制,各个硬件相互配合构建起一个完整的数据传输系统。系统框图如图2所示。

  图2 系统结构

  显示模块采用2.8寸ALIENTEK TFTLCD模块,利用ILI9320控制器作为驱动芯片进行驱动。ILI9320液晶控制器自带显存,其显存总大小为172 820 b(240×320×[1818])。并且ALIENTEK TFTLCD模块自带电阻式触摸屏,可以实现触控的功能。ALIENTEK TFTLCD模块自带的触摸屏控制芯片为XPT2046,内部含有12位分辨率125 kHz转换速率逐步逼近型A/D转换器,是一款4导线制触摸屏控制器。

  由于数据量比较大,将大量数据储存在SD卡中[1],SD卡的配置使用SPI驱动,最高通信速度可达18 Mb/s,每秒可传输数据2 MB以上,可以满足一般的应用需求。SRAM采用的是IS62WV51216芯片,存储容量为1 MB,采用STM32的FSMC接口对其进行配置。FSMC是灵活的静态存储控制器,能够与同步或异步存储器、16位PC存储器卡接口,STM32的FSMC接口支持包括SRAM,NAND FLASH,NOR FLASH等存储器。本设计使用FSMC的BANK1区域3来控制IS62WV51216芯片。

  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微结构

  由于EFD是国内新型显示技术,有着自身的图像数据格式,需要定制符合其显示格式的数据来实现图像显示。控制油墨打开与关闭的芯片要求一个像素格有两位进行控制,即“01”代表打开,“10”代表关闭,因此需要对原始图像数据进行二次加工来满足要求。EPD Panel 的规格是320×240,即240行,320列,由于驱动芯片的数据输出位数是8位,因此先定义一个字符型的二维数组data[240][80],然后利用内存管理单元开辟相应的区域来存放最终数据。利用FATFS模块的f_read函数从文本文档里读取数据,根据文档中每一个数据的内容是‘1’还是‘0’,分别对二维数组内的元素进行0x01或0x02的赋值操作,如果移位次数没有达到4次则进行左移两位操作,否则读取下一个数据重新进行判断。这样每4个数据构成二维数组里的一个元素值。接下来的工作就是判断列数与行数是否小于预先设定数值,如果列数超出设定值,则行数加1,从新的一行开始读取数据,如果行数超出设定值,则循环结束,所有数据均被转换完。

  算法流程图如图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]<<=2;

  }

  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]<<=2;

  }

  界面设计部分:进行完所有的移植工作之后,就可以进行界面的设计,具体的界面程序流程图如图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进行配合来实现动态显示。

  • 相关推荐

【EFD图像数据传输系统设计论文】相关文章:

图像处理技术论文07-29

FPGA数据采集与回放系统设计论文04-24

《选择图像》教学设计07-04

基于系统设计的科研管理论文09-22

《图像的选取及合成》教学设计07-02

解析科技竞赛赛务系统的设计与实现论文04-19

综合布线系统设计项目教学模式应用论文07-12

机器学习的服务器调优系统设计论文04-20

系统优化与系统设计的教学07-08

关于景观导视系统设计实践教学方法的论文07-12