基于BD/GPS的雙模船載導(dǎo)航系統(tǒng)設(shè)計
引言
北斗衛(wèi)星導(dǎo)航系統(tǒng)(BDS)是我國正在實施的自主建設(shè)、獨立運行的全球衛(wèi)星導(dǎo)航系統(tǒng)。有著集定位、授時、短報文通信及用戶檢測于一體的優(yōu)勢,然而目前北斗衛(wèi)星導(dǎo)航系統(tǒng)的實際應(yīng)用并不理想,用戶終端設(shè)備價格偏高且研發(fā)滯后,應(yīng)用規(guī)模不大。尤其在航海領(lǐng)域,許多與衛(wèi)星導(dǎo)航有關(guān)的先進(jìn)設(shè)備、先進(jìn)技術(shù)(如電子海圖導(dǎo)航系統(tǒng))暫不支持北斗衛(wèi)星導(dǎo)航服務(wù),目前船載衛(wèi)星導(dǎo)航系統(tǒng)中使用最普遍的仍是GPS系統(tǒng)。
本文利用現(xiàn)有的電子海圖導(dǎo)航系統(tǒng),在其基礎(chǔ)之上同時加載北斗及GPS導(dǎo)航定位信息,選用泰斗微電子科技有限公司推出的支持BD2/GPS的雙模授時定位模組實現(xiàn)北斗/GPS衛(wèi)星導(dǎo)航信息的接收,選用具有雙串口的一款單片機(jī)負(fù)責(zé)系統(tǒng)的控制、信息采集、傳輸,最終實現(xiàn)電子海圖導(dǎo)航系統(tǒng)與北斗衛(wèi)星導(dǎo)航系統(tǒng)的對接,對北斗衛(wèi)星在航海領(lǐng)域的民用推廣有一定意義。
1 總體結(jié)構(gòu)與功能
本系統(tǒng)將導(dǎo)航信息進(jìn)行解析轉(zhuǎn)換,通過串口傳遞給上位機(jī),最終在電子海圖顯示系統(tǒng)中顯示定位導(dǎo)航。按照功能要求,可將系統(tǒng)分為單片機(jī)控制模塊、BD/GPS雙模接收模塊、串口通信模塊、存儲系統(tǒng)、電源模塊等,如圖1所示。
2 硬件設(shè)計
2.1 北斗/GPS雙模接收模塊
TD3017芯片是北斗/GPS雙模接收模塊的核心,它是一款支持BD2 B1/GPS L1的雙模授時定位模組,內(nèi)部整合了雙?;鶐酒透咝阅芸膳渲玫碾p模雙通道射頻芯片,提供高精度、高靈敏度、低功耗、低成本的BD2/GPS雙模導(dǎo)航、授時服務(wù),且具備天線狀態(tài)檢測及天線短路保護(hù)功能,支持休眠工作模式,支持軟件升級等功能。
通常情況下,北斗/GPS雙模接收模塊通過外接BD2B1/GPS L1有源天線,可接收到北斗B1頻段(即1561.098±2.046 MHz)及GPS的L1頻段(即1575.42±1.023MHz)內(nèi)的衛(wèi)星導(dǎo)航信號。有源天線接收到高頻衛(wèi)星信號后,經(jīng)過TD3017A模組內(nèi)射頻芯片完成對信號的放大、變頻得到中頻模擬信號;再經(jīng)濾波、解調(diào)、A/D轉(zhuǎn)換等操作,實現(xiàn)微弱射頻信號到數(shù)字中頻信號的轉(zhuǎn)換;然后再通過TD3017A模組內(nèi)基帶芯片進(jìn)行捕獲和跟蹤、定位結(jié)算等一系列算法處理后,解譯出北斗以及GPS的導(dǎo)航電文;最后輸出NMEA格式的定位數(shù)據(jù)和1PPS授時信號。
模塊上電完成初始自檢后,自動接收來自天線的射頻信號,解析出導(dǎo)航電文,最后由串口輸出NMEA-0831數(shù)據(jù)。TD3017的串口引腳通過MA X232電平轉(zhuǎn)換芯片,可直接與上位機(jī)串口連接通信,也可以通過簡單的跳線連接與單片機(jī)系統(tǒng)進(jìn)行串口通信,硬件電路圖如圖2所示。
2.2 串口通信模塊
STC12C5A60S2單片機(jī)是一款低功耗、高性能、抗干擾能力強(qiáng)、價格低廉、操作簡單、實用性強(qiáng)的CMOS 8位微控制器,指令代碼完全兼容傳統(tǒng)8051,片上集成1280字節(jié)RAM,具有串口1(RxD/P3.0及TxD/P3.1和串口2(RxD2/P1.2,可通過寄存器設(shè)置到P4.2;TxD2/P1.3可通過寄存器設(shè)置到P4.3)雙串口。
單片機(jī)與上位機(jī)可通過電平轉(zhuǎn)換電路實現(xiàn)RS232格式通信;單片機(jī)與BD/GPS信號接收模塊間,可經(jīng)由MAX232進(jìn)行電平轉(zhuǎn)換實現(xiàn)RS232通信,也可以通過簡單的跳線鏈接進(jìn)行串口通信。
2.3 電源模塊
電源部分電路如圖3所示,其中AS1117—3.3是一款低壓差線性穩(wěn)壓器,它能提供完善的過流保護(hù)和過熱保護(hù)功能,確保芯片和電源系統(tǒng)的穩(wěn)定性。
3 系統(tǒng)程序設(shè)計
上位機(jī)的電子海圖系統(tǒng)選用OpenCPN,它是一個開源代碼的簡潔電子海圖導(dǎo)航軟件,支持GPS/GPDS定位信息輸入、BSB柵格圖表顯示、S57 Vector ENChart Display、AIS輸入解碼、Waypoint Autopilot Navigation等功能。單片機(jī)將從北斗/GPS信號接收模塊中接收到的BD2或GPS報文進(jìn)行解析、轉(zhuǎn)換后,得到NMEA標(biāo)準(zhǔn)格式的“$GPRMC”定位報文,通過串口傳遞給電子海圖加以顯示定位。整個程序可分為幾個部分,即主控程序、BD2/GPS定位解析程序、串口通信程序。
3.1 NMEA數(shù)據(jù)協(xié)議簡單介紹
TD3017模塊輸出的消息語句符合NMEA—0183通信標(biāo)準(zhǔn)格式,基本格式定義如下:
$
IDsss是語句類型標(biāo)識,它由兩部分組成:ID為語句標(biāo)識符,SSS為語句格式符。語句標(biāo)識符有BD、GP、GN、CC、P,分別代表BD2系統(tǒng)、GPS系統(tǒng)、GNSS系統(tǒng)、Computer Control語句、專用語句;而語句格式符分為輸入語句格式符(用于對TD3017模組進(jìn)行工作模式等的切換設(shè)置),以及輸出語句格式符(有GGA、GLL、GSA、GSV、RMC、TXT,除了TXT是段文本信息的傳送,用于輸出天線檢測狀態(tài)或者輸出一些控制命令的響應(yīng)以外,其余的與標(biāo)準(zhǔn)NMEA~0831協(xié)議一致)。
類型標(biāo)識符后為數(shù)據(jù)體,由若干數(shù)據(jù)字段(d1,d2,…,dn)組成;校驗和的計算是從$到*之間的所有字符;
$BDRMC,084300.00,A,2434.90608,N,11806.83229,E,0.067,,151014,,,A*77
本實驗中利用衛(wèi)星接收模塊接收到其中一條信息一$BDRMC為幀頭,表明該語句為北斗RNC格式定位信息;字段1(084300.00)為UTC時間,hhmmss.sss為時分秒格式,即UTC時間8時43分0秒(北京時間16時43分0秒);字段2(A)表示狀態(tài),A=定位,V=未定位;字段3(2434.90608)為緯度ddmm.mmmm,度分格式;字段4(N)表示N(北緯)或S(南緯);字段5(11805.83229)為經(jīng)度dddmm.mmmm,度分格式;字段6(E)表示E(東經(jīng))或W(西經(jīng));字段7(0.067)為速度,單位為節(jié),Knots;字段9(151014)為UTC日期,DDMMYY格式,即14年10月15日。
3.2 北斗定位模塊程序設(shè)計
北斗/GPS信號接收模塊上電后會自動不停地將接收到的數(shù)據(jù)通過串口發(fā)送出去,單片機(jī)系統(tǒng)由串口2接收這些數(shù)據(jù),因而,在串口初始化(串口1及串口2都要初始化)后,等待串口2接收終端標(biāo)志位置1,在串口2終端程序中,判斷串口2的接收緩沖寄存器S2BUF中的字符是否為“$”,若是則將其存入table[]數(shù)組中,并繼續(xù)將接下來接收到的字符逐個存入table[]數(shù)組中,直到接收滿63個字符,即一條NMEA信息中除“*”及回車換行以外的其他字符的總個數(shù)。暫時關(guān)閉串口2中斷,等待接下來的判斷,否則,重新判斷下一個接收到的字符是否為“$”。
回到主程序中判斷table[4]是否為“M”,若是則說明該條信息是一條RMC格式的信息,否則丟棄該條信息重新開始接收。接著判斷table[17]為“A”,若是則說明該條信息定位有效,否則丟棄該條信息重新開始接收。
將table[]數(shù)組中的數(shù)據(jù)前3位修改為“$GP”后,將該數(shù)組中數(shù)據(jù)逐個發(fā)送給串口1的發(fā)送緩沖寄存器SBUF,由串口1發(fā)送給上位機(jī)電子海圖系統(tǒng)。程序流程如圖4所示。
3.3 串口通信子程序
串口通信包含兩部分:串口2從北斗/GPS信號接收模塊中接收衛(wèi)星信號,再通過串口l將解析后的數(shù)據(jù)發(fā)送給上位機(jī)。源程序如下:
4 實驗結(jié)果
系統(tǒng)各模塊連接正確后,串口通信指示燈閃爍。圖5為上位機(jī)收到的北斗模塊直接輸出的ASCII信息,模塊默認(rèn)接收GNSS,即北斗與GPS混合定位信息,圖6為單片機(jī)傳遞給上位機(jī)的ASCII信息,圖7為電子海圖系統(tǒng)中顯示的定位信息。
結(jié)語
我國北斗導(dǎo)航系統(tǒng)起步較晚,尤其海上民用中許多與衛(wèi)星導(dǎo)航有關(guān)的先進(jìn)設(shè)備、先進(jìn)技術(shù)暫不提供北斗衛(wèi)星導(dǎo)航服務(wù)。本文利用簡單的單片機(jī)系統(tǒng)成功實現(xiàn)在現(xiàn)有電子海圖中顯示北斗衛(wèi)星的船舶導(dǎo)航定位信息,對積極推廣北斗衛(wèi)星導(dǎo)航系統(tǒng)在各種民用航海領(lǐng)域的應(yīng)用有著一定意義。在項目設(shè)計中,通過需求分析選用合適型號的單片機(jī)系統(tǒng),制定合理的軟、硬件功能劃分,實現(xiàn)了所需的功能。