1. 引言
本文致力于解决系统时钟高精度和高稳定度的问题。通过UM220IIIN双系统接收机和FPGA的结合,输出北斗/GPS中精度最高的秒脉冲作为时钟源,若两者的秒脉冲都失效,就利用FPGA来预测下一时刻的秒脉冲输出作为时钟源。
本文的创新在于不仅仅用单一的卫星授时,而是利用了北斗与GPS两者结合进行授时 [2] [3] ,从而能极大的避免信号丢失情况的发生,实现具有高稳定性和高精度的同步时钟源。而且当两者的秒脉冲都失效时,就根据本地晶振具有短时稳定性来利用FPGA内部自带的高频时钟以及历史数据,预测下一时刻的秒脉冲作为输出。
2. 系统总体方案
高稳时钟源方案如图1所示,共包括9个模块:北斗、GPS卫星信号接收天线模块,UM220-IIIN双系统接收模块,恒温晶振时钟模块,显示模块,通信模块,输入信号检测模块,秒脉冲生成模块,输出选择模块。
接收天线实时采集卫星信号,并将信号传输到UM220-IIIN双系统接收模块,接收模块将采集到的卫星信号,解码输出两路标准秒脉冲到FPGA模块。在FPGA模块中,首先对输入的两路秒脉冲进行有效性判断,当判断为无效信号时,丢弃输入信号。如果输入被判定为有效信号,那么将对10个秒脉冲周期进行高频计数,求其平均值,以减小随机误差。然后传输到秒脉冲生成模块 [4] [5] ,将生成的秒脉冲信号输入到信号检测模块,这个模块主要完成秒脉冲上升沿的判断,将判断结果输入秒脉冲生成模块,重新生成两路稳定的高精度秒脉冲 [6] 。新生成的高精度秒脉冲将被送入输出选择模块,输出稳定和精度更高的秒脉冲 [7] 。
通信模块主要负责FPGA与其它模块的通信,可选为PC机或其它控制模块。两个模块的通信通过I2C,UART或者是USB。显示模块用来显示秒脉冲输出状态,如显示北斗/GPS有效,或其中某一信号有效。
2.1. 输入信号检测模块 [8]
UM220-IIIN双系统GNSS接收模块接收到北斗和GPS卫星信号后,会输出两路秒脉冲到FPGA模块中的输入信号检测模块。如图2的状态转移图所示,在一路输入信号检测模块中,系统在未启动前处于待机状态,数据属于初始化状态,外置的count_high和count_low值保持不变,始终为1。当系统启动后,状态机状态从IDLE等待状态跳转到开始状态。
如果检测到输入的秒脉冲i_pulses为高电平时,状态机从开始状态跳转到高电平计数状态,并输出count_high_en高电平,开始对秒脉冲高电平时间进行计数。当输入秒脉冲由高电平转换为低电平,出现脉冲信号下降沿时,如果count_high正处于大于9,990,000并且小于10,001,000范围,那么判定输入信号为有效信号。这时状态机状态从高电平计数状态跳转到低电平计数状态,并且将count_high_en拉低,count_low_en拉高。如果出现下降沿时,count_high不处于大于9,990,000并且小于10,001,000范围,那么判定输入信号为无效信号。状态机从高电平技术状态跳转到开始状态,并将count_high_en拉低。在低电平计数状态时,和高电平计数状态一样,输入秒脉冲状态跳转时,出现脉冲信号上升沿,如果低电平计数器count_low正处于大于9,990,000并且小于10,001,000范围,那么判定输入信号为有效信号。状态从低电平技术状态跳转到高电平计数状态。
如果检测到输入秒脉冲为无效信号,输入检测模块将发出BD/GPS无效信号到下一级模块。
![](//html.hanspub.org/file/1-1540682x9_hanspub.png)
Figure 1. General scheme of high stable clock source
图1. 高稳时钟源总体方案
![](//html.hanspub.org/file/1-1540682x10_hanspub.png)
Figure 2. State transition diagram of receiver module
图2. 接收模块状态转移图
如果输入的北斗秒脉冲信号有效,那么会将北斗秒脉冲高电平计数器和低电平计数器的值存储进BDpulses_fifo中,当BDpulses_fifo内存储的值满60个时,即北斗秒脉冲输入有效满一分钟时。将BDpulses_fifo内的数据读取出来,求出每个北斗秒脉冲的均值,并将得到的均值存储进BDdata_fifo中。同样的方法,求出每一个GPS秒脉冲的均值,并将得到的均值存储进GPSdata_fifo中。比较两路数据均值的方差,判断输入秒脉冲的精度那一路更高,发出BD/GPS选择信号给下一级。
2.2. 秒脉冲生成模块
系统启动后,秒脉冲生成模块系统将会从IDLE状态转移到CHECK状态。CHECK状态的作用是确定输出秒脉冲信号的上升沿,确保输出秒脉冲信号与输入信号同步。当检测到输入信号的上升沿后,系统马上从CHECK状态转移到高电平输出状态,并且将count_out_en拉低。在高电平输出状态,count_out计数模块对脉冲输出高电平时间进行计数,当count_out数值等于输入检测模块生成的统计均值时,系统从高电平输出状态转移到低电平输出状态,并将count_out_en拉低,将count_out计数器的值清零。在低电平输出状态,计数器对脉冲输出的低电平时间进行计数,当count_out数值等于输入检测模块生成的统计均值时,系统从高电平输出状态转移到低电平输出状态,并将count_out_en拉低,将count_out计数器的值清零,如图3所示。
秒脉冲生成模块包含两个子模块,分别对应北斗秒脉冲输出和GPS秒脉冲输出。两路输出的方式相同,和状态转移图一致,只是判断状态跳转的阈值不同。
2.3. 输出选择模块
输出选择模块的功能是对两路输入秒脉冲进行判断,选择精度高的一路作为输出。输出选择模块的流程图如下图4所示。在系统启动后,首先对秒脉冲输入有效性进行判断。只有当输入秒脉冲有效时,即秒脉冲生成模块已经开始生成高精度的秒脉冲信号后,才开始进行输出选择。
3. 系统验证仿真
3.1. 逻辑验证
由于整个系统工程较大,所以可以分模块进行验证仿真。QUARTUS II与仿真软件modelsim有很好的兼容性,可以在QUARTUS II中编写验证代码,直接调用modelsim进行逻辑仿真验证。
时序逻辑仿真,首先要建立仿真文件,模拟实际电路的输入信号,并输出到系统工程文件中。编译后,调用modelsim进行时序逻辑的仿真。进入modelsim之后,需要将待观察的参数添加到波形栏,并建立好分组,如下图5所示。重新添加参数后,对modelsim中的文件重新加载,再次运行,就能观察到系统对应的时序逻辑。观察时序波形是否与设计的相符,如果不相符,则需要找到误差参数,并对工程文件进行修改。修改工程文件后,不能直接在modelsim中仿真,需要在QUARTUS II中对系统工程文件进行编译,生成对应的时序链接。
3.2. 实际电路验证
当时序逻辑验证通过后,表明电路逻辑不存在问题,但由于实际电路因为布局布线,噪声干扰等原因,存在信号延时。所以虽然时序逻辑验证通过,还不能代表系统能正常工作,仍需要进一步验证。QUARTUS II自带的signaltap仿真软件,能够采集FPGA上电运行的实时数据,并将数据以波形的方式反映出来。调用signaltap采集信号的界面如下图6所示。
3.3. 实验结果
图7展现出高稳频率源样机的总体图,其中绿色的为UM220双系统接收机,先通过接收机采集北斗/
![](//html.hanspub.org/file/1-1540682x11_hanspub.png)
Figure 3. State transition diagram of second pulse generation module
图3. 秒脉冲生成模块状态转移图
![](//html.hanspub.org/file/1-1540682x12_hanspub.png)
Figure 4. Flow chart of output selection module
图4. 输出选择模块流程图
![](//html.hanspub.org/file/1-1540682x13_hanspub.png)
Figure 5. Simulation waveform of modelsim
图5. Modelsim仿真波形
GPS信号,然后把秒脉冲输入到FPGA板上,最后通过FPGA的代码实现功能,从而输出精度最高的秒脉冲作为时钟源。
图8表示为高稳时钟源输出的高精度同步秒脉冲在示波器上的显示结果。
![](//html.hanspub.org/file/1-1540682x14_hanspub.png)
Figure 6. Acquisition signal interface of signaltap
图6. Signaltap采集信号界面
![](//html.hanspub.org/file/1-1540682x15_hanspub.png)
Figure 7. Prototype of high stable clock source
图7. 高稳时钟源样机
![](//html.hanspub.org/file/1-1540682x16_hanspub.png)
Figure 8. Oscilloscope display experimental results
图8. 示波器显示实验结果
先通过UM220双系统接收机接收到北斗/GPS信号,然后把输出同步秒脉冲送进FPGA中,在FPGA对输入信号(即北斗/GPS的秒脉冲)进行处理后,选择精度高的同步秒脉冲输出,并用示波器显示出来。
4. 结论
通过实际电路验证并结合分析实验结果,表明“基于北斗/GPS秒脉冲的高稳时钟源设计”可以解决系统时钟高精度和高稳定度的问题。
基金项目
国家自然科学基金 (61004123);广西大学大学生创新项目(T3070098228)。