您当前的位置:五五电子网电子知识单片机-工控设备DSP/FPGA技术基于ARM和FPGA的全彩独立视频LED系统 正文
基于ARM和FPGA的全彩独立视频LED系统

基于ARM和FPGA的全彩独立视频LED系统

点击数:7135 次   录入时间:03-04 11:56:46   整理:http://www.55dianzi.com   DSP/FPGA技术
  引 言

      目前显示屏按数据的传输方式主要有两类:一类是采用与计算机显示同一内容的实时视频屏;另一类为通过USB、以太网等通信手段把显示内容发给显示屏的独立视频源显示屏,若采用无线通信方式。

       还可以随时更新显示内容,灵活性高。此外,用一套 嵌入式 系统取代计算机来提供视频源,既可以降低成本,又具有很高的可行性和灵活性,易于工程施工。因此,独立视频源LED显示系统的需求越来越大。

      本系统采用ARM+FPGA的架构,充分利用了 arm 的超强处理能力和丰富的接口,实现真正的网络远程操作,因此不仅可以作为一般的LED显示屏控制器,更可以将各显示节点组成大型的户外广告传媒网络。而FPGA是一种非常灵活的可编程逻辑器件,可以像软件一样编程来配置,从而可以实时地进行灵活而方便的更改和开发,提高了系统效率。

      1 独立视频LED系统

       LED显示屏的主要性能指标有场扫描频率、分辨率、灰度级和亮度等。分辨率指的是控制器能控制的LED管的数量,灰度级是对颜色的分辨率,而亮度高则要求每个灰度级的显示时间长。显然,这3个指标都会使得场扫描频率大幅度降低,因此需要在不同的场合对这些指标进行适当的取舍。通常灰度级、亮度和场扫描频率由单个控制器决定,而分辨率可以通过控制器阵列的方式得到很大的提高。这样,每个控制器的灰度和亮度很好,场扫描频率也适当,再通过控制器阵列的形式,实现大的控制面积,即可实现颜色细腻的全彩色超大屏幕的LED显示控制器。

       独立视频LED系统完全脱离计算机的控制,本身可以实现通信、视频播放、数据分发、扫描控制等功能。为了实现大屏幕、全彩色、高场频,本系统采用控制器阵列模式,如图1所示。

       系统可以通过网络接口(以太网接口)由网络 服务器 端更新本地的数据,视频播放部分则通过对该数据进行解码,获得RGB格式的视频流。再通过数据分发单元,将这些数据分别发送到不同的LED显示控制器上,控制器将播放单元提供的数据显示到全彩色大屏幕LED上。

       2 通信接口和视频播放单元

       本系统的通信接口和视频播放部分由 arm +uC linux 实现。ARM(Advanced RISC Machine)是英国 arm 公司设计开发的通用32位RISC微处理器体系结构,设计目标是实现微型化、低功耗、高性能的微处理器。Linux作为一种稳定高效的开放源码式操作系统,在各个领域都得到了广泛的应用,而uC linux 则是专门针对微控制领域而设计的Linux系统,具有可裁减、内核小、完善的网络接口 协议 和接口、优秀的文件系统以及丰富的开源资源等优点,正被越来越多的 嵌入式 系统采纳。系统中使用Intel XScale系列的PXA255芯片,与ARM v5TE指令集兼容,沿用了ARM的内存管理、中断处理等机制,并在此基础上做了一些扩展,如DMA控制器、LCD控制器等。由于 arm 9的处理能力有限,目前只用其播放320×240像素的视频。

       系统视频播放的数据来自于系统中的SD 存储 卡(Secure Digital Memory Card)。更新SD卡的数据有两种方式:一种是用计算机更新SD卡的数据;另一种是通过网络接收 服务器 的数据,直接由 arm 更新SD卡。此外,播放器也可以直接播放网络传送的MPEG-4格式数据。由于XScale未提供物理层接口,若想实现网络功能需外接一片物理层芯片。本系统选用SMSC公司的高性能100M以太网控制器LAN9118。

       3 视频数据分发

       由于控制器采用阵列模式,因此需要对视频源提供的数据进行分发,将不同行列的数据正确地送入不同的控制器。

       3.1 数据分发单元方案

       本系统中的LED控制器灰度级高达3×12位(可显示多达64G种颜色)、控制区域为128×128点。系统播放单元提供的数据为320×240像素,因此需要分解成6个LED控制器来控制(见图1)。因此,需要将PXA255提供的RGB数据分3组发送到这6块控制器,以FPGA实现,方案如图2所示。

       LCD接口子模块接收PXA255 LCD接口的数据和控制信号,将这些输入的数据进行逐点校正之后存入SDRAM。然后将该场数据分成3组,每组128行(最后一组只有64行,为了后面控制板的一致性,此处由总线调度器补零),同时发送,之后由LED显示控制器处理。

       3.2 存储 器分配和总线调度

       为了方便各模块间的接口,有利于不同时钟域的数据同步,系统的存储器采用两级存储模式,即SDRAM作为主存储器,而各模块也有相应FIFO作为Cache。SDRAM具有容量大、带宽高、价格便宜等优点;但是控制比较复杂,每次读写有多个控制和等待周期。因此为了提高效率,通常采用地址递增的猝发读写方式,而不能像SRAM那样随时读取任意地址的数据。

       本方案采用完全动态的内存分配机制,即每个模块请求时,如果不是同一场数据,则可以分配到一块新的内存,而一旦该内存的数据不再有效,则释放这块内存。这样,每块内存都有自己的属性,标志是使用中的内存,还是空闲内存,以及当前内存中的数据是否在等待被使用的队列中,因此内存需要分成3块。其中一块存储逐点校正参数,一块存储当前场数据,另一块存储上一场数据(即正在发送的数据)。这就要求在一个场同步周期内需要将数据发送完毕,而这一要求是完全可以达到的。

       总线调度是本模块的核心部分,必须精确计算总线带宽的占用情况,确定各部分FIFO的深度,



