《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 可編程邏輯 > 設(shè)計(jì)應(yīng)用 > 基于FPGA的GPS+GSM雙重車載定位系統(tǒng)設(shè)計(jì)
基于FPGA的GPS+GSM雙重車載定位系統(tǒng)設(shè)計(jì)
現(xiàn)代電子技術(shù)
趙鵬倫,,沈昱明 上海理工大學(xué)
摘要: 為了克服一般車載導(dǎo)航系統(tǒng)定位不連貫的缺陷,利用NiosⅡ軟核處理器配置靈活,、擴(kuò)展性強(qiáng)等特點(diǎn),,結(jié)合GPS和GSM模塊,,設(shè)計(jì)出了一種基于SoPC技術(shù)的雙重定位系統(tǒng)。該設(shè)計(jì)利用SoPC Builder開發(fā)工具將NiosⅡ處理器,、存儲(chǔ)器和接口等組件及μC/OS-Ⅱ操作系統(tǒng)快速地嵌入到FPGA中,,用單個(gè)芯片完成了人機(jī)交互模塊、控制模塊和通信模塊等功能,,較一般的GPS導(dǎo)航設(shè)備更能實(shí)現(xiàn)較高精度的實(shí)時(shí)連續(xù)系統(tǒng)定位,,且該設(shè)計(jì)在不改變硬件的基礎(chǔ)上可方便升級(jí)、擴(kuò)展更多功能,。
關(guān)鍵詞: FPGA GPS GSM 車載定位 NiosⅡ μC/OS-Ⅱ
Abstract:
Key words :

摘要:為了克服一般車載導(dǎo)航系統(tǒng)定位不連貫的缺陷,,利用NiosⅡ" title="NiosⅡ">NiosⅡ軟核處理器配置靈活、擴(kuò)展性強(qiáng)等特點(diǎn),,結(jié)合GPS" title="GPS">GPS和GSM" title="GSM">GSM模塊,,設(shè)計(jì)出了一種基于SoPC技術(shù)的雙重定位系統(tǒng)。該設(shè)計(jì)利用SoPC Builder開發(fā)工具將NiosⅡ處理器,、存儲(chǔ)器和接口等組件及μC/OS-Ⅱ操作系統(tǒng)快速地嵌入到FPGA" title="FPGA">FPGA中,,用單個(gè)芯片完成了人機(jī)交互模塊、控制模塊和通信模塊等功能,,較一般的GPS導(dǎo)航設(shè)備更能實(shí)現(xiàn)較高精度的實(shí)時(shí)連續(xù)系統(tǒng)定位,,且該設(shè)計(jì)在不改變硬件的基礎(chǔ)上可方便升級(jí)、擴(kuò)展更多功能,。
關(guān)鍵詞:FPGA,;GPS;NiosⅡ,;μC/OS-Ⅱ

0 引言
    目前在車輛GPS導(dǎo)航系統(tǒng)中,,主要是直接利用無差分、無SA誤差的GPS定位數(shù)據(jù)來實(shí)現(xiàn)車輛在地圖上的定位,??紤]到定位信號(hào)存在一定的誤差,5%概率下誤差會(huì)超過15 m,,同時(shí)城市中建筑物,、橋梁以及樹木等還對(duì)GPS信號(hào)形成遮擋,甚至?xí)?dǎo)致信號(hào)失效,,從而進(jìn)一步影響定位精度,。而車在行進(jìn)過程中進(jìn)行導(dǎo)航時(shí),尤其是在路口以及立交橋等特殊地點(diǎn)的導(dǎo)航時(shí),,系統(tǒng)往往需要更為精確的定位,。為此,,本設(shè)計(jì)充分利用了FPGA強(qiáng)大的邏輯控制功能和NiosⅡ處理器的多可配置標(biāo)準(zhǔn)外設(shè)接口功能,結(jié)合GPS和GSM功能模塊,,設(shè)計(jì)了一款雙重定位系統(tǒng),。通常情況下用GPS進(jìn)行定位,在特殊情況下可以開通GSM網(wǎng)絡(luò)定位功能實(shí)現(xiàn)雙定位,,再通過GSM網(wǎng)絡(luò)將定位信息,、時(shí)間和終端特殊信息傳送到監(jiān)控中心,或者接收監(jiān)控中心傳來的信息,,完成定位和監(jiān)控等功能,。

