新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 基于FPGA的LCD显示的远程更新设计实现

基于FPGA的LCD显示的远程更新设计实现

作者:时间:2017-06-04来源:网络收藏

本文引用地址:http://www.eepw.com.cn/article/201706/348674.htm

第1章 的背景与应用

1.1 LCD的产生与发展

液晶显示器,简称LCD(Liquid Crystal Display)。世界上第一台液晶显示设备出现在20世纪70年代初,被称之为TN-LCD(扭曲向列)液晶显示器。80年代,STN-LCD(超扭曲向列)液晶显示器出现,同时TFT-LCD(薄膜晶体管)液晶显示器技术被研发出来,但液晶技术仍未成熟,难以普及。80年代末90年代初,日本掌握了STN-LCD及TFT-LCD生产技术,LCD工业开始高速发展。

现在,LCD是笔记本电脑和掌上电脑的主要显示设备,在投影机中,它也扮演着非常重要的角色,而且它开始逐渐渗入到桌面显示器市场中。相信不远的未来,器将会更为普及地应用于商业、工业、军事等领域。

1.2 远程视频监控系统的简述

早期的视频监控系统受限于地域限制,随着视频监控技术与网络技术的发展,出现了远程视频监控系统。远程视频监控系统是把图形信息转变成信号信息,通过摄取、传输、显示等设备实现一定距离内图形转换为图像,在互联网上传输,从而实现较远距离可以看到现场图形信息的系统。

远程视频监控系统通过互联网打破了地域限制,随着远程视频监控技术的成熟以及应用,人们的生产、生活以及企业管理正在发生新的变化,远程视频监控系统广泛渗透到教育、政府、娱乐场所、医院、酒店、运动场馆、城市治安甚至家庭等多个领域。

1.3 在远程视频监控的应用

远程视频监控系统主要包括:前端摄像设备、传输存储设备、终端控制显示设备。其中,LCD显示作为监控显示设备应用于远程视频监控系统中。图 1为某视频监控系统设计原理图。

图 1 某视频监控系统设计原理图

第2章 系统整体设计方案

2.1研究需求与目标

2.1.1研究需求

本设计“基于的LCD显示的”作为远程视频监视系统的监控终端设备,伴随着视频监控系统的发展而发展。近年来,中国视频监控市场受平安城市建设,北京奥运会、上海世博会、广州亚运会、深圳大运会等安保项目以及各行业视频监控需求快速增长等因素的刺激和拉动,取得了超常规快速发展,整体市场规模迅速扩大。

作为中国视频监控市场未来发展方向之一的网络化视频监控系统,其市场规模将于2013年达168.91亿元,增速远超行业平均增长率水平。鉴于技术条件限制,高清视频监控一般建立在网络化的应用基础之上,若考虑给予智能高清视频监控市场占IP视频监控市场15%的份额估算,则2011-2013年智能高清监控市场规模将分别达13亿元、18亿元和25亿元,复合增速将高于36%。综上所述,可以预计未来3-5年视频监控市场将继续保持强劲增长,行业整体处于高速发展阶段。可见,本设计有着广泛的应用前景以及市场需求。

2.1.2研究目标

本次设计定位为视频监控系统的终端设备,其在系统中的位置如图 2所示。

图 2 视屏监控系统结构图

本设计预期实现的功能与技术指标:

  1. 提供良好的人机界面和简单方便的操作方式;

  2. 提供两种视频监控方式:实时视频播放以及历史录像的播放;

  3. 预留USB接口,方便用户扩展前端存储功能;

  4. 提供用户管理功能,实现权限管理;

  5. 支持图像屏蔽与图像抓拍;

  6. 实现图像分辨率:640*480;

  7. 实现视频帧率:30fps

其中,监控人员具体的操作方式为通过鼠标来选择观看实时视频或查询视屏录像:

  1. 在观看实时视频时,本设计运行FTPClient应用程序向视屏录像服务器请求实时的视屏数据,将接收到的实时视屏先缓存在本地的内存中,然后进行解码、播放,通过HDMI接口将视屏数据传输到LCD显示器上面显示。

  2. 在查询历史录像时,本设计拟提供浏览视屏录像服务器中所有视屏录像的功能,用户根据自己的需要,选取相关的视屏文件,当用户选择下载视屏文件到本地时,本设计从视屏录像服务器上面缓存视屏文件到内存中,然后写入挂载的U盘中。当视屏下载完毕后,运行播放器程序播放下载的视屏文件,提供播放、前进、后退、暂停等常用的播放功能。

