基于FPGA處理器的數(shù)字光端機(jī)系統(tǒng)分析
FPGA系統(tǒng)時(shí)鐘頻率為32MHz,對于AD9280的采樣時(shí)鐘為16MHz,對系統(tǒng)時(shí)鐘進(jìn)行二分頻后提供給AD9280。同時(shí),在分頻后的輸出時(shí)鐘的上升沿對A/D轉(zhuǎn)換的結(jié)果進(jìn)行讀取,讀取的結(jié)果存入FPGA中進(jìn)行下一步應(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)輸入時(shí)鐘;clk_out為分頻后提供給ADC的采樣時(shí)鐘;reset為復(fù)位端,高電平復(fù)位;ad_data是A/D轉(zhuǎn)換后得到的數(shù)字量;data_reg
用來存儲(chǔ)A/D轉(zhuǎn)換后的數(shù)字量。
2 語音編碼控制模塊
語音編碼控制模塊主要完成對PCM編碼芯片提供數(shù)據(jù)編碼時(shí)鐘、數(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)時(shí)鐘,reset為系統(tǒng)復(fù)位信號(hào)。信號(hào)tdd是PCM編碼芯片的輸出;信號(hào)pcm_data用來存放PCM編碼數(shù)據(jù);信號(hào)tdc是PCM編碼時(shí)鐘信號(hào);信號(hào)tde是PCM編碼使能時(shí)鐘。
3 并串轉(zhuǎn)換控制模塊
系統(tǒng)主控核心FPGA對數(shù)字化的視頻、語音信號(hào)進(jìn)行時(shí)分復(fù)用后,將視頻語音混合信號(hào)送給并串轉(zhuǎn)換器。并串轉(zhuǎn)換模塊主要實(shí)現(xiàn)對并串轉(zhuǎn)換器的時(shí)序控制,使能控制和數(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)時(shí)鐘,信號(hào)sn_clk是并串轉(zhuǎn)換器的轉(zhuǎn)換時(shí)鐘;信號(hào)fpga_data是FPGA對視頻、語音時(shí)分復(fù)用編碼后的數(shù)據(jù);信號(hào)sn_data是并串轉(zhuǎn)換器的輸入數(shù)據(jù);信號(hào)sncontrol是并串轉(zhuǎn)換器的編碼使能時(shí)鐘。
4 D/A控制模塊
D/A控制模塊主要用來控制AD9708,對來自串并轉(zhuǎn)換后的數(shù)據(jù),F(xiàn)PGA首先進(jìn)行時(shí)分解復(fù)用,然后將視頻信號(hào)部分發(fā)送給AD9708,同時(shí)配合DAC的轉(zhuǎn)換時(shí)鐘,該時(shí)鐘信號(hào)是通過并串轉(zhuǎn)換器恢復(fù)出來的發(fā)射端系統(tǒng)的發(fā)射時(shí)鐘。
結(jié)語
此套數(shù)字式光端機(jī)系統(tǒng),實(shí)現(xiàn)了各個(gè)監(jiān)控點(diǎn)和總監(jiān)控室的信號(hào)遠(yuǎn)程傳輸。各監(jiān)控點(diǎn)的攝像頭傳回視頻信號(hào),總監(jiān)控室通過485數(shù)據(jù)接口線對各個(gè)攝像頭進(jìn)行遠(yuǎn)程控制。遠(yuǎn)程兩端之間還可以進(jìn)行話音通信。具有一定的使用價(jià)值和工程意義。
評論