DIY编程器网

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1769|回复: 1
打印 上一主题 下一主题

[待整理] 基于FPGA的智能误码测试仪

[复制链接]
跳转到指定楼层
楼主
发表于 2014-10-5 12:44:18 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
基于FPGA的智能误码测试仪

摘要:误码仪是评估信道性能的基本测量仪器。先从误码仪的基本框图入手,介绍其中各个功能模块的作用;之后着重讨论误码仪中关键模块的实现方法;最后介绍误码仪的外围附件和扩展能力。    关键词:误码仪 FPGA 位同步 锁相环 m序列
在实际工作中,常常需要误码仪能测试多种信道。但是目前市面上所销售的误码仪大多只能测试电信部门的标准通信信道,低速以一、二次群为主,高速可达SDH信道速率;且价格昂贵、体积偏大,不能用于测试实际工作中大量存在的专用信道或自行架设的信道。这类信道多为水文监测、气象预报等特殊用途而设计,一般对传输系统的可靠性要求较高。
本文所介绍的智能误码仪在设计时特别考虑了这类信道的测试要求。它结合FPGA及单片机的结构特点进行编程,可在较宽的速率范围内(150bit/s~2.048Mbit/s)实现智能位同步和快速码序列同步。用户不仅可以从LCD上了解信道的误码情况,还可以通过仪器与PC机连接,在个人电脑上看到某段时间内的误码率折线图和其它误码信息,并以此来了解系统的误码发生情况。为了便于在无人值守的情况下进行误码测试,该误码仪内置了大容量的E2PROM,可以保存被测系统最后4000次的误码事件(包括时间及误码率大小)。由于设计时采用了FPGA、单片机等大规模集成电路,该误码仪不仅体积小巧(采用贴片元件时仅香烟盒大小),而且成本低廉、功能强大,具有较高的实用价值和市场价值。

1 误码仪总体框图及误码测试原理

1.1 误码仪整体结构
图1是该误码仪的整体设计框图。
m序列发生模块的主要功能是根据用户的速率要求产生测试序列——m序列。实际设计时,采用CCITT建议的用于低速数据传输设备测试误码的m序列,其特征多项式为X9+X5+1,周期为512。在外部附件的支持下,它还可以进行多种码型变换和调制解调。
位同步模块的主要功能是从传来的码元中提取位同步信息——码元时钟并将这一时钟提供给本地序列同步模块,以便在本地恢复出与测试序列同步的检验序列。
序列比较模块用于比较检验序列与测试序列的一致性。通过比较就能知道经过被测信道传输后测试序列中有多少码元产生了错误,并以此评估被测信道的性能。由于m序列是周期序列,所以测试序列与检验序列的比较必须在周期的同一位置开始进行(即同相)。这也是本地序列同步模块的另一项重要功能。完成了序列比较后, 序列比较模块将实时地把传输的总码元数和误码数传送给单片机。
单片机是整个误码仪的核心,它根据用户的选择控制各模块的正常工作,并根据各模块提供的状态向用户发出误码事件、状态告警、故障提示等信息。在加电时对FPGA进行配置也是单片机的一项重要任务。实际设计时选用了性价比极高的FPGA——Altera公司的FLEX10K10。该器件的配置文件有15K字节,因此选用了大容量的通用单片机AT89C55。存储器及时钟为用户查询误码信息提供了方便,为了简化电路设计,选用了I2C总线方式的E2PROM(24LC128)和专用时钟芯片(PCF8563)。

    1.2 主要模块特点
