1. 引言
在民用飞机飞行试验中,为了保证图像测试数据的准确可靠,机上图像测试系统中不同测试设备时间需要严格的统一。原子钟是一种非常稳定的时钟源,可以提供精确的时间信息用于时间同步。但是在机载环境下,安装空间狭小,安装位置受限,无法使用原子钟作为时钟源。
使用导航卫星对机载高速摄像机进行时间同步,可以满足图像测试系统对时间同步的精度要求。随着我国北斗二代卫星导航系统一期组网完成和接口控制文件的公布,北斗卫星导航系统开始向亚太大部分地区正式提供连续无源定位、导航、授时等服务,本文研究了使用北斗卫星导航系统对机载高速摄像机进行时间同步的技术,设计了基于北斗卫星系统的机载高速摄像机时间同步器。
2. 时间同步技术方案
目前绝大多数机载高速摄像机外部同步时间输入都支持IRIG-B码,时间同步器接收北斗卫星时间信息,将卫星发送的UTC时间编码转换为IRIG-B时间码需要的格式,并产生IRIG-B时间码的波形输出,IRIG-B时间码的起始位置必须和整秒的起始位置严格对齐。同步器内部逻辑框图如下图:
图1 时间同步器方案框图
UM220-T接收北斗二代卫星时间信息,将时间信息以NMEA-0183语句输出至STM32,STM32将解码UTC时间,将其编码为IRIG-B需要的时间信息,通过串行总线送入FPGA中,同时STM32通过SPI接口控制OLED显示屏,实时显示当前定位状态和时间信息。FPGA将接收的时间信息编码为IRIG-B(DC)码和IRIG-B(AC)码输出,由于FPGA输出的IRIG-B(AC)码实际上为IRIG-B(AC)码的数字信号,需要通过高速DA转换以及运放信号调理来实现将数字IRIG-B(AC)码转换成模拟信号用于机载高速摄像机时间同步。
2.1 UM220-T北斗卫星接收模块
UM220-T 模块是针对授时应用领域推出的北斗/GPS双系统精密授时产品,支持静态授时,单星授时,集成度高、功耗低,适合北斗授时领域的应用。采用先进的多路径抑制技术,以及优化的授时算法,提供精确的1PPS 输出。创新的多系统融合开放式架构,保证不同系统的可用卫星均可参与联合定位、授时,提高可靠性,保障长时间连续可靠的授时输出。支持单星授时功能,在仅有一颗可见卫星时,仍能保持精确、稳定的 1PPS 输出。
2.2 STM32微控制器
STM32系列32位微控制器使用来ARM公司设计的Cortex-M3内核,该内核是专门设计于满足集高性能、低功耗、实时应用的嵌入式领域的要求。Cortex-M3相比以往的微控制器在系统结构上进行了增强,使用的Thumb-2指令集带来了更高的指令效率和更强的性能;紧耦合的嵌套矢量中断控制器,对中断事件的响应比以往更迅速。
时间同步器设计方案中使用STM32完成接收UM220-T发送的时间信息,从中解码出当前UTC时间,将其转换为标准的IRIG-B时间后通过自定义串行输出口输出至FPGA,同时STM32还负责驱动OLED显示屏,实时的显示当前的定位状态和时间信息,方案设计中还增加了实时时钟芯片(RTC),以便于在收星条件不好时,为测试系统提供一个参考时间。
设计中使用的STM32F103RB具有扩展工业级的工作温度范围,可达72MHz的主频,可以实现在将UTC时间编码为IRIG-B时间的同时完成驱动OLED显示屏的功能。
2.3 FPGA芯片实现IRIG-B编码
当前绝大多数机载高速摄像机都支持使用IRIG-B进行时间同步,IRIG是美国靶场仪器组的简称。IRIG时间标准有两大类:一类是并行时间码格式,这类码由于是并行格式,传输距离较近,且是二进制,因此远不如串行格式广泛;另一类是串行时间码,共有六种格式,即A、B、D、E、G、H。它们的主要差别是时间码的帧速率不同,IRIG-B即为其中的B型码。B型码的时帧速率为1帧/S。
北斗时间同步器设计中使用FPGA直接数字频率合成技术实现时间信息的IRIG-B码型产生。直接数字频率合成(DDS)是一种全数字化的频率合成器,由相位累加器、波形ROM、D/A转换器和低通滤波器构成,它具有频率分辨率高、频率切换快、频率切换时相位连续等优点。
3 时间同步器设计
3.1 硬件电路设计
3.1.1 供电部分电路
同步器内部设计中UM220-T、STM32、RTC供电电压为3.3V,FPGA的IO供电电压为3.3V,FPGA内核以及PLL供电电压为1.2V,高速DA运放供电为±5V,机上电源提供28V供电,故需要将28V电压转换为各个部分需要的电压, 设计中采用北京新雷能科技有限公司生产的DPB16-24D5-5EB电源,它具有18~36V的宽范围输入电压,输出±5V。通过LM1085-3.3的LDO芯片,将5V电压降压得到3.3V电压。此芯片最大电流支持到3A。再通过AMS1117-1.2获取1.2V电压,由于1.2V电压是提供给FPGA内核的工作电压,以及FPGA内部PLL的工作电压,1.2V电压的纯净程度要求比较高,需采用钽电容滤波,设计中电源输入部分还加入了SS14二极管反接保护电路。
图2 电源供电部分设计电路
3.1.2 FPGA编码部分电路
FPGA使用EP2C5T144I8主要实现IRIG-B时间同步码的编码工作,STM32将解码到的时间信息编码成天、时、分、秒的8421码,在数据有效脉冲的使能下将数据送入FPGA,FPGA精确检测秒脉冲(PPS)的上升沿,在秒脉冲的上升沿开始时开始一整秒B码时间数据的发送。本设计FPGA将数据编码输出的数据为12位的并行数字信号,需要使用DA信号将并行的数字信号转换成模拟信号,本设计中我们选用美信公司的MAX7541,它具有0.6us的转换时间和12位的分辨率,MAX7541输出数据经运OPA690放信号调理和阻抗变换后产生标准的IRIG-B(AC)码。
IRIG-B(AC)码实际上是用IRIG-B(DC)码对标准正弦波载频进行幅度调制,标准正弦波载频的频率与码元速率严格相关,一般为码元速率的十倍。B码的标准正弦波载频频率为1KHz。同时,其正交过零点与所调制格式码元的前沿相符合,标准的调制比为10:3。
正弦波的产生是采用FPGA来产生的,利用Quartus自带的LMP模块来进行ROM建模,存储了256个点的SIN函数的波形值,首先计算256个SIN函数的值。由于点数比较多,我们利用MATLAB工具产生一个完整周期的SIN函数的256个点的值。由于FPGA处理整数相对简单因此需要对SIN函数值进行整数化。
3.1.3 STM32编解码显示电路
STM32解码UM220-T的输出的NMEA-0183语句,从中解算出当前的UTC时间,将其编码后送入FPGA,STM32通过I2C接口与RTC时钟芯片SD2400通信,提供当无法接收卫星时间时的参考时间输出。
OLED显示技术作为下一代显示,由于OLED显示屏为全固态器件,因此具有高低温范围宽,抗震特性好的特点。本设计中采用的并行接口驱动OLED显示,完成时间、定位状态的显示功能。STM32接口电路如下图所示:
图4 OLED显示驱动电路
3.2 软件程序设计
3.2.1 NMEA-0183解码
NMEA 0183 是美国国家海洋电子协会(National Marine Electronics Association)为海用电子设备制定的标准格式.目前业已成了 GPS 导航设备统一的 RTCM(Radio Technical Commission for Maritime services)标准协议。
NMEA-0183 常用命令如下表所示:
每条语句都有固定的格式,输出的各个参数之间使用逗号隔开。UM220-T北斗卫星接收模块也使用这些标准语句进行导航数据的输出。本设计主要用于时间同步,所以仅需要对数据中的时间信息解码,因此仅需要对GPRMC语句中的定位状态进行解码。
STM32F103RCT6先在内存中开辟两块缓冲区A和B, 使用中断模式接收到UM220-T发送的数据,当接收到$符号表示数据帧开始,接下来将数据存入在内存中开辟的数据缓冲区A中,当接收到回车换行符表示一条数据帧接收完成,置A区数据完成标志位,等待下一帧数据到来时采用同样的方式存入数据缓冲区B。
当主程序检测到缓冲区接收完成标志位置位时,从缓冲区中取出数据完成数据解码[6],解算出当前UTC时间,清空数据缓冲区和标志位,将时间信息编码成串行数据送入FPGA中,编码时需要注意闰年B码天数的处理,主程序实现的流程图如下图:
图5 NMEA-0183数据解码程序流程图
3.2.2 FPGA实现IRIG-B时间码
IRIG-B码是每秒一帧的时间串码,每个码元宽度为10ms,一个时帧周期包括100个码元,为脉宽编码。码元的“准时”参考点是其脉冲前沿,每一帧的参考标志由一个位置识别标志和相邻的参考码元组成,其宽度为8ms;每10个码元有一个位置识别标志:P1,P2,P3,…,P9,P0,它们均为8ms宽度;二进制"1"和"0"的脉宽为5ms和2ms。
使用Verilog语言进行编码逻辑的设计,首先根据STM32输出的时间,产生相应的IRIG-B(DC)码,再使用DC码调制正弦载波,产生AC码信号,运放调理电路实现对DA输出的信号低通滤波以及分配为多路的功能。
4 实验结果与应用
为了验证北斗时间同步器时间同步精度,课题组将北斗时间同步器输出的波形与中国科学院国家授时中心的标准时码发生器进行了对比实验,实验结果表明北斗时间同步器的同步精度很高,满足设计要求,对比实验结果如下图所示。
图6 与标准时码发生器时序对比
课题组将北斗时间同步器用于机载高速摄像机和模拟视频采集记录器进行时间同步,结果表明北斗时间同步器输出的IRIG-B(AC)码可以实现对机载高速摄像机的时间同步功能,同步时间精度优于10us。
5 结论
基于我国自主知识产权的北斗卫星导航系统,使用基于FPGA的数字频率合成技术,设计了北斗卫星时间同步器,用于对机载高速摄像机进行精确的时间同步,并将其应用于飞行试验中,为飞行试验高速摄像机时间同步提供了一种新的方式,具有广泛的应用前景。