趙陽剛 郭濤
摘 要: 隨著北斗衛(wèi)星導(dǎo)航系統(tǒng)的不斷完善,可以為用戶提供更高精度的導(dǎo)航與授時(shí)服務(wù),實(shí)時(shí)的信息采集存儲(chǔ)及狀態(tài)監(jiān)測(cè)成為急需解決的問題之一。設(shè)計(jì)一種基于BDS的數(shù)據(jù)采集存儲(chǔ)及狀態(tài)監(jiān)測(cè)系統(tǒng),選用FPGA作為核心處理器,并詳細(xì)介紹了實(shí)時(shí)采集存儲(chǔ)的設(shè)計(jì)與實(shí)現(xiàn)方案,同時(shí)通過串行通信技術(shù)將數(shù)據(jù)上傳到上位機(jī)中處理。試驗(yàn)結(jié)果表明,該系統(tǒng)具有穩(wěn)定性高、實(shí)時(shí)性強(qiáng)和易操作的性能,為導(dǎo)航定位服務(wù)中的信息采集監(jiān)測(cè)提供了一種方法,具有一定的工程應(yīng)用價(jià)值。
關(guān)鍵詞: 北斗導(dǎo)航; 信息采集; 信息存儲(chǔ); 串行通信; FPGA
中圖分類號(hào): TN919?34 文獻(xiàn)標(biāo)識(shí)碼: A 文章編號(hào): 1004?373X(2017)20?0087?04
Abstract: With the improvement of BeiDou Navigation Satellite System (BDS), it can provide users with more accurate navigation and timing services. Meanwhile, real?time information acquisition, storage and condition monitoring become the urgent problems to be resolved. Therefore, a data acquisition, storage and condition monitoring system based on BDS was designed, in which FPGA is selected as its core processor. The designed and implementation scheme of real?time acquisition and storage is elaborated. The serial communication technology is adopted to upload the data to the PC for processing. The experimental results show that the system has high stability, strong real?time performance and is easy to operate, which provides a method for information acquisition and monitoring in navigation and positioning services, and has a certain engineering application value.
Keywords: BeiDou navigation; information acquisition; information storage; serial communication; FPGA
0 引 言
隨著我國自行研制的全球衛(wèi)星定位與通信系統(tǒng)即北斗衛(wèi)星導(dǎo)航系統(tǒng)(BeiDou Navigation Satellite System,BDS)的快速發(fā)展。目前已經(jīng)具備在亞太地區(qū)內(nèi)全天候、全天時(shí)為各類用戶提供高精度,高可靠定位、導(dǎo)航、授時(shí)服務(wù)及短報(bào)文通信能力。相較于GPS導(dǎo)航系統(tǒng),北斗系統(tǒng)在特定的應(yīng)用領(lǐng)域有著不可替代的作用。目前,多數(shù)常規(guī)炮彈尚未采用制導(dǎo)控制,命中率較低,但若采用GPS提供導(dǎo)航服務(wù),在戰(zhàn)時(shí)會(huì)造成不可挽回的損失。為了提高武器的命中精度,通常需要利用組合導(dǎo)航對(duì)武器飛行過程中的導(dǎo)航參數(shù)進(jìn)行修正[1?2]。本文設(shè)計(jì)了基于BDS的數(shù)據(jù)采集存儲(chǔ)及狀態(tài)監(jiān)測(cè)系統(tǒng),可以實(shí)時(shí)記錄飛行過程中載體的位置和速度等參數(shù),同時(shí)可以將導(dǎo)航數(shù)據(jù)發(fā)到上位機(jī)中進(jìn)行處理。
1 系統(tǒng)設(shè)計(jì)方案和模塊設(shè)計(jì)
本系統(tǒng)為了實(shí)現(xiàn)在彈載實(shí)驗(yàn)前對(duì)BDS是否定位成功進(jìn)行在線監(jiān)測(cè),同時(shí)將整個(gè)彈載實(shí)驗(yàn)過程中的BDS導(dǎo)航定位參數(shù)進(jìn)行實(shí)時(shí)采集存儲(chǔ)。系統(tǒng)主要包括北斗衛(wèi)星接收機(jī)模塊、FPGA控制模塊、FLASH存儲(chǔ)模塊、串口通信模塊[3?4]。
系統(tǒng)總體設(shè)計(jì)框圖如圖1所示。
1.1 北斗衛(wèi)星接收機(jī)模塊
北斗衛(wèi)星接收機(jī)選擇HwaNavMod?2?001彈載高動(dòng)態(tài)衛(wèi)星導(dǎo)航接收機(jī),該接收機(jī)采用高階跟蹤環(huán)路專利技術(shù),實(shí)現(xiàn)在各種動(dòng)態(tài)下的穩(wěn)定跟蹤和精確定位,而且它還具有體積小、動(dòng)態(tài)性高、抗過載能力強(qiáng)及可靠性高的特點(diǎn)。接收機(jī)上電后,根據(jù)事先的硬件配置,可以輸出衛(wèi)星號(hào)、衛(wèi)星方位、可見星、鎖定星、工作狀態(tài)指示、時(shí)間、定位和測(cè)速等動(dòng)態(tài)參數(shù)。接收機(jī)的定位信息由兩路全雙工串行口輸出,設(shè)置數(shù)據(jù)的波特率為115 200 b/s,1個(gè)起始位,8個(gè)數(shù)據(jù)位,1個(gè)停止位,無奇偶校驗(yàn)。串口1用于定位系統(tǒng)工作狀態(tài)檢測(cè),同時(shí)用于加注星歷;串口2以二進(jìn)制格式輸出定位相關(guān)信息。接收機(jī)輸出接口與FPGA之間的連接電路示意圖如圖2所示。
1.2 FPGA控制FLASH存儲(chǔ)模塊
本系統(tǒng)選用XILINX公司的Spartan?Ⅱ系列中的XC2S30 FPGA 作為核心控制芯片,該款FPGA采用低內(nèi)核電壓,減小了芯片的功耗。另外,其內(nèi)部具有豐富的RAM空間,可以開辟成內(nèi)部的FIFO,對(duì)BDS傳輸?shù)臄?shù)據(jù)進(jìn)行緩存,保證數(shù)據(jù)的完整性。本設(shè)計(jì)選用三星公司的K9K8G08U0E型NAND FLASH作為存儲(chǔ)介質(zhì)。該芯片具有高可靠性、體積小、容量大和讀寫速度快等特點(diǎn),方便后續(xù)彈載試驗(yàn)過程中存儲(chǔ)各種動(dòng)態(tài)參量。該FLASH以頁為單位進(jìn)行讀寫操作,以塊為單位進(jìn)行擦除操作。其有8個(gè)通用I/O口,可以復(fù)用為地址線和數(shù)據(jù)線,從而減小芯片的體積,方便后續(xù)的升級(jí)更新[5?6]。FLASH存儲(chǔ)模塊的電路設(shè)計(jì)如圖3所示。
在彈載試驗(yàn)過程中,F(xiàn)PGA控制將BDS傳輸來的數(shù)據(jù)進(jìn)行采樣、編幀和存儲(chǔ)。試驗(yàn)數(shù)據(jù)的存儲(chǔ)對(duì)于事后優(yōu)化系統(tǒng)的性能,以及多傳感器的信息融合具有重要的作用。FPGA通過內(nèi)部VHDL硬件描述語言編寫的軟件編程,控制讀寫信號(hào)和不同的指令實(shí)現(xiàn)對(duì)FLASH的擦除和數(shù)據(jù)讀寫[7]。FPGA與FLASH接口電路的設(shè)計(jì)如圖4所示。
1.3 串口通信模塊
在彈載試驗(yàn)前,需要對(duì)系統(tǒng)內(nèi)部的BDS接收機(jī)狀態(tài)進(jìn)行監(jiān)測(cè),檢測(cè)接收機(jī)是否已經(jīng)搜星成功并能定位。為了實(shí)現(xiàn)系統(tǒng)與上位機(jī)之間的通信,采用MAX3232EUE電平轉(zhuǎn)換芯片,將TTL電平轉(zhuǎn)換成RS 232電平,實(shí)現(xiàn)系統(tǒng)與上位機(jī)之間的電平匹配[8]。FPGA控制將BDS的數(shù)據(jù)以115 200 b/s的波特率,按照1個(gè)起始位,8個(gè)數(shù)據(jù)位,1個(gè)停止位,發(fā)送到上位機(jī)中,對(duì)當(dāng)前BDS的狀態(tài)進(jìn)行監(jiān)測(cè)。串口電平轉(zhuǎn)換如圖5所示。
2 系統(tǒng)軟件設(shè)計(jì)
軟件設(shè)計(jì)是為了控制硬件電路實(shí)現(xiàn)其功能。本系統(tǒng)的軟件設(shè)計(jì)流程為上電后BDS接收機(jī)發(fā)送出來的數(shù)據(jù)經(jīng)過FPGA內(nèi)部進(jìn)行消抖處理后,進(jìn)行采集編幀,然后將采集的數(shù)據(jù)一邊存儲(chǔ)到彈載固態(tài)存儲(chǔ)器FLASH中,一邊將數(shù)據(jù)通過串口發(fā)送到上位機(jī)中進(jìn)行監(jiān)測(cè)。系統(tǒng)軟件總體設(shè)計(jì)圖如圖6所示。
2.1 數(shù)據(jù)消抖
數(shù)字電路中常由于高頻的噪聲的干擾會(huì)造成程序中狀態(tài)的誤判,因此需要對(duì)輸入的數(shù)字信號(hào)進(jìn)行消抖處理,確保程序?qū)π盘?hào)的判斷。消抖設(shè)計(jì)中采用高頻采樣監(jiān)測(cè)的原理,系統(tǒng)時(shí)鐘為20 MHz的高頻時(shí)鐘,而接收機(jī)以115 200 b/s的波特率進(jìn)行數(shù)據(jù)發(fā)送。用高頻的時(shí)鐘連續(xù)監(jiān)測(cè)信號(hào),當(dāng)多次判斷都為同一狀態(tài)時(shí),輸出該狀態(tài)。本設(shè)計(jì)采用8次連續(xù)監(jiān)測(cè)判斷消除信號(hào)的抖動(dòng)。數(shù)據(jù)消抖的流程圖如圖7所示。
2.2 數(shù)據(jù)緩存和存儲(chǔ)
FPGA在數(shù)據(jù)接收的過程中,為了防止接收數(shù)據(jù)速率過快和數(shù)據(jù)量過大造成的數(shù)據(jù)丟失和誤碼,因此在FPGA內(nèi)部開辟了FIFO緩存空間對(duì)數(shù)據(jù)進(jìn)行緩存。本文采用兩個(gè)并行寬度4位,深度1 KB的雙端口RAM構(gòu)成高速FIFO,進(jìn)而實(shí)現(xiàn)對(duì)BDS信號(hào)的采集存儲(chǔ),保證數(shù)據(jù)的完整性[9?10]。為了使采集的BDS數(shù)據(jù)能準(zhǔn)確地寫人FLASH中,而不會(huì)因在頁編程延時(shí)內(nèi)造成數(shù)據(jù)丟失,數(shù)據(jù)在FPGA內(nèi)部進(jìn)行編幀緩存后存儲(chǔ)到彈載固態(tài)存儲(chǔ)器FLASH中,為后續(xù)分析優(yōu)化提供原始數(shù)據(jù)。
FPGA通過復(fù)用FLASH的8個(gè)通用I/O口,實(shí)現(xiàn)對(duì)FLASH的讀寫操作。系統(tǒng)上電復(fù)位后,F(xiàn)PGA實(shí)現(xiàn)對(duì)FLASH的片選;當(dāng)R/B端口為低電平時(shí),F(xiàn)PGA通過寫時(shí)鐘將寫命令80H和地址寫入FLASH中,然后將采集編幀處理好的BDS數(shù)據(jù)按照事先設(shè)定的幀格式寫入,再寫入結(jié)束命令字10H,最后FLASH內(nèi)部寄存器進(jìn)入自動(dòng)頁編程將相應(yīng)數(shù)據(jù)寫入目標(biāo)地址中,同時(shí),R/B信號(hào)再次被拉成高電平[11]。FLASH頁編程時(shí)序圖如圖8所示,根據(jù)時(shí)序要求,F(xiàn)LASH內(nèi)部程序流程圖如圖9所示。
2.3 數(shù)據(jù)串口發(fā)送
在彈載試驗(yàn)前,需要對(duì)當(dāng)前BDS的狀態(tài)進(jìn)行監(jiān)測(cè),F(xiàn)PGA通過串行口將采集的BDS數(shù)據(jù)在上位機(jī)中進(jìn)行監(jiān)測(cè)。系統(tǒng)選用20 MHz有源晶振作為時(shí)鐘,串口數(shù)據(jù)發(fā)送以115 200 b/s的波特率傳輸。在FPGA內(nèi)部采用分頻程序生成匹配串口發(fā)送的波特率,然后按照1個(gè)開始位,8個(gè)數(shù)據(jù)位,1個(gè)停止位將數(shù)據(jù)發(fā)送到上位機(jī)中進(jìn)行監(jiān)測(cè)。串口通信的流程圖如圖10所示。
3 試驗(yàn)驗(yàn)證
為了驗(yàn)證系統(tǒng)可以完成對(duì)BDS定位信息的采集存儲(chǔ),以及實(shí)現(xiàn)對(duì)定位信息的串口發(fā)送和在線監(jiān)測(cè),利用實(shí)驗(yàn)室現(xiàn)有的儀器設(shè)備對(duì)系統(tǒng)進(jìn)行試驗(yàn)驗(yàn)證。首先,考慮到彈載環(huán)境高過載的特點(diǎn),選擇將BDS接收機(jī)和硬件電路一體式灌封到鋼結(jié)構(gòu)中,然后再對(duì)整個(gè)結(jié)構(gòu)進(jìn)行相應(yīng)的二次防護(hù)。利用SY10?100液壓沖擊試驗(yàn)臺(tái)驗(yàn)證高過載環(huán)境,該沖擊臺(tái)適用于電工電子產(chǎn)品及小型軍用設(shè)備作沖擊試驗(yàn),用來模擬系統(tǒng)在使用過程中所經(jīng)受的沖擊環(huán)境,評(píng)定系統(tǒng)性能的可靠性及結(jié)構(gòu)的完整性。該沖擊試驗(yàn)臺(tái)最大沖擊加速度可達(dá)70 000 g,沖擊持續(xù)時(shí)間0~1.5 ms。將系統(tǒng)用合適的工裝件安裝在沖擊試驗(yàn)臺(tái)上,沖擊試驗(yàn)臺(tái)如圖11所示,上電穩(wěn)定后,提升沖擊臺(tái)面450 mm,進(jìn)行一次沖擊試驗(yàn)。
系統(tǒng)上電沖擊后,標(biāo)準(zhǔn)傳感器反饋的沖擊信號(hào)圖如圖12所示,沖擊報(bào)告見表1。
系統(tǒng)沖擊過后,將系統(tǒng)放置在開闊的室外方便BDS搜星定位,用上位機(jī)對(duì)系統(tǒng)進(jìn)行在線監(jiān)測(cè)。數(shù)據(jù)的幀格式如表2所示。
BDS的定位信息通過串口發(fā)送到上位機(jī)中的部分原始數(shù)據(jù)顯示如圖13所示,根據(jù)顯示的原始數(shù)據(jù)和數(shù)據(jù)幀格式可知,幀頭EB 90并未錯(cuò)位,說明數(shù)據(jù)并未丟失;數(shù)據(jù)的第3個(gè)字節(jié)為十六進(jìn)制的24H,表示數(shù)據(jù)長度為36個(gè)字節(jié);數(shù)據(jù)的第4個(gè)字節(jié)為定位標(biāo)志位,02表示定位成功;數(shù)據(jù)的第5個(gè)字節(jié)為跟蹤星數(shù),05表示跟蹤到5顆星,第6~36個(gè)字節(jié)表示定位相關(guān)信息,如:加電時(shí)間、經(jīng)緯度、三維速度等。
經(jīng)過沖擊試驗(yàn)驗(yàn)證,系統(tǒng)可以承受彈載高過載的環(huán)境。事后,用數(shù)據(jù)回讀系統(tǒng)對(duì)彈載固態(tài)存儲(chǔ)中的數(shù)據(jù)回讀到上位機(jī)中處理后[12]。通過對(duì)比分析,固態(tài)存儲(chǔ)器中數(shù)據(jù)和上位機(jī)中顯示的數(shù)據(jù)完全一致,說明沖擊后系統(tǒng)仍然能夠正常工作,串口傳輸和彈載固態(tài)存儲(chǔ)器中的數(shù)據(jù)完整、正確。因此,所設(shè)計(jì)的基于BDS的數(shù)據(jù)采集存儲(chǔ)及狀態(tài)監(jiān)測(cè)系統(tǒng)完整可靠。
4 結(jié) 論
本文基于BDS提供的高精度定位信息,結(jié)合FPGA邏輯功能強(qiáng)和內(nèi)部資源豐富的優(yōu)點(diǎn),設(shè)計(jì)了BDS的數(shù)據(jù)采集存儲(chǔ)和狀態(tài)監(jiān)測(cè)的系統(tǒng)。詳細(xì)介紹了系統(tǒng)的軟件、硬件設(shè)計(jì),并對(duì)數(shù)據(jù)采集存儲(chǔ)及使用前的狀態(tài)監(jiān)測(cè)進(jìn)行了完整性試驗(yàn)。驗(yàn)證表明,該系統(tǒng)具有穩(wěn)定可靠、設(shè)計(jì)簡單,為采集存儲(chǔ)BDS數(shù)據(jù)在工程應(yīng)用方面提供了一種方法。
參考文獻(xiàn)
[1] 丁海飛,王紅亮,張會(huì)新,等.基于ADS8365的多路數(shù)據(jù)采集存儲(chǔ)系統(tǒng)設(shè)計(jì)[J].化工自動(dòng)化及儀表,2012,39(1):81?84.
[2] 馬明建.數(shù)據(jù)采集與分析計(jì)數(shù)[M].西安:西安交通大學(xué)出版社,2005.
[3] 崔海逢,宋茂忠.基于FPGA的GPS信號(hào)采集及網(wǎng)絡(luò)傳輸[J].江南大學(xué)學(xué)報(bào),2010,9(1):39?43.
[4] 于泓博,陶佰睿,于泓琦,等.基于北斗導(dǎo)航的車輛智能服務(wù)系統(tǒng)設(shè)計(jì)[J].齊齊哈爾大學(xué)學(xué)報(bào),2016,32(4):1?5.
[5] SAMSUNG. K9K8G08U0M datasheet [EB/OL]. [2005?05?03]. http://pdf1.alldatasheet.com/datasheet?pdf/view/104336/SAMSUNG/K9K8G08U0M.html.
[6] 王敏濤,張會(huì)新,秦麗,等.基于FPGA的模數(shù)混合采集存儲(chǔ)系統(tǒng)[J].火力與指揮控制,2011,36(5):146?148.
[7] 黃玉崗,李杰,秦麗,等.基于FPGA和ADS8568的彈載實(shí)時(shí)記錄系統(tǒng)設(shè)計(jì)[J].傳感技術(shù)學(xué)報(bào),2016,29(4):506?511.
[8] 翟偉,紀(jì)元法,孫希延,等.基于FPGA的高速數(shù)據(jù)串口采集系統(tǒng)設(shè)計(jì)[J].桂林電子科技大學(xué)學(xué)報(bào),2013,33(4):275?278.
[9] 于祥鳳,劉學(xué)斌,胡炳襟,等.基于FPGA的高速數(shù)據(jù)存儲(chǔ)系統(tǒng)中FIFO控制的設(shè)計(jì)[J].核電子學(xué)與探測(cè)技術(shù),2010,30(1):59?62.
[10] 王楠,韓焱,王鑒.基于FPGA的慣性數(shù)據(jù)采集與存儲(chǔ)系統(tǒng)設(shè)計(jì)[J].計(jì)算機(jī)測(cè)量與控制,2010,19(11):2871?2873.
[11] 胡陳君.彈載小型抗高過載微慣性測(cè)量系統(tǒng)設(shè)計(jì)[D].太原:中北大學(xué),2015.
[12] 郝曉明,李杰,胡陳君,等.基于FPGA 的彈載數(shù)據(jù)回讀系統(tǒng)設(shè)計(jì)[J].傳感技術(shù)學(xué)報(bào),2015,7(28):1023?1027.