夏路華
摘 要:GPS作為當前最先進的定位導(dǎo)航工具,可以提供當?shù)氐膶?dǎo)航信息,供人們參考,大大解決了野外失蹤和陌生城市迷路等生活難題,方便了人們的出行,這也使得GPS越來越廣泛地應(yīng)用到人們的生活中。而GPS數(shù)據(jù)采集器,成為數(shù)字采集GPS定位信息的重要工具,在GPS導(dǎo)航系統(tǒng)中發(fā)揮著巨大作用。該文首先介紹了GPS在當代社會中的發(fā)展,介紹了GPS數(shù)據(jù)采集器的原理(GPS接收機利用天線接收GPS衛(wèi)星發(fā)出的信號,這個信號經(jīng)過GPS專業(yè)的芯片處理,得到數(shù)字信號,將這些數(shù)字信號串行輸出,經(jīng)過編碼處理,將數(shù)字信號進行串轉(zhuǎn)并處理,得到字節(jié)數(shù)據(jù)傳輸,最后通過后續(xù)的解析模塊,解調(diào)出有用的定位數(shù)據(jù),從而得到用戶的位置、時間等信息,進而實現(xiàn)用GPS來導(dǎo)航定位的目的),設(shè)計指標以及相關(guān)的設(shè)計方法,GPS采集器各個模塊所具有的功能等。
關(guān)鍵詞:GPS數(shù)據(jù)采集器 簡介 設(shè)計指標
中圖分類號:TP27 文獻標識碼:A 文章編號:1674-098X(2017)04(c)-0139-03
一般來說,GPS(Global Positioning System)包含三大部分,其中之一就是GPS接收機,而GPS接收機的核心模塊便是GPS數(shù)據(jù)采集器。在露天的情況,GPS可支持全天24 h不間斷工作,生活中幾乎所有惡劣的環(huán)境下都可以通過GPS設(shè)備接收到GPS信號。當人們每到一個陌生的地方,GPS都可以提供當?shù)氐膶?dǎo)航信息,供人們參考,大大解決了野外失蹤和陌生城市迷路等生活難題,方便了人們的出行這也使得GPS越來越廣泛地應(yīng)用到人們的生活中。
現(xiàn)在越來越多的人開始使用智能手機,而現(xiàn)在幾乎所有的智能手機里都包含GPS模塊,這就表明GPS的應(yīng)用已經(jīng)潛移默化地深入到人們的生活中了。由于我國智能手機市場不斷變得龐大,這就意味著我國很有可能會成為世界上最具潛力的衛(wèi)星導(dǎo)航應(yīng)用市場。
GPS技術(shù)在智能手機上的應(yīng)用將會給國內(nèi)乃至全球的市場帶來空前的發(fā)展?jié)摿?,相信在不久的將來,它會超過GPS在汽車領(lǐng)域方面的應(yīng)用,成為GPS技術(shù)應(yīng)用的最大市場份額?,F(xiàn)在可靠成熟的GPS技術(shù),結(jié)合移動通信領(lǐng)域的基站,可提供精度最高、最直觀的位置服務(wù),用戶可以通過手機在線上網(wǎng)或者下載地圖軟件,便可實現(xiàn)5 m精度的定位。這將有利于各種物流傳輸服務(wù),方便大眾或者司機了解周圍的交通情況,只要利用GPS提供的定位信息,就能極大地提高工作效率,為生活帶來便利。
隨著近幾年FPGA和現(xiàn)代電子設(shè)計的飛速發(fā)展,使得人們的需求和想法越來越容易用FPGA得到實現(xiàn)。所以我們可以充分利用這樣資源,將GPS數(shù)據(jù)采集器的模塊化原理,抽象成電路模型,并用Verilog HDL語言將其描述出來,不斷簡化電路,從而將此課題的GPS數(shù)據(jù)采集器設(shè)計在FPGA上得到功能實現(xiàn)。這樣做的好處就是不但縮小其體積,而且增加了設(shè)計的靈活性,減少了開發(fā)周期?;谶@種思想,就可以利用Verilog HDL來設(shè)計實現(xiàn)GPS數(shù)據(jù)采集器的核心功能。
1 GPS數(shù)據(jù)采集器簡介
GPS接收機利用天線接收GPS衛(wèi)星發(fā)出的信號,這個信號經(jīng)過GPS專業(yè)的芯片處理、濾波、放大、模數(shù)轉(zhuǎn)換,再通過芯片的電平轉(zhuǎn)換,從而得到數(shù)字信號,并將這些數(shù)字信號串行輸出,經(jīng)過編碼處理,使數(shù)字信號滿足NMEA-0183 協(xié)議格式輸出給下一功能模塊,之后將數(shù)字信號進行串轉(zhuǎn)并處理,得到字節(jié)數(shù)據(jù)傳輸,最后通過后續(xù)的解析模塊,解調(diào)出有用的定位數(shù)據(jù),從而得到用戶的位置、時間等信息,進而實現(xiàn)用GPS來導(dǎo)航定位的目的。
GPS導(dǎo)航芯片一般只接受Ll波段的衛(wèi)星信號。該芯片輸出的定位信號,遵循NMEA-0813協(xié)議,其中包含6種語句,分別是$GPGGA,$GPGLL,$GPGSA,$GPGSV,$GPRMC,$GPVTG。整個方案首先通過串口模塊接收GPS 導(dǎo)航芯片發(fā)出的串行信號,輸出為字節(jié)數(shù)據(jù)流,將字節(jié)流數(shù)據(jù)傳輸給解析模塊進行處理,解析模塊根據(jù)NMEA-0183 協(xié)議格式,通過算法處理,提取出所需要的有用信息,以此來實現(xiàn)GPS數(shù)據(jù)采集器的基本功能。
2 GPS數(shù)據(jù)采集器系統(tǒng)框圖
具體情況見圖1。
3 GPS數(shù)據(jù)采集器的設(shè)計指標
根據(jù)GPS數(shù)據(jù)采集器在GPS系統(tǒng)中的作用,對GPS數(shù)據(jù)采集器的設(shè)計提出以下指標要求。
(1)在串行總線默認高電平狀態(tài)下,能夠識別并讀取串行數(shù)據(jù)的起始位。
(2)能夠?qū)⒋袛?shù)據(jù)轉(zhuǎn)換為并行的8位字節(jié)數(shù)據(jù)。
(3)能夠按NMEA-0813協(xié)議,識別$GPRMC語句。
(4)能夠識別接收數(shù)據(jù)時的狀態(tài)。
(5)能將ASCII數(shù)據(jù)轉(zhuǎn)換為可認識的十進制數(shù)據(jù),并從$GPRMC語句中讀出定位信息。
4 利用Verilog HDL設(shè)計GPS數(shù)據(jù)采集器
Verilog HDL(Hardware Description Language)是一種硬件描述語言,它的語法結(jié)構(gòu)有些類似C語言,不需要特定的運行環(huán)境,就可以用記事本打開編輯,十分方便。它能描述的抽象內(nèi)容十分廣泛,除了邏輯電路圖和邏輯表達式,其他數(shù)字電路系統(tǒng)的邏輯功能都能用它來描述。它可以從多種抽象設(shè)計層次上,對數(shù)字電路系統(tǒng)進行描述。在新的標準下,Verilog HDL開始支持更多接口,同時語法也更加簡易精煉,如今已經(jīng)成為世界最流行的硬件描述語言之一。
利用Verilog HDL設(shè)計流程如下:
(1)文本程序輸入(該實驗是在Notepad++軟件上編輯Verilog代碼程序)。
(2)功能仿真(根據(jù)模塊功能,寫模塊對應(yīng)的TestBench,并在ModelSim中查看邏輯功能是否正確)。
(3)綜合(將Verilog HDL語言或原理圖轉(zhuǎn)換成綜合網(wǎng)表)。
(4)布局布線(根據(jù)選定的FPGA器件型號,將網(wǎng)表布到器件中,并估算出相應(yīng)的時延)。
(5)時序仿真(根據(jù)時延利用ModelSim做后仿真)。
基于Verilog HDL的GPS數(shù)據(jù)采集器的設(shè)計,對各個模塊的功能進行更加系統(tǒng)的優(yōu)化,在傳統(tǒng)的設(shè)計方法上更加精煉,這樣就可以使硬件的開發(fā)過程和制造過程得以簡化。設(shè)計采用的是模塊設(shè)計,主要分為串口、解析和分頻這3個模塊。串口模塊是將GPS芯片接收的串行數(shù)據(jù)轉(zhuǎn)化成8位并行數(shù)據(jù),供解析模塊使用,然后解析模塊將接收的數(shù)據(jù)進行處理,根據(jù)相應(yīng)的定位協(xié)議,提取有效的定位信息,而分頻模塊主要是為了平衡兩個模塊的時鐘信號。
(1)串口模塊。
GPS數(shù)據(jù)采集器需要與GPS芯片進行數(shù)據(jù)通信,所以要用到串口模塊,該實驗采用的串口模塊主要涉及到串口的接收模塊,串口通信的一個字符幀格式如圖所示(見圖2)。
在串口的總線上高電平是默認的狀態(tài),當一幀數(shù)據(jù)開始傳輸時,必須先拉低電平,這就是第0位的作用。第0位過后就是8個數(shù)據(jù)位,這8位數(shù)據(jù)就包含著GPS的定位信息,最后便是校驗位或者停止位。此實驗主要對總線默認狀態(tài)下,由高電平轉(zhuǎn)低電平時的檢測做了一定研究。
(2)解析模塊。
解析模塊主要的功能是將串口輸出的并行數(shù)據(jù),根據(jù)GPS所遵循的NMEA-0813協(xié)議,對其進行提取與處理,得到GPS相關(guān)定位信息。
NMEA(National Marine Electronics Association)協(xié)議是為了在不同的GPS導(dǎo)航設(shè)備中建立統(tǒng)一信息格式標準,由美國國家海洋電子協(xié)會制定。NMEA-0813是現(xiàn)在比較流行的NMEA格式。
NMEA-0813協(xié)議一般采用ASCII碼編碼,利用串行通信來傳輸,傳輸?shù)拿總€數(shù)據(jù)包包含1個起始位,8個數(shù)據(jù)位,1個停止位,沒有校驗位。NMEA-0813協(xié)議的格式,以“$”作為語句的起始標志,后面緊跟6種常用的語句,GPGGA,GPGLL,GPGSA,GPGSV,GPRMC,GPVTG。之后就是各個語句不同格式的定位信息,一般有40個字符左右的長度。每種語句尾部會出現(xiàn)“*”標志,作為校驗和前綴,最后以校驗和數(shù)值,回車和換行結(jié)束語句,這就是NMEA-0813協(xié)議的具體內(nèi)容。
(3)分頻模塊。
分頻模塊是整個實驗中最簡單的模塊,由于解析模塊的時鐘信號和串口模塊的時鐘信號頻率不同,所以需要用到分頻模塊。經(jīng)過理論上的分析,解析模塊每個時鐘信號處理1個起始位和8個數(shù)據(jù)位,一共9位,所以串口模塊的時鐘頻率是解析模塊時鐘頻率的9倍。因此分頻模塊是9倍分頻。
根據(jù)以上設(shè)計的3個子模塊,將其進行整合到一個總模塊,就必須將3個模塊相互連接起來,才能實現(xiàn)數(shù)據(jù)采集的功能。整個GPS數(shù)據(jù)采集器的結(jié)構(gòu)圖如圖3所示。
其中rs232_rx為GPS芯片輸出的串行數(shù)據(jù),clk_bps高電平時為接收信號狀態(tài),clk,rst_n分別是時鐘信號和復(fù)位信號,data_ready為接收并行數(shù)據(jù)有效信號,bps_start高電平為數(shù)據(jù)接收狀態(tài),count為串行數(shù)據(jù)位計數(shù)器,data為處理后的數(shù)據(jù)。
5 結(jié)語
文章用到了我們平時所學的串行通信知識和Verilog HDL語言的基本語法,將數(shù)字電路系統(tǒng)的設(shè)計轉(zhuǎn)移到軟件平臺上,大大降低了開發(fā)的周期,提高了設(shè)計的靈活性。在經(jīng)過軟件上的優(yōu)化和先進的工藝,理論上可以將整個GPS數(shù)據(jù)采集器的體積大大縮小,同時還能降低它的功耗。通過相關(guān)的原理的簡介進一步能認識到GPS數(shù)據(jù)采集器的內(nèi)部結(jié)構(gòu)和相關(guān)模塊的作用,提高對GPS數(shù)據(jù)采集器的了解。
參考文獻
[1] 夏宇聞,甘偉.Verilog HDL入門[M].3版.北京:北京航空航天大學出版社,2008.
[2] J.Bhasker.Verilog HDL Synthesis,A Practical Primer[M].Star Galaxy,1998.
[3] J.Bhasker.A Verilog HDL Primer,Third Edition[M].Star Galaxy,2005.