CPLD在DSP多分辨率圖像采集系統(tǒng)中的應(yīng)用
視頻采集系統(tǒng)是數(shù)字圖像獲取的最基本手段,是進(jìn)行數(shù)字圖像處理、多媒體和網(wǎng)絡(luò)傳輸?shù)那疤幔蔀楦鞣N圖像處理算法提供待處理的原始數(shù)字圖像和算法驗(yàn)證平臺(tái)。隨著圖像數(shù)字化處理技術(shù)的高速發(fā)展,對(duì)圖像采集的要求也越來(lái)越高,這包括對(duì)采集圖像的速度、主觀質(zhì)量、靈活性等等的要求。針對(duì)這種發(fā)展的趨勢(shì),設(shè)計(jì)了一種基于CPLD和DSP器件的多分辨率圖像采集處理系統(tǒng),重點(diǎn)介紹了CPLD在采集過(guò)程中邏輯控制的靈活應(yīng)用。
2 系統(tǒng)方案設(shè)計(jì)
根據(jù)系統(tǒng)要求,采取了獨(dú)立采集法,采用專用圖像采集芯片自動(dòng)完成圖像的采集,除了對(duì)采集模式進(jìn)行設(shè)定外,處理器不參與采集過(guò)程,這種方法的特點(diǎn)是不占用CPU的時(shí)間、實(shí)時(shí)性好、適合活動(dòng)圖像的采集。系統(tǒng)設(shè)計(jì)流程如下:DSP發(fā)開(kāi)始采集指令,A./D開(kāi)始采集,將A/D輸出的控制、狀態(tài)信號(hào)接入 CPLD,由CPLD控制將轉(zhuǎn)換后的數(shù)字信號(hào)存儲(chǔ)到高速大容量SRAM(ODD和EVEN)中,直到一幀圖像數(shù)據(jù)存儲(chǔ)完畢后,其間CPLD產(chǎn)生SRAM地址、SRAM讀寫信號(hào)、中斷信號(hào)、總線切換信號(hào)等等;CPLD交出總線控制權(quán),DSP占用總線從SRAM中讀出圖像數(shù)據(jù)進(jìn)行處理。限于篇幅,本文重點(diǎn)介紹 CPLD在數(shù)據(jù)采集中的靈活設(shè)計(jì)。系統(tǒng)結(jié)構(gòu)如下圖所示:
圖1:系統(tǒng)結(jié)構(gòu)框圖
3 系統(tǒng)硬件設(shè)計(jì)
本系統(tǒng)DSP采用TI公司生產(chǎn)的54x系列中的TMS320VC5416,CPLD是ALTERA公司MAX7000系列中的EPM7128A。A/D芯片選用飛利浦公司出品的SAA7111A視頻A/D轉(zhuǎn)換芯片,這里利用DSP多通道緩沖串行口McBSP來(lái)模擬I2C總線時(shí)序?qū)AA7111A進(jìn)行初始化。
3.1 數(shù)據(jù)采集的邏輯功能設(shè)計(jì)
本設(shè)計(jì)方案通過(guò)利用CPLD控制視頻采集芯片SAA7111A實(shí)現(xiàn)行、場(chǎng)數(shù)據(jù)延時(shí)[2],并分奇、偶場(chǎng)數(shù)據(jù)分離存放,DSP選擇讀取采集到的奇、偶場(chǎng)數(shù)據(jù)統(tǒng)一或分別進(jìn)行處理,從而得到多分辨率圖像數(shù)據(jù)。將SAA7111A產(chǎn)生的控制信號(hào)和狀態(tài)信號(hào)與CPLD連接,即把垂直同步信號(hào)VREF、水平同步信號(hào)HREF、奇偶場(chǎng)標(biāo)志信號(hào)RTS0、片選信號(hào)CE、場(chǎng)同步信號(hào)VS、象素同步信號(hào)LLC2等連接到CPLD上,CPLD通過(guò)這些控制和狀態(tài)信號(hào)進(jìn)行譯碼和產(chǎn)生存儲(chǔ)地址等操作。垂直同步信號(hào)VREF的兩個(gè)正脈沖之間為掃描一幀(幀掃描方式)或一場(chǎng)(場(chǎng)掃描方式)的定時(shí),即完整的一幀或一場(chǎng)圖像在兩個(gè)正脈沖之間掃描完。水平同步信號(hào)HREF為掃描該幀或該場(chǎng)圖像中各行象素的定時(shí),即高電平時(shí)為掃描一行象素的有效時(shí)間。若當(dāng)前圖像窗口大小為 640×480,則在VREF兩個(gè)正脈沖之間有480個(gè)HREF的正脈沖,即480行;在每個(gè)HREF正脈沖期間有640個(gè)LLC2正脈沖,即每行640 個(gè)象素,即VREF、HREF、LLC2這三個(gè)同步信號(hào)之間的關(guān)系。
為了體現(xiàn)本系統(tǒng)多分辨率的特點(diǎn),需要改變SAA7111A的默認(rèn)采樣分辨率,通過(guò)CPLD的邏輯控制就可以得到多分辨率圖像數(shù)據(jù)。本文選擇從默認(rèn)分辨率720×625到設(shè)定分辨率640×480的采集,因此就需要進(jìn)行、場(chǎng)延遲,舍棄部分像素。通過(guò)寫SAA7111A中I2C寄存器行同步開(kāi)始寄存器(子地址06)和行同步結(jié)束寄存器(子地址07)可以直接控制行同步有效時(shí)間,因此可以省略行延遲電路設(shè)計(jì),而場(chǎng)延遲是在CPLD中實(shí)現(xiàn)。
邏輯功能設(shè)計(jì)大體分為以下幾個(gè)部分:DSP與CPLD的總線切換邏輯;場(chǎng)延遲部分(HREF的下降沿進(jìn)行計(jì)數(shù)器設(shè)計(jì));LLC2控制的SRAM 地址產(chǎn)生部分;SRAM片選信號(hào)、寫信號(hào)以及同步時(shí)鐘選擇時(shí)序控制部分。其中CPLD和DSP之間的總線管理是設(shè)計(jì)中的難點(diǎn)。圖像采集時(shí)序如下圖所示。
圖2:圖像采集時(shí)序圖
具體描述如下:置低DSP的XF引腳產(chǎn)生START采集啟動(dòng)信號(hào),它向CPLD發(fā)出圖像采集命令,當(dāng)VS上升沿來(lái)臨時(shí),如果RTS0為低電平,則表明是奇場(chǎng)即將到來(lái),產(chǎn)生ODD高電平信號(hào),對(duì)ODD取反再與DSP輸出的nPS相或后用作SRAM (ODD)的片選信號(hào)CS_ODD。在VREF上升沿時(shí)刻,啟動(dòng)場(chǎng)延遲計(jì)數(shù)器,場(chǎng)延遲是在CPLD中實(shí)現(xiàn)的,從每幀625行到480行需要舍棄145行 (奇、偶場(chǎng)各采集240行),在CPLD中利用行同步參考信號(hào)HREF進(jìn)行計(jì)數(shù)器設(shè)計(jì)(HREF<240)。場(chǎng)延遲結(jié)束時(shí),置高HREF145信號(hào),有效圖像數(shù)據(jù)采集開(kāi)始接受,當(dāng)VREF出現(xiàn)下降沿時(shí),置低HREF145信號(hào),奇場(chǎng)圖像采集完成;如果RTS0為高電平,則表明偶場(chǎng)即將到來(lái),產(chǎn)生 EVEN高電平信號(hào),對(duì)EVEN取反再與DSP輸出的nPS相或后用作SRAM (EVEN)的片選信號(hào)CS_EVEN,場(chǎng)延遲仍然利用行同步參考信號(hào)HREF進(jìn)行計(jì)數(shù)器設(shè)計(jì)(HREF<240)來(lái)實(shí)現(xiàn),場(chǎng)延遲結(jié)束時(shí),置高 HREF145信號(hào),有效圖像數(shù)據(jù)采集開(kāi)始接受,當(dāng)VREF出現(xiàn)下降沿時(shí),置低HREF145信號(hào),偶場(chǎng)圖像采集完成。此外GCSWITCH信號(hào)作為 CPLD選擇內(nèi)部時(shí)鐘的控制信號(hào),當(dāng)GCSWITCH為高電平期間,表示CPLD獲取總線權(quán),系統(tǒng)處于圖像采集階段,CPLD內(nèi)部時(shí)鐘為L(zhǎng)LC2;當(dāng) GCSWITCH為低電平期間,表示DSP收回總線權(quán),系統(tǒng)處于圖像處理階段,此時(shí)CPLD內(nèi)部的時(shí)鐘信號(hào)為DSP輸出時(shí)鐘信號(hào)CLOCKOUT。奇、偶場(chǎng)圖像存儲(chǔ)器采用了ISSI公司的l0ns級(jí)256K×16高速SRAM,LLC2時(shí)鐘為13. 5MHz,即每個(gè)像素時(shí)鐘大約為74.1ns,每一個(gè)LLC2脈沖產(chǎn)生一次SRAM地址,相對(duì)于SRAM的10ns級(jí)的讀寫周期來(lái)說(shuō)完全可以滿足要求。利用LLC2(約13.5MHz)時(shí)鐘進(jìn)行寫邏輯時(shí)序控制設(shè)計(jì)如下圖所示:
圖3:RAM(ODD,EVEN)寫信號(hào)時(shí)序圖
同時(shí)要注意:如果在處理完一幀圖像后再采集下一幀時(shí),圖像數(shù)據(jù)已經(jīng)進(jìn)入了偶場(chǎng)或奇場(chǎng),此時(shí)若開(kāi)放圖像采集,由于不是從圖像頭開(kāi)始采集,所采圖像將不完全,因此需要確定圖像采集開(kāi)始的基準(zhǔn)。這里設(shè)計(jì)只在RTS0的上升沿才檢測(cè)圖像采集開(kāi)始信號(hào)是否產(chǎn)生,這樣每幀圖像只在 RTS0的上升沿才開(kāi)始采集,即每次都從偶場(chǎng)開(kāi)始,這樣就避免了圖像數(shù)據(jù)的混亂,保證圖像的開(kāi)始基準(zhǔn)。另外,由于存放圖像數(shù)據(jù)的SRAM(奇、偶場(chǎng) SRAM)地址是由CPLD控制產(chǎn)生的,那么如果將SAA7111A轉(zhuǎn)換輸出的VPO[15:0]直接存放在SRAM中,勢(shì)必就會(huì)影響數(shù)據(jù)、地址的同步,導(dǎo)致不同的數(shù)據(jù)寫入同一個(gè)地址,同一個(gè)數(shù)據(jù)寫入不同的地址,從而造成讀寫錯(cuò)誤。因此,考慮將SAA7111A輸出的VPO[15:0]也作為CPLD的輸入信號(hào),在CPLD里通過(guò)延時(shí)作同步處理后再連接到SRAM的數(shù)據(jù)線上,這樣就可以滿足時(shí)序要求使數(shù)據(jù)寫入正確的地址。[!--empirenews.page--]
3.2 總線邏輯切換設(shè)計(jì)
在前面提到了CPLD和DSP之間的總線切換管理是設(shè)計(jì)中的難點(diǎn),在數(shù)據(jù)采集過(guò)程CPLD必須掌握總線控制權(quán),切換到數(shù)據(jù)處理過(guò)程DSP必須掌握總線控制權(quán)。為了解決這個(gè)無(wú)縫切換問(wèn)題,這里充分利用DSP的保持請(qǐng)求信號(hào)nHOLD和保持響應(yīng)信號(hào)nHOLDA來(lái)協(xié)調(diào)總線切換[3]。
通過(guò)置DSP的XF引腳為低電平,告訴CPLD開(kāi)始控制SAA7111A進(jìn)行圖像采集。在DSP_XF連接到CPLD為高電平(DSP_XF初始狀態(tài)應(yīng)該為低電平)時(shí),CPLD產(chǎn)生DSP_ HOLD總線請(qǐng)求切換信號(hào),該信號(hào)連接到DSP的nHOLD引腳請(qǐng)求DSP進(jìn)入保持狀態(tài),在3個(gè)機(jī)器周期后DSP做出響應(yīng):產(chǎn)生nHOLDA低電平信號(hào)到 CPLD,而且外部數(shù)據(jù)總線、外部地址總線和控制總線都變成高阻態(tài)。此時(shí)DSP進(jìn)入保持狀態(tài),CPLD控制各總線操作;當(dāng)一幀圖像采集、存儲(chǔ)完成后 CPLD產(chǎn)生nINT中斷信號(hào)通知DSP開(kāi)始處理處理數(shù)據(jù),同時(shí)并置高DSP_ HOLD引腳使得DSP的nHOLD腳也置高,并通過(guò)對(duì)CPLD編程將CPLD與SRAM連接的各個(gè)外部數(shù)據(jù)總線、外部地址總線和控制總線都置成高阻態(tài),而在nHOLD置高3個(gè)機(jī)器周期后DSP外部數(shù)據(jù)總線、外部地址總線和控制總線都脫離高阻態(tài),DSP進(jìn)入正常工作狀態(tài),DSP置XF腳為高電平,收回總線控制權(quán)進(jìn)行數(shù)據(jù)處理;
當(dāng)DSP將處理后的一幀數(shù)據(jù)傳輸?shù)缴衔粰C(jī)完成后,再次置低XF腳告訴CPLD可以開(kāi)始采集下一幀了,CPLD產(chǎn)生DSP_ HOLD使DSP進(jìn)入保持狀態(tài),外部數(shù)據(jù)總線、外部地址總線和控制總線又都變成高阻態(tài),CPLD掌握總線控制權(quán)。如此往復(fù)下去即可以解決DSP與圖像采集模塊的總線沖突問(wèn)題,正確的切換總線邏輯保證了可以循環(huán)采集圖像進(jìn)行處理。
3.3 CPLD邏輯功能仿真驗(yàn)證
通過(guò)利用CPLD控制視頻A/D芯片SAA7111A的圖像采集過(guò)程,并利用SAA7111A的輸出狀態(tài)信號(hào)來(lái)控制CPLD實(shí)現(xiàn)圖像數(shù)據(jù)儲(chǔ)存、時(shí)序控制、地址譯碼等功能。這樣很好地協(xié)調(diào)了行、場(chǎng)參考及同步信號(hào)、像素時(shí)鐘、SRAM讀寫信號(hào)和DSP控制信號(hào)之間的時(shí)序關(guān)系,保證了對(duì)SRAM讀寫操作時(shí)各信號(hào)的時(shí)序配合,很好的解決了行、場(chǎng)延時(shí)問(wèn)題,使圖像分辨率從720×625過(guò)渡到640×480,并且正確生成SRAM寫地址,DSP中斷信號(hào)以及總線切換信號(hào)的產(chǎn)生。
由于篇幅有限,故沒(méi)有列出VHDL具體代碼,現(xiàn)只給出仿真結(jié)果。仿真結(jié)果如下所示:
圖4:循環(huán)采集處理仿真圖
上面的循環(huán)采集處理仿真圖就是實(shí)際系統(tǒng)工作時(shí)采集模塊中各個(gè)信號(hào)的時(shí)序邏輯關(guān)系。從仿真圖可以看出通過(guò)對(duì)CPLD的編程實(shí)現(xiàn)了多點(diǎn)的行、場(chǎng)延時(shí),奇偶場(chǎng)分離存放,從而得到多分辨率的圖像數(shù)據(jù),以及DSP中斷產(chǎn)生、邏輯總線切換信號(hào)、下一幀的開(kāi)始觸發(fā)信號(hào)、奇偶場(chǎng)對(duì)齊信號(hào)等都能滿足系統(tǒng)時(shí)序要求。采集一幀640×480的圖像約需22.75ms,可以滿足實(shí)時(shí)性的要求。
4 結(jié)論
本文設(shè)計(jì)了一種基于CPLD的多分辨率圖像采集系統(tǒng),本文作者創(chuàng)新點(diǎn):提出一種由CPLD控制圖像的行、場(chǎng)信號(hào)延時(shí),奇偶數(shù)據(jù)分離存儲(chǔ)來(lái)得到不同分辨率圖像數(shù)據(jù)的方法,實(shí)現(xiàn)了不占用DSP資源的多分辨率圖像的實(shí)時(shí)采集。經(jīng)過(guò)大量仿真和電路板調(diào)試,證明該方案靈活有效,能夠在工業(yè)監(jiān)測(cè)、醫(yī)療診斷等圖像實(shí)時(shí)采集領(lǐng)域得到廣泛應(yīng)用。
參考文獻(xiàn)
[1] 周霖. DSP通信工程技術(shù)應(yīng)用 [M]. 北京:國(guó)防工業(yè)出版社,2003.
[2] 張駿. 基于DSP和CPLD的圖像通信系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn) [D]. 哈爾濱:哈爾濱工程大學(xué)碩士學(xué)位論文, 2004, 2.
[3] 趙龍寶, 范天翔, 陸亨立. 基于OV5017和CPLD的圖像采集顯示系統(tǒng)[J]. 微計(jì)算機(jī)信息, 2005, 21-7: 104-105.