APP下载

基于串并行通信架构的全彩高阶光立方设计

2018-07-27王仁杰

微型电脑应用 2018年7期
关键词:灯珠信号线级联

王仁杰

(复旦大学 信息科学与工程学院,上海 200433)

0 引言

显示技术一直是研究的热点,也是交互体验中常见的方式。传统的平面显示技术已十分成熟,但是形式单一、立体性不强,新颖性和互动性远不如3D显示技术。在公共空间中,越来越多的裸眼3D技术开始使用。相较于全息投影类的裸眼3D技术,光立方由LED组成像素点,因其成本更低廉,显示效果稳定,不易受环境干扰等优点受到了越来越多的关注。

传统的3D光立方系统,通常采用逐层刷新的方法,各个层面上的LED灯珠依次被刷新为对应的亮度,并基于人眼的视觉暂留效应,呈现出立体动态效果。这种传统光立方设计方法存在着如下缺陷:电路结构复杂、颜色单一、亮度不足、阶数不高。

本文提出了一种全新的光立方设计架构,大大简化了电路架构的复杂性,使得设计更高阶的光立方矩阵更具可行性。同时引入的RGB灯珠,实现的全彩效果,互动体验效果更佳。此外,采用FPGA控制系统,提高了通信吞吐能力,并依靠多引脚、并行运行结构增强了对立体阵列的驱动能力。

1 传统的光立方原理架构

传统光立方大多是8×8×8的单色LED点阵,文献[1-2]中进行了描述,如图1所示。

图1 传统光立方整体架构

具体分解为8层,每层8×8=64个点阵,总共有512个LED灯珠。显然,对于控制系统而言,不可能对每一个灯珠分别分配一个独立的控制信号来控制其亮灭。如文献[3]所述,传统的方法是利用视觉暂留原理,逐层扫描点亮阵列,如图2所示。

图2 传统光立方同一层LED驱动方式

第i层面上所有的8×8=64颗LED灯珠的阴极全部由对应的层选择信号Layeri控制。而LED阳极的信号在同一层内是彼此独立的信号(LED1、LED2、…、LED64)。为了进一步分解64个独立的LED阳极信号,文献[4]使用锁存器,以此节省主控芯片的GPIO资源。

传统架构每层需要的LED阳极控制信号数量为M=N2,阳极控制信号数量M随阶数N的增加,以平方关系迅速增加。当N=16时,阳极控制信号M高达256,这对于硬件资源而言是极大的消耗。因此,受限于硬件资源,光立方的阶数难以提高。对于N=8的LED阵列,帧率为Fs,单颗灯的最大亮度为Lmax。此外,在一帧Ts=1/Fs内,每一层的LED灯被点亮的时隙数为式(1)。

(1)

这就导致了每颗灯工作室平均亮度最大只有1/N×Lmax,而各层间的帧率则应为式(2)。

FL=N*Fs

(2)

所以,阶数N提高的同时又限制了光立方的刷新速度和亮度。此外,为了达到不同的灰度需求还需要在Tlayer的时隙内完成至少一个周期的PWM调制驱动。假定需要NPWM=256阶的PWM驱动,那PWM的时钟频率需要至少达到为式(3)。

FPWM=NPWM/Tlayer=NPWM×N×Fs

(3)

而正常驱动一颗LED只需FPWM=NPWM×Fs。可以看出随着光立方N的增加,PWM的驱动频率和驱动电路也需要更高的要求。

由此则可以看到传统光立方设计方法存在如下缺点:

(1)电路结构复杂,每一个灯珠需同时与层内和层间的控制信号相连接,形成一个矩阵框架,电路焊接复杂,不易布设;

(2)亮度偏低,因为LED灯只在其被刷新的时隙被点亮,假定层数为N,则只能显示单颗LED灯最大亮度的1/N的亮度;

(3)阶数N有限,当阶数或层数N增加时,对于刷新率的要求会越来越高,同时,系统亮度也更低;

(4)颜色单一,通常是单一颜色的LED灯构成的立体矩阵,缺乏色彩的变化。

2 新型全彩高阶光立方架构

2.1 基于串行级联通信的光立方架构

基于串行级联通信架构的光立方架构中,为每一颗LED灯配置了一颗芯片。一方面,芯片具备串行级联通信功能,通过级联可以将LED的RGB信息逐级传递;另一方面,芯片具备LED驱动能力,可生成PWM信号恒流驱动LED的R、G、B 3个通道。以WS2811芯片为例,集成了芯片和RGB灯珠的串联级联电路示意图,其结构简洁,将芯片依次级联即可,如图3所示。

图3 串行级联电路示意图