1 NiosⅡ軟核嵌入式處理器
    NiosⅡ處理器是Altera公司的第二代用戶可配置的通用32位RISC軟核微處理器,是Altera公司特有的基于通用FPGA架構(gòu)的軟CPU內(nèi)核,。N-iosⅡ系列支持使用專用指令,。專用指令是用戶增加的硬件模塊,它增加了算術(shù)邏輯單元(ALU),。用戶能為系統(tǒng)中使用的每個(gè)NiosⅡ處理器創(chuàng)建多達(dá)256個(gè)專用指令,,這使得設(shè)計(jì)者能夠細(xì)致地調(diào)整系統(tǒng)硬件以滿足性能目標(biāo)。專用指令邏輯和本身NiosⅡ指令相同,,能夠從多達(dá)兩個(gè)源寄存器取值,,可選擇將結(jié)果寫回目標(biāo)寄存器。同時(shí),,NiosⅡ系列支持60多個(gè)外設(shè)選項(xiàng),,開發(fā)者能夠選擇合適的外設(shè),獲得最合適的處理器,、外設(shè)和接口組合,,而不必支付根本不使用的硅片功能。在FPGA中使用軟核處理器比硬核的優(yōu)勢在于,,硬核實(shí)現(xiàn)沒有靈活性,,通常無法使用最新的技術(shù)。隨著系統(tǒng)日益先進(jìn),,基于標(biāo)準(zhǔn)處理器的方案會(huì)被淘汰,,而基于NiosⅡ處理器的方案是基于HDL源碼構(gòu)建的,能夠修改以滿足新的系統(tǒng)需求,,避免了被淘汰的命運(yùn)。將處理器實(shí)現(xiàn)為HDL的IP核,,開發(fā)者能夠完全定制CPU和外設(shè),,獲得恰好滿足需求的處理器。

2 系統(tǒng)的硬件設(shè)計(jì)與實(shí)現(xiàn)
    定位終端系統(tǒng)的硬件由一塊FPGA芯片和GPS模塊,,GSM模塊,,外部存儲(chǔ)SDRAM,,F(xiàn)LASH,SRAM,,LCD及控制模塊等組成,,其結(jié)構(gòu)框圖如圖所示。FPGA芯片主要實(shí)現(xiàn)NiosⅡ軟核處理器,、片上存儲(chǔ)器和各種接口驅(qū)動(dòng)等功能,,其包括NiosⅡ系統(tǒng)和外設(shè)兩部分。NiosⅡ系統(tǒng)包括NiosⅡ處理器,、存儲(chǔ)器,、定時(shí)器、串行接口,、并行接口和連接各個(gè)組件的Avalon交換結(jié)構(gòu)總線,。其中GPS_UART和GSM_UART分別實(shí)現(xiàn)與GPS和GSM模塊的串行通信,LCD控制器實(shí)現(xiàn)與人機(jī)交互模塊的連接,。

a.jpg


