王仁杰
(復(fù)旦大學 信息科學與工程學院,上海 200433)
顯示技術(shù)一直是研究的熱點,也是交互體驗中常見的方式。傳統(tǒng)的平面顯示技術(shù)已十分成熟,但是形式單一、立體性不強,新穎性和互動性遠不如3D顯示技術(shù)。在公共空間中,越來越多的裸眼3D技術(shù)開始使用。相較于全息投影類的裸眼3D技術(shù),光立方由LED組成像素點,因其成本更低廉,顯示效果穩(wěn)定,不易受環(huán)境干擾等優(yōu)點受到了越來越多的關(guān)注。
傳統(tǒng)的3D光立方系統(tǒng),通常采用逐層刷新的方法,各個層面上的LED燈珠依次被刷新為對應(yīng)的亮度,并基于人眼的視覺暫留效應(yīng),呈現(xiàn)出立體動態(tài)效果。這種傳統(tǒng)光立方設(shè)計方法存在著如下缺陷:電路結(jié)構(gòu)復(fù)雜、顏色單一、亮度不足、階數(shù)不高。
本文提出了一種全新的光立方設(shè)計架構(gòu),大大簡化了電路架構(gòu)的復(fù)雜性,使得設(shè)計更高階的光立方矩陣更具可行性。同時引入的RGB燈珠,實現(xiàn)的全彩效果,互動體驗效果更佳。此外,采用FPGA控制系統(tǒng),提高了通信吞吐能力,并依靠多引腳、并行運行結(jié)構(gòu)增強了對立體陣列的驅(qū)動能力。
傳統(tǒng)光立方大多是8×8×8的單色LED點陣,文獻[1-2]中進行了描述,如圖1所示。
圖1 傳統(tǒng)光立方整體架構(gòu)
具體分解為8層,每層8×8=64個點陣,總共有512個LED燈珠。顯然,對于控制系統(tǒng)而言,不可能對每一個燈珠分別分配一個獨立的控制信號來控制其亮滅。如文獻[3]所述,傳統(tǒng)的方法是利用視覺暫留原理,逐層掃描點亮陣列,如圖2所示。
圖2 傳統(tǒng)光立方同一層LED驅(qū)動方式
第i層面上所有的8×8=64顆LED燈珠的陰極全部由對應(yīng)的層選擇信號Layeri控制。而LED陽極的信號在同一層內(nèi)是彼此獨立的信號(LED1、LED2、…、LED64)。為了進一步分解64個獨立的LED陽極信號,文獻[4]使用鎖存器,以此節(jié)省主控芯片的GPIO資源。
傳統(tǒng)架構(gòu)每層需要的LED陽極控制信號數(shù)量為M=N2,陽極控制信號數(shù)量M隨階數(shù)N的增加,以平方關(guān)系迅速增加。當N=16時,陽極控制信號M高達256,這對于硬件資源而言是極大的消耗。因此,受限于硬件資源,光立方的階數(shù)難以提高。對于N=8的LED陣列,幀率為Fs,單顆燈的最大亮度為Lmax。此外,在一幀Ts=1/Fs內(nèi),每一層的LED燈被點亮的時隙數(shù)為式(1)。
(1)
這就導(dǎo)致了每顆燈工作室平均亮度最大只有1/N×Lmax,而各層間的幀率則應(yīng)為式(2)。
FL=N*Fs
(2)
所以,階數(shù)N提高的同時又限制了光立方的刷新速度和亮度。此外,為了達到不同的灰度需求還需要在Tlayer的時隙內(nèi)完成至少一個周期的PWM調(diào)制驅(qū)動。假定需要NPWM=256階的PWM驅(qū)動,那PWM的時鐘頻率需要至少達到為式(3)。
FPWM=NPWM/Tlayer=NPWM×N×Fs
(3)
而正常驅(qū)動一顆LED只需FPWM=NPWM×Fs??梢钥闯鲭S著光立方N的增加,PWM的驅(qū)動頻率和驅(qū)動電路也需要更高的要求。
由此則可以看到傳統(tǒng)光立方設(shè)計方法存在如下缺點:
(1)電路結(jié)構(gòu)復(fù)雜,每一個燈珠需同時與層內(nèi)和層間的控制信號相連接,形成一個矩陣框架,電路焊接復(fù)雜,不易布設(shè);
(2)亮度偏低,因為LED燈只在其被刷新的時隙被點亮,假定層數(shù)為N,則只能顯示單顆LED燈最大亮度的1/N的亮度;
(3)階數(shù)N有限,當階數(shù)或?qū)訑?shù)N增加時,對于刷新率的要求會越來越高,同時,系統(tǒng)亮度也更低;
(4)顏色單一,通常是單一顏色的LED燈構(gòu)成的立體矩陣,缺乏色彩的變化。
基于串行級聯(lián)通信架構(gòu)的光立方架構(gòu)中,為每一顆LED燈配置了一顆芯片。一方面,芯片具備串行級聯(lián)通信功能,通過級聯(lián)可以將LED的RGB信息逐級傳遞;另一方面,芯片具備LED驅(qū)動能力,可生成PWM信號恒流驅(qū)動LED的R、G、B 3個通道。以WS2811芯片為例,集成了芯片和RGB燈珠的串聯(lián)級聯(lián)電路示意圖,其結(jié)構(gòu)簡潔,將芯片依次級聯(lián)即可,如圖3所示。
圖3 串行級聯(lián)電路示意圖
WS2811的時序邏輯,如表1所示。
表1 串行級聯(lián)通信協(xié)議表
在一幀數(shù)據(jù)刷新過程中,首先經(jīng)過一個大于50us的復(fù)位時隙,而后是一個個以24bits為單位的數(shù)據(jù)時隙中。每個芯片收到的第一組24bits數(shù)據(jù)被鎖存到內(nèi)部寄存器中,分別表示8bits的RGB信息,剩余的數(shù)據(jù)則經(jīng)整形放大后繼續(xù)向后續(xù)傳遞。內(nèi)部鎖存的數(shù)據(jù)用來生成PWM信號并驅(qū)動LED的RGB 3個通道。如此便可通過一根數(shù)據(jù)線DIN(Data_In)對級聯(lián)的所有燈珠實現(xiàn)全彩控制。
實際使用時,也有將通信IC直接封裝在燈珠內(nèi)的應(yīng)用產(chǎn)品,例如WS2812燈珠,其優(yōu)點是集成度更高。而外置IC相較下的優(yōu)點則是系統(tǒng)的供電電壓、燈珠功率等可調(diào)性更大。兩者各有優(yōu)點,但結(jié)構(gòu)框架是完全一致的。與傳統(tǒng)光立方結(jié)構(gòu)不同,如圖4所示。
新提出的改進結(jié)構(gòu)以每一個縱列XZ平面為單位,整個光立沿Y方向共分布C個縱列。每個XZ平面的具體實現(xiàn)結(jié)構(gòu),如圖5所示。
圖4 新型光立體整體架構(gòu)
圖5 XZ平面上串行級聯(lián)結(jié)構(gòu)示意圖
整個平面上的B根燈柱只需要一根信號線就可以串聯(lián)控制,串聯(lián)信號DIN由進入一根燈柱后,先進入第1顆LED,接著自下而上依次向上傳遞至燈柱頂部的第A顆LED,而后輸出的DIN信號向后輸入到后面的燈柱,如此依次傳遞,實現(xiàn)對整個XZ平面上所有A×B顆燈珠的控制。而Y方向上的C個XZ平面組成的縱列,共需C個獨立的控制信號DIN1…DINC即可。
對比可見,基于級聯(lián)通信的光立方架構(gòu),有著如下優(yōu)點:
第一,布設(shè)簡單,擺脫了圖1中傳統(tǒng)光立方架構(gòu)行列縱橫導(dǎo)致的復(fù)雜架構(gòu);由于通信方式簡單,只需一根DIN信號線就可以控制整個XZ平面的所有燈珠,而各個不同XZ平面則彼此獨立。
第二,節(jié)省硬件資源,可以輕易實現(xiàn)更高階的立體矩陣。以N×N×N(N=32)的光立方為例,傳統(tǒng)光立方在同一層需要多達N2=1024根陽極控制信號,同時,不同層還需要N=32根可同時驅(qū)動整層1024顆燈的陰極信號,對于驅(qū)動能力也要求極高。而通信芯片WS2811在滿足幀率30fps時,單根DIN信號可同時支持XZ平面上的32×32=1024顆燈珠,同時使用N=32根DIN信號線,則可以控制N×N×N(N=32)的光立方,若進一步增加DIN信號線的數(shù)量,則可以實現(xiàn)更大體量的光立方架構(gòu)。因而基于通信的光立方可以將傳統(tǒng)方案中N2+N根信號線優(yōu)化為僅需N根信號線。
第三,燈珠亮度更高、色彩更豐富,而且支持RGB燈珠,實現(xiàn)了全彩體驗。在傳統(tǒng)結(jié)構(gòu)中,由于N層依次刷新,原本額定亮度Lmax的燈珠實際只可達到1/N×Lmax,隨著層數(shù)N的增加,燈珠的亮度越來越小。而基于通信的架構(gòu)避免了逐層掃描,每顆燈珠均可按照額定的Lmax亮度工作,因此,該方式燈珠更亮。此外,WS2811通信芯片可以支持RGB燈珠,所以可以進一步實現(xiàn)全彩控制,體驗更豐富。
與上述串行級聯(lián)通信的光立方架構(gòu)不同,采用并行通信的方式也是可以實現(xiàn)的。
以DMX512類型芯片UCS512A1為例,其并行通信電路,如圖6所示。
圖6 并聯(lián)電路示意圖
該芯片的信號輸入端公用一根數(shù)據(jù)線DIN。DIN數(shù)據(jù)包是所有芯片共享的,每個芯片依據(jù)自身獨立的地址編碼ID,從DIN傳輸?shù)臄?shù)據(jù)包中獲取匹配的色彩信息RGBID,而后鎖存數(shù)據(jù)并驅(qū)動LED燈的RGB三通道。此外,需要額外配置一根寫碼數(shù)據(jù)線,其仍舊采用串行級聯(lián)通信方式,與表1的格式相似。在電路布設(shè)初期,寫碼線用來對所有芯片逐級編碼,芯片收到ID后寫入E2PROM,該ID信息可斷電保存,一經(jīng)編碼完成,可以持續(xù)使用。
通過該并行結(jié)構(gòu)設(shè)計光立方架構(gòu)時,其整體架構(gòu)與串行級聯(lián)通信架構(gòu)的光立方相似,在圖4中,以每一個縱列XZ平面為單位,整個光立方有延Y方向共分布C個縱列,而每個XZ平面彼此獨立。
所不同的是,在XZ平面內(nèi)實現(xiàn)結(jié)構(gòu)則采用了并行通信方法,如圖7所示。
首先,需要增加一根寫碼信號線PI,依照串行級聯(lián)的方式,先進入第1顆燈珠,自下而上依次向上傳遞至燈柱頂部的第A顆燈珠,而后向后依次輸入到后面的燈柱。編碼一經(jīng)完成不再需要重復(fù)編碼。實際工作時,只需將所有燈珠的芯片均并聯(lián)到同一根信號線DIN上,即可實現(xiàn)對XZ平面上所有A×B顆燈珠。同樣,Y方向上的C個XZ平面縱列,也只需C個獨立控制信號即可。
圖7 XZ平面上并聯(lián)結(jié)構(gòu)示意圖
與串行級聯(lián)結(jié)構(gòu)相似,改并聯(lián)通信的光立方架構(gòu)同樣具備布設(shè)簡單、通信方式簡單、節(jié)省硬件資源、階數(shù)更高、亮度更高、色彩更豐富的特點。對比串行級聯(lián)結(jié)構(gòu),并聯(lián)通信的架構(gòu)中,需要多增加一根寫碼信號線,同時為了達到足夠的驅(qū)動能力還需要增設(shè)一個放大緩沖電路,因而電路結(jié)構(gòu)更復(fù)雜一些。但是其也有明顯的優(yōu)點,即系統(tǒng)穩(wěn)定性更好。在串行結(jié)構(gòu)中,若一顆或多顆芯片損壞則會導(dǎo)致整個級聯(lián)鏈路受損,后續(xù)的電路則無法工作,而并聯(lián)架構(gòu)中,因為所有的芯片并聯(lián)在同一信號線DIN,而不存在級聯(lián)依賴關(guān)系,所以即使一些芯片損壞,剩余的芯片仍舊可以正常工作。
相較于普通的單片機,F(xiàn)PGA具備硬件資源豐富、多單元并行處理、時序控制能力強等一系列處理。文獻[5]將FPGA應(yīng)用到了LED點陣的設(shè)計,處理的是2D平面點陣。文獻[6-7]將FPGA應(yīng)用到了光立方設(shè)計中,但仍是基于傳統(tǒng)光立方的掃描架構(gòu)。本文的新型光立方系統(tǒng)采用Altera公司Cyclone IV系列的FPGA芯片EP4CE6E22C8作為主控單元。整個FPGA系統(tǒng)的架構(gòu),如圖8所示。
上位機是用來計算繪制實時的動態(tài)效果,并將其轉(zhuǎn)化為光立方陣列中各個LED像素點的色彩信息。而后與FPGA的通信接口交互,將數(shù)據(jù)實時下發(fā)到FPGA主控系統(tǒng)。
FPGA主控系統(tǒng)主要由通信接口、數(shù)據(jù)處理單元、數(shù)據(jù)存儲單元及驅(qū)動單元4個模塊構(gòu)成。
第一,通信接口有兩種方式。其一,TCP/IP接口,該接口通訊協(xié)議復(fù)雜,實現(xiàn)相對困難,但是可以支持100 Mbps甚至更高的傳輸速率,對于高階、高動態(tài)、高刷新率的光立方系統(tǒng)支持更好;其二,則是串口通信,其最常用的速率為115 200 bps,通過適當?shù)腢SB轉(zhuǎn)串口硬件的支持,最高可以達到921 600 bps,其優(yōu)點是實現(xiàn)簡單,對于數(shù)據(jù)更新速率不高的系統(tǒng)同樣可以較好支持。
圖8 FPGA系統(tǒng)架構(gòu)圖
第二,數(shù)據(jù)處理單元主要用來解析上位機下發(fā)的數(shù)據(jù),并將像素色彩信息更新至相應(yīng)的RAM存儲區(qū)。
第三,數(shù)據(jù)存儲單元是利用FPGA的片上資源配置的C個RAM,每一個RAM用來存儲光立方中相應(yīng)XZ平面的色彩信息,而當FPGA內(nèi)部資源不足時,則可通過外接RAM芯片支持更多的像素點。驅(qū)動單元則是按照固定的刷新頻率,定期訪問RAM區(qū)域,然后數(shù)據(jù)按照串行或者并行架構(gòu)的通信協(xié)議將數(shù)據(jù)信號DIN傳輸至對應(yīng)的XZ平面。
實物體驗圖片,如圖9所示。
圖9 新型光立方實物體驗圖
在圖9中,該新型光立方結(jié)構(gòu)清晰,由于避免了傳統(tǒng)光立方結(jié)構(gòu)縱橫交錯的布線方式,布設(shè)簡單,體驗者也可以自由的進入光立方內(nèi)部參觀,體驗效果更好。由于場地空間受限,該光立方矩陣為15×9×8,但基于FPGA系統(tǒng)可以實現(xiàn)32×32×32甚至更大規(guī)模的光立方。該光立方矩陣基于上位機傳輸?shù)狞c陣像素信息,實時刷新立體陣列給用戶以更好的體驗。
本文闡述了傳統(tǒng)光立方存在的結(jié)構(gòu)復(fù)雜、亮度偏低、階數(shù)有限、顏色單一的缺點。為了避免傳統(tǒng)光立方縱橫交錯、逐層掃描的工作架構(gòu),引入了串行級聯(lián)結(jié)構(gòu)和并聯(lián)結(jié)構(gòu)兩種新的設(shè)計思路,詳細闡述了帶通信功能的LED驅(qū)動芯片的工作原理,并基于此設(shè)計了新型光立方架構(gòu)。該新型結(jié)構(gòu)設(shè)計簡易、通信簡單、硬件資源節(jié)省、階數(shù)更高、燈珠更亮并且色彩豐富。此外,為了驅(qū)動該新型光立方,設(shè)計了基于FPGA的主控系統(tǒng),其具備通信接口、數(shù)據(jù)處理單元、數(shù)據(jù)存儲單元及驅(qū)動單元4個功能模塊,并驗證了整個光立方系統(tǒng)的可行性。