3.2 存儲器分配和總線調度
為了方便各模塊間的接口,有利于不同時鐘域的數據同步,系統的存儲器采用兩級存儲模式,即SDRAM 作為主存儲器,而各模塊也有相應FIFO作為Cache。SDRAM具有容量大、帶寬高、價格便宜等優點;但是控制比較復雜,每次讀寫有多個控制和等待周期。因此為了提高效率,通常采用地址遞增的猝發讀寫方式,而不能像SRAM那樣隨時讀取任意地址的數據。
本方案采用完全動態的內存分配機制,即每個模塊請求時,如果不是同一場數據,則可以分配到一塊新的內存,而一旦該內存的數據不再有效,則釋放這塊內存。這樣,每塊內存都有自己的屬性,標志是使用中的內存,還是空閑內存,以及當前內存中的數據是否在等待被使用的隊列中,因此內存需要分成3塊。其中一塊存儲逐點校正參數,一塊存儲當前場數據,另一塊存儲上一場數據(即正在發送的數據)。這就要求在一個場同步周期內需要將數據發送完畢,而這一要求是完全可以達到的。
總線調度是本模塊的核心部分,必須精確計算總線帶寬的占用情況,確定各部分FIFO的深度,以保證各個FIFO不會出現溢出或讀空的現象。
總線調度器需要調度3塊存儲器,還需要為每一個模塊維護一個偏移地址的首地址,以及一個偏移地址計數寄存器。為了便于計算偏移地址,用SDRAM物理上的兩行存儲一行的數據,而將多余部分空余。
總線調度器的仲裁算法為:逐點校正參數與校正后數據寫入SDRAM的優先級一樣,采用先來先得的方式占用總線,分別由各自FIFO的指針來觸發總線占用。一場數據寫入SDRAM完畢之后,開始發送。需要依次讀出第n、n+128、n+256行的數據給數據發送FIFO0、1、2,等待數據發送單元啟動發送。
3.3 LCD接口和逐點校正
PXA255的LCD接口配置為smart panel形式,具體時序關系可參考PXA255的手冊。FPGA根據這些時序關系,將數據讀入,進行下一步的處理。
由于在生產過程中LED管的參數不可能完全一致,因此為了獲得良好的圖像顯示效果,必須對LED管進行篩選。這也是LED屏價格昂貴的一個重要原因。
采用逐點校正技術,可逐點調節LED的亮度,將顯示屏亮度的一致性提高一個數量等級,從而可以使采購廠商放寬LED在亮度和顏色方面的要求,LED采購的成本也隨之大大降低。此外,系統采用的逐點校正技術,可以在線修改校正參數,使得LED屏在投入運營之后也可以修改校正參數,補償由于LED管老化對顯示效果的影響,提高LED屏的使用壽命。因此,逐點校正技術使LED模塊作為室內外全彩色顯示屏的基本元件成為理想方案。
逐點校正參數存于SD卡中,在系統上電之后,ARM首先將該數據通過LCD接口(此時配置為GPIO)傳送到FPGA,FPGA將其存入SDRAM中。此后,即可對LCD接口輸入的數據進行校正。
3.4 數據發送
在數據發送時,每行數據作為1幀,加入特定的幀頭之后開始發送。為了減少總線數量,采用串行總線形式,每組信號共有4路,分別是源同步時鐘和RGB三基色的串行數據。信號均以LVDS(Low Voltage Differential Signal,低電壓差分信號)的形式傳輸。LVDS采用差分方式傳送數據,有比單端傳輸更強的共模噪聲抑制能力,可實現長距離、高速率和低功耗的傳輸。 Altera公司的Cyclone II系列FPGA可以方便地通過I/O配置獲得LVDS的能力。
發送幀頭由4字節的同步頭+數據當前行號+ID號組成。由于圖像的連續像素值的相關性比較高,因此使用偽隨機碼作為同步頭,其同步性能比較可靠。當前行號用于控制器判斷是否出現丟幀,并根據當前的行號決定當前數據的存儲地址。由于每一組數據實際上由兩個控制器分別處理(見圖1),所以需要判斷標志來截取不同的數據部分。ID號即是不同控制器截取某行中不同列數的標準,數據在發送時ID為零。
4 全彩色LED顯示控制器
全彩色LED顯示控制器負責接收、轉換和處理串入的RGB三基色信號,以一定的規律和方式將信號傳送到LED顯示屏上顯示。控制器直接決定了顯示屏的顯示效果,也決定了LED顯示屏性能的優劣??刂破鞯慕Y構如圖3所示。
控制器的架構與數據分發類似,也采用二級存儲模式,主要有數據接收、Gamma校正和交織、掃描控制輸出以及總線調度和SDRAM控制四部分。
4.1 存儲器分配和總線調度
由于數據輸入場頻與LED掃描場頻通常不能成整數倍關系,可能出現輸入一場數據結束,該場數據的處理結果(Gamma校正和交織后)需要寫入SDRAM,而此時掃描一場沒有結束,即正在讀的那個區域不能覆蓋,而上一場的數據還沒有顯示也不能覆蓋,因此交織地寫入(即掃描的讀出)需要開辟三塊分區。
總線仲裁算法為:控制輸出模塊和寫入模塊采用先來先得的算法,而校正和交織過程的讀寫,則優先級最低,可以在前面二者申請時被掛起,只有當前二者不再需要總線時,才可以分配到總線的使用權。
4.2 數據接收
數據接收單元除了需要同步判決、串并轉換之外,還要確定一行中哪些數據需要本控制器處理。控制器截取每行中第128*ID~128*(ID+1)-1列的數據,同時將ID號加1,其他數據原樣輸出,送給下一級控制器。這樣的控制方法比常用的撥碼開關法更加靈活可靠。
4.3 Gamma校正和交織
Gamma校正可以使LED顯示效果更接近于人眼的生理特性,而且由于PXA255輸出的是8位數據,系統需要將其校正為12位,大大提高了顯示的對比度。
由于LED顯示控制器采用逐位顯示的方法,輸入的數據與輸出到LED顯示屏上的數據組織形式不一樣:前者按像素點排列,而后者則按像素數值的不同位數組織。
4.4 控制輸出
12位數據顯示的時間分別為(64、32、16、8、4、2、1、1/2、1/4、1/8、1/16、1/32)*128*Tsclk,其中Tsclk為串行移位時鐘。交織之后,不同權重的數據顯示信號顯示有效時間不同,即可達到顯示的效果。
總線調度器將交織后的數據寫入本模塊的FIFO。由模塊內部生成讀取該FIFO的控制信號,并對其進行計數。模塊內需要對移位個數及權重進行計數,以決定發出鎖存信號及顯示信號的有效時間。
評論