0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

关于FPGA的误码测试仪研究与设计

电子工程师 来源:微型机与应用 作者:张强;彭向伟 2021-04-22 15:01 次阅读

摘 要: 误码率是反映数据传输设备及其信道工作质量的一个重要指标。作为通信系统的可靠性测量工具,误码测试仪广泛地应用于通信设备的生产调试、检验以及日常维护等方面。在对传统误码仪设计的研究和分析之后,研究并设计了一种基于FPGA的误码测试仪,详细地分析和介绍了各个模块的工作原理

随着科技的发展,信息通信已成为人们日常生活中必不可少的一部分。数字通信因其抗干扰能力强、通信质量不受距离的影响、通信保密性好等特点而得到广泛应用和迅速发展[1]。与此同时,数字通信的传输可靠性就尤为重要了,而误码测试仪作为评估数据传输通道质量的重要工具被广泛地应用。

误码率是反映数据传输设备及其通信信道工作质量的一个重要指标。误码测试仪就是通过检测数据传输系统的误码指标,对其系统的数据传输质量进行评估的一种工具。传统的误码仪大多数都具备了诸如操作简单、结果直观精确、测试内容丰富等优点,但是同时也存在体积偏大、价格昂贵、只适用于某些专用信道测试以及不易与某些接口适配等方面的问题[2]。因此分析和对比了现有的误码仪,研究和设计了一种基于FPGA的误码测试仪。

1 m序列

伪随机序列也叫做伪随机码,是为模仿随机序列的随机特性而产生的一种码流。在一般的通信工程应用中,常采用二进制伪随机序列。伪随机序列只有0和1两种状态,一般是通过反馈移位寄存器来产生的,这种反馈移位寄存器可分为线性反馈和非线性反馈移位寄存器两种。其中由线性反馈移位寄存器产生的周期最长的二进制数字序列叫做最大长度线性反馈移位寄存器序列,也称m序列。因为其自身的自相关性和良好的统计特性,m序列广泛地用于密码学和误码测试等应用。

如图1所示,m序列信号发生器是在n级线性移位寄存器的基础上,加上反馈逻辑电路构成的。正是由于m序列的这种结构特点,所以非常适合于通过FPGA来产生。一般地,m序列信号发生器有两种结构:Fabonacci型和Galois型[3]。

o4YBAGCBHxKAGew3AABLudou6DE377.png

本文采用Fabonacci型移位寄存器来产生m序列。这种结构的特点是移位寄存器的反馈抽头位置和本原多项式是一致的,序列与寄存器的初始状态相对应,而码流序列的产生速度主要受反馈网络的时延影响。

an是各个移位寄存器的状态,cn是对应的各移位寄存器的反馈系数,系数为1时表示参与反馈;为0时表示不参与反馈。反馈函数为:an=c0a0+c1a1+…+cn-1an-1。在每一个时钟脉冲时刻,高位的移位寄存器将状态值传给下一个移位寄存器。一旦级数和反馈系数确定了,则反馈移位寄存器的输出序列也就确定了。

m序列的一个重要的性质就是任何一个m序列的循环移位仍是一个m序列,序列长度为m=2n-1。由于移位寄存器状态全为0时系统会陷入死循环,所以当意外出现全为0的情况时使an-1等于1,跳出全0状态实现自启动。

本文根据误码测试的需要,设计了9位、15位和23位寄存器的3个不同长度的m序列。根据ITU—T的建议,它们的本原多项式分别为x9+x5+1、x15+x14+1和x11+x9+1。设计选用的FPGA芯片为 Cyclone IV代的 EP4CE15系列,该芯片有15 408个逻辑单元,165个I/O口,4个PLL,端口支持频率可达600 Mb/s以上[4]。

发送端提供3种类型m序列,支持在一定范围内的发送时钟频率的改变。本设计主要是基于低速的数字通信设计,发送频率设置为2N,N为0~20的整数,单位为MHz。

在系统模块中设计了一个按键模块用于选择发送序列的级数以及发送时钟频率。由于在按动按键时通常会出现抖动和其他情况,所以采用了防抖动设计,其基本原理就是运用一个小的状态机,记住先前的状态,然后再对接下来的电平变化进行判断。

2 误码仪总体设计及其工作原理

一般地,误码仪主要由发送端和接收端两部分组成。发送端就是一个伪序列发生器,负责产生用来检测被测信道的码流。该流码必须具有随机性和重复可生成性,通常采用m序列作为测试码。接收端则是误码仪最重要的一部分,其主要作用为接收从被测信道传来的测试序列,并从序列码中提取时钟信号,在此基础上恢复出本地序列,然后进行序列码流对比并统计出误码。

