FPGA在多制式視頻轉換系統中的應用
1 引言
目前, 在軍事、工業(yè)和醫學(xué)領(lǐng)域存在著(zhù)大量的非標準視頻系統, 其視頻信號只能在專(zhuān)業(yè)的設備上才能播放和錄制。而實(shí)際中廣泛采用的是標準電視信號(PAL ,NTSC, SECAM) 或VGA 視頻, 這就給這些領(lǐng)域內的觀(guān)測監督和學(xué)術(shù)交流造成了許多困難。以醫學(xué)信號為例, 目前, 國內醫院很多科室的手術(shù)監控設備都是國外進(jìn)口的一體式設備, 手術(shù)影像資料只能供室內的幾名醫生觀(guān)看, 無(wú)法通過(guò)電視系統傳送到外部監測。如能將非標準視頻流轉換為標準視頻流, 無(wú)疑會(huì )給這些領(lǐng)域帶來(lái)很大的便利。時(shí)下的視頻轉換系統大多存在轉換速度慢、功能單一、圖像質(zhì)量不高的缺點(diǎn), 且一般是一機一用。本文介紹了基于單片機+ FPGA 的視頻制式的轉換系統, 利用單片機方便的嵌入性及靈活的可編程性, 再結合FPGA 強大的邏輯控制功能很好地克服了這些弊端, 實(shí)現了實(shí)時(shí)、高質(zhì)量的視頻圖像轉換, 同時(shí), 可以方便地改變系統參數, 實(shí)現一機多用。
2 系統設計原理簡(jiǎn)介
不同制式視頻信號間的根本區別在于掃描方式和行場(chǎng)頻率不同。標準VGA 采用逐行掃描, 在一幀內實(shí)現對圖像的完全掃描; 標準電視信號(以PAL制為例)采用隔行掃描, 利用視覺(jué)暫留, 將奇偶場(chǎng)恢復成一幀完整圖像。而非標準視頻流則無(wú)一定規律。因此, 視頻轉換的基本思路是將非標準視頻信號經(jīng)模數轉換成數字信號, 在存儲器中緩存, 變頻讀出或經(jīng)過(guò)數字信號處理, 再通過(guò)數模轉換恢復成標準視頻流。本系統設計思
路框圖如圖1 所示。
從原理可以看出, 只要數據讀出速度高于寫(xiě)入速度, 就不會(huì )使圖像產(chǎn)生突變現象, 從而達到實(shí)時(shí)處理的目的。設計中, 存儲器采用2片512K×8 bit 的FIFOAL440, 它采用DRAM 工藝, 最高時(shí)鐘可達80MHz,是專(zhuān)用的視頻存儲器。邏輯主控單元選用Altera 公司出品的FLEX10K50E 實(shí)現, 其門(mén)數達到5 萬(wàn)個(gè), 處理速度最高可達220MHz, 很適合高速數據流處理。同步恢復采用74ACT715, 它可按編程數據產(chǎn)生隔行或逐行的電視行場(chǎng)同步信號, 非常適合于多制式輸出系統。而視頻恢復編碼部分采用的是專(zhuān)用數字圖像處理芯片DSP AL128, 其內置的高集成化數字處理器, 可以將逐行掃描數字信號直接恢復成標準電視信號和S-VIDEO 輸出。
3 系統設計實(shí)現
整個(gè)系統大體框架如圖2 所示, 圖中虛線(xiàn)部分均由FPGA 實(shí)現。
3. 1 單片機接口模塊
系統中有FIFO ,AL128 的I2C 參數和74ACT715的初始化參數及數模、模數時(shí)鐘分頻參數共計90 個(gè),為避免出現繁瑣的判斷語(yǔ)句, 設計中采用FPGA 內置ROM 結構。其原理圖如圖3 所示。
圖3 單片機譯碼原理圖
FPGA 將單片機送來(lái)的機器地址(00H~5AH )譯碼成芯片地址, 芯片地址總共10位, 高2位用來(lái)判斷配置何種芯片, 低8位用來(lái)判斷配置該芯片中第N個(gè)寄存器。再結合單片機送來(lái)的數據線(xiàn)和讀寫(xiě)控制線(xiàn)來(lái)決定對該寄存器進(jìn)行讀或寫(xiě)操作以及寫(xiě)入的數據。
74ACT715 的配置參數為12位, 配置中用兩個(gè)連續的地址分別記錄其高4位和低8位數據。其中, 57H~5AH為只讀地址, 相應數據將控制數模、模數時(shí)鐘的頻率。
3. 2 I2C 配置及時(shí)鐘控制模塊
本系統FPGA 的一個(gè)重要功能就是對芯片初始化和I2C 參數配置。I2C 總線(xiàn)是一種由飛利浦公司開(kāi)發(fā)的接口總線(xiàn), 利用一條數據線(xiàn)sdata 和一條時(shí)鐘線(xiàn)sclk 在主從器件間進(jìn)行串行通信。飛利浦公司制定了標準I2C協(xié)議, 但是, 工業(yè)上依然使用很多非標準I2C器件, 本系統的FIFO、AL128 均為非標準I2C 器件, 故要對它們分別進(jìn)行配置, 利用FPGA 的邏輯控制及內置MUX 可以在不同讀寫(xiě)時(shí)序間靈活切換, 達到對多個(gè)芯片的全雙工同步數據傳輸。實(shí)現原理圖如圖4 所示。
圖4 總線(xiàn)切換控制原理圖
同時(shí), 由系統實(shí)現原理分析可知, 視頻制式變換的關(guān)鍵在于掃描頻率變化, 即,AD采樣時(shí)鐘頻率和DA圖像恢復時(shí)鐘頻率。這部分數字頻率在系統中是由外部鎖相環(huán)(PLL) 和FPGA 中的可變分頻計數器實(shí)現的。其原理圖如圖5 所示。
圖5 數字鎖相環(huán)原理圖
與普通鎖相環(huán)不同的是, 利用FPGA 的可編程性, PLL的參考頻率可以由單片機配置的分頻數隨意更改, 使數字頻率合成電路有較高的穩定性、靈活性和靈敏度。
3. 3 FIFO 控制模塊
考慮到非標準視頻信號一幀圖像數據量太大, 一塊FIFO 放不下, 同時(shí), 電視信號都采用隔行掃描, 數據流將按奇偶場(chǎng)交替輸出, 故設計中用兩塊FIFO A、B 分別存放圖像的奇偶幀, 但在圖像恢復時(shí)為逐行掃描方式, 這就涉及到在兩塊FIFO 間交替讀出數據的問(wèn)題。設計中, 用兩個(gè)場(chǎng)同步信號Vsync 間的行同步信號Hsync 做判斷, 決定兩塊F IFO 的讀寫(xiě), 使數據按ABAB..... 逐行讀出。該部分代碼段如下, 仿真時(shí)序圖見(jiàn)圖6。
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY ctrl IS
PORT (
vsync, hsync : IN STD_LOGIC;
fifoa_en, fifob_en:OUT STD_LOGIC
);
END ctrl;
ARCHITECTURE behav OF ctrl IS
SIGNAL fifo_en: STD_LOGIC;
BEGIN
PROCESS (hsync, vsync)
BEGIN
IF vsync=''0'' THEN
fifo_en= ''1'
ELSIF hsync''event AND hsync=''0'' THEN
fifo_en= not (fifo_en);
END IF;
END PROCESS;
fifoa_en= fifo_en WHEN vsync=''1'' ELSE ''1'
fifob_en= not (fifo_en) WHEN vsync=''1'' ELSE ''1'
END behav;
圖6 仿真時(shí)序圖
在時(shí)鐘方面, FIFO 寫(xiě)入時(shí)鐘與AD 采樣時(shí)鐘相等,FIFO 讀出時(shí)鐘與DA 恢復像素時(shí)鐘相等。實(shí)時(shí)處理運動(dòng)幀時(shí), 為不在兩場(chǎng)之間出現跳動(dòng)現象, 讀出時(shí)鐘要高于寫(xiě)入時(shí)鐘。在實(shí)際應用中, 為了產(chǎn)生分頻率1024×768, 刷新頻率為60 Hz 的VGA 圖像, 讀出時(shí)鐘高達46MHz,這樣的高速數據處理就必須滿(mǎn)足一定的時(shí)延要求。以50MHz 時(shí)鐘為例, 數據與時(shí)鐘間的最大時(shí)延不能超過(guò)10ns (像素時(shí)鐘20ns, 半周期為10ns)。經(jīng)過(guò)FGPA 的Quartus 綜合分析, 時(shí)鐘與數據間的最大延時(shí)為3.7ns, 滿(mǎn)足系統時(shí)延要求。一般地, 這一數據是系統最壞情況下的延時(shí), 實(shí)際系統延時(shí)將小于仿真數據。
4 結束語(yǔ)
在數字電路設計中, FPGA 發(fā)揮了越來(lái)越重要的作用, 隨著(zhù)FPGA 向高密度、低成本方向發(fā)展, 目前的一個(gè)趨勢是把系統級功能放到FPGA 器件中。本文介紹的視頻轉換系統以FPGA 作為系統主控元件, 不但大大減少了電路版尺寸, 而且增強了系統可靠性和靈活性。在實(shí)際測試中, 將非標準隔行視頻信號(1024行, 50Hz 場(chǎng)頻) 成功地轉換成了高清晰度的VGA 圖像和標準PAL 電視圖像。目前, 該系統已應用于某醫院監視系統。
評論