首页 > 

基于linux平台的全彩LED显示屏脱机控制系统设计

来源:
时间:2015-08-04 21:05:43
热度:

基于linux平台的全彩LED显示屏脱机控制系统设计1 引言高分辨率LED显示屏的应用日益广泛,而目前国内LED显示屏的播放控制系统主要采用联机方式来实现,即PC机+视频发送板,通

1 引言   高分辨率LED显示屏的应用日益广泛,而目前国内LED显示屏的播放控制系统主要采用联机方式来实现,即PC机+视频发送板,通过千兆以太网或者光纤,将视频实时发送到LED显示屏端的视频接收板上完成显示。   这种方式具有良好的人机操作界面和优秀的视频显示质量,对于近距离LED显示屏联机播放是一种重要的显示手段。而对于超长距离、户外LED显示屏而言,联机播放显然需要付出很高的代价才能实现,有些场合甚至无法实现。   而脱机方式在这些场合则显示出其独特的优势。脱机方式的特点在于无人值守,专用性强,占用资源少,经济便携。同时可以通过一定的控制途径如Internet、GSM网络等可对播放过程及内容进行实时的干预和修改。目前国内的脱机控制系统多由嵌入式系统如单片机、 SOC、DSP、RISC处理器等实现。   大多数脱机控制卡只能显示较小的分辨率,支持伪彩或者单色,不能播放高质量的视频。本设计旨在实现具有高分辨率、高质量视频播放、流媒体播放、多区域显示等功能的小型专用LED脱机播放系统。 本文将从系统的硬件结构和原理、软件各模块设计与实现、性能测试及结论三个方面进行说明。   2 脱机播放系统的硬件结构和工作原理   目前国内LED屏脱机控制系统多采用高性能RISC处理器作为核心,典型的以ARM9为核心的 SoC芯片工作频率大多在200~600MHz之间。然而显示方面的性能依然比较低下,大多数芯片,典型的如S3C24X0,通过内部集成LCD控制器来实现显示功能,一般只支持到640X480的显示分辨率,16bit颜色深度。   处理器芯片内置的LCD控制器是在系统内存中设置一小部分作为帧存(frame Buffer),LCD控制器使用一个专用的高速DMA通道不断地读取帧存中的象素数据到FIFO memory中,最后生成视频时序输出到外部LCD接口,因此视频显示直接占用系统总线带宽。支持更高的分辨率和色彩深度意味着占用更多的系统带宽,比如 1024×768分辨下,24位深度,60Hz场频的显示输出,显示占用的系统带宽在1.1Gbps以上。小型嵌入式系统有限的总线带宽显然不可能很好地支持高分辨率真彩显示。   另一方面,对于一般的2D图形操作如象素复制、缩放、色空间转换等需要软件实现,处理器对frame Buffer的频繁操作带来的系统性能下降十分突出,极大的影响了CPU在视频解码方面的效率。   鉴于上述分析,使用普通的面向手持设备的嵌入式体系结构无法满足全彩大型LED屏幕的显示要求,本文选择了工业级ARM芯片S3C2440+SM501显示加速协处理器的解决方案,从根本上解决了上述分析两个影响显示性能的关键问题。 图1 脱机播放系统硬件组成框图   3 建立嵌入式Linux系统平台   Linux内核具有体积小,效率高,成熟稳定,源代码开放,资源丰富,内核直接提供丰富的网络协议,支持多种文件系统等诸多优点。本课题移植了Linux2.6.18内核,该版本内核具有稳定性好、开发工具支持度好的优点。这部分工作主要包括:   1)针对硬件平台移植u-boot.   2)剪裁并交叉编译Linux内核。移植USB存储盘、DM9000A网络芯片、SM501显卡的驱动到内核   3)交叉编译busybox,生成ext2格式的Initrd文件系统镜像   4)通过u-boot将内核和Initrd镜像烧写到Nand Flash上,设置内核启动参数和u-boot启动命令来启动内核   经过上述工作,建立了一个小型化的嵌入式Linux平台。限于篇幅,本文对嵌入式Linux平台的建立细节问题不深入介绍。   4 LED显示屏脱机专用播放软件设计与实现   LED显示屏脱机播放软件的主要设计目标是支持视频播放、图片显示、多区域显示、流媒体播放、远程控制。由于整个软件项目比较庞大,本文将只选择几个关键模块进行详细说明,并侧重介绍软件方面如何利用SM501来实现高性能显示及视频播放。对流媒体播放和远程控制部分不做介绍。   5 结论   本文采用高速MCU和SM501嵌入式显卡作为硬件平台,突破了嵌入式系统在显示性能上的瓶颈,接口明确。在软件上移植了Linux2.6内核作为软件平台,在效率和可移植性方面做了较好平衡,运用了良好的软件设计思想,开发出具有开放式体系结构的 LED脱机播放软件。该系统已经成功应用于全彩LED显示屏的脱机播放和控制。
Baidu
map