2.2 系统概要设计

2.2.1 Genesys开发板简介

Digilent的Genesys开发板集成了功能强大的Xilinx Virtex®-5 ,为广大用户带来了一个功能强大、方便实用的设计平台。其设计框图如图 3所示。

图 3 Genesys开发板的组成框图

Genesys板上还集成了千兆以太网接口、高速存储器、高分辨率音频和视频电路、以及USB主机接口等选项。Genesys开发板采用业界主流设计,无论是复杂系统,还是专用的高性能应用,Genesys都能为您提供有效的解决方案。其主要特性如下所示:

  • Xilinx Virtex 5 LX50T , 1136-pin BGA package

  • 256Mbyte DDR2 SODIMM with 64-bit wide data

  • 10/100/1000 Ethernet PHY and RS-232 serial port

  • multiple USB2 ports for programming, data, and hosting

  • HDMI video up to 1600x1200 and 24-bit color

  • AC-97 Codec with line-in, line-out, mic, and headphone

  • real-time power monitors on all power rails

  • 16Mbyte StrataFlash™ for configuration and data storage

  • Programmable clocks up to 400MHz

  • 112 I/O’s routed to expansion connectors

  • GPIO includes eight LEDs, two buttons, two-axis navigation switch, eight slide switches, and a 16x2 character LCD

  • ships with a 20W power supply and USB cable

2.2.2基于Genesys开发板的实现构想

根据上面所述的预期实现功能与技术指标,并结合Genesys开发板的资源,本设计的实现构想:

  1. 使用XILINX公司的Microblaze作为整个系统的中央处理器;

  2. 在Microblaze软核处理器系统中进行PeatLinux操作系统的移植;

  3. 使用进行图像数据的传输;

  4. 通过有线以太网的通讯方式与FTP服务器进行连接,并下载FTP服务器里的视频数据进行播放或存储在本地的U盘上;

  5. 使用带有HDMI的LCD液晶显示器作为显示设备;

2.2.3 Genesys开发板上的资源利用情况

根据设计的要求,Genesys开发板上的硬件资源既能满足本设计的硬件需求又能显示出其优越的性能。表格 1为本设计在Genesys开发板上的资源利用情况。

表格 1 本设计在Genesys开发板上的资源利用情况

Genesys开发板的硬件资源

本设计中的使用情况

Adept USB2

DDR 256MByte

HDMI Video

10/100/1000 Ethernet PHY

Basic I/O

16 X 2 LCD

High-Speed Expansion

iMPACT USB2

StrataFlash 32Mbyte

AC-97 Audio Codec

USB Host

Clock Gen

RS-232 Port

Pmod Port Expansion

第3章 系统详细设计

3.1 系统硬件平台设计

3.1.1 系统的硬件构成

本系统的硬件设计由以下部分构成:MicroBalze处理器、中断控制器XPS INTC、XPS Timer/Counter定时器/计数器、XPS BRAM接口控制器、外部存储器控制器XPS MCH EMC、多端口存储器控制器 XPS MPMC,DMA控制器XPS DMA、外设控制器 XPS EPC、三态以太网MAC核 XPS LL TEMAC、XPS TFT控制器、串口控制器XPS UART 16650、通用IO控制器 XPS GPIO、XPS PS2等控制器组成。图4为本系统的结构框图。

其中,MicroBalze处理器、中断控制器XPS INTC、XPS Timer/Counter定时器/计数器构成了移植Petalinux基本硬件平台。多端口存储器控制器 XPS MPMC连接外部的DDR2 SODIMM,外部存储器控制器XPS MCH EMC连接外接的Flash。XPS EPC提供USB Host功能用来连接U盘。XPS LL TEMAC 核用来提供以太网接入。XPS TFT 控制器连接HDMI接口,驱动LCD的显示。XPS UART 16650 连接串口,作为移植PetaLinux的调试接口。XPS PS2 IPCore 连接PS2接口,在本设计中连接鼠标,提供用户操作接口。

图 4 系统结构框图

3.1.2 系统所需的IP核简介

