1引言
通過(guò)彩色液晶顯示器(LCD)取景是數(shù)碼相機(jī)優(yōu)于傳統(tǒng)相機(jī)的重要特性之一,它解決了使用取景框取景帶來(lái)的各種不便,而且可以在拍攝現(xiàn)場(chǎng)用液晶顯示器回放剛拍的相片來(lái)查看拍攝效果[1],從而決定是否留下這張照片,這樣能使攝影者更好地控制照片的質(zhì)量。所以用液晶顯示器進(jìn)行取景和回放是數(shù)碼相機(jī)兩大必不可少的功能。同時(shí)液晶顯示器還用來(lái)顯示菜單,提供良好的人機(jī)交互界面。目前市場(chǎng)上出售的數(shù)碼相機(jī)使用的液晶顯示器都是彩色TFT液晶顯示器,這種液晶顯示器解決了一般液晶顯示器中相鄰像素串?dāng)_的現(xiàn)象[2],所以可用來(lái)顯示真正的活動(dòng)圖像。
數(shù)碼相機(jī)專用集成電路芯片中的液晶顯示控制電路主要實(shí)現(xiàn)的功能是向液晶顯示模塊(LCM)和數(shù)模轉(zhuǎn)換器提供所有必需的控制時(shí)序信號(hào),同時(shí)接受來(lái)自系統(tǒng)的YCbCr格式的圖像數(shù)據(jù),然后進(jìn)行色空間 變換將圖像轉(zhuǎn)化成RGB格式,接著按照一定的順序以每個(gè)像素一種顏色的方式向片外DAC輸出圖像數(shù)據(jù)。
2系統(tǒng)結(jié)構(gòu)與設(shè)計(jì)要求
圖1給出了我們?cè)O(shè)計(jì)的數(shù)碼相機(jī)系統(tǒng)芯片中有關(guān)LCD顯示部分的示意圖。根據(jù)設(shè)計(jì)數(shù)碼相機(jī)專用集成電路芯片的系統(tǒng)要求,液晶顯示控制電路可用來(lái)控制多種規(guī)格的液晶顯示模塊,從6萬(wàn)多像素到20多萬(wàn)像素。此電路有兩種工作模式:取景模式和回放模式,分別顯示動(dòng)態(tài)和靜態(tài)圖像。同時(shí)電路要具有多種掃描方式 ——上下左右的組合共有四種。因此此電路必須具備高度的靈活性,可由系統(tǒng)對(duì)其工作狀態(tài)進(jìn)行編程控制。
根據(jù)設(shè)計(jì)要求,我們先確定電路的總體框架,然后設(shè)計(jì)各個(gè)模塊并用Verilog HDL語(yǔ)言描述實(shí)現(xiàn),最后進(jìn)行RTL級(jí)的仿真。圖2是整個(gè)電路的功能框圖。
整個(gè)液晶顯示控制電路由四個(gè)模塊組成,分別是寄存器文件、有限狀態(tài)機(jī)、數(shù)據(jù)處理器和脈沖發(fā)生器。該電路的信號(hào)線主要和三個(gè)電路相關(guān),一是和MCU接口電路相關(guān),包括MCU_AB(地址總線)、MCU_DB(數(shù)據(jù)總線)、MCU_nWR(寫使能)、MCU_nRD(讀使能)和MCU_nCS(MCU操作選中信號(hào));二是和液晶顯示模塊及數(shù)模轉(zhuǎn)換器相關(guān),包括從脈沖發(fā)生器輸出的控制整個(gè)圖像顯示的時(shí)序信號(hào)和紅、綠、藍(lán)三原色數(shù)據(jù)以及PSAVE、BLANK和D_CLK三個(gè)控制DAC轉(zhuǎn)換的信號(hào);三是和數(shù)碼相機(jī)專用集成電路芯片中的其他子模塊相連,包括DMA_Req1、DMA_Req2、DMA_Ack1、DMA_Ack2四個(gè)DMA操作的交互信號(hào)和16位的YCbCr數(shù)據(jù)信號(hào)。SYSRST和SYSCLK分別是系統(tǒng)復(fù)位和時(shí)鐘信號(hào)。以下分別對(duì)各個(gè)模塊的設(shè)計(jì)進(jìn)行分析。
3.1 寄存器文件模塊
寄存器文件模塊主要由兩部分組成:MCU接口和寄存器陣列。通過(guò)MCU接口系統(tǒng)可以對(duì)寄存器陣列進(jìn)行讀寫操作,從而使液晶顯示控制電路具有靈活多變的特點(diǎn),可以控制多種規(guī)格的液晶顯示模塊,在多種模式下工作,可以輸出多種掃描方式的控制信號(hào),可以將圖像顯示在顯示器的任一區(qū)域,同時(shí)還具有軟件復(fù)位功能。整個(gè)寄存器陣列由 30個(gè)8位寄存器組成,分為三大類:模式寄存器、狀態(tài)寄存器和波形參數(shù)寄存器。模式寄存器的低7 位有效,如圖3所示。
第0位為狀態(tài)/復(fù)位位,它輸出給MCU,并接液晶顯示控制電路中其他模塊的觸發(fā)器的復(fù)位端。在系統(tǒng)復(fù)位和顯示結(jié)束時(shí)該位為1,表示空閑并使接口處于復(fù)位狀態(tài)。若系統(tǒng)把該位置為0,則電路的復(fù)位狀態(tài)被解除并處于工作狀態(tài)。第1、2 位用來(lái)決定顯示時(shí)的掃描方式,其中V_DIR表示幀掃描方式,此位置1表示從上到下掃描,置0表示從下到上掃描;H_DIR表示行掃描方式,置1和置0分別表示從左到右和從右到左掃描,兩位組合共有四種掃描方式。RSA、RSB和RSC三位用來(lái)表示使用哪種規(guī)格的液晶顯示模塊,它們的組合及對(duì)應(yīng)的顯示器分辨率如表1所示。MODE位用來(lái)表示工作模式,1表示工作在取景模式下,0表示工作在回放模式下。
狀態(tài)寄存器包括行數(shù)寄存器、列數(shù)寄存器、起始行寄存器、終止行寄存器、起始列寄存器、終止列寄存器以及奇偶數(shù)行的顏色順序寄存器。行數(shù)寄存器和列數(shù)寄存器設(shè)置顯示一幀圖像所需的垂直時(shí)鐘脈沖數(shù)和掃描一行圖像所需的水平時(shí)鐘脈沖數(shù),對(duì)于不同規(guī)格和品牌的液晶顯示器這兩個(gè)寄存器參數(shù)是不同的。起始行寄存器、終止行寄存器、起始列寄存器和終止列寄存器設(shè)置顯示圖像的范圍,如圖4所示,這樣實(shí)現(xiàn)了可以將圖像顯示在顯示器任意區(qū)域的設(shè)計(jì)要求。由于TFT彩色液晶顯示器每個(gè)像素只顯示三原色中的一種顏色,它是和相鄰像素一起顯示彩色效果的,所以奇偶數(shù)行的顏色順序是不同的。為了保證在某一像素點(diǎn)上給出正確的原色數(shù)據(jù)信號(hào),在一定的掃描方式下,起始行寄存器和起始列寄存器必須與奇偶數(shù)行的顏色順序寄存器相一致。例如,使用280×220型號(hào)的液晶顯示器,在V_DIR=0(從上到下掃描)和H_DIR=1 (從左到右掃描)時(shí)奇數(shù)行的顏色順序是RGB,偶數(shù)行顏色順序?yàn)镚BR,所以在設(shè)置起始行寄存器和起始列寄存器時(shí)一定要保證這樣的顏色順序,才能正確顯示。
脈沖參數(shù)寄存器設(shè)置了各驅(qū)動(dòng)脈沖波形的時(shí)間參數(shù),若干個(gè)寄存器對(duì)應(yīng)于一相驅(qū)動(dòng)脈沖。當(dāng)有限狀態(tài)機(jī)模塊中的行計(jì)數(shù)器和列計(jì)數(shù)器的狀態(tài)與某些脈沖參數(shù)寄存器的設(shè)置相同時(shí),相應(yīng)的輸出脈沖發(fā)生翻轉(zhuǎn)。對(duì)于不同規(guī)格和品牌的液晶顯示器這些參數(shù)是不同的,即使對(duì)于同一產(chǎn)品,在不同掃描模式下它們也是不同的。
3.2 有限狀態(tài)機(jī)模塊
有限狀態(tài)機(jī)由兩個(gè)16位的行列計(jì)數(shù)器組成,狀態(tài)變量為模式寄存器的狀態(tài)/復(fù)位位。在工作模式下,兩個(gè)計(jì)數(shù)器循環(huán)計(jì)數(shù)。當(dāng)行計(jì)數(shù)器狀態(tài)與起始行寄存器相同時(shí),行有效信號(hào)變高,表示該幀圖像的顯示開(kāi)始,此時(shí)數(shù)據(jù)處理器模塊開(kāi)始工作。在系統(tǒng)復(fù)位或行計(jì)數(shù)器狀態(tài)與終止行寄存器相同時(shí),行計(jì)數(shù)器被復(fù)位。在行有效信號(hào)變高后,當(dāng)列計(jì)數(shù)器狀態(tài)與起始列寄存器相同時(shí),像素有效信號(hào)變高,表示該行的有效顯示開(kāi)始,此時(shí)數(shù)據(jù)處理器開(kāi)始輸出每個(gè)像素的顏色數(shù)據(jù)。在系統(tǒng)復(fù)位或列計(jì)數(shù)器狀態(tài)與終止列寄存器相同時(shí),列計(jì)數(shù)器被復(fù)位。
3.3 數(shù)據(jù)處理器模塊
數(shù)據(jù)處理器模塊如圖5所示。它由三部分組成:DMA接口及其數(shù)據(jù)緩沖器、色空間反變換電路和溢出處理電路。根據(jù)系統(tǒng)設(shè)計(jì)要求,由電荷耦合器件(CCD)圖像傳感器采樣得到的原始圖像經(jīng)過(guò)像素處理器模塊的內(nèi)插和色空間變換后,成為了YCbCr格式的圖像,根據(jù)JPEG標(biāo)準(zhǔn),從RGB到 YCbCr的色空間變換遵循公式[3]
Y=0299R+0587G+0.114B
Cb=_0.169R-0.331G+0.5B (1)
Cr=0.5R-0.4186F-0.0814B
同時(shí)為了存儲(chǔ)方便,將變換得到的Y信號(hào)減去了128,這樣三種信號(hào)的值均在-128到+127之間,從而都可以用8位的帶符號(hào)數(shù)表示。在存儲(chǔ)YCbCr 信號(hào)時(shí)像素處理器模塊將相鄰像素的色度信號(hào)取均值然后進(jìn)行復(fù)用,這樣節(jié)省了存儲(chǔ)空間。所以在圖像存儲(chǔ)器中相鄰兩個(gè)像素的亮度信號(hào)組合成一個(gè)16位的數(shù)據(jù)存放在一個(gè)存儲(chǔ)單元里,而復(fù)用的色度信號(hào)則存放在下一個(gè)地址的單元里[3] 。當(dāng)要用液晶顯示器進(jìn)行圖像顯示時(shí),先通過(guò)連續(xù)兩次DMA的讀操作獲得兩個(gè)像素的亮度信號(hào)和色度信號(hào),分別放入16位的數(shù)據(jù)緩沖器1和2,然后在讀取新的兩個(gè)相鄰像素的YCbCr信號(hào)并把它們放入數(shù)據(jù)緩沖器3和4的同時(shí)開(kāi)始處理緩沖器1和2中的數(shù)據(jù),于是通過(guò)兩對(duì)數(shù)據(jù)緩沖器的作用實(shí)現(xiàn)了一個(gè)簡(jiǎn)單的流水線操作。在色空間反變換中要實(shí)現(xiàn)將YCbCr信號(hào)轉(zhuǎn)換成液晶顯示所需要的RGB信號(hào),根據(jù)公式(1)并進(jìn)行簡(jiǎn)化我們可以得到相應(yīng)的反變換的公式(2)。
(2)
根據(jù)反變換系數(shù)的范圍,我們將所有的系數(shù)值乘上64,然后將乘積的整數(shù)部分用一個(gè)8位的帶符號(hào)數(shù)表示。在色空間反變換中我們?cè)O(shè)計(jì)了一個(gè)9× 8的Booth乘法器,用來(lái)實(shí)現(xiàn)色度信號(hào)和變換系數(shù)的帶符號(hào)乘法運(yùn)算。為了保證反變換的正確,在運(yùn)算過(guò)程中要進(jìn)行符號(hào)擴(kuò)展,所以變換所得的RGB信號(hào)是12位的帶符號(hào)數(shù),而最終輸出到數(shù)模轉(zhuǎn)換器的數(shù)據(jù)是8位無(wú)符號(hào)數(shù),因此還要進(jìn)行溢出處理,將所有的計(jì)算結(jié)果都限定在0~255范圍內(nèi)。同時(shí)由于液晶顯示器的公共電極的電位是交流電位,即相鄰兩行的公共電極的電位是反相的,所以相鄰兩行的圖像數(shù)據(jù)應(yīng)該分別以原碼和反碼輸出。
3.4 脈沖發(fā)生器模塊
脈沖發(fā)生器根據(jù)有限狀態(tài)機(jī)中行列計(jì)數(shù)器的狀態(tài)和波形參數(shù)寄存器內(nèi)的參數(shù),產(chǎn)生各驅(qū)動(dòng)波形,這些驅(qū)動(dòng)波形用于驅(qū)動(dòng)液晶顯示模塊本身及其外接的模擬前端電路。
4 Verilog語(yǔ)言實(shí)現(xiàn)和FPGA硬件驗(yàn)證
在確定了整體以及各功能模塊的結(jié)構(gòu)設(shè)計(jì)之后,就可以用Verilog HDL語(yǔ)言對(duì)設(shè)計(jì)進(jìn)行RTL建模,然后用Synopsys 公司的VCS對(duì)設(shè)計(jì)進(jìn)行仿真并調(diào)試。通過(guò)RTL級(jí)的仿真后,我們對(duì)此電路進(jìn)行了FPGA的硬件驗(yàn)證,使用的芯片是Xilinx公司的VirtexE1000-BG560,系統(tǒng)時(shí)鐘為54MHz。無(wú)論是單獨(dú)測(cè)試還是作為整個(gè)數(shù)碼相機(jī)專用芯片的一部分,液晶顯示控制電路都能成功實(shí)現(xiàn)兩種工作模式下的設(shè)計(jì)要求,性能良好。
5結(jié)束語(yǔ)
通過(guò)FPGA驗(yàn)證后,液晶顯示控制電路用TSMC 0.25mm SAGETM工藝實(shí)現(xiàn),后端流程如圖6所示,其中的Design Compiler,Prime Time和Formality是Synopsys公司的產(chǎn)品;Silicon Ensembler和Virtuso是Cadence公司的產(chǎn)品。圖像采樣接口的電路規(guī)模為15000門左右,芯片面積為0.49mm×0.8mm。
評(píng)論
查看更多