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