首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

基于FPGA的数字式光端机的研究与设计(图)(2)

基于FPGA的数字式光端机的研究与设计(图)(2)

本帖最后由 yuyang911220 于 2017-1-3 15:32 编辑

系统软件设计
  系统软件主要是对系统控制核心的FPGA的编程。整个程序基于模块化、结构化的软件开发思想编写。所用的开发工具是Altera公司出品的FPGA集成开发环境Quart开发语言采用当今比较流行的大规模集成电路Verilog开发语言。
  系统软件功能实现了A/D控制模块、语音编码控制模块、并串转换控制模块、串并转换控制模块、D/A控制模块、语音解码控制模块和反向数据的收发控制模块。
  1 A/D控制模块
  A/D控制模块以FPGA为主控核心,为AD9280提供采样时钟;同时采集AD9280A/D转换后的数字量。
  FPGA系统时钟频率为32MHz,对于AD9280的采样时钟为16MHz,对系统时钟进行二分频后提供给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@(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系统输入时钟;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@(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系统时钟,reset系统复位信号。信号tdd是PCM编码芯片的输出;信号pcm_data用来存放PCM编码数据;信号tdc是PCM编码时钟信号;信号tde是PCM编码使能时钟。
  3 并串转换控制模块
  系统主控核心FPGA对数字化的视频、语音信号进行时分复用后,将视频语音混合信号送给并串转换器。并串转换模块主要实现对并串转换器的时序控制,使能控制和数据输入控制。此处的部分程序如下所示。
  moduleSnControl (clk_in,fpgadata,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系统时钟,信号sn_clk是并串转换器的转换时钟;信号fpga_data是FPGA对视频、语音时分复用编码后的数据;信号sn_data是并串转换器的输入数据;信号sncontrol是并串转换器的编码使能时钟。
  4 D/A控制模块
  D/A控制模块主要用来控制AD9708,对来自串并转换后的数据,FPGA首先进行时分解复用,然后将视频信号部分发送给AD9708,同时配合DAC的转换时钟,该时钟信号是通过并串转换器恢复出来的发射端系统的发射时钟。
  结语
  此套数字式光端机系统,实现了各个监控点和总监控室的信号远程传输。各监控点的摄像头传回视频信号,总监控室通过485数据接口线对各个摄像头进行远程控制。远程两端之间还可以进行话音通信。具有一定的使用价值和工程意义。
继承事业,薪火相传
返回列表