如图2所示,发送端就是m序列产生模块,接收端包括位同步模块、序列同步模块和误码计数模块等。下面分别就各个模块做较为详细的介绍说明。

3665319476654.gif

2.1 误码信号检测原理

误码率是指在测量的时间内错误的数字码元数量与数字码元总数之比。这个工作主要由两个计数器完成,一个计数器计数误码,而另一个则计数总的码数。

误码测试仪由发送和接收两部分组成,发送模块要求发出标准的数据信号作为测试信号,代替实际线路中的传输信号送到被测系统中。接收部分要求能产生与发送部分完全相同的数据信号,用以与接收到的信号逐位比较。

由图3可知,由信道传送到接收机的序列码通过异或门与接收机产生的序列进行比较,若相同则输出为0,若不同则输出为1并计为1个误码, 最后再统计总的码元数和误码数,从而得到准确的误码数或误码率。

3665456753190.gif

总的来说, 误码仪检测的工作流程可概括为以下几个步骤:

(1)以某种方式产生并发送码组相同的码型,以相同相位的本地码组作为对比标准;

(2)将本地恢复码元与从信道接收到的码组逐个进行比较, 并输出误码脉冲信号;

(3)对误码脉冲信号进行统计, 并给出相应的误码率。

由于传统的误码仪一般用于专用的通信信道测试,其接口类型较为单一。为此本文设计了RS422、E1、E2接口,扩展了误码测试的接口类型。

2.2 位同步模块

位同步模块的主要工作就是提取信道中码流的时钟,它由一个跳变沿捕捉模块、一个状态寄存器和一个计数器组成。如图4所示,其中data是输入系统的串行信号(m序列),clk是频率为串行信号码元速率的2N倍的高频时钟信号,a是系统产生的与输入串行信号码元位同步的脉冲信号,即位同步脉冲。

3665608227075.gif

系统工作时,当输入信号data发生变化时,捕捉模块就能及时抓捕到这次跳变,并产生一个脉冲信号c,该信号可以将可控计数器清零,同时将状态寄存器的输出b置为0,并送到计数器中。计数器进行模为2N的计数,待计满后就输出脉冲信号a,该信号一方面可作为整个系统输出的位同步时钟信号;

另一方面它也被接入了状态寄存器,控制状态寄存器的输出b在计数器完成N的记数后就变为1;在没有c脉冲信号时使b保持为1,使计数器的模值保持为2N,直到输入信号data产生新的跳变并产生新的c脉冲信号。

由此可见,在输入信号为连1或连0的情况下,只要系统使用的时钟信号足够精确,就可以保证在一定时间里输出满足要求的位同步时钟,而在输入信号data发生跳变时系统又会捕捉该跳变沿并以此为基准来输出位同步时钟。为了保证系统的精确性,文本中采用2N等于10。

2.3 序列同步模块

前面已经指出m序列是周期序列,测试序列和检验序列的比较应以周期内的同一位置作为起点。因此在序列比较前应首先进行序列同步。常见的序列同步方法有滑动相关捕捉法、序列相关捕捉法、SAW器件捕捉法等。但是这些方法都存在着结构复杂、同步时间较长等缺陷,不适合用FPGA实现。

序列同步模块的一个重要作用就是根据位同步模块得到同步时钟并产生本地检测码元序列,通常采用的是灌码的方式。如图5所示,在初始状态下开关K置于B位置,发送端送来的测试序列在完成位同步后按从高位到低位的顺序依次送入移位寄存器,存满后开关K就置于A的位置。移位寄存器和模二加法器在本地时钟的驱动下产生出检验序列。这里要强调的是,本地码元的m序列发生器和误码仪发送端的m序列产生器结构完全一致。

pIYBAGCBHsmAM8yAAADKgt6ydO4161.png

以9阶的m序列为例,由于m序列的下一存储器状态组合仅由当前的状态组合所决定,因此只要最初接收到的9个码元是正确的,则其随后产生的所有码元都是与测试序列相同和同步的。在这之后,测试序列与检验序列需要进行一次相关比较,假如在若干个(如10个)码元周期内其相关值超过阈值,则可认为两序列同步,否则需要重新进行同步操作。

采用这一方法之后,序列同步的时间大大缩短,有利于进行码流的快速测试。

2.4 误码计数和显示

