基于SoC FPGA芯片的异步全彩LED显示控制器解决方案
摘要:本文分析了市场上常见的异步全彩LED显示控制方案,提出了基于京微雅格Soc FPGA的针对门楣广告应用的优化解决方案。在单主控的情况下实现了高灰度,高刷新的异步全彩LED显示,方案性价比高。
1 LED显示屏市场概况
全彩LED显示被普遍应用于户外及室内的大型广告、舞台背景等场合(大多是同步显示),随着价格的下降,全彩LED显示已经开始被使用于门楣广告(异步显示)。当前门楣广告一般采用单双色LED显示,市场需求大。与单双LED相比,全彩LED能够展现更丰富的内容,如真彩图片,动画,视频等,全彩LED显示将是门楣广告屏的发展趋势。
图1:中国LED显示屏产值(数据来源:GLII)
2 市场流行方案的介绍
目前市场上比较流行的方案有以下几种:
1) ARM-CortexA8 + FPGA解决方案:
图2:ARM-CortexA8 + FPGA方案框图
特点:功能齐全,其中ARM Cortex-A8可以实现对主流视频格式的解码,但是方案成本偏高,对于门楣广告这种小屏显示的使用场景来说有些浪费。
2) ARM Cortex-M4解决方案:
图3:ARM Cortex-M4方案框图
特点:结构简单,但是由于没有使用FPGA,ARM Cortex-M4的实时性及速度无法满足全彩LED显示的控制要求,所以只能实现"七彩"显示,而不能实现真正意义上的全彩显示。
3) FPGA解决方案:
图4:单FPGA方案框图
特点:是同步全彩控制系统的一个衍生产品,实现简单的录制,功能相对单一。
3 京微雅格SoC FPGA方案
京微雅格CME-M5系列 FPGA集成了增强型8051 MCU,兼容标准8051指令集,12倍于标准8051的MIPS,频率最高可达200MHz,支持高达8MB数据及代码空间扩展,支持硬件32/16- bit MDU(Multiplication Division Unit),128K Byte SPRAM,可作为8051的代码或数据存储器,集成片上调试系统OCDS,支持JTAG在线调试;外设有3个16-bit定时器,1个16-bit看门狗,1个I2C接口,1个SPI接口,2个USART接口,1个RTC实时时钟,8通道DMA;支持STOP,IDLE电源管理模式。支持基于 MSS(Microcontroller Subsystem)的系统编程、系统多配置、系统在线更新、动态频率切换等特性。CME-M5内部结构框图见图5。
图5:京微雅格CME-M5器件结构框图
在本设计中,增强型 8051实现以太网TCP/IP协议栈,实现对NandFlash / SD卡的访问,显示特效处理,并调度FPGA功能模块实现LED显示。FPGA则负责LED刷新控制,其功能包含:灰度控制、刷新率控制、亮度控制、伽马校正等。PC提供人机交互,让用户通过上位机软件编辑"节目",即需要最终在LED屏上显示的内容,包含文本,图片,视频以及显示特效,例如百叶窗,流水等;最后上位机软件把"节目"转换成特定的数据文件通过以太网传送给CME-M5,由CME-M5把接收到的数据文件写入NandFlash/SD卡。系统框图如下:
图6:基于CME-M5解决方案框图
CME-M5 FPGA功能描述
1)伽马校正
根据LED的响应特性,需要对输入的8位灰度值进行伽马校正,使之映射到14~16位灰度值,这部分功能是FPGA通过查表方式的实现的。伽马校正的参数可以通过PC上位机进行修改。
2)灰度控制
下面以8bit/256级灰度作为例子,阐述LED灰度控制原理。对于RGB三基色LED显示,256级灰度意味着R、G、B各使用8bit来表示灰度值(2^8=256,即256级灰度)。每颗LED有独立的R、G、B三个信号供FPGA分别控制。
全彩LED驱动芯片通常分为自带PWM的恒流源以及不带PWM的恒流源。接下来以不带PWM的驱动芯片MBI5024为例介绍灰度控制原理。MBI5024的内部结构框图见图7。 FPGA向SDI送入每个像素点R/G/B灰度值,OUT0~OUT15连接LED的R/G/B,OE_n控制对应每bit灰度值点亮LED时间的长短。 8bit/256级灰度控制,通常使用19场方式,假设子场的周期为T,那么一个刷新周期的总时间为19T。19场被分为8份,时间分别为 8T,4T,2T,1T,1T,1T,1T,1T;OE_n有效时间分别为8T,4T,2T,1T,1/2T,1/4T,1/8T,1/16T。
以下介绍如何对R进行灰度控制,G,B的灰度控制原理是类似的。8T对应8bit灰度值的最高位R[7],其刷新的时间长度为8T;4T对应8bit灰度值的次高位R[6],其刷新的时间长度为4T……1/16T对应最低位R[0],其刷新的时间长度为1/16T。如图8所示, R[7]在T0周期送出,R[6]在T1周期送出,R[5]在T2周期送出……R[0]在T7周期送出。
OUT0~OUT15分别连接第0颗~第15颗LED的R。使用Ri[j]表示第i颗LED的R灰度值的第j位,以下是操作流程:
1. SDI移入 {R0[7], R1[7],
CortexA8 SoC FPGA LED显示 ARM 相关文章:
- DE0-Nano-SoC 套件 / Atlas-SoC 套件(10-30)
- 高压电池组监视器可实现先进的电池系统(10-14)
- 如何最大化延长即使具有老化电池的汽车电池组运行时间(08-14)
- 高准确度 60V 电量计如何测量电量?(09-12)
- Cypress电容式触控元件出货量突破10亿颗(08-14)
- 瑞萨电子3大ADAS检测系统解决方案简述(02-08)