基于SOPC的嵌入式TFT触摸屏显示系统的设1.doc

上传人:laozhun 文档编号:4148313 上传时间:2023-04-07 格式:DOC 页数:8 大小:1.87MB
返回 下载 相关 举报
基于SOPC的嵌入式TFT触摸屏显示系统的设1.doc_第1页
第1页 / 共8页
基于SOPC的嵌入式TFT触摸屏显示系统的设1.doc_第2页
第2页 / 共8页
基于SOPC的嵌入式TFT触摸屏显示系统的设1.doc_第3页
第3页 / 共8页
基于SOPC的嵌入式TFT触摸屏显示系统的设1.doc_第4页
第4页 / 共8页
基于SOPC的嵌入式TFT触摸屏显示系统的设1.doc_第5页
第5页 / 共8页
点击查看更多>>
资源描述

《基于SOPC的嵌入式TFT触摸屏显示系统的设1.doc》由会员分享,可在线阅读,更多相关《基于SOPC的嵌入式TFT触摸屏显示系统的设1.doc(8页珍藏版)》请在三一办公上搜索。

1、基于SOPC的嵌入式TFT触摸屏显示系统的设计与实现摘要:使用基于Xilinx FPGA的SOPC嵌入式系统设计的方法,提出了基于SOPC的嵌入式TFT触摸屏显示系统设计思路,分析了系统的硬件构建以及软件系统设计的流程,在基于裸机编程测试通过后,给出了开源Linux操作系统以及Qtopia用户界面的移植的过程。结果表明系统稳定可靠,显示清晰,色彩丰富,达到了设计要求。关键词:SOPC,TFT触摸屏,嵌入式系统 1 引言可编程片上系统(System on a Progammable Chip,SOPC)是一种新兴的嵌入式系统,它是片上系统(System on Chip,SOC)与FPGA的完美结

2、合,兼具SOC高速处理的性能,又有其独特的软硬件均可定制的功能。Xilinx的SOPC解决方案有PowerPC405硬核处理器和丰富的IP核资源,最高可工作于300MHz的时钟下,可完成具有较高要求的嵌入式系统。TFT-LCD具有功耗低、轻巧便携、显示效果极佳等诸多优点,可作为良好的人机交互平台,已广泛的应用于各类嵌入式产品当中。在系统要求高速处理大量的实时数据,并显示实时情况时,单片机因其处理速度以及内存的大小就显得非常困难。又因TFT的控制时序复杂,而带有控制器的显示屏的价格昂贵,所以本文提出了基于Xilinx FPGA的TFT触摸屏显示的SOPC解决方案,采用FPGA定制TFT-LCD的

3、控制器。2 TFT-LCD接口时序分析本文使用的是群创公司的AT070TN83 a-si TFT触摸屏,屏幕大小为7寸,分辨率800x3(RGB)x480,26万色,背光源为LED,数字TTL电平接口,并配有7寸的触摸面板,没有自带控制器,因此需要根据其特性参数来设计TFT-LCD控制器。2.1 行扫描时序AT070TN83的行扫描时序如图1所示,显示一行的脉冲数tHP为928,用于同步的脉宽tHW为48,后肩tHFP为40,前肩tHFP为40,一行中真正用来显示数据的脉冲数tHV为800。图1 行扫描时序图2.2 列扫描时序AT070TN83的列扫描时序如图2所示,显示一列的脉冲数tVP为5

4、25,用于同步的脉宽tVW为3,后肩tVFP为29,前肩tVFP为13,一列中真正用来显示数据的脉冲数tW为480。图2 列扫描时序图AT070TN83最大工作频率为50MHz,典型值是33.3MHz,本文采用它的典型值来设计TFT-LCD控制器,需要使用DCM的CLKFX来产生时钟,设计D为15,M为5,输入DCM的时钟为100MHz,则TFT-LCD的工作时钟为: 公式1设f为刷新率,则有: 公式2 公式3 公式4由公式2得屏幕刷新率为: 公式5将MPLB_CLK = 100MHz、tHP = 928、tVP = 525代入公式5得即当工作在33.3MHz时,设计得到AT070TN83有6

