首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

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

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

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 源码、相关的开发工具以及开发板参考硬件平台配置,集成在一个压缩包内发行,极大地方便了开发人员的使用。该操作系统主要具有以下几大特点:

  • 针对 FPGA 嵌入式开发的特点采用了板级支持包。
  • 自动生成工具,可以根据用户定义的嵌入式硬件平台信息自动生成板级支持包,简化了操作系统的移植。
  • PetaLinux 发布的源码树中包含了部分常用 IP 核的驱动程序(如 GPIO、 EthernetLite、 UartLite 等) ,减少了用户移植、 编写驱动程序的工作量。
  • 根据设计的不同需求,可以通过配置菜单将 PetaLinux 配置成without MMU support 和MMU support 两种版本,即μClinux 和标准Linux。
  • PetaLinux包含了大量的脚本命令(如petalinux2cop2y2autoconfig、petalinux2new2platform、petalinux2new2app等) ,给用户的使用提供了便捷条件。
本题目要求实现以FTP协议远程更新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所示,它们的作用分别是:
  • FTP客户端模块:实现FTP客户端的基本功能并提供文件下载的接口函数供上层调用。
  • 视屏播放器模块:实现视屏文件的播放控制。
  • 图形人机交互模块:提供整个系统的图形化用户管理接口。

图 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上的[url=]视屏[/url]播放器,它的功能十分强大,能够播放众多格式的文件,在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作为视频服务器。
记录学习中的点点滴滴,让每一天过的更加有意义!
返回列表