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