基于視頻解碼芯片與CPLD的實(shí)時(shí)圖像采集系統
圖像采集是實(shí)時(shí)圖像處理的重要步驟。目前,圖像傳感器件主要有CCD(Charge Coupled Device)和CMOS(Complementary Metal Oxide Semiconductor)。CCD技術(shù)現在已經(jīng)非常成熟, CCD攝像頭仍然是高端應用的首選器件。它輸出的模擬視頻信號包括圖像信號、行與場(chǎng)消隱信號、行與場(chǎng)同步信號等七種信號。傳統的視頻采集系統由A/D 轉換電路、控制邏輯電路、數據緩存電路、地址發(fā)生器、地址譯碼電路等構成,此類(lèi)設計有電路復雜、芯片繁多、開(kāi)發(fā)周期長(cháng)、成本高等缺點(diǎn)。
本文采用視頻解碼芯片與復雜可編程邏輯器件CPLD(Complex Programmable Logic Device)設計了一套實(shí)時(shí)圖像采集系統,克服了以上缺點(diǎn)。其中視頻解碼芯片可以從視頻信號中自動(dòng)獲取行、場(chǎng)同步信號,并完成A/D轉換,而具有在系統編程(ISP)功能的CPLD可以通過(guò)軟件實(shí)現邏輯重構,將邏輯控制、地址發(fā)生器等電路全部集成在一塊芯片中。系統具有體積小、成本低、可靠性高、升級容易、開(kāi)發(fā)周期短等優(yōu)點(diǎn)。
1 視頻解碼芯片SAA7114H的性能特點(diǎn)[1]
SAA7114H是一個(gè)高集成度的電路,在視頻采集領(lǐng)域有著(zhù)廣泛的應用。視頻解碼基于行鎖定時(shí)鐘解碼原則,能夠將PAL、SECAM和NTSC制式信號轉變?yōu)榕cITU601標準兼容的標準視頻信號。SAA7114H能夠接收TV的CVBS信號或VCR的S-VIDEO信號,同時(shí)通過(guò)它的擴展接口(X端口)還能夠接收MEPG碼流或VIDEO PHONE碼流的數字視頻信號。經(jīng)過(guò)SAA7114H解碼后的視頻信號,還能夠根據實(shí)際的應用,選擇8位或16位寬度的數據輸出格式。
SAA7114H的主要任務(wù)就是捕捉和縮放視頻圖像,向顯示控制器提供標準的YUV數字視頻流輸出格式。SAA7114H的主要特點(diǎn)如下:
(1)對每路CVBS或Y/C輸入信號可以選用可編程的靜態(tài)增益或自動(dòng)增益控制。
(2)含有兩個(gè)9位視頻A/D變換器,在擴展接口中可以接收數字CVBS信號或Y/C信號的輸入。
(3)數字鎖相環(huán)適用于各種標準和非標準視頻信號源的同步處理和時(shí)鐘的產(chǎn)生。
(4)水平和垂直同步信號的檢測。
(5)在片產(chǎn)生符合ITU601標準的行鎖定時(shí)鐘。
SAA7114H還提供一個(gè)I2C接口,用于和主控芯片相連接,從而可以對其內部的寄存器進(jìn)行讀寫(xiě)操作,控制SAA7114H的工作狀態(tài)。
經(jīng)過(guò)SAA7114H解碼后的視頻信號,必須保持正確的時(shí)序對應關(guān)系,才能完整無(wú)誤地恢復原來(lái)的視頻圖像。SAA7114H輸出的時(shí)序包括行場(chǎng)同步信號、行場(chǎng)消隱信號、行頻場(chǎng)頻、場(chǎng)識別信號等。以PAL制信號為例,其行、場(chǎng)時(shí)序關(guān)系如圖1所示。
其中,HREF信號為行消隱信號,VGATE代表場(chǎng)消隱信號(可以通過(guò)對寄存器VSTO[8:0]和VSTA[8:0]的編程進(jìn)行確定),HREF與V123信號結合能判斷當前為奇場(chǎng)或是偶場(chǎng),FID為場(chǎng)識別信號。以上各信號都能通過(guò)SAA7114H的相關(guān)管腳進(jìn)行輸出(如RTSO、RTSI、XRH和XRV管腳等)。
2 復雜可編程邏輯器件XC95216的性能特點(diǎn)[2]
XC95216是Xilinx公司的一種復雜可編程邏輯器件,具有豐富的可編程I/O引腳、在系統可編程、使用方便靈活的特點(diǎn)。不但可實(shí)現常規的邏輯器件功能,還可實(shí)現復雜的時(shí)序邏輯功能。其主要功能特點(diǎn)如下:多達166個(gè)用戶(hù)I/O引腳,所有引腳的腳對腳邏輯延遲為10ns,fCNT可達111MHz,216 個(gè)宏單元,具有4800個(gè)可用門(mén)。
3 實(shí)時(shí)圖像采集系統組成及其工作原理
本文設計的實(shí)時(shí)圖像采集系統是一個(gè)基于DSP的活動(dòng)目標跟蹤系統的圖像采集部分。DSP對圖像采集部分提供的數字圖像信號進(jìn)行相關(guān)的計算處理,識別目標,然后控制相關(guān)設備,達到跟蹤目標的目的。系統要求實(shí)時(shí)性強、體積小。
設計中采用視頻解碼芯片SAA7114H將CCD攝像頭獲得的模擬視頻信號轉換為數字信號。在此實(shí)時(shí)圖像處理系統中,恒速的視頻解碼芯片SAA7114H與變速的DSP圖像處理之間需要加入緩沖電路。緩沖電路一般有3種結構:雙口RAM結構、FIFO結構、乒乓緩存結構。前兩種緩沖結構的存儲容量相對較小,不是特別適合高速圖像處理系統。乒乓緩存結構的特點(diǎn)決定了可以用相對較便宜的高速大容量SRAM、外圍邏輯器件構成比雙口RAM以及高速FIFO更適合視頻處理系統所需要的緩沖存儲器。采用CPLD控制兩塊SRAM以乒乓方式工作,實(shí)現數據流在系統中的高速傳輸。
3.1 視頻采集的工作流程
視頻采集的硬件框圖如圖2所示。系統復位后,單片機(MCU)通過(guò)I2C 總線(xiàn)對SAA7114H初始化。單片機采用Philips公司的P89C61X2BN,具有在系統編程功能,允許更改SAA7114H初始化程序,并可燒寫(xiě)到單片機FLASH中,相當方便。初始化成功后,SAA7114H 開(kāi)始工作,將輸入的模擬視頻信號轉換成720576 的YUV422數字信號,然后輸入CPLD。CPLD 一方面進(jìn)行格式轉換,輸出YUV4:1:1、CIF格式的數字信號,另一方面還作為地址發(fā)生器,與CIF格式數據一起輸入到SRAM。CPLD 還產(chǎn)生SRAM 的讀寫(xiě)控制信號,使用兩片SRAM,以乒乓方式工作,每片保存一場(chǎng)圖像。圖2中指向DA[7:0]的實(shí)線(xiàn)箭頭與指向DB[7:0]的虛線(xiàn)箭頭表示CPLD的D[7:0]端口的數據輪流輸送給DA與DB端口。在保存好一場(chǎng)圖像后,CPLD以中斷方式通知DSP作相應處理。
3.2 乒乓緩存控制原理
“乒乓操作”是一個(gè)常常應用于數據流控制的處理技巧。典型的乒乓操作方法如圖3所示。乒乓操作的處理流程如下:輸入數據流通過(guò)“輸入數據選擇單元”(在本采集系統中,CPLD內部邏輯結構完成此數據選擇功能),等時(shí)地將數據流分配到數據緩沖區SRAM A和SRAM B中。在第一場(chǎng)的時(shí)間,將輸入的數據流緩存到SRAM A。在第二場(chǎng)的時(shí)間,通過(guò)“輸入數據選擇單元”的切換,將輸入的數據流緩存到SRAM B,與此同時(shí),將SRAM A的數據(第一場(chǎng)圖像數據),通過(guò)“輸出數據選擇單元”的選擇,送到“數據流運算處理模塊”(DSP)運算處理。在第三個(gè)緩沖周期,通過(guò)“輸入數據選擇單元”的再次切換,將輸入的數據流緩存到SRAM A,與此同時(shí),將SRAM B的數據(第二場(chǎng)圖像數據)通過(guò)“輸出數據選擇單元”的切換,送到“數據流運算處理模塊”運算處理。如此循環(huán),周而復始。
乒乓操作的最大特點(diǎn)是通過(guò)“輸入數據選擇單元”和“輸出數據選擇單元”,按節拍、相互配合地切換,將經(jīng)過(guò)緩沖的數據流不停頓地送到“數據流運算處理模塊”,進(jìn)行運算及處理。把乒乓操作模塊當作一個(gè)整體,此模塊兩端的輸入數據流與輸出數據流均是連續不斷的,沒(méi)有任何停頓,因此非常適合進(jìn)行流水線(xiàn)式處理,完成數據的無(wú)縫緩沖與處理。
3.3 CPLD的設計
3.3.1 數據緩存
將數據保存到SRAM,需在采樣的同時(shí)產(chǎn)生地址。每塊SRAM 的地址線(xiàn)都有兩組,一組由CPLD 給出,一組由DSP 給出。為了解決共用存儲器時(shí)的資源沖突問(wèn)題,需控制DSP和SRAM、CPLD和SRAM之間的通斷[3]。CPLD通過(guò)提供總線(xiàn)隔離器的控制信號,在CPLD對SRAM A操作時(shí)就將CPLD到SRAM B的地址線(xiàn)、數據線(xiàn)、片選信號都置高阻,設置隔離器使DSP與SRAM B導通,而與SRAM A斷開(kāi),此時(shí)DSP可以讀取SRAM B,反之亦然。實(shí)際上,SRAM的數據線(xiàn)也有兩組,其工作方式和地址線(xiàn)一樣。為了給DSP 以充裕的時(shí)間讀取RAM 中的數據,還要控制將每場(chǎng)圖像存入不同的RAM,使兩片SRAM以乒乓方式工作。設計中選用了ISSI公司的IS61LV5128,容量為512KB。
3.3.2 接口
CPLD 的主要外圍接口如下:(1)輸入部分。圖像數據IPD[7:0]、時(shí)鐘LCLK、場(chǎng)同步VREF、行同步HREF、復位RES。(2)輸出部分。圖像數據IPO1[7:0]和IPO2[7:0],片選信號ce1、ce2,寫(xiě)使能we1、we2,地址add1[18:0]、add2[18:0],總線(xiàn)隔離器的開(kāi)關(guān)信號f1、f2,DSP 中斷信號dspint(這里沒(méi)有設置SRAM 的OE 信號,因為CPLD只需要將數據寫(xiě)入SRAM,不需要從SRAM中讀數據)。
3.3.3 VHDL實(shí)現
設計中采用VHDL對CPLD進(jìn)行邏輯實(shí)現。程序中“乒乓”控制部分代碼如下:
PROCESS (res,clk,idq)
BEGIN
IF (res=′0′) THEN
tadd1=″0000000000000000000″;
tadd2=″0000000000000000000″;
add1=tadd1;
add2=tadd2;
count=″00″;
ELSIF (clk′EVENT AND clk=′1′) THEN
IF (idq=′1′) THEN
IF (oddoreven=′1′) THEN
tadd1=tadd1+′1′;
add1=tadd1;
ELSIF (oddoreven=′0′) THEN
tadd2=tadd2+′1′;
add2=tadd2;
END IF;
END IF;
END IF;
END PROCESS;
本文設計了一套基于視頻解碼芯片SAA7114H與CPLD的實(shí)時(shí)圖像采集系統,其硬件結構簡(jiǎn)單,系統穩定,完全滿(mǎn)足基于DSP的活動(dòng)目標跟蹤系統的需要,具有很強的實(shí)用性,稍加改動(dòng)即可用于其他場(chǎng)合,如監控系統等。
參考文獻
[1] SAA7114H DATA SHEET,2000.
[2] XC95216 In-System Programmable CPLD DATA SHEET,2001.
[3] 章 勇.CPLD 在視頻采集中的應用和實(shí)現.電子技術(shù),2004,(12).
評論