WS2811的时序逻辑,如表1所示。

表1 串行级联通信协议表

在一帧数据刷新过程中,首先经过一个大于50us的复位时隙,而后是一个个以24bits为单位的数据时隙中。每个芯片收到的第一组24bits数据被锁存到内部寄存器中,分别表示8bits的RGB信息,剩余的数据则经整形放大后继续向后续传递。内部锁存的数据用来生成PWM信号并驱动LED的RGB 3个通道。如此便可通过一根数据线DIN(Data_In)对级联的所有灯珠实现全彩控制。

实际使用时,也有将通信IC直接封装在灯珠内的应用产品,例如WS2812灯珠,其优点是集成度更高。而外置IC相较下的优点则是系统的供电电压、灯珠功率等可调性更大。两者各有优点,但结构框架是完全一致的。与传统光立方结构不同,如图4所示。

新提出的改进结构以每一个纵列XZ平面为单位,整个光立沿Y方向共分布C个纵列。每个XZ平面的具体实现结构,如图5所示。

图4 新型光立体整体架构

图5 XZ平面上串行级联结构示意图

整个平面上的B根灯柱只需要一根信号线就可以串联控制,串联信号DIN由进入一根灯柱后,先进入第1颗LED,接着自下而上依次向上传递至灯柱顶部的第A颗LED,而后输出的DIN信号向后输入到后面的灯柱,如此依次传递,实现对整个XZ平面上所有A×B颗灯珠的控制。而Y方向上的C个XZ平面组成的纵列,共需C个独立的控制信号DIN1…DINC即可。

2.2 级联通信光立方架构与传统架构的指标对比

对比可见,基于级联通信的光立方架构,有着如下优点:

第一,布设简单,摆脱了图1中传统光立方架构行列纵横导致的复杂架构;由于通信方式简单,只需一根DIN信号线就可以控制整个XZ平面的所有灯珠,而各个不同XZ平面则彼此独立。

第二,节省硬件资源,可以轻易实现更高阶的立体矩阵。以N×N×N(N=32)的光立方为例,传统光立方在同一层需要多达N2=1024根阳极控制信号,同时,不同层还需要N=32根可同时驱动整层1024颗灯的阴极信号,对于驱动能力也要求极高。而通信芯片WS2811在满足帧率30fps时,单根DIN信号可同时支持XZ平面上的32×32=1024颗灯珠,同时使用N=32根DIN信号线,则可以控制N×N×N(N=32)的光立方,若进一步增加DIN信号线的数量,则可以实现更大体量的光立方架构。因而基于通信的光立方可以将传统方案中N2+N根信号线优化为仅需N根信号线。

第三,灯珠亮度更高、色彩更丰富,而且支持RGB灯珠,实现了全彩体验。在传统结构中,由于N层依次刷新,原本额定亮度Lmax的灯珠实际只可达到1/N×Lmax,随着层数N的增加,灯珠的亮度越来越小。而基于通信的架构避免了逐层扫描,每颗灯珠均可按照额定的Lmax亮度工作,因此,该方式灯珠更亮。此外,WS2811通信芯片可以支持RGB灯珠,所以可以进一步实现全彩控制,体验更丰富。

2.3 基于并行通信的光立方架构

与上述串行级联通信的光立方架构不同,采用并行通信的方式也是可以实现的。

以DMX512类型芯片UCS512A1为例,其并行通信电路,如图6所示。

图6 并联电路示意图

该芯片的信号输入端公用一根数据线DIN。DIN数据包是所有芯片共享的,每个芯片依据自身独立的地址编码ID,从DIN传输的数据包中获取匹配的色彩信息RGBID,而后锁存数据并驱动LED灯的RGB三通道。此外,需要额外配置一根写码数据线,其仍旧采用串行级联通信方式,与表1的格式相似。在电路布设初期,写码线用来对所有芯片逐级编码,芯片收到ID后写入E2PROM,该ID信息可断电保存,一经编码完成,可以持续使用。

通过该并行结构设计光立方架构时,其整体架构与串行级联通信架构的光立方相似,在图4中,以每一个纵列XZ平面为单位,整个光立方有延Y方向共分布C个纵列,而每个XZ平面彼此独立。

所不同的是,在XZ平面内实现结构则采用了并行通信方法,如图7所示。

首先,需要增加一根写码信号线PI,依照串行级联的方式,先进入第1颗灯珠,自下而上依次向上传递至灯柱顶部的第A颗灯珠,而后向后依次输入到后面的灯柱。编码一经完成不再需要重复编码。实际工作时,只需将所有灯珠的芯片均并联到同一根信号线DIN上,即可实现对XZ平面上所有A×B颗灯珠。同样,Y方向上的C个XZ平面纵列,也只需C个独立控制信号即可。

