歡迎您光臨本站 登入註冊首頁

基於CPLD控制的通用視頻採集模塊

admin @ 2014-03-26 , reply:0

概述

1.引言   對於用於視頻圖像處理的DSP來說,由於前端的A/D採集速度較低,一般為了減少DSP的開銷,在視頻採集A/D和DSP之間接入先進先出存儲器(FIFO)作為緩衝……

1. 引言
    對於用於視頻圖像處理的DSP 來說,由於前端的A/D 採集速度較低,一般為了減少DSP 的開銷,在視頻採集A/D 和DSP之間接入先進先出存儲器(FIFO) 作為緩衝。基於先進先出存儲器(FIFO) 的多樣性,一般在視頻採集與微處理器模塊之間很少提供無縫介面。傳統的方法是用簡單的邏輯電路實現很少一部分介面控制,大多數是通過軟體來實現,雖然軟體設計靈活性比較大,但是對軟體設計者提出很高的要求; 一般來說使用的都是線存的FIFO,這種FIFO 的存儲量比較少,會花費CPU 很大的開銷。
    本文實現了一種在採集A/D 模塊、專用視頻FIFO 以及DSP 微處理使用CPLD 作為純硬體控制的方案。使用這種方案的創新點是首先因為使用的是幀存儲器FIFO,存儲一幀或者一場視頻數據,這樣可以大大減輕DSP的開銷,提高DSP 的效率,從而更好的提高視頻處理的實時性;其次因為介面邏輯比較複雜,一般用軟體實現起來比較困難,使用可編程CPLD實現全部的硬體介面邏輯,減少軟體設計的難度,減少DSP 的開銷。同時可以發揮CPLD 現場可編程的特點,可以像軟體一樣更改; 最後可以作為一個集成的通用硬體採集模塊。
    本文實現的是基於TI TMS320C6x 的DSP的視頻採集壓縮卡的A/D採集模塊以及介面控制模塊。在採集模塊主要功能是將從CCD 攝像頭輸入的模擬視頻信號轉換為數字信號,普通CCD攝像頭的輸出是NTSC 制式的複合全電視信號CVBS 信號,通過SAA7114H TV解碼晶元將模擬TV 信號解碼,轉換為符合ITU-R BT.601 標準的數字視頻信號,並且由CPLD 控制模塊將數據存儲到專用的視頻FIFO晶元,中斷DSP 讀取數據處理。具體的信號控制見圖1.1。
 

2. 模塊介紹
2.1. 視頻採集模塊
    採集模塊採用PHILIPS 公司的視頻A/D 晶元SAA7114H,該專用視頻A/D 具有6 路模擬視頻輸入,兩個模擬預處理通道,並且抗混濾波、梳狀濾波都被集成到晶元內部,這樣對於硬體設計帶來了極大的方便。同時場同步信號IGPV,行同步信號IGPH,有效圖像數據輸出信號IDQ,時鐘輸出信號ICLK都有管腳直接引出,這樣省去了以往的時鐘同步電路的設計,可靠性也有所提高。系統內部鎖相環技術的集成使得可靠性和設計複雜度都有極大的降低。SAA7114H 的配置支持I2C,可以通過DSP的通用I/O 口軟體模擬I2C匯流排。
    從圖2可以看出整個過程是在ICLK在上升沿觸發,在 IDQ 有效的情況下傳輸的數據有效,數據輸出的格式為(下為奇數場的一行數據掃描)
FF00 0080 U0Y0,V0Y1,U1Y2,V1Y3,…………,U319Y638,V320Y639
    其中FF00 和0080 是奇數場標誌位。
    當輸出IGPH 有效表明為一行數據的掃描,當IGPH無效的情況下,表明數據在回掃。從圖3可以看出當IGPV 有效說明是一場數據的掃描,當為無效時,說明為一場數據結束。通過這幾個狀態信號的輸出,以及其它標誌信號可以對行數據和場數據同步進行控制。具體見圖2.1(信號一行掃描輸出狀態) 和圖2.2(信號一場掃描輸出狀態)。

 圖2.1 信號輸出狀態( 一行掃描)

圖2.2 信號輸出狀態( 一場掃描) 
2.2. 視頻緩衝模塊FIFO
    AL422B 是Averlogic 公司的專用視頻的FIFO,最大存儲為384K× 8bits,同時支持VGA,CCIR,NTSC,PAL 等視頻制式,兩端獨立的讀寫操作,支持不同速率的讀寫。根據CCIR.601協議,一場圖像數字化后最大的數據量是220K× 16bit,因此,採用的AL422B 足夠可以容納完整的一場視頻圖像的數據量。採用這種大的FIFO 的設計可以降低DSP 對視頻FIFO 讀寫控制時序的複雜度,使整個視頻圖像處理流程簡捷,同時減少控制信號。

