CN103346804B - 基于fpga的irig-b码编码译码系统及其编码译码方法 - Google Patents

基于fpga的irig-b码编码译码系统及其编码译码方法 Download PDF

Info

Publication number
CN103346804B
CN103346804B CN201310325158.1A CN201310325158A CN103346804B CN 103346804 B CN103346804 B CN 103346804B CN 201310325158 A CN201310325158 A CN 201310325158A CN 103346804 B CN103346804 B CN 103346804B
Authority
CN
China
Prior art keywords
code
control logic
logic module
coding
decoding
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201310325158.1A
Other languages
English (en)
Other versions
CN103346804A (zh
Inventor
王少军
刘连胜
周建宝
庄波海
彭喜元
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Harbin Institute of Technology
Original Assignee
Harbin Institute of Technology
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Harbin Institute of Technology filed Critical Harbin Institute of Technology
Priority to CN201310325158.1A priority Critical patent/CN103346804B/zh
Publication of CN103346804A publication Critical patent/CN103346804A/zh
Application granted granted Critical
Publication of CN103346804B publication Critical patent/CN103346804B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Position Fixing By Use Of Radio Waves (AREA)

Abstract

基于FPGA的IRIG‑B码编码译码系统及其编码译码方法,属于通信技术领域。本发明解决了现有的IRIG‑B码的处理系统需要外部的IRIG‑B码的信号源才能完成对译码系统的自检,译码功能的准确性无法得到检验的问题。基于FPGA的IRIG‑B码编码译码系统包括GPS/北斗双系统模块、FPGA、单片机、DAC芯片、比较器芯片、上位机和PCI转接卡,GPS/北斗双系统模块、FPGA、单片机、DAC芯片和比较器芯片集成在板卡上,该板卡通过PCI转接卡与上位机相连,方法为:单片机将接收到的时间信息进行译码,然后输入到FPGA的DC码编码控制逻辑模块和AC码编码控制逻辑模块进行DC码和AC码的编码,编码完成之后通过外部环回把DC码和AC码分别输入到FPGA的进行译码,译码的结果上传到上位机。本发明适用于IRIG‑B码编码译码系统。

Description

基于FPGA的IRIG-B码编码译码系统及其编码译码方法
技术领域
本发明属于通信技术领域。
背景技术
随着当今电子技术日新月异的发展,时间同步得到了越来越重要的应用。IRIG-B码作为一种串行时间码,是一种重要的时间同步传输的方式,以其实际突出的优越性能,成为时统设备首选的标准码型,广泛的应用到电信、电力、军事等重要行业或部门。对IRIG-B码的编码和译码一般有三种方式:基于FPGA的编码译码、基于单片机的编码译码以及专用的译码芯片。但是现有的IRIG-B码的处理系统多是针对于IRIG-B码(DC码)的译码,需要外部的IRIG-B码的信号源才能完成对译码系统的自检,此种方式在设备研制过程中是十分不方便的。
发明内容
本发明为了解决现有的IRIG-B码的处理系统需要外部的IRIG-B码的信号源才能完成对译码系统的自检,译码功能的准确性无法得到检验的问题,提出了基于FPGA的IRIG-B码编码译码系统及其编码译码方法。
基于FPGA的IRIG-B码编码译码系统,它包括GPS/北斗双系统模块、FPGA、单片机、DAC芯片、比较器芯片、上位机和PCI转接卡,
FPGA内嵌存储控制模块、AC码编码控制逻辑模块、DC码编码控制逻辑模块、DC译码控制逻辑模块和AC码译码控制逻辑模块,
所述GPS/北斗双系统模块用于输出时间信息并同时发送给单片机和存储控制模块,
存储控制模块用于将接收到的时间信息作为原始的时间源,还用于将该原始的时间源通过PCI转接卡输入到上位机,
单片机用于将接收到的时间信息进行译码并输出给DC码编码控制逻辑模块和AC码编码控制逻辑模块,
DC码编码控制逻辑模块用于将单片机发送来的时间信息进行DC码的编码,
AC码编码控制逻辑模块根据接收到的单片机发送来的时间信息进行AC码的编码,
DAC芯片用于接收AC码编码控制逻辑模块输出的调制后的信息,并进行D/A转换,比较器芯片用于采集输入的AC码的零点,
AC码译码控制逻辑模块用于控制数据采集芯片采集AC码的幅值,并将其转换为DC码,
DC译码控制逻辑模块用于对输入DC码译码,转换为时间信息。
基于FPGA的IRIG-B码编码译码系统的编码译码的方法为:
步骤一:GPS/北斗双系统模块每秒钟产生一次时间信息和一个秒脉冲信号,
步骤二:将步骤一所述的时间信息发送到单片机,单片机将接收到的时间信息进行译码,得到时间信息,
步骤三:将步骤二所述时间信息同时输入到AC码编码控制逻辑模块和DC码编码控制逻辑模块,同时执行步骤四和步骤五,
步骤四:DC码编码控制逻辑模块对接收到的时间信息进行编码,完成对DC码的编码,执行步骤八,
步骤五:AC码编码控制逻辑模块根据接收到的DC码对FPGA中产生的1KHz的正弦波进行幅度调制,完成对AC码的编码,
步骤六:将调制后的信号输入到DAC芯片,得到IRIG-B的AC码的模拟量信息,
步骤七:将步骤六得到的模拟量信息经过比较器输入到AC码译码控制逻辑模块,得到DC码数字序列,并输入到DC译码控制逻辑模块,
步骤八:DC译码控制逻辑模块将接收到的DC码数字序列进行译码,得到时间信息,根据IRIG-B码的协议,P脉冲是一种位置标志位码元,每两个连续的“P”脉冲,之后表示一组新的时间信息的到来,判断出每一个码元所表达的具体含义,当检测到IRIG-B码的两个“P”脉冲之后,在下一个码元开始的上升沿把译出的信息赋值到相应的表示时间信息的寄存器变量中,然后输入到上位机,即完成对DC码的译码和AC码的译码。
本发明通过系统的编码功能实现对系统译码功能的检验,系统本身可以完成自检功能。编码的基准源来自于GPS/北斗双系统模块,把译码的结果和GPS/北斗双系统模块的时间信息通过CPCI总线上传到上位机,即将自检的结果与原始的时间源作比较可以很方便的检验系统的译码功能的准确性,实现了在没有IRIG-B码外部信号的情况下完成对译码功能的自检。
本发明的主要优点是:
1.FPGA配合外围DAC芯片实现对IRIG-B码的两种形式AC码及BC码的编码输出;
2.FPGA配合外围比较器芯片实现对IRIG-B码的两种形式AC码及BC码的输入译码;
3.通过对译码和编码功能的输入输出环回,实现系统的自检,而不需要外部的IRIG-B码的信号源。
4.IRIG-B码(AC码及DC码)编码的时间基准来自系统上的GPS/北斗双系统模块,通过对译码结果和GPS/北斗双系统模块产生的时间进行比较可以更好的对系统的准确性进行验证。
5.本系统的编码所用的时钟与译码所用的时钟不同,可以更好的模拟外部的IRIG-B码的输入。
6.本方法设计的各部分功能模块具有独立性与通用性,可应用于其它设计。
附图说明
图1为系统整体工作框图;
图2为AC码与DC码的关系示意图;
图3为AC码编码控制逻辑的状态图;
图4为DC码译码控制逻辑状态图;
图5为DC码译码结果输出控制逻辑状态图;
图6为AC码的输入与过零比较的关系示意图;
图7为过零比较器零点附近产生抖动问题示意图;
图8为本发明的工作流程;
图9为具体实施方式五所述的编码译码的方法的流程图。
具体实施方式
具体实施方式一:参见图1说明本实施方式,本实施方式所述的基于FPGA的IRIG-B码编码译码系统,它包括GPS/北斗双系统模块1、FPGA2、单片机3、DAC芯片4、比较器芯片5、上位机6和PCI转接卡7,
FPGA2内嵌存储控制模块2-1、AC码编码控制逻辑模块2-2、DC码编码控制逻辑模块2-3、DC译码控制逻辑模块2-4和AC码译码控制逻辑模块2-5,
所述GPS/北斗双系统模块1用于输出时间信息并同时发送给单片机3和存储控制模块2-1,
存储控制模块2-1用于将接收到的时间信息作为原始的时间源,还用于将该原始的时间源通过PCI转接卡7输入到上位机6,
单片机3用于将接收到的时间信息进行译码并输出给DC码编码控制逻辑模块2-3和AC码编码控制逻辑模块2-2,
DC码编码控制逻辑模块2-3用于将单片机3发送来的时间信息进行DC码的编码,
AC码编码控制逻辑模块2-2根据接收到的单片机3发送来的时间信息进行AC码的编码,
DAC芯片4用于接收AC码编码控制逻辑模块2-2输出的调制后的信息,并进行D/A转换,
比较器芯片5用于采集输入的AC码的零点,
AC码译码控制逻辑模块2-5用于控制数据采集芯片采集AC码的幅值,并将其转换为DC码,
DC译码控制逻辑模块2-4用于对输入DC码译码,转换为时间信息。
本实施方式所述的FPGA2通过PCI转接卡7与上位机6相连是指通过PCI转接卡把模块插到计算机的PCI插槽中;在上位机6中安装模块的驱动;在安装GPS/北斗双系统模块1上安装GPS/北斗双系统模块1的天线;
本实施方式所述GPS/北斗双系统模块1、FPGA2、单片机3、DAC芯片4和比较器芯片5集成在板卡上。
具体实施方式二:本实施方式是对具体实施方式一的进一步限定,所述DAC芯片4采用DAC7714实现,所述DAC7714为12位的串行输入的D/A转换器。
具体实施方式三:本实施方式是对具体实施方式一的进一步限定,所述比较器芯片5为过零比较器芯片。
具体实施方式四:参见图9说明本实施方式,具体实施方式一所述的基于FPGA的IRIG-B码编码译码系统的编码译码的方法为:
步骤一:GPS/北斗双系统模块1每秒钟产生一次时间信息和一个秒脉冲信号,
步骤二:将步骤一所述的时间信息发送到单片机3,单片机3将接收到的时间信息进行译码,得到时间信息,
步骤三:将步骤二所述时间信息同时输入到AC码编码控制逻辑模块2-2和DC码编码控制逻辑模块2-3,同时执行步骤四和步骤五,
步骤四:DC码编码控制逻辑模块2-3对接收到的时间信息进行编码,完成对DC码的编码,执行步骤八,
步骤五:AC码编码控制逻辑模块2-2根据接收到的DC码对FPGA中产生的1KHz的正弦波进行幅度调制,完成对AC码的编码,
步骤六:将调制后的信号输入到DAC芯片,得到IRIG-B的AC码的模拟量信息,
步骤七:将步骤六得到的模拟量信息经过比较器输入到AC码译码控制逻辑模块2-5,得到DC码数字序列,并输入到DC译码控制逻辑模块2-4,
步骤八:DC译码控制逻辑模块2-4将接收到的DC码数字序列进行译码,得到时间信息,根据IRIG-B码的协议,P脉冲是一种位置标志位码元,每两个连续的“P”脉冲,之后表示一组新的时间信息的到来,判断出每一个码元所表达的具体含义,当检测到IRIG-B码的两个“P”脉冲之后,在下一个码元开始的上升沿把译出的信息赋值到相应的表示时间信息的寄存器变量中,然后输入到上位机,即完成对DC码的译码和AC码的译码。
本实施方式中DC译码控制逻辑模块2-4输出的DC码和GPS/北斗双系统模块的时间信息上传到上位机,即将自检的结果与原始的时间源作比较,从而实现对译码功能的自检。
本发明可以通过板卡上的测试孔用示波器观察产生的DC码和AC码;通过在上位机中观察AC码译码产生的信息、DC码译码产生的信息以及GPS/北斗双系统模块1产生的时间信息来实现系统的自检,具体工作流程如图8所示。
本实施方式中的IRIG-B码是时间系统中的一种常用串行传输方式,B码分为直流(DC)码和交流(AC)码,直流码为脉宽编码方式;交流码是以1KHz的正弦波载频对直流码进行幅度调制后形成的。一帧B码共包含10组100位数据,每组数据周期为100ms、包含10个码元,每个码元为10ms宽度,脉冲不同宽度表示不同编码信息,GPS/北斗双系统模块1每秒钟产生一次时间信息和一个秒脉冲信号,其中每个秒脉冲信号包含100个码元,所述码元分为三种,即P脉冲、数字“1”和数字“0”,所述P脉冲的高电平宽度为8ms,低电平宽度为2ms,所述数字“1”的高电平宽度为5ms,低电平宽度为5ms,所述数字“0”的高电平宽度为2ms,低电平宽度为8ms,P脉冲是一种位置标志位码元,一帧B码共包含10个P脉冲,把100位码元分成10组。
为了准确测出码元所表示的信息,同时考虑到降低逻辑资源的占用,采用200us的时钟检测每一个码元。考虑到外部信号可能有毛刺以及抖动的情况,当检测到码元的高电平宽度低于400us时不做处理。为了提高对DC码译码的准确性,进行了容错处理。用周期为200us的时钟检测每一个码元的高电平的时间长度T,根据不同T的值来判断码元所表示的信息。
本实施方式所述的GPS/北斗双系统模块1每秒钟产生一次时间信息和一个秒脉冲信号(1PPS),所述时间信息和秒脉冲信号是同时产生的,时间信息的数据格式为:
“$GPRMC,123400.000,A,4002.2178,N,11618.1057,E,0.026,181.631,180411,,E,A*2C”
对于GPS/北斗双系统模块1产生时间信息的数据的译码FPGA2和单片机3都可以完成,由单片机3来译码更加简单。GPS/北斗双系统模块1产生时间信息的数据接口为UART串口,时间信息发送到单片机3。单片机3对时间信息进行译码后发送到FPGA2,FPGA2分别用不同的寄存器表示时间信息的不同部分,即DW_sec_ge[3:0]表示时间信息中秒的个位、DW_sec_shi[3:0]表示时间信息中秒的十位、DW_min_ge[3:0]表示时间信息中分的个位、DW_min_shi[3:0]表示时间信息中分的十位等等。例如:当时间信息是2013年01月21日16时47分39秒时,秒的个位为9则DW_sec_ge[3:0]=1001、秒的十位为4则DW_sec_shi[3:0]=0100,依此类推DW_min_ge[3:0]=0111、DW_min_shi[3:0]=0001。在产生时间信息的下一个脉冲,表示时间信息的各个寄存器变量值赋给DC译码控制逻辑模块2-4,DC译码控制逻辑模块2-4也把相应的时间信息存储在寄存器变量中。
由于IRIG-B码在1秒时间内有100个码元,因此用18.432M时钟对秒脉冲信号进行100分频产生信号a_100pps_in,即100PPS信号。用100PPS信号来产生IRIG-B码的码元,在每一个100PPS信号的上升沿产生一个码元,因此100个100PPS信号时间长度即1秒产生100个码元。IRIG-B码的起始信号与秒脉冲信号的上升沿同步,因此用上面方法在1S内产生的误差最大为1个18.432M时钟信号的时钟长度,即1/18432000秒约等于54ns。由于100PPS信号来源于秒脉冲信号的分频,在每一个秒脉冲信号的上升沿开始100分频,因此误差不积累,即产生的IRIG-B码的理论最大误差只有54ns。
对应的每一个码元,是时间信号还是P脉冲是有IRIG-B码的协议规定的。例如秒的个位用第1、2、3、4码元表示,时间为2013年01月21日16时47分37秒时,秒的个位为7,用二进制表示为0111,则第1、2、3、4码元分别对应着1110。DC译码控制逻辑模块2-4对于每个码元信息的产生是根据IRIG-B码的协议和接收的时间信息来决定的。每一个码元的时间长度是10ms,用18.432M的时钟计数,用寄存器tmp_P[31:0]表示计数的个数,从0记到184319是10ms,然后从0开始计数。当tmp_P<n时IRIG-B码输出为1,当tmp_P>=n时IRIG-B码输出为0,当码元为P脉冲式时n=147455,即高电平时间长度为8ms。依此类推码元为“1”时n=92159、推码元为“0”时n=36863,其他情况n=36863。tmp_P在两种情况复位归零,一是tmp_P>=184319时,二是100pps的上升沿,这保证了tmp_P在码元的上升沿开始计数。由于用18.432M时钟计数,同上面分析,每个码元信息的理论最大误差只有54ns,且误差不累加。
在GPS/北斗双系统模块1产生时间信息的下一个脉冲,表示时间信息的各个寄存器变量值赋给DC译码控制逻辑模块2-4,DC译码控制逻辑模块2-4在第99个码元(共有100个码元,从0开始,第99个码元是最后一个码元并且不表示时间信息)的上升沿把有时间信息决定的N值赋给各个码元的tmp_P。因此产生的IRIG-B码表示的时间信息与GPS/北斗双系统模块1产生时间信息之间差2秒。
具体实施方式五:参见图3说明本实施方式,本实施方式是对具体实施方式四的进一步限定,所述步骤五所述的AC码编码控制逻辑模块2-2中DC码对FPGA产生1KHz的正弦波进行幅度调制的具体方法为:
AC码编码控制逻辑模块的输入为DC码DC_IN,在DC_IN的上升沿,标志值DC_IN高电平的输入,这时把ROM的地址ROM_ADD复位为0,控制FPGA2的ROM从地址0到地址ROM_ADD依次读出Nx,读出的Nx输入到DACC7714的控制逻辑中,控制DAC芯片4输出相应的幅值,每读一次Nx,ROM的地址ROM_ADD加1,然后延时20us,50次后ROM_ADD复位为0,输出高幅值正弦波,
在DC_IN的下降沿,标志值DC_IN低电平的输入,把ROM的地址ROM_ADD复位为50,依次读取Nx50次,然后ROM_ADD复位为50,输出低幅值正弦波,
将得到的正弦波进行查表,实现AC码编码。
本实施方式中的IRIG-B码的AC码是用DC码对1KHz的正弦波进行幅度调制而成的,因此在产生AC码时,也是在DC码的基础上产生的。AC码产生的是1KHz的正弦波,因此需要外围DAC芯片在FPGA2的控制下产生。每一个码元有10个周期的正弦波,每个正弦波的周期为1ms,正弦波的幅值由码元所表示的信息决定。例如表示“P”脉冲的码元高电平为8ms,低电平为2ms,则产生的正弦波为8个高幅值的正弦波,2个低幅值的正弦波。AC码与DC码的关系如图2所示:
AC码的产生是基于FPGA2的查找表法实现的。AC码的产生只需要两种类型的正弦波:高幅值正弦波和低幅值正弦波,高幅值正弦波和低幅值正弦波的幅值比是由AC码所要求的调制比决定的。产生AC码所用的外围芯片为DAC7714,此芯片为12位的串行输入的DA转换器,不同的输入对应着不同的输出。输入的数据与输出的电压的关系有如下公式(1)给出:
V out = V REFL + ( V REFH - V REFL ) * N 4096 - - - ( 1 )
各参数的含义:Vout:DAC的电压输出VREFL:负参考电压VREFH:正参考电压N:数字量输入
数字量输入的范围为0-4096,对应的输出为-10V~10V。根据采样定理对1KHz的正弦波进行采样,采样频率最少为5KHz。DAC7714完成一次输出需要11us,输出频率能够达到90KHz。根据DAC芯片的输入输出特性同时考虑到正弦波曲线的光滑性,把高幅值正弦波的一个周期内的幅值按时间均匀分成50等份即采样频率为50KHz,根据得到的Voutx计算出相应的Nx,计算过程有LabVIEW编写的一个软件自动完成。有LabVIEW根据计算公式(1)计算得到的50个12位的二进制数分别存储到一个以HEX为后缀的文件中,对应的地址分别为0-49,FPGA2内的ROM从这个文件中读取相应的数据。同理由低幅值正弦波得到的50个数存储到地址为50-99的空间中去。
具体实施方式六:本实施方式是对具体实施方式四的进一步限定,所述步骤四所述的DC码编码控制逻辑模块2-3产生DC码数字序列的方法为::
根据IRIG-B码的协议和接收的时间信息,用18.432M时钟对每一个秒脉冲信号进行100分频,产生信号a_100pps_in,即100PPS信号,用100PPS信号来产生IRIG-B码的码元,在每一个100PPS信号的上升沿产生一个码元,
每一个码元的时间长度是10ms,用18.432M的时钟计数,用寄存器tmp_P[31:0]表示计数的个数,从0记到184319是10ms,然后从0开始计数,当tmp_P<n时IRIG-B码输出为1,当tmp_P>=n时IRIG-B码输出为0,当码元为P脉冲式时n=147455,即高电平时间长度为8ms,码元为“1”时n=92159,码元为“0”时n=36863,其它情况n=36863,当tmp_P>=184319或100pps的上升沿时,tmp_P复位归零,
DC码编码控制逻辑模块2-3在第99个码元的上升沿把有时间信息决定的N值赋给各个码元的tmp_P。
具体实施方式七:参见图4和图5说明本实施方式,本实施方式是对具体实施方式四的进一步限定,所述AC码编码控制逻辑模块2-2包括如下工作状态:
AC码编码控制逻辑模块2-2处于空闲状态时输入DC码,
当DC码处于下降沿时,AC码编码控制逻辑模块2-2由空闲状态转入低幅值正弦波输出状态,当DC码处于上升沿时,AC码编码控制逻辑模块2-2由空闲状态转入高幅值正弦波输出状态,
当DC码处于上升沿时,AC码编码控制逻辑模块2-2由低幅值正弦波输出状态转入高幅值正弦波输出状态,
当DC码处于下降沿时,AC码编码控制逻辑模块2-2由高幅值正弦波输出状态转入低幅值正弦波输出状态。
具体实施方式八:参见图6说明本实施方式,本实施方式是对具体实施方式四的进一步限定,所述AC码译码控制逻辑模块2-5的具体工作过程为:将AC码编码输入经过一个过零比较器,在过零比较输出的上升沿之后延时250us正好检测到AC码输入的峰值,这时控制ADC芯片采集AC码的输入,设AC码高正弦波的最大峰值为X,低正弦波的最大峰值为Y,AD采集的值为Z,当Y<Z<=X时输出高电平,当Z<=Y时输出低电平。
本实施方式中的AC码译码控制逻辑模块2-5检测到高电平后开始计时,如果高电平的时间长度不够20us,则重新开始计算高电平,这样就可以很好的解决过零比较器在零点附近抖动的问题。过零比较器零点附近产生抖动问题示意图如图7所示。
DC码的输出与AC码的输入相比正好延迟了250us即四分之一个周期,AC转换为DC码之后,输入到DC译码控制逻辑模块2-4就可以完成对AC码模块的译码。
具体实施方式九:参见图4和图5说明本实施方式,本实施方式是对具体实施方式四的进一步限定,所述DC译码控制逻辑模块2-4译码的具体工作状态为:
当DC码高电平输入时,由空闲状态转入干扰判断状态,
在干扰判断状态时,对输入的DC码进行判断,如果有毛刺以及抖动,则由干扰判断状态转入空闲状态,
如果没有毛刺以及抖动,则由干扰判断状态转入高电平计数状态,
检测到码元宽度X大于6.2ms时,由高电平计数状态转入P脉冲处理状态,
检测到码元宽度X大于3.8ms且小于6.2ms时,由高电平计数状态转入数字1处理状态,
检测到码元宽度X大于1.4ms且小于3.8ms时,由高电平计数状态转入数字0处理状态;
所述DC译码控制逻辑模块2-4结果输出的具体工作状态为:
当检测到两个连续的“P”脉冲信号时,由空闲状态转入状态标志状态,
当DC码输入上升沿时,由状态标志状态转入数据输出状态,数据输出状态转入延时状态,接着由延时状态转回空闲状态。
本实施方式中译出的时间与DC码表示的时间之间差1s,这是不可避免的。
本发明实现了IRIG-B码的环回自检,DC码编码的输出信号在板卡的外面环回到DC码译码的输入信号,DC译码控制逻辑模块2-4把DC码的时间信息译出后放到相应的寄存器中,通过CPCI总线上传到上位机中,用LabVIEW编写的软件显示,
GPS/北斗双系统模块1产生的时间信息一路发送的单片机3译码,另一路直接发送到FPGA2,FPGA2中的串行接收模块把收到的串行数据转换为并行数据存储到FIFO中,根据FIFO收到的数据个数,再把FIFO中的数据转移到FPGA2中的RAM中去,这样上位机就可以随时读取FPGA2中收到的GPS/北斗双系统模块1发来的时间信息,解决了能把FIFO读空的问题。上位机读取到GPS/北斗双系统模块1产生的原始信息后会对它进行译码,把时间信息译出来,
DC码从原始信息经历编码译码之后与原始信息相比延时了3秒,AC码延时了3.25秒。在LabVIEW编写的上位机软件中可以很方便的观察DC码译码信息、AC码译码信息和原始的时间信息。

Claims (8)

1.一种基于FPGA的IRIG-B码编码译码系统,其特征在于,它包括GPS/北斗双系统模块(1)、FPGA(2)、单片机(3)、DAC芯片(4)、比较器芯片(5)、上位机(6)和PCI转接卡(7),
FPGA(2)内嵌存储控制模块(2-1)、AC码编码控制逻辑模块(2-2)、DC码编码控制逻辑模块(2-3)、DC译码控制逻辑模块(2-4)和AC码译码控制逻辑模块(2-5),
所述GPS/北斗双系统模块(1)用于输出时间信息并同时发送给单片机(3)和存储控制模块(2-1),
存储控制模块(2-1)用于将接收到的时间信息作为原始的时间源,还用于将该原始的时间源通过PCI转接卡(7)输入到上位机(6),
单片机(3)用于将接收到的时间信息进行译码并输出给DC码编码控制逻辑模块(2-3)和AC码编码控制逻辑模块(2-2),
DC码编码控制逻辑模块(2-3)用于将单片机(3)发送来的时间信息进行DC码的编码,
AC码编码控制逻辑模块(2-2)根据接收到的DC码对FPGA中产生的1KHz的正弦波进行幅度调制,完成对AC码的编码,
DAC芯片(4)用于接收AC码编码控制逻辑模块(2-2)输出的AC码,并进行D/A转换,
比较器芯片(5)用于采集输入AC码的零点,
AC码译码控制逻辑模块(2-5)用于控制数据采集芯片采集AC码的幅值,并将其转换为DC码,
DC译码控制逻辑模块(2-4)主要用于对输入DC码的译码,转换为时间信息;
DC译码控制逻辑模块(2-4)输出的DC码和GPS/北斗双系统模块的时间信息上传到上位机,即将自检的结果与原始的时间源作比较,从而实现对译码功能的自检。
2.根据权利要求1所述的基于FPGA的IRIG-B码编码译码系统,其特征在于,所述DAC芯片(4)采用型号为DAC7714的12位串行输入的D/A转换器实现。
3.根据权利要求1所述的基于FPGA的IRIG-B码编码译码系统,其特征在于,所述比较器芯片(5)为过零比较器芯片。
4.根据权利要求2所述的基于FPGA的IRIG-B码编码译码系统的编码译码的方法,其特征在于,
步骤一:GPS/北斗双系统模块(1)每秒钟产生一次时间信息和一个秒脉冲信号,
步骤二:将步骤一所述的时间信息发送到单片机(3),单片机(3)将接收到的时间信息进行译码,得到时间信息,
步骤三:将步骤二所述时间信息同时输入到AC码编码控制逻辑模块(2-2)和DC码编码控制逻辑模块(2-3),同时执行步骤四和步骤五,
步骤四:DC码编码控制逻辑模块(2-3)对接收到的时间信息进行编码,完成对DC码的编码,执行步骤八,
步骤五:AC码编码控制逻辑模块(2-2)根据接收到的DC码对FPGA中产生的1KHz的正弦波进行幅度调制,完成对AC码的编码,
步骤六:将调制后的信号输入到DAC芯片,得到IRIG-B的AC码的模拟量信息,
步骤七:将步骤六得到的模拟量信息经过比较器输入到AC码译码控制逻辑模块(2-5),得到DC码数字序列,并输入到DC译码控制逻辑模块(2-4),
步骤八:DC译码控制逻辑模块(2-4)将接收到的DC码数字序列进行译码,得到时间信息,根据IRIG-B码的协议,P脉冲是一种位置标志位码元,每两个连续的“P”脉冲,之后表示一组新的时间信息的到来,判断出每一个码元所表达的具体含义,当检测到IRIG-B码的两个“P”脉冲之后,在下一个码元开始的上升沿把译出的信息赋值到相应的表示时间信息的寄存器变量中,然后输入到上位机,即完成对DC码的译码和AC码的译码。
5.根据权利要求4所述的基于FPGA的IRIG-B码编码译码系统的编码译码方法,其特征在于,所述步骤五所述的AC码编码控制逻辑模块(2-2)中DC码对FPGA产生1KHz的正弦波进行幅度调制的具体方法为:
AC码编码控制逻辑模块的输入为DC码DC_IN,在DC_IN的上升沿,标志值DC_IN高电平的输入,这时把ROM的地址ROM_ADD复位为0,控制FPGA(2)的ROM从地址0到地址ROM_ADD依次读出Nx,读出的Nx输入到DACC7714的控制逻辑中,控制DAC芯片(4)输出相应的幅值,每读一次Nx,ROM的地址ROM_ADD加1,然后延时20us,50次后ROM_ADD复位为0,输出高幅值正弦波,
在DC_IN的下降沿,标志值DC_IN低电平的输入,把ROM的地址ROM_ADD复位为50,依次读取Nx50次,然后ROM_ADD复位为50,输出低幅值正弦波,
将得到的正弦波进行查表,实现AC码编码,
Nx为12位的二进制数。
6.根据权利要求4所述的基于FPGA的IRIG-B码编码译码系统的编码译码方法,其特征在于,所述AC码编码控制逻辑模块(2-2)包括如下工作状态:
AC码编码控制逻辑模块(2-2)处于空闲状态时输入DC码,
当DC码处于下降沿时,AC码编码控制逻辑模块(2-2)由空闲状态转入低幅值正弦波输出状态,当DC码处于上升沿时,AC码编码控制逻辑模块(2-2)由空闲状态转入高幅值正弦波输出状态,
当DC码处于上升沿时,AC码编码控制逻辑模块(2-2)由低幅值正弦波输出状态转入高幅值正弦波输出状态,
当DC码处于下降沿时,AC码编码控制逻辑模块(2-2)由高幅值正弦波输出状态转入低幅值正弦波输出状态。
7.根据权利要求4所述的基于FPGA的IRIG-B码编码译码系统的编码译码方法,其特征在于,所述AC码译码控制逻辑模块(2-5)的具体工作过程为:将AC码编码输入经过一个过零比较器,在过零比较输出的上升沿之后延时250us正好检测到AC码输入的峰值,这时控制数据采集芯片采集AC码的输入,设AC码高正弦波的最大峰值为X,低正弦波的最大峰值为Y,数据采集芯片采集的值为Z,当Y<Z<=X时输出高电平,当Z<=Y时输出低电平。
8.根据权利要求4所述的基于FPGA的IRIG-B码编码译码系统的编码译码方法,其特征在于,所述DC译码控制逻辑模块(2-4)译码的具体工作状态为:
当DC码高电平输入时,由空闲状态转入干扰判断状态,
在干扰判断状态时,对输入的DC码进行判断,如果有毛刺以及抖动,则由干扰判断状态转入空闲状态,
如果没有毛刺以及抖动,则由干扰判断状态转入高电平计数状态,
检测到码元宽度M大于6.2ms时,由高电平计数状态转入P脉冲处理状态,
检测到码元宽度M大于3.8ms且小于6.2ms时,由高电平计数状态转入数字1处理状态,
检测到码元宽度M大于1.4ms且小于3.8ms时,由高电平计数状态转入数字0处理状态;
所述DC译码控制逻辑模块(2-4)结果输出的具体工作状态为:
当检测到两个连续的“P”脉冲信号时,由空闲状态转入状态标志状态,
当DC码输入上升沿时,由状态标志状态转入数据输出状态,数据输出状态转入延时状态,接着由延时状态转回空闲状态。
CN201310325158.1A 2013-07-30 2013-07-30 基于fpga的irig-b码编码译码系统及其编码译码方法 Active CN103346804B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310325158.1A CN103346804B (zh) 2013-07-30 2013-07-30 基于fpga的irig-b码编码译码系统及其编码译码方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310325158.1A CN103346804B (zh) 2013-07-30 2013-07-30 基于fpga的irig-b码编码译码系统及其编码译码方法

Publications (2)

Publication Number Publication Date
CN103346804A CN103346804A (zh) 2013-10-09
CN103346804B true CN103346804B (zh) 2016-12-28

Family

ID=49281586

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310325158.1A Active CN103346804B (zh) 2013-07-30 2013-07-30 基于fpga的irig-b码编码译码系统及其编码译码方法

Country Status (1)

Country Link
CN (1) CN103346804B (zh)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103913615A (zh) * 2014-03-21 2014-07-09 中国科学院长春光学精密机械与物理研究所 Irig-b码交流码畸变监测显示系统
CN103997331B (zh) * 2014-06-11 2017-03-22 四川九洲电器集团有限责任公司 基于fpga的高精度dc码编码方法及系统
CN104865824A (zh) * 2015-04-30 2015-08-26 苏州科技学院 一种基于pci-e总线的北斗b码授时同步装置
CN105743585B (zh) * 2016-01-25 2018-03-20 山东网聪信息科技有限公司 一种光irig‑b及ft3码的智能探测接收方法和装置
CN107566071B (zh) * 2016-01-28 2019-04-16 安徽四创电子股份有限公司 一种irig-b直流码编解码装置的编解码方法
CN106899325A (zh) * 2017-02-28 2017-06-27 中国航空工业集团公司沈阳飞机设计研究所 一种基于irig‑b码硬件对时试验系统
WO2018213973A1 (zh) * 2017-05-22 2018-11-29 深圳配天智能技术研究院有限公司 一种信号处理方法与系统及相关设备
CN111666597B (zh) * 2020-05-13 2021-05-18 上海微符尔半导体有限公司 一种电子雷管芯片的片上存储办法及装置
CN111913523B (zh) * 2020-06-19 2024-05-07 国网河南省电力公司焦作供电公司 一种双缓冲irig-b码产生方法
CN113341687B (zh) * 2021-06-24 2022-12-09 中国船舶重工集团公司第七0七研究所 一种高精度自校irig-b(ac)码调制装置及方法
CN114924475B (zh) * 2022-05-27 2024-01-19 合肥中科君达视界技术股份有限公司 面向多类型时统信号源的设备授时信号获取方法及电路
CN115421928B (zh) * 2022-11-04 2023-01-31 摩尔线程智能科技(北京)有限责任公司 减少芯片产生的电磁干扰的装置、方法和电子设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102055486A (zh) * 2010-12-29 2011-05-11 启东金凤凰科技发展有限公司 低密度校验码在无线数据通信中的应用
CN102420609A (zh) * 2011-11-22 2012-04-18 北京遥测技术研究所 新型irig-b交流码智能解码方法
CN202818360U (zh) * 2012-09-17 2013-03-20 南京澳德思电气有限公司 基于fpga的irig-b调制解调器
CN103138767A (zh) * 2013-01-14 2013-06-05 杭州亿恒科技有限公司 一种irig-b码解码器

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102055486A (zh) * 2010-12-29 2011-05-11 启东金凤凰科技发展有限公司 低密度校验码在无线数据通信中的应用
CN102420609A (zh) * 2011-11-22 2012-04-18 北京遥测技术研究所 新型irig-b交流码智能解码方法
CN202818360U (zh) * 2012-09-17 2013-03-20 南京澳德思电气有限公司 基于fpga的irig-b调制解调器
CN103138767A (zh) * 2013-01-14 2013-06-05 杭州亿恒科技有限公司 一种irig-b码解码器

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
高精度IRIG-B的数字方法实现;李军华;《中国优秀硕士学位论文全文数据库(电子期刊)》;20070531;全文 *

Also Published As

Publication number Publication date
CN103346804A (zh) 2013-10-09

Similar Documents

Publication Publication Date Title
CN103346804B (zh) 基于fpga的irig-b码编码译码系统及其编码译码方法
CN104991440A (zh) 高精度irig-b(ac)码解调方法及装置
CN102754348B (zh) 时钟合成系统、电路和方法
CN105553600B (zh) 一种irig‑b直流码编解码装置及其编解码方法
CN109596949B (zh) 一种智能变电站数字化采样同步转换方法及装置
CN209462366U (zh) 一种遥测数字中频接收机
CN102035472B (zh) 可编程数字倍频器
CN109507627B (zh) 一种直流电子式互感器仿真方法
CN101582732A (zh) 一种时钟检测的方法及装置
CN101175225A (zh) 数字视频数据测试系统及半导体器件
CN102014310B (zh) 机载选择呼叫信号发生器及其实现方法
CN209072515U (zh) 时钟设备检测系统
CN102932305A (zh) 一种码元同步器和码元同步方法
CN106569541A (zh) 正弦波生成方法及装置
CN202772870U (zh) 一种基于sopc的任意波形信号源装置
CN102014216B (zh) 一种公共电话交换网信道传输时延的检测方法与装置
CN106125033B (zh) 一种电压电流同步性分级误差测试系统
CN104348468A (zh) 一种脉宽自适应单总线接收器
CN100440266C (zh) 城轨供电馈线电流电压量的采集和传输方法
CN102736549A (zh) 24位采集模块
CN101534135B (zh) 解决干扰频率的方法、设备及系统
CN105389155A (zh) 一种利用spi接口实现tdm音频数据接收的方法及系统
CN206096207U (zh) 一种dds任意波发生器
CN104579336A (zh) 一种产生交流irig-b码装置及方法
CN105487139B (zh) 高精度多通道自动气象站气压检定仪

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant