关键词:LPC2132微控制器 IRIG码 GPS时钟 数据采集
时间:2021-06-25 15:32:34 来源:单片机与嵌入式系统应用
“近年来,GPS(全球定位系统)得到了广泛的应用。GPS不仅提供定位信息,同时也提供高精度的时间信号。在地震观测系统中,数据采集装置对时间有着极高的要求,目前普遍采用的是GPS同步授时和本地时钟守时相结合的办法获取时间信息。
”来源:作者:朱祖扬,薛兵
近年来,GPS(全球定位系统)得到了广泛的应用。GPS不仅提供定位信息,同时也提供高精度的时间信号。在地震观测系统中,数据采集装置对时间有着极高的要求,目前普遍采用的是GPS同步授时和本地时钟守时相结合的办法获取时间信息。每台装置都有自己的GPS接收机用于同步授时。这意味着即使在一个几百米范围内的区域,由于每台装置所处的位置不同以及各接收机性能不可能完全一致,彼此之间的时间信息也仍然存在一定的误差。如果在小区域范围内,几台数据采集器同时采用一台GPS接收机同步授时,则可消除上述误差,时间统一和可靠性能得到进一步提高。IRIG码是国际通用的一种标准时间传输码。它不仅包含秒符号信息,而且包含绝对时间信息,已经广泛应用于时统装置与用户接收装置之间的接口标准,提高了发收端时间的一致性、可靠性。
1 IRIG码格式规范
IRIG(Inter Range Instrumentation Group)码,称为“美国靶场仪器组码”,把接收的GPS时间编码,传送给分布在不同地方的设备,以实现各设备之间的时钟同步。该码广泛应用于导弹、航天、遥测等时统设备中,实施精度高,稳定性强。
IRIG码包含100个码元,每个码元又有3种码型:二进制0、1和位置标识符。分成3字段编码:第1字段为年时间(天、时、分、秒),第2字段为控制功能函数字段,第3字段为直接用二进制秒符号表示的天时间。每24小时循环1次。
IRIG串行码主要有A、B、D、E、G、H六种时间格式,主要差别是时间编码精度、码元速率和二进制时间信息的位数不同。实际常用的是A和B码。A码时帧周期为0.1 s,B码时帧周期为1 s。
在本设计中采用了IRIGA串行时间码编码。IRIG码分为直流(DC)码和交流(AC)码。DC码和AC码码元周期均为1 ms。DC码用脉宽来表示码元,脉宽0.2 ms表示二进制0,脉宽0.5 ms表示二进制1,脉宽0.8 ms表示位置标识符或参考码元。AC码用周期为0.1 ms的高幅和低幅正弦波的个数来表示码元,参考码元或位置标示符用8个高幅和2个低幅表示,二进制1用5个高幅和5个低幅表示,二进制0用2个高幅和8个低幅表示。
2 IRIGA编码设计
LPC2132 微控制器有1个8路10位A/D转换器和1个10位D/A转换器、2个32位定时器/计数器(带4路捕获和4路比较通道)、PWM单元(6路输出)和看门狗、9个边沿或电平触发的外部中断引脚。片内晶体振荡电路支持频率为1“30 MHz。通过片内PLL可实现最高为60 MHz的微控制器操作频率。PLL的稳定时间为100 μs。
在本设计中使用LPC2132和LEA4H GPS接收机组成一个时统设备的发送端。GPS接收机通过UART口,每秒钟向微控制器发送1次数据,1PPS脉冲信号接入微控制器的外部中断EINT0。温度传感器TCN75采集周围的环境温度,并通过I2C总线把温度数据传送给微控制器。二阶低通滤波电路对D/A转换器输出的波形进行整形。微控制器维持一个本地时钟计数,产生毫秒、秒、分、时、天的时间,同时把时间信息按IRIGA码的格式编码。GPS时钟电路框图如图1所示。
图1 GPS时钟电路框图
微控制器根据1PPS信号不断检测本地晶振的频率,根据检测结果控制匹配寄存器的匹配值。微控制器内部32位定时计数器T0一直对本地晶振频率计数,捕获寄存器CR0在1PPS信号触发下装入当前的计数值;匹配寄存器MR0用于设置IRIG DC码波形的跳变沿和IRIG AC码采样点时刻,匹配寄存器MR1用于设置时间单元信号。软件编码设计框图如图2所示。
2.1 晶振频率测量
32位计数器T0一直连续计数。当1PPS信号到来时,产生中断,捕获寄存器CR0装入T0当前的计数值CT1并保存下矗坏毕乱桓?PPS信号到来时,CR0装入T0的计数值CT2,本地晶振频率为(CT2-CT1)或(CT1+232-CT2)。T0计数溢出时的情况。
2.2 时间信息生成
微控制器采用对本地时钟的计数来分别产生毫秒、秒、分、时、天的时间信息,并设置了毫秒、秒、分、时、天的软件计数器。匹配寄存器MR1根据晶振当前频率值设置毫秒时刻的匹配值。当匹配时,毫秒软件计数器值加1。毫秒计数器计0”1000 ms的时间,并在秒时刻清零;秒、分、时、天计数器主要完成秒、分、时、天的计时。由于GPS接收机1 s发1次数据信息,所以对本地时钟的同步精度是1 s,由于秒以下可能会产生误差,所以微控制器还需进行钟差测量,把本地时钟计时信息和GPS时间信息进行比较。两者之差大于1 s,直接修改本地时间信息。如果本地计时快,则把毫秒计数器计数节拍调慢一点,即MR1毫秒时刻的匹配值设置偏大;反之,则把节拍调快一点,直至误差最小化。
图2 软件编码设计框图
2.3 DC码编码输出
匹配寄存器MR0控制DC码波形的翻转。由于知道了32位计数器T0与1PPS的关系,因此可根据输出码元的脉宽确定跳变沿时刻的计数值。实际上,只要所提取的时间信息转换成为IRIGA的格式,就可以按式(1)确定1帧码元脉宽的跳变沿的计数值。为了使输出的码元及时、准确,可以提前向匹配寄存器写入下一个跳变沿的计数值,即在CTX值匹配时预置CTY值,如图3所示。TX时刻对应的计数值CTX:
式中TX单位为μs。
图3 IRIGA码产生的示意图
2.4 AC码编码输出
AC码的每个正弦波采样16个点,各相邻点之间的采样时间间隔相等,其中第1个点和第17个点采样时间间隔为1 ms。AC码用高低幅正弦波个数表示(高幅和低幅正弦波采样时间相同,相应时刻幅值是前者为后者的3倍),并把正弦波采样点存表。表1存放高幅正弦波数据,表2存放低幅正弦波数据。在内部存储器中,表1和表2的入口地址不同,局部地址完全相同,寻址时只要跳到相应的入口地址,后面的查表方式就完全一致。查表时刻由匹配寄存器控制,查表时把数据送入D/A转换器,如图4所示。在D/A转换器输出端,接隔直电容和低通滤波器整形输出,同时匹配寄存器的匹配值还须根据所测的频率不断调整。
图4 IRIG-A AC码产生示意图
软件设计流程如图5和图6所示。
图5 基准时间产生流程
图6 IRIG-A 直流和交流码产生程序流程
如果GPS失步,则1PPS信号将不能用于晶振频率的测量。晶体受温度频率特性及老化等各种因素的影响,会发生短期或长期的频率漂移。为了使输出的IRIGA码仍具有较高的准确度,解决的办法是在内部建立一张温度频率表,通过实时查表确定当前的晶振频率。在GPS同步时,微控制器利用1PPS信号不断调整计数值CT1、CT2, 同时利用温度传感器采集当前工作温度T,可按0.5°的温度步差列一张[T;CT2CT1]温度频率表。只要GPS同步,这张温度频率表就在不断更新,以确保该表是实时可用的;一旦GPS失步,微控制器查表,就可查得当前的频率值f,按式(1)确定TX时刻对应的计数值CTX和确定AC码的查表时刻,以保证IRIGA码输出的连贯性和高准确性。
结语
本设计实现了IRIGA DC码和AC码的编码输出,两种码可根据实际需要选择使用。DC码和AC码主要由软件完成。在编程过程中,微控制器不断检测本地晶振的频率。GPS同步时,用1PPS信号去计算频率值,所得频率值是十分准确的,同时按温度地址存表;GPS失步时,微控制器查温度频率表,同样也能得到具有一定准确度的频率值。根据本地晶振频率就可以准确控制IRIG码的输出。该设计的实际电路体积小、功耗低,在GPS同步时有很高的输出精度,可达μs量级,而在GPS失步时输出也有较高的精度;同时可以灵活选择使用DC码和AC码输出,具有较高的应用价值。
分享到:
猜你喜欢