将恢复出来的本地检测序列与被测信道传输来的测试序列相比较可以检测出误码。两个码流通过一个异或门比较,相同为0,不同则为1,然后计数器统计1的个数得出总的误码数。

误码测试仪定时每隔1 s进行误码统计,并将结果通过点阵型液晶显示器显示,直观地显示实时误码情况。为了便于简化硬件电路,设计采用FPGA直接驱动液晶显示器。

特别地,由于程序设计中会用到除法运算,而除法运算会消耗大量的FPGA逻辑单元,因此本设计中采用独特的算法将除法运算转换成位运算,极大地减少了系统资源的占用。

3 误码测试仪的IP内核

该误码测试仪基于FPGA设计,程序采用Verilog HDL编写。其建模的编程特点使得系统更直观和便于实现[5]。图6为误码测试仪的内核模块系统框架。所有的程序编写都遵循自底而上的建模思想。

pIYBAGCBHtuAJqNwAAHUR_hzihs106.png

图6所示的IP核框架大致给出了本次系统设计的主要部分模块。在这里只给出了一部分的输入和输出信号。下面就一些信号做简单介绍说明。Clkin 为外部时钟输入40 MHz。DATAin为经过被测信道的m序列。Clka、Clkb、Clkc分别为倍频或分频后的时钟信号。Ctrl为LCM控制信号。按键模块控制发送序列的级数和发送时钟频率,而LED信号主要控制LED灯显示误码仪工作状态。

本文研究了一种低速数字通信系统的误码测试仪。该误码测试仪是基于FPGA(现场可编程门阵列)为核心设计而成,适用于断线误码检测。该测试仪可以在发送端发送频率不明的情况下进行码流的时钟恢复,这样就使得其使用范围更广。同时根据FPGA的特点,系统还设计有AS下载口和JTAG下载口以及留出了一些多的I/O口,这样可以方便以后功能的增加和系统软件的升级。程序结构编写中,采用了一些独特的算法使得系统资源占用减少,同时增加了系统的智能性。

设计中软件采用的是Verilog HDL编写程序,软件开发环境使用的是Altera公司EDA开发工具quartusII 11.0。整个系统体积较小,具有一定的智能性且价格便宜,适用于一般的数字通信线路测试以及个人架设的通信信道。经过测试,系统的性能可以达到测试的基本要求。

参考文献

[1] 刘江。基于FPGA的误码率测试仪的设计与实现[J]。微计算机信息,2005,2l(4):162-163.

[2] 王辉。基于DSP和FPGA的开环多码型误码测试仪的设计[J]。测控技术与仪器仪表,2010,36(9):115-118.

[3] 邹学玉,易国华。一类基于FPGA的m序列发生器设计[J]。 长江大学学报,2006,9(3):84-86.

[4] Altera Corp.Cyclone Device Handbook[DB/OL].[2013-07-15].http://www.altera.conl.2010.

[5] 王金明.VerilogHDL 程序设计教程[M]。北京:人民邮电出版社,2004.

编辑:jq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FPGA
    +关注

    关注

    1629

    文章

    21735

    浏览量

    603172
  • 寄存器
    +关注

    关注

    31

    文章

    5342

    浏览量

    120297
  • 发生器
    +关注

    关注

    4

    文章

    1368

    浏览量

    61691
  • 信息通信
    +关注

    关注

    0

    文章

    86

    浏览量

    10918
收藏 人收藏

    评论

    相关推荐

    膜厚测试仪的测量范围 膜厚测试仪的操作注意事项

    膜厚测试仪是一种用于测量涂层、镀层、薄膜等材料厚度的精密仪器。它在工业生产、质量控制、科研等领域有着广泛的应用。以下是关于膜厚测试仪的测量范围和操作注意事项的介绍: 膜厚测试仪的测量范
    的头像 发表于 12-19 15:42 145次阅读

    绝缘电阻测试仪

    绝缘电阻测试的八个技巧 作为绝缘电阻测试仪的作者,我知道很多人会对这种测试仪感到困惑。这种测试仪的作用是测量电器或电气设备的绝缘电阻,以确保设备的安全和稳定性。在这篇文章中,我将帮助大
    发表于 12-16 10:46

    电池测试仪的使用方法 电池测试仪适用范围

    电池测试仪的使用方法 电池测试仪是用于物理性能测试的设备,主要用于检测电池的电流、电压、容量、内阻、充电放电温度、电池循环寿命等,并给出相应的曲线图。以下是电池测试仪的一般使用方法:
    的头像 发表于 12-02 09:20 279次阅读

    误码测试仪的技术原理和应用场景

    误码测试仪是一种用于测量数字信号中误码率的测试仪器,其技术原理和应用场景如下:技术原理误码测试仪
    发表于 10-25 14:05

    内置误码测试仪(BERT)和采样示波器一体化测试仪器安立MP2110A

    BERTWave MP2110A是一款内置误码测试仪(BERT)和采用示波器的一体化测量仪器,支持光模块的误码率(BERT)测量、眼图模式测试、眼图分析等评估操作
    的头像 发表于 09-23 14:34 345次阅读
    内置<b class='flag-5'>误码</b>率<b class='flag-5'>测试仪</b>(BERT)和采样示波器一体化<b class='flag-5'>测试仪</b>器安立MP2110A

    M8020A J-BERT 高性能比特误码测试仪

    M8020A 比特误码测试仪 J-BERT M8020A 高性能 BERT 产品综述 Keysight J-BERT M8020A 高性能比特误码测试仪能够快速、准确地表征传输速率
    的头像 发表于 08-21 17:13 213次阅读

    麻醉针针管流量测试仪简述

    文章由济南三泉智能科技有限公司提供针管流量测试仪是用于检测医用针管流量性能的专用仪器。以下是关于针管流量测试仪的详细介绍:一、概述针管流量测试仪通过模拟人体注射过程中的针管内压力变化,
    的头像 发表于 05-27 11:56 346次阅读
    麻醉针针管流量<b class='flag-5'>测试仪</b>简述

    LCR测试仪的基本概念和工作原理 LCR测试仪的功能特点和应用领域

    在电子工程、通信和电力等领域,对电感、电容和电阻(简称LCR)的测量和评估是至关重要的。LCR测试仪是一种能够准确、快速地测量这些参数的电子测试仪器,其重要性不言而喻。本文将详细阐述LCR测试仪的基本概念、工作原理、功能特点、应
    的头像 发表于 05-11 15:48 3499次阅读

    阻抗测试仪测试频率是多少

    阻抗测试仪测试频率范围是衡量其性能的重要参数之一,它决定了测试仪能够测量的信号频率的上限。
    的头像 发表于 05-08 18:19 1962次阅读

    导热系数测试仪:科技助力材料性能研究

    导热系数测试仪是现代材料科学领域中不可或缺的工具,它为研究材料的导热性能提供了高效、精确的测试方法。随着科技的不断进步,导热系数测试仪在材料研发、质量控制和性能评估等方面发挥着越来越重
    的头像 发表于 04-30 14:59 340次阅读
    导热系数<b class='flag-5'>测试仪</b>:科技助力材料性能<b class='flag-5'>研究</b>

    蓝牙测试仪的作用

    公司主营出售/回收:示波器、频谱分析、网络分析、信号发生器、万用表/示波器校准、手机综合测试仪、噪声系数分析、数据采集器、NI-GP
    的头像 发表于 03-29 11:19 930次阅读

    LCR测试仪的原理和使用方法

    公司主营出售/回收:示波器、频谱分析、网络分析、信号发生器、万用表/示波器校准、手机综合测试仪、噪声系数分析、数据采集器、NI-GP
    的头像 发表于 03-29 11:03 1243次阅读

    接地电阻测试仪使用方法 接地电阻测试仪与绝缘电阻测试仪的区别

    接地电阻测试仪使用方法 接地电阻测试仪是一种用于测量接地体电阻的仪器,广泛应用于建筑、电力、通信、化工等领域。以下是接地电阻测试仪的使用方法: 首先,将接地电阻测试仪的红色
    的头像 发表于 02-18 16:11 1650次阅读

    导热系数测试仪使用方法 导热系数测试仪原理是什么

    导热系数测试仪是一种用于测量材料导热性能的仪器,它可以帮助我们评估不同材料的导热性能,从而为科学研究、工程设计和材料选择提供参考。下面将详细介绍导热系数测试仪的使用方法和工作原理。 导热系数
    的头像 发表于 01-25 10:42 1844次阅读

    电阻测试仪怎么使用

    电阻测试仪是一种用于测量电阻的仪器,广泛应用于电子、电工、通信等领域。本文将详细介绍电阻测试仪的使用方法和注意事项。 电阻测试仪的主要组成部分 电源部分:为被测电阻提供稳定的电压源。 电流测量部分
    的头像 发表于 01-03 16:58 5687次阅读