为了提高设计性能和缩短设计周期,本设计将会充分利用Xilinx公司所提供的多个IP核进行开发设计。本设计中将会使用到的IP核以及使用该IP核的理由如下所述:

  1. 软处理器 本设计使用的处理器IP核为MicroBlaze。MicroBlaze内核是一款32位 RISC 哈佛架构软核处理器,具有丰富的、针对嵌入式应用进行了优化的指令集。MicroBlaze 拥有超过 70 种配置选项,支持从超小型嵌入式微控制器到运行 Linux 的高性能嵌入式计算机的各种配置。这种灵活性的核心在于两种版本的 MicroBlaze:针对面积进行了优化的 MicroBlaze(带有3级指令执行流水线)和针对性能进行了优化的 MicroBlaze(带有5级指令执行流水线)。

  2. 中断控制器 设计中,选取了XPS Interrupt Controller IP Core该中断控制器。该控制器具有如下特征:作为32bit的从设备连接到32、64或128位的PLB总线上;可配置的中断输入数目;触发沿可设置为上升沿或下降沿。

  3. 定时器 设计中需要使用定时器来为PetaLinux产生时钟节拍,设计中选了XPS Timer/Counter,是用于连接PLB总线上的32位定时器。该IP同时具有如下特征:作为32bit的从设备连接到32、64或128位的PLB总线上;其PLB接口支持字节使能;可编程的定时器位宽;PWM输出。

  4. DDR2控制器 选用XPS MPMC IP Core作为本系统的DDR2内存控制器。该控制器具有如下特点:支持SDMA;支持单速率内存(SDR)和双速率内存(DDR/DDR2/DDR3/LPDDR);支持错误检验、性能显示和寄存器调试功能。

  5. 片上Block RAM控制器 选用BRAM Interface Controller作为片上Block RAM的控制器。该控制器具有如下特点:支持32、64、128位的PLB接口;支持32、64、128位的内部RAM数据宽度;32bit的地址宽度。

  6. FLASH控制器 选用XPS MCH EMC作为外部FLASH存储控制器,该控制器具有如下特点:可作为32bit的从设备连接到32、64或128位的PLB总线上;支持多达4个的外部存储块;支持单beat传输和burst传输;支持同步/异步SRAMs和Nor Flash内存芯片。

  7. DMA控制器 选用XPS Central DMA Controller作为系统的DMA控制器,该控制器具有如下特点:可作为32bit的从设备连接到32、64或128位的PLB总线上;支持一个通道的源地址到目的地址的内存直接读取;提供可编程的源地址、目标地址和传输长度;参数化的本地FIFO深度和burst突发深度;支持不连续块的会输。

  8. U盘控制器 选用XPS External Peripheral Controller作为U盘存储的控制器,该控制器具有如下特点:可作为32bit的从设备连接到32、64或128位的PLB总线上;支持同步或异步的方式与外设通讯;可根据外设芯片来设定数据宽度;可配置的外部总线接口时序。

  9. 以太网控制器 选取XPS LL TEMAC作为本设计的以太网MAC控制器,该控制器具有如下特点:具有2K、4K、8K、16K、32K 字节的接收和发送数据FIFO缓存;过滤错误帧;支持多种PHY接口;全双工操作;支持VLAN帧。

  10. TFT显示控制器 选取XPS TFT Controller作为LCD控制器,该控制器具有如下特点:支持18bit VGA或24bit DVI;支持25MHz 时钟实现640*480分辨率、60Hz刷新率;支持PLB接口与TFT接口的两个独立时钟。

  11. UART控制器 选取XPS 16650 UART作为本设计的串口控制器,该控制器具有以下特征:支持PLB V4.6接口;软硬件上兼容全部16450和16550UARTs;满足所有的串口接口协议。

  12. 通过I/O控制器 设计中选用PLB General Pupose Input/Output来控制LED灯,该控制器可配置为单端或双端GPIO通道;每个GPIO可动态配置为输入或输出口;可生产中断请示。

  13. PS2控制器 本设计中使用XPS PS2 Controller作为鼠标的控制器,该控制器的特征有:作为32bit的从设备连接到32、64或128位的PLB总线上;可配置成单端或双端的PS2控制器;支持两个PS2设备,分别由两个8字节宽的寄存器控制。

3.1.3 移植PetaLinux的可行性分析

