一种稳健的B码解调器设计

(整期优先)网络出版时间:2021-06-15
/ 2


一种稳健的 B码解调器设计

董航

中国电子科技集团公司第三十八研究所 ,安徽,合肥 230088

摘 要:本文阐述了IRIG-B(DC)码的解析原理,针对可能出现畸变的IRIG-B(DC)码信号,进行了抗干扰和纠错方法的研究,简述了措施流程。通过监测脉冲、时间信息连续性检查和与上位机时间切换等手段增强解调的适应能力,并且保证输出时间可靠,加强错误定位能力。

关键词:IRIG-B;解码;同步

中图分类号文献标识码: 文章编号:

一、引言

为适应不同的使用环境,B码长距离(大于10km)传输多采用正弦调制后的IRIG-B(AC)码,增强B码的抗干扰性能,短距离传输采用未调制的IRIG-B(DC)码,通常采用TTL接口和RS422(V.11)接口[1]。而实际应用中,短距离传输并不能排除干扰发生的情况,故本文针对可能出现畸变的IRIG-B(DC)码信号,进行了抗干扰和纠错手段的研究,从而降低误码的出现概率[2]

二、IRIG-B(DC)码帧格式和解码原理

根据GJB2991A-2008规定,B码是脉宽调制的串行格式的时间码。每一个脉冲称为码元,每个码元的准时点是该脉冲的前沿,码元周期是10ms,码元速率为100pps。一帧由100个码元组成,帧周期为1秒。码元序号由索引计数所决定,索引计数是以基准码元Pr为0开始计数,依次加1,直至帧结束计到99,进入下一帧的索引计数0。

码元的脉宽有3种,即2ms、5ms和8ms,分别代表二进制“0”、二进制“1”和位置标识位(P0,P1,……P9)或基准码元Pr。

位置标识位(P0,P1,……P9)每隔10个索引计数出现一次,位置标识符P0超前于基准码元Pr一个索引计数间隔,Pr的前沿为这一帧的帧基准。

时间编码采用BCD编码表示秒、分、时、年积日和年,对应的索引计数如表1所示。

表1 B码索引计数与时间信息对照表

60c807090a238_html_d38e057157bdf3f2.png

根据时间编码的索引计数和对应的BCD码,查找时间码编码位置(表1)即可得到时间信息,包括年、年积日、时、分、秒。2.2 时间信息输出机制

解析出当前秒t0的时间信息时,已经错过当前帧的准时点,因此将解析结果加1秒,在t0+1秒的准时点输出。

60c807090a238_html_30a68611632578fd.png

图1 B码帧结构

三、改进措施

B码通过低频线缆传输到接收设备时,波形有可能受到干扰发生畸变和失真,甚至误码,为适应各种情况,增强解调的适应能力,并且保证输出时间可靠,加强错误定位能力,本方案采用了以下几种方法:

(1)信号检测

      • 信号有无检测:检测输入信号,在一段设定的时长内没有脉冲则报错。

      • 脉宽检测:码元的脉宽直接对应二进制信息,并决定帧头的位置,为了克服波形畸变带来的影响,将三种脉宽的容许范围左右各扩宽0.5ms,即[1.5ms, 2.5ms]判定为2ms,[4.5ms, 5.5ms]判定为5ms,[7.5ms, 8.5ms]判定为8ms,出现其他脉宽则报错。采取这种措施可大大提高解调适应能力。

      • 帧头间隔检测:帧头决定了每一秒时间信息的起始和索引计数,帧头间隔为1s,考虑时钟的误差Δ,1s时钟计数为时钟频率*(1±Δ),如果两个帧头间时钟计数值超过1s的时钟频率*(1+Δ)或低于时钟频率*(1-Δ),则判断当前帧头无效,以此避免帧头识别有误导致错误的指示和使用错误的解析时间。

(2)时间信息连续性检测

判断相邻两帧B码解析出的时间信息之差是否为1s,连续4帧符合每帧时间信息递增1s,则判断时间解析正确。如果不符合连续性,则判断时间解析错误。

(3)接收/本地时间切换

