一種數(shù)據(jù)采集及解碼器的設(shè)計(jì)與實(shí)現(xiàn)
出處:胡 輝,葉鑫華 發(fā)布于:2011-07-20 09:20:42
GPS 是英文Global Positioning System(定位系統(tǒng))的簡(jiǎn)稱,而其中文簡(jiǎn)稱為“球位系”。GPS是20世紀(jì)70年代由美國(guó)陸??杖娐?lián)合研制的新一代空間衛(wèi)星導(dǎo)航定位系統(tǒng) 。其主要目的是為陸、海、空三大領(lǐng)域提供實(shí)時(shí)、 全天候和性的導(dǎo)航服務(wù),并用于情報(bào)收集、核爆監(jiān)測(cè)和應(yīng)急通訊等一些軍事目的,是美國(guó)獨(dú)霸戰(zhàn)略的重要組成。經(jīng)過(guò)20余年的研究實(shí)驗(yàn),耗資300億美元,到1994年3月,覆蓋率高達(dá)98%的24顆GPS衛(wèi)星星座己布設(shè)完成。在機(jī)械領(lǐng)域GPS則有另外一種含義:產(chǎn)品幾何技術(shù)規(guī)范(Geometrical Product Specifications)-簡(jiǎn)稱GPS。
本文基于X60 RTK接收機(jī),采用VC開發(fā)環(huán)境,開發(fā)了RTCM解碼軟件,為下一步進(jìn)行高差分定位解算算法研究和DGPS接收機(jī)研制工作提供基礎(chǔ)。
1 RTCM SC-104導(dǎo)航電文簡(jiǎn)介
RTCM SC-104是商用DGPS接收機(jī)的通用數(shù)據(jù)格式,該格式與ICD-GPS-200規(guī)定的GPS導(dǎo)航電文的字格式、奇偶校驗(yàn)規(guī)則相同,不同在于GPS電文中各子幀長(zhǎng)度是固定的,而RTCM SC-104電文長(zhǎng)度是可變的。RTCM電文結(jié)構(gòu)包括2個(gè)字頭,后接n個(gè)數(shù)據(jù)字,每字長(zhǎng)為30 bit,RTCM SC-104共包括21類63種電文。
1.1電文1
電文1是RTCM電文中基本的電文,向用戶提供偽距改正數(shù)及其變化率,其內(nèi)容格式如表1所示。