图7 XZ平面上并联结构示意图

与串行级联结构相似,改并联通信的光立方架构同样具备布设简单、通信方式简单、节省硬件资源、阶数更高、亮度更高、色彩更丰富的特点。对比串行级联结构,并联通信的架构中,需要多增加一根写码信号线,同时为了达到足够的驱动能力还需要增设一个放大缓冲电路,因而电路结构更复杂一些。但是其也有明显的优点,即系统稳定性更好。在串行结构中,若一颗或多颗芯片损坏则会导致整个级联链路受损,后续的电路则无法工作,而并联架构中,因为所有的芯片并联在同一信号线DIN,而不存在级联依赖关系,所以即使一些芯片损坏,剩余的芯片仍旧可以正常工作。

3 基于FPGA的光立方系统实现

3.1 基于FPGA的光立方系统架构

相较于普通的单片机,FPGA具备硬件资源丰富、多单元并行处理、时序控制能力强等一系列处理。文献[5]将FPGA应用到了LED点阵的设计,处理的是2D平面点阵。文献[6-7]将FPGA应用到了光立方设计中,但仍是基于传统光立方的扫描架构。本文的新型光立方系统采用Altera公司Cyclone IV系列的FPGA芯片EP4CE6E22C8作为主控单元。整个FPGA系统的架构,如图8所示。

上位机是用来计算绘制实时的动态效果,并将其转化为光立方阵列中各个LED像素点的色彩信息。而后与FPGA的通信接口交互,将数据实时下发到FPGA主控系统。

FPGA主控系统主要由通信接口、数据处理单元、数据存储单元及驱动单元4个模块构成。

第一,通信接口有两种方式。其一,TCP/IP接口,该接口通讯协议复杂,实现相对困难,但是可以支持100 Mbps甚至更高的传输速率,对于高阶、高动态、高刷新率的光立方系统支持更好;其二,则是串口通信,其最常用的速率为115 200 bps,通过适当的USB转串口硬件的支持,最高可以达到921 600 bps,其优点是实现简单,对于数据更新速率不高的系统同样可以较好支持。

图8 FPGA系统架构图

第二,数据处理单元主要用来解析上位机下发的数据,并将像素色彩信息更新至相应的RAM存储区。

第三,数据存储单元是利用FPGA的片上资源配置的C个RAM,每一个RAM用来存储光立方中相应XZ平面的色彩信息,而当FPGA内部资源不足时,则可通过外接RAM芯片支持更多的像素点。驱动单元则是按照固定的刷新频率,定期访问RAM区域,然后数据按照串行或者并行架构的通信协议将数据信号DIN传输至对应的XZ平面。

3.2 基于FPGA的光立方实物

实物体验图片,如图9所示。

图9 新型光立方实物体验图

在图9中,该新型光立方结构清晰,由于避免了传统光立方结构纵横交错的布线方式,布设简单,体验者也可以自由的进入光立方内部参观,体验效果更好。由于场地空间受限,该光立方矩阵为15×9×8,但基于FPGA系统可以实现32×32×32甚至更大规模的光立方。该光立方矩阵基于上位机传输的点阵像素信息,实时刷新立体阵列给用户以更好的体验。

4 总结

本文阐述了传统光立方存在的结构复杂、亮度偏低、阶数有限、颜色单一的缺点。为了避免传统光立方纵横交错、逐层扫描的工作架构,引入了串行级联结构和并联结构两种新的设计思路,详细阐述了带通信功能的LED驱动芯片的工作原理,并基于此设计了新型光立方架构。该新型结构设计简易、通信简单、硬件资源节省、阶数更高、灯珠更亮并且色彩丰富。此外,为了驱动该新型光立方,设计了基于FPGA的主控系统,其具备通信接口、数据处理单元、数据存储单元及驱动单元4个功能模块,并验证了整个光立方系统的可行性。

猜你喜欢

灯珠信号线级联
铀浓缩厂级联系统核安全分析
迈腾B8L 轿车灯光系统应急模式控制策略及开关监测信号线作用研究
图形化编程与炫彩多变的灯珠矩阵
LED 成品灯具中铝基板通用不同品牌3030-LED灯珠焊盘的设计
三类矩形微屏蔽线主模截止波长特性的矢量有限元计算
使用LED点光源实现均匀照明效果的要点探究
富集中间组分同位素的级联
—— “T”级联
聊聊蓄电池的那点事儿小小信号线也能让蓄电池亏电
基于级联MUSIC的面阵中的二维DOA估计算法
多组分同位素分离中不同级联的比较研究