一种基于FPGA的高速误码测试仪的设计

2014-12-12 11:16:47来源: eccn 关键字:误码测试  通信系统  Verilog

误码分析仪作为数字通信系统验收、维护和故障查询的理想工具,广泛应用于同轴电缆、光纤、卫星及局间中继等符合CEPT(European Confence of Postal and Telecommunications Administrations)数字系列通信系统传输质量的监测。评价一个通信系统的可靠性指标就是检测该通信系统在数据传输过程中误码率的大小,本文设计的高速信号误码测试仪,用于对EPON中接收和发送突发光信号的接收模块的可靠性进行检测。目前误码分析仪的工作模式已发展到如下4种:分析仪模式、发生器模式、分析仪/发生器模式、直通模式。本设计中的误码测试仪属于第3种类型,即该误码测试仪可以产生测试的码流,又可以进行误码测试。

误码测试仪主要由发送模块,接收模块,显示模块,控制模块等几个模块组成,系统硬件结构框图如图1所示。其中发送、接收模块在FPGA中实现,控制模块由单片机实现,显示模块由单片机驱动,这样使得设计的误码分析仪具有体积轻巧,接口丰富,简单易用,成本低廉,内核可升级等特点。


1 基于FPGA的误码测试仪的设计

FPGA在该设计中实现了误码测试仪的核心功能,FPGA设计使用的是自顶向下模块化的设计方法。基于FPGA设计的模块包括:SY87739L频率计的控制模块、SY87700时钟提取控制模块、计数模块、伪随机序列发送模块、数据接收模块、与单片机的通信模块。

1.1 频率合成芯片SY87739L的控制模块

在设计中SY87739L合成的频率用于伪随机序列合成的同步时钟,因为该误码测试仪可以测试的频率有32 Mb/s、64 Mb/s、122 Mb/ s、155 Mb/s 4种。所以该芯片要根据设置的参数合成相应的频率。具体合成哪一个,由FPGA来实现对SY87739L的控制。

SY87739L(规程式透明3.3 V 10~729 MHz分数N合成器)是一个频率合成芯片。依照一参考频率源,它可以合成10~729 MHz范围内的差分频率。此外它可以精确地为标准的传输协议合成相应的参考频率。SY87739L合成的频率是由一个32位的串行输入的编程数据决定。PROGCS为高电平时,编程数据才会被SY87739L接收。若用户需要改变编程数据获得一个新的频率时,应先将PROGCS设置为高电平,延时一段时间(待32 bit编程数据被SY87739L接收)后在回落到低电平。既在PROGCS的下降沿时,SY87739L会由前一时段接收到32 bit编程数据决定合成新的频率。具体步骤如下:1)确定编程数据的值;2)设置PROGCS为高电平;3)串行输入32 bit编程数据(由PROGDI管脚输入),同时在PROGSK端输入时钟信号;4)设置PROGCS为低电平;5)等待LOCKED跳为高电平。

根据SY87739L的工作原理,可以用硬件语言编写出SY87739L的控制代码,图2是由Verilog代码用Synplify Pro8.1综合出的图元。

该模块控制SY87739L合成32 M频率功能仿真结果(由ModelSim SE6.1仿真)如图3所示。

测试文件中给DATA-I赋值为00000001,可以观察出prog_di串行输出的编程数据为0000_01100_01101_0100_000_10001_101_101;prog_cs在prog_di有效编程数据输出为高电平,待编程数据输出结束后回落到低电平:PROGSK输出SY87739L的编程时钟。经分析可以看出SY87739L控制模块可以实现预想的功能。

1.2 时钟提取芯片SY87700V的控制模块

SY87700V对FPGA接收的数据进行时钟提取和数据恢复。将恢复的数据与接收端产生的本地伪随机序列进行对比,实现误码检测,两数据流对比时以提取的时钟为同步时钟。SY87700V在提取数据前要预知提取的频率的范围,此频率范围由FPGA发送给SY87700V。SY87700V的参考时钟是否进行分频,也要根据设置的参数由FPGA控制。此外该模块还要实现FPGA读取SY87700V的功能,以确定SY87700V是否完成时钟提取及数据恢复。根据SY87700V的工作原理,可以用硬件语言Verilog编写程序在FPGA实现控制SY87700V的模块,图4是由代码综合出的图元。

由FPGA控制SY87700V从122M数据提取时钟和恢复数据的功能仿真的结果波形图(用Modelsim仿真)如下图5所示。

测试文件中给data_i赋值为000011111,可以观察出FREQUSEL1输出值1,FREQUSEL2输出值为0,FREQUSEL3输出值为1,DIVSEL1输出值为0,DIVSEL2输出值为1。CLKSEL输出高电平(这一信号可以控制SY87700V完成提取的输入数据时钟的功能)。CD也输出高电平(使SY87700V能正常的进行数据恢复和时钟提取)。从图中可以看出SY87700V控制模块输出的信号可以控制SY87700V完成对122M数据的时钟提取和数据恢复,实现预想的逻辑功能。

1.3 计数模块

计数模块是用来计算总的码数和误码数以及误码块数的,该计数器是一个同步复位计数器。由Verilog HDL代码综合出的图元如图6所示。

该计数模块最大的计数值达252,用Modelsim仿真软件对计数模块进行功能仿真的结果如图7所示:

在测试文件中,c_i赋值为一个脉冲流,在cnt_o输出的计数结果是正确的。可以判断出该模块的功能的正确性。

1.4 伪随机序列发送模块

伪随机序列发送模块的任务是以SY87739L合成的频率为时钟产生伪随机序列并串行输出伪随机序列。该模块可以产生三种级数的伪随机序列,生成的伪随机序列串行输出。具体合成那一级数决定于washbone模块(FPGA与单片机的通信控制模块)输出的控制信号:P09T-en(合成9级m序列使能信号)、P15T-en(合成15级m序列使能信号)、P23T-en(合成23级m序列使能信号)。三个信号中哪个为高电平就合成相应级数的伪随机序列。由Verilog HDL代码综合出的图元如图8所示。

功能仿真结果(合成23级伪随机序列)如图9所示。

在测试文件中赋给该模块的输入信号相应的值,使其完成合成23级伪随机序列的功能。在上图中,ser_o串行输出23级的m序列,可以判断该模块可以成功的合成m序列实现误码测试仪发送端的功能。

[1] [2]

关键字:误码测试  通信系统  Verilog

编辑:什么鱼 引用地址:http://www.eeworld.com.cn/Test_and_measurement/2014/1212/article_10345.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

上一篇:基于FPGA的系统易测试性的研究
下一篇:安立为 BTS Master手持式分析仪系列增添新功能

论坛活动 E手掌握
关注eeworld公众号
快捷获取更多信息
芯片资讯 锐利解读
微信扫一扫加关注
芯片资讯 锐利解读
推荐阅读
全部
误码测试
通信系统
Verilog

小广播

独家专题更多

迎接创新的黄金时代 无创想,不奇迹
迎接创新的黄金时代 无创想,不奇迹
​TE工程师帮助将不可能变成可能,通过技术突破,使世界更加清洁、安全和美好。
TTI携TE传感器样片与你相见,一起传感未来
TTI携TE传感器样片与你相见,一起传感未来
TTI携TE传感器样片与你相见,一起传感未来
富士通铁电随机存储器FRAM主题展馆
富士通铁电随机存储器FRAM主题展馆
馆内包含了 纵览FRAM、独立FRAM存储器专区、FRAM内置LSI专区三大部分内容。 
电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2017 EEWORLD.com.cn, Inc. All rights reserved