1 引 言
校正器作為自適應(yīng)光學(xué)系統(tǒng)的核心部件,在很大程度上決定著自適應(yīng)技術(shù)發(fā)展的方向。目前在自適應(yīng)光學(xué)系統(tǒng)使用較多的是變形鏡校正器。
隨著自適應(yīng)技術(shù)在眼底觀測方向的使用,傳統(tǒng)變形鏡校正器顯露出其固有的缺點(diǎn),由于受校正單元少的限制,變形鏡校正器很難對(duì)存在高階像差的眼底成像。因此,校正單元多的液晶校正器開始在眼底觀測領(lǐng)域廣泛使用。與玻璃基板液晶顯示器相比,采用硅基板的液晶顯示器(LCOS)由于具有尺寸小、分辨率高、光效利用率高等優(yōu)點(diǎn),成為目前的最佳選擇。作為LCOS驅(qū)動(dòng)電路的核心———為液晶模塊(LCM)提供顯示數(shù)據(jù)和時(shí)序信號(hào)的LCOS控制器通常都是由專用集成電路(ASIC)組成。在實(shí)際工程應(yīng)用中,需要各種分辨率的LCOS,由于每一種LCOS都需要專門的顯示控制器,因此LCOS的設(shè)計(jì)和使用都比較繁瑣。
本設(shè)計(jì)采用現(xiàn)場可編程門陣列(FPGA)器件來代替ASIC,利用可編程片上系統(tǒng)(SOPC)實(shí)現(xiàn)通用LCOS顯示控制器的設(shè)計(jì)。在使用中只需通過對(duì)軟件參數(shù)進(jìn)行修改,即可完成對(duì)不同分辨率 LCOS的控制。由于液晶自適應(yīng)系統(tǒng)需要傳輸?shù)臄?shù)據(jù)量很大,所以為了保證系統(tǒng)的實(shí)時(shí)性,采用USB2.0協(xié)議進(jìn)行數(shù)據(jù)傳輸。本文使用了NXP公司的PDIUSBD12的USB芯片、ALTERA公司的EP1C6Q240C8器件,采用C++語言設(shè)計(jì)了USB驅(qū)動(dòng)程序和固件程序,利用VHDL硬件描述語言設(shè)計(jì)了通用LCOS控制器并在實(shí)際應(yīng)用中通過測試,基本上實(shí)現(xiàn)了通用LCOS控制器的預(yù)期目標(biāo)。
2 系統(tǒng)原理
LCOS的顯示采用逐行掃描方式,即當(dāng)一行被選通以后,這一行中的各列信號(hào)同時(shí)加到列上,并維持一個(gè)掃描行的時(shí)間,當(dāng)這一時(shí)間結(jié)束后選通下一行,各列電極施加下一行的顯示電壓。
目前普通的液晶控制器都是由存儲(chǔ)器和控制器組成,由一塊MCU 接收上位機(jī)發(fā)送過來的顯示數(shù)據(jù),并由該MCU分配存儲(chǔ)地址,生成時(shí)序信號(hào),把數(shù)據(jù)存入存儲(chǔ)器中,而后由液晶顯示模塊讀取存儲(chǔ)器中的數(shù)據(jù)。存儲(chǔ)器的存取速度較慢,在讀寫大批量數(shù)據(jù)時(shí)很費(fèi)時(shí),很難匹配LCOS的響應(yīng)速度,并且當(dāng)更換不同分辨率的LCOS顯示模塊后還需要有新的控制器,存在成本太高且過程煩瑣的缺點(diǎn)。
有鑒于此,本文提出了基于SOPC 設(shè)計(jì)LCOS控制器的思路,即在FPGA 內(nèi)構(gòu)建一個(gè)NIOSⅡ軟核處理器和SRAM 存儲(chǔ)器,把SRAM映射到LCOS顯示模塊的數(shù)據(jù)緩沖區(qū),將NIOSⅡ與PDIUSBD12以DMA 的方式連接,將NIOSⅡ與上位機(jī)以串口的方式連接,通過設(shè)置LCOS參數(shù)和存儲(chǔ)器規(guī)模參數(shù)在內(nèi)的各種參數(shù),適應(yīng)不同分辨率的LCOS;通過DMA方式節(jié)省傳輸時(shí)間;通過把SRAM 映射到顯示數(shù)據(jù)緩沖區(qū)節(jié)省存儲(chǔ)器的存取時(shí)間。如圖1所示。
LCOS系統(tǒng)原理圖
圖1 LCOS系統(tǒng)原理圖。
3 系統(tǒng)設(shè)計(jì)
3.1 系統(tǒng)引腳信號(hào)時(shí)序分析
一般來說,LCM 引腳都具有如表1所示的功能描述。
表1 LCM 引腳信號(hào)功能
LCM 引腳信號(hào)功能
每個(gè)CP移位脈沖信號(hào)都是通過一系列CP脈沖,把完整的一行顯示數(shù)據(jù)(D0~D7)存入移位寄存器中。移位寄存器與鎖存器并口相接,當(dāng)完整的一行顯示數(shù)據(jù)被存入移位寄存器后,在鎖存信號(hào)LP的作用下,該行數(shù)據(jù)被鎖存到鎖存器內(nèi),并輸出給列電極。因此LP的周期應(yīng)為一個(gè)行周期。當(dāng)一幀圖像的最后一行顯示數(shù)據(jù)存入移位寄存器后,FLM 幀掃描信號(hào)變成高電平,其脈寬維持超過一個(gè)LP脈寬。因此FLM 的周期應(yīng)為一幀圖像的時(shí)間,即各行LP的周期和。M 是液晶顯示模塊的交流驅(qū)動(dòng)信號(hào),每一幀時(shí)間改變一次波形的極性,可以防止液晶顯示的單方向扭曲變形。更為詳細(xì)的引腳信號(hào)時(shí)序關(guān)系如圖2和圖3所示。
引腳信號(hào)的時(shí)序關(guān)系1
圖2 引腳信號(hào)的時(shí)序關(guān)系1。
圖3 引腳信號(hào)的時(shí)序關(guān)系2。
3.2 參數(shù)確定
在設(shè)計(jì)通用分辨率的LCOS控制器之前,先要確定某些參數(shù)。這些參數(shù)包括LCOS的分辨率m×n,LCOS的灰度級(jí)2u(一般情況下LCOS的灰度為256),LCOS顯示器的刷新頻率a Hz,信號(hào)CP的頻率b?。停龋?。這些參數(shù)由上位機(jī)通過串口發(fā)送到NIOSⅡ處理器中。根據(jù)這些參數(shù),由NIOSⅡ計(jì)算得到如下關(guān)系:每一幀的周期為 103/a(ms);每一行的周期為106a-1 n-1(us);將一行顯示數(shù)據(jù)寫入寄存器的時(shí)間為m/b (μs);每一行的空時(shí)間[106a-1n-1]-[m/b]us),這一項(xiàng)應(yīng)當(dāng)不小于0。依據(jù)計(jì)算后的數(shù)據(jù)和圖2、圖3所示的信號(hào)關(guān)系,使用定時(shí)器和脈寬調(diào)制器(PWM)生成LCOS的邏輯控制信號(hào)。同樣在NIOSⅡ中還要完成SRAM 內(nèi)存的設(shè)計(jì),內(nèi)存的實(shí)現(xiàn)是依靠FPGA 中的邏輯門陣列來實(shí)現(xiàn)的。設(shè)計(jì)所遵循的原則是SRAM 的容量能至少裝下完整的2幀數(shù)據(jù),即2m×n×2u,一幀數(shù)據(jù)存儲(chǔ)區(qū)用于當(dāng)前顯示,另一幀數(shù)據(jù)存儲(chǔ)區(qū)同時(shí)接收下一幀要顯示的數(shù)據(jù),這樣的策略雖然耗費(fèi)了大量的邏輯門數(shù)量,卻可以使低速的存儲(chǔ)器和高速的LCOS顯示器相匹配,同時(shí)更好地發(fā)揮USB的速度優(yōu)勢。
4 實(shí)例設(shè)計(jì)
在實(shí)際應(yīng)用中,以256×256分辨率、256灰度級(jí)的LCOS為例來設(shè)計(jì)LCOS控制器。
首先根據(jù)已有的LCOS計(jì)算各種參數(shù)。對(duì)于256×256的LCOS,其刷新頻率為200Hz,時(shí)鐘信號(hào)CLKB的頻率為20MHz。因此,每一幀的周期為5ms,每一行的周期為19.53μs(相當(dāng)于391個(gè)CLKB時(shí)鐘周期時(shí)間),將一行顯示數(shù)據(jù)寫入寄存器的時(shí)間為12.8μs(相當(dāng)于256個(gè)CLKB時(shí)鐘周期時(shí)間),每一行的空時(shí)間為6.73μs(相當(dāng)于135個(gè)CLKB時(shí)鐘周期時(shí)間)。如果設(shè)計(jì)時(shí)發(fā)現(xiàn)每一行的空時(shí)間小于0,則要提高時(shí)鐘信號(hào)CLKB的頻率。
接下來是設(shè)計(jì)SRAM 存儲(chǔ)器,SRAM 容量的設(shè)計(jì)原則是能裝下完整的2幀數(shù)據(jù),即2×256×256×256就能裝下完整的2幀數(shù)據(jù),但為了便于CPU還可以完成其他計(jì)算的需要,內(nèi)存的設(shè)計(jì)要比2幀數(shù)據(jù)大一些,這里?。硯瑪?shù)據(jù)容量,同時(shí)設(shè)定固定的區(qū)域?yàn)轱@示緩沖區(qū)。
將USB的數(shù)據(jù)輸入緩沖區(qū)同樣設(shè)在該顯示緩沖區(qū)域,這樣通過USB端口輸入的待顯示數(shù)據(jù)直接存儲(chǔ)在顯示緩沖區(qū)域。
然后是將外部的LCOS顯示器的數(shù)據(jù)輸入端口作為NIOSⅡ處理器的I/O 映射地址,通過DMA處理,使NIOSⅡ內(nèi)存的顯示緩沖區(qū)以DMA的方式通過AHB總線與LCOS顯示器的數(shù)據(jù)輸入端口直接輸入。使用DMA和總線的好處是既簡便快速,傳輸又很穩(wěn)定。
在QuartusⅡ6.0環(huán)境下對(duì)NIOSⅡ控制器進(jìn)行功能仿真測試,仿真的波形如圖4所示。該控制器的時(shí)序信號(hào)符合設(shè)計(jì)要求。完成功能仿真后,經(jīng)過綜合生成門級(jí)網(wǎng)表,下載到ALTERA公司Cyclone系列EP1C6Q240C8器件中。
NIOSⅡ控制器的功能仿真波形
圖4 NIOSⅡ控制器的功能仿真波形。
5 結(jié) 論
利用SOPC和USB設(shè)計(jì)了一種LCOS通用控制器。通常LCOS的價(jià)格較高且不能通用,利用本文的方法可以最大限度地降低材料成本和設(shè)計(jì)成本,并且可以根據(jù)應(yīng)用的需要,通過發(fā)送不同的參數(shù)適應(yīng)于不同的LCOS顯示器。由于采用軟核處理器,系統(tǒng)的穩(wěn)定性稍差一些,并且PDIUSBD12的速度僅為12MB/s。為了提高系統(tǒng)的穩(wěn)定性,可以使用ARM9 處理器;為了發(fā)揮USB2.0 的全速480 MB/s,可以使用新一代CH375USB控制器。這樣就可以使LCOS通用控制器擁有更優(yōu)秀的性能。