高恭嫻,鮑安平
(南京信息職業技術學院 電子信息學院,江蘇 南京 210046)
LED視頻顯示屏由于亮度高、視角廣、壽命長、功耗低、性價比高[1],而且具有可與計算機同步顯示各種文字、圖形、圖像,可實時播放電視、錄像、影碟等視頻信號,可即時輸入、編輯各種多媒體數據等優點,使其在街頭、廣場、商業中心、運動場所、娛樂場所、控制中心等許多公共場合得到了廣泛的應用。
隨著人們對視覺要求的不斷提高,如何在LED大屏幕上實現自由立體顯示成為急待解決的問題。為此,筆者提出了一種新的解決方案,使得在LED顯示屏上實現自由立體顯示成為可能,同時還降低了立體真彩LED顯示系統的復雜性。
由自由立體顯示原理可知,要實現LED立體顯示除了有立體信號源,對外還需要有自由立體LED顯示屏和控制系統。由于自由立體顯示的一幀畫面需要一對圖像數據,和現有的LED大屏幕顯示器相比,要達到同樣的顯示規模其顯示數據量增加一倍,掃描速度也增加一倍,因此選擇Altera的Nois結構。該結構的特點是具有嵌入式系統IP軟核,含有很多接口模塊,包括可配置高速緩存模塊、SDRAM控制器、DMA、定時器、協處理器等。在植入(配置進)FPGA前,用戶可根據設計要求,利用QuartusⅡ和SoPC builder,對Nois及外圍系統進行構建,使該嵌入式系統在硬件結構、功能特點、資源占用等方面全面滿足用戶設計系統的要求[2]。特有的Avalon總線結構通信接口,使用戶可隨意配置32/16位總線指令集和數據通道。同時Avalon的流模式結構還能在沒有CPU干預的情況下自動按順序進行數據傳輸,提高運行速度,因此充分滿足自由立體LED顯示器對速度的要求。
自由立體顯示是基于雙目視差原理實現的,有4種不同格式的圖像源,分別是SS格式、TB格式、FS格式和FrS格式。SS格式為左、右視圖列交叉顯示;TB格式、FS格式為左、右視圖行交叉顯示;FrS格式為第1幀奇數列、第2幀偶數列列交叉顯示。對應4種不同的3D模式,其數據存儲方式也有所區別[3]。根據人類的視覺原理和SS格式,本設計的LED自由立體顯示屏設計成由特殊排列的紅、綠、藍子像素構成,紅、綠、藍子像素的排列在水平方向上為自左至右均勻間隔排列構成一個水平行,在垂直方向上為紅、綠、藍子像素各構成一個垂直列,同樣均勻間隔排列。顯示屏上放置一塊光柵板,利用該光柵板保證觀察者通過光柵左眼只能看到顯示單元顯示的左眼圖像,而右眼只能看到顯示單元顯示的右眼圖像,從而獲得不用佩帶眼鏡就可以觀看的自由立體圖像,通過FPGA控制器驅動顯示自由立體動態圖像[4]。
本系統采用可以在線配置Nios軟核的FPGA芯片EP1C6QC240C8。系統根據自由立體LED的要求利用Avalon總線配置了32位CPU軟核以及 ROM,RAM,SRAM,FIFO,SDRAM和DMA等片內外資源,用以存儲和快速傳輸數據,同時還專門設計了LED控制器以實現自由立體LED顯示功能。
系統硬件結構如圖1所示。NiosⅡ主端口的時鐘是內部總線的時鐘,本系統采用50 MHz,用流模式傳輸的最大帶寬能達到100 Mbit/s。在電路設計時,首先用硬件描述語言寫用戶邏輯,創建Alvalon Slave接口使之直接和DMA控制器的主端口相連接,完成硬件設計。再在NiosⅡIDE環境下,用C語言編寫DMA初始化和控制程序,使得流模式的數據傳輸在FIFO與Avalon總線的接口上,能夠做到無縫連接。

