[导读]为达到IRIG-B码与时间信号输入、输出的精确同步,采用现代化靶场的IRIG-B码编码和解码的原理,从工程的角度出发,提出了使用现场可编程门阵列(FPGA)来实现IRIG-B码编码和解码的设计方案和体系结构,设计中会涉及到几个不同的时钟频率,FPGA对时钟的同步性具有灵活性、效率高、且功耗低。抗干扰性好的特点。结果表明,FPGA能够确保为从设备提供同源的时钟基准,使时钟与信号的延迟控制在200 ns以内,从而得到了IRIG-B码与时间精确同步的效果。

IRIG (Inter Range Instrumentation Group)起源于军队靶场的时间同步,靶场中的时间系统为卫星或航天器发射、常规武器试验、测控系统提供标准时间。IBIG-B时间码(简称B码)就是由IRIG所属的TCG(Telecommunication Group)制订的一种串行时间码,被广泛应用于时间信息传输系统中。在实际的应用中,根据距离B码发生器的远近及不同时间精度的要求,B码在实际传输中采用了两种码型AC码(交流码)和DC码(直流码)。当传输距离比较远时采用AC码,当传输距离近时则采用DC码。在本文中只涉及DC码。
    FPGA为时码技术、时统设备的研制与开发注入了新的生机,为整个系统内的从设备分配相干的工作时钟,从而确保从设备具有同源相干的时钟基准。系统时钟送出时间信号,FPGA对接收到的时间信号进行编制,并且生成与GPS输出信号1 pps精确同步的B码信号。而解码系统是FPGA对B码格式信号进行解调,产生出所需的绝对时间和各种控制信号,提供给测量设备。对时统设备进行高度集成,实现时统设备大规模、高速度、低成本、低开发费用、设计周期短、电路简单、易于调试和可靠性高的目标,是时统设备发展的必然趋势。

1 IRIG-B码格式与原理
    IRIG-B码的时帧周期是1 s,包含100个码元,每个码元周期为10ms,即B码的码元速率为100 pps。B码有3种码元,位置识别标志P,二进制“1”和“0”,脉宽分别为8ms、5ms和2 ms。位置识别标志P0的前沿在帧参考点前一个索引计数间隔处,以后每10个码元有一个位置识别标志,分别为P1、P2、……、p9、P0,PR为帧参考点。脉冲信号如图1所示。

本文引用地址: http://www.21ic.com/app/eda/201103/78597.htm

一个时间格式帧从帧参考标志开始,由相邻两个帧参考标志之间的码元组成,每个时帧的准时为该时帧参考标志的前沿。如果连续出现两个8 ms的位置识别标志,则该时帧的开始是位于第2个8ms的位置识别标志前沿。
    IRIG-B码中第1个字段(PR~P1)传送的是秒信息,第2个字段(P1~P2)传送的是分信息,第3个字段(P2~P3)传送的是时信息,第4、5个字段(P3~P5)传送的是天数信息,即从1月1日开始计算的年积日,所以在第5个字段结束后时间信号已经解析并保存在寄存器中。另外,在第8个字和第10个字中分别有3位表示上站和分站的特标控制码元。不仅包含丰富的时间信息,也包含必要的控制信息和监测信息,方便后端用户进行使用。
    FPGA对B码的编码和解码时根据其格式和原理使用计数器和状态机来实现,其中会涉及到多个时钟信号,这些时钟信号都是由FPGA外部晶振40 MHz的时钟分频而来。编码时钟为5 MHz;解码的时钟有10 kHz、10 MHz,同时会输出时间信号,即天、时、分、秒信号。

2 IRIG-B码编码
    
时间模块由CPU进行处理,提取系统的时间信号,即秒信号sec_bcd[7..0],分信号min_bcd[7..0],时信号hour_bcd[6..0],天信号day_bcd[10..0],为FPGA的输入信号,这些输入信号都是并行信号,并且是BCD码。GPS模块为编码系统提供1 pps信号上升沿,即秒同步信号,也作为FPGA的输入信号。IRIG-B码编码的寄存器传输级(RTL)视图如图2所示。

图2中,FPGA对IRIG-B码的编码主要由两个模块构成,一个为时钟分频模块,另一个为数据处理模块。系统的晶振时钟为40 MHz,通过分频,采用5 MHz的时钟,所以此处的误差最大为200ns。当GPS产生1个pps_in信号后,时间信号同时进入FPGA。为了产生的IRIG-B码和GPS产生的pps_in信号精确同步,所以IRIG-B码的准时位置应对准GPS模块发出的1 pps信号上升沿。B码编码的状态机流程图如图3所示。

FPGA完成这个时刻的B码编码后,会立即不断地搜索下一个pps_in的上升沿,GPS模块每秒都会触发pps_in的上升沿,一旦发现pps_in上升沿,马上进入下一秒的编码。这样编程的好处是B码大致上可以与1 pps同步,延迟少且方便测试。FPGA对IRIG-B码秒信号的编码仿真波形如图4所示。

如上图所示,第1行信号是40 MHz的晶振时钟;第2行信号是输入信号pps_in;第3行信号是复位信号,低电平有效;第4行信号是分频后的时钟信号5 MHz;第5行是输入秒信号,此时秒信号sec bcd[7..0]为8位二进制数10001000;最后一行信号是B码的编码信号。当pps_in上升沿到来时,FPGA对B码在5 MHz时钟的上升沿处立即产生高电平,首先是B码输出位置识别标志Pr(高电平8 ms,低电平2 ms),接着8位二进制的秒信号从低位至高位输出,实现计数器计数编码,放大波形可以知道,此时B码与pps_in有100 ns的滞后,100ns的延迟对时序同步影响很小,可以忽略不计。然后FPGA根据状态机的状态运行,直到下一个pps_in上升沿来临。

3 IRIG-B码解码
    
解码部分的设计采用两个时钟来处理,晶振的时钟为40 MHz,通过分频,可以得到一个是10 kHz的时钟,和一个10 MHz的时钟。先采用10 kHz的时钟,当连续监测到2个脉宽为8 ms的位置标示信号时,启动1个计时器,当计时器计时到990 ms时,产生1个使能信号EN,这个信号是传递给高频时钟的监测使能信号。接着计时器清零,等待下一次监测到连续2个脉宽为8 ms的信号出现时,计时器重新开始计时。
    如果只采用高频时钟的话,要监测2个脉宽为8 ms的信号与计时将会非常浪费逻辑资源。所以在前一部分的监测与计时用低频时钟进行;在准时对应的上升沿来临前2 ms为高频时钟部分提供1个使能信号;高频时钟处理部分接收到此使能信号EN后再监测B码的PR的上升沿,当监测到PR为高电平后,发出1个脉冲1 pps。经过这样的处理,就能精确的提取出1 pps信号以及与1 pps精确同步的10 MHz脉冲信号。1 pps对时信号的提取如图5所示。

当检测到P5时,时间信号已经检测出来,这些时间信号都放在相应的寄存器(都是BCD码的并行信号)中,当有使能信号EN时,此时将已经检测出的时间信号加1 s,并在输出1 pps信号的同时输出时间信号,这样就保证了时间的准确性,也是用10 MHz的时钟同步,然后将时间信号在监测到2个脉宽为8 ms的位置标示信号时清零。FPGA对IRIG-B码的解码仿真如图6所示。

如上图,当第3行的信号使能信号EN触发1个上升电平时,时间信号会在此时加上1 s。原先解码出来的时间信号秒、分、时、天信号为sec_out[7..0]、min_out[7..0]、hour_out[6..0]、day_out [10..0],加1 s后的时间信号放在寄存器sec_final[7..0]、min_final[7..0]、hour_final[6..0]、day_final[10..0]中,已经将它们化为十进制数,根据B码的格式,它们的第4位均为无效信号,即sec_out[4]、min_ out[4]、hour_out[4]、day_out[4]、sec_final[4]、min_final[4]、hour_final[4]、day_final[4]都是无效信号。
    当使能信号EN有效时,即在FPGA处理时间信号加1 s的过程中,当原先的秒信号sec_out寄存器为59 s时,加1 s后,输出的sec_final寄存器使其秒清零,并且在分信号寄存器加一。同理适用于分、时、天信号,它们都有一个上限,分信号的上限同样是59时信号的上限是23,而天信号的上限是365或366,需要进行判断后得出,一旦超过了各自信号的上限,输出寄存器就会自动清零,同时进位加一。
    由图6可以知道,寄存器sec_out的值为十六进制数45,使能信号EN有效后,即加上1 s后,sec_final的值为十六进制数46,因为其第4位无效,所以秒时间为26,最后解码出来的时间是145天11时41分26秒。这些时间信号存在FPGA的寄存器中,当1 pps输出时,它们会随10 MHz的时钟频率同步输出到外部总线上,外部总线接受到时间信号实现时间同步,去校准从设备的实时时间,实现了FPGA对IRIG-B的解码。

4 结论
    
随着通信技术和通信媒体的发展,如何解决时统信号在不同媒体中的传输,对靶场时间统一系统提出了更高的要求。
    本设计中用到Cyclone的EP1C6Q240C8芯片,并且使用modelsim实现功能和时序仿真。实践证明,通过FPGA完成了对IRIG-B码的编、解码设计,能够实现与系统时钟信号的精确同步,当GPS送入pps_in信号时,FPGA进行编码,输出的IRIG-B码暂时保存在FPGA的存储器中,当需要为外部设备提供精确的对时时钟时,FPGA进行解码操作,输出同步脉冲信号1pps和时间信号,从而去校准从设备的实时时间,使设备具有精度高的同步的时钟基准,获得精确且同步的控制效果,便于对从设备进行远程管理和监测。

FPGA实现IRIG-B(DC)码编码和解码的设计相关推荐

  1. Java实现二维码编码与解码

    1.构建maven项目,导入对应依赖 这里引用谷歌的zxing包实现二维码的编码与解码,导入依赖如下所示 <!-- 谷歌二维码 --> <dependency><grou ...

  2. 基于结构光投影三维重建:格雷码编码与解码

    一 单目结构光编码目的 类似于双目,如果把投影仪看成一个逆相机,直到空间中的一点成像平面的位置,就可以知道空间中一点的坐标. 编码的目的:知道打在物体物体表面的光是从投影仪的那个像素发出来的,就知道在 ...

  3. Java利用QRCode.jar包实现二维码编码与解码

    QRcode是日本人94年开发出来的.首先去QRCode的官网http://swetake.com/qrcode/java/qr_java.html,把要用的jar包下下来,导入到项目里去.qrcod ...

  4. 海明码编码和校验原理与实现【转载】

    海明编码与检验原由 以内存为例, 如果内存所处的电磁环境比较复杂, 或者空间环境下受到带电粒子的打击, 那么可能导致电容的充放电或者触发器的翻转(SRAM). 这样会导致存储信息的改变. 如果不校验, ...

  5. bch verilog代码_基于FPGA的多进制BCH编码

    标签:编码(180)RS(99) 摘要:RS(Reed-Solomon)编码是一种具有较强纠错能力的多进制BCH编码,其既可纠正随机错误,又可纠正突发错误.RS编译码器广泛应用于通信和存储系统,为解决 ...

  6. 8086汇编4位bcd码_[走近FPGA]之二进制转BCD码

    注:本文由不愿透露姓名的 @Bulingxx 撰写.以下为正文. 在上一篇文章中介绍了数码管如何在FPGA开发板上实现动态显示,其文章链接如下: 人生状态机:[走近FPGA]之数码管动态显示​zhua ...

  7. 格雷码编码+解码+实现(Python)

    01 二值码 02 格雷码编码 2.1 编码优点 2.2 编码生成 2.3 递归生成 2.4 二值码转换 2.5 编码图 03 格雷码投影 3.1 投影图案生成 3.2 DLP投影图像 04 格雷码解 ...

  8. 【RS码1】系统RS码编码原理及MATLAB实现(不使用MATLAB库函数)

    关注公号[逆向通信猿]更精彩!!! 基础知识 要想搞懂本节知识,需要先熟悉掌握以下前几篇博客 [多元域乘法]多项式乘法电路原理及MATLAB详解 [多元域除法]多项式除法电路原理及MATLAB详解 R ...

  9. mimo-ofdm无线通信技术及matlab实现_智芯文库 | FPGA无线通信课程连载——扰码的原理及实现...

    一.扰码的作用 对数字信号的比特进行随机处理,减少连0和连1的出现,从而减少码间干扰和抖动,方便接收端的时钟提取:同时又扩展了基带信号频谱,起到加密的效果.为了保证在任何情况下进入传输信道的数据码流中 ...

最新文章

  1. 我把梦打开,只为你进来
  2. 德国蓝皮书:解决特定问题 德国渐进建设智慧城市
  3. Java如何使用Listener
  4. conda pip安装在哪里_TensorFlow 2.0 安装指南
  5. Mysql多表查询笔记
  6. 杨中科的.NET 6新书的出版进度汇报
  7. npm 安装less插件_node+npm+webpack+less安装
  8. 一个第三方Dart库导致的编译错误!
  9. linux 复制指定类型,用Linux命令行实现删除和复制指定类型的文件
  10. 8个jQuery Mobile基础教程
  11. bch编码matlab,BCH码的编码方法.doc
  12. STM32学习——矩阵键盘
  13. Linux关闭防火墙并设置开机启动/不启动
  14. 【Babble】批量学习与增量学习、稳定性与可塑性矛盾的乱想
  15. 3-综合案例:月福首页-多媒体-图片热点-框架
  16. app按钮没反应android,求助,uni-app按钮点击没反应
  17. c++ sleep函数 linux,sleep()函数 | C/C++程序员之家
  18. 【贪心策略】区间选点问题
  19. c++ 多重继承,an ambiguous base of
  20. 课题申报书范文_课题申报书范文.doc

热门文章

  1. 21杭电计算机考研回忆录
  2. 计算机一级考试试题范围,计算机一级考试题型
  3. 获取网站 favicon.ico 的三种方法
  4. Win11 + RTX3060 配置Cuda等深度学习环境
  5. 字体家族、字体和字重
  6. 【xiaomi】小米喷墨打印机如何打印测试页
  7. 自动隐身、无察觉截屏、带有密码保护的监视神器
  8. hacker_从在Hacker News上展示我的作品中学到了什么
  9. 顶点覆盖问题近似计算
  10. 程序员兼职的几大网站--点赞收藏