已阅读5页,还剩4页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于sopc的嵌入式tft触摸屏显示系统的设计与实现摘要:使用基于xilinx fpga的sopc嵌入式系统设计的方法,提出了基于sopc的嵌入式tft触摸屏显示系统设计思路,分析了系统的硬件构建以及软件系统设计的流程,在基于裸机编程测试通过后,给出了开源linux操作系统以及qtopia用户界面的移植的过程。结果表明系统稳定可靠,显示清晰,色彩丰富,达到了设计要求。关键词:sopc,tft触摸屏,嵌入式系统 1 引言可编程片上系统(system on a progammable chip,sopc)是一种新兴的嵌入式系统,它是片上系统(system on chip,soc)与fpga的完美结合,兼具soc高速处理的性能,又有其独特的软硬件均可定制的功能。xilinx的sopc解决方案有powerpc405硬核处理器和丰富的ip核资源,最高可工作于300mhz的时钟下,可完成具有较高要求的嵌入式系统。tft-lcd具有功耗低、轻巧便携、显示效果极佳等诸多优点,可作为良好的人机交互平台,已广泛的应用于各类嵌入式产品当中。在系统要求高速处理大量的实时数据,并显示实时情况时,单片机因其处理速度以及内存的大小就显得非常困难。又因tft的控制时序复杂,而带有控制器的显示屏的价格昂贵,所以本文提出了基于xilinx fpga的tft触摸屏显示的sopc解决方案,采用fpga定制tft-lcd的控制器。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为525,用于同步的脉宽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有68hz的刷新率,满足人眼分辨的要求。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的一端作为数据输入,工作于总线时钟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系统硬件构建xilinx嵌入式开发套件(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总线与处理器连接在一起。在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主要负责产生时钟,包括处理器工作时钟、plb总线时钟、tft-lcd控制器时钟。at070tn83 7寸tft触摸屏作为最终的显示图像文字信息的设备。ddr内存条作为系统软件运行的ram空间以及tft-lcd显示缓存空间。cf卡有两个功能,一是通过systemace器件配置fpga的硬件信息;二是作为linux系统运行的文件系统存放空间。需将其分为三个区,第一个分区建立fat文件系统,放生成的.ace配置文件;第二个分区格建立linux swap交换空间;第三分区建立ext2的文件系统,用以放置linux根文件系统(busybox)。系统硬件构建的流程包括,根据所使用的外设以及器件的特性,在edk10.1的环境下,采用bsb的方式添加所需的基本的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核的基地址。最后使用generate bitstream生成带有硬件配置信息的.bit文件。此时可以在edk环境下建立一些裸机测试程序,如在tft-lcd上打印彩条的测试。设置software platform settings,在弹出的选项框中设置os为device-tree(确保你已经有支持bsp的device-tree的文件,并将device-tree的bsp文件夹放在正确的工程路径中,在linux环境下,使用git命令来获取 “git clone git://device-tree.git”)。选择os and libraries将console device设置成uart的名称,把bootargs的值由ttys0设置为console=ttyul0(如果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.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.git, linux-2.6-xlnx内核包大概760mb)。linux-2.6-xlnx为争对xilinx fpga sopc平台开发的device tree,是一个开源项目,内核版本为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 menuconfig命令配置并裁剪内核,需要增加framebuffer、spi触摸屏控制器ads7843的支持、ext2文件系统支持、xilinx systemace 支持。内核配置裁剪完后,使用make命令生成内核镜像.elf文件。将此文件拷贝到edk开发环境下,与硬件配置文件.bit,通过使用edk shell合并生成ace的配置文件.ace文件,用于对fpga的硬件配置、系统的引导以及linux操作的系统内核的启动。3.2.2 busybox根文件系统移植文件系统指文件存在的物理空间,linux文件系统采用的是树型结构,最上层是根目录,其他的所有目录都是从根目录出发而生成的。根文件系统主要用于linux存放配置文件、软件工具、软件运行库文件以及其他文件等。本文采用busybox-1.13.3来制件根文件系统,busybox可以提供多种gnu工具集,虽然相比而言有所简化,但其实用,短小,稳定,满足嵌入式系统的要求。busybox的移植就是在开发主机上使用mkroofs工具编译制作目标板上linux的根文件系统的过程,同时做适当的裁剪。典型的busybox文件大小在动态链接的情况下是300 kb左右,静态链接为800 kb左右,可以控制在1mb以内。3.2.3 qtopia-core移植qtopia是由挪威trolltech公司,为采用嵌入式linux操作系统的消费电子设备而开发的综合应用平台,包含完整的应用层、灵活的用户操作界面(触摸屏支持)、窗口操作系统、应用程序启动程序以及二次开发的框架。本文所采用的qtopia-core-4.3.5是qt/embedded的最新版本。qtopia-core移植包括处理器架构的选择、参数的配置。本文使用的是tft触摸屏作为显示和输入设备,需要添加对触摸屏的支持。一种方法是利用qtopia-core为linux tp协议提供的鼠标驱动接口类,修改触摸屏驱动的源代码,并在执行configure配置时传递-qt-mouse-linuxtp选项激活;另一种方法是嵌入tslib。tslib是一个开源的程序,能够为触摸屏驱动获得的采样提供诸如滤波、去抖、校准等功能。将最终编译生成的静态运行库拷贝到文件系统的相应目录下。最后需要编写qt用户程序,交叉编译生成二进制文件。4、结果分析及功能实现本文设计的系统使用fpga为xilinx virtexii pro系列的xc2vp30芯片,使用资源如表1所示。处理器运行时钟为300mhz,plbv46总线时钟100mhz,tft控制器时钟33.3mhz。表1 fpga资源使用情况名称使用数总数使用率slice49441369636%lut42022739215%iob16755630%ppc4051250%ramb163013622%dcm3837%bufgmux71643%设计生成的硬件配置文件.bit为1.38mb,.elf内核文件为2.38mb,并且可以做到进一步的裁剪,由这.bit和.elf合并生成的.ace配置文件为13.7mb。busybox文件系统完整的静态库为19.4mb,qtopia-cor
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 园艺产品加工工岗位应急处置技术规程
- 2025年中国Web3应用行业市场研究报告
- 河北省衡水市2026届高三年级上册9月质量检测数学试题(含答案解析)
- 贵州省遵义市桐梓县四校联考2025-2026学年七年级上学期10月月考数学试卷(含答案)
- 四大古文明探秘
- 第23课《孟子三章》知识拓展+课文全解-2025-2026学年统编版八年级语文上册
- 2025湖北省建筑设计院有限公司部分中层管理岗位市场化选聘笔试历年参考题库附带答案详解
- 2025宁夏泰益欣生物科技股份有公司招聘180人笔试历年参考题库附带答案详解
- 2025江西抚州高新区财投集团有限公司及其子公司引进紧缺专业人才7人笔试历年参考题库附带答案详解
- 2025年国元农业保险股份有限公司安徽分公司校园招聘40人笔试历年参考题库附带答案详解
- 板房拆除回收协议书
- 物流中包装的课件
- 物业设备设施培训课件
- 卤味店员工合同范本
- 第19课《大雁归来》课件+2025-2026学年统编版语文七年级上册
- 2025江西省金融资产管理股份有限公司下属子公司社会招聘3人(第二次)笔试历年典型考点题库附带答案详解试卷3套
- 小儿头皮静脉穿刺课件
- 物业反恐防暴培训
- 2025收费员年度工作总结
- 2025初中英语复习策略
- 恶性肿瘤的内科治疗教案(2025-2026学年)
评论
0/150
提交评论