圖1 FPGA系統結構圖
Avalon流模式LED控制器硬件結構如圖2所示,用硬件描述語言設計LED時序發生器,由于LED各個像素點的色彩是以RGB形式的亮度數據用二進制數字方式存儲在SDRAM中的,使用D/T轉換技術[5]即亮度時間轉換技術就可以實現LED屏的全彩顯示。筆者設計了一個專用的函數f(i),用此函數即可統一控制各個像素點實現全屏幕所有像素點相互獨立而又同步的D/T轉換。這里,f(i)作為 LED_latch 信號。

圖2 Avalon流模式LED控制器結構圖
因為FIFO中的數據格式是左、右視圖列交叉顯示,因此LED控制驅動器的設計是以列驅動的。LED時序發生器的設計如圖3所示,將立體圖像對中左、右眼圖像幀每個像素的數據用乒乓開關控制存儲在FIFO緩存之中[6],以16個列像素點的驅動為例,FIFO緩存之中的左、右視頻數據分別各連接一個16位可預置移位寄存器,通過16個時鐘脈沖的移位產生16個像數的驅動數據,由片選信號選擇顯示行數,由D/T轉換函數f(i)作為LED_latch信號鎖存,FIFO緩存的數據經過8次移位即可完成1個像素的真彩驅動。

圖3 LED時序發生器內部結構圖
每幀畫面顯示1個立體像素真彩信號的時間需要移位8次,即250個基本周期。如果LED大屏幕顯示器每秒最多顯示30幀,采用1/8驅動模式和立體像素的1/2時分復用,再考慮選用16位移位鎖存LED恒流驅動電路,實際要求的時鐘頻率為2 MHz。
軟件設計就是利用SoPC Builder生成軟件文件,用文本編輯器編寫匯編語言或C/C++源程序,用GUNPro將源程序編譯成可執行文件,并通過下載電纜對可執行程序進行調試和運行。軟件系統分為兩部分:主程序和中斷服務程序。主程序主要完成系統的初始化,其主要功能是:對于系統中的每一個微處理器,從設備都生成一個定義該設備地址的頭文件,為軟件開發創建存儲器映射文件。DMA的操作都通過中斷服務程序執行,把需要送出的像素信息排成一行順序送出形成數據流,借助于Avalon流模式外設的設計方法,實現一個Avalon流模式的LED控制器。利用DMA控制器在流模式控制器和SRAM之間建立一條DMA傳送通道,讓硬件來完成像素信息的自動讀取。軟件流程如圖4所示,部分內部時序仿真如圖5所示。

圖4 軟件流程圖

在本文的設計中,利用SoPC解決方案,選用NiosⅡ32位處理器,根據人類的視覺原理,將3D立體顯示SS格式數據在專門設計的帶有光柵的LED立體顯示屏上顯示出來。采用了Avalon總線的流數據傳輸結構極大地提高了數據處理的速度,加快掃描頻率,同時專門設計了改進型的D/T轉換技術,使得系統只使用一個函數就實現了所有像素點亮度的控制,極大地降低了LED時序電路發生器的復雜性。通過系統仿真得到了相對滿意的效果。但是在設計過程中發現,LED大屏幕顯示器前的光柵設計極為關鍵,包括與顯示屏的距離、光柵的具體尺寸、觀看的距離以及其間的相互關系等還有待進一步研究。
[1] 史彩娟.基于CPLD的全彩色LED屏設計[J].電視技術,2009,33(2):29-30.
[2] 潘松,黃繼業,曾毓,等.SOPC技術實用教程[M].北京:清華大學出版社,2004.
[3] 方勇,呂國強,彭良清,等.3D顯示器視頻轉換系統設計及其FPGA實現[J].液晶與顯示,2007,2(22):94-97.
[4] 李昌.LED大尺寸自由立體顯示技術:中國,200810052752.7[P].2008-10-08.
[5] 劉曙光.LED 電子顯示屏真彩實現[J].現代電子技術,2001(2):8-12.
[6] 王智,羅新民.基于乒乓操作的異步FIFO設計及VHDL實現[J].電子工程師,2005,31(6):13-16.
鮑安平(1974-),工程師,碩士,主要從事DSP處理器的智能算法實現。