www.55dianzi.com

以保证各个FIFO不会出现溢出或读空的现象。

       总线调度器需要调度3块存储器,还需要为每一个模块维护一个偏移地址的首地址,以及一个偏移地址计数寄存器。为了便于计算偏移地址,用SDRAM物理上的两行存储一行的数据,而将多余部分空余。

       总线调度器的仲裁算法为:逐点校正参数与校正后数据写入SDRAM的优先级一样,采用先来先得的方式占用总线,分别由各自FIFO的指针来触发总线占用。一场数据写入SDRAM完毕之后,开始发送。需要依次读出第n、n+128、n+256行的数据给数据发送FIFO0、1、2,等待数据发送单元启动发送。

       3.3 LCD接口和逐点校正

       PXA255的LCD接口配置为smart panel形式,具体时序关系可参考PXA255的手册。FPGA根据这些时序关系,将数据读入,进行下一步的处理。

       由于在生产过程中LED管的参数不可能完全一致,因此为了获得良好的图像显示效果,必须对LED管进行筛选。这也是LED屏价格昂贵的一个重要原因。

       采用逐点校正技术,可逐点调节LED的亮度,将显示屏亮度的一致性提高一个数量等级,从而可以使采购厂商放宽LED在亮度和颜色方面的要求,LED采购的成本也随之大大降低。此外,系统采用的逐点校正技术,可以在线修改校正参数,使得LED屏在投入运营之后也可以修改校正参数,补偿由于LED管老化对显示效果的影响,提高LED屏的使用寿命。因此,逐点校正技术使LED模块作为室内外全彩色显示屏的基本元件成为理想方案。

       逐点校正参数存于SD卡中,在系统上电之后, arm 首先将该数据通过LCD接口(此时配置为GPIO)传送到FPGA,FPGA将其存入SDRAM中。此后,即可对LCD接口输入的数据进行校正。

       3.4 数据发送

       在数据发送时,每行数据作为1帧,加入特定的帧头之后开始发送。为了减少总线数量,采用串行总线形式,每组信号共有4路,分别是源同步时钟和RGB三基色的串行数据。信号均以LVDS(Low Voltage Differential Signal,低电压差分信号)的形式传输。LVDS采用差分方式传送数据,有比单端传输更强的共模噪声抑制能力,可实现长距离、高速率和低功耗的传输。ALTEra公司的Cyclone II系列FPGA可以方便地通过I/O配置获得LVDS的能力。

       发送帧头由4字节的同步头+数据当前行号+ID号组成。由于图像的连续像素值的相关性比较高,因此使用伪随机码作为同步头,其同步性能比较可靠。当前行号用于控制器判断是否出现丢帧,并根据当前的行号决定当前数据的存储地址。由于每一组数据实际上由两个控制器分别处理(见图1),所以需要判断标志来截取不同的数据部分。ID号即是不同控制器截取某行中不同列数的标准,数据在发送时ID为零。

[1] [2]  下一页


本文关键字:暂无联系方式DSP/FPGA技术单片机-工控设备 - DSP/FPGA技术