APP下载

基于单片机的秒脉冲误差测量系统设计*

2010-04-26冉建华

舰船电子工程 2010年4期
关键词:计数器中断脉冲

梁 军 冉建华

(中国船舶重工集团公司第七二二研究所 武汉 430079)

1 引言

在作为当代科学技术和军事技术的标志之一的航天和导弹试验中,为了实现对飞行器的测量(测量其位置、速度、加速度和飞行姿态)和控制(控制其飞行状态),最早提出了现代时间统一系统的概念和要求。时间统一系统为国防科研试验提供标准时间和频率信号,以实现整个试验系统时间和频率的统一[1]。

时间和频率的统一通过授时来实现。如图1,时间统一系统将标准时间通过无线或有线的方式传递给科研试验系统中各个分设备,分设备在获取标准时间后进行守时并输出秒脉冲(1PPS)。通常秒脉冲的频率是1Hz、脉宽可调、脉冲的上升/下降沿与秒同步,精度可达到微秒级甚至更高。秒脉冲用于有线方式的逐级时间传递并与时间用户接口,同时也是考核时间精度指标的重点测试对象。

图1 时间统一系统授时示意图

在完成授时工作后,检验系统中各分设备的时间和频率的统一性是必须的。通常使用数字示波器来测量各分设备输出的秒脉冲的误差,在实际工作中存在一些不便之处,例如携带不方便、现场取电困难、不能实时完整记录测量结果、读取测量结果不够直观方便等。为此,本文提出了一种基于单片机的秒脉冲误差测量系统构建方案,对秒脉冲误差进行实时自动测量、采集、存储和后续数据分析。

2 测量对象

在时间统一系统完成对系统中各设备的授时工作后,系统中各设备在获取的标准时间上进行守时并输出秒脉冲A,这里假定秒脉冲A下降沿与秒同步。

为了测量秒脉冲A的误差,需要获得一个标准秒脉冲B与之进行对比。前面所述的时间统一系统输出的秒脉冲认为是标准的秒脉冲,但在实际试验系统中分设备分布广泛,以此为标准秒脉冲不方便测量,需要另外寻找便携式的标准秒脉冲。实际应用中选用GARMIN公司的GPS接收机GPS25LVS产生的秒脉冲作为标准秒脉冲B,它可以提供精度为±1ms的秒脉冲且脉宽可调,上升沿与GPS秒同步。测量对象示意图如图2所示。

图2 测量对象示意图

综上所述,测量对象就是在同一秒内,秒脉冲A的下降沿与秒脉冲 B的上升沿之间的时间间隔T0,T0越小说明秒脉冲A的误差越小。同时需要注意在实际情况中,在同一秒内秒脉冲A相对标准秒脉冲B有超前和滞后两种可能,实际测量中也应给出明确的结果。

3 测量原理

使用单片机的内置计时器对被测秒脉冲A和标准秒脉冲B的到达时间间隔进行计时,当某个脉冲到达时启动计时,另一个脉冲到达时停止计时,忽略对计时器进行启动和停止等操作所带来的误差,则计时器停止后的时间值即为秒脉冲误差。通过判断在同一秒内两个秒脉冲引起单片机中断的先后顺序,可以明确被测秒脉冲相对标准秒脉冲是超前还是滞后。

AT89C2051单片机有两个外部中断源INT0、INT1,触发方式有低电平触发和负跳变触发两种方式,在测量过程中选负跳变触发方式;内含一个16位的计数寄存器,最大的计数量程为65536。晶振频率选用22.1184MHz。

AT 89C2051单片机中每个机器周期内部包含12个时钟振荡器周期,单片机指令的执行时间以机器周期为单位,不难得出单周期指令的执行时间t[2]:

当单片机中定时/计数器模块工作在定时器模式,计数寄存器的脉冲信号取自内部机器周期,即晶振经过12分频后获得一个脉冲源提供给单片机的定时器用,每输入一个脉冲信号,计数寄存器加1一次。这样,计数寄存器每加1一次所需的时间就是式(1)中的t。

该方法的核心思想是让两个秒脉冲的下降沿分别触发单片机的两个外部中断(由于秒脉冲B的上升沿与秒同步,需要将秒脉冲B接一个反相器,这样秒脉冲B原来的上升沿就可以触发单片机的外部中断),先触发中断的秒脉冲开启单片机的计数器,后触发中断的秒脉冲关闭计数器,得到计数器的读数n1及计数器的溢出次数n2,计算出总的计数值N:

根据得到的计数值N,可以计算出引起单片机两次中断的时间间隔T1:

根据此方法计算出来的T1可以近似认为是T0,后面将对T1进行必要的修正,使得 T1更接近于 T0。

