文獻(xiàn)標(biāo)識(shí)碼: A
DOI:10.16157/j.issn.0258-7998.2015.12.006
中文引用格式: 陳東旭,李宏. 多路圖像數(shù)據(jù)合成LCD顯示控制器設(shè)計(jì)[J].電子技術(shù)應(yīng)用,2015,41(12):28-31,35.
英文引用格式: Chen Dongxu,Li Hong. Design of LCD display controller for multi-channel image data synthesis[J].Application of Electronic Technique,2015,41(12):28-31,35.
0 引言
隨著嵌入式技術(shù)的發(fā)展,LCD在嵌入式系統(tǒng)中的廣泛應(yīng)用推動(dòng)了LCD顯示控制器的發(fā)展和完善。隨著所需顯示的圖像信息增加、功能要求增多對(duì)LCD顯示控制器的功能提出了更高的要求[1]。
當(dāng)前,嵌入式領(lǐng)域使用的LCD顯示控制器主要有微處理集成型和專(zhuān)用型兩種類(lèi)型,如LPC1788自帶的LCD顯示控制器和ILI9320專(zhuān)用LCD顯示控制器,由于使用便捷、性能穩(wěn)定,在一般嵌入式系統(tǒng)的顯示領(lǐng)域應(yīng)用廣泛。但隨著嵌入式系統(tǒng)定制化需求提高、顯示要求增多,如需視頻和操作界面等多路圖像混合輸出顯示的場(chǎng)合,上述的LCD顯示控制器由于接口單一、功能固定,很難滿(mǎn)足實(shí)際需求。如依舊使用這類(lèi)顯示控制器,則往往需嵌入式處理器完成顯示前的合成處理,極大地增加了嵌入式處理器的處理壓力,不但需要額外選擇性能高端的處理器,更是加大了編程開(kāi)發(fā)難度[2]。
針對(duì)以上情況,結(jié)合實(shí)際工程需求,本文提出了一種基于FPGA的專(zhuān)用LCD顯示控制器,具有多路圖像協(xié)調(diào)存取、畫(huà)中畫(huà)顯示、OSD字符疊加等功能,可用于視頻信息和顯示數(shù)據(jù)混合輸入領(lǐng)域。
1 LCD顯示控制器總體構(gòu)架
1.1 具有多路圖像數(shù)據(jù)合成的改進(jìn)型嵌入式系統(tǒng)
典型的具有視頻顯示功能的嵌入式系統(tǒng)如圖1(a)所示,主要由ARM最小系統(tǒng)、攝像頭、集成或?qū)S肔CD顯示控制器、顯存模塊、LCD組成。其中LCD顯示控制器由ARM處理器自帶或外接專(zhuān)用芯片,在需要多路圖像處理時(shí)需調(diào)用自身ARM處理器,極大增加了ARM處理器的負(fù)擔(dān),不得不選用高端處理器來(lái)達(dá)到所需處理性能要求。
針對(duì)典型電路的不足,本設(shè)計(jì)將實(shí)時(shí)視頻直接接入LCD顯示控制器處理,而不經(jīng)過(guò)ARM處理器,系統(tǒng)結(jié)構(gòu)如圖1(b)所示。由LCD顯示控制器直接完成視頻數(shù)據(jù)與操作顯示數(shù)據(jù)的存取、合成、疊加等處理操作,降低了ARM處理器處理圖像數(shù)據(jù)的壓力,從而保證系統(tǒng)高效穩(wěn)定工作。
1.2 LCD顯示控制器的工作原理及構(gòu)架
LCD顯示控制器由視頻接口電路完成視頻數(shù)據(jù)的轉(zhuǎn)換、輸入,由8080、6800等協(xié)議接口電路完成ARM最小系統(tǒng)顯示數(shù)據(jù)的解析、輸入,再由主控器與存儲(chǔ)控制器把兩路數(shù)據(jù)分別存入片外存儲(chǔ)器中,再由后級(jí)合成顯示電路從顯存中讀取所需要的圖像數(shù)據(jù),合成處理后配合LCD顯示所需要時(shí)序一同送入LCD中,完成最終的顯示。
根據(jù)上述原理提出了如圖2所示的LCD顯示控制器構(gòu)架,主要由圖像接口、圖像緩存、協(xié)調(diào)存取、顯示合成等模塊組成,完成從圖像接入、處理、存取、輸出顯示等一系列工作[3]。
2 圖像接口電路設(shè)計(jì)
2.1 視頻接口電路設(shè)計(jì)
本設(shè)計(jì)選用OV7670作為接入攝像頭,不經(jīng)過(guò)ARM最小系統(tǒng)處理直接接入LCD顯示控制器中,通過(guò)SCCB總線(xiàn)對(duì)OV7670進(jìn)行初始化配置,然后把配置完成信息傳遞給拼接模塊,由拼接模塊來(lái)接收OV7670攝像頭輸入的視頻像素信號(hào)、像素時(shí)鐘、行同步幀同步信號(hào),最終輸出16位RGB565格式數(shù)據(jù)、拼接后像素的像素時(shí)鐘和幀有效信號(hào),視頻最高分辨率為640×480 ppi,幀率達(dá)到30幀/秒。
2.2 8080接口協(xié)議解析電路設(shè)計(jì)
ARM最小系統(tǒng)顯示數(shù)據(jù)以8080時(shí)序輸入,8080接口協(xié)議解析電路,一方面配合其時(shí)序接收相應(yīng)的數(shù)據(jù)信息,另一方面對(duì)接收到的數(shù)據(jù)信息進(jìn)行解析[4],具體設(shè)計(jì)的總線(xiàn)連接和寄存器設(shè)置如圖3所示。
在ARM最小系統(tǒng)部分,可以使用模擬8080方式或FSMC(可變靜態(tài)存儲(chǔ)控制器)進(jìn)行時(shí)序信號(hào)的傳輸,其中使用FSMC方式速度更快、更便捷[5]。具體FPGA設(shè)置的控制功能和寄存器配置如表1所示,ARM處理器編程時(shí)只要按照以下數(shù)據(jù)時(shí)序要求,就可以方便地進(jìn)行寄存器控制和數(shù)據(jù)讀寫(xiě)。
3 協(xié)調(diào)存取電路設(shè)計(jì)
存取協(xié)調(diào)電路包括視頻與顯示數(shù)據(jù)的預(yù)處理、SDRAM協(xié)調(diào)控制器,其中SDRAM協(xié)調(diào)控制器是整個(gè)協(xié)調(diào)控制電路的核心,為了讓LCD顯示控制器靈活存取連續(xù)更新的視頻數(shù)據(jù)和非連續(xù)更新的ARM最小系統(tǒng)顯示數(shù)據(jù),改進(jìn)了傳統(tǒng)的SDRAM控制器,總體結(jié)構(gòu)如圖4所示,使其在操作兩類(lèi)不同數(shù)據(jù)時(shí)更加靈活高效便捷,并可以移植擴(kuò)展。
3.1 SDRAM主協(xié)調(diào)器設(shè)計(jì)
SDRAM主協(xié)調(diào)器主要根據(jù)控制信息控制SDRAM從控制器工作,完成視頻數(shù)據(jù)與顯示數(shù)據(jù)的協(xié)調(diào)。其中視頻幀有效信號(hào)和起始、結(jié)束地址分別給出視頻數(shù)據(jù)和ARM顯示數(shù)據(jù)的幀完成信號(hào),其中ARM顯示數(shù)據(jù)像素點(diǎn)與起始地址、結(jié)束地址關(guān)系如式(1)所示:
其中S為有效像素點(diǎn)個(gè)數(shù),H0、V0為起始行地址和起始列地址,H1、V1為結(jié)束行地址和結(jié)束列地址。
3.2 SDRAM從協(xié)調(diào)器設(shè)計(jì)
SDRAM從協(xié)調(diào)器會(huì)根據(jù)接收的信息對(duì)對(duì)應(yīng)數(shù)據(jù)進(jìn)行存儲(chǔ)規(guī)劃,對(duì)于視頻數(shù)據(jù),從協(xié)調(diào)器使用順序存取,而在ARM顯示數(shù)據(jù)部分,則使用映射存取,具體對(duì)應(yīng)關(guān)系如圖5所示。
當(dāng)ARM處理器需更新上圖所示區(qū)域時(shí),可以根據(jù)式(2)計(jì)算出對(duì)應(yīng)SDRAM在存儲(chǔ)上述所更新數(shù)據(jù)時(shí)的地址值。
其中VM、HM為L(zhǎng)CD顯示區(qū)域行像素點(diǎn)和列像素點(diǎn),CM、RM為SDRAM存取列地址和行地址,AR為更新數(shù)據(jù)在SDRAM存儲(chǔ)時(shí)的起始行地址、AC為更新數(shù)據(jù)在SDRAM存儲(chǔ)時(shí)的起始列地址、NV為連續(xù)存儲(chǔ)的像素點(diǎn)值,NH為所需更新的區(qū)域塊,BA為連續(xù)存儲(chǔ)像素點(diǎn)結(jié)束后需跳過(guò)像素點(diǎn)個(gè)數(shù)。
3.3 SDRAM控制器設(shè)計(jì)
SDRAM控制器主要完成初始化、自刷新、行列地址輸出、讀寫(xiě)控制等針對(duì)SDRAM的直接操作。在本設(shè)計(jì)中,SDRAM除了完成初始化和自刷新等基本控制功能外,其他的讀寫(xiě)切換、分頁(yè)地址切換都受對(duì)應(yīng)SDRAM從協(xié)調(diào)器控制,最終完成單片SDRAM的部分乒乓存取,主要利用SDRAM高速讀寫(xiě)來(lái)完成片內(nèi)的分頁(yè)讀寫(xiě)切換。
4 合成顯示電路設(shè)計(jì)
4.1 合成控制電路設(shè)計(jì)
合成模塊從SDRAM中讀取所需顯示數(shù)據(jù),根據(jù)顯示方式進(jìn)行數(shù)據(jù)的篩選調(diào)整,然后把相應(yīng)的顯示數(shù)據(jù)點(diǎn)輸出,合成控制功能示意圖如圖6所示,其中根據(jù)顯示方式的不同,分別可以顯示單視頻、單ARM顯示信息和畫(huà)中畫(huà)顯示,以方便嵌入式系統(tǒng)根據(jù)對(duì)應(yīng)顯示要求進(jìn)行調(diào)節(jié)控制,達(dá)到最佳的顯示操作體驗(yàn)[6]。
4.2 OSD字符疊加電路設(shè)計(jì)
OSD字符疊加是一種輔助信息顯示方法,可以在原本輸出顯示的圖像上疊加所需輔助顯示的字符信息,以達(dá)到顯示效果最優(yōu)化,本設(shè)計(jì)在最終數(shù)據(jù)輸出部分加入了OSD疊加模塊,ROM中數(shù)據(jù)有疊加所需給定,并通過(guò)分層疊加操作對(duì)輸入顯示數(shù)據(jù)進(jìn)行處理,通過(guò)透明度的調(diào)節(jié)可以讓隨屏疊加字符有透明效果,用以表示輔助信息的次重點(diǎn)[7]。
4.3 LCD驅(qū)動(dòng)時(shí)序產(chǎn)生電路設(shè)計(jì)
時(shí)序發(fā)生模塊接收最終處理完成的顯示數(shù)據(jù),并根據(jù)對(duì)應(yīng)顯示屏的驅(qū)動(dòng)時(shí)序,產(chǎn)生相應(yīng)的驅(qū)動(dòng)時(shí)序,把所需顯示數(shù)據(jù)送到LCD上完成顯示。本設(shè)計(jì)選取群創(chuàng)的7寸屏AT070TN83作為最終顯示屏幕。關(guān)鍵時(shí)序參數(shù)如表2所示,其中的tCLK的典型值為30 ns。
5 LCD顯示控制器的實(shí)現(xiàn)與功能測(cè)試
基于上述設(shè)計(jì),用Verilog HDL編程在FPGA cyclone II EP2C35F484C8N上實(shí)現(xiàn),用兩片1 M×4 BANK×16 bit容量的SDRAM K4S641632作為數(shù)據(jù)顯存,并通過(guò)攝像頭OV7670、ARM STM32F103和群創(chuàng)7寸屏AT070TN83進(jìn)行系統(tǒng)測(cè)試。
利用SignalTap II工具實(shí)時(shí)捕捉輸出端信號(hào),主要包括驅(qū)動(dòng)時(shí)鐘lcd_clk、行同步信號(hào)lcd_hs、幀同步信號(hào)lcd_vs、數(shù)據(jù)有效信號(hào)lcd_en、顯示數(shù)據(jù)藍(lán)色分量lcd_blue, 捕捉實(shí)時(shí)顯示驅(qū)動(dòng)時(shí)序如圖7和圖8所示。
由測(cè)試時(shí)序分析可得 LCD顯示控制器產(chǎn)生的時(shí)序完全符合7寸屏AT070TN83驅(qū)動(dòng)所需的時(shí)序要求。
LCD顯示控制器接入實(shí)際嵌入式系統(tǒng)中進(jìn)行顯示效果測(cè)試,主要包括ARM、攝像頭和LCD屏等器件,最終實(shí)際的顯示界面如圖9所示。
上圖中A區(qū)域?yàn)閷?shí)時(shí)視頻顯示區(qū)域,B區(qū)域?yàn)橛葾RM顯示數(shù)據(jù)確定的操作界面的顯示區(qū)域,C區(qū)域?yàn)橛蒓SD字符疊加形成的字符區(qū)域,其中視頻顯示界面可對(duì)大小位置進(jìn)行調(diào)節(jié),顯示界面可根據(jù)用戶(hù)自定義編程設(shè)置,并可以靈活加入各類(lèi)隨屏顯示內(nèi)容。經(jīng)測(cè)試,LCD顯示控制器設(shè)計(jì)運(yùn)行良好、顯示效果穩(wěn)定可靠,可以滿(mǎn)足設(shè)計(jì)需求。
6 結(jié)論
本文以FPGA+SDRAM為核心,完成特定功能LCD顯示控制器的設(shè)計(jì)。充分利用FPGA高效并行處理的特點(diǎn),在帶視頻顯示功能的嵌入式系統(tǒng)設(shè)計(jì)時(shí)把復(fù)雜龐大的圖像數(shù)據(jù)處理合成功能放入到LCD顯示控制器內(nèi)部,極大地降低了ARM處理器的圖像處理壓力,讓一般ARM最小系統(tǒng)處理復(fù)雜圖像數(shù)據(jù)成為可能,同時(shí)LCD顯示控制器用Verilog HDL設(shè)計(jì)開(kāi)發(fā),有良好的移植性和功能拓展性,稍作修改和調(diào)整就可以適應(yīng)不同的嵌入式系統(tǒng)顯示要求。經(jīng)實(shí)際測(cè)試,該LCD顯示控制器運(yùn)行穩(wěn)定,顯示效果良好,可推廣用于視頻監(jiān)控、車(chē)載娛樂(lè)等具有視頻顯示功能的嵌入式系統(tǒng)中。
參考文獻(xiàn)
[1] MITHUNA C O,LIBIN T T,KRISHNAKUMAR R S,et al.System Verilog based design and implementation of LCD Controller IP Core(2015) 2015 International Conference on VLSI Systems,Architecture,Technology and Applications,VLSI-SATA 2015.
[2] 李鋼,王飛.STM32直接驅(qū)動(dòng)RGB接口的TFT數(shù)字彩屏設(shè)計(jì)[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2011,11(8):28-30.
[3] LIU H,TANG W.Video Camera System Based on FPGA(2015) Proceedings-2014 7th International Symposium on Computational Intelligence and Design,ISCID 2014,2:249-252.
[4] SHI D,YE X,YE S.Design of microcontroller's display system based on FPGA.Proceedings of 4th International Conference on Intelligent Systems Design and Engineering Applications,ISDEA 2013:251-254.
[5] 湯莉莉,黃偉.基于STM32的FSMC接口驅(qū)動(dòng)TFT彩屏設(shè)計(jì)[J].現(xiàn)代電子技術(shù),2013(20):139-141,144.
[6] 萬(wàn)鵬,楊大偉.基于FPGA的視頻疊加融合系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].電子技術(shù)應(yīng)用,2013,39(9):44-46.
[7] 黃燕群,李利品,王爽英,等.基于FPGA的OSD設(shè)計(jì)[J].液晶與顯示,2010,25(3):429-433.