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

发布者:楼高峰最新更新时间:2012-12-08 来源: 维库开发网关键字:ARM  FPGA  视频LED系统 手机看文章 扫描二维码
随时随地手机看文章
  目前,显示屏按数据的传输方式主要有两类:一类是采用与计算机显示同一内容的实时视频屏;另一类为通过USB、以太网等通信手段把显示内容发给显示屏的独立视频源显示屏,若采用无线通信方式,还可以随时更新显示内容,灵活性高。此外,用一套嵌入式系统取代计算机来提供视频源,既可以降低成本,又具有很高的可行性和灵活性,易于工程施工。因此,独立视频源LED显示系统的需求越来越大。

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

  1 独立视频LED系统

  LED显示屏的主要性能指标有场扫描频率、分辨率、灰度级和亮度等。分辨率指的是控制器能控制的LED管的数量,灰度级是对颜色的分辨率,而亮度高则要求每个灰度级的显示时间长。显然,这3个指标都会使得场扫描频率大幅度降低,因此需要在不同的场合对这些指标进行适当的取舍。通常灰度级、亮度和场扫描频率由单个控制器决定,而分辨率可以通过控制器阵列的方式得到很大的提高。这样,每个控制器的灰度和亮度很好,场扫描频率也适当,再通过控制器阵列的形式,实现大的控制面积,即可实现颜色细腻的全彩色超大屏幕的LED显示控制器。独立视频LED系统完全脱离计算机的控制,本身可以实现通信、视频播放、数据分发、扫描控制等功能。为了实现大屏幕、全彩色、高场频,本系统采用控制器阵列模式,如图1所示。


  图1 独立视频LED系统结构

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

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

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


  图2 数据分发单元方案

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

  3.2 存储器分配和总线调度

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

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

  总线调度是本模块的核心部分,必须精确计算总线带宽的占用情况,确定各部分FIFO的深度,以保证各个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为零。

  4 全彩色LED显示控制器

  全彩色LED显示控制器负责接收、转换和处理串入的RGB三基色信号,以一定的规律和方式将信号传送到LED显示屏上显示。控制器直接决定了显示屏的显示效果,也决定了LED显示屏性能的优劣。控制器的结构如图3所示。


  图3 显示控制器结构框图

  控制器的架构与数据分发类似,也采用二级存储模式,主要有数据接收、Gamma校正和交织、扫描控制输出以及总线调度和SDRAM控制四部分。

  4.1 存储器分配和总线调度

  由于数据输入场频与LED扫描场频通常不能成整数倍关系,可能出现输入一场数据结束,该场数据的处理结果(Gamma校正和交织后)需要写入SDRAM,而此时扫描一场没有结束,即正在读的那个区域不能覆盖,而上一场的数据还没有显示也不能覆盖,因此交织地写入(即扫描的读出)需要开辟三块分区。

  总线仲裁算法为:控制输出模块和写人模块采用先来先得的算法,而校正和交织过程的读写,则优先级最低,可以在前面二者申请时被挂起,只有当前二者不再需要总线时,才可以分配到总线的使用权。

  4.2 数据接收

  数据接收单元除了需要同步判决、串并转换之外,还要确定一行中哪些数据需要本控制器处理。控制器截取每行中第128×ID-128×(ID+1)-1列的数据,同时将ID号加1,其他数据原样输出,送给下一级控制器。这样的控制方法比常用的拨码开关法更加灵活可靠。

  4.3 Gamma校正和交织

  Gamma校正可以使LED显示效果更接近于人眼的生理特性,而且由于PXA255输出的是8位数据,系统需要将其校正为12位,大大提高了显示的对比度。由于LED显示控制器采用逐位显示的方法,输入的数据与输出到LED显示屏上的数据组织形式不一样:前者按像素点排列,而后者则按像素数值的不同位数组织。

  4.4 控制输出

  12位数据显示的时间分别为(64,32,16,8,4,2,1,1/2,1/4,1/8,1/16,1/32) * 128 * Tsclk,其中Tsclk为串行移位时钟。交织之后,不同权重的数据显示信号显示有效时间不同,即可达到显示的效果。

  总线调度器将交织后的数据写入本模块的FIFO。由模块内部生成读取该FIFO的控制信号,并对其进行计数。模块内需要对移位个数及权重进行计数,以决定发出锁存信号及显示信号的有效时间。

  5 结论

  实验测试结果表明,该系统亮度合适,使用分辨率细腻(64G色),场扫描频率高(约400 Hz),像素高(320×240点),可用于户外广播级应用。该设计通过逐点调节亮度,从而可以使采购厂商放宽LED在亮度和颜色方面的要求,LED采购的成本也随之降低,从8位增至12位使图像的颜色等级大大增加,特别在低亮度区可使图像完美再现,而Gamma校正则使LED显示屏所进行的亮度变换更符合人眼的生理特点。此外,除接收来自ARM的信号外,还可通过HDMI接口接收来自机顶盒的数据信号,有广阔的市场应用前景。

