APP下载

基于FPGA的误码检测仪设计与实现

2015-11-02吴晓晶成卫忠

中国科技信息 2015年15期
关键词:误码误码率检测仪

吴晓晶 成卫忠

基于FPGA的误码检测仪设计与实现

吴晓晶 成卫忠

本文设计了一种利用FPGA实现误码检测的方案。文章首先从误码仪的基本原理入手,介绍了其各个功能子模块的工作原理及方案,并着重分析了误码检测仪的一些关键模块的实现方法。最后利用VHDL语言进行编程。系统经编译、综合后下载到FPGA中进行了实现。

在通信系统中,收发机故障、信号传播衰落、码间干扰、邻近波道干扰等原因都会使得数字通信中的接收端不可避免的出现误码,造成系统性能恶化甚至通信中断,其结果都是以误码的形式表现出来,因此常常需要应用误码检测仪对其误码性能进行测量。由于数字通信系统通信速率通常较高,使得误码检测电路的实现具有一定的难度。且如果采用分离元件进行设计,通常需要数十种器件,且在高速率时由于各器件间的延时很难控制和处理,导致电路的调试难度较大且其检测性能难于保障。基于此,本文应用硬件描述语言实现了一种基于FPGA的误码率检测系统。

误码检测仪原理及实现方案

本文的误码检测仪采用逐位检测法进行设计,其基本原理如图1所示。

逐位比较型误码检测的基本原理是通过发送端和接收端两个类型相同的序列经过同步之后对码元进行逐个比较。一旦出现误码,原本一致的码元就会出现异同,利用这一特点,通过位同步时钟的控制利用异或门对码元进行逐个比较,将比较的结果通过计数器送到显示电路进行显示。

本地伪随机序列与伪随机码序列产生器的发送序列虽然是完全一样的码型,但发送序列通过信道后要产生延时,与本地序列比较相位已经不能完全对齐,因此必须在接收端进行同步。本地伪随机序列移位是在时钟的控制下进行的,实现两序列的正确比较必须是本地伪码序列和接收的伪码序列同步,因此,本地端和发送端要求有同步的时钟信号。在设计过程中,同步捕获功能由同步与保护控制电路完成,当序列对应位状态不一致时,同步与保护控制电路输出一个控制信号,时钟停扣电路扣除掉一个时钟脉冲,同时,伪随机序列码发生器被触发,这样就等同于本地伪随机码序列等待一个时钟周期后,与接收码序列进行比较。若连续发现本地码序列和接收码序列状态不一致,则通过同步与保护控制电路和停扣时钟电路,使本地伪随机码序列继续处于等待状态,直至本地序列和接收序列的状态同步为止。同步与保护电路的功能一方面是起同步控制作用,另一方面是在系统状态同步后,一旦出现误码或短时的不同步,也不立即进行同步捕获,而是设置了一定的失锁保护时间,以保证系统同步的稳定性。

图1 逐位比较型误码检测器的原理图

计数器模块是用在输入一万个伪随机码的情况下,统计误码输出的个数,这样输出的个数也就是输出误码率,省去了除法器模块,节约了FPGA芯片的资源,提高了利用率,并将最后结果通过七段数码管进行显示。

系统设计

伪随机序列产生器

伪随机码,也称为伪噪声(Pseudorandom Noise,PN)码。这种码序列最关键的特征是具有近似于随机信号的性能。由于噪声具有完全的随机特性,也可以说这种码序列具有近似于噪声的性能。然而,真正的噪声和随机信号是不可能重复再现的,那么,可操作的方法就是利用一种周期性的脉冲信号来近似随机噪声的性能,故称该周期性的脉冲信号为伪随机码或PN码。

本文中伪随机码的产生利用多级移位寄存器经线性反馈产生周期性的m序列的方式实现。为减轻系统复杂度,实现过程中本文选择移位寄存器级数为五级。五级移位寄存器可产生序列长度为31的m序列,经计算其反馈系数可为45、67、75,对应的二进制为100101、110111、111101,图2为一种简单的五级移位寄存器构成的m序列发生器。设计过程中,本文采用反馈系数为45。

