找回密码
 注册会员
更新自动建库工具PCB Footprint Expert 2024.04 Pro / Library Expert 破解版

[嵌入式/ARM] 基于FPGA的数字式光端机

[复制链接]
admin 发表于 2013-3-25 22:51:56 | 显示全部楼层 |阅读模式

本文包含原理图、PCB、源代码、封装库、中英文PDF等资源

您需要 登录 才可以下载或查看,没有账号?注册会员

×
  本文介绍了一种基于FPGA的视频、音频、反向数据的远程传输系统的研究与设计,该系统在实际中得到了应用,具有良好的稳定性、实用性和可靠性。
     引言
     目前在高速公路、交通、电子警察、监控、安防、工业自动化、电力、海关、水利、银行等领域视频图像、音频、数据、以太网、电话等光端机开始普遍大量应用。
     由于数字光端机具有传输信号质量高,没有模拟调频、调相、调幅光端机多路信号同传时交调干扰严重、容易受环境干扰影响、传输质量低劣、长期工作稳定性差的缺点,因此许多大型重点工程已普遍采用数字光端机。
     系统框架与工作原理
     整个系统由核心控制模块FPGA、音频采样编解码模块、视频分离模块、视频放大模块、视频A/D和D/A转换模块、并串/串并转换模块、光纤调制收发模块、电源控制模块和485数据传输模块。图1是该系统的系统框图。
     
     
     图1 系统结构框图
     系统的工作原理为:光端机系统分为两部分,分别为:发射机和接收机。在发射端,来自监视器或其他视频源的视频信号首先经过发射板上的视频滤波网络去除噪声干扰信号,然后对该视频信号进行视频分离和视频放大。视频分离模块得到视频信号的行、场同步信号以及奇偶场信号、视频钳位等重要的视频信息。接下来,对放大后的视频信号进行A/D转换,得到的数字化的视频信号送入系统主控核心FPGA中。与此同时,如果系统检测到了有音频信号的存在,则对其进行音频滤波、音频数字化采样以及音频PCM编码。经过PCM编码后的音频信号,送入系统主控核心FPGA中。反向数据传输主要是485信号,该信号也送入到FPGA。这样,系统主控核心FPGA对来自不同模块的视频、音频、数据等信号整合,时分复用地将各个信号编码成8位并行信号流送入到并串转换模块。信号流经过并串转换后变成高速的LVDS信号驱动光纤收发模块以波分复用的方式完成了电/光变化和光发射。在光端机的接收端,经过以上的逆过程,完成对原始信号的恢复。
     系统硬件组成
     1 FPGA核心控制器
     系统的核心控制部分是整个系统的心脏,为了满足对高速、多路数据流的实时处理,要求系统核心控制器必须有较高的工作频率和反应能力。其次,对于系统时分复用部分,为了信号的同步化,需要系统核心控制器内嵌RAM和FIFO等功能块。此外,同时作为嵌入式系统,处理器必须有着低功耗的要求。目前,FPGA处理器已经遍及工业控制、消费电子产品、通信系统等各类产品市场。按照低成本、低功耗、小体积、多功能及较为强大的数据处理能力,Altera公司CycloneII系列的EP1C3144是一个非常好的选择。
      2012110704582834591972.jpg
     
     图2 视频分离硬件电路
     2 视频分离模块
     视频信号中除了包含图像信号之外,还包括了行同步信号、行消隐信号、场同步信号、场消隐信号以及槽脉冲信号、前均衡脉冲、后均衡脉冲等,因此,若要对视频信号进行采集,就必须准确地把握各种信号间的逻辑关系。LM1881就是针对视频信号的同步分离而生产的,它为视频信号的处理提供了极大的方便。此处电路设计如图2所示。
     LM1881可以从0.5~2V的标准负极性NTSC制、PAL制、SECAM制视频信号中提取复合同步场同步、奇偶场识别等信号,这些信号都是图像数字采集所需要的同步信号,有了它们,便可确定采集点在哪一场,哪一行。LM1881也能对非标准的视频信号进行同步分离,通过固定的时间延迟产生默认的输出作为场同步输出。
      2012110704582837716973.jpg
     
     图3 A/D转换硬件电路
     3 A/D和D/A转换模块
     此处的A/D转换电路主要用来对视频滤波,放大后的视频信号进行数字化变换。电视图像信号的带宽理论计算值为7.37MHz,实际取5.5275MHz。由香农定理知,ADC的采样频率应该大于2倍的图像最高频率,所以ADC采用ADI公司的AD9280,工作频率为32MHz。该ADC具有良好的差分非线性度、模拟输入超出转换量程提示、内建自流电平回复和可调片内电压基准源等优势。
     此处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)、超低功耗和低电磁辐射等特性,因而是在铜介质上实现千兆位速率通信的优选方案。而总线形低压差分信号LVDS是LVDS技术在多点通信领域的扩展,它要求有更大的驱动电流(10mA)和更好的阻抗匹配设计。
     SN65LV1023和SN65LV1224是TI公司推出的10位总线型低压差分信号的应用芯片组。其中SN65LV1023是可将10位并行CMOS或TTL数据转换为具有内嵌时钟的高速串行差分数据流的串化器;而SN65LV1224则是接收该差分数据流并将它们转换为并行数据的解串器,它同时又可以重建并行时钟。采用该器件组进行数据串化时采用的是内嵌时钟,这样可有效地解决由于时钟与数据的不严格同步而制约高速传输的瓶颈问题。此处的硬件电路设计如图4所示。
      2012110704582840840974.jpg
     
     图4 并串转化硬件示意图
     系统软件设计
     系统软件主要是对系统控制核心的FPGA的编程。整个程序基于模块化、结构化的软件开发思想编写。所用的开发工具是Altera公司出品的FPGA集成开发环境QuartusII,开发语言采用当今比较流行的大规模集成电路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,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系统时钟,信号sn_clk是并串转换器的转换时钟;信号fpga_data是FPGA对视频、语音时分复用编码后的数据;信号sn_data是并串转换器的输入数据;信号sncontrol是并串转换器的编码使能时钟。
     4 D/A控制模块
     D/A控制模块主要用来控制AD9708,对来自串并转换后的数据,FPGA首先进行时分解复用,然后将视频信号部分发送给AD9708,同时配合DAC的转换时钟,该时钟信号是通过并串转换器恢复出来的发射端系统的发射时钟。
     结语
     此套数字式光端机系统,实现了各个监控点和总监控室的信号远程传输。各监控点的摄像头传回视频信号,总监控室通过485数据接口线对各个摄像头进行远程控制。远程两端之间还可以进行话音通信。具有一定的使用价值和工程意义。
*滑块验证:
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

QQ|手机版|MCU资讯论坛 ( 京ICP备18035221号-2 )|网站地图

GMT+8, 2024-12-28 05:14 , Processed in 0.061271 second(s), 9 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表