摘要: 全球衛星定位系統(GPS)可以對海陸空進行全方位的實時定位與導航,其應用日益廣泛,通過GPS定位系統及其信息接收裝置可以實現對當前所在位置的確定。系統使用天線接收GPS衛星信號,并在μC/OS操作系統下用NIOS處理器進行分析處理,以保證其實時性,最終輸出位置、速度等信息進行定位。本系統通過實驗測試驗證,定位具有較高的準確性和實時性。
關鍵詞: GPS; 衛星定位; NIOS處理器; μC/OS操作系統
中圖分類號: TN911?34 文獻標識碼: A 文章編號: 1004?373X(2013)06?0105?04
0 引 言
GPS全球衛星定位系統在天空中是由24顆衛星組成的GPS星座構成,它們特定的排列方式可以使地球上任何地方任何時刻都可以觀測到四顆及以上衛星,定位精度高,是現有的衛星定位系統中最常用的技術比較成熟和穩定的定位系統,因此在當今社會GPS的應用十分廣泛,涵蓋陸地、海洋以及航空航天方面的應用,尤其是車輛導航、航程航線測定、船只實時調度與導航等都可以看成是一個個GPS顯示系統[1?4]。可見,GPS顯示系統能為人們的生活和工作帶來許多方便,所以GPS信息接收和顯示裝置的設計開發具有廣闊的發展前景。
GPS信息的接收模塊技術如今比較成熟,主要可以分為軍事和民用的兩類。民用的GPS芯片對于精度的要求并不是很高,但基本都能滿足人們的實用要求。由于GPS模塊接收到的數據無法直接讀取,因此需要設計一個合理的信息接收轉換及顯示系統,將GPS模塊接收的定位數據轉化為能夠直接讀取的格式并顯示出來[5]。
本文設計的基于NIOS處理器的GPS定位信息顯示系統的主要目的是接收GPS定位衛星的定位信息并實現時間、經度、緯度以及速度等信息的實時顯示,為人們的日常生活帶來便利。
1 系統的原理及整體設計
1.1 系統原理
GPS模塊接收GPS定位衛星發射的信號,并在其內部經過一系列的信息處理解析出具有一定格式的、可讀性較強的導航電文,其中包含了經緯度和速度等定位信息。系統設計的GPS信息接收系統,主要是基于FPGA完成的,通過Verilog硬件描述語言在FPGA上嵌入NIOSⅡ處理器,并引入μC/OS實時操作系統來優化整個系統的工作,通過C語言編程從GPS模塊輸出的定位信息中提取經緯度和速度等信息,并利用液晶顯示器顯示出來。
(1)GPS接收模塊。能夠捕獲到按一定衛星高度截止角所選擇的待測衛星的信號,并跟蹤這些衛星的運行,對所接收到的GPS信號進行變換、放大等處理,測出GPS信號從衛星到接收機天線的傳輸時間,從而解譯出GPS所發送的導航電文。此過程完全在現有的GPS模塊中完成,本設計只需要了解其輸出數據的格式并完成對它的解析即可。
(2)FPGA及其內部NIOSⅡ處理器部分。通過使用Verilog硬件描述語言在FPGA上搭建一個NIOSⅡ處理器,并描述出FPGA內部邏輯電路的連接方式,然后在NIOSⅡ處理器中移植入一個μC/OS操作系統,采用C語言編程控制整個系統的工作,對GPS導航電文進行解析并控制液晶顯示等[7?10]。
(3)擴展存儲部分。片外的FLASH和SDRAM擴展了系統的容量,可以實現大規模的編程,完成復雜的任務,本設計由于需要操作系統的植入,需要更大的存儲空間,因此在FPGA的外圍設置了FLASH和SDRAM。
(4)液晶顯示部分。FPGA將從GPS模塊解析出來的位置、速度等信息送給液晶,由液晶顯示器顯示出來,并且要保證其能夠實時更新。
(5)下載線部分。通過Altera USB Blaster把電腦里編譯好的程序下載到FPGA中的NIOSⅡ處理器上,并進行在線調試。
2 系統硬件設計
系統硬件設計根據各部分的功能需求主要包括2個部分:FPGA及其外圍電路、GPS模塊及液晶顯示電路。GPS模塊負責接收衛星的定位信息并輸出導航電文,FPGA及其嵌入的NIOS處理器是分析和處理導航電文的核心,液晶顯示屏則顯示可直接讀取的定位信息。
2.1 FPGA及其外圍電路
FPGA芯片選用Altera公司的CycloneⅢ系列芯片,該芯片有相應的完善的設計開發平臺,方便系統的設計與調試[10]。
FPGA配置采用AS+JTAG方式,這樣在調試階段可以使用JTAG方式,最后當程序調試無誤后在使用AS模式把程序燒到配置芯片里去。這樣做的一個明顯的優點是:在AS模式不能下載的時候,可以利用Quartus自帶的工具將配置程序生成.jic文件,用JTAG模式來驗證配置芯片是否損壞。通過JTAG將FPGA的配置程序寫入到片外配置芯片中,掉電不丟失,每次上電時再將其中的程序讀入到FPGA中。另外在FPGA的I/O引腳接入一些LED燈,方便觀察測試結果,也可用來檢驗設計的正確與否。
2.2 GPS接收模塊及液晶顯示電路
GPS接收模塊采用Ublox NEO?6M模塊,它是一個現有的GPS接收模塊,輸出的導航電文格式清晰,便于處理。它將接收到的衛星定位信息在其內部經過簡單的處理輸出給FPGA的I/O端口,在FPGA內部解析之后又通過另外的I/O端口發送給液晶顯示器。液晶顯示選用12864液晶顯示器,并采用串行數據輸入方式,將接收到的數據顯示出來。
2.3 供電部分
因FPGA各管腳所需輸入電壓包括3.3 V,2.5 V和1.2 V,12864液晶需要5 V,GPS模塊所需電壓為3.3 V,因此整個電路板需要多種供電電壓,供電電路的設計思想是輸入5 V電壓,再通過電平轉換電路轉換出其他所需要的電平。
系統供電模塊如圖2所示。其中電源與地之間的電容主要作用是去除電源中耦合的其他信號,以減小甚至是消除 這些信號對電源的影響。
3 系統軟件設計
3.2 系統功能程序設計
4 系統測試
在分別完成硬件電路和軟件程序測試的基礎上,將FPGA的硬件配置文件下載到電路中的片外EPCS4芯片中,將軟件程序下載到已經構建好的NIOSⅡ處理器中,然后進行總體測試。
連接上GPS天線,程序下載完成并等待一段時間后,天線收到定位數據,系統開始解碼并顯示定位信息,這時液晶屏上顯示第一屏定位信息,即經緯度和速度信息,如圖8所示。此時,若按下五向按鍵的向下鍵,液晶顯示信息翻屏,顯示第二屏定位信息,包括航向、時間、日期和設計者信息。
將五向按鍵分別向上和向下撥動,液晶屏顯示信息可以在第一屏和第二屏之間進行切換。可見系統設計正確,能夠提供正確的實時位置和時間信息。
5 結 語
參考文獻
[1] 武建鋒,胡永輝.基于DSP與FPGA的GPS接收機設計[J].微計算機信息,2008,24(4):195?196.
[2] 郭雨梅,劉沛林,朱廣鵬.GPS衛星定位系統設計中幾個問題的探討[J].沈陽工業大學學報,2004,26(1):82?84.
[3] 聶澤東,方康玲,徐新.基于FPGA的貼片式定位導航系統設計[J].計算機工程與應用,2007,43(9):107?109.
[4] 郭雨梅.GPS衛星定位系統的設計與實現[J].沈陽工業大學學報,2004,26(1):171?173.
[5] 石劍民,崔建國.手持式GPS接收機的設計[J].沈陽航空工業學院學報,2005,22(2):55?57.
[6] 王慶,萬德鈞,李滋剛.GPS?OEM衛星定位系統的電文格式及偽距觀測量[J].導航,1995(1):53?60.
[7] 李穎宏,趙俊桃.基于SoPC的嵌入式語音處理系統的設計與實現[J].現代電子技術,2009,32(2):33?35.
[8] 吳年祥,謝發忠.基于FPGA的SOPC嵌入式系統設計[J].中國西部科技,2009(8):3?5.
[9] ALAQEELI Abdulqadir A. Global positional system signal acquisition and tracking using field programmable gate arrays [D]. US: Ohio University, 2002.
[10] 關魯君.可編程邏輯器件現狀及發展趨勢[J].電子科技,2001(6):24?26.
[11] FENG Gang. Block processing technique for global positional system [D]. US: Ohio University, 2003.
[12] 李耀,崔燕.基于NIOSⅡ的導航系統平臺的設計[J]. 微計算機信息,2006,22(6):108?110.
[13] 譚浩強.C程序設計[M].北京:清華大學出版社,1999.
[14] 周航慈.基于嵌入式實時操作系統的程序設計技術[M].2版.北京:北京航空航天大學出版社,2011.
[15] 李爽正.嵌入式操作系統μC/OS?Ⅱ的特點及移植應用研究[J].電腦知識與技術,2008(16):128?129.