Genesy Virtex-5 FPGA Development Board开发板上面有256MB的DDR2 SODIMM、16Mbyte StrataFlash(一共32M字节)。这16Mbyte StrataFlash作为非易失存储器来存放FPGA的配置文件,单个FPGA的配置文件大小不超过2MByte,剩余30M字节供用户使用。PetaLinux一般规则下的最小配置为需要4MByte的DDR2,推荐使用16MByte的DDR2,至少8Mbyte的FLASH。因此,在Genesy Virtex-5 FPGA Development Board开发板上面嵌入MicroBlaze处理器核后,再进行PetaLinux的移植是可行的。本设计采用的嵌入式操作系统为2.6内核的PetaLinux。

3.2 嵌入式系统的选取

支持MicroBlaze 处理器的嵌入式操作系统很多,比如μC/ OS-II、BuleCat ME Linux、RTA MB、 hreadX、PetaLinux等。PetaLinux 操作系统是面向MicroBlaze 软核处理器的全功能嵌入式 Linux 操作系统。其发布采用了“all in one” 的整合方式, 将针对 MicroBlaze 处理器定制的Linux2. 4/ 2. 6 内核源码、 U2boot 源码、相关的开发工具以及开发板参考硬件平台配置,集成在一个压缩包内发行,极大地方便了开发人员的使用。该操作系统主要具有以下几大特点:

  1. 针对 FPGA 嵌入式开发的特点采用了板级支持包。

  2. 自动生成工具,可以根据用户定义的嵌入式硬件平台信息自动生成板级支持包,简化了操作系统的移植。

  3. PetaLinux 发布的源码树中包含了部分常用 IP 核的驱动程序(如 GPIO、 EthernetLite、 UartLite 等) ,减少了用户移植、 编写驱动程序的工作量。

  4. 根据设计的不同需求,可以通过配置菜单将 PetaLinux 配置成without MMU support 和MMU support 两种版本,即μClinux 和标准Linux。

  5. PetaLinux包含了大量的脚本命令(如petalinux2cop2y2autoconfig、petalinux2new2platform、petalinux2new2app等) ,给用户的使用提供了便捷条件。

本题目要求实现以远程更新LCD,FTP是文件传输协议的缩写,它是一种用于文件传输的Internet标准。通常,我们可以认为FTP是一种基于TCP/IP协议的应用程序,它工作在OS网络模型的第七层,TCP协议的应用层上。

完善的内置网络是Linux的一大特点。 Linux在通信和网络功能方面优于其他操作系统。其他操作系统不包含如此紧密地和内核结合在一起的连接网络的能力,也没有内置这些联网特性的灵活性。而Linux为用户提供了完善的、强大的网络功能。

支持Internet是其网络功能之一。Linux免费提供了大量支持Internet的软件,Internet是在Unix领域中建立并繁荣起来的,在这方面使用Linux是相当方便的,用户能用Linux与世界上的其他人通过Internet网络进行通信。

文件传输是其网络功能之二。用户能通过一些Linux命令完成内部信息或文件的传输。

远程访问是其网络功能之三。Linux不仅允许进行文件和程序的传输,它还为系统管理员和技术人员提供了访问其他系统的窗口。通过这种远程访问的功能,一位技术人员能够有效地为多个系统服务,即使那些系统位于相距很远的地方。

PetaLinux强大的网络功能可以很好的完成本题目网络传输的要求,而且随着PetaLinux的不断发展,越来越多的Xilinx公司的IP Core驱动程序(XPX LL TEMAC, XPS UART 16550,XPS GPIO,XPS DMA)加入了其内核中,大大减小了开发的难度,加上linux是开源的,在网上有大量的资源可以获取,从另一方面加速了设计开发的进程。基于以上优点,选择了PetaLinux作为本次设计的嵌入式操作系统。

3.3 嵌入式系统应用程序设计

基于FPGA的LCD显示的远程更新的软件部分可分为FTP客户端模块、视屏播放器模块和图形人机交互模块三部分,其软件的组成结构如图 5所示,它们的作用分别是:

  1. FTP客户端模块:实现FTP客户端的基本功能并提供文件下载的接口函数供上层调用。

  2. 视屏播放器模块:实现视屏文件的播放控制。

  3. 图形人机交互模块:提供整个系统的图形化用户管理接口。

图 5 软件组成

3.3.1 FTP客户端的设计

FTP在TCP/IP协议层间的位置如图 6所示:

图 6 FTP在TCP/IP协议层间的位置

