1. 引言
對于用于視頻圖像處理的DSP來說,由于前端的A/D 采集速度較低,一般為了減少DSP 的開銷,在視頻采集A/D 和DSP之間接入先進先出存儲器(FIFO) 作為緩沖。
基于先進先出存儲器(FIFO) 的多樣性,一般在視頻采集與微處理器模塊之間很少提供無縫接口。傳統(tǒng)的方法是用簡單的邏輯電路實現(xiàn)很少一部分接口控制,大多數(shù)是通過軟件來實現(xiàn),雖然軟件設計靈活性比較大,但是對軟件設計者提出很高的要求; 一般來說使用的都是線存的FIFO,這種FIFO 的存儲量比較少,會花費CPU 很大的開銷。
本文實現(xiàn)了一種在采集A/D 模塊、專用視頻FIFO 以及DSP 微處理使用CPLD 作為純硬件控制的方案。使用這種方案的創(chuàng)新點是首先因為使用的是幀存儲器FIFO,存儲一幀或者一場視頻數(shù)據(jù),這樣可以大大減輕DSP的開銷,提高DSP 的效率,從而更好的提高視頻處理的實時性;其次因為接口邏輯比較復雜,一般用軟件實現(xiàn)起來比較困難,使用可編程CPLD實現(xiàn)全部的硬件接口邏輯,減少軟件設計的難度,減少DSP 的開銷。同時可以發(fā)揮CPLD 現(xiàn)場可編程的特點,可以像軟件一樣更改; 最后可以作為一個集成的通用硬件采集模塊。
本文實現(xiàn)的是基于TI TMS320C6x 的DSP的視頻采集壓縮卡的A/D采集模塊以及接口控制模塊。在采集模塊主要功能是將從CCD 攝像頭輸入的模擬視頻信號轉換為數(shù)字信號,普通CCD攝像頭的輸出是NTSC 制式的復合全電視信號CVBS 信號,通過SAA7114H TV解碼芯片將模擬TV 信號解碼,轉換為符合ITU-R BT.601 標準的數(shù)字視頻信號,并且由CPLD 控制模塊將數(shù)據(jù)存儲到專用的視頻FIFO芯片,中斷DSP 讀取數(shù)據(jù)處理。
具體的信號控制見圖1.1。
2. 模塊介紹
2.1. 視頻采集模塊
采集模塊采用PHILIPS 公司的視頻A/D 芯片SAA7114H,該專用視頻A/D 具有6 路模擬視頻輸入,兩個模擬預處理通道,并且抗混濾波、梳狀濾波都被集成到芯片內部,這樣對于硬件設計帶來了極大的方便。同時場同步信號IGPV,行同步信號IGPH,有效圖像數(shù)據(jù)輸出信號IDQ,時鐘輸出信號ICLK都有管腳直接引出,這樣省去了以往的時鐘同步電路的設計,可靠性也有所提高。系統(tǒng)內部鎖相環(huán)技術的集成使得可靠性和設計復雜度都有極大的降低。SAA7114H 的配置支持I2C,可以通過DSP的通用I/O 口軟件模擬I2C總線。
從圖2可以看出整個過程是在ICLK在上升沿觸發(fā),在 IDQ 有效的情況下傳輸?shù)臄?shù)據(jù)有效,數(shù)據(jù)輸出的格式為(下為奇數(shù)場的一行數(shù)據(jù)掃描)
FF00 0080 U0Y0,V0Y1,U1Y2,V1Y3,…………,U319Y638,V320Y639
其中FF00 和0080 是奇數(shù)場標志位。
當輸出IGPH 有效表明為一行數(shù)據(jù)的掃描,當IGPH無效的情況下,表明數(shù)據(jù)在回掃。從圖3可以看出當IGPV 有效說明是一場數(shù)據(jù)的掃描,當為無效時,說明為一場數(shù)據(jù)結束。通過這幾個狀態(tài)信號的輸出,以及其它標志信號可以對行數(shù)據(jù)和場數(shù)據(jù)同步進行控制。具體見圖2.1(信號一行掃描輸出狀態(tài)) 和圖2.2(信號一場掃描輸出狀態(tài))。
圖2.1 信號輸出狀態(tài)( 一行掃描)
圖2.2 信號輸出狀態(tài)( 一場掃描)
2.2. 視頻緩沖模塊FIFO
AL422B 是Averlogic 公司的專用視頻的FIFO,最大存儲為384K 8bits,同時支持VGA,CCIR,NTSC,PAL 等視頻制式,兩端獨立的讀寫操作,支持不同速率的讀寫。根據(jù)CCIR.601協(xié)議,一場圖像數(shù)字化后最大的數(shù)據(jù)量是220K 16bit,因此,采用的AL422B 足夠可以容納完整的一場視頻圖像的數(shù)據(jù)量。采用這種大的FIFO 的設計可以降低DSP 對視頻FIFO 讀寫控制時序的復雜度,使整個視頻圖像處理流程簡捷,同時減少控制信號。
2.3. CPLD控制模塊
該模塊的組成主要是一片Altera 公司的CPLD 芯片EPM7128STC100,其主要功能是提供DSP 的EMIF 接口與視頻FIFO 相連時所需的一些額外的輔助邏輯(glue logic)。另外一個重要的功能是通過檢測SAA7114H 輸出的同步信號來生成DSP 中斷,通知DSP 讀取視頻FIFO 中已滿的一場圖像數(shù)據(jù)。(視頻FIFO AL422B 的容量為384K 8bits,系統(tǒng)中使用兩片并聯(lián)成16bits的接口寬度,整個視頻FIFO可以一次存放一幀的視頻數(shù)據(jù)。)
CPLD通過SAA7114H的輸出狀態(tài)信號以及TMS320C6x DSP的相應輸出控制信號生成FIFOAL422B 的控制信號。具體為:
根據(jù)SAA7114H輸出的VPO 總線同步信號,控制將輸出的數(shù)字視頻信號寫入到FIFO 中。
檢查到SAA7114H輸出的場同步信號后(表明FIFO 中已經(jīng)存滿一場圖像數(shù)據(jù)),向DSP 發(fā)出INT 信號,通知其開始讀取FIFO 中的圖像數(shù)據(jù)。同時將FIFO 的寫入指針復位到地址0x0000處。
根據(jù)SAA7114H 的兩個輸出信號IGP1 和RTS1,判定當前視頻AD輸出的視頻數(shù)據(jù)是奇數(shù)場還是偶數(shù)場,同時發(fā)出不同的INT中斷來通知DSP。
控制DSP 讀取FIFO 中圖像數(shù)據(jù)的讀寫時序,當讀完一場數(shù)據(jù)后,將FIFO 的讀出指針復位到地址0x0000 處。
控制FIFO 的寫時鐘與讀時鐘,并且使得寫時鐘與SAA7114H的輸出時鐘保持同步,使得讀時鐘與DSP 的外部分頻后的時鐘保持同步。
圖2.4 FIFO 寫時序控制
圖2.5 FIFO 讀時序控制
圖2.6 CPLD 控制寫時序的狀態(tài)機
從FIFO的寫時序圖和讀時序可以看到,當/WE和/RE(兩者都是低電平有效)為高電平的第一個周期,芯片仍然進行寫入和讀出操作,而下一個周期才進入掛起狀態(tài)。同樣,當/WE和/RE由高電平變?yōu)榈碗娖綍r,也是要延后一個時鐘周期才能發(fā)生改變。這種特性造成在設計SAA7114H向FIFO寫入時序的時候,需要提前一個周期確定下一個數(shù)據(jù)是否為有效數(shù)據(jù)。CPLD程序中通過檢測IGP0(配置為SAA7114H I-port端口的Buffer almost empty flag) 來實現(xiàn)這點。利用邏輯分析儀測出整個寫入時序為圖2.8。
在讀控制中主要是產(chǎn)生用于DSP 中斷的外部使能,中斷DSP 讀取FIFO的數(shù)據(jù),同時還要通知DSP 讀取的是奇數(shù)場的數(shù)據(jù)還是偶數(shù)場的數(shù)據(jù)。FIFO 的讀時序圖上可以看出如果F_OE 為低電平,這F_RE 變高后(F_OE 和F_RE 都是低電平有效),F(xiàn)IFO 的輸出仍然保存原來的值,而不是進入高阻狀態(tài)。CPLD 控制程序中正是利用這點來實現(xiàn)DSP對FIFO 的讀寫時序的匹配以及保證DMA 傳輸在被DSP 中斷后不會出錯。DSP 的FIFO 的讀取采用32 位的異步接口,8個DSP的時鐘周期(注意: 采用的是DSP 的主頻,不是總線頻率ClockOut2) 實現(xiàn)一次對FIFO 的讀寫。具體設置參考EMIF 總線初始化部分。CPLD通過將F_RE 置高,延長FIFO數(shù)據(jù)的輸出時間來匹配整個DSP 的讀取時序。利用邏輯分析儀測得FIFO 的讀取時序為圖9。
根據(jù)整個控制過程的邏輯和相應器件的讀寫時序,可以將整個FIFO 的控制過程分為寫入控制和讀出控制兩個部分,在寫入控制中用了4個有限狀態(tài)機來實現(xiàn),它們分別是IDLE,WEN0,WEN1,WEN2。根據(jù)狀態(tài)機的圖,采用硬件描述語言VHDL 實現(xiàn)了對CPLD 的邏輯的設計、綜合和仿真。邏輯綜合采用Synplicit7.2 公司專門針對CPLD/CPLD 的邏輯綜合工具。該軟件帶有Altera公司的綜合模塊庫,可以針對Altera公司的CPLD 器件對邏輯綜合后的結果進行優(yōu)化和改進,其中寫狀態(tài)機綜合后的電路原理圖為圖2.7。
對于邏輯設計的仿真時序驗證工作重要采用ALDEC 公司的仿真工具Active-HDL4.2,然后加入綜合工具生成的標準時延文件(SDF文件),通過仿真結果的驗證,說明CPLD 的邏輯設計是符合FIFO 讀寫控制模塊的功能要求的。最后綜合的邏輯結果通過Altera 公司的MAXplus10軟件,采用ByteBlaster 電纜下載到CPLD 芯片中。
3. 實驗結果:
圖3.1 是采用QCIF(176 144) 格式的視頻圖像,壓縮編碼算法采用M-JPEG2000標準。其中前一幅是無損壓縮恢復的結果圖,后一幅為有損壓縮。相應的壓縮編碼指標如表3.1 所示。
表 3.1
從上面表3.1 的結果可以看出,整個壓縮系統(tǒng)可以實現(xiàn)對視頻圖像的壓縮編碼。壓縮后的視頻流比較流暢。
從通過邏輯分析儀測得的時序圖(圖2.8、圖2.9)可以看出,CPLD 實現(xiàn)的FIFO 控制信號滿足視頻AL422B的時序要求,整個視頻數(shù)據(jù)傳輸?shù)耐饭ぷ髡#旧线_到了系統(tǒng)設計的指標和要求。同時這種方案可以作為一個整體的視頻采集模塊,在一般的使用DSP 的EMIF 總線的情況下的都可以無需改動就可以作為一個采集模塊直接使用,大大簡化硬件電路開發(fā)的難度。此方案已經(jīng)在基于DSP 的視頻PCI 采集壓縮卡中得到了驗證,達到了很好的效果。本文的基于CPLD的視頻采集通用模塊已經(jīng)在M-JPEG2000的視頻采集壓縮卡得到了應用。
責任編輯:gt
-
dsp
+關注
關注
553文章
7998瀏覽量
348965 -
芯片
+關注
關注
455文章
50818瀏覽量
423724 -
cpld
+關注
關注
32文章
1248瀏覽量
169370
發(fā)布評論請先 登錄
相關推薦
評論