在设计该误码仪时,根据FPGA的结构特点进行编程,采用了独特的算法,使该误码仪中位同步模块和本地序列同步模块具有较强的智能处理能力。
位同步模块可自适应地提取并跟踪位同步时钟。由于误码仪需要对多种非标准信道进行测试,因此它必须能在较宽的速率范围内工作。在位同步模块中采用了新型数字锁相算法,使该误码仪能在不知道发端发送速率的情况下对信号进行快速而准确的位同步处理。在单片机的配合下,还可向用户提供无信号提示、失步告警等多种信息。
本地序列同步模块可实现快速序列同步。完成位同步后,误码仪还需进行序列同步。为了减少序列同步的时间,设计了快速序列同步算法,使误码仪能在不知道发送端m序列发生器初始状态的情况下进行快速盲同步,并提供序列失步告警和序列失步后快速恢复功能。因此,该误码仪不仅可以用于对信道进行闭环测试,而且还能方便地进行开环测试。
1.3 误码仪基本测试过程
m序列发生模块首先根据用户的速率要求发送测试序列。该序列经过被测信道传输后到达接收端,并送入位于FPGA内的位同步模块。位同步模块恢复码元时钟成功后,会将这一时钟送至其它模块,并通知单片机位同步成功。其它模块利用本地时钟完成检验序列恢复、同步及比较,并由此得到误码信息:误码数和总码数。该信息实时传送给单片机后,单片机每隔1秒进行一次误码率的计算,并将具体日期、时间和误码率大小显示在LCD上。如果误码率大于0则认为发生了一次误码事件,单片机会将此事件发生的时间和误码率的大小记录在储存器内,并通过RS232串口上传至PC机。

2 核心部分设计

FPGA中的位同步模块和序列同步模块是实现误码仪的关键。这两个模块设计得好坏直接影响着误码仪的整体性能。同时,误码仪智能能力的实现也离不开单片机的有效工作。
2.1 位同步模块
实际应用中,由于不同的被测信道采用不同的技术,因此其传输方式、传输速率、复杂程度都各不相同。这就要求误码仪中的位同步模块具有较强的适应能力。一般常见的同步方法如插入导频法、滤波法等都无法满足信道多变的要求5。为此,根据数字锁相环的基本原理并结合FPGA的结构特点,研究了一种自适应的智能锁相算法,该算法可使误码仪在较宽的速率范围内对信号时钟进行智能提取和跟踪,具有较高的实用价值。
图2是该位同步模块的结构框图。为了使接收端能快速、准确地提取码元时钟,发送端在发送m序列前应先发送一定数量的0101序列(见图3中的S1),其中“0”和“1”的宽度与单个码元宽度相同。在接收端预先不知道信号单个码元宽度(即码元时钟)的情况下,位同步模块首先进行码元宽度检测。这一工作主要由码元宽度计数器完成。该计数器在高速全局时钟驱动下分别对信号中的“0”、“1”电平进行宽度计数。
由于发送的是0101序列,因此码元宽度计数器的计数值N将保持在一定阈值范围内,这一N值表示了发来信号码元宽度相当于N个全局时钟宽度。由此,位同步模块便获得了发来信号的单个码元宽度信息。之后,位同步模块在传输信号的上升沿或下降沿启动本地N计数器,产生与发端信号同频的本地时钟S2。S2经过一个定值延时器延时Nx个全局时钟宽度后,得到信号S3。S3与S1在鉴相器中进行异或门鉴相,其结果为S4。由图3可见,若S4中高电平宽度等于Nx个全局时钟宽度,则本地时钟S2与发端时钟S1同相。若S4中高电平宽度大于Nx,则本地时钟滞后,反之则超前。由此得到了本地时钟超前或滞后的信息。控制器根据这一信息对本地N计数器进行加、扣脉冲操作,使得本地时钟与发端时钟保持同相。


图4 序列同步模块框图


    在m序列中,连0、连1的情况很多,为了防止鉴相器在此期间误操作,设计了判别及控制电路,在信号出现连0或连1时使鉴相器不操作,让本地N计数器始终以N为计数值计数。采用这种同步方法后,不仅误码仪同步适应范围加宽,而且本地恢复时钟的精度也仅与全局时钟有关,而与发端信号速率无关。实际测试证实,在信号存在50个连0时,位同步模块仍能正常工作。