关键字:ARM  FPGA  视频LED系统 引用地址:甚于ARM和FPGA的全彩独立视频LED系统

上一篇:基于Linux的嵌入式红外热成像系统设计
下一篇:BootLoader与Linux内核的参数传递

推荐阅读最新更新时间:2024-03-16 13:14

使用Theano,Python,PYNQ和Zynq开发定点Deep Recurrent神经网络
可编程逻辑(PLD)是由一种通用的集成电路产生的,逻辑功能按照用户对器件编程来确定,用户可以自行编程把数字系统集成在PLD中。经过多年的发展,可编程逻辑器件由70年代的可编程逻辑阵列器件 (PLD) 发展到目前的拥有数千万门的现场可编程阵列逻辑 (FPGA),随着人工智能研究的火热发展,FPGA的并行性已经在一些实时性很高的神经网络计算任务中得到应用。由于在FPGA上实现浮点数会耗费很多硬件资源,而定点数虽然精度有限,但是对于不同应用通过选择合适的字长精度仍可以保证收敛,且速度要比浮点数表示更快而且资源耗费更少,已经使其成为嵌入式AI和机器学习应用程序的理想选择。 最新的证明点是英国伯明翰大学电子电气和系统工程系的Yufeng
[嵌入式]
Intersil推出针对应用处理器、GPU、FPGA以及系统电源的最小尺寸和最高效率PMIC
瑞萨电子株式会社子公司Intersil今天宣布,推出一款用于应用处理器、GPU、FPGA和高性能系统电源的高度集成且可编程电源管理IC(PMIC)-- ISL91211,在1.1V输出电压下效率可达91%。该新型PMIC的低RDS(on) MOSFET和可编程PWM频率有助于工程师使用更少的外部元件,实现比竞争解决方案小40%的50mm2电源。ISL91211三、四输出PMIC是采用单芯锂离子电池或2.5V – 5.5V电源供电的智能手机、平板电脑、固态硬盘、网络和无线物联网(IoT)设备的理想选择。下面就随电源管理小编一起来了解一下相关内容吧。 Intersil推出针对应用处理器、GPU、FPGA以及系统电源的最小尺寸和最高
[电源管理]
制作ARM Linux交叉编译环境
一、准备工作 首先需要一台运行Linux操作系统的PC以完成我们的编译工作。 其次要准备如下一些源文件。 1、源文件准备 binutils-2.14.tar.gz ftp://ftp.gnu.org/gnu/binutils/binutils-2.14.tar.gz gcc-core-2.95.3.tar.gz ftp://ftp.gnu.org/gnu/gcc/gcc-2.95.3/gcc-core-2.95.3.tar.gz gcc-g++2.95.3.tar.gz ftp://ftp.gnu.org/gnu/gcc/gcc-2.95.
[单片机]
ARM嵌入式平台的VGA接口设计(ADV7120)
大多数嵌入式产品的显示终端都选择LCD,但在某些需要大屏幕显示的应用中,工业级LCD的价格比较昂贵,且现有的大屏幕显示器(包括CRT显示器和LCD显示器)一般都采用统一的15针VGA显示接口.三星公司ARM9芯片S3C2410以其强大的功能和高性价比在目前嵌入式产品中得到广泛的应用.笔者在开发基于ARM嵌入式平台的血液流变测试仪的过程中,成功地利用高性能视频D/A转换芯片ADV7120,将S3C2410自带的LCD扫描式接口转换为VGA接口,使之能够驱动VGA接口的显示器. 1 VGA接口介绍 近年来,业界制定出了众多数字化的显示接口协议,较为典型的是DVI(Digital Visual Interface).由于数字接口
[单片机]
<font color='red'>ARM</font>嵌入式平台的VGA接口设计(ADV7120)
三星S3C6410(ARM1176)平台Android资源获取与编译(RedHat AS5)
1. Android的一些有用的官方网站: http://android.git.kernel.org android源码网站 http://source.android.com http://code.google.com/android http://developer.android.com 2. 安装git源码管理工具 # cd ~ # mkdir bin # echo $PATH # curl http://android.git.kernel.org/repo ~/bin/repo # chmod a+x ~/bin/repo git下载源码方法: 下载一个tree(至当前路径): # git clone
[单片机]
arm-linux-gcc 和Makefile
Makefile文件编写 all: arm-linux-gcc -c -o led_on.o led_on.s arm-linux-ld -Ttext 0 led_on.o -o led_on.elf //arm-linux-ld用于将多个目标文件、库文件链接成可执行文件 -T选项是用来指定代码段、数据段、bss段的起始地址,也可以用来指定一个连接脚本,在脚本中进行更复杂的地址设置 -Ttext 0 指定代码段的起始地址为0 -Tdata 用来指定数据段 -Tbss用来指定bss段的起始地址 arm-linux-objcopy -O binary -S led_on.elf led_on.bin //用来复制一
[单片机]
孙正义:将实现一万亿物联网设备的目标
  去年秋季的 ARM  TechCon上,软银集团总裁孙正义谈到全球将会有一万亿互联设备的概念。为了实现这样一个宏大愿景,需要相应支撑的技术基础特别是定制化的SoC系统,而且技术本身必须是高效、被业界证实的支撑架构,同时还要有广泛的生态系统。下面就随网络通信小编一起来了解一下相关内容吧。   2017年6月20日, ARM 对外宣布对旗下的DesignStart项目进行升级,加入了 ARM Cortex-M3处理器和相关的IP子系统,帮助开发者更简单、更快速、更低风险地实现定制化SoC。   ARM计算产品事业部高级产品营销经理Phil Burr表示:“孙正义提到未来一万亿设备的数字,因为我们已经成为了软银的一部分,所以AR
[网络通信]
QuickLogic的超低功耗FPGA可用于智能手机
QuickLogic公司日前宣布,其Eclipse II QL8150产品推出了8×8mm封装。由于采用了球栅阵列(BGA)封装,该产品所具有的小尺寸架构特别适合小型便携应用,例如智能手机、个人媒体播放器(PMP)和工业手持产品。 这种微细间距BGA(0.5mm)封装在8x8 mm的覆盖区域内有196个焊接点,具有尺寸小而散热功能好的优点,特别适合于小型且有空间限制要求的应用。由于空间有限再加上缺乏有效的冷却机制,一些手持产品需要其内部的半导体部件能够适应温差极大的各种工作环境,而经过特别设计的QL8150 8x8mm BGA对于恶劣环境的适应能力很强,可以在零下40度到零上100度的温度范围内正常工作。该产品全部采用无铅材料进
[新品]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved