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)用。
本文引用地址:http://www.ex-cimer.com/article/150617.htm2 系統(tǒng)方案設(shè)計(jì)
根據(jù)系統(tǒng)要求,采取了獨(dú)立采集法,采用專(zhuān)用圖像采集芯片自動(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讀寫(xiě)信號(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ū)?a >SAA7111A進(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ò)寫(xiě)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)、寫(xiě)信號(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ì)(HREF240)。場(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ì)(HREF240)來(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í)的讀寫(xiě)周期來(lái)說(shuō)完全可以滿足要求。利用LLC2(約13.5MHz)時(shí)鐘進(jìn)行寫(xiě)邏輯時(shí)序控制設(shè)計(jì)如下圖所示:
圖3:RAM(ODD,EVEN)寫(xiě)信號(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ù)寫(xiě)入同一個(gè)地址,同一個(gè)數(shù)據(jù)寫(xiě)入不同的地址,從而造成讀寫(xiě)錯(cuò)誤。因此,考慮將SAA7111A輸出的VPO[15:0]也作為CPLD的輸入信號(hào),在CPLD里通過(guò)延時(shí)作同步處理后再連接到SRAM的數(shù)據(jù)線上,這樣就可以滿足時(shí)序要求使數(shù)據(jù)寫(xiě)入正確的地址。
評(píng)論