2.2 序列同步模块
前面已经提到,m序列是周期序列,测试序列和检验序列的比较应以周期内的同一位置作为起点。因此,在序列比较前应首先进行序列同步。常见的序列同步方法有:滑动相关捕捉法、序列相关捕捉法、SAW器件捕捉法等6。这些方法都是利用序列的相关特性进行同步的,存在着结构复杂、同步时间较长等缺陷,不适合用FPGA实现。为了使误码仪能在不知道发送端序列发生器初始状态的情况下进行快速盲同步,在实际设计中采用了开关门m序列同步算法7。其原理框图如图4所示。
在初始状态下,开关K置于B位置,发端送来的测试序列在完成位同步后移位送入寄存器an-1…a0。存满后,开关K置于A位置。寄存器an-1…a0和模二加法器在本地时钟的驱动下产生出检验序列。由于m序列的下一存储器状态组合仅取决于当前的状态组合,因此,如果最初的9个接收码元是正确的,则随后产生的所有码元都是与测试序列相同和同步的。之后,测试序列与检验序列需要进行一次相关比较,如在若干个(如5个)码元周期内其相关值超过阈值,则可认为两序列同步,否则需要重新进行同步操作。
采用这一方法后,序列同步时间大大缩短,有利于进行快速测试。
2.3 单片机软件的设计
单片机在误码仪中承担着控制核心的作用。其实际工作流程如图5所示。
仪器加电复位后单片机首先配置FPGA。配置成功后,单片机等待用户的键盘指令并确定测试模式和速率。根据用户的选择,单片机将及时地调整FPGA内各模块的工作参数。用户选择测试开始后,单片机首先检测FPGA中位同步模块是否工作正常。根据位同步模块的工作情况,单片机可向用户发出无信号及失步告警,提示用户检查线路。位同步成功后,单片机每隔1秒读取一次误码数据并进行分析计算。若误码率大于0.5,则认为序列同步失败,单片机要求序列同步模块重新进行同步操作。若连续3秒同步无效,则认为位同步失效,单片机将发出失步告警,并提醒用户发送端速率可能已改变或信道干扰严重。在此期间,误码率的显示和存储都不受影响。
在发生误码事件后,单片机会及时地通过I2C总线将其存储于外部E2PROM中,并及时上传PC机。用户可通过LCD实时地了解误码测试情况,并在测试中随时查询存储器中的误码信息。
3 误码仪的扩展和再升级
智能误码仪的设计和开发面向的是多种传输信道。为了适应不同信道的传输方式,设计了大量的外部接口配件,每一种配件提供了不同的码型变换(HDB3等)和信号调制解调方式(FSK等)。用户可以根据实际测试需要进行选择。采用这种灵活的配置方式后,用户不仅降低了使用成本,而且提高了测试的针对性。
为了提高该误码仪的再升级和可移植能力,选用了单片机和FPGA作为核心器件。其中FPGA采用模块化的设计思想,其中的成熟模块可被其它基于FPGA的系统或模块调用。对于那些需要随时测试信道误码而又不希望另外购买误码仪的用户来说,将已设计好的测试模块移植到自己的系统中将是一个不错的选择。同时,FPGA的正常运行需要对其进行正确的配置,不同的配置文件将使FPGA产生不同的工作效能。用户通过下载最新的配置文件可以方便地实现系统的软升级。
近几年来,“虚拟仪器”技术逐渐成熟,让PC机直接配置或部分控制FPGA不仅可以减轻单片机的工作负担,而且可以通过修改PC机上的软件实现对专用信道测试功能的优化。本文所介绍的误码仪在开发时已注意在这方面留下足够的拓展空间,只要开发出更为复杂的PC机客户端服务程序,无需改动现有的设备就能实现在PC机上进行误码测试操作。
本文所介绍的智能误码仪采用大规模可编程集成电路作为核心,具有体积小巧、成本低廉、性能优异、可拓展能力强的特点。尤其是FPGA中的自适应位同步模块和快速序列同步模块设计独特、功能完善,具有较高的应用价值。随着该误码仪外部设备的不断完善和改进,它将向更多的专业用户提供更全面更优质的支持与服务。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|文字版|手机版|DIY编程器网 ( 桂ICP备14005565号-1 )

GMT+8, 2024-12-22 23:33 , 耗时 0.097130 秒, 20 个查询请求 , Gzip 开启.

各位嘉宾言论仅代表个人观点,非属DIY编程器网立场。

桂公网安备 45031202000115号

DIY编程器群(超员):41210778 DIY编程器

DIY编程器群1(满员):3044634 DIY编程器1

diy编程器群2:551025008 diy编程器群2

QQ:28000622;Email:libyoufer@sina.com

本站由桂林市临桂区技兴电子商务经营部独家赞助。旨在技术交流,请自觉遵守国家法律法规,一旦发现将做封号删号处理。

快速回复 返回顶部 返回列表