FTP与其他基于TCP协议的应用程序不同,它在客户进程和服务器进程之间使用了两个TCP连接:一个是控制连接,客户端与FTP服务器通过控制连接进行沟通,连接FTP,发送FTP指令都是通过控制连接来完成的,它会一直持续到客户进程与服务器进程之间的会话完成为止;另一个是数据连接,每当有文件在客户机与服务器之间传输时,就建立一个数据连接,数据请求完成后,FTP关闭该段数据连接。FTP采用这种方式将传输控制与数据传输的通道相互分离,最大限度地提高了网络中数据的吞吐量。

视屏录像服务器中保存了视屏录像,假设在视屏录像服务器上也运行了FTP服务器程序,当用户点播实时视频时,本设计以匿名用户登陆FTP服务器将视屏文件的部分先缓存到本地的DDR2 SODIMM中,然后同时进行下载和播放。当用户选择查询视屏录像时,首先将需要观看的视屏下载到本地的U盘中,然后使用播放器进行播放。考虑到文件下载是一种非常耗时的操作,为了提高视屏文件的下载效率,视屏文件的下载操作需要在子线程中完成。

3.3.2 视屏播放器模块的设计

视屏播放器模块准备在PeatLinux上面移植Mplayer播放器。MPlayer是Linux上的视屏播放器,它的功能十分强大,能够播放众多格式的文件,在X86 PC机上运行很稳定,也可以把它移植到非X86CPU上的嵌入式系统中来。相对其它播放器来说,其资源占用非常少,不需要任何系统解码器就可以播放各种媒体格式,对于MPEG/XviD/DivX格式的文件支持尤其好。MPlayer能使用众多本地的Xanim,RealPlayer和Win32 DLL编解码器,播放大多数MPEG、VOB、AVI、OGG、VIVO、ASF/WMV、QT/MOV、FLI、RM、NuppelVideo、yuv4mpeg、FILM、RoQ文件。借助于MPlayer你能观看VideoCD、SVCD、DVD、3ivx、RealMedia和DivX格式的电影。MPlayer的另一个大的特色是支持广泛的输出设备,它可以在X11、Xv、DGA、OpenGL、SVGAlib、fbdev、Aalib、DirectFB下工作,而且你也能使用GGI和SDL(由此使用它们支持的各种驱动模式)和一些低级的硬件相关的驱动模式。这个播放器能很稳定地播放被破坏的MPEG文件,并且它能播放Windows media player都打不开的有损坏的AVI文件,甚至,没有索引部分的AVI文件也可以播放。

Mplayer播放器采用了MEncoder解码器。MEncoder采用的编解码器包是libavcodec,这个编解码器包可以在多种平台上对Cinepak、DV、H.263、H.264/MPEG-4 AVC、HuffYUV、Indeo、MJPEG、MPEG-1、MPEG-2、MPEG-4 Part 2、RealVideo、Sorenson、Theora、WMV编码格式的视频流进行解码,它同时也是已知完成这些任务最快的解码器。

Mplayer移植到嵌入式平台时,编译后的可执行程序的大小在10~16MByte之间,由于Genesys开发板只有30MByte的Flash可以使用,所以不将Mplayer编译后的可执行文件放在文件系统中,而是将它存储在U盘中,待运行时再将它加载到开发板上执行。

3.3.3 图形人机交互模块

本设计以鼠标作为用户输入接口,采用带有HDMI接口的LCD显示器作为输出设备,利用QT 2.2.0进行图形界面的设计。QT/E是跨平台的C++图形用户界面(GUI)工具包,它是著名的QT开发商TrollTech发布的面向嵌入式系统的QT版本,Qt是目前KDE等项目使用的GUI支持库,许多基于Qt的X Windows程序可以非常方便地移植到嵌入式Qt/Embedded版本上。自从Qt/Embedded发布以来,就有许多嵌入式Linux开发商利用Qt/Embedded进行嵌入式GUI应用开发。

Qt/Embedded是一个多平台的C++图形用户界面开发工具包,它注重与能给用户提供精美的图形界面所需的所有元素,而且其开发过程是基于面向对象的编程思想,而且Qt/embedded支持真正的组建编程。

整个设计的软件工程流程图,如图 7所示:

图 7 系统的软件流程图

3.4 调试环境的搭建说明

根据前面的设计要求,本设计在调试时需要用到视频录像服务器。但由于实际条件的限制,故使用带有千兆以太网口的高性能PC作为视频服务器。



评论


相关推荐

技术专区

关闭