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