当接收的B码解析时间不符合连续性时,输出时间由接收的B码解析时间切换到本地时间,本地时间可以为之前接收到符合连续性检测的正确时间,也可由上位机输入,直至接收的B码解析时间通过连续性检测,输出时间由本地时间切换到接收的B码解析时间。

四、实现办法

B码解析模块由3个层次构成,他们之间的关系如下图所示:

60c807090a238_html_7592e40f55f9c4.gif

图2 B码解析模块层次关系

  1. 信号层

信号层检测电平信号的上升沿和下降沿,并同时监测信号的有无。设置检测的门限时间长度threshold,当一个上升沿后门限时间长度内没有出现下一个上升沿,则判断无信号(no_signal高电平)。

  1. 比特层

对高电平进行时钟计数,根据时钟计数判断脉冲宽度,输出对应的比特值。2ms脉宽输出“10”,5ms脉宽输出“11”,8ms脉宽输出“11”,异常输出赋值“00”。 提取时间信息取比特值的最低位,因此,2ms脉宽和5ms脉宽这类有数值意义的脉宽输出的比特值最低位应分别为“0”和“1”。

  1. 信息层

信息层根据表1,将比特值转化为时间信息。

  1. 状态机

由于状态比较复杂,设计一个状态机,将各类情况区分开,可用下面框图表示:

00:搜索帧头。初始状态或未检测到帧头的状态,当检测到两个连续8ms,即跳转到状态“01”;

01:首次获得时间值。将比特层数据转换为时间信息,首个有效帧后,下一帧第二个上升沿跳转到状态“11”,如果没有信号,跳转到状态“00”;

11:监测帧头。帧头异常则跳转到状态“00”,帧头正常进入状态“10”;

10:运行。解析时间信息,每一帧第二个上升沿跳转到“11”。

60c807090a238_html_98e8251a0025c315.gif

图3 信息层的状态机

  1. 结构框图

获得时间信息的硬件结构设计可用下面框图表示:

60c807090a238_html_5481426df31e7fa2.png

图4 信息层的硬件结构图

图中控制信号分别表示:

A—选择接收时间

B—选择本地时间

C—接收时间加一秒

D—本地时间加一秒

E—刷新接收时间寄存器

F—刷新本地时间寄存器

G—比较当前接收时间与当前输出时间

H—输出时间信息

①—index计数归零

②—标记状态

③—比特信息抽取

以上控制信号A、B、C、D、E、F、G和H根据毫秒计数发出,控制信号①、②和③由状态机和index计数发出。

其工作原理为:串行的BCD编码的B码信息通过串并转换转化为并行的十进制的时间信息(年,年积日,时,分,秒),与接收时间寄存器中的时间信息(即上一秒解析时间加一秒)比较,如果通过连续性检测,则将接收时间信息加一秒,准时点输出。如果未通过连续性检测,则将上一秒输出时间存入本地时间寄存器,在本秒内加一秒输出。同时,接收时间的连续性检测不停止工作,持续监测接收时间信息,当接收时间信息通过连续性检测后,停止输出本地时间,切换为输出接收时间。首次获得时间信息时,连续性检测和帧头有效性检测都认为通过。

rcv_valid:接收数据有效标记,在信号丢失帧头时,接收时间不更新仍然可以通过连续性检测,因此通过连续性检测并不能等效于接收时间有效,因此加设此信号将上述情况包括在内。

五、结论

本文介绍了一种基于FPGA平台的IRIG-B(DC)码的解码方案,通过监测脉冲、时间信息连续性检测和与上位机时间切换等手段增强B码的抗干扰性能和实用性,从而降低误码的出现概率。本解码方案可以满足在利用IRIG-B码对时系统中,对高精度时间同步的要求,具有一定的实用价值。


参考文献:[1]黄鸣宇, 赵旭阳. IRIG-B码元信号传输质量分析方法[J]. 电力系统及其自动化学报, 2016, 028(008):117-121.

[2]杨保平, 郭文峰, 卜格鸿,等. 基于FPGA的IRIG—B码解码器设计[J]. 装备学院学报, 2005(06):79-82.

作者简介:董航,工程师,就职于中国电科38所。研究方向为卫星通信技术,相控阵信号处理。