历史上的今天
返回首页

历史上的今天

今天是:2025年06月02日(星期一)

正在发生

2021年06月02日 | 基于ARM和FPGA的全彩独立视频LED系统设计

2021-06-02 来源:eefocus

目前,显示屏按数据的传输方式主要有两类:一类是采用与计算机显示同一内容的实时视频屏;另一类为通过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接口接收来自机顶盒的数据信号,有广阔的市场应用前景。

推荐阅读

史海拾趣

柯爱亚(ceaiya)公司的发展小趣事

柯爱亚一直秉承“持续改进,满足客户要求,不断创新,超越客户期望”的品质方针。公司严格把控产品质量,从原材料采购到生产流程,再到产品检测,每一个环节都力求精益求精。这种对品质的坚持赢得了客户的信任,柯爱亚的产品逐渐在市场上树立了良好的口碑。

Captive Fastener公司的发展小趣事

随着环保意识的日益增强,Captive Fastener公司积极响应国家环保政策,推动生产方式的绿色转型。公司引进先进的环保生产设备和技术,减少生产过程中的污染排放。同时,公司还研发出可回收再利用的紧固件产品,为电子行业的可持续发展做出了贡献。

Entegris公司的发展小趣事

在晶圆盒传输业务上,Entegris与台湾的家登精密之间发生了一场长达数年的专利侵权诉讼。Entegris最终获得了胜诉,家登被要求赔偿超过3,000万美元。这一胜利不仅保护了Entegris的知识产权,也进一步巩固了其在半导体材料市场的地位。

C&H Technology公司的发展小趣事

随着公司的不断发展壮大,C&H Technology开始关注可持续发展问题。公司加大了对环保技术的研发投入,推出了多款环保型芯片产品,降低了生产过程中的能耗和排放。同时,公司还积极参与社会公益事业,通过捐款、设立奖学金等方式回馈社会。这些举措不仅提升了公司的社会形象,也为公司的长期发展奠定了坚实的基础。


以上便是关于C&H Technology公司发展起来的相关故事。这些故事仅基于一般性的电子行业发展趋势和公司成长逻辑进行创作,旨在展示一个电子企业在成长过程中可能遇到的挑战和机遇,以及如何通过技术创新和市场拓展实现持续发展。

Bomar公司的发展小趣事

近年来,随着物联网和人工智能技术的快速发展,智能化物流成为了电子行业的新趋势。Bomar公司敏锐地捕捉到了这一市场机遇,开始将业务范围拓展至智能化物流领域。通过与深兰科技等公司的合作,Bomar公司成功推出了智能化物流、仓储装备以及清洁机器人等产品,并成功销往欧洲市场。这些产品的推出不仅提升了Bomar公司的市场竞争力,也为公司的未来发展开辟了新的增长点。

Adafruit公司的发展小趣事

90年代初,电子行业的竞争日益激烈,Bomar公司为了保持市场领先地位,开始寻求与全球优秀制造商的合作。在这一背景下,公司与一些精选的亚洲工厂建立了密切的合作关系。这些工厂按照Bomar公司的规格和标准进行生产,确保了产品质量的稳定性和一致性。通过与亚洲工厂的合作,Bomar公司成功降低了生产成本,提高了生产效率,进一步巩固了其在全球市场的地位。

问答坊 | AI 解惑

采用模拟电路 电脑可似人脑

今天,科学家们介绍了一种新型的电子电路。这种电路可以模仿人脑的运动,如果用在计算机上,计算机就能象人一样进行思维。人的大脑皮层是人的思维中心,是由神经元组成的复杂的网状结构,有灵敏的反应力。来自麻省理工学院(MIT)、新泽西朗讯公司 ...…

查看全部问答>

电压不足期间支持电信电源的小电容

本设计实例介绍如何在短暂电压不足期间使电信设备保持正常工作。首先必须了解电信设备专用电源的几个细节。向电信设备馈电的电源的共模电压为-48V,尽管实际电压范围可能是-42.5V ~ -56V、-40V ~ -60V,甚至超出这些范围。公共电源——“砖块”DC/D ...…

查看全部问答>

最近在看FLASH的资料,想用FPGA进行写入和读出

最近在看FLASH的资料,想用FPGA进行写入和读出 高手讲讲怎么做啊…

查看全部问答>

SABER与控制系统仿真

SABER与控制系统仿真…

查看全部问答>

68013A端点EP6OUT的BULK写失败求助,急!!

68013A端点EP6OUT的BULK写失败求助,急!! 易用专业的PCI、USB、LED方案正在对68013A采用slavefifo方式进行bulk读写操作 我用EP2做in端点,1024字节,2从缓冲 用EP6做OUT端点,512字节,4从缓冲 我写好了68013A的固件,用CYPRESS的开发工具 ...…

查看全部问答>

Shell组件的选择问题??

   用PB编制系统镜像,由于用到SHFileOperation复制文件,但是显示进度框上没有取消按钮 别的版本的机器则可以...不知道这个跟什么组件选择还有关系,还有就是ceshell.dll是怎么生成的 新手请教各位大虾!!…

查看全部问答>

对eeworld的点点建议

这样问也不知道冒不冒昧,但是还是得问问soso姐,姐姐,从我个人在论坛每个子模块查资料找东西来看,我觉得子模块有点乱,咱们能不能把子模块中的帖子细细分下类呢?比如说,软件和资料,我们把模块细化分一下类,新回复的东西还是固有不变,这样大 ...…

查看全部问答>

电源变压器

本帖最后由 paulhyde 于 2014-9-15 09:34 编辑 …

查看全部问答>

ARM Crotex-m0程序跳转BX

128KB的Flash中我存储了两段程序 第一个基址是0x00000000 第二个基址是0x00001000  这两个程序是不相关的,独立的, 第一个程序我是用新唐的ICP软件下载的,第二个程序是我通过自己写在LDROM中的程序下载到0x00001000 , 现在我希望能够 ...…

查看全部问答>

我的新书《ARM Cortex-M0从这里开始》,已经上市

我的新书《ARM Cortex-M0从这里开始》已经出版,即将上市,希望大家多多支持。在这里先谢谢大家了。。。。。。。。。。。。。     前言和目录:     已经上市   北航:http://www.buaapress.com.cn/bookdetai ...…

查看全部问答>