王仁杰
(復旦大學 信息科學與工程學院,上海 200433)
顯示技術一直是研究的熱點,也是交互體驗中常見的方式。傳統的平面顯示技術已十分成熟,但是形式單一、立體性不強,新穎性和互動性遠不如3D顯示技術。在公共空間中,越來越多的裸眼3D技術開始使用。相較于全息投影類的裸眼3D技術,光立方由LED組成像素點,因其成本更低廉,顯示效果穩定,不易受環境干擾等優點受到了越來越多的關注。
傳統的3D光立方系統,通常采用逐層刷新的方法,各個層面上的LED燈珠依次被刷新為對應的亮度,并基于人眼的視覺暫留效應,呈現出立體動態效果。這種傳統光立方設計方法存在著如下缺陷:電路結構復雜、顏色單一、亮度不足、階數不高。
本文提出了一種全新的光立方設計架構,大大簡化了電路架構的復雜性,使得設計更高階的光立方矩陣更具可行性。同時引入的RGB燈珠,實現的全彩效果,互動體驗效果更佳。此外,采用FPGA控制系統,提高了通信吞吐能力,并依靠多引腳、并行運行結構增強了對立體陣列的驅動能力。
傳統光立方大多是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燈構成的立體矩陣,缺乏色彩的變化。
基于串行級聯通信架構的光立方架構中,為每一顆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即可。
對比可見,基于級聯通信的光立方架構,有著如下優點:
第一,布設簡單,擺脫了圖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燈珠,所以可以進一步實現全彩控制,體驗更豐富。
與上述串行級聯通信的光立方架構不同,采用并行通信的方式也是可以實現的。
以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,而不存在級聯依賴關系,所以即使一些芯片損壞,剩余的芯片仍舊可以正常工作。
相較于普通的單片機,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平面。
實物體驗圖片,如圖9所示。

圖9 新型光立方實物體驗圖
在圖9中,該新型光立方結構清晰,由于避免了傳統光立方結構縱橫交錯的布線方式,布設簡單,體驗者也可以自由的進入光立方內部參觀,體驗效果更好。由于場地空間受限,該光立方矩陣為15×9×8,但基于FPGA系統可以實現32×32×32甚至更大規模的光立方。該光立方矩陣基于上位機傳輸的點陣像素信息,實時刷新立體陣列給用戶以更好的體驗。
本文闡述了傳統光立方存在的結構復雜、亮度偏低、階數有限、顏色單一的缺點。為了避免傳統光立方縱橫交錯、逐層掃描的工作架構,引入了串行級聯結構和并聯結構兩種新的設計思路,詳細闡述了帶通信功能的LED驅動芯片的工作原理,并基于此設計了新型光立方架構。該新型結構設計簡易、通信簡單、硬件資源節省、階數更高、燈珠更亮并且色彩豐富。此外,為了驅動該新型光立方,設計了基于FPGA的主控系統,其具備通信接口、數據處理單元、數據存儲單元及驅動單元4個功能模塊,并驗證了整個光立方系統的可行性。