2.1 GPS和GSM模塊
    對(duì)于GPS模塊,,采用Zarlink公司的GP2015,它的主要任務(wù)是對(duì)接收到的GPS信號(hào)進(jìn)行外差式下變頻,,內(nèi)部包括一個(gè)片內(nèi)頻率合成器,、三級(jí)混頻器、自動(dòng)增益控制電路及量化器,。在其內(nèi)部使用鎖相環(huán)頻率合成器合成本地參考信號(hào),,然后和接收信號(hào)進(jìn)行混頻。在該系統(tǒng)設(shè)計(jì)中,,射頻前端GP2015需要兩個(gè)外部時(shí)鐘,,一個(gè)是10 MHz的基準(zhǔn)頻率,另一個(gè)是其內(nèi)部A/D的采樣時(shí)鐘,,頻率為5.714 MHz,;在GPS接收機(jī)的設(shè)計(jì)中,射頻前端與基帶處理模塊的時(shí)鐘相位保持一致或相位誤差比較小時(shí),,有助于提高接收機(jī)的定位精度,。考慮到這一點(diǎn),,在本設(shè)計(jì)中FPGA和射頻前端共用一個(gè)時(shí)鐘源,,給FPGA提供一個(gè)40 MHz的基準(zhǔn)頻率,F(xiàn)PGA經(jīng)過內(nèi)部的鎖相環(huán)提供10 MHz和5.714 MHz的時(shí)鐘信號(hào)給射頻前端,,保證了前端和基帶處理時(shí)鐘的同源,。在GP2015內(nèi)部還集成了一個(gè)兩位A/D轉(zhuǎn)換器,模擬中頻輸入為4.309 MHz,,輸出兩位的數(shù)字中頻信號(hào),,頻率為1.405 MHz,。GSM模塊采用Siemens公司的TC35,該型號(hào)的GSM模塊工作在EGSM 900 MHz和GSM1 800 MHz頻率波段,,提供話音和數(shù)據(jù)傳輸?shù)臒o線連接,,使用40引腳的零插力連接器作為控制數(shù)據(jù)、話音信號(hào)和電源線的應(yīng)用接口,。其串口通信波特率在300 b/s~115 Kb/s之間可選,,也可以在1 200 b/s~115 Kb/s之間的8種波特率間自動(dòng)適配。
2.2 創(chuàng)建QuartusⅡ工程
    創(chuàng)建項(xiàng)目工程名為GPS,,芯片選型為EP2C20F484C7,,并創(chuàng)建一個(gè)原理圖文件GPS.bdf。
2.3 啟動(dòng)SoPC Builder并配置硬件系統(tǒng)
    將生成的NiosⅡ標(biāo)準(zhǔn)型CPU應(yīng)用到系統(tǒng)中,,debug level位設(shè)為1,,系統(tǒng)復(fù)位映射到FLASH中,地址為0X0,;異常映射到SRAM中,,地址為0X-20.然后添加自己定制的LCD控制模塊LCD_interface.v到NiosⅡ系統(tǒng)中。選擇RS 232串口作為系統(tǒng)與GPS接收模塊的接口,,在系統(tǒng)構(gòu)架中添加UAWT組件,,命名為GPS_UART,波特率設(shè)為9 600 b/s.并選擇DMA數(shù)據(jù)傳輸控制項(xiàng),。在組件中選擇valonCornponenst/others/Interval Timer,,在彈出的對(duì)話框中配置Initial Period項(xiàng)為1 ms,數(shù)據(jù)位寬為32,。SDRAM作為存儲(chǔ)介質(zhì)保存數(shù)據(jù),,data width設(shè)為16,address width中row為12,,column為8,。添加SRAM模塊用來存儲(chǔ)程序,memory sizes為4 MB,,添加CFI-Flash模塊,,用來存儲(chǔ)圖像及系統(tǒng)配置信息,在SoPC Builder左側(cè)的組件欄中選擇Avalon Components/Flash Memory,,雙擊組件,,選擇address width為22,data width為8,;還需要添加EPCS Controller,,具體方法是:選擇SoPC Builder左側(cè)組件欄中的Avalon Components/Memory/EPCS Serial Flash Controller,單擊Finish,完成組件添加,。
    添加Flash Controller模塊,用來控制FLASH工作,。由于FLASH的數(shù)據(jù)總線是三態(tài)的,,所以NiosⅡCPU在與FLASH進(jìn)行連接時(shí)需要添加Ava-lon總線三態(tài)橋控制模塊Tri_state_bridge,用來連接FLASH模塊,;添加自己定制的GPS控制模塊,。最后添加系統(tǒng)ID模塊。配置完成后選擇Sy-stem Generation標(biāo)簽,,單擊Generate按鈕,,啟動(dòng)系統(tǒng)生成。
2.4 創(chuàng)建QuartusⅡ頂層模塊并集成NiosⅡ硬件系統(tǒng)
    在GPS.bdf中添加生成的NiosⅡ系統(tǒng),,配置外圍接口電路,,生成完整的硬件系統(tǒng)構(gòu)架。如圖2所示,。

