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

2021-06-02来源: eefocus关键字:ARM  FPGA  全彩独立视频  LED系统

目前,显示屏按数据的传输方式主要有两类:一类是采用与计算机显示同一内容的实时视频屏;另一类为通过USB、以太网等通信手段把显示内容发给显示屏的独立视频源显示屏,若采用无线通信方式,还可以随时更新显示内容,灵活性高。此外,用一套嵌入式系统取代计算机来提供视频源,既可以降低成本,又具有很高的可行性和灵活性,易于工程施工。因此,独立视频源LED显示系统的需求越来越大。


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


1 独立视频LED系统


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

图1 独立视频LED系统结构



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


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


本系统的通信接口和视频播放部分由ARMuClinux实现。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块。其中一块存储逐点校正参数,一块存储当前场数据,另一块存储上一场数据(即正在发送的数据)。这就要求在一个场同步周期内需要将数据发送完毕,而这一要求是完全可以达到的。


总线调度是本模块的核心部分,必须精确计算总线带宽的占用情况,确定各部分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系统 编辑:什么鱼 引用地址:http://news.eeworld.com.cn/mcu/ic537281.html

上一篇:系统总结ARM的优势
下一篇:基于嵌入式系统的隔离硬件设计

关注eeworld公众号 快捷获取更多信息
关注eeworld公众号
快捷获取更多信息
关注eeworld服务号 享受更多官方福利
关注eeworld服务号
享受更多官方福利

推荐阅读

ARM裸机开发(二)——ARM异常处理
一、ARM异常分类异常就是正常的用户程序被暂时中止,处理器就进入异常模式。ARM CPU的异常分为:复位异常、中断异常(IRQ,FIR)、预取指令中止异常、未定义指令异常、软件中断指令异常、数据中止访问异常。1、复位异常当CPU刚上电时或按下reset重启键之后进入该异常,该异常在管理模式下处理。2、中断(IRQ、FIQ)异常CPU和外部设备是分别独立的硬件执行单元,CPU对全部设备进行管理和资源调度处理,CPU要想知道外部设备的运行状态,要么CPU定时的去查看外部设备特定寄存器,要么让外部设备在出现需要CPU干涉处理时“打断”CPU,让它来处理外部设备的请求,毫无疑问第二种方式更合理,可以让CPU“专心”去工作,这里的“打断
发表于 2021-07-12
<font color='red'>ARM</font>裸机开发(二)——<font color='red'>ARM</font>异常处理
ARMarm·ad转换器
A/D转换器A/D转换器,又称模/数转换器,顾名思义,就是把模拟信号数字化。由于系统的实际处理对象往往都是一些模拟量(如温度、压力、位移、图像等),要使计算机或数字仪表能识别和处理这些信号,必须首先将这些模拟信号转换成数字信号,这就必须用到A/D转换器。A/D转换器的一般步骤模拟信号进行A/D转换的时候,从启动转换到转换结束输出数字量,需要一定的转换时间,在这个转换时间内,模拟信号要基本保持不变。否则转换精度没有保证,特别当输入信号频率较高时,会赞成很大的转换误差。要防止这种误差的产生,必须在A/D转换开始时将输入信号的电平保持住,而在A/D转换结束后,又能跟踪输入信号的变化。因此,一般的A/D转换过程是通过取样、保持、量化和编码这
发表于 2021-07-12
ARM】s3c2410之gpio调试
调试准备编译工具:MDK470a开发板:s3c2410调试方式:经mdk编译后得到 hex文件,用hex2bin工具转换成bin文件,通过usb下载,在DNW上观察<Code-1>#define GPFCON (*(volatile unsigned long*)0x56000050)#define GPFDAT (*(volatile unsigned long*)0x56000054)//===PORT F GROUP//端口:     GPF7      GPF6     GPF5     GPF
发表于 2021-07-12
ARM】s3c2410中断处理实例
目的为了更好地掌握S3C2410中断的原理及中断程序的编写。内容利用S3C2410的外部中断0和外部中断1实现两个按键功能原理本次选择的是外部中断EXTINT0和EXTINT11。中断的产生分别来自按钮SB1202和SB1203,当按钮按下时,EXTINT0(对应管脚GPF0)或EXTINT11(对应管脚GPG3)和地连接,输入低电平,从而向CPU发出中断请求。当CPU受理后,进入相应的中断服务程序,通过超级终端的主窗口显示当前进入的中断号。程序#include "2410addr.h"//这头文件找了好久啊,mdk里面没有,后来在一个实例中提取出来的#include "2410lib.h"v
发表于 2021-07-12
arm串行通信
#include "2410lib.h"void  uart0_test(void);int main(int argc,char **argv){   sys_init();   uart_printf("n Embest Arm S3CEB2410 Evaluation Boardn");while(1)   {       uart0_test();   }        }void uart0_test
发表于 2021-07-12
基于DSP ARM的并联有源电力滤波器控制器
简介:针对三相系统采用了一种基于直流侧电容电压控锘lJl51的APF控制算法,从瞬时有功和无功功率在系统中传递的角度出发,以调节电网输入APF的有功功率为目标,直接对输入电流进行控制,省去了检测有功和无功电流分量的繁琐过程,使检测谐波的过程变得简单。并设计了一种基于DSP和ARM的全数字并联APF控制器。1 引言近年来,随着电力电子设备及非线性、冲击性设备的广泛应用。在电网中产生的谐波对电网系统造成了严重的污染,因此消除电网中的谐波污染已成为电能质量研究的一个重要课题。目前普遍采用的并联型无源滤波器存在着滤波效果差,对电网参数敏感。元件体积庞大。严重时会导致串并联谐振事故等缺陷。采用现代电力电子技术、数字信号处理(DSP)技术
发表于 2021-07-09
基于DSP <font color='red'>ARM</font>的并联有源电力滤波器控制器
小广播
何立民专栏 单片机及嵌入式宝典

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

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2021 EEWORLD.com.cn, Inc. All rights reserved