5、8Hz的刷新率,满足人眼分辨的要求。2.3 TFT-LCD控制器从图3中可以看到TFT-LCD控制器主要由PLBV46总线接口、TFT时序发生器、显示缓冲器和TFT接口四部分组成,显示缓冲器使用一个1Kx18bit的FPGA片内双口RAM用作先入先出(First In First Out,FIFO)缓冲输出,一次只缓存一列数据,因此此控制器支持最大的列数为1024,双口RAM以块的形式操作,一块的大小为128Byte,因此一次只更新128Byte的数据,一个数据为32 bit,所以128Byte的数据为32*32bit,则一列有800个数据,需要更新25次。双口RAM的一端作为数据输入,工作于

6、总线时钟100MHz,另一端作为数据输出,也就是送到TFT-LCD触摸屏,工作于TFT-LCD的时钟33.3MHz。系统工作时,处理器将一帧的数据写到处理器与TFT-LCD控制器共享的内存空间,当缓冲器FIFO中的数据已经全被送到TFT-LCD显示时,即FIFO为空时,将发送标致位给TFT时序发生器,此时TFT-LCD控制器将从共享空间中把本帧的下一列数据以3倍的数据输出速度读入FIFO缓冲,这样设计的优势在于提高了处理器的工作效率,减少等待时间,同时可以防止TFT-LCD发生“雪花现象”。图3 xps_tft控制器原理图3、基于SOPC的嵌入式TFT触摸屏显示系统的设计3.1系统硬件构建Xi

7、linx嵌入式开发套件(Embedded Development Kit,EDK)包含有Xilinx 嵌入式SOPC系统开发的完善的工具集,主要完成SOPC硬件系统构建、软件开发和调试的工作,同时还可以在EDK环境下设计并定制用户IP核。嵌入式TFT触摸屏显示系统硬件结构如图4所示,在VirtexII Pro FPGA芯片内部主要包括PowerPC405硬核处理器、TFT-LCD控制器、SPI控制器、MPMC DDR内存控制器、SystemACE控制器、JTAG和UART、BlockRAM、DCM时钟管理IP核。系统以PowerPC405处理器为核心,其他IP核通过PLBV46总线与处理器连接

8、在一起。在FPGA芯片外部,主要有AT070TN83 7寸TFT触摸屏(电阻式触摸屏控制芯片ADS7843)、DDR内存条(256MB、133MHz)、CF卡(2GB)。TFT-LCD控制器为触摸屏显示提供时序信号,以及控制缓冲输出。SPI控制器主要负责从ADS7843电阻式触摸屏控制芯片中读取触摸屏的XY坐标信息。JTAG和UART主要完成调试和与PC机通信,此外UART还映射为Linux系统的控制台终端的操作命令输入和显示,系统脱机工作时,可使用触摸屏代替。片内BlockRAM用于提供PowerPC405硬核处理器boot启动的地址0xFFFFFFFF。DCM主要负责产生时钟,包括处理器工

9、作时钟、PLB总线时钟、TFT-LCD控制器时钟。AT070TN83 7寸TFT触摸屏作为最终的显示图像文字信息的设备。DDR内存条作为系统软件运行的RAM空间以及TFT-LCD显示缓存空间。CF卡有两个功能,一是通过SystemACE器件配置FPGA的硬件信息;二是作为Linux系统运行的文件系统存放空间。需将其分为三个区,第一个分区建立FAT文件系统,放生成的.ace配置文件;第二个分区格建立Linux Swap交换空间;第三分区建立EXT2的文件系统,用以放置linux根文件系统(Busybox)。系统硬件构建的流程包括,根据所使用的外设以及器件的特性,在EDK10.1的环境下,采用BS

10、B的方式添加所需的基本的IP核,包括PowerPC405硬核处理器、MPMC DDR内存控制器、SystemACE控制器、JTAG和UART、BlockRAM等,构建一个基本的硬件系统。然后手动添加TFT-LCD控制器和SPI控制器等IP核,将它们连接至PLBV46总线上,TFT-LCD控制器与PowerPC405共享部分DDR内存空间,作为显示缓存,TFT-LCD控制器与MPMC DDR内存控制器通过新添加一条PLBV46总线相连,以获取共享内存空间。添加外部引脚,锁定到FPGA引脚上,用于连接相应的器件。设置完IP核的参数后,使用Generate Address分配各个IP核的基地址。最后

11、使用Generate Bitstream生成带有硬件配置信息的.bit文件。此时可以在EDK环境下建立一些裸机测试程序,如在TFT-LCD上打印彩条的测试。设置Software Platform Settings,在弹出的选项框中设置OS为device-tree(确保你已经有支持BSP的device-tree的文件,并将device-tree的bsp文件夹放在正确的工程路径中,在linux环境下,使用git命令来获取 “git clone git:/ and Libraries将console device设置成UART的名称,把bootargs的值由ttyS0设置为console=ttyUL

12、0(如果uart使用XPS Uart16650的IP核时,使用ttyS0,本文使用的是XPS UART Lite所以是ttyUL0),将root=/dev/ram改为root=fd03(fd03是CF卡的第三个分区),添加init=linuxrc用于从根目录下的linuxrc启动文件系统。使用Generate Libraries and BSPs在相应的目录下就会生成.dts的IP核描述文件,用于控制Linux内核编译。图4 系统硬件结构框图3.2系统软件设计系统软件结构如图5所示,包括三个部分Linux内核、根文件系统、Qtopia-core及Qt编写的应用程序。图5 系统软件结构框图3.2

13、.1 Linux内核移植在X86架构的主机上安装VMware虚拟机工具,建立linux CentOS操作系统,作为开发主机,交叉编译工具采用Crosstool-0.43,在开发主机linux操作系统上编译生成powerpc-405-linux-gnu-的交叉编译工具链(gcc-3.4.5-glibc-2.3.6)。可以有几种办法得到linux内核包,本文采用上的linux-2.6-xlnx(在linux终端输入获取命令:git clone git:/ linux-2.6-xlnx内核包大概760MB)。linux-2.6-xlnx为争对Xilinx FPGA SOPC平台开发的device t

14、ree,是一个开源项目,内核版本为linux-2.6.32,有增加Xilinx各类IP核的驱动支持,这样可以节省很多开发时间,缩短开发周期。Linux内核的移植包括了内核的板级移植、内核的裁剪以及用户IP核相应的内核驱动的编写等。本文使用的是Digilent公司开发的XUP-V2P(Xilinx University Program Virtex-II Pro Development System)开发平台,需要将EDK环境下构建硬件生成的IP描述文件(.dts文件,本文为xilinx.dts)拷贝到arch/powerpc/boot/dts目录下,修改LCD的驱动函数,再用Make menu

15、config命令配置并裁剪内核,需要增加Framebuffer、SPI触摸屏控制器ADS7843的支持、EXT2文件系统支持、Xilinx SystemACE 支持。内核配置裁剪完后,使用make命令生成内核镜像.elf文件。将此文件拷贝到EDK开发环境下,与硬件配置文件.bit,通过使用EDK Shell合并生成ACE的配置文件.ace文件,用于对FPGA的硬件配置、系统的引导以及linux操作的系统内核的启动。3.2.2 Busybox根文件系统移植文件系统指文件存在的物理空间,Linux文件系统采用的是树型结构,最上层是根目录,其他的所有目录都是从根目录出发而生成的。根文件系统主要用于l

16、inux存放配置文件、软件工具、软件运行库文件以及其他文件等。本文采用Busybox-1.13.3来制件根文件系统,Busybox可以提供多种GNU工具集,虽然相比而言有所简化,但其实用,短小,稳定,满足嵌入式系统的要求。Busybox的移植就是在开发主机上使用mkroofs工具编译制作目标板上linux的根文件系统的过程,同时做适当的裁剪。典型的busybox文件大小在动态链接的情况下是300 KB左右,静态链接为800 KB左右,可以控制在1MB以内。3.2.3 Qtopia-core移植Qtopia是由挪威Trolltech公司,为采用嵌入式Linux操作系统的消费电子设备而开发的综合应

17、用平台,包含完整的应用层、灵活的用户操作界面(触摸屏支持)、窗口操作系统、应用程序启动程序以及二次开发的框架。本文所采用的Qtopia-core-4.3.5是QT/Embedded的最新版本。Qtopia-core移植包括处理器架构的选择、参数的配置。本文使用的是TFT触摸屏作为显示和输入设备,需要添加对触摸屏的支持。一种方法是利用Qtopia-Core为Linux TP协议提供的鼠标驱动接口类,修改触摸屏驱动的源代码,并在执行configure配置时传递-qt-mouse-linuxtp选项激活;另一种方法是嵌入Tslib。Tslib是一个开源的程序,能够为触摸屏驱动获得的采样提供诸如滤波、

18、去抖、校准等功能。将最终编译生成的静态运行库拷贝到文件系统的相应目录下。最后需要编写Qt用户程序,交叉编译生成二进制文件。4、结果分析及功能实现本文设计的系统使用FPGA为Xilinx VirtexII Pro系列的xc2vp30芯片,使用资源如表1所示。处理器运行时钟为300MHz,PLBV46总线时钟100MHz,TFT控制器时钟33.3MHz。表1 FPGA资源使用情况名称使用数总数使用率Slice49441369636%LUT42022739215%IOB16755630%PPC4051250%RAMB163013622%DCM3837%BUFGMUX71643%设计生成的硬件配置文件

19、.bit为1.38MB,.elf内核文件为2.38MB,并且可以做到进一步的裁剪,由这.bit和.elf合并生成的.ace配置文件为13.7MB。Busybox文件系统完整的静态库为19.4MB,Qtopia-core完整运行静态库文件大小为35MB。将生成的.ace文件拷贝到CF卡的第一个分区,作为FPGA的配置文件、引导程序和Linux内核文件,将加有Qtopia-core支持的Busybox文件系统拷贝到CF卡的第三个分区。系统上电工作时,先从CF卡的第一个分区读入.ace文件,配置FPGA的硬件信息、引导Linux内核、启动Linux内核,接着将挂载Busybox文件系统,最后运行Qt

20、opia-core界面程序。最终基于SOPC的嵌入式TFT触摸屏显示系统如图6、图7所示,图6显示的结果为无操作系统时在EDK环境下建立TFT触摸屏控制器IP核的硬件描述层函数,并编写打印彩条的测试函数。图7显示的结果为移植Linux内核、BusyBox根文件系统、Qtopia-core后的Qt用户程序界面。 图6 无操作系统结果图 图7 有操作系统结果图5、结论该系统稳定可靠,显示清晰,色彩丰富,可以修改TFT-LCD控制器IP核的参数,使其适用于各种分辨率的显示屏。完成显示系统设计后,FPGA还有丰富的资源来扩展其他的应用需求,如添加网卡控制器IP核、声卡控制器IP核等,硬件平台同时适用于无操作系统和有嵌入Linux系统的设计,充分的体现了SOPC系统设计的灵活性和软硬件均可裁剪的特性。该方案已在基于开源操作系统的超声医疗诊断系统的项目中得到应用,本系统的设计方法对新型SOPC嵌入式系统的设计具有参考价值,并具有工程上的实际应用价值。参考文献

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号