b.jpg


    選擇Start Analysis&Synthesis開始分析和綜合,,完成后進(jìn)行引腳分配,檢查無誤后執(zhí)行Start Assembier,,對(duì)輸入設(shè)計(jì)進(jìn)行匯編,;將匯編好的編程配置文件GPS.sof通過JTAG方式下載到定位終端目標(biāo)板上,即可完成硬件的所有綜合設(shè)計(jì),。

3 利用NiosⅡIDE進(jìn)行系統(tǒng)軟件設(shè)計(jì)
3.1 軟件總體構(gòu)成
    定位系統(tǒng)軟件主要完成定位信息的采集和定位終端與監(jiān)控中心之間的數(shù)據(jù)通信,,主要由主程序、顯示程序,、GPS信息處理程序和GSM信息處理程序組成,。主程序完成系統(tǒng)的初始化、自檢,、人機(jī)交互操作和定位信息的處理等功能,。
3.2 GSM網(wǎng)絡(luò)定位及通信
    目前,中國移動(dòng)和中國聯(lián)通的移動(dòng)通信網(wǎng)絡(luò)既是語音通信網(wǎng)絡(luò),,又是一個(gè)能提供豐富數(shù)據(jù)業(yè)務(wù)的網(wǎng)絡(luò),,只要當(dāng)?shù)鼐W(wǎng)絡(luò)開通了位置服務(wù)功能,選用支持STK的SIM卡,,即可通過STK命令得到位置信息,。GSM網(wǎng)絡(luò)通信主要以短消息的方式進(jìn)行,包括短消息的接收和發(fā)送,。在短消息的收發(fā)程序設(shè)計(jì)中運(yùn)用AT命令來實(shí)現(xiàn),,其包括定位和監(jiān)控信息的編碼和解碼、通信模式設(shè)定和聯(lián)機(jī)測試、短消息的收發(fā),、收發(fā)數(shù)據(jù)的關(guān)鍵命令字的模式匹配,。
3.3 GPS信號(hào)定位
    在進(jìn)行信號(hào)穩(wěn)定跟蹤以前,首先需要實(shí)現(xiàn)信號(hào)的捕獲來確定信號(hào)是否存在,。通用接收機(jī)對(duì)載波信號(hào)的捕獲通常采用一維的串行相關(guān)搜索,。在本文所描述的高動(dòng)態(tài)情況下,載波多普勒頻偏最大為±14 kHz,,若選擇頻率搜索步進(jìn)為500 Hz,,需要57次才能完成整個(gè)28 kHz帶寬的搜索,顯然非常耗費(fèi)時(shí)間,。而利用傅里葉變換將信號(hào)從時(shí)域變換到頻域后,,通過把原來的時(shí)域串行搜索變?yōu)轭l域并行搜索,進(jìn)行1次并行搜索就能等同于傳統(tǒng)方式下的57次串行搜索,,大大節(jié)約了搜索時(shí)間,。GPS定位流程如圖3所示。

c.jpg


3.4 GPS信號(hào)追蹤
    完成信號(hào)捕獲后,,需要對(duì)信號(hào)進(jìn)行精確穩(wěn)定的跟蹤,,保證后續(xù)導(dǎo)航電文的正確解調(diào)。載波跟蹤環(huán)由預(yù)檢測積分器,、環(huán)路鑒別器和濾波器組成,,圖4為GPS信號(hào)載波L1的跟蹤環(huán)路框圖。
