基于linux的全彩LED显示屏脱机控制系统设计
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显示加速协处理器的解决方案,从根本上解决了上述分析两个影响显示性能的关键问题。
S3C2440是以ARM920T为核心,基本工作频率400MHz,最高可达533MHz的一款工业级SoC.其内部集成了RART,USB,I2 C,LCD,NAND,MMC/SD controller等多种常见IO设备控制器。
SM501是一款便携式多媒体协处理器芯片,专门为嵌入式工业提供显示功能,具有视频和2D加速能力。它支持多种输入/输出接口,包括模拟RGB、数字 LCD接口、8位并行接口、USB、UART、IrDA、Zoom Video、AC97或I2S、SSP、PWM和I2 C.SM501的2D引擎包括一个前端色彩空间转换器,支持4∶1和1∶8的比例。LCD视频流水线支持一个YUV色彩空间转换。通过将优化的128位的2D图形引擎和一个与本地帧存储器连接的高带宽链接相结合,SM501提供面向工业的2D图形加速功能。2D图形引擎包含一个命令翻译器(一个增强型的DMA引擎),对于工作在150 MHz的32位数据宽度的SDRAM,SM501的DMA引擎读取2D操作数的带宽可达600 MB/s.SM501支持的最大显示分辨率为1280×1 024,可以轻松支持普通PC显示分辨率1024×768.
整个硬件系统原理如图1示。S3C2440与SM501在slave 模式下通过系统总线连接,SM501连接8MB的本地帧存,S3C2440可以通过系统总线直接访问SM501的本地帧存。系统挂接DM9000A 10/100M网络芯片,上位机脱机控制软件通过Internet网络连接到脱机系统进行实时控制。脱机系统通过网络实现流媒体功能。
对于SM501输出的数字视频,采用FPGA进行采集和分发。SM501与FPGA之间通过LCD数字接口连接,包含24 bit并行象素点RGB数据、象素时钟pclk,行场同步及DE信号。FPGA采集LCD接口输出的象素数据并实时转发到象素位置对应的扫描板,一帧图象传输完毕后,所有扫描板将同时更新显示新图像帧。每个扫描板控制的分辨率为256 × 256,脱机系统最大可以控制1024 × 768分辨率。FPGA内部逻辑详细设计不作为本文讨论的主要内容。
图1 脱机播放系统硬件组成框图
3 软件系统
LED脱机播放软件设计的基本要求包括:系
- 工控机在IC卡加油工程中的应用(05-13)
- 联网汽车为什么选择Linux开源平台?(07-10)
- 多网络和Linux代理的Android无线远程控制系统(02-02)
- 基于嵌入式Linux的家居监控系统设计(02-22)
- 基于嵌入式Linux系统的导航软件设计思路(03-17)
- 新型嵌入式机器视觉系统的设计研究(04-21)