基于GPS授时的FPGA编码解码系统及方法[发明专利]
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(19)中华人民共和国国家知识产权局
(12)发明专利申请
(10)申请公布号 (43)申请公布日 (21)申请号 201910493993.3
(22)申请日 2019.06.08
(71)申请人 西安电子科技大学
地址 710071 陕西省西安市雁塔区太白南
路2号
(72)发明人 王显 曹长庆 曾晓东 吴晓鹏
冯喆珺 闫旭 王蕊 宁金娜
(74)专利代理机构 陕西电子工业专利中心
61205
代理人 田文英 王品华
(51)Int.Cl.
G05B 19/042(2006.01)
G04R 20/06(2013.01)
(54)发明名称
基于GPS授时的FPGA编码解码系统及方法
(57)摘要
本发明公开了一种基于GPS授时的FPGA编码
解码系统及方法。
利用GPS时钟授时,现场可编程
门阵列F P G A 采取模块化的设计思想,采用
Verilog语言对现场可编程门阵列FPGA进行开发
设计,设计中的主要模块为编码模块和解码模
块,现场可编程门阵列FPGA将GPS时钟获取的时
间信息进行串行时间码IRIG -B码的编解码处理。
本发明与其它控制芯片相比,现场可编程门阵列
FPGA具有更快的速度,使用灵活,结构简单,串行
时间码IGIR -B码的时间精度比网络时间同步精
度高出几个数量级,
提高系统的时间同步精度。
权利要求书2页 说明书5页 附图2页CN 110161931 A 2019.08.23
C N 110161931
A
1.一种基于GPS授时的FPGA编码解码系统,包括GPS时钟、现场可编程门阵列FPGA编码模块、现场可编程门阵列FPGA解码模块;所述的GPS时钟与现场可编程门阵列FPGA编码模块通过异步串行通用UART接口连接;其中:
所述的GPS时钟,用于通过全球定位系统GPS的信号驯服晶振,获取时间信息;
所述的现场可编程门阵列FPGA编码模块,包括时钟分频单元、编码单元,所述的编码模块的时钟分频单元,用于对本地时钟的频率进行第一级分频,得到10KHz的信号,对10KHz信号分别进行10倍的第二级分频和100倍的第二级分频,得到1KHz和100Hz的信号,分别作为触发信号和中断信号,对中断信号进行100倍的第三级分频,得到1Hz信号,作为秒脉冲信号,将秒脉冲信号输入到现场可编程门阵列FPGA编码模块中的编码单元中,同时输入到解码模块的码宽分析单元、转换单元中,所述的编码模块中的编码单元,用于使用串行时间码IRIG-B码转换方法,将GPS时钟输入的时间信号转化为串行时间码IRIG-B码信号,同时将串行时间码IRIG-B码信号输入到解码模块的码宽分析单元中;
所述的现场可编程门阵列FPGA编码模块,包括码宽分析单元、转换单元和输出单元;所述的解码模块中的码宽分析单元,用于利用编码模块中时钟分频单元输入的秒脉冲信号,使用串行时间码IRIG-B码码元的解码方法,对码宽分析单元接收到的串行时间码IRIG-B码信号进行解码,得到时间信息,将BCD码时间信息输入到转换单元中,所述的解码模块中的转换单元,将码宽分析单元中的BCD码时间信息转换为标准时间信息,将标准时间信息输入到输出单元中,所述的解码模块中的输出单元,用于将标准时间信息输入到外部设备中。
2.一种基于GPS授时的FPGA解码编码方法,其特征在于,GPS时钟提取标准的时间信息,对时间信息进行编码,对串行时间码IRIG-B码信号进行解码,该方法的具体步骤包括如下:
(1)GPS时钟提取标准的时间信息:
GPS时钟通过全球定位系统GPS的信号驯服晶振,获取时间信息;
(2)将时间信息传入现场可编程门阵列FPGA中:
通过异步串行通用UART接口,将时间信息输入到现场可编程门阵列FPGA编码模块中的编码单元中;
(3)对时间信息进行编码:
(3a)现场可编程门阵列FPGA中的编码模块的时钟分频单元,使用锁相环PLL,对本地时钟的频率进行第一级分频,得到10KHz的信号,对10KHz信号分别进行10倍的第二级分频和100倍的第二级分频,得到1KHz和100Hz的信号,分别作为触发信号和中断信号,对中断信号进行100倍的第三级分频,得到1Hz信号,作为秒脉冲信号,将秒脉冲信号输入到现场可编程门阵列FPGA编码模块中的编码单元中,同时传入到解码模块的码宽分析单元、转换单元中;
(3b)现场可编程门阵列FPGA编码模块中的编码单元,使用串行时间码IRIG-B码转换方法,将GPS时钟输入的时间信号转化为串行时间码IRIG-B码信号,同时将串行时间码IRIG-B 码信号输入到解码模块的码宽分析单元中;
(4)对串行时间码IRIG-B码信号进行解码:
(4a)现场可编程门阵列FPGA的解码模块中的码宽分析单元,利用编码模块中时钟分频单元输入的秒脉冲信号,使用串行时间码IRIG-B码码元的解码方法,对码宽分析单元接收到的串行时间码IRIG-B码信号进行解码,得到BCD码格式时间信息,将BCD码时间信息输入到转换单元中;
(4b)现场可编程门阵列FPGA的解码模块中的转换单元,将码宽分析单元中的BCD码时间信息转换为标准时间信息,将标准时间信息传入到输出单元中;
(4c)现场可编程门阵列FPGA的解码模块中的输出单元,将接收到的标准时间信息输出到外部设备中。
3.根据权利要求2所述的基于GPS授时的FPGA解码编码方法,其特征在于,步骤(3b)中所述的串行时间码IRIG-B码转换方法的步骤如下:
第一步,定义一个模为10的计数器ms_count10,在中断信号的上升沿触发复位,将计数器ms_count10置0,在触发信号每触发一次上升沿时计数器ms_count10加1;
第二步,定义一个模为100的计数器codes_count100,时钟分频后的中断信号每中断一次计数器codes_count100的值加1,如果在中断信号的上升沿有复位信号,则触发复位,将计数器codes_count100置0,否则,在中断信号每触发一次上升沿时计数器ms_count10的值加1;
第三步,定义一个逻辑向量CMP_REGS,其宽度为10位,表示每个毫秒码元的状态,当ms_ count10的值为0时,根据codes_count100的值所表示的信息,用对应的时间码对CMP_REGS 寄存器的内容进行更新,当计数器ms_count10不为0时,根据ms_count10的值来确定选择哪一位为输出,也就是将寄存器CMP_REGS[ms_count10]的值输出。
4.根据权利要求2所述的基于GPS授时的FPGA解码编码方法,其特征在于,步骤(4a)中所述串行时间码IRIG-B码码元的解码方法的步骤如下:
第一步,解码开始的准时点很重要,使用秒脉冲信号检测串行时间码IRIG-B码信号的上升沿;
第二步,当串行时间码IRIG-B码信号的码元位于上升沿时,对串行时间码IRIG-B码信号码元的高电平开始计时;
第三步,将高电平持续时间大于10ms的串行时间码IRIG-B码信号的码元作为解码后的无效码元;
第四步,将高电平持续时间在[7ms,10ms]区间内的串行时间码IRIG-B码码元作为解码后的位置识别标志“P”码元;
第五步,将高电平持续时间在[4ms,7ms]区间内的串行时间码IRIG-B码码元作为解码后的脉宽码字“1”;
第六步,将高电平持续时间在[1ms,4ms]区间内的串行时间码IRIG-B码码元作为解码后的脉宽码字“0”。
基于GPS授时的FPGA编码解码系统及方法
技术领域
[0001]本发明属于通信技术领域,更进一步涉及卫星通信技术领域中的一种基于全球定位系统GPS(Global Positioning System)授时的现场可编程阵列FPGA(Field-Programmable Gate Array)编码解码系统及方法。
本发明通过采用现场可编程阵列FPGA和GPS时钟的系统,同时结合对串行时间码IRIG-B(InterRange Instrumentation Group-BDC)码进行相应的编码解码,得到精度比较高的时间信息,能够在误差允许范围内实现时间同步的功能,实现在GPS卫星信号有效范围内进行授时。
背景技术
[0002]随着现代社会的高速发展,时间同步的应用越来越广泛,而且时间同步的精度要求也越来越高,使用GPS时钟提取时间信号,并且使用现场可编程阵列FPGA对提取之后的时间信号进行相应的处理,将系统内的时间偏差限定在足够小的范围内,从而实现系统中每个设备、或者每个模块之间的时间同步,实现该功能需要使用到授时技术。
[0003]中山大学在其申请的专利文献“一种基于时分空分复用的无线传感网时间同步的方法”(专利申请号201811401206.X,公开号CN109787702A)中公开了一种基于时分空分复用的无线传感网时间同步的方法。
该方法的步骤包括两个:基于空时分思想的无碰撞同步关系建立和高精度点对多点时间同步算法,本发明通过在复杂空间布局的无线传感网中快速建立起一套无碰撞的时间同步传输关系,进而采用现有的快速时间同步方法,对全网节点进行时间同步。
该方法通过在时间同步传输建立步骤损耗一定的时间成本,换来同步步骤的高效进行,其总体方法复杂度低,速度高效,解决了传统时间同步算法在复杂空间布局中消息碰撞引起的时间同步精度下降、时间同步失败的问题。
但是,该方法仍然存在的不足之处是:虽然该方法能够实现时间同步功能,但是它解决的难点问题属于网络时间同步范畴,而目前网络时间同步精度只能达到毫秒级别,无法达到微秒甚至纳秒级别,因此在一些精度要求比较高的场合,它的精度无法实现相应的需求。
[0004]西安交通大学在其申请的专利文献“基于BD/GPS双模授时的时间同步装置”(专利申请号201110118283.6,公开号CN102339016A)中公开了一种基于BD/GPS双模授时的时间同步装置。
该装置中的铷钟X72的频率输出引脚同与门的输入引脚连接,与门的输出引脚与CPLD的输入引脚连接,时间间隔测量仪TDC-GP2芯片的输出端通过SPI端口与DSP连接,DSP 与铷钟之间通过RS232串口连接,BD/GPS双模接收机输出的1pps信号输出端与时间间隔测量仪TDC-GP2芯片连接,BD/GPS双模接收机的RS232端口与DSP相连。
该装置结构简单,稳定性好,还可以自适应切换授时模式,而且在不损失精度的前提下,降低了成本,简化了系统结构,增强了稳定性。
但是,该装置仍然存在的不足之处是:首先,如果在GPS接收机出现故障的情况下,只能通过BD接收机输出信号,此时时间同步精度方面并不能达到要求;其次,相对而言,装置中的CPLD模块是复杂可编程逻辑器件,其规模较大,结构复杂,属于大规模集成电路范围。
发明内容
[0005]本发明的目的在于针对上述已有技术的不足,提出了一种基于GPS授时的FPGA编码解码系统及方法,以解决上述背景中时间同步精度不够,器件规模较大,结构复杂等问题。
[0006]实现本发明目的的思路是,利用GPS时钟授时,现场可编程门阵列FPGA采取模块化的设计思想,采用Verilog语言对现场可编程门阵列FPGA进行开发设计,设计中的主要模块为编码模块和解码模块,与其它控制芯片相比,现场可编程门阵列FPGA具有更快的速度,使用灵活,减少开发周期和费用,现场可编程门阵列FPGA将GPS时钟获取的时间信息进行串行时间码IRIG-B码的编解码处理,串行时间码IGIR-B码的时间精度比网络时间同步精度高出几个数量级,提高系统的时间同步精度。
[0007]本发明的系统包括GPS时钟、现场可编程门阵列FPGA编码模块、现场可编程门阵列FPGA解码模块;所述的GPS时钟与现场可编程门阵列FPGA编码模块通过异步串行通用UART 接口连接;其中:
[0008]所述的GPS时钟,用于通过全球定位系统GPS的信号驯服晶振,获取时间信息;[0009]所述的现场可编程门阵列FPGA编码模块,包括时钟分频单元、编码单元,所述的编码模块中的时钟分频单元,用于对本地时钟的频率进行第一级分频,得到10KHz的信号,对10KHz信号分别进行10倍的第二级分频和100倍的第二级分频,得到1KHz和100Hz的信号,分别作为触发信号和中断信号,对中断信号进行100倍的第三级分频,得到1Hz信号,作为秒脉冲信号,将秒脉冲信号输入到现场可编程门阵列FPGA编码模块中的编码单元中,同时输入到解码模块的码宽分析单元、转换单元中,所述的编码模块中的编码单元,用于使用串行时间码IRIG-B码转换方法,将GPS时钟输入的时间信号转化为串行时间码IRIG-B码信号,同时将串行时间码IRIG-B码信号输入到解码模块的码宽分析单元中;
[0010]所述的现场可编程门阵列FPGA编码模块,包括码宽分析单元、转换单元和输出单元,所述的解码模块中的码宽分析单元,用于利用编码模块中时钟分频单元输入的秒脉冲信号,使用串行时间码IRIG-B码码元的解码方法,对码宽分析单元接收到的串行时间码IRIG-B码信号进行解码,得到时间信息,将BCD码格式时间信息输入到转换单元中,所述的解码模块中的转换单元,将码宽分析单元中的BCD码格式时间信息转换为标准时间信息,将标准时间信息输入到输出单元中,所述的解码模块中的输出单元,用于将标准时间信息输入到外部设备中。
[0011]本发明方法的具体步骤包括如下:
[0012](1)GPS时钟提取标准的时间信息:
[0013]GPS时钟通过全球定位系统GPS的信号驯服晶振,获取时间信息;
[0014](2)将时间信息传入现场可编程门阵列FPGA中:
[0015]通过异步串行通用UART接口,将时间信息输入到现场可编程门阵列FPGA编码模块中的编码单元中;
[0016](3)对时间信息进行编码:
[0017](3a)现场可编程门阵列FPGA中的编码模块的时钟分频单元,使用锁相环PLL,对本地时钟的频率进行第一级分频,得到10KHz的信号,对10KHz信号分别进行10倍的第二级分频和100倍的第二级分频,得到1KHz和100Hz的信号,分别作为触发信号和中断信号,对中断
信号进行100倍的第三级分频,得到1Hz信号,作为秒脉冲信号,将秒脉冲信号输入到现场可编程门阵列FPGA编码模块中的编码单元中,同时传入到解码模块的码宽分析单元、转换单元中;
[0018](3b)现场可编程门阵列FPGA编码模块中的编码单元,定义一个模为10的计数器ms_count10,在中断信号的上升沿触发复位,将计数器ms_count10置0,在触发信号每触发一次上升沿时计数器ms_count10加1,定义一个模为100的计数器codes_count100,时钟分频后的中断信号每中断一次计数器codes_count100的值加1,如果在中断信号的上升沿有复位信号,则触发复位,将计数器codes_count100置0,否则,在中断信号每触发一次上升沿时计数器ms_count10的值加1,定义一个逻辑向量CMP_REGS,其宽度为10位,表示每个毫秒码元的状态,当ms_count10的值为0时,根据codes_count100的值所表示的信息,用对应的时间码对CMP_REGS寄存器的内容进行更新,当计数器ms_count10不为0时,根据ms_count10的值来确定选择哪一位为输出,也就是将寄存器CMP_REGS[ms_count10]的值输出,将GPS时钟输入的时间信号转化为串行时间码IRIG-B码信号,同时将串行时间码IRIG-B码信号输入到解码模块的码宽分析单元中;
[0019](4)对串行时间码IRIG-B码信号进行解码:
[0020](4a)现场可编程门阵列FPGA的解码模块中的码宽分析单元,利用编码模块中时钟分频单元输入的秒脉冲信号检测到串行时间码IRIG-B码上升沿,当检测到上升沿时,开始对高电平计时,将高电平持续时间大于10ms的串行时间码IRIG-B码信号的码元作为解码后的无效码元,将高电平持续时间在[7ms,10ms]区间内的串行时间码IRIG-B码码元作为解码后的位置识别标志“P”码元,将高电平持续时间在[4ms,7ms]区间内的串行时间码IRIG-B码码元作为解码后的脉宽码字“1”,将高电平持续时间在[1ms,4ms]区间内的串行时间码IRIG-B码码元作为解码后的脉宽码字“0”,得到BCD码格式的时间信号;
[0021](4b)现场可编程门阵列FPGA的解码模块中的转换单元,将码宽分析单元中的BCD 码格式时间信息转换为标准时间信息,将标准时间信息传入到输出单元中;
[0022](4c)现场可编程门阵列FPGA的解码模块中的输出单元,将接收到的标准时间信息输出到外部设备中。
[0023]本发明与现有技术相比具有以下优点:
[0024]第一,由于本发明的方法中采用GPS时钟获取时间信息,同时采用对串行时间码IRIG-B码作为时间同步传输的方式,IRIG-B码的同步精度可达几十纳秒级别,克服了现有技术中网络时间同步精度只能达到毫秒级别,在一些精度要求比较高的场合,无法实现相应需求的缺点,提升了时间同步精度。
[0025]第二,由于本发明的系统中采用现场可编程阵列FPGA对GPS时钟获取的时间信息进行编解码处理,克服了原有系统中使用CPLD模块规模较大,结构复杂的缺点,使得本发明结构更加简单,提升了系统的稳定性,有利于扩大系统的应用范围。
附图说明
[0026]图1为本发明系统的结构示意图;
[0027]图2为本发明系统的现场可编程门阵列FPGA编码模块结构示意图;
[0028]图3为本发明系统的现场可编程门阵列FPGA解码模块结构示意图;
[0029]图4为本发明方法的流程图;
[0030]图5为本发明系统解码模块的解码方法流程图。
具体实施方式
[0031]下面结合附图对本发明系统做进一步的描述。
[0032]参照附图1对本发明的系统做进一步的描述。
[0033]本发明的系统包括GPS时钟、现场可编程门阵列FPGA编码模块、现场可编程门阵列FPGA解码模块。
所述的GPS时钟与现场可编程门阵列FPGA编码模块通过异步串行通用UART 接口连接。
其中:
[0034]所述的GPS时钟,用于通过全球定位系统GPS的信号驯服晶振,获取时间信息。
[0035]参照附图2对本发明系统的现场可编程门阵列FPGA编码模块做进一步的描述。
[0036]所述的现场可编程门阵列FPGA编码模块,包括时钟分频单元、编码单元,所述的编码模块中的时钟分频单元,用于对本地时钟的频率进行第一级分频,得到10KHz的信号,对10KHz信号分别进行10倍的第二级分频和100倍的第二级分频,得到1KHz和100Hz的信号,分别作为触发信号和中断信号,对中断信号进行100倍的第三级分频,得到1Hz信号,作为秒脉冲信号,将秒脉冲信号输入到现场可编程门阵列FPGA编码模块中的编码单元中,同时输入到解码模块的码宽分析单元、转换单元中,所述的编码模块中的编码单元,用于使用串行时间码IRIG-B码转换方法,将GPS时钟输入的时间信号转化为串行时间码IRIG-B码信号,同时将串行时间码IRIG-B码信号输入到解码模块的码宽分析单元中。
[0037]参照附图3对本发明系统的现场可编程门阵列FPGA解码模块做进一步的描述。
[0038]所述的现场可编程门阵列FPGA解码模块,包括码宽分析单元、转换单元和输出单元,所述的解码模块中的码宽分析单元,用于利用编码模块中时钟分频单元输入的秒脉冲信号,使用串行时间码IRIG-B码码元的解码方法,对码宽分析单元接收到的串行时间码IRIG-B码信号进行解码,得到时间信息,将BCD码格式时间信息输入到转换单元中,所述的解码模块中的转换单元,将码宽分析单元中的BCD码格式时间信息转换为标准时间信息,将标准时间信息输入到输出单元中,所述的解码模块中的输出单元,用于将标准时间信息输入到外部设备中。
[0039]参照附图4对本发明方法做进一步的描述。
[0040]步骤1,GPS时钟提取标准的时间信息。
[0041]GPS时钟通过全球定位系统GPS的信号驯服晶振,获取时间信息。
[0042]步骤2,将时间信息传入现场可编程门阵列FPGA中。
[0043]通过异步串行通用UART接口,将时间信息输入到现场可编程门阵列FPGA编码模块中的编码单元中。
[0044]步骤3,对时间信息进行编码。
[0045]现场可编程门阵列FPGA中的编码模块的时钟分频单元,使用锁相环PLL,对本地时钟的频率进行第一级分频,得到10KHz的信号,对10KHz信号分别进行10倍的第二级分频和100倍的第二级分频,得到1KHz和100Hz的信号,分别作为触发信号和中断信号,对中断信号进行100倍的第三级分频,得到1Hz信号,作为秒脉冲信号,将秒脉冲信号输入到现场可编程门阵列FPGA编码模块中的编码单元中,同时传入到解码模块的码宽分析单元、转换单元中。
[0046]现场可编程门阵列FPGA编码模块中的编码单元,使用串行时间码IRIG-B码转换方法,将GPS时钟输入的时间信号转化为串行时间码IRIG-B码信号,同时将串行时间码IRIG-B 码信号输入到解码模块的码宽分析单元中。
[0047]步骤4,对串行时间码IRIG-B码信号进行解码。
[0048]参照附图5对本发明系统解码模块的解码方法做进一步的描述。
[0049]现场可编程门阵列FPGA的解码模块中的码宽分析单元,利用编码模块中时钟分频单元输入的秒脉冲信号检测到串行时间码IRIG-B码上升沿,当检测到上升沿时,开始对高电平计时,将高电平持续时间大于10ms的串行时间码IRIG-B码信号的码元作为解码后的无效码元,将高电平持续时间在[7ms,10ms]区间内的串行时间码IRIG-B码码元作为解码后的位置识别标志“P”码元,将高电平持续时间在[4ms,7ms]区间内的串行时间码IRIG-B码码元作为解码后的脉宽码字“1”,将高电平持续时间在[1ms,4ms]区间内的串行时间码IRIG-B码码元作为解码后的脉宽码字“0”,得到BCD码格式的时间信号,将BCD码格式时间信息输入到转换单元中。
[0050]现场可编程门阵列FPGA的解码模块中的转换单元,将码宽分析单元中的BCD码格式时间信息转换为标准时间信息,将标准时间信息传入到输出单元中。
[0051]现场可编程门阵列FPGA的解码模块中的输出单元,将接收到的标准时间信息输出到外部设备中。
图1
图2
图3
图4
图5。