2.参数选取分析
对本文的GPS时钟自动机状态数n进行讨论。我们以MPC 860处理器为例,一个时钟周期大约为20 ns。计算GPS时钟时间可能要有以下步骤:
(1)清空2S中断中20ms中断个数计数器,设置初始状态S0,重新定位标准输入/输出,使与串口脱离,从而避免标准输入将输入的东西截走,此操作一般需60 ns左右;
(2)打开GPS时钟,设置串口信息,此操作一般需30 ns左右。设串口速率为9 600 bit/s,从串口读时钟送到缓冲区大约需50 ms;
(3)从缓冲区读GPS时钟,计算并设置当前时间,此操作一般需1μs左右;
(4)校正GPS时钟,关闭GPS时钟,并将标准输入/输出重新定向,此操作一般需60 ns左右。
以上任意两个步骤是不能并行完成的,因此我们取GPS时钟自动机状态数n为4。由于自动机在终态S4的开销时间为60 ns(即中断处理时间Δ),此时我们的时钟误差重新校正为ΔT ∈(-1.25 ms×m+60 ns,1.25 ms×m+20 ns+10 ns+60 ns),即ΔT ∈ (-1.25 ms×m+60 ns, 1.25 ms×m+90 ns)。
通常情况下q的理论值在±1×10-10,此时随机变量X的数学期望值EX为1/±1×10-10 =±1×1010。但在GPS设备的使用过程中时钟精度会随设备的老化或其他因素而进行漂移,这是我们必须要考虑的因素。我们假设最坏情况下值q∈ (±1×10-11,±1×10-8)范围内,总时间为Tw(Tw与q之间确定的参数m值见表1),则时间t(单位为天)与时钟误差ΔT的关系如图7。
absMiddle" border="0" onload="return imgresize(this);" onclick="javascript:window.open(this.src);" style="cursor:pointer;"/>
absMiddle" border="0" onload="return imgresize(this);" onclick="javascript:window.open(this.src);" style="cursor:pointer;"/>
根据图7我们可以看到时钟误差ΔT在q值不同的条件下,将得到不同的时钟误差曲线,随时间的增加时钟误差呈线性增长,在一定的时间范围内(如1天),参数m通常取值为0,时钟误差ΔT在不同的q值下均能保持很小。从此规律中我们可以选定GPS时钟的校正周期为1天(一般在凌晨0:00校正时钟,因为此时cdma2000-1x系统处于闲时),根据本文提供的算法,GPS时钟的误差范围能控制在较小的范围内,具有非常高的精度。此时GPS时钟的误差范围为ΔT∈ (60 ns,90 ns)。
四、存在的问题
本文提出的GPS时钟算法能够为cdma2000-1x系统提供高精度的GPS软件时钟,但也存在若干问题,其中最大问题是此时钟算法过分依赖于GPS提供的1.25ms中断与2S中断,若中断信号严重错误,本文提出的算法将不能正常工作。
五、结束语
本文提出了一种新的GPS时钟算法,该算法克服了由于GPS硬件中断的不稳定因素而增大时钟误差的缺点。根据本算法,利用2S中断和20ms中断相互校正GPS时钟,可大大提高系统的时钟精度,增强系统时钟的抗误差能力。本文提出的算法正是基于此目的。所得的数据表明,当选定时钟的校正周期为1天时,不管GPS时钟稳定度参数q值为多少,时钟误差均能控制在100 ns范围内,此时钟精度已满足cdma000-1x系统时钟的精度需求。