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

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

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

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

2 系統的硬件設計與實現
    定位終端系統的硬件由一塊FPGA芯片和GPS模塊,GSM模塊,外部存儲SDRAM,FLASH,SRAM,LCD及控制模塊等組成,其結構框圖如圖所示。FPGA芯片主要實現NiosⅡ軟核處理器、片上存儲器和各種接口驅動等功能,其包括NiosⅡ系統和外設兩部分。NiosⅡ系統包括NiosⅡ處理器、存儲器、定時器、串行接口、并行接口和連接各個組件的Avalon交換結構總線。其中GPS_UART和GSM_UART分別實現與GPS和GSM模塊的串行通信,LCD控制器實現與人機交互模塊的連接。

a.jpg


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

b.jpg


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

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

c.jpg


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

d.jpg

e.jpg



4 結語
    本設計在以FPGA為核心,利用NiosⅡ軟核的集成度高、配置靈活、擴展性強的特點,構建了GPS+GSM的雙重定位系統,解決了傳統車載定位" title="車載定位">車載定位系統的不足,做到定位可靠,無盲區的效果。μC/OS-Ⅱ實時操作系統的嵌入,使系統的整體控制能力增強,為后期添加復雜的智能導航算法及擴展成為移動多媒體平臺奠定了基礎。

此內容為AET網站原創,未經授權禁止轉載。
主站蜘蛛池模板: 日韩黄色大片免费看 | 精品国产一区二区三区国产馆 | 亚洲人成在线中文字幕 | xx欧美| 亚洲精品亚洲人成在线观看麻豆 | ww亚洲ww在线观看国产 | 国产高清精品一级毛片 | 久久成人黄色 | 亚洲欧美强伦一区二区另类 | 黄色a网| 看全色黄大色大片免费久久久 | 日本成片免费高清 | 色噜噜狠狠狠狠色综合久不 | freexx性欧美黑人 | 好男人在线社区www在线视频一 | 欧美jizzhd精品欧美另类 | 一级午夜 | www.亚洲欧美| 欧美日韩亚洲二区在线 | 夜间福利在线 | 日本三级带日本三级带黄首页 | free极度另类性欧美 | 国产不卡一区二区视频免费 | 久久成人免费大片 | 九九九日产 | 一本色道久久综合亚洲精品高清 | 亚洲欧美精品 | 五月天婷婷缴情五月免费观看 | 欧美性与交视频在线观看 | 免费一级毛片在线播放放视频 | 国产黄大片在线观 | 日韩精品一区二区三区国语自制 | 香蕉18xxoo欧美夜视频 | 一个人的视频日本免费 | 欧美亚洲香蕉 | 小h片在线观看 | 欧美一区二区三区在线观看不卡 | 精品国产成人系列 | 亚洲欧美日韩在线不卡中文 | 国产精品天天影视久久综合网 | 欧美成人欧美激情欧美风情 |