【導(dǎo)讀】本文主要研究北斗衛(wèi)星導(dǎo)航系統(tǒng)對機(jī)載高速攝像機(jī)進(jìn)行的時間同步技術(shù),在此基礎(chǔ)上設(shè)計出基于北斗衛(wèi)星系統(tǒng)的記載高速攝像機(jī)時間同步器。本文將從硬件和軟件部分兩個模塊分別進(jìn)行闡述。
1、時間同步技術(shù)方案
目前絕大多數(shù)機(jī)載高速攝像機(jī)外部同步時間輸入都支持IRIG-B碼,時間同步器接收北斗衛(wèi)星時間信息,將衛(wèi)星發(fā)送的UTC時間編碼轉(zhuǎn)換為IRIG-B時間碼需要的格式,并產(chǎn)生IRIG-B時間碼的波形輸出,IRIG-B時間碼的起始位置必須和整秒的起始位置嚴(yán)格對齊。同步器內(nèi)部邏輯框圖如下圖:
圖1 時間同步器方案框圖
UM220-T接收北斗二代衛(wèi)星時間信息,將時間信息以NMEA-0183語句輸出至STM32,STM32將解碼UTC時間,將其編碼為IRIG-B需要的時間信息,通過串行總線送入FPGA中,同時STM32通過SPI接口控制OLED顯示屏,實時顯示當(dāng)前定位狀態(tài)和時間信息。FPGA將接收的時間信息編碼為IRIG-B(DC)碼和IRIG-B(AC)碼輸出,由于FPGA輸出的IRIG-B(AC)碼實際上為IRIG-B(AC)碼的數(shù)字信號,需要通過高速DA轉(zhuǎn)換以及運放信號調(diào)理來實現(xiàn)將數(shù)字IRIG-B(AC)碼轉(zhuǎn)換成模擬信號用于機(jī)載高速攝像機(jī)時間同步。
1.1 UM220-T北斗衛(wèi)星接收模塊
UM220-T 模塊是針對授時應(yīng)用領(lǐng)域推出的北斗/GPS雙系統(tǒng)精密授時產(chǎn)品,支持靜態(tài)授時,單星授時,集成度高、功耗低,適合北斗授時領(lǐng)域的應(yīng)用。采用先進(jìn)的多路徑抑制技術(shù),以及優(yōu)化的授時算法,提供精確的1PPS 輸出。創(chuàng)新的多系統(tǒng)融合開放式架構(gòu),保證不同系統(tǒng)的可用衛(wèi)星均可參與聯(lián)合定位、授時,提高可靠性,保障長時間連續(xù)可靠的授時輸出。支持單星授時功能,在僅有一顆可見衛(wèi)星時,仍能保持精確、穩(wěn)定的 1PPS 輸出。
1.2 STM32微控制器
STM32系列32位微控制器使用來ARM公司設(shè)計的Cortex-M3內(nèi)核,該內(nèi)核是專門設(shè)計于滿足集高性能、低功耗、實時應(yīng)用的嵌入式領(lǐng)域的要求。Cortex-M3相比以往的微控制器在系統(tǒng)結(jié)構(gòu)上進(jìn)行了增強,使用的Thumb-2指令集帶來了更高的指令效率和更強的性能;緊耦合的嵌套矢量中斷控制器,對中斷事件的響應(yīng)比以往更迅速。
時間同步器設(shè)計方案中使用STM32完成接收UM220-T發(fā)送的時間信息,從中解碼出當(dāng)前UTC時間,將其轉(zhuǎn)換為標(biāo)準(zhǔn)的IRIG-B時間后通過自定義串行輸出口輸出至FPGA,同時STM32還負(fù)責(zé)驅(qū)動OLED顯示屏,實時的顯示當(dāng)前的定位狀態(tài)和時間信息,方案設(shè)計中還增加了實時時鐘芯片(RTC),以便于在收星條件不好時,為測試系統(tǒng)提供一個參考時間。
設(shè)計中使用的STM32F103RB具有擴(kuò)展工業(yè)級的工作溫度范圍,可達(dá)72MHz的主頻,可以實現(xiàn)在將UTC時間編碼為IRIG-B時間的同時完成驅(qū)動OLED顯示屏的功能。
1.3 FPGA芯片實現(xiàn)IRIG-B編碼
當(dāng)前絕大多數(shù)機(jī)載高速攝像機(jī)都支持使用IRIG-B進(jìn)行時間同步,IRIG是美國靶場儀器組的簡稱。IRIG時間標(biāo)準(zhǔn)有兩大類:一類是并行時間碼格式,這類碼由于是并行格式,傳輸距離較近,且是二進(jìn)制,因此遠(yuǎn)不如串行格式廣泛;另一類是串行時間碼,共有六種格式,即A、B、D、E、G、H。它們的主要差別是時間碼的幀速率不同,IRIG-B即為其中的B型碼。B型碼的時幀速率為1幀/S。
北斗時間同步器設(shè)計中使用FPGA直接數(shù)字頻率合成技術(shù)實現(xiàn)時間信息的IRIG-B碼型產(chǎn)生。直接數(shù)字頻率合成(DDS)是一種全數(shù)字化的頻率合成器,由相位累加器、波形ROM、D/A轉(zhuǎn)換器和低通濾波器構(gòu)成,它具有頻率分辨率高、頻率切換快、頻率切換時相位連續(xù)等優(yōu)點。
[page]
2 時間同步器設(shè)計
2.1 硬件電路設(shè)計
2.1.1 供電部分電路
同步器內(nèi)部設(shè)計中UM220-T、STM32、RTC供電電壓為3.3V,F(xiàn)PGA的IO供電電壓為3.3V,F(xiàn)PGA內(nèi)核以及PLL供電電壓為1.2V,高速DA運放供電為±5V,機(jī)上電源提供28V供電,故需要將28V電壓轉(zhuǎn)換為各個部分需要的電壓, 設(shè)計中采用北京新雷能科技有限公司生產(chǎn)的DPB16-24D5-5EB電源,它具有18~36V的寬范圍輸入電壓,輸出±5V。通過LM1085-3.3的LDO芯片,將5V電壓降壓得到3.3V電壓。此芯片最大電流支持到3A。再通過AMS1117-1.2獲取1.2V電壓,由于1.2V電壓是提供給FPGA內(nèi)核的工作電壓,以及FPGA內(nèi)部PLL的工作電壓,1.2V電壓的純凈程度要求比較高,需采用鉭電容濾波,設(shè)計中電源輸入部分還加入了SS14二極管反接保護(hù)電路。
圖2 電源供電部分設(shè)計電路
2.1.2 FPGA編碼部分電路
FPGA使用EP2C5T144I8主要實現(xiàn)IRIG-B時間同步碼的編碼工作,STM32將解碼到的時間信息編碼成天、時、分、秒的8421碼,在數(shù)據(jù)有效脈沖的使能下將數(shù)據(jù)送入FPGA,F(xiàn)PGA精確檢測秒脈沖(PPS)的上升沿,在秒脈沖的上升沿開始時開始一整秒B碼時間數(shù)據(jù)的發(fā)送。本設(shè)計FPGA將數(shù)據(jù)編碼輸出的數(shù)據(jù)為12位的并行數(shù)字信號,需要使用DA信號將并行的數(shù)字信號轉(zhuǎn)換成模擬信號,本設(shè)計中我們選用美信公司的MAX7541,它具有0.6us的轉(zhuǎn)換時間和12位的分辨率,MAX7541輸出數(shù)據(jù)經(jīng)運OPA690放信號調(diào)理和阻抗變換后產(chǎn)生標(biāo)準(zhǔn)的IRIG-B(AC)碼。
IRIG-B(AC)碼實際上是用IRIG-B(DC)碼對標(biāo)準(zhǔn)正弦波載頻進(jìn)行幅度調(diào)制,標(biāo)準(zhǔn)正弦波載頻的頻率與碼元速率嚴(yán)格相關(guān),一般為碼元速率的十倍。B碼的標(biāo)準(zhǔn)正弦波載頻頻率為1KHz。同時,其正交過零點與所調(diào)制格式碼元的前沿相符合,標(biāo)準(zhǔn)的調(diào)制比為10:3。
正弦波的產(chǎn)生是采用FPGA來產(chǎn)生的,利用Quartus自帶的LMP模塊來進(jìn)行ROM建模,存儲了256個點的SIN函數(shù)的波形值,首先計算256個SIN函數(shù)的值。由于點數(shù)比較多,我們利用MATLAB工具產(chǎn)生一個完整周期的SIN函數(shù)的256個點的值。由于FPGA處理整數(shù)相對簡單因此需要對SIN函數(shù)值進(jìn)行整數(shù)化。
2.1.3 STM32編解碼顯示電路
STM32解碼UM220-T的輸出的NMEA-0183語句,從中解算出當(dāng)前的UTC時間,將其編碼后送入FPGA,STM32通過I2C接口與RTC時鐘芯片SD2400通信,提供當(dāng)無法接收衛(wèi)星時間時的參考時間輸出。
OLED顯示技術(shù)作為下一代顯示,由于OLED顯示屏為全固態(tài)器件,因此具有高低溫范圍寬,抗震特性好的特點。本設(shè)計中采用的并行接口驅(qū)動OLED顯示,完成時間、定位狀態(tài)的顯示功能。STM32接口電路如下圖所示:
圖3 OLED顯示驅(qū)動電路
[page] 2.2 軟件程序設(shè)計
2.2.1 NMEA-0183解碼
NMEA 0183 是美國國家海洋電子協(xié)會(National Marine Electronics Association)為海用電子設(shè)備制定的標(biāo)準(zhǔn)格式.目前業(yè)已成了 GPS 導(dǎo)航設(shè)備統(tǒng)一的 RTCM(Radio Technical Commission for Maritime services)標(biāo)準(zhǔn)協(xié)議。
NMEA-0183 常用命令如下表所示:
STM32F103RCT6先在內(nèi)存中開辟兩塊緩沖區(qū)A和B, 使用中斷模式接收到UM220-T發(fā)送的數(shù)據(jù),當(dāng)接收到$符號表示數(shù)據(jù)幀開始,接下來將數(shù)據(jù)存入在內(nèi)存中開辟的數(shù)據(jù)緩沖區(qū)A中,當(dāng)接收到回車換行符表示一條數(shù)據(jù)幀接收完成,置A區(qū)數(shù)據(jù)完成標(biāo)志位,等待下一幀數(shù)據(jù)到來時采用同樣的方式存入數(shù)據(jù)緩沖區(qū)B。
當(dāng)主程序檢測到緩沖區(qū)接收完成標(biāo)志位置位時,從緩沖區(qū)中取出數(shù)據(jù)完成數(shù)據(jù)解碼[6],解算出當(dāng)前UTC時間,清空數(shù)據(jù)緩沖區(qū)和標(biāo)志位,將時間信息編碼成串行數(shù)據(jù)送入FPGA中,編碼時需要注意閏年B碼天數(shù)的處理,主程序?qū)崿F(xiàn)的流程圖如下圖:
圖4 NMEA-0183數(shù)據(jù)解碼程序流程圖
2.2.2 FPGA實現(xiàn)IRIG-B時間碼
IRIG-B碼是每秒一幀的時間串碼,每個碼元寬度為10ms,一個時幀周期包括100個碼元,為脈寬編碼。碼元的“準(zhǔn)時”參考點是其脈沖前沿,每一幀的參考標(biāo)志由一個位置識別標(biāo)志和相鄰的參考碼元組成,其寬度為8ms;每10個碼元有一個位置識別標(biāo)志:P1,P2,P3,…,P9,P0,它們均為8ms寬度;二進(jìn)制"1"和"0"的脈寬為5ms和2ms。
使用Verilog語言進(jìn)行編碼邏輯的設(shè)計,首先根據(jù)STM32輸出的時間,產(chǎn)生相應(yīng)的IRIG-B(DC)碼,再使用DC碼調(diào)制正弦載波,產(chǎn)生AC碼信號,運放調(diào)理電路實現(xiàn)對DA輸出的信號低通濾波以及分配為多路的功能。
3 實驗結(jié)果與應(yīng)用
為了驗證北斗時間同步器時間同步精度,課題組將北斗時間同步器輸出的波形與中國科學(xué)院國家授時中心的標(biāo)準(zhǔn)時碼發(fā)生器進(jìn)行了對比實驗,實驗結(jié)果表明北斗時間同步器的同步精度很高,滿足設(shè)計要求,對比實驗結(jié)果如下圖所示。
圖5 與標(biāo)準(zhǔn)時碼發(fā)生器時序?qū)Ρ?/div>
課題組將北斗時間同步器用于機(jī)載高速攝像機(jī)和模擬視頻采集記錄器進(jìn)行時間同步,結(jié)果表明北斗時間同步器輸出的IRIG-B(AC)碼可以實現(xiàn)對機(jī)載高速攝像機(jī)的時間同步功能,同步時間精度優(yōu)于10us。
結(jié)語
基于我國自主知識產(chǎn)權(quán)的北斗衛(wèi)星導(dǎo)航系統(tǒng),使用基于FPGA的數(shù)字頻率合成技術(shù),設(shè)計了北斗衛(wèi)星時間同步器,用于對機(jī)載高速攝像機(jī)進(jìn)行精確的時間同步,并將其應(yīng)用于飛行試驗中,為飛行試驗高速攝像機(jī)時間同步提供了一種新的方式,具有廣泛的應(yīng)用前景。
相關(guān)閱讀:
通信網(wǎng)中的時間同步問題分析
航天通信領(lǐng)域的主宰:直升機(jī)衛(wèi)星通信系統(tǒng)的技術(shù)
國防最前沿:電磁環(huán)境自動測試,衛(wèi)星地球站接招吧!
課題組將北斗時間同步器用于機(jī)載高速攝像機(jī)和模擬視頻采集記錄器進(jìn)行時間同步,結(jié)果表明北斗時間同步器輸出的IRIG-B(AC)碼可以實現(xiàn)對機(jī)載高速攝像機(jī)的時間同步功能,同步時間精度優(yōu)于10us。
結(jié)語
基于我國自主知識產(chǎn)權(quán)的北斗衛(wèi)星導(dǎo)航系統(tǒng),使用基于FPGA的數(shù)字頻率合成技術(shù),設(shè)計了北斗衛(wèi)星時間同步器,用于對機(jī)載高速攝像機(jī)進(jìn)行精確的時間同步,并將其應(yīng)用于飛行試驗中,為飛行試驗高速攝像機(jī)時間同步提供了一種新的方式,具有廣泛的應(yīng)用前景。
相關(guān)閱讀:
通信網(wǎng)中的時間同步問題分析
航天通信領(lǐng)域的主宰:直升機(jī)衛(wèi)星通信系統(tǒng)的技術(shù)
國防最前沿:電磁環(huán)境自動測試,衛(wèi)星地球站接招吧!