一种基于FPGA的误码性能测试方案
扫描二维码
随时随地手机看文章
在数字通信系统的性能测试中,通常使用误码分析仪对其误码性能进行测量。它虽然具有简单易用、测试内容丰富、误码测试结果直观、准确等优点,但是,价格昂贵、不易与某些系统接口适配,通常需要另加外部辅助长线驱动电路;此外,误码分析仪对于突发通信系统的误码性能测试存在先天不足。例如,在对TDMA系统上行链路误码性能测试时,只有通过外加接口,对连续数据进行数据压扩,才能为被测设备模拟出突发形式的数据,从而完成测试。这给测试工作带来极大的不便。
另一方面,现今的通信系统大量采用FPGA作为系统的核心控制器件。将物理层上的各协议层的功能集中在FPGA内部实现,不仅提高了通信系统的集成,同时也减少了硬件和软件设计的复杂度。
基于上述两方面的考虑,笔者在FPGA内部实现了一个简易的多功能误码分析仪。该误码仪主要有三方面优点:一是可以根据用户需要,以连续或突发的方式产生若干种不同的随机序列或固定序列,并据此测试数字通信系统的误码性能;二是测试结果可以误码率或者误码数两种形式,通过外围器件直观地显示出来;三是作为被测系统的一个嵌入式模块,便于功能扩展及系统调试。
1 伪随机序列(m序列)
许多数字通信理论的结论都基于这样一个假设:原始的信源信号为0、1等概并相互独立的随机数字序列。同样,实际数字通信系统的设计,也是基于相同假设。因此,为使测试结果尽可能真实地反映系统的性能,采用伪随机序列(m序列)作为测试中传输的信号。
M序列是一种线反馈移位寄存器序列,其原理方框图如图1所示。每级移位寄存器的输出被反馈系数Ci加权(Ci可以取1或0),经模2和运算再反馈到第一级。令第一级的输入为ak,就有:
根据反馈系数的取值不同,电路可以产生出各种具有不同特性的数字序列。对于一定的移位寄存器级数r,存在一些特殊的Ci取值,使得输出序列的周期达到最长,即为2r-1。这样的序列被称为最长线性反馈移位寄存器序列,即m序列。
2 误码仪测试原理
该误码仪由发端模块和收端模块两部分组成。发端模块产生连续或者突发的比特流,作为通信系统的信源数据;收端模块接收通信系统输出的比特流,并将其与本地产生的、与发端形式相同的比特流进行比较,从而完成误码测试。从逻辑上看,误码仪的工作过程大致可以分成以下几个步骤:
(1)发端模块产生原始数据,并使其通过被测通信系统构成的信道;
(2)收端模块产生与发端相同码型、相同相位的数据流;
(3)将收到的数据流与收端产生的本地数据流逐比特地比较,并进行误码统计;
(4)根据误码统计结果,计算出相应的误码率,并输出误码指示。
误码仪收端模块所面临的最主要问题是如何准确地实现本地产生的m序列与收到的数据流同步,即比特对齐,这是整个误码仪正常工作的前提。为了适应各种不同类型的通信系统,根据m序列的性质,采用随动同步的方法解决这个问题。图2给出了随动同步的原理框图。
通过上述讨论知道,周期为2r-1的m序列发生器由r级移位寄存器组成。同时,由r个比特所能组成的所有序列(除全零序列外)都会在m序列的一个周期内遍历,且相应的前后位置固定。因此,如果两个具有相同逻辑结构的m序列发生器在某一时刻所有寄存器状态完全相同,则由这两个m序列发生器所产生的数字数据流保持同步。随动同步就是根据m序列的这个性质实现的。
3 误码仪逻辑结构
发端模块
本误码仪的发端模块实质上是一个多功能的序列发生器。用户可以通过相应的控制信号,指定其m序列发生器的线性反馈逻辑。由它产生的数字数据流将作为仿真数据送出到需要进行误码性能测试的数字通信系统中。
收端模块
收端模块在逻辑上可以分成两个功能子模块:一是m序列发生子模块,二是误码统计子模块。前者的逻辑功能与发端模块相类似,其作用是产生一个与发端形式相同并且比特对齐的本地m序列;后者的作用是将收到的数据与本地m序列相比较,同时统计误码指标,从而完成对数字通信系统的误码性能测试。
在测试过程中,接收到的数字序列被不断地逐次移入接收数据缓冲器中。在接收序列中,任意截取包含r个连续比特的片断(其中r为发端m序列发生器的阶数),将其置入本地m序列发生器的移位寄存器中,作为其初始状态,并假定此时收发双方已同步在这个状态。此后,本地m序列发生器与接收数据缓冲器同步移位输出。这样,只要对两个序列逐位比较,就可以进行误码统计了。需要特别注意:如果截取的数据片断中包含误码,则据此得出的收发双方已同步的结论是错误的。这样的数据片断将导致整个误码统计过程失去意义,不妨称这种情况为同步。为了消除假同步的影响,需要一种保护机制,用以确保收发双方的正常同步。