摘 要: 介紹了GPS的定位原理及算法,,在此基礎(chǔ)上,,提出了一種基于ARM微處理器的GPS接收機的設(shè)計方案。該GPS接收機采用Atmel公司生產(chǎn)的ATR0600芯片作為接收機的射頻前端,內(nèi)嵌ARM7核的ATR0620芯片作為接收機的數(shù)字基帶處理器, 并闡述了外圍擴展電路及軟件設(shè)計,。該GPS接收機具有體積小,、功耗低、性能高的特點,。
關(guān)鍵詞: GPS接收機,;ATR0600;ARM,;ATR0620
全球定位系統(tǒng)(GPS)作為一種成熟的導(dǎo)航定位技術(shù),以其全天候,、高精度、自動化,、高效率等顯著特點及所獨具的定位導(dǎo)航,、授時授頻、精密測量等多方面的強大功能,,使其用途越來越廣泛,。但傳統(tǒng)的使用8 bit單片機設(shè)計的GPS接收機,在數(shù)據(jù)處理,、系統(tǒng)性能提升以及功能擴展等方面存在較大的不足,。隨著嵌入式技術(shù)的發(fā)展,以ARM為代表的32 bit微處理器憑借其高性能,、低功耗,、低成本、體積小等優(yōu)點,,在現(xiàn)實中獲得了廣泛的應(yīng)用,。
本文介紹了一種GPS接收機的整體設(shè)計方案,該方案采用Atmel公司生產(chǎn)的ATR0600和ATR0620芯片。其中ATR0600芯片作為接收機的射頻前端,,內(nèi)嵌ARM7TDMI處理器核的ATR0620芯片作為接收機的數(shù)字基帶處理器,。該方案具有低功耗、高性能,、尺寸小,、成本低的特點。
1 GPS定位原理
GPS由21顆工作衛(wèi)星和3顆備用衛(wèi)星組成,,分布在高度為20 200 km的6個軌道平面上,,運行周期為ll h 58 min,其在空間的軌道分布保證了在地球上任何地方,、任一時刻都能接收到至少4顆GPS衛(wèi)星的信號[1-3],。
為了確定接收機在地球上的位置,首先要得到衛(wèi)星的瞬時空間位置,,即接收機根據(jù)接收到的導(dǎo)航衛(wèi)星的星歷參數(shù),,通過計算得到當前衛(wèi)星在地球坐標系中的瞬時位置坐標,。星歷參數(shù)是描述衛(wèi)星運行軌道的一組數(shù)據(jù),,由衛(wèi)星以導(dǎo)航電文的形式連續(xù)不斷地向地面用戶接收機播發(fā),。其中包括星歷參數(shù)的參考歷元、參考歷元的開普勒軌道參數(shù)和軌道攝動改正項,。其中,,除真近點角f是時間的函數(shù)外,其余均為獨立的常數(shù),。因此,,計算衛(wèi)星任一瞬時位置的關(guān)鍵就在于計算參數(shù)f。
為了確定接收機在地球上的位置,,還需通過測量獲得接收機對衛(wèi)星的相對距離,,結(jié)合該衛(wèi)星在空間的瞬時位置坐標,確定觀測點的定位參數(shù)所對應(yīng)的圓面,,由3個或3個以上的圓面在三維空間內(nèi)相交而得出自己在地球上的位置,,實現(xiàn)高精度的定位和導(dǎo)航。
但是,,由于接收機時鐘與衛(wèi)星時鐘不能達到完全同步,,接收機通信鏈路得到的接收機到衛(wèi)星的距離應(yīng)記為偽距?籽,它包含從衛(wèi)星到接收機的幾何距離和由接收機時鐘與衛(wèi)星時鐘之間的差異而造成的偏移,,其中接收機時鐘偏移tu也是未知數(shù),。因此,確定接收機位置需解算4個未知數(shù),,即位置坐標的3個分量(x,,y,z)和時鐘偏移tu,,至少需要4個方程式,,即至少需要觀測到4顆衛(wèi)星。
3個坐標分量的系數(shù)是近似用戶位置指向第s號衛(wèi)星的矢量的方向余弦,。第一次計算定位時,,如無近似位置可用,可將(0,,0,,0)作為初始值,也可由用戶手動輸入接收機的近似位置坐標作為初始值代入以減少迭代次數(shù),。如果在不久以前的工作中已獲得位置,,則可用所存儲的位置作為初始值進行迭代,從而減少迭代次數(shù),,縮短解算時間,。
如果這樣計算出的結(jié)果不夠精確,,則將解算出的點坐標作為新的初始估計值代入,再重新按上述步驟求解,,一般迭代2~3次便可達到可接受的精度要求,。
當僅觀測到4顆衛(wèi)星時,采用上述算法即可獲得用戶位置和時間偏移的單點解,。若在觀測過程中跟蹤到4顆以上的衛(wèi)星,,則出現(xiàn)了冗余觀測量,可用最小二乘法平差求解獲得用戶位置和時間偏移的估值,,還可采用動態(tài)濾波等抗干擾手段平滑導(dǎo)航解,,進一步提高導(dǎo)航定位的精度及連續(xù)性。
2 GPS接收機的硬件設(shè)計
衛(wèi)星信號由天線接收,直接進入射頻前端,。射頻前端具有變頻作用,,將射頻信號轉(zhuǎn)換為中頻信號。中頻信號經(jīng)采樣信號采樣,、量化后,,轉(zhuǎn)換為數(shù)字中頻信號。數(shù)字中頻信號進入基帶數(shù)字處理器,,基帶數(shù)字處理器完成衛(wèi)星信號的處理后,,解調(diào)出導(dǎo)航電文,進行相應(yīng)的處理后給出所需的定位信息或提供特定的應(yīng)用服務(wù),。
GPS接收機的基本組成如圖1所示[4-6],。
2.1 基于ATR0600的射頻前端電路設(shè)計
射頻(RF)前端模塊位于接收機天線與基帶數(shù)字信號處理模塊之間,它通過天線接收所有可見GPS衛(wèi)星信號,經(jīng)前置濾波器和前置放大器的濾波放大后,再與本機振蕩器產(chǎn)生的正弦波本振信號進行混頻而下變頻成中頻(IF)信號,最后經(jīng)模數(shù)轉(zhuǎn)換器將中頻信號離散成包含GPS信號成分的、頻率較低的數(shù)字中頻信號,,并在此過程中進行必要的濾波和增益控制,。
本設(shè)計中射頻前端主要由Atmel公司生產(chǎn)的ATR0600芯片及外圍濾波電路構(gòu)成,它是一個GPS接收機射頻前端IC芯片,,采用單IF結(jié)構(gòu),,芯片上包含有混頻器、IF放大器,、2 bit的模數(shù)轉(zhuǎn)換器,、晶體振蕩器等電路,芯片具有極高的集成度和很小的功耗(約50 W),。
ATR0600通過外部天線接收1 575.42 MHz的L1 GPS信號,,經(jīng)過一個無源帶通濾波器和LNA(低噪聲放大器)進行第1級濾波、放大后,,被外部SAW濾波器進行鏡像抑制并對1 800 MHz GSM頻帶信號進行隔離,。該信號與基準頻率為23.104 MHz的本振信號進行混頻,混頻器將GPS信號下變頻到97.76 MHz中頻?;祛l后,,該信號經(jīng)過LC帶通濾波器和可變益放大器(VGA),,與片上集成的中頻帶通濾波器組合,完成對GSM干擾信號的濾波,。VGA輸出驅(qū)動集成的1.5 bit A/D轉(zhuǎn)換器,,將中頻信號轉(zhuǎn)化成4.35 MHz的數(shù)字中頻信號。
2.2 基于ATR0620的基帶處理器電路
基帶數(shù)字信號處理模塊是GPS接收機的核心部分,它通過處理射頻前端所輸出的數(shù)字中頻信號,,復(fù)制出與接收到的衛(wèi)星信號相一致的本地載波和本地偽碼信號,,從而實現(xiàn)對GPS信號的捕獲與跟蹤,并且從中獲得GPS偽距和載波相位等測量值以及解調(diào)出導(dǎo)航電文,。
基帶數(shù)字信號處理模塊通常是硬件與軟件相結(jié)合的有機體,,其中載波解調(diào)和C/A碼解擴通常是由ASIC硬件形式的數(shù)字信號處理器來完成的,而在微處理器中運行的跟蹤環(huán)路控制軟件通過計算來調(diào)節(jié)數(shù)字信號處理器的各種操作,。由Atmel公司生產(chǎn)的ATR0620芯片包含有一個基于ARM7TDMI處理核的16通道相關(guān)器,,它具有高性能的32 bit RISC結(jié)構(gòu),使用16 bit指令系統(tǒng),,能利用ARM7TDMI微控制器核與片上RAM完成GPS16通道相關(guān)器和外圍設(shè)備接口功能,。利用芯片內(nèi)部大量的功能寄存器可以滿足實時控制應(yīng)用需求。
2.3 GPS接收機的電路設(shè)計
ATR0600射頻前端為ATR0620提供衛(wèi)星信號,、主時鐘信號和其他一些控制信號,而ATR0620為ATR0600提供采樣信號,。圖2為利用ATR0600和ATR0620芯片設(shè)計的GPS接收機方框圖。
2.4 存儲模塊及通信接口
選用Cypress公司生產(chǎn)的CY7C1041,,由片選信號NSCS[I]選通來擴展SRAM,,容量為4 MB。Flash則選用ST公司的4 MB容量的SST39VF400芯片,,由片選信號NSCS[0]選通,。
接收機中設(shè)計了兩種通信接口:一種是JTAG調(diào)試接口,連接JTAG仿真器進行開發(fā)調(diào)試,,下載用戶程序,;另一種是RS232通信串口,用于與主機通信,。
3 GPS接收機的軟件設(shè)計
GPS的用戶設(shè)備主要由接收機硬件和處理軟件組成,。用戶通過用戶設(shè)備接收GPS衛(wèi)星信號,經(jīng)信號處理而獲得用戶位置,、速度等信息,,最終達到利用GPS進行導(dǎo)航和定位的目的。GPS接收機軟件的處理流程如圖3所示,。程序包含匯編語言程序(用于引導(dǎo)和系統(tǒng)初始化)和C語言應(yīng)用程序(用于主要的導(dǎo)航定位計算)兩部分,。軟件整體采用并行任務(wù)結(jié)構(gòu),由相關(guān)器產(chǎn)生的累加數(shù)據(jù)IRQ中斷信號進行任務(wù)切換的驅(qū)動,,在中斷服務(wù)程序中更新偽碼,、載波和數(shù)據(jù)解調(diào)環(huán)路,。
GPS接收機的應(yīng)用軟件根據(jù)不同的用途而有所區(qū)別,主要包括數(shù)據(jù)采集與分析,、衛(wèi)星位置計算,、時間推算、差分定位和動態(tài)定位等程序,。本文設(shè)計的GPS接收機上的程序主要在ARM—μCLinux交叉編譯環(huán)境下用C語言進行編寫,,通過ARM7 JTAG接口連接JAG仿真器進行調(diào)試和移植。
3.1 初始化/清除模塊
在初始化程序段中要完成對GPS設(shè)備的注冊,設(shè)備節(jié)點的創(chuàng)建和對串口相關(guān)寄存器的初始化,。部分代碼如下:
if((register_chrdev(GPS_MAJOR,,GPS_NAME,&gps_fops))<0)
{//注冊GPS字符設(shè)備
printk(KERN_INFO“[registering of“GPS”is failed]\n”),;
return ret,;}
devfs_GPS_dir=devfs_mk_dir(NULL,“GPS”,,NULL),;
devfs_handle=devfs_register(devfs_GPS_dir,“GPS”DEVFS_FL_
DEFAULT,GPS_MAJOR,,0,,S_IFCHR|S_IRUSR|S_IWUSR,
&GPS_fops,,NULL),;
printk(“GPS suecessfully initialized\n”);
*UCONO=Ox0211,;//串口工作模式定義
*UBDRO=Ox0017,;//波特率的選擇相反,清除模塊函數(shù)
//GPS_Cleanup(),,完成注銷字符設(shè)備
devfs_unregister_chrdev(GPS_MAJOR,,GPS_NAME);
printk(“GPSmoduleremoved\n”),;
3.2 兩個數(shù)據(jù)結(jié)構(gòu)定義
模塊驅(qū)動的最終目的就是取得GPS信息,因此規(guī)范GPS數(shù)據(jù)對數(shù)據(jù)傳遞的可靠性和速率都是有益的,。
struct GPS_DATA{
unsigned int hour;//小時,,24小時制
unsigned int minute,;//分
unsigned long Second;//秒,,精度小數(shù)點后三位
unsigned long latitude,;//緯度
unsigned char southornorth;//緯度屬于南北的標志碼
unsigned long longitude;//經(jīng)度
unsigned char eastorwest,;//經(jīng)度屬于東西的標志碼
},;//其中包括了在導(dǎo)航系統(tǒng)中所需的幾個重要數(shù)據(jù)
另外還有對驅(qū)動模塊文件操作結(jié)構(gòu)的定義。即:
static struct file_operations gps_fops={
ead:gps_read,
rite:gps_write,,
octl:gps_ioctl,,
open:gps_open,
elease:gps_release
},;//定義了設(shè)備操作映射函數(shù)結(jié)構(gòu)
3.3 驅(qū)動程序的模塊操作
在導(dǎo)航系統(tǒng)進入GPS導(dǎo)航模式時,,系統(tǒng)首先將GPS模塊注冊到操作系統(tǒng)中,實現(xiàn)初始化過程,,再通過gps_open函數(shù)打開設(shè)備,。此過程中完成對中斷、緩沖區(qū)以及定時器等資源的申請,,為GPS數(shù)據(jù)讀取做準備,。通過gps_write()向模塊寫命令字來自主地選擇工作模式,,gps_ioctl()則是選擇串口傳輸模式,,使之與GPS模塊傳輸模式相匹配。之后的應(yīng)用程序?qū)?chuàng)立一個獨立的進程gps_read()來讀取GPS數(shù)據(jù),,該進程沒有數(shù)據(jù)時將一直處于睡眠狀態(tài)等待數(shù)據(jù),,有數(shù)據(jù)時進入中斷處理模塊,完成數(shù)據(jù)的分析,,生成GPS_DATA數(shù)據(jù)結(jié)構(gòu),,供導(dǎo)航使用。這個進程是隨著導(dǎo)航模式的切換而終止的,,此時除了關(guān)閉進程外,,還需調(diào)用gps_release()釋放申請的所有資源,并關(guān)閉設(shè)備,。
4 性能測試
本設(shè)計的GPS接收機采用內(nèi)嵌ARM7核的GP4020芯片作為接收機的數(shù)字基帶處理器,。通過實驗調(diào)試,消除了以往微處理器的瓶頸效應(yīng),,具有體積小,、功耗低、性能高的特點,。其主要性能指標如下:
(1)最大數(shù)據(jù)更新速率4 Hz,;
(2)定位精度3 m CEP;
(3)功率消耗<0.1 W,;
(4)信號重新捕獲時間<1 s,;
(5)動態(tài)范圍<4 g;
(6)首次定位時間:熱啟動時間為2.5 s,;冷啟動時間為41 s,;“暖”啟動時間為31 s,。
利用Atmel公司生產(chǎn)的ATR06XX芯片組和ARM的高效處理控制技術(shù)精心設(shè)計的超外差式GPS接收機可達到很高的接收靈敏度、頻率選擇性和較大的動態(tài)范圍,,并具有結(jié)構(gòu)簡單,、體積小、重量輕,、省電等優(yōu)點,。最后經(jīng)整機測試,指標達到設(shè)計要求,。如在此基礎(chǔ)上對硬件中的天線部分和軟件中的程序設(shè)計等加以修改,,此方案可應(yīng)用于我國的“北斗一號”衛(wèi)星導(dǎo)航定位系統(tǒng)。因此,,本設(shè)計具有廣闊的應(yīng)用范圍,。
參考文獻
[1] 謝鋼.GPS原理與接收機設(shè)計[M].北京:電子工業(yè)出版社,2009.
[2] 黃智偉.GPS接收機電路設(shè)計[M].北京:國防工業(yè)出版社,,2006.
[3] 黃繼海,,楊凱.ARM系統(tǒng)應(yīng)用設(shè)計[M].鄭州:防空兵指揮學(xué)院,2007.
[4] 劉基余.GPS衛(wèi)星導(dǎo)航定位原理與方法[M].北京:科學(xué)出版社,,2003.
[5] 李洪濤,,許國昌.GPS應(yīng)用程序設(shè)計[M].北京:科學(xué)出版社,2000.
[6] 周立功.ARM微控制器基礎(chǔ)與實踐[M].北京:北京航空航天大學(xué)出版社,,2003.