微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > FPGA和CPLD > 基于FPGA的误码率测试仪的设计与实现

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

时间:09-17 来源:互联网 点击:
1、概述

在通信系统的设计实现过程中,都需要测试系统的误码性能。而常见的误码率测试仪多数专用于测试各种标准高速信道,不便于测试实际应用中大量的专用信道,并且价格昂贵,搭建测试平台复杂。随着大规模集成电路的迅速发展,FPGA在保持其集成度高,体积小,功耗低,性价比高特性的同时,能够实现越来越复杂设计功能,日益广泛的应用于通信设备的设计实现。

本文提出了一种基于FPGA的误码率测试仪的方案,使用一片Altera公司的Cyclone系列的FPGA(EP1C6-144T)及相关的外围电路,实现误码测试功能,主控计算机可以通过FPGA内建的异步串行接口(UART)配置误码测试仪并读取误码信息,由计算机完成误码分析。同时,该方案还提供了简易的数据显示,可以在脱离计算机的情况下,进行通信系统工作性能的定性分析。

2、系统构成和工作流程

按照完成的功能,整个系统可以分为测试码生成单元、误码测试单元、接口单元、显示单元和时钟生成单元以及主控计算机上运行的控制测试软件六个部分,具体框图如图1所示。


图1误码测试仪框图 利用误码率测试仪进行误码率测试的闭环测试平台结构如图2所示。对照图1、图2,将系统的工作流程描述如下。


                                     图2 通信系统误码测试框图

根据待测通信系统的数据速率由计算机通过UART配置时钟生成单元,得到工作时钟和各使能计数器的参数,使得系统按照预定时钟工作;由测试码生成单元按照设置好的时钟将 测试码发送给待测系统的发送设备;发送信号经过信道仿真器后,由待测系统的接收单元接收、判决,再将接收数据和恢复的数据时钟送入误码测试仪;误码测试仪中的误码测试单元完成输入数据和本地数据的同步后,对输入数据同本地数据进行比较,统计误码数,每完成两个测试码周期的数据比较,就将误码信息通过UART发送给计算机,进行误码统计,同时将误码数传送给显示单元,进行处理后驱动外部的四个七段数码管,显示本测试码周期内的误码率。

3、关键技术及其实现

3.1 测试码的产生

本设计使用m序列作为测试码,m序列发生器按照CCITT建议,生成用于低速数据传输设备测试误码的m序列,其特征多项式为x9+x4+1,周期为512。利用m序列的伪随机特性,可以很好的测试在不同的输入组合下,系统的通信性能,同时,m序列极强的自相关性,便于测试仪实现输入数据同本地测试码同步,以便进行误码计数。

3.2 误码测试单元的实现

误码测试单元是整个系统的核心单元,其功能框图如图3所示。序列同步跟踪单元的功能是利用m序列的自相关特性,将输入的数据同本地的m序列同步起来,并将同步信息传给码元比较单元。


我们利用测试序列—m序列的自相关性实现接收序列与本地序列的同步。m序列的捕获有很多方法,通常使用的有相关器法和循环累加法。相关器法的优点是捕获速度快,通常捕获时间不超过两个m序列的周期,但是相关器最大的问题就是所需的逻辑资源太多。相比之下,循环累加法所需的逻辑资源很少,虽然捕获时延较长,但在测试环境下,通常是可以忍受的,另外,我们还可以采取一定的措施进一步减少捕获时延。循环累加器的工作原理如下,系统复位后,m序列发生器按照预设的参数生成m序列,存入m序列缓冲区,码元同步后,在地址发生器的控制下,将m序列从缓冲区中读出,同输入序列按位进行同或运算后进行算术加,相加得到的和经D触发器缓冲一个时钟周期后,输入加法器,作为下一次加法运算的一个加数,从而实现本地序列同输入序列的循环累加。累加和送入门限检测器同所设门限比较,如低于门限,则地址发生使能和同步指示输出均无效,为‘0’,如果高于所设门限,则两信号置高。后面的码元比较单元开始工作,进行输入序列和本地序列的比较。地址发生器产生的地址由两部分组成,即:

地址输出=累加地址+偏移地址

两个地址的初值均为‘0’,累加地址计数范围同m序列的长度一样,每个时钟周期加1,第一个周期输出的m序列从第一个码元开始输出,加完一个m序列周期后,地址发生器检查由门限检测输入的地址发生控制信号,如果该信号为‘0’,那么表示输入序列同本地序列没有同步,存在相位差,此时,偏移地址加1,累加地址重新开始累加计数,使得第二个周期输出的m序列从第二个码元开始输出,实现了本地m序列相对于输入序列的“滑动”。

经过本地码的滑动,同输入序列完全同步,根据m序列的相关性,累加值会出现相关峰,超过门限检测的门限值,此时,门限检测单元就会将地址发生控制信号置‘1’,地址发生器的偏移地址不再变化,累加地址继续循环计数,m序列缓冲区按照输入的地址,将与输入序列同步的m序列输出至门限检测单元和码元比较单元,同时,经过UART向主控PC发送开始误码测试的消息。

当序列同步完成之后,门限检测单元继续工作,检查序列的同步状况,当某一时刻,相关峰值低于门限,则可以判断系统误码率过高,或者数据传输过程中出现丢帧的情况。此时,门限检测单元将同步指示和地址发生使能同时置为无效,开始新一轮捕获,同时经过UART向主控PC发送停止误码测试的报警,等待下一次统计的开始。可以看出,系统误码性能的设计指标同门限检测单元中的门限可以建立对应关系,便于测试前的参数设置。图4是测试码捕获的时序仿真图,为了测试误码统计功能,我们将测试码的前三个码取反,以便形成误码。从图中可以看出,当累加器的和高于门限时,同步指示为高,当一个新的测试码周期开始时,误码计数开始,前三个测试码是错的,可以看到误码计数正确的统计了误码个数。

码元比较单元将接收到的序列通本地产生的m序列按位作异或运算,每出现一个误码,就会输出一个计数脉冲。误码计数单元按照预先设置好的参数,每检测完两个测试码周期,就通过UART向传送一次误码个数,便于主控计算机统计误码信息。



误码测试单元通过UART同PC机进行通信,将误码信息发送给PC机,由PC机进行误码数据的分析统计处理,并形成报表。UART?通过系统提供的10MHz的时钟分频得到57.6Kbps的波特率。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top