基于DSP的最小圖像采集處理系統(tǒng)設(shè)計(jì)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
關(guān)鍵詞 DSP嵌入式系統(tǒng) 圖像采集 圖像處理
引 言
在以DSP為核心的視頻處理系統(tǒng)中,視頻采集的方法通??梢苑譃閮纱箢?lèi):自動(dòng)的視頻采集和基于DSP的視頻采集。前者通常采用CPLD/FPGA控制視頻解碼芯片,通過(guò)FIFO或者雙口RAM向DSP傳送數(shù)據(jù),特點(diǎn)是數(shù)據(jù)采集模塊獨(dú)立運(yùn)行,占用DSP資源少,但實(shí)現(xiàn)相對(duì)復(fù)雜,成本偏高;后者通常由DSP控制視頻解碼芯片并同步各種時(shí)序,將視頻數(shù)據(jù)讀入。其特點(diǎn)是實(shí)現(xiàn)相對(duì)簡(jiǎn)單,成本有所降低,但對(duì)視頻解碼芯片的控制較為復(fù)雜,占用DSP處理時(shí)間。
如果通過(guò)適當(dāng)?shù)倪壿嬰娐纷寯?shù)字圖像傳感器芯片直接接入DSP,則可省去視頻控制解碼芯片、CPLD/FPGA、FIFO或雙口RAM,在不增加DSP軟件開(kāi)銷(xiāo)的情況下,大大降低系統(tǒng)的復(fù)雜程度和成本,縮短開(kāi)發(fā)周期。
1 硬件系統(tǒng)設(shè)計(jì)
1.1 系統(tǒng)總體結(jié)構(gòu)
系統(tǒng)結(jié)構(gòu)框圖如圖1所示。DSP采用TI公司發(fā)布的C6000系列高速浮點(diǎn)型信號(hào)處理器TMS320C6713,其峰值處理速度達(dá)l350 MFLOPS(百萬(wàn)次浮點(diǎn)每秒)。其外部存儲(chǔ)器接口EMIF(External Memory Interface)包括4個(gè)CE空間,其中CE0被配置為16位同步空間,接SDRAM;CEl為16位異步空間,接Flash;CE2為16位異步空間,經(jīng)過(guò)地址譯碼和總線緩沖將數(shù)字圖像傳感器OV7620接入;CE3為8位異步空間,經(jīng)過(guò)數(shù)據(jù)鎖存和總線隔離將LCD顯示模塊接入。
1.2 OV7620的配置和硬件連接
OV7620是OmniVision公司生產(chǎn)的CMOS彩色/黑白圖像傳感器,在本系統(tǒng)中被配置為16位逐行掃描QVGA方式,RGB原始數(shù)據(jù)輸出,分辨率為320×240,SCCB總線,內(nèi)部默認(rèn)的行曝光方式;同時(shí)使能HREF信號(hào)對(duì)PCLK進(jìn)行門(mén)控,即只有當(dāng)HREF有效時(shí)像素時(shí)鐘信號(hào)才被輸出到PCLK引腳上,否則該引腳保持無(wú)效。這樣EDMA可以始終處在使能狀態(tài),從而簡(jiǎn)化采集過(guò)程。
OV7620與DSP的硬件連接框圖如圖2所示。在對(duì)OV7620復(fù)位結(jié)束后,DSP通過(guò)GPIO模擬SCCB總線完成對(duì)OV7620內(nèi)部功能寄存器的配置,之后數(shù)幀內(nèi)圖像數(shù)據(jù)和同步信號(hào)將逐漸穩(wěn)定。Y通道和U/V通道在分別經(jīng)過(guò)74HC244總線緩沖器之后接入EMIF低16位數(shù)據(jù)總線。CE2與地址線EA20、EA21經(jīng)過(guò)譯碼產(chǎn)生2片74HC244的選通信號(hào),此時(shí)OV7620的讀地址為
0xA0000000。
1.3 EDMA數(shù)據(jù)采集
在16位逐行掃描方式中,圖像的每行RGB原始數(shù)據(jù)均被OV7620先后輸出兩次,因此,只須讀取其偶數(shù)次HREF信號(hào)對(duì)應(yīng)的數(shù)據(jù)即可獲得整個(gè)圖像信息。這樣可以減少圖像采集所占用的存儲(chǔ)空間和總線資源。OV7620同步和控制信號(hào)與GPIO的對(duì)應(yīng)關(guān)系如表1所列。
本系統(tǒng)采用EDMA的第12個(gè)通道(EDMAl2)進(jìn)行圖像數(shù)據(jù)采集。該通道被配置為16位一維傳輸方式,中斷禁止,PCLK的上升沿觸發(fā)EDMAl2搬移一個(gè)16位數(shù)據(jù)存入到SDRAM中,每次EDMA任務(wù)搬移一個(gè)HREF(320個(gè)16位)的圖像數(shù)據(jù)。幀同步信號(hào)VSYNC上升沿觸發(fā)DSP中斷,對(duì)EDMA通道進(jìn)行初始化,使能水平參考信號(hào)HREF中斷并關(guān)閉EDMA通道(放棄第1個(gè)HREF、的數(shù)據(jù)),開(kāi)始一幀的數(shù)據(jù)傳輸。HREF下降沿觸發(fā)DSP產(chǎn)生中斷,標(biāo)志OV7620一次HREF數(shù)據(jù)輸出的結(jié)束。如果接下來(lái)一次HREF數(shù)據(jù)需要被讀入,則中斷服務(wù)程序會(huì)對(duì)EDMAl2參數(shù)進(jìn)行修正,使能EDMA12通道,開(kāi)始下一行數(shù)據(jù)的傳輸;否則,就禁止EDMAl2,放棄下一次HREF數(shù)據(jù)。每接收1幀圖像數(shù)據(jù)共產(chǎn)生240次HREF中斷和120次EDMA數(shù)據(jù)傳輸。以下是OV7620數(shù)據(jù)采集的部分源代碼:
1.4 LCD模塊的驅(qū)動(dòng)
采用液晶顯示模塊可以使圖像處理結(jié)果實(shí)時(shí)顯示出來(lái),方便調(diào)試和演示,成本也較低。本系統(tǒng)選用北京寧和電子科技發(fā)展有限公司開(kāi)發(fā)的NHC_34彩色液晶顯示控制模塊。該模塊支持256色彩色顯示,每個(gè)像素點(diǎn)用1個(gè)字節(jié)表示,分辨率為320×234;支持標(biāo)準(zhǔn)Intel 8位異步總線時(shí)序,有2頁(yè)顯示緩存,可任意設(shè)定顯示頁(yè)和操作頁(yè)。
LCD模塊讀寫(xiě)周期最短為350ns,而DSP外部總線接口時(shí)鐘頻率一般在100 MHz以上,即小于10ns。通過(guò)配置EMIF CE3空間控制寄存器CECTL3(地址為Ox01800014),可以將CE3空間的讀寫(xiě)周期延長(zhǎng),與LCD模塊無(wú)縫連接。但這樣液晶模塊的讀寫(xiě)操作會(huì)過(guò)長(zhǎng)地占用系統(tǒng)總線,降低對(duì)其他存儲(chǔ)空間(尤其是對(duì)SDRAM)的訪問(wèn)效率,進(jìn)而影響系統(tǒng)的整體速度。
本系統(tǒng)采用了數(shù)據(jù)鎖存和總線緩沖的方法,通過(guò)377鎖存器模擬低速總線控制信號(hào)時(shí)序,利用244數(shù)據(jù)緩沖器對(duì)低速總線數(shù)據(jù)進(jìn)行隔離。圖3給出了DSP與LCD模塊硬件連接圖。系統(tǒng)有2片74HC377(簡(jiǎn)稱(chēng)為“377”),一片用來(lái)鎖存模擬LCD模塊的讀寫(xiě)控制信號(hào)(控制377),另一片用來(lái)鎖存寫(xiě)入數(shù)據(jù)(數(shù)據(jù)377),由異步寫(xiě)使能控制線AWE作為377的觸發(fā)沿輸入;CE3和EA20、EA21經(jīng)過(guò)譯碼產(chǎn)生2個(gè)377的使能信號(hào),DSP寫(xiě)數(shù)據(jù)377的地址為0xB0000000,寫(xiě)控制377的地址為0xB0040000。數(shù)據(jù)377的輸出經(jīng)一片總線緩沖器HC244(寫(xiě)出244,HC244簡(jiǎn)稱(chēng)為“244”)連接到LCD模塊總線上,該244輸出使能信號(hào)來(lái)自控制377。另有一片HC244(讀入244)用來(lái)將LCD模塊總線接到DSP低8位總線上,其輸出使能信號(hào)同樣由CE3和EA20、EA21經(jīng)過(guò)譯碼產(chǎn)生,地址為0xB0080000,是DSP對(duì)LCD模塊的讀地址。
DSP根據(jù)LCD模塊總線時(shí)序,通過(guò)定時(shí)器延時(shí)中斷來(lái)間隔地寫(xiě)入數(shù)據(jù)到控制377,以模擬相應(yīng)低速總線的控制信號(hào),并適時(shí)從讀入244讀取數(shù)據(jù)(讀周期),或者寫(xiě)入數(shù)據(jù)到數(shù)據(jù)377(寫(xiě)周期),就可以完成對(duì)LCD模塊的讀/寫(xiě)操作。LCD寫(xiě)周期驅(qū)動(dòng)例程如下(該程序通過(guò)延時(shí)來(lái)控制時(shí)間間隔):
2 軟件系統(tǒng)設(shè)計(jì)
軟件系統(tǒng)流程如圖4所示。DSP在復(fù)位完成之后首先進(jìn)行系統(tǒng)的初始化,配置鎖相環(huán)、EMIF和GPIO,并硬件復(fù)位OV7620,通過(guò)GPIO模擬SCCB總線配置其內(nèi)部功能寄存器,之后對(duì)LCD模塊清屏。當(dāng)EDMA沒(méi)有被使能時(shí),OV7620的同步信號(hào)仍能被EDMA事件寄存器捕獲并保持,所以把EDMA的初始化放在OV7620和LCD模塊的初始化之后,并在使能之前清事件標(biāo)志。在中斷被使能之后,OV7620的幀同步信號(hào)會(huì)觸發(fā)系統(tǒng)中斷,開(kāi)始進(jìn)行數(shù)據(jù)的循環(huán)采集,并在每幀數(shù)據(jù)采集完成之后置位相應(yīng)標(biāo)志,通知主程序進(jìn)行處理。主程序在接到通知后對(duì)OV7620的原始數(shù)據(jù)進(jìn)行插值和平滑,生成待處理的RGB24位色圖像數(shù)據(jù)。圖像處理和運(yùn)算的結(jié)果被送到LCD模塊進(jìn)行動(dòng)態(tài)顯示,LCD的顯示任務(wù)主要由中斷服務(wù)程序完成,而此時(shí)主程序已開(kāi)始等待和處理下一幀圖像。
3 結(jié)論
本系統(tǒng)通過(guò)總線隔離和地址譯碼,只使用簡(jiǎn)單的邏輯芯片將OV7620接入DSP,并充分發(fā)揮EDMA獨(dú)立傳送的特點(diǎn),僅占用DSP少量的軟件開(kāi)銷(xiāo)和總線資源。就完成圖像數(shù)據(jù)的采集。與采用視頻接口芯片、外圍FIFO和CPLD/FPGA等方案相比,很大程度上降低了系統(tǒng)成本,縮短了開(kāi)發(fā)周期,而對(duì)系統(tǒng)總線的占用卻并沒(méi)有增加。利用數(shù)據(jù)鎖存和總線緩沖實(shí)現(xiàn)了對(duì)LCD模塊異步低速總線的接人;利用EDMA進(jìn)行總線模擬,進(jìn)一步降低DSP對(duì)LCD模塊讀/寫(xiě)的參與,減少系統(tǒng)中斷次數(shù),優(yōu)化系統(tǒng)性能,能夠?qū)D像處理的結(jié)果實(shí)時(shí)和直觀地顯示出來(lái)。
與其他DSP嵌入式系統(tǒng)相比,本系統(tǒng)具有處理速度快、接口簡(jiǎn)單、成本低、能實(shí)時(shí)顯示的特點(diǎn),適用于視覺(jué)導(dǎo)航、視頻實(shí)時(shí)處理等要求高速處理圖像的場(chǎng)合,以及有實(shí)時(shí)演示要求的場(chǎng)合。