本发明涉及时间统一对时技术领域,尤其涉及一种超低功耗时间统一模块同步授时算法。
背景技术
通用水声信标主要用于为水声测控装备提供规定频带内频点、脉宽及周期可设定的合作水声信号,“时统模块”是信标的核心组件之一,系统所有动作都以时统模块为时间基准。其主要包括北斗授时电路、恒温晶振守时电路、同步输出电路、返检测试电路等单元电路,目前,由于时间统一系统在进行逻辑控制时均采用低密度大尺寸的fpga完成,造成了这种方案配电复杂、修改维护复杂、pcb尺寸较大、功耗难于控制。不利于减小设备的轻便和维护性。
技术实现要素:
本发明提供了一种超低功耗时间统一模块同步授时算法,时统单片机使用通用异步串行接口,连接北斗通讯授时模块,分解导航报文,生成门控信号(gate)控制、挑选用于授时的秒脉冲信号。并使用恒温晶振为时统单片机提供高稳定10mhz时钟,经单片机内部pll单元倍频为50mhz后,供给时统单片机芯片内部所有“外设”,如定时器timer使用,时统单片机通过spi总线连接“数字电位器”,使用数字电位器中间抽头可调电压值控制恒温晶振压控电压,以达到晶振频率微调的功能;稳定的时钟源是时统模块设计的关键所在,高精度温控晶振(ocxo)为系统提供高精度的时钟源,保证无缆式通用声信标在水下航行时,没有外部高精度同步信号情况下的同步发射精度要求。
为解决上述技术问题,本申请实施例提供了一种超低功耗时间统一模块同步授时算法,包括以下步骤:
s1、定义:“syn”为同步秒脉冲,由gps/北斗秒脉冲提供,“fr”为“定时器2周期脉冲”即测距脉冲矩形包络信号,信标系统同步需要达到的目的是:fr信号前沿与特定的syn时间上完全重合,时延小于5us定时器2的同步授时流程如下:
当主控告知“下个秒脉冲同步”,时统单片机选择bd(ch1)或gps(ch2)秒脉冲通道,秒脉冲至ch1或ch2,打开捕捉中断使能,打开测量超时计数1.6s;
ch1或ch2捕捉中断服务程序(a点),捕获同步脉冲在timer2定时器上的数值q,告知主程序,并关闭捕捉中断使能;
若1.6s内没有完成捕获操作,关闭捕捉中断使能,并向主控告知:无同步脉冲抵达错误;
主程序收到捕获值后,计算向前或向后修正值±m,打开ch2或ch1半周期比较中断使能,若使用bd(ch1)同步,那么ch2设置为半周期中断,若使用gps(ch2)同步,那么ch1设置为半周期中断;
在定时器半周期中断服务程序中(b点),对timer2计数器(tcnt)完成±m修正,关闭半周期比较中断使能,设置标志位结构变量,告知上位机同步成功及±m;
设周期为n=t=n′-1;
n=(n-q+1)%(n+1),n∈[0,n]
q=0,n=0表征准确同步,不用调整;
设m为调整量,则有:
其中:
设置c、d两个点是为了保证调整的幅度过大,导致生成脉冲错误。
调整方程为:
tcnt′=tcnt+m
使用边界误差值带入公式,验证同步算法有效性:
1.捕捉值q=0:
n=(n-0+1)%(n+1)=0
m=n=0
不调整;
2.捕捉值q=1:
n=(n-1+1)%(n+1)=n
m=(-)(n-n+1)=(-)(n-n+1)=-1
调慢1个tb;
3.捕捉值q=2:
n=(n-2+1)%(n+1)=n-1
m=(-)(n-n+1)=(-)(n-(n-1)+1)=-2
调慢2个tb;
4.捕捉值q=n:
n=(n-(n)+1)%(n+1)=1
m=+n=+1
调快1个tb;
5.捕捉值q=n-1:
n=(n-(n-1)+1)%(n+1)=2
m=+n=+2
调快2个tb;
时统单片机上电初始化完毕后,进入守时状态,该状态下若无收到同步指令,维持主定时器timer2稳定运行,按周期、脉宽、双脉冲等设置向主控及信号单片机输出第1/2脉冲信号。期间严禁对timer2中计数寄存器tcnt做修改设置,以防止系统时延非稳态偏移;
当收到主控单片机下达的“同步”指令后,时统单片机打开秒脉冲输入保护,使北斗/gps秒脉冲可送至主定时器timer2的第1/2通道,进入“时延测量等待”状态,若timer2在规定时间内捕获到选定的秒脉冲信号,进入“时延测量成功”状态,根据捕获的tcnt值计算同步需要的时调整值后,即可进入“同步调整等待”状态,等待调整时刻抵达后(设置为半周期时刻),使用修改tcnt寄存器的方式调整时延误差值,完成“同步授时”所有工作,经“同步调整成功”状态向主控单元上报测量及调整结果,而后回到“守时状态”,状态机中2个需等到完成功能,均设置有超时保护状态,防止状态机锁死,超时后,向主控单元报错后回到“守时状态”。
本申请实施例中提供的一个或多个技术方案,至少具有如下技术效果或优点:
时统单片机使用通用异步串行接口,连接北斗通讯授时模块,分解导航报文,生成门控信号(gate)控制、挑选用于授时的秒脉冲信号。并使用恒温晶振为时统单片机提供高稳定10mhz时钟,经单片机内部pll单元倍频为50mhz后,供给时统单片机芯片内部所有“外设”,如定时器timer使用,时统单片机通过spi总线连接“数字电位器”,使用数字电位器中间抽头可调电压值控制恒温晶振压控电压,以达到晶振频率微调的功能;稳定的时钟源是时统模块设计的关键所在,高精度温控晶振(ocxo)为系统提供高精度的时钟源,保证无缆式通用声信标在水下航行时,没有外部高精度同步信号情况下的同步发射精度要求。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是gps/北斗秒脉冲提供原理框图;
图2-图4为本实施例算法举例图。
具体实施方式
为了更好的理解上述技术方案,下面将结合说明书附图以及具体的实施方式对上述技术方案进行详细的说明。
如图1-图4所示,本实施例所述的一种超低功耗时间统一模块同步授时算法同步授时算法,包括以下步骤:
s1、定义:“syn”为同步秒脉冲,由gps/北斗秒脉冲提供,“fr”为“定时器2周期脉冲”即测距脉冲矩形包络信号,信标系统同步需要达到的目的是:fr信号前沿与特定的syn时间上完全重合,时延小于5us定时器2的同步授时流程如下:
当主控告知“下个秒脉冲同步”,时统单片机选择bd(ch1)或gps(ch2)秒脉冲通道,秒脉冲至ch1或ch2,打开捕捉中断使能,打开测量超时计数1.6s;
ch1或ch2捕捉中断服务程序(a点),捕获同步脉冲在timer2定时器上的数值q,告知主程序,并关闭捕捉中断使能;
若1.6s内没有完成捕获操作,关闭捕捉中断使能,并向主控告知:无同步脉冲抵达错误;
主程序收到捕获值后,计算向前或向后修正值±m,打开ch2或ch1半周期比较中断使能,若使用bd(ch1)同步,那么ch2设置为半周期中断,若使用gps(ch2)同步,那么ch1设置为半周期中断;
在定时器半周期中断服务程序中(b点),对timer2计数器(tcnt)完成±m修正,关闭半周期比较中断使能,设置标志位结构变量,告知上位机同步成功及±m;
设周期为n=t=n′-1;
n=(n-q+1)%(n+1),n∈[0,n]
q=0,n=0表征准确同步,不用调整;
设m为调整量,则有:
其中:
设置c、d两个点是为了保证调整的幅度过大,导致生成脉冲错误。
调整方程为:
tcnt′=tcnt+m
使用边界误差值带入公式,验证同步算法有效性:
6.捕捉值q=0:
n=(n-0+1)%(n+1)=0
m=n=0
不调整;
7.捕捉值q=1:
n=(n-1+1)%(n+1)=n
m=(-)(n-n+1)=(-)(n-n+1)=-1
调慢1个tb;
8.捕捉值q=2:
n=(n-2+1)%(n+1)=n-1
m=(-)(n-n+1)=(-)(n-(n-1)+1)=-2
调慢2个tb;
9.捕捉值q=n:
n=(n-(n)+1)%(n+1)=1
m=+n=+1
调快1个tb;
10.捕捉值q=n-1:
n=(n-(n-1)+1)%(n+1)=2
m=+n=+2
调快2个tb;
时统单片机上电初始化完毕后,进入守时状态,该状态下若无收到同步指令,维持主定时器timer2稳定运行,按周期、脉宽、双脉冲等设置向主控及信号单片机输出第1/2脉冲信号。期间严禁对timer2中计数寄存器tcnt做修改设置,以防止系统时延非稳态偏移;
当收到主控单片机下达的“同步”指令后,时统单片机打开秒脉冲输入保护,使北斗/gps秒脉冲可送至主定时器timer2的第1/2通道,进入“时延测量等待”状态,若timer2在规定时间内捕获到选定的秒脉冲信号,进入“时延测量成功”状态,根据捕获的tcnt值计算同步需要的时调整值后,即可进入“同步调整等待”状态,等待调整时刻抵达后(设置为半周期时刻),使用修改tcnt寄存器的方式调整时延误差值,完成“同步授时”所有工作,经“同步调整成功”状态向主控单元上报测量及调整结果,而后回到“守时状态”,状态机中2个需等到完成功能,均设置有超时保护状态,防止状态机锁死,超时后,向主控单元报错后回到“守时状态”。
以上所述,仅是本发明的较佳实施例而已,并非对本发明作任何形式上的限制,虽然本发明已以较佳实施例揭露如上,然而并非用以限定本发明,任何熟悉本专业的技术人员,在不脱离本发明技术方案范围内,当可利用上述揭示的技术内容作出些许更动或修饰为等同变化的等效实施例,但凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化与修饰,均仍属于本发明技术方案的范围内。