5级移位寄存器产生的31位的m序列之一为0000101011101100011111001101,其仿真波形图3所示。

状态同步与误码计数的模块

状态同步与误码计数模块主要包含:移位与串/并变换模块,并行输入与状态控制模块,状态并行比较模块,连1状态计数模块,逐位比较检测模块,误码统计与门限检测模块,时钟停扣模块模块等。其结构框图如图4所示。

在实际工作中,不仅要求接收端的m序列和发送端的m序列类型相同,同时两序列的状态也必须同步,若状态不同步,则无法进行检测。由于m序列有多个不同状态,状态同步的方法为设定同步桢为子序列,进行逐桢比较,确认同步后发出同步信号,经过判决电路进行比较判决。状态同步控制则采用时钟停扣的方法,即发现状态不同的时序时,控制本地的m序列驱动时钟停止。通过这样的方式,发送的m序列就会向前移动一个时钟周期,之后再进行下一轮比较。

图2 5级寄存器构成

图3 m序列输出仿真波形

图4 误码同步检测模型

误码率显示模块

误码率显示模块结构如图5所示。显示模块的功能是输出统计的误码率,精度范围为“10-1”到“10-4”,当误码率小于“10-4”时,认为误码率已经很小,可忽略,此时误码率显示模块输出为0。整体流程如下,误码数以串行的方式输入(误码输出端统计在一万个输入脉冲中有误码的个数的,误码门限检测模块设置的门限为30%,因此误码数输出最大值为3000,即范围为0~3000,可用12位二进制码表示),经“QUANBING”串并转换模块变成12位的二进制并行码,12位二进制码再经“12bcd”二—十进制转换电路转换成四位十进制并行码,四位十进制并行码经“BINGQUAN”并串转换器转换为四位十进制串行码,四位十进制串行码接入到“SXQG”显示数组模块,把四位十进制数变成科学计数法的形式科学计数输出,科学计数输出再经“SXY、JISHUYIQIANG、XJSH、QUANBING4”组成的扫描式显示输出模块把科学计数输出到硬件电路即七段数码管显示电路上。

测试及验证

在测试及验证过程中,本文将编写的VHDL程序经过编译、综合后下载到FPGA芯片中。实验中检测端人为插入具有误码的序列,以验证系统的检测功能。图6为检测电路发送端发送带有插入误码的波形,插入规则为每5个码字中插入一个误码,其波形如图6所示。

图中第一行的波形为接收码,二进制表示为10011 00010 01110 00101,第二行波形为本地码,二进制表示为10010 00011 01111 00100,可观察到接收码与本地码每隔5个脉冲就有一个不相同,也就是说每输入5个信号脉冲就会输出一个误码脉冲。

图7为计数器计数输出,用二进制表示为00001 00001 00001 00001。

图5 误码率显示模块

图6 有误码插时接收码与本地码在示波器上的波形

图7 计数器计数输出

结语

本文采用逐位比较的方法,通过伪随机码、状态同步、误码比较及计数统计实现了一种基于FPGA误码检测仪。该方法大大地降低了误码仪设计的复杂度, 提高了系统的稳定性,且结构简单易于实现,具有一定的工程应用价值。

10.3969/j.issn.1001-8972.2015.15.019

猜你喜欢

误码误码率检测仪
面向通信系统的误码率计算方法
利用混合RF-FSO 系统改善深空通信的研究
一种快速同步统计高阶调制下PN 码误码率的方法∗
一种防雷接地装置的便携式检测仪电路
ZPW-2000A电码化轨道电路误码问题分析及解决方案
一种基于CAN总线的误码测试方法
基于555振荡器的地沟油频率检测仪
超短波跳频通信系统抗梳状谱干扰性能分析
多功能空气质量远程检测仪
巧用故障检测仪中的Reset功能