4 测量系统设计

根据前面介绍的测量方法,构建了一个秒脉冲误差测量系统,组成框图如图3所示。

图3 测量系统组成框图

需要测量的是秒脉冲A的下降沿与秒脉冲B的上升沿之间的时间间隔T0,式(3)计算的时间间隔T1相对T0遗漏了部分时间:触发单片机中断后进入中断服务程序的时间、计数器清零的时间、打开计数器的时间等。在实际测量中,需要对式(3)中的N进行必要的修正,即:

单片机计算出计数器的读数n1和计数器的溢出次数n2后,将n1和n2通过单片机的串口输入PC机的串口,由上位机软件来计算T0并显示,通过多次测量,将测量结果与示波器测量结果进行比较,可以确定参数C1和C2。

5 软件设计

软件设计部分包括51单片机的软件设计和上位机软件设计。

5.1 单片机软件设计

51单片机软件的功能主要是计算并输出单片机计数器的读数n1、计数器的溢出次数n2及先引起单片机外部中断的秒脉冲的特征码(用来判断被测秒脉冲B相对标准秒脉冲A是超前还是滞后),为了保证两个秒脉冲的误差测量结果是在同一秒内进行的,由上位机软件获取两个秒脉冲的时码然后根据需要将单片机重启,51单片机程序流程图如图4所示[5]。

图4 单片机程序流程图

5.2 上位机软件设计[3~4]

上位机软件主要实现:监控GPS25LVS模块和被测设备的时码信息,当收到同一秒的时码后自动将单片机重启,保证测量系统的秒脉冲误差测量值是在同一秒内进行的;监控、解析、显示和存储单片机串口传来的测量结果数据。限于篇幅,这里不做进一步的展开。

6 精度检验

6.1 检验方法

从图3可知,将标准秒脉冲B经反相后接入单片机的INT0,同时将标准秒脉冲B不经反相器(图3中的开关K1合上)接入单片机的INT1,测量结果将是标准秒脉冲B的脉宽,图5中给出的被测秒脉冲滞后值即为秒脉冲B的脉宽。标准秒脉冲的脉宽从20~980ms可调(用GPS配置软件进行设置,步长20ms),用Tektronix DPO 4054示波器观察并测量标准秒脉冲的脉宽,同时用基于单片机的秒脉冲误差精确测量方法对标准脉冲的脉宽进行测量,以示波器的测量结果为标准值对用单片机测量的结果进行考核。

6.2 检验结果

用GPS配置软件设置GPS秒脉冲的不同脉宽,然后用示波器和单片机分别进行多次测量,部分测量结果见表1,单片机测量结果(只给出了对脉宽为20ms和980ms的秒脉冲的测量结果)如图5所示。

表1 测量结果

通过上位机软件可以直观看到被测秒脉冲每秒的误差测量值。秒脉冲的误差最大不应超过1s,该测量系统设定最大测量值小于1s,如果实际误差大于等于1秒则给出错误提示,其最小测量值为15ms,量程范围内最大测量误差为0.54μ s,该测量系统得到中船重工集团公司第七二二研究所计量检测中心的检定和认可。

图5 单片机测量结果

7 结语

本测量系统在外场试验中携带方便,使用简便。该测量系统给出的超前和滞后是相对的,但如果要得到绝对值,需要结合设备输出的时码进行判别。如果提高单片机计时器的输入频率和单片机处理速度等,测量精度可以更高,最小测量值可以更小。若需进一步集成化和小型化,还可以考虑将便携机的供电和显示功能用电池和液晶显示模块代替。

[1]中国人民解放军总装备部军事训练教材编辑工作委员会.时间统一技术[M].北京:国防工业出版社,2004:1~4

[2]李学海.标准80C51单片机基础教程-原理篇[M].北京:北京航空航天大学出版社,2006:57~60

[3]熊志昂,李红瑞,赖顺香.GPS技术与工程应用[M].北京:国防工业出版社,2005:1~20

[4]宋崇汶,孙向前,谢毅.利用GPS对计算机实现精确授时[J].计算机测量与控制,2002,10(7):477

[5]戴佳,戴卫恒.51单片机C语言应用程序设计实例精讲[M].北京:电子工业出版社,2007:350~361

猜你喜欢

计数器中断脉冲
采用虚拟计数器的电子式膜式燃气表
脉冲工况氧气缓冲罐裂纹修复实践
五十一进制计数器的设计与仿真实现
“单片机中断概述”微课教学设计
一种考虑GPS信号中断的导航滤波算法
Linux中断线程化分析及中断延时测试
跟踪导练(二)(5)
超音频复合脉冲GMAW电源设计
SR620型与53230A型计数器的性能测试
算盘是个“小气鬼”