《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 可編程邏輯 > 設(shè)計應(yīng)用 > 基于FPGA的數(shù)字式光端機
基于FPGA的數(shù)字式光端機
陳文輝 蔣國平 馬幼軍
摘要: 本文介紹了一種基于FPGA的視頻、音頻、反向數(shù)據(jù)的遠(yuǎn)程傳輸系統(tǒng)的研究與設(shè)計,該系統(tǒng)在實際中得到了應(yīng)用,,具有良好的穩(wěn)定性,、實用性和可靠性。
Abstract:
Key words :

  本文介紹了一種基于FPGA的視頻、音頻、反向數(shù)據(jù)的遠(yuǎn)程傳輸系統(tǒng)的研究與設(shè)計,該系統(tǒng)在實際中得到了應(yīng)用,具有良好的穩(wěn)定性,、實用性和可靠性。

  引言

  目前在高速公路,、交通,、電子警察、監(jiān)控,、安防,、工業(yè)自動化、電力,、海關(guān),、水利、銀行等領(lǐng)域視頻圖像,、音頻,、數(shù)據(jù)、以太網(wǎng),、電話等光端機開始普遍大量應(yīng)用,。

  由于數(shù)字光端機具有傳輸信號質(zhì)量高,沒有模擬調(diào)頻,、調(diào)相,、調(diào)幅光端機多路信號同傳時交調(diào)干擾嚴(yán)重、容易受環(huán)境干擾影響,、傳輸質(zhì)量低劣,、長期工作穩(wěn)定性差的缺點,因此許多大型重點工程已普遍采用數(shù)字光端機,。

  系統(tǒng)框架與工作原理

  整個系統(tǒng)由核心控制模塊FPGA,、音頻采樣編解碼模塊、視頻分離模塊,、視頻放大模塊,、視頻A/D和D/A轉(zhuǎn)換模塊,、并串/串并轉(zhuǎn)換模塊、光纖調(diào)制收發(fā)模塊,、電源控制模塊和485數(shù)據(jù)傳輸模塊,。圖1是該系統(tǒng)的系統(tǒng)框圖。

  

  

  圖1 系統(tǒng)結(jié)構(gòu)框圖

  系統(tǒng)的工作原理為:光端機系統(tǒng)分為兩部分,,分別為:發(fā)射機和接收機。在發(fā)射端,,來自監(jiān)視器或其他視頻源的視頻信號首先經(jīng)過發(fā)射板上的視頻濾波網(wǎng)絡(luò)去除噪聲干擾信號,,然后對該視頻信號進行視頻分離和視頻放大。視頻分離模塊得到視頻信號的行,、場同步信號以及奇偶場信號,、視頻鉗位等重要的視頻信息。接下來,,對放大后的視頻信號進行A/D轉(zhuǎn)換,,得到的數(shù)字化的視頻信號送入系統(tǒng)主控核心FPGA中。與此同時,,如果系統(tǒng)檢測到了有音頻信號的存在,,則對其進行音頻濾波、音頻數(shù)字化采樣以及音頻PCM編碼,。經(jīng)過PCM編碼后的音頻信號,,送入系統(tǒng)主控核心FPGA中。反向數(shù)據(jù)傳輸主要是485信號,,該信號也送入到FPGA,。這樣,系統(tǒng)主控核心FPGA對來自不同模塊的視頻,、音頻,、數(shù)據(jù)等信號整合,時分復(fù)用地將各個信號編碼成8位并行信號流送入到并串轉(zhuǎn)換模塊,。信號流經(jīng)過并串轉(zhuǎn)換后變成高速的LVDS信號驅(qū)動光纖收發(fā)模塊以波分復(fù)用的方式完成了電/光變化和光發(fā)射,。在光端機的接收端,經(jīng)過以上的逆過程,,完成對原始信號的恢復(fù),。

  系統(tǒng)硬件組成

  1 FPGA核心控制器

  系統(tǒng)的核心控制部分是整個系統(tǒng)的心臟,為了滿足對高速,、多路數(shù)據(jù)流的實時處理,,要求系統(tǒng)核心控制器必須有較高的工作頻率和反應(yīng)能力。其次,,對于系統(tǒng)時分復(fù)用部分,,為了信號的同步化,,需要系統(tǒng)核心控制器內(nèi)嵌RAM和FIFO等功能塊。此外,,同時作為嵌入式系統(tǒng),,處理器必須有著低功耗的要求。目前,,F(xiàn)PGA處理器已經(jīng)遍及工業(yè)控制,、消費電子產(chǎn)品、通信系統(tǒng)等各類產(chǎn)品市場,。按照低成本,、低功耗、小體積,、多功能及較為強大的數(shù)據(jù)處理能力,,Altera公司CycloneII系列的EP1C3144是一個非常好的選擇。

  

  

  圖2 視頻分離硬件電路

  2 視頻分離模塊

  視頻信號中除了包含圖像信號之外,,還包括了行同步信號,、行消隱信號、場同步信號,、場消隱信號以及槽脈沖信號,、前均衡脈沖、后均衡脈沖等,,因此,若要對視頻信號進行采集,,就必須準(zhǔn)確地把握各種信號間的邏輯關(guān)系。LM1881就是針對視頻信號的同步分離而生產(chǎn)的,,它為視頻信號的處理提供了極大的方便,。此處電路設(shè)計如圖2所示。

  LM1881可以從0.5~2V的標(biāo)準(zhǔn)負(fù)極性NTSC制,、PAL制,、SECAM制視頻信號中提取復(fù)合同步場同步、奇偶場識別等信號,,這些信號都是圖像數(shù)字采集所需要的同步信號,,有了它們,便可確定采集點在哪一場,,哪一行,。LM1881也能對非標(biāo)準(zhǔn)的視頻信號進行同步分離,通過固定的時間延遲產(chǎn)生默認(rèn)的輸出作為場同步輸出,。

  

  

  圖3 A/D轉(zhuǎn)換硬件電路

  3 A/D和D/A轉(zhuǎn)換模塊

  此處的A/D轉(zhuǎn)換電路主要用來對視頻濾波,,放大后的視頻信號進行數(shù)字化變換。電視圖像信號的帶寬理論計算值為7.37MHz,,實際取5.5275MHz,。由香農(nóng)定理知,,ADC的采樣頻率應(yīng)該大于2倍的圖像最高頻率,所以ADC采用ADI公司的AD9280,,工作頻率為32MHz,。該ADC具有良好的差分非線性度、模擬輸入超出轉(zhuǎn)換量程提示,、內(nèi)建自流電平回復(fù)和可調(diào)片內(nèi)電壓基準(zhǔn)源等優(yōu)勢,。

  此處A/D轉(zhuǎn)換電路設(shè)計如圖3所示。

  接收端A/D轉(zhuǎn)換電路主要完成對數(shù)字化后的視頻信號的模擬變換,,還原出標(biāo)準(zhǔn)的視頻信號,。此處選用的DAC為ADI公司的高速AD9708。

  AD9708采用+3V或+5V單電源供電,,兩路電流輸出,轉(zhuǎn)換速率高達125MHz,,建立時間不大于35ns,,轉(zhuǎn)換精度為1/4 LSB。在+5V電源供電的情況下,,其功耗為175mW,;在+3V電源供電的情況下,其功耗為45mW,。

  為了特殊的需要,,AD9708還兼容8位、10位和12位并行數(shù)據(jù)輸入,。當(dāng)AD9708被設(shè)置成8位數(shù)據(jù)輸入時,,只要把管腳1設(shè)為最高輸入有效數(shù)據(jù)位(MSB),管腳8設(shè)為最低輸入有效數(shù)據(jù)位(LSB)即可,。引腳1(DB13):最高輸入有效數(shù)據(jù)位,;引腳2~13(DB12~DB1):數(shù)據(jù)輸入端;引腳14(DB0):最低輸入有效,。

  4 并串/串并模塊

  低壓差分信號是由ANSI/TIA/EIA-644-1995定義的用于高速數(shù)據(jù)傳輸?shù)奈锢韺咏涌跇?biāo)準(zhǔn)(LVDS),。它具有超高速(速率可達1.4Gb/s)、超低功耗和低電磁輻射等特性,,因而是在銅介質(zhì)上實現(xiàn)千兆位速率通信的優(yōu)選方案,。而總線形低壓差分信號LVDS是LVDS技術(shù)在多點通信領(lǐng)域的擴展,它要求有更大的驅(qū)動電流(10mA)和更好的阻抗匹配設(shè)計,。

  SN65LV1023和SN65LV1224是TI公司推出的10位總線型低壓差分信號的應(yīng)用芯片組,。其中SN65LV1023是可將10位并行CMOS或TTL數(shù)據(jù)轉(zhuǎn)換為具有內(nèi)嵌時鐘的高速串行差分?jǐn)?shù)據(jù)流的串化器;而SN65LV1224則是接收該差分?jǐn)?shù)據(jù)流并將它們轉(zhuǎn)換為并行數(shù)據(jù)的解串器,,它同時又可以重建并行時鐘,。采用該器件組進行數(shù)據(jù)串化時采用的是內(nèi)嵌時鐘,,這樣可有效地解決由于時鐘與數(shù)據(jù)的不嚴(yán)格同步而制約高速傳輸?shù)钠款i問題。此處的硬件電路設(shè)計如圖4所示,。

  

  

  圖4 并串轉(zhuǎn)化硬件示意圖

  系統(tǒng)軟件設(shè)計

  系統(tǒng)軟件主要是對系統(tǒng)控制核心的FPGA的編程,。整個程序基于模塊化、結(jié)構(gòu)化的軟件開發(fā)思想編寫,。所用的開發(fā)工具是Altera公司出品的FPGA集成開發(fā)環(huán)境QuartusII,,開發(fā)語言采用當(dāng)今比較流行的大規(guī)模集成電路Verilog開發(fā)語言。

  系統(tǒng)軟件功能實現(xiàn)了A/D控制模塊,、語音編碼控制模塊,、并串轉(zhuǎn)換控制模塊、串并轉(zhuǎn)換控制模塊,、D/A控制模塊,、語音解碼控制模塊和反向數(shù)據(jù)的收發(fā)控制模塊。

  1 A/D控制模塊

  A/D控制模塊以FPGA為主控核心,,為AD9280提供采樣時鐘,;同時采集AD9280A/D轉(zhuǎn)換后的數(shù)字量。

  FPGA系統(tǒng)時鐘頻率為32MHz,,對于AD9280的采樣時鐘為16MHz,,對系統(tǒng)時鐘進行二分頻后提供給AD9280。同時,,在分頻后的輸出時鐘的上升沿對A/D轉(zhuǎn)換的結(jié)果進行讀取,,讀取的結(jié)果存入FPGA中進行下一步應(yīng)用。程序如下所示,。

  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@(posedgeclk_in)

  begin

  if(reset)

  clk_out<=0;

  else

  clk_out<=~clk_out;

  end

  always@(posedgeclk_out)

  begin

  data_reg<=ad_data;

  end

  endmodule

  其中,,clk_in為FPGA系統(tǒng)輸入時鐘;clk_out為分頻后提供給ADC的采樣時鐘,;reset為復(fù)位端,,高電平復(fù)位;ad_data是A/D轉(zhuǎn)換后得到的數(shù)字量,;data_reg

  用來存儲A/D轉(zhuǎn)換后的數(shù)字量,。

  2 語音編碼控制模塊

  語音編碼控制模塊主要完成對PCM編碼芯片提供數(shù)據(jù)編碼時鐘、數(shù)據(jù)使能控制以及編碼后的數(shù)據(jù)接收,。

  此處程序如下所示,。

  module PcmControl(clk_in,reset,tdd,tdc,tde,pcm_data);

  ……

  always@(posedgeclk_in)

  begin

  if(reset)

  begintdc<=0; end

  elsebegin

  if(cnt0==7)

  begin

  tdc<=~tdc;

  cnt0<=0;

  end

  else

  cnt0<=cnt0+1;

  end

  end

  always@(posedgetdc)

  begin

  if(cnt1==140)

  begin

  tde<=~tde;

  cnt1<=0;

  end

  else

  cnt1<=cnt1+1;

  end

  always@(posedgetdc)

  begin

  pcm_data<=tdd;

  end

  endmodule

  其中,clk_in是FPGA系統(tǒng)時鐘,,reset為系統(tǒng)復(fù)位信號,。信號tdd是PCM編碼芯片的輸出;信號pcm_data用來存放PCM編碼數(shù)據(jù);信號tdc是PCM編碼時鐘信號,;信號tde是PCM編碼使能時鐘,。

  3 并串轉(zhuǎn)換控制模塊

  系統(tǒng)主控核心FPGA對數(shù)字化的視頻、語音信號進行時分復(fù)用后,,將視頻語音混合信號送給并串轉(zhuǎn)換器,。并串轉(zhuǎn)換模塊主要實現(xiàn)對并串轉(zhuǎn)換器的時序控制,使能控制和數(shù)據(jù)輸入控制,。此處的部分程序如下所示,。

  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@(posedgeclk_in)

  begin

  sn_clk<=~sn_clk;

  end

  always

  begin

  sncontrol<=1;

  end

  always@(posedgesn_clk)

  begin

  sn_data<=fpga_data;

  end

  endmodule

  其中,clk_in是FPGA系統(tǒng)時鐘,,信號sn_clk是并串轉(zhuǎn)換器的轉(zhuǎn)換時鐘,;信號fpga_data是FPGA對視頻、語音時分復(fù)用編碼后的數(shù)據(jù),;信號sn_data是并串轉(zhuǎn)換器的輸入數(shù)據(jù),;信號sncontrol是并串轉(zhuǎn)換器的編碼使能時鐘。

  4 D/A控制模塊

  D/A控制模塊主要用來控制AD9708,,對來自串并轉(zhuǎn)換后的數(shù)據(jù),,F(xiàn)PGA首先進行時分解復(fù)用,然后將視頻信號部分發(fā)送給AD9708,,同時配合DAC的轉(zhuǎn)換時鐘,該時鐘信號是通過并串轉(zhuǎn)換器恢復(fù)出來的發(fā)射端系統(tǒng)的發(fā)射時鐘,。

  結(jié)語

  此套數(shù)字式光端機系統(tǒng),,實現(xiàn)了各個監(jiān)控點和總監(jiān)控室的信號遠(yuǎn)程傳輸。各監(jiān)控點的攝像頭傳回視頻信號,,總監(jiān)控室通過485數(shù)據(jù)接口線對各個攝像頭進行遠(yuǎn)程控制,。遠(yuǎn)程兩端之間還可以進行話音通信。具有一定的使用價值和工程意義,。

此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權(quán)禁止轉(zhuǎn)載。