周庆芳
摘 要:随着人们生活水平的提高和生产力的发展,计算机现代技术的发展也越来越快。VHDL语言的出现和ASIC的应用进入了一个新的阶段,现代通信技术也随之发展起来。本文基于误码检测原理和M序列产生的原理,通过VHDL硬件描述语言,实现了一种简单的逐位比较型误码检测器的设计以及各功能模块的仿真。
关键词:误码检测器;FPGA;M序列 中图分类号:TN912.16 文献标识码:C 收稿日期:2015-12-15
一、伪随机序列及误码检测器原理
伪随机码(或称伪随机序列)是模仿随机序列的随机特性而产生的一种码字,也称为伪噪声码或伪噪声序列。伪随机序列在数字通信中分为许多种,而在通信工程中,因为它常采用二进制伪随机序列,所以在序列中有“0”和“1”两种状态。
在通信过程中,各种原因都有可能造成误码形式的出现,比如机器故障、传播问题、信道干扰等因素都可能造成系统性能恶化甚至造成通信中断。判决电路对数字通信接收系统是不可缺少的,有以下几种原因可能造成判决错误:①电平的偏移;②抽样时刻偏移;③叠加噪声。
误码检测器,又称之为误码仪。由多种形式可以组成一个误码仪,而它的工作过程可以分为以下几个方面:①以相同相位的本地码作为比较标准,生成与发送码组相同的码型;②将本地与接收的两组码组逐个进行比较,然后输出误码脉冲信号;③对误码脉冲信号进行统计,并给出相应的误码率。
二、误码检测器设计
误码检测器也就是逐位比较型误码检测器,其基本原理是将发送端和接收端的两组类型相同的序列进行分析,经过同步处理之后,把逐个码元进行比较,假如出现误码,则两列码序列中本来相同的码元就会变得不同;通过这些差异,在位同步时钟的控制下通过异或门逐个码元进行比较,然后把结果通过计数器发送到可以显示的电路中进行显示。
在时钟的控制下,伪随机序列是可以进行移位的,若原来的和接收到的伪码序列不同步,则不可以实现两种序列的正确比较;所以首先要从接收序列中抽取出位同步信号。停扣时钟电路的功能是当序列对应位状态不一致的时候,也就是状态不同步时,同步和保护电路输出一个控制信号,然后通过停扣时钟电路扣除一个时钟脉冲。通过这种方法经过停扣时钟电路的时钟信号来触发本地伪码发生器,也就相当于本地伪码序列延迟一个时钟周期,也就是说,本地序列可以等待一个时钟周期;同步与保护电路其中的一个功能是同步控制作用,另一个是在系统状态同步后,一旦出现误码或不同步的情况,就设置一定的失锁保护时间,以保证系统同步的稳定性,而不是马上进行同步捕获。
三、误码检测器模块仿真
在误码检测器设计工作结束之后,我们需要对其进行模块仿真。误码检测器设计的主要原理就是采用四位移位寄存器来对接收序列进行移位和串/并变换。
主要的工作过程为:①等待时钟“CLK”的上升沿触发,然后接收从“inp”端输入的m序列;②按顺序进行移位:inp→A3→A2→A1→A0;③分别把A3,A2,A1,A0的数据对应输出到B3,B2,B1,B0端,完成串并变换。④A0端获取Q端的信号并作为移位4位后的串行m序列信号。
本文中m序列的生成原理为:当load标志位的值为1时,信号发生器向移位寄存器置初值;当标志位的值为0时,根据反馈信号发生器进行移位,并按照规律生成伪随机的m序列信号。
在设计误码统计和门限检测模块时,根据时钟节拍,分别对误码脉冲和时钟脉冲进行计数,并进行比较。根据公式计算误码率,若误码率高于30%,则认为误码率很高,两序列状态不同步,需要将门限检测器的值设为0,并开始同步搜索;反之,若误码率较低,则认为检测到的是真正的序列误码,将门限检测器的值设为1,并无需同步搜索,此时可以得到时序仿真波形。
系统中采用连“1”计数器模块与输出控制电路对系统进行控制。对状态比较器连“1”状态的输出进行计数,当数值与预设值一致时,系统控制“并行输入与状态控制”电路,将各并行输出设为“0”,计数器输出设为“1”,表示状态已同步;反之,若计数器的输出始终为“0”,则状态不同步。
参考文献:
[1]邢建平.VHDL程序设计教程[M].北京:清华大学出版社,2005.
[2]刘睿强,童贞理,尹洪剑.Verilog HDL数字系统设计与实践[M].北京:电子工业出版社,2011.
[3]周润景.基于Quartus II的FPGA/CPLD数字系统设计实例(第2版)[M].北京:电子工业出版社,2013.