伍文平,王小兵
摘 要:該裝置以ARM9為核心,采用Windows CE多線程編程技術(shù),分別采集GPS和電子羅盤(pán)等傳感器件數(shù)據(jù),加以綜合計(jì)算,得到衛(wèi)星通信天線對(duì)星的理論值與實(shí)際值,調(diào)整天線指向使實(shí)際值與理論值一致,即可完成對(duì)星。使用該裝置能夠明顯縮短對(duì)星時(shí)間,平均對(duì)星時(shí)間由原來(lái)不可預(yù)知,縮短到2 min以?xún)?nèi),顯著提高了通信效能。該裝置在天線方位角的磁偏角修正方面具有先進(jìn)性。
關(guān)鍵詞:電子羅盤(pán);對(duì)星;磁偏角;ARM9
中圖分類(lèi)號(hào):TP216文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):1004-373X(2009)19-053-03
Design and Implement of Quickly Aimed the Satellite Device Based on ARM9
WU Wenping1,WANG Xiaobing2
(1.Uint 69046,Urumqi,830002;2.Xinjiang Mobile Communication Corp.,Urumqi,830063,China)
Abstract:This device based on ARM9 collects the data from GPS and compass,then the theoretic value and the real value can obtain by computing the data.The antenna can be rotated to make the real value equal to the theoretic value,then the antenna is aimed at the satellite accurately.Using this device can reduce the time of aim the satellite,the average time for aim the satellite can be reduced from the unpredictable period to 2 minutes,then the efficiency of communication is increased markedly.The device is advanced on the azimuthal angle revised by the declination.
Keywords:compass;aimed the satellite;declination;ARM9
0 引 言
大中型衛(wèi)星站均具有相應(yīng)的、完善的天線跟蹤伺服系統(tǒng),天線伺服跟蹤系統(tǒng)依據(jù)信標(biāo)信號(hào)強(qiáng)弱,決定天線轉(zhuǎn)向,驅(qū)動(dòng)天線旋轉(zhuǎn),達(dá)到準(zhǔn)確對(duì)星。隨著通信技術(shù)和電子技術(shù)的發(fā)展,小型衛(wèi)星站如車(chē)載站、便攜站受機(jī)動(dòng)性能和便攜性能的局限,不可能采用大中型衛(wèi)星站才能使用的伺服跟蹤系統(tǒng),采用不同原理,開(kāi)發(fā)適用于小型衛(wèi)星站天線的對(duì)星裝置,具有現(xiàn)實(shí)意義。
1 系統(tǒng)概述
該裝置通過(guò)GPS采集地理信息、電子羅盤(pán)采集姿態(tài)信息,根據(jù)GPS采集的地理信息,結(jié)合通信衛(wèi)星位置,計(jì)算出對(duì)星所需要的標(biāo)準(zhǔn)方位、俯仰、極化參數(shù),同時(shí)計(jì)算出當(dāng)?shù)?、?dāng)年磁偏角數(shù)據(jù);通過(guò)采集電子羅盤(pán)數(shù)據(jù),得到初步方位、俯仰、極化數(shù)據(jù),其中俯仰和極化均為天線實(shí)際指向值,但是方位值是以磁北為標(biāo)準(zhǔn)測(cè)量值;通過(guò)GPS得到的磁偏角數(shù)據(jù),對(duì)從電子羅盤(pán)得到的以磁北為標(biāo)準(zhǔn)的方位值進(jìn)行修正,得到比較準(zhǔn)確的、以真北為標(biāo)準(zhǔn)的真實(shí)方位數(shù)據(jù)。其系統(tǒng)結(jié)構(gòu)如圖1所示,其中基于EVC4平臺(tái)的多線程應(yīng)用程序流程結(jié)構(gòu)如圖2所示。
圖1 系統(tǒng)結(jié)構(gòu)構(gòu)圖
圖2 簡(jiǎn)要程序流程圖
2 硬件設(shè)計(jì)
本裝置在設(shè)計(jì)上,選擇S3C2440作為主控制器構(gòu)成硬件平臺(tái),利用其豐富的外部接口和高速處理能力,達(dá)到實(shí)時(shí)采集數(shù)據(jù)、及時(shí)處理數(shù)據(jù)、快速傳輸數(shù)據(jù)、不附加額外接口設(shè)備的目的。由于該裝置需要測(cè)量的參數(shù)多,GPS、電子羅盤(pán)統(tǒng)一采用RS 232接口,保證了測(cè)量數(shù)據(jù)精度和接口一致性。供電統(tǒng)一采用+5 V鋰電池電源供電。
3 軟件設(shè)計(jì)
本裝置采用ARM9作為主控制器,以Windows CE.net操作系統(tǒng)作為系統(tǒng)平臺(tái),使用EVC4開(kāi)發(fā)環(huán)境作為開(kāi)發(fā)工具,軟件采用多線程結(jié)構(gòu),MFC和API編程技術(shù),實(shí)時(shí)采集傳感器數(shù)據(jù),計(jì)算修正方位值,達(dá)到準(zhǔn)確對(duì)星的目的。
3.1 總體程序設(shè)計(jì)
本裝置程序采用多線程結(jié)構(gòu),在主線程(用戶(hù)接口線程)的基礎(chǔ)上,增加兩個(gè)輔助線程(工作者線程),輔助線程負(fù)責(zé)處理數(shù)據(jù)采集,主線程負(fù)責(zé)界面響應(yīng)、數(shù)據(jù)融合、數(shù)據(jù)顯示。線程處理采用API,而不采用MFC編程,增加了程序的通用性。程序中還使用SuspendThread掛起線程、ResumeThread恢復(fù)線程、ExitThread退出線程[1,2]。
線程同步采用臨界區(qū)域(也稱(chēng)關(guān)鍵區(qū)域,即CRITICALSECTION)措施,首先用CRITICALSECTION申明一個(gè)全局變量,再調(diào)用InitializeCriticalSection初始化,使用EnterCriticalSection進(jìn)入關(guān)鍵區(qū)域,使用LeaveCriticalSection離開(kāi)關(guān)鍵區(qū)域,使用DeleteCriticalSection 函數(shù)刪除關(guān)鍵區(qū)域[1,2]。其關(guān)鍵部分代碼如下:
CRITICALSECTION gcs;
DWORD WINAPI GpsThreadProc(LPVOID);
DWORD WINAPI CompassThreadProc(LPVOID);
void MainDlg::Starton()
{ …
HANDLE hThread1,hThread2;
DWORD dwThreadId1,dwThreadId2;
hThread1 = CreateThread(NULL,0,GpsThreadProc,NULL,0,&dwThreadId1;);
hThread2 = CreateThread(NULL,0,CompassThreadProc,NULL,0,&dwThreadId2;);
if((hThread1 != NULL)&( hThread2 != NULL))
{…//創(chuàng)建線程后的一些初始化、計(jì)算、顯示等工作}
InitializeCriticalSection(&gcs;);
WaitForSingleObject(hThread1,INFINITE);
WaitForSingleObject(hThread2,INFINITE);
DeleteCriticalSection(&gcs;);
CloseHandle(hThread1);
CloseHandle(hThread2);
…
}
3.2 HMR3000程序設(shè)計(jì)
電子羅盤(pán)數(shù)據(jù)輸出格式滿(mǎn)足NMEA0183通信協(xié)議規(guī)范,根據(jù)需求選用$PTNTHPR語(yǔ)句,每秒更新30次,基本滿(mǎn)足實(shí)時(shí)測(cè)量的要求。$PTNTHPR語(yǔ)句的數(shù)據(jù)格式為[3,4]:
$PTNTHPR,<1>,<2>,<3>,<4>,<5>,<6>*hh
各字段含義為:<1>表示方位值,<2>表示方位狀態(tài),<3>表示俯仰值,<4>表示俯仰狀態(tài), <5>表示橫滾值,<6>表示橫滾狀態(tài),hh表示校驗(yàn)和。采集數(shù)據(jù)程序在判斷各參數(shù)狀態(tài)正常的基礎(chǔ)上,從輸出語(yǔ)句中提取對(duì)應(yīng)參數(shù)值。其線程函數(shù)部分代碼如下:
DWORD WINAPI CompassThreadProc(LPVOID)
{…
EnterCriticalSection(&gcs;);
ucTemp=ReadByte();
if(ucTemp=′$′) //判斷語(yǔ)句開(kāi)始
{iAZ=0;iEL=0;iPOL=0;numberComa=0;}//變量初始化
if(ucTemp1=′,′)
{numberComa++;}//逗號(hào)加一,根據(jù)逗號(hào)數(shù)目劃分字段
If((numberComa==1)&(ucTemp!=′,′))//讀取方位數(shù)據(jù)
{AZ[iAZ]=ucTemp;iAZ++;}
If((numberComa==2)&(ucTemp!=′,′))//讀取方位狀態(tài)
{MarkAZ=ucTemp;}
…//讀取其他參數(shù)并處理
LeaveCriticalSection(&gcs;);
return 0;
}
3.3 GPS模塊程序設(shè)計(jì)
GPS模塊數(shù)據(jù)輸出格式也滿(mǎn)足NMEA0183通信協(xié)議規(guī)范,根據(jù)需求選用$GPRMC語(yǔ)句[5],默認(rèn)更新速率。$GPRMC語(yǔ)句的數(shù)據(jù)格式為:
$GPRMC,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,<10>,<11>,*hh。
各字段含義為:<1>表示方位值,<2>表示方位狀態(tài),<3>表示俯仰值,<4>表示俯仰狀態(tài), <5>表示橫滾值,<6>表示橫滾狀態(tài)。采集數(shù)據(jù)程序在判斷各參數(shù)狀態(tài)正常的基礎(chǔ)上,從輸出語(yǔ)句中提取對(duì)應(yīng)參數(shù)值。其線程函數(shù)部分代碼如下:
DWORD WINAPI GpsThreadProc(LPVOID)
{…
EnterCriticalSection(&gcs;);
ucTemp=ReadByte();
if(ucTemp==′$′)
{iLog=0;iLat=0;numberComa=0;}
if(ucTemp==′,′)
{numberComa++;}
if((numberComa==2)&(ucTemp!=′,′)) //讀取標(biāo)示位,為A則數(shù)據(jù)有效
{iFlag=ucTemp;}
if((numberComa==3)&(ucTemp!=′,′))//讀取緯度數(shù)據(jù)
{Lat[iLat]=ucTemp;iLat++;}
if((numberComa==5)&(ucTemp!=′,′))//讀取經(jīng)度數(shù)據(jù)
{Log[iLog]=ucTemp;iLog++;}
…//讀取其他數(shù)據(jù)并處理
LeaveCriticalSection(&gcs;);
return 0;…
}
3.4 對(duì)星參數(shù)理論值計(jì)算
衛(wèi)星通信中重要的一步就是衛(wèi)星通信天線準(zhǔn)確對(duì)準(zhǔn)通信衛(wèi)星。對(duì)星需要三個(gè)參數(shù):方位、俯仰、極化。下面分別是三個(gè)參數(shù)的計(jì)算公式[6],其中Ψc是衛(wèi)星波束中心經(jīng)度,Ψs為衛(wèi)星的經(jīng)度,Ψg是接收地經(jīng)度,θ為接收地緯度。
衛(wèi)星通信天線方位角計(jì)算公式:
AZ=arctg[tg(Ψs -Ψg)/sin θ]
(1)
俯仰角計(jì)算公式:
EL=arctgcos(Ψs-Ψg)cos θ-0.151 721-[cos(Ψs-Ψg)cos θ]2
(2)
極化角計(jì)算公式1:
POL=arctg[sin(Ψs-Ψg)/tg θ]
(3)
極化角計(jì)算公式2:
POL=arctg[sin(Ψc-Ψg)/tg θ]
(4)
極化角通常位于式(3)和式(4)的計(jì)算值之間,為簡(jiǎn)化計(jì)算常采用式(3)作為極化角計(jì)算公式使用。
經(jīng)過(guò)GPS采集得到接收地經(jīng)度、緯度,結(jié)合衛(wèi)星經(jīng)度,采用C語(yǔ)言提供的數(shù)學(xué)函數(shù)可以很簡(jiǎn)便地計(jì)算出天線準(zhǔn)確對(duì)星需要的三個(gè)參數(shù):方位、俯仰、極化。為對(duì)星操作提供理論標(biāo)準(zhǔn)值,將對(duì)星操作簡(jiǎn)化為比對(duì)理論標(biāo)準(zhǔn)值,調(diào)整天線,使實(shí)際值與理論值完全一致,從而完成對(duì)星任務(wù)。
3.5 方位角修正程序設(shè)計(jì)
電子羅盤(pán)測(cè)量得到的是天線實(shí)際指向值,由于電子羅盤(pán)是根據(jù)地磁場(chǎng)測(cè)量出方位值,此方位值實(shí)際是以磁北為標(biāo)準(zhǔn)的方位值,而理論值是以真北為標(biāo)準(zhǔn)的方位值,這樣在電子羅盤(pán)測(cè)量值和理論計(jì)算值之間存在一個(gè)差值,此差值即為磁偏角。要使電子羅盤(pán)測(cè)量的方位值代表以真北為標(biāo)準(zhǔn)的方位值,必須在電子羅盤(pán)測(cè)量的數(shù)據(jù)基礎(chǔ)上進(jìn)行磁偏角的修正[7]。
根據(jù)IGRF2005地磁場(chǎng)模型,利用NOAA的NGDC提供的磁偏角計(jì)算程序,逐一計(jì)算覆蓋我國(guó)領(lǐng)土及周邊的磁偏角數(shù)據(jù),其緯度為北緯10°~50°,經(jīng)度為東經(jīng)70°~140°,構(gòu)成41×71的二維數(shù)組,根據(jù)經(jīng)度、緯度數(shù)據(jù)提取磁偏角數(shù)據(jù),與采集的羅盤(pán)數(shù)據(jù)進(jìn)行運(yùn)算,修正羅盤(pán)方位值,從而得到代表物體指向的比較準(zhǔn)確的方位值。其部分代碼如下所示:
fAZ=cAZ+Dec[nLat,nLog];
Double Dec[int x,int y]
{ ……
Doule DecTable[41,71]
{{23,232,233,235,235,235,233,23,23,225,222,212,212,205,198,192,183,175,167,157,147,137,127,115,105,095,085,075,065,055,047,04,033,027,022,018,015,013,012,012,012,013,017,018,022,025,028,032,035,038,04,042,043,043,042,04,037,032,025,018,01,0,-01,-022,-035,-05,-065,-082,-10,-118},…}
//磁偏角數(shù)組
Return(DecTable[x-10,y-70]);
}
從電子羅盤(pán)得到的方位數(shù)據(jù),經(jīng)過(guò)磁偏角修正,形成以真北為標(biāo)準(zhǔn)的真實(shí)方位數(shù)據(jù),從而具有與理論對(duì)星參數(shù)比對(duì)的基礎(chǔ)。
4 應(yīng)用及結(jié)果
該裝置巧妙利用GPS模塊和電子羅盤(pán)模塊,在分別采集模塊數(shù)據(jù)的基礎(chǔ)上,利用地理信息進(jìn)行查表運(yùn)算,得出當(dāng)?shù)卮牌?利用磁偏角修正方位,得到較為準(zhǔn)確的方位指向數(shù)據(jù)。此裝置采用S3C2440ARM9芯片作為主CPU,Windows CE.Net為操作系統(tǒng)平臺(tái);電子羅盤(pán)選用Honeywell HMR3000,GPS選用GARMIN GPS25LVS,蘑菇頭天線,單一+5 V供電,輸出接口均為RS 232。該系統(tǒng)精度高、實(shí)時(shí)性好、界面直觀,具有廣泛的應(yīng)用前景。某型衛(wèi)星通信裝備,天線口徑1 m,工作于Ku波段,其半功率波瓣寬度近似計(jì)算公式為:θ=70λ/D[6],得到半功率波瓣寬度θ=1.75°;通過(guò)磁偏角修正后的電子羅盤(pán)角度指示誤差為φ=±0.5°,θ≥φ,滿(mǎn)足應(yīng)用需求。2009年烏魯木齊的磁偏角為-2.93°,如果不加磁偏角修正,其誤差總和為2.93°+0.5°=3.43°,超過(guò)半功率波束寬度,無(wú)法完成對(duì)星任務(wù)。程序運(yùn)行后界面如圖3所示。
圖3 快速對(duì)星裝置程序?qū)嵗?/p>
5 結(jié) 語(yǔ)
經(jīng)過(guò)使用證明:該裝置經(jīng)過(guò)磁偏角修正后,可以使用于方位精度要求±0.5°、傾角和橫滾經(jīng)度要求±0.1°的物體位置和姿態(tài)測(cè)量。經(jīng)過(guò)在昆明、喀什、北京等地實(shí)際使用測(cè)量,效果良好,平均對(duì)星時(shí)間由原來(lái)不確定減少到2 min以?xún)?nèi)(實(shí)際測(cè)量平均時(shí)間為14 min),改善效果明顯。使用中注意事項(xiàng):由于此裝置采用的電子羅盤(pán),利用地磁場(chǎng)根據(jù)磁阻傳感信息計(jì)算方位的原理,因此,此裝置在使用中要求盡量遠(yuǎn)離框架式建筑物、鐵礦廠、鐵柵欄、鐵門(mén)鐵窗等大型硬鐵物質(zhì),避免因硬鐵物質(zhì)對(duì)磁力線的影響,導(dǎo)致測(cè)量誤差大的情況出現(xiàn)。
參考文獻(xiàn)
[1]高守傳,聶云銘,鄭靜.Visual C++6.0開(kāi)發(fā)指南[M].北京:人民郵電出版社,2007.
[2]明日科技.Visual C++程序開(kāi)發(fā)范例寶典[M].北京:人民郵電出版社,2007.
[3]Honeywell Corp.HMR3000 Digital Compass Module User′s Guide[Z].1999.
[5]GARMIN Corp.GPS25 LP Series GPS Sensor Boards Technical Specification[Z].2000.
[6]呂海寰,蔡劍銘,甘仲民,等.衛(wèi)星通信系統(tǒng)[M].北京:人民郵電出版社,1988.
[4]葛偉,馮桂蘭,黃光偉,等.HMR3000數(shù)字羅盤(pán)在船舶導(dǎo)航中的應(yīng)用[J].科學(xué)技術(shù)與工程,2006,6(16):2 579-2 580.
[8]黃少鋒,張尊泉,鄧斌.雷達(dá)圖像傳輸天線自動(dòng)控制系統(tǒng)的設(shè)計(jì)[J].電子技術(shù)應(yīng)用,2007,33(5):86-88.
[7]呂永清,蔡亞先,程駿玲.地震儀器定向與磁偏角[J].大地測(cè)量與地球動(dòng)力學(xué),2006,26(2):120-122.
[9]侯志強(qiáng),王祖林.車(chē)載天線定向系統(tǒng)設(shè)計(jì)[J].電子測(cè)量技術(shù),2006,29(4):17-18.
[10]章大勇,吳文啟,吳美平,等.基于測(cè)姿GPS及電子羅盤(pán)組合的姿態(tài)估計(jì)算法[J].中國(guó)航海,2007(4):33-36,49.