3.5 Kalman濾波算法
    目前,,比較難處理的是GPS信號(hào)隨機(jī)誤差系統(tǒng)中的多路徑效應(yīng),。多路徑效應(yīng)誤差是人們關(guān)注最多的誤差,嚴(yán)重影響GPS測量精度,。嚴(yán)重時(shí)還將引起信號(hào)失鎖,。信號(hào)在到達(dá)接收機(jī)之前可能經(jīng)過多路反射、干涉,,導(dǎo)致信號(hào)相位和光程產(chǎn)生很大變化,。該類誤差較難處理,不能通過差分處理補(bǔ)償,。針對(duì)上述現(xiàn)象本文提出一種在多路徑條件下的Kalman濾波算法,,Kalman濾波器是一種線性最小方差濾波器,它不但考慮了信號(hào)與測量值的基本統(tǒng)計(jì)特性(一,、二階統(tǒng)計(jì)特性),,而且,由于采用了狀態(tài)空間的概念,,用狀態(tài)方程描述系統(tǒng),,信號(hào)作為狀態(tài),,所以,它既能估計(jì)平穩(wěn)的標(biāo)量信號(hào)隨機(jī)過程,,又能估計(jì)非平穩(wěn)的矢量隨機(jī)過程,。它能夠從一系列的不完全包含噪聲的測量中,估計(jì)動(dòng)態(tài)系統(tǒng)的狀態(tài),。所以被廣泛用于自動(dòng)導(dǎo)航和定位系統(tǒng)中,。本設(shè)計(jì)利用Kalman Filter以及回歸直線的平滑化,有效改善了多路徑環(huán)境下的GPS測位結(jié)果的連續(xù)性和直線性,,用在GPS/GSM導(dǎo)航系統(tǒng)中,使系統(tǒng)做到定位精準(zhǔn),、連續(xù),、無盲區(qū)。圖5是Kalman濾波器的運(yùn)算框圖,。
3.6 系統(tǒng)整合實(shí)現(xiàn)
   啟動(dòng)NiosⅡIDE工作環(huán)境,,創(chuàng)建工程。
   選擇主菜單File/New/Project,,選擇Altera NiosⅡ/C/C++ Application,,設(shè)置工程名為GPS,在SoPCBuilder Systam選項(xiàng)中選擇Sy-stem.ptf文件,,該文件包含由SoPC Builder創(chuàng)建的NiosⅡ系統(tǒng)硬件信息,,選擇Blank Project模板,將C軟件代碼導(dǎo)入工程中,。實(shí)時(shí)操作系統(tǒng)μC/OS-Ⅱ是一個(gè)完整的,、可移植、固化和裁剪的占先式實(shí)時(shí)多任務(wù)內(nèi)核,。μC/OS-Ⅱ提供以下系統(tǒng)服務(wù):任務(wù)管理,、事件標(biāo)志、消息傳遞,、內(nèi)存管理,、信號(hào)量、時(shí)間管理,。在應(yīng)用程序中,,可以方便地利用這些調(diào)用實(shí)現(xiàn)復(fù)雜實(shí)時(shí)系統(tǒng)控制功能。在NiosⅡIDE環(huán)境下,,選擇Tools/Fl-ash Programmer,,在彈出的對(duì)話框中選定下載一個(gè)文件到FLASH存儲(chǔ)器中,單擊右側(cè)Browse按鈕,,選擇已經(jīng)保存好的電子地圖文件(raw格式  ),。指定存儲(chǔ)器(Memory)為cfi_flash,偏移地址(Offset)為0X1000,單擊Program Flash下載,。
    僅有GPS導(dǎo)航的狀態(tài)下與在GPS+GSM共同導(dǎo)航的狀態(tài)下系統(tǒng)實(shí)現(xiàn)的最終效果對(duì)比如圖6,,圖7所示。

d.jpg

e.jpg



4 結(jié)語
    本設(shè)計(jì)在以FPGA為核心,,利用NiosⅡ軟核的集成度高,、配置靈活、擴(kuò)展性強(qiáng)的特點(diǎn),,構(gòu)建了GPS+GSM的雙重定位系統(tǒng),,解決了傳統(tǒng)車載定位" title="車載定位">車載定位系統(tǒng)的不足,做到定位可靠,,無盲區(qū)的效果,。μC/OS-Ⅱ?qū)崟r(shí)操作系統(tǒng)的嵌入,使系統(tǒng)的整體控制能力增強(qiáng),,為后期添加復(fù)雜的智能導(dǎo)航算法及擴(kuò)展成為移動(dòng)多媒體平臺(tái)奠定了基礎(chǔ),。

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載,。