其中,S為比例因子,是標(biāo)識(shí)偽距改正數(shù)PRC和偽距改正數(shù)變化率RRC的比例尺度;U表示用戶測(cè)距誤差,有4種編碼,每種編碼代表不同的用戶測(cè)距誤差;衛(wèi)星ID 號(hào)指衛(wèi)星的編號(hào);PRC指?jìng)尉喔恼龜?shù);RRC指?jìng)尉喔恼龜?shù)變化率,都是用來(lái)修正誤差的。
IOD是改正數(shù)的數(shù)據(jù)齡期,與GPS中IOD意義相同。如果不相同,則不能直接使用該組改正數(shù),因此IOD是保證差分定位的關(guān)鍵,以確保用戶使用的導(dǎo)航電文與基準(zhǔn)站使用的導(dǎo)航電文相同。
1.2 電文2
電文2的格式和電文1完全相同, 包含了衛(wèi)星導(dǎo)航參數(shù)的變化所導(dǎo)致的偽距變率及偽距變率的改變量。如果用戶站未能解譯出新的星歷,而此時(shí)基準(zhǔn)站已采用了新的星歷,則兩站所用的星歷不一樣,此時(shí)基準(zhǔn)站必須同時(shí)播發(fā)電文1和電文 2,防止定位結(jié)果產(chǎn)生較大誤差。
1.3 電文3
電文3是GPS參考站參數(shù),用于發(fā)送基準(zhǔn)站在 WGS-84 坐標(biāo)系中的坐標(biāo)信息 ,各占32 bit,給定的坐標(biāo)至少到cm級(jí)。該項(xiàng)電文由 32×3/ 24 = 4 個(gè)字組成, 按順序發(fā)送基準(zhǔn)站坐標(biāo)的3個(gè)參數(shù),每個(gè)字6位是奇偶校驗(yàn)位。
2 RTCM電文解碼方案設(shè)計(jì)
2.1 VC++平臺(tái)簡(jiǎn)介
本軟件主要基于VC++平臺(tái)實(shí)現(xiàn),電文的接收用到了VC++中的MSCOMM控件。MSCOMM件提供了一系列標(biāo)準(zhǔn)通信命令的接口,它允許建立串口連接,可以連接到其他通信設(shè)備(如Modem)。還可以發(fā)送命令、進(jìn)行數(shù)據(jù)交換以及監(jiān)視和響應(yīng)在通信過(guò)程中可能發(fā)生的各種錯(cuò)誤和事件,從而可以用它創(chuàng)建全雙工 、事件驅(qū)動(dòng)的、高效實(shí)用的通信程序。但在實(shí)際通信軟件設(shè)計(jì)過(guò)程中,MSComm控件并非像想像中那樣完美和容易控制。特別是在中文Wln 95/98下通信時(shí)更會(huì)出現(xiàn)問(wèn)題。MSCOMM控件提供了2種處理通信的方式:事件驅(qū)動(dòng)方式和查詢方式。事件驅(qū)動(dòng)方式相當(dāng)于一般程序設(shè)計(jì)中的中斷方式。當(dāng)串口發(fā)生事件或錯(cuò)誤時(shí),MSCOMM控件會(huì)產(chǎn)生OnComm事件,用戶程序可以捕獲該事件進(jìn)行相應(yīng)處理。
2.2 RTCM電文解碼方案
解碼過(guò)程可利用電文字頭中的先導(dǎo)字01100110進(jìn)行同步,主要有如下5個(gè)步驟。
?。?)字節(jié)掃描。傳輸數(shù)據(jù)時(shí),通常采用“6/8”格式的方式。每8 bit數(shù)據(jù)中僅低6 bit是有效位,第7位為標(biāo)志位“1”,第8位為空格“0”。接收到的數(shù)據(jù)必須先取低6位,然后判斷這低6位是不是在64和127之間,如果不是則丟棄這個(gè)數(shù)據(jù)。
?。?)字節(jié)滾動(dòng)。由于GPS設(shè)備多數(shù)采用美國(guó)國(guó)家標(biāo)準(zhǔn)化研究所制定的ANSI X3.16和X3.15型標(biāo)準(zhǔn)接口,故連接到計(jì)算機(jī)標(biāo)準(zhǔn)串口RS-232上的時(shí)候需要進(jìn)行“字節(jié)滾動(dòng)”。
?。?)取補(bǔ)碼。當(dāng)前一個(gè)碼字一個(gè)比特D30*為1時(shí),必須對(duì)當(dāng)前這個(gè)字碼的前4個(gè)字節(jié)取補(bǔ)碼;如果D30*為0,則保持不變。奇偶校驗(yàn)位則不必取補(bǔ)碼。
?。?)找引導(dǎo)字。尋找RTCM通用電文引導(dǎo)字(01100110或10011001),進(jìn)行奇偶校驗(yàn),通過(guò)同步完成,否則繼續(xù)找引導(dǎo)字。
?。?)電文解碼。根據(jù)幀長(zhǎng)度,按相應(yīng)電文格式解碼,主要包括比例因子、用戶測(cè)距誤差、衛(wèi)星號(hào)、PRC等參數(shù)。
具體解碼流程圖如圖1所示。

3 RTCM數(shù)據(jù)采集及解碼器實(shí)現(xiàn)
3.1 RTCM數(shù)據(jù)采集及解碼器介紹
本系統(tǒng)基于Windows操作系統(tǒng),利用VC++編程實(shí)現(xiàn)RTCM導(dǎo)航電文解碼,它既能從差分基準(zhǔn)站接收數(shù)據(jù),又能從數(shù)據(jù)文件讀取數(shù)據(jù),原始數(shù)據(jù)和解碼結(jié)果將被顯示及存儲(chǔ),解碼結(jié)果包括各顆衛(wèi)星所包含的參數(shù)。
3.2 RTCM數(shù)據(jù)采集及解碼器實(shí)現(xiàn)
圖2為數(shù)據(jù)解調(diào)子界面,主要有接收回顯窗和解碼顯示窗2部分,其中接收回顯窗顯示各模塊原始數(shù)據(jù),解碼顯示窗顯示解碼結(jié)果。

3.3 關(guān)鍵代碼介紹
程序的關(guān)鍵在于對(duì)接收到的差分?jǐn)?shù)據(jù)解碼,根據(jù)2.2節(jié)的解碼方案設(shè)計(jì),以電文1為例,程序關(guān)鍵代碼如下:
for( i=0;i<N-10;i++) //找引導(dǎo)字
{
int dxj=b[i]*4+(b[i+1]-bitshift2(b[i+1],4))/16;
if(dxj==102||pow(2,8)-1-dxj==102) //找到引導(dǎo)字
{ type=getbit(b[i+1],1,4)*4+getbit(b[i+2],5,6); //電文類型
if(bitshift2(b[i+4],1)==1)
//如D30*等于1,則對(duì)后面4個(gè)字節(jié)取補(bǔ)碼
{……}
else {i=i+5;}
//如果D30*不等于1,則不做任何處理
zt=(b[i]*pow(2,7)+b[i+1]*2+(b[i+2]-bitshift2(b[i+2],5))/32)*0.6; // z計(jì)數(shù)
xuhao=getbit(b[i+2],3,5); //序號(hào)
changdu=getbit(b[i+2],1,2)*8+getbit(b[i+3],4,6); //幀長(zhǎng)
health=getbit(b[i+3],1,3); //健康度
int d1=i+5;
if(type==1||type==62) //如果是電文1
{ int cc=0;
while(1)
//計(jì)算電文1除頭碼之外的長(zhǎng)度cc
{ … }
while(i+5<10+cc-1) //5個(gè)字碼(3顆衛(wèi)星所有參數(shù))循環(huán)
{
…… //判斷是否取補(bǔ)碼,解比例因子、用戶測(cè)距誤差、衛(wèi)星號(hào)、PRC
k=k+3; //每解完3顆衛(wèi)星的信息便循環(huán)
}
} //if type=1
} //if 找到引導(dǎo)字
if (d2==1) break; // 如果到了電文結(jié)尾,則結(jié)束
} //for
4 結(jié)果分析
整個(gè)軟件測(cè)試工作是在華東交通大學(xué)信息工程學(xué)院的2樓信息技術(shù)研究所進(jìn)行,實(shí)驗(yàn)平臺(tái)基于X60差分GPS接收機(jī)進(jìn)行,接收天線安裝在信息學(xué)院樓頂。解碼結(jié)果如表2~表4所示。



將以上誤差數(shù)據(jù)對(duì)自行研制接收機(jī)輸出結(jié)果進(jìn)行修正,結(jié)果如圖3所示。

由圖3中結(jié)果可看出,其海拔高度的定位誤差在1 m內(nèi),經(jīng)度、緯度定位誤差分別在10-6度和10-7度,比單頻偽距GPS接收機(jī)的定位好。通過(guò)利用基準(zhǔn)站進(jìn)行差分?jǐn)?shù)據(jù)傳送進(jìn)行的定位結(jié)果可以達(dá)到1 m左右定位,結(jié)果進(jìn)一步證明了解碼方法及結(jié)果的正確性。
本文基于X60試驗(yàn)平臺(tái),開發(fā)了RTCM SC-104導(dǎo)航電文數(shù)據(jù)采集及解碼器。本軟件再加上其他相關(guān)軟件可進(jìn)行差分基站設(shè)計(jì),可充分利用PC編程資源進(jìn)行開發(fā)工作。該算法在自行研制的GPS接收機(jī)上運(yùn)行,已獲得了較好的定位,為下一步進(jìn)行實(shí)時(shí)DGPS接收機(jī)研制提供了基礎(chǔ)。
版權(quán)與免責(zé)聲明
凡本網(wǎng)注明“出處:維庫(kù)電子市場(chǎng)網(wǎng)”的所有作品,版權(quán)均屬于維庫(kù)電子市場(chǎng)網(wǎng),轉(zhuǎn)載請(qǐng)必須注明維庫(kù)電子市場(chǎng)網(wǎng),http://www.hbjingang.com,違反者本網(wǎng)將追究相關(guān)法律責(zé)任。
本網(wǎng)轉(zhuǎn)載并注明自其它出處的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點(diǎn)或證實(shí)其內(nèi)容的真實(shí)性,不承擔(dān)此類作品侵權(quán)行為的直接責(zé)任及連帶責(zé)任。其他媒體、網(wǎng)站或個(gè)人從本網(wǎng)轉(zhuǎn)載時(shí),必須保留本網(wǎng)注明的作品出處,并自負(fù)版權(quán)等法律責(zé)任。
如涉及作品內(nèi)容、版權(quán)等問(wèn)題,請(qǐng)?jiān)谧髌钒l(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關(guān)權(quán)利。
- ARM技術(shù)架構(gòu)與應(yīng)用開發(fā)實(shí)踐指南2026/1/6 10:40:19
- 嵌入式實(shí)時(shí)操作系統(tǒng)(RTOS)選型與移植技術(shù)指南2025/12/31 10:42:31
- 工業(yè)嵌入式系統(tǒng):通信接口技術(shù)選型與抗干擾設(shè)計(jì)實(shí)踐2025/12/15 14:36:53
- 深入解析嵌入式 OPENAMP 框架:開啟異核通信新時(shí)代2025/7/22 16:27:29
- 一文快速了解OPENWRT基礎(chǔ)知識(shí)2025/7/14 16:59:04
- 高溫環(huán)境下電源IC選型建議
- 安防監(jiān)控設(shè)備連接器應(yīng)用分析
- 高速PCB信號(hào)完整性(SI)設(shè)計(jì)核心實(shí)操規(guī)范
- 鎖相環(huán)(PLL)中的環(huán)路濾波器:參數(shù)計(jì)算與穩(wěn)定性分析
- MOSFET反向恢復(fù)特性對(duì)系統(tǒng)的影響
- 電源IC在惡劣環(huán)境中的防護(hù)設(shè)計(jì)
- 連接器耐腐蝕性能測(cè)試方法
- PCB電磁兼容(EMC)設(shè)計(jì)與干擾抑制核心實(shí)操規(guī)范
- 用于相位噪聲測(cè)量的低通濾波器設(shè)計(jì)與本振凈化技術(shù)
- MOSFET在高頻開關(guān)中的EMI問(wèn)題