2.3. CPLD控制模塊
    該模塊的組成主要是一片Altera 公司的CPLD 晶元EPM7128STC100,其主要功能是提供DSP 的EMIF 介面與視頻FIFO 相連時所需的一些額外的輔助邏輯(glue logic)。另外一個重要的功能是通過檢測SAA7114H 輸出的同步信號來生成DSP 中斷,通知DSP 讀取視頻FIFO 中已滿的一場圖像數據。(視頻FIFO AL422B 的容量為384K× 8bits,系統中使用兩片並聯成16bits的介面寬度,整個視頻FIFO可以一次存放一幀的視頻數據。)
    CPLD通過SAA7114H的輸出狀態信號以及TMS320C6x DSP的相應輸出控制信號生成FIFOAL422B 的控制信號。具體為:

  • 根據SAA7114H輸出的VPO 匯流排同步信號,控制將輸出的數字視頻信號寫入到FIFO 中。
  • 檢查到SAA7114H輸出的場同步信號后(表明FIFO 中已經存滿一場圖像數據),向DSP 發出INT 信號,通知其開始讀取FIFO 中的圖像數據。同時將FIFO 的寫入指針複位到地址0x0000處。
  • 根據SAA7114H 的兩個輸出信號IGP1 和RTS1,判定當前視頻AD輸出的視頻數據是奇數場還是偶數場,同時發出不同的INT中斷來通知DSP。
  • 控制DSP 讀取FIFO 中圖像數據的讀寫時序,當讀完一場數據后,將FIFO 的讀出指針複位到地址0x0000 處。
  • 控制FIFO 的寫時鐘與讀時鐘,並且使得寫時鐘與SAA7114H的輸出時鐘保持同步,使得讀時鐘與DSP 的外部分頻后的時鐘保持同步。

圖2.4  FIFO 寫時序控制
 
圖2.5  FIFO 讀時序控制
 
圖2.6 CPLD 控制寫時序的狀態機
    從FIFO的寫時序圖和讀時序可以看到,當/WE和/RE(兩者都是低電平有效)為高電平的第一個周期,晶元仍然進行寫入和讀出操作,而下一個周期才進入掛起狀態。同樣,當/WE和/RE由高電平變為低電平時,也是要延後一個時鐘周期才能發生改變。這種特性造成在設計SAA7114H向FIFO寫入時序的時候,需要提前一個周期確定下一個數據是否為有效數據。CPLD程序中通過檢測IGP0(配置為SAA7114H I-port埠的Buffer almost empty flag) 來實現這點。利用邏輯分析儀測出整個寫入時序為圖2.8。
 
    在讀控制中主要是產生用於DSP 中斷的外部使能,中斷DSP 讀取FIFO的數據,同時還要通知DSP 讀取的是奇數場的數據還是偶數場的數據。FIFO 的讀時序圖上可以看出如果F_OE 為低電平,這F_RE 變高后(F_OE 和F_RE 都是低電平有效),FIFO 的輸出仍然保存原來的值,而不是進入高阻狀態。CPLD 控制程序中正是利用這點來實現DSP對FIFO 的讀寫時序的匹配以及保證DMA 傳輸在被DSP 中斷後不會出錯。DSP 的FIFO 的讀取採用32 位的非同步介面,8個DSP的時鐘周期(注意: 採用的是DSP 的主頻,不是匯流排頻率ClockOut2) 實現一次對FIFO 的讀寫。具體設置參考EMIF 匯流排初始化部分。CPLD通過將F_RE 置高,延長FIFO數據的輸出時間來匹配整個DSP 的讀取時序。利用邏輯分析儀測得FIFO 的讀取時序為圖9。
 
    根據整個控制過程的邏輯和相應器件的讀寫時序,可以將整個FIFO 的控制過程分為寫入控制和讀出控制兩個部分,在寫入控制中用了4個有限狀態機來實現,它們分別是IDLE,WEN0,WEN1,WEN2。根據狀態機的圖,採用硬體描述語言VHDL 實現了對CPLD 的邏輯的設計、綜合和模擬。邏輯綜合採用Synplicit7.2 公司專門針對CPLD/CPLD 的邏輯綜合工具。該軟體帶有Altera公司的綜合模塊庫,可以針對Altera公司的CPLD 器件對邏輯綜合后的結果進行優化和改進,其中寫狀態機綜合后的電路原理圖為圖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 壓縮編碼指標
圖像格式 編碼后碼率 壓縮比 內存佔用 耗 時
176× 144   11.9KB/幀 2.074    801KByte 0.05 秒
    從上面表3.1 的結果可以看出,整個壓縮系統可以實現對視頻圖像的壓縮編碼。壓縮后的視頻流比較流暢。
    從通過邏輯分析儀測得的時序圖(圖2.8、圖2.9)可以看出,CPLD 實現的FIFO 控制信號滿足視頻AL422B的時序要求,整個視頻數據傳輸的通路工作正常,基本上達到了系統設計的指標和要求。同時這種方案可以作為一個整體的視頻採集模塊,在一般的使用DSP 的EMIF 匯流排的情況下的都可以無需改動就可以作為一個採集模塊直接使用,大大簡化硬體電路開發的難度。此方案已經在基於DSP 的視頻PCI 採集壓縮卡中得到了驗證,達到了很好的效果。本文的基於CPLD的視頻採集通用模塊已經在M-JPEG2000的視頻採集壓縮卡得到了應用。


[admin via 研發互助社區 ] 基於CPLD控制的通用視頻採集模塊已經有2459次圍觀

http://cocdig.com/docs/show-post-43098.html