本文介紹了一種基于FPGA的視頻、音頻、反向數據的遠程傳輸系統(tǒng)的研究與設計,該系統(tǒng)在實際中得到了應用,具有良好的穩(wěn)定性、實用性和可靠性。
引言
目前在高速公路、交通、電子警察、監(jiān)控、安防、工業(yè)自動化、電力、海關、水利、銀行等領域視頻圖像、音頻、數據、以太網、電話等光端機開始普遍大量應用。
由于數字光端機具有傳輸信號質量高,沒有模擬調頻、調相、調幅光端機多路信號同傳時交調干擾嚴重、容易受環(huán)境干擾影響、傳輸質量低劣、長期工作穩(wěn)定性差的缺點,因此許多大型重點工程已普遍采用數字光端機。
系統(tǒng)框架與工作原理
整個系統(tǒng)由核心控制模塊FPGA、音頻采樣編解碼模塊、視頻分離模塊、視頻放大模塊、視頻A/D和D/A轉換模塊、并串/串并轉換模塊、光纖調制收發(fā)模塊、電源控制模塊和485數據傳輸模塊。圖1是該系統(tǒng)的系統(tǒng)框圖。
圖1 系統(tǒng)結構框圖
系統(tǒng)的工作原理為:光端機系統(tǒng)分為兩部分,分別為:發(fā)射機和接收機。在發(fā)射端,來自監(jiān)視器或其他視頻源的視頻信號首先經過發(fā)射板上的視頻濾波網絡去除噪聲干擾信號,然后對該視頻信號進行視頻分離和視頻放大。視頻分離模塊得到視頻信號的行、場同步信號以及奇偶場信號、視頻鉗位等重要的視頻信息。接下來,對放大后的視頻信號進行A/D轉換,得到的數字化的視頻信號送入系統(tǒng)主控核心FPGA中。與此同時,如果系統(tǒng)檢測到了有音頻信號的存在,則對其進行音頻濾波、音頻數字化采樣以及音頻PCM編碼。經過PCM編碼后的音頻信號,送入系統(tǒng)主控核心FPGA中。反向數據傳輸主要是485信號,該信號也送入到FPGA。這樣,系統(tǒng)主控核心FPGA對來自不同模塊的視頻、音頻、數據等信號整合,時分復用地將各個信號編碼成8位并行信號流送入到并串轉換模塊。信號流經過并串轉換后變成高速的LVDS信號驅動光纖收發(fā)模塊以波分復用的方式完成了電/光變化和光發(fā)射。在光端機的接收端,經過以上的逆過程,完成對原始信號的恢復。
系統(tǒng)硬件組成
1、FPGA核心控制器
系統(tǒng)的核心控制部分是整個系統(tǒng)的心臟,為了滿足對高速、多路數據流的實時處理,要求系統(tǒng)核心控制器必須有較高的工作頻率和反應能力。其次,對于系統(tǒng)時分復用部分,為了信號的同步化,需要系統(tǒng)核心控制器內嵌RAM和FIFO等功能塊。此外,同時作為嵌入式系統(tǒng),處理器必須有著低功耗的要求。目前,FPGA處理器已經遍及工業(yè)控制、消費電子產品、通信系統(tǒng)等各類產品市場。按照低成本、低功耗、小體積、多功能及較為強大的數據處理能力,Altera公司CycloneII系列的EP1C3144是一個非常好的選擇。
圖2 視頻分離硬件電路
2、視頻分離模塊
視頻信號中除了包含圖像信號之外,還包括了行同步信號、行消隱信號、場同步信號、場消隱信號以及槽脈沖信號、前均衡脈沖、后均衡脈沖等,因此,若要對視頻信號進行采集,就必須準確地把握各種信號間的邏輯關系。LM1881就是針對視頻信號的同步分離而生產的,它為視頻信號的處理提供了極大的方便。此處電路設計如圖2所示。
LM1881可以從0.5~2V的標準負極性NTSC制、PAL制、SECAM制視頻信號中提取復合同步場同步、奇偶場識別等信號,這些信號都是圖像數字采集所需要的同步信號,有了它們,便可確定采集點在哪一場,哪一行。LM1881也能對非標準的視頻信號進行同步分離,通過固定的時間延遲產生默認的輸出作為場同步輸出。
圖3 A/D轉換硬件電路
3、A/D和D/A轉換模塊
此處的A/D轉換電路主要用來對視頻濾波,放大后的視頻信號進行數字化變換。電視圖像信號的帶寬理論計算值為7.37MHz,實際取5.5275MHz。由香農定理知,ADC的采樣頻率應該大于2倍的圖像最高頻率,所以ADC采用ADI公司的AD9280,工作頻率為32MHz。該ADC具有良好的差分非線性度、模擬輸入超出轉換量程提示、內建自流電平回復和可調片內電壓基準源等優(yōu)勢。
此處A/D轉換電路設計如圖3所示。
接收端A/D轉換電路主要完成對數字化后的視頻信號的模擬變換,還原出標準的視頻信號。此處選用的DAC為ADI公司的高速AD9708。
AD9708采用+3V或+5V單電源供電,兩路電流輸出,轉換速率高達125MHz,建立時間不大于35ns,轉換精度為1/4 LSB。在+5V電源供電的情況下,其功耗為175mW;在+3V電源供電的情況下,其功耗為45mW。
為了特殊的需要,AD9708還兼容8位、10位和12位并行數據輸入。當AD9708被設置成8位數據輸入時,只要把管腳1設為最高輸入有效數據位(MSB),管腳8設為最低輸入有效數據位(LSB)即可。引腳1(DB13):最高輸入有效數據位;引腳2~13(DB12~DB1):數據輸入端;引腳14(DB0):最低輸入有效。
4、并串/串并模塊
低壓差分信號是由ANSI/TIA/EIA-644-1995定義的用于高速數據傳輸的物理層接口標準(LVDS)。它具有超高速(速率可達1.4Gb/s)、超低功耗和低電磁輻射等特性,因而是在銅介質上實現千兆位速率通信的優(yōu)選方案。而總線形低壓差分信號LVDS是LVDS技術在多點通信領域的擴展,它要求有更大的驅動電流(10mA)和更好的阻抗匹配設計。
SN65LV1023和SN65LV1224是TI公司推出的10位總線型低壓差分信號的應用芯片組。其中SN65LV1023是可將10位并行CMOS或TTL數據轉換為具有內嵌時鐘的高速串行差分數據流的串化器;而SN65LV1224則是接收該差分數據流并將它們轉換為并行數據的解串器,它同時又可以重建并行時鐘。采用該器件組進行數據串化時采用的是內嵌時鐘,這樣可有效地解決由于時鐘與數據的不嚴格同步而制約高速傳輸的瓶頸問題。此處的硬件電路設計如圖4所示。
圖4 并串轉化硬件示意圖
系統(tǒng)軟件設計
系統(tǒng)軟件主要是對系統(tǒng)控制核心的FPGA的編程。整個程序基于模塊化、結構化的軟件開發(fā)思想編寫。所用的開發(fā)工具是Altera公司出品的FPGA集成開發(fā)環(huán)境QuartusII,開發(fā)語言采用當今比較流行的大規(guī)模集成電路Verilog開發(fā)語言。
系統(tǒng)軟件功能實現了A/D控制模塊、語音編碼控制模塊、并串轉換控制模塊、串并轉換控制模塊、D/A控制模塊、語音解碼控制模塊和反向數據的收發(fā)控制模塊。
1、A/D控制模塊
A/D控制模塊以FPGA為主控核心,為AD9280提供采樣時鐘;同時采集AD9280A/D轉換后的數字量。
FPGA系統(tǒng)時鐘頻率為32MHz,對于AD9280的采樣時鐘為16MHz,對系統(tǒng)時鐘進行二分頻后提供給AD9280。同時,在分頻后的輸出時鐘的上升沿對A/D轉換的結果進行讀取,讀取的結果存入FPGA中進行下一步應用。程序如下所示。
module AdControl(clk_in,reset,ad_data,clk_out,data_reg);
input clk_in,reset;
input [0:7]ad_data;
output clk_out;
output [0:7]data_reg;
reg [0:7]data_reg;
reg clk_out;
always@(posedge clk_in)
begin
if(reset)
clk_out《=0;
else
clk_out《=~clk_out;
end
always@(posedge clk_out)
begin
data_reg《=ad_data;
end
endmodule
其中,clk_in為FPGA系統(tǒng)輸入時鐘;clk_out為分頻后提供給ADC的采樣時鐘;reset為復位端,高電平復位;ad_data是A/D轉換后得到的數字量;data_reg
用來存儲A/D轉換后的數字量。
2、語音編碼控制模塊
語音編碼控制模塊主要完成對PCM編碼芯片提供數據編碼時鐘、數據使能控制以及編碼后的數據接收。
此處程序如下所示。
module PcmControl(clk_in,reset,tdd,tdc,tde,pcm_data);
……
always@(posedge clk_in)
begin
if(reset)
begintdc《=0; end
elsebegin
if(cnt0==7)
begin
tdc《=~tdc;
cnt0《=0;
end
else
cnt0《=cnt0+1;
end
end
always@(posedge tdc)
begin
if(cnt1==140)
begin
tde《=~tde;
cnt1《=0;
end
else
cnt1《=cnt1+1;
end
always@(posedge tdc)
begin
pcm_data《=tdd;
end
endmodule
其中,clk_in是FPGA系統(tǒng)時鐘,reset為系統(tǒng)復位信號。信號tdd是PCM編碼芯片的輸出;信號pcm_data用來存放PCM編碼數據;信號tdc是PCM編碼時鐘信號;信號tde是PCM編碼使能時鐘。
3、并串轉換控制模塊
系統(tǒng)主控核心FPGA對數字化的視頻、語音信號進行時分復用后,將視頻語音混合信號送給并串轉換器。并串轉換模塊主要實現對并串轉換器的時序控制,使能控制和數據輸入控制。此處的部分程序如下所示。
moduleSnControl (clk_in,fpga_data,sn_clk,sn_data,sncontrol);
input clk_in;
input [0:9]fpga_data;
output [0:9]sn_data;
output sn_clk,sncontrol;
reg sn_clk,sncontrol;
reg [0:9]sn_data;
always@(posedge clk_in)
begin
sn_clk《=~sn_clk;
end
always
begin
sncontrol《=1;
end
always@(posedge sn_clk)
begin
sn_data《=fpga_data;
end
endmodule
其中,clk_in是FPGA系統(tǒng)時鐘,信號sn_clk是并串轉換器的轉換時鐘;信號fpga_data是FPGA對視頻、語音時分復用編碼后的數據;信號sn_data是并串轉換器的輸入數據;信號sncontrol是并串轉換器的編碼使能時鐘。
4 D/A控制模塊
D/A控制模塊主要用來控制AD9708,對來自串并轉換后的數據,FPGA首先進行時分解復用,然后將視頻信號部分發(fā)送給AD9708,同時配合DAC的轉換時鐘,該時鐘信號是通過并串轉換器恢復出來的發(fā)射端系統(tǒng)的發(fā)射時鐘。
結語
此套數字式光端機系統(tǒng),實現了各個監(jiān)控點和總監(jiān)控室的信號遠程傳輸。各監(jiān)控點的攝像頭傳回視頻信號,總監(jiān)控室通過485數據接口線對各個攝像頭進行遠程控制。遠程兩端之間還可以進行話音通信。具有一定的使用價值和工程意義。
責任編輯:gt
評論
查看更多