一种基于FPGA来实现的IRIG-B(DC)时间码解码设计

一种基于FPGA来实现的IRIG-B(DC)时间码解码设计,第1张

随着电力自动化水平的提高,电力对时间的同步要求越来越迫切、时间同步的精度要求越来越高。采用GPS全球卫星定位系统的时间同步功能,是提高电力生产和管理自动化水平、确保运行质量的一条最佳途径。国家电力公司、各大电网和省电力公司,高度重视电力系统的时间同步系统的建设,明确要求电力的生产运行系统装置采用卫星时钟进行校时。由于目前GPS接收机采用IRIG-B(DC)时间码的格式输出标准时间信息,所以本文提出了一种基于FPGA来实现的IRIG-B(DC)时间码解码设计方案。

IRIG-B码简介

IRIG-B(DC)时间码(简称B码)是由IRIG所属的TCG(TelecommunicaTIon Group)制订的一种串行时间码。B码是一种串行时间码,帧长为1 s,共包含100个码元。它采用脉宽调制方式编码,共有三种宽度的码元,分别表示“0”,“1”.“P”,其中“P”为标志位,如图1所示,码元的总宽度为10 ms,“0”的脉宽为2 ms;“1”的脉宽为5 ms;“P”的脉宽为8 ms。

一种基于FPGA来实现的IRIG-B(DC)时间码解码设计,基于FPGA的IRIG-B(DC)码解码,第2张

B码的1帧从连续两个“P”开始,其中第一个标志位为P0,第二个标志位为PR,PR的上升沿是1 s的准秒时刻,即当前帧表示的秒时刻的起点。如果规定PR所在位置为第0个码元,那么每帧分别有编号为0,1,2,…,99的码元。标志位P1,P2,P3,…,P0的位置分别在9,19,29,…,99。B码包含了当前时刻的秒,分,时,天信息和每天按秒计时的秒数(TIME OF DAY,TOD),如图2所示。

一种基于FPGA来实现的IRIG-B(DC)时间码解码设计,基于FPGA的IRIG-B(DC)码解码,第3张

秒信息从00~59,分为“秒”和“十秒”两部分,分别使用BCD码表示。“秒”使用1,2,3,4码元,“十秒”使用6,7,8码元。分信息也是从00~59,分为“分”和“十分”,“分”使用10,11,12,13码元,“十分”使用15,16,17码元。小时信息从00~23,分为“时”和“十时”,“时”使用20,21,22,23码元,“十时”使用25,26码元。天表示的是从1月1日到当前日期的总天数,如1月1日,天数为1。天数从1~365(闰年为366),分为“天”,“十天”和“百天”三部分,“天”使用30,31,32,33码元,“十天”使用35,36,37,38码元,“百天”使用40,41码元,TOD时间使用80,81,82,83,84,85,86,87,88,90,91,92,93,94,95,96,97共17个码元,采用直接二进制表示从每天的第一秒到当前时刻的总秒数。23点59分59秒对应的TOD时间为86 399 s的IRIG-B(DC)码如图2所示。注意,秒、分、时、天、TOD表示都是低位在前,高位在后;第5、14、24、34码元为索引标志码元。另外,标志位P5到P8之间的码元为控制码元,可以根据实际使用时的协议来制订使用方法。

FPGA解码方案

FPGA是现场可编程门阵列(Field ProgrammableGate Array)的简称。FPGA器件及其开发系统是开发大规模数字集成电路的新技术。在电子产品设计中有较广泛的应用。在本设计中采用的是Xilinx公司Spartan3系列中的XC3S1500芯片。它具有29952个逻辑单元,150万个门。XC 3S1500具有333个管脚,采用FG456封装,支持在线可编程。

Xilinx公司提供了支持FPGA开发的软件ISE,通过它可以进行原理图编辑,VHDL文本语言编辑,并支持这两种编辑方式的混合设计。在本设计中采用的是ISE 10.1软件。完成了设计输入并成功地进行了编译,只能说明设计符合一定的语法规范,并不能保证设计可以获得所期望的功能,这时就需要通过仿真对设计进行验证。ModelSim是业界十分优秀的语言仿真器,它提供十分友好的调试环境,仿真速度快,精度高。在本设计中采用的是ModelSim SE 6.6e。

在本工程设计中采用了VHDL语言,自顶向下的设计方法,实现了工程的层次化管理。为了使得产品稳定、可靠,采用全同步设计,使整个工程都在一个时钟上升沿时刻改变状态。这样可以避免冒险和其他不定态的出现。其软件设计模块基本框图如图3所示。

一种基于FPGA来实现的IRIG-B(DC)时间码解码设计,基于FPGA的IRIG-B(DC)码解码,第4张

全局控制模块

全局控制模块产生全局控制信号count,对其他模块进行时序管理。首先,将输入的10 MHz频率倍频到50 MHz,使得整个工程以50 MHz的频率运行。其次,判断输入的B(DC)码码元的上升沿,在码元的上升沿时刻对全局控制信号count复位,接下来在50 MHz频率的控制下全局控制信号count开始计数。count的低17比特是2.2 ms的计数器,count的第17,18比特是对B(DC)码码元采样点的标记,范围是0~3。count的第19~25比特是对B(DC)码码元的统计,范围是0~99。最后,搜索帧头的功能。对B码采样模块输出的数据进行判断,当搜索到连续两个标志位P0,PR时,则认为搜索到帧头,开始BCH译码,否则认为没有搜索到帧头,控制信号count复位,重新搜索。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/dianzi/2621323.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-08-10
下一篇 2022-08-10

发表评论

登录后才能评论

评论列表(0条)

保存