FPGA與GPS-OEM板的串行通訊系統設計

發(fā)布時(shí)間:2010-11-8 15:09    發(fā)布者:eetech
關(guān)鍵詞: FPGA , GPS , OEM , 串行通訊
全球定位系統(Global Positioning System簡(jiǎn)稱(chēng)GPS)是美國第二代衛星導航系統。它是在子午儀衛星導航系統的基礎上發(fā)展起來(lái)的,GPS能提供全天候、連續、實(shí)時(shí)高精度導航參數,可實(shí)現三維定位,并可提供精確的時(shí)間信息。GPS系統由空間部分、地面監控部分和地面接收機部分組成。GPS定位技術(shù)的基本原理是利用測距交會(huì )定位的方法。用戶(hù)接收機接收到衛星發(fā)播的信號并利用本機產(chǎn)生的偽隨機噪聲碼取得距離觀(guān)測量和導航電文:再根據導航電文提供的衛星位置和鐘差改正信息來(lái)計算接收機的位置。由于GPS具有全球覆蓋以及精度高、定位速度快、實(shí)時(shí)性好、抗干擾能力強等特點(diǎn)。近年來(lái),GPS在國內外得到廣泛的應用,并在各個(gè)領(lǐng)域發(fā)揮了極大的作用,已成為信息時(shí)代不可缺少的一部分。然而,GPS定位接收機價(jià)格比較昂貴,而且難以滿(mǎn)足特定條件下的應用需求。因此,眾多用戶(hù)期望按照自己的使用環(huán)境和性能要求來(lái)設計和使用個(gè)性化的GPS定位接收機。出于電路面積、占用空間以及電路穩定性和可靠性等因素的考慮,本設計選擇現場(chǎng)可編程門(mén)陣列(FPGA)來(lái)實(shí)現GPS信號的接收、提取以及存儲。

1 OEM板的工作原理和通訊協(xié)議

1.1 OEM板的工作原理

GPS信號接收機的任務(wù)是捕獲按一定衛星高度截止角所選擇的若干待測衛星的信號,并跟蹤這些衛星的運行。然后對所接收到的GPS信號進(jìn)行變換、放大和處理,以便測量出GPS信號從衛星到接收機天線(xiàn)的傳播時(shí)間,再解譯出GPS衛星所發(fā)送的導航電文.最后實(shí)時(shí)計算出觀(guān)測站的三維位置、三維速度和時(shí)間等。

GPS-OEM板是GPS接收機的核心部件。該電路板具有接收GPS信號、處理信號、輸出觀(guān)測信號和定位結果等功能。用戶(hù)利用OEM板進(jìn)行二次硬件開(kāi)發(fā)可研制成各種應用的GPS接收機,F以GARMIN公司的GPS25 OEM板為例,該板作為GPS接收機的主要組成部分,可接收來(lái)自天線(xiàn)單元的信號,并通過(guò)變頻、放大、濾波等一系列處理過(guò)程,從而實(shí)現對GPS衛星信號的跟蹤、鎖定、測量,最后產(chǎn)生計算位置的數據信息(包括:緯度、經(jīng)度、高度、速度、日期、時(shí)間、航向、衛星狀況等),并由RS-232標準串口輸出串行數據,該OEM板為12通道的GPS接收機,可以同時(shí)跟蹤多達12顆GPS衛星,并可連續追蹤GPS衛星,以實(shí)現快速定位。

最終用戶(hù)可以使OEM板工作在出廠(chǎng)設定的默認狀態(tài),此時(shí)無(wú)需設置輸入語(yǔ)句。但要使用GPS的信息,則必須通過(guò)輸出語(yǔ)句來(lái)獲得。

1.2 GPS-OEM板通信協(xié)議

GPS-OEM板的型號甚多、性能各異,但它們的GPS定位信息串行輸出格式大多采用美國國家海洋電子協(xié)會(huì )制定的NMEA-0183通信標準格式。其輸出數據采用的是ASCII碼,數據格式設置為1個(gè)起始位,8個(gè)數據位,1個(gè)停止位,無(wú)奇偶校驗。輸出默認波特率為4800 baud。內容包含緯度、經(jīng)度、高度、速度、日期、時(shí)間、航向以及衛星狀況等信息.常用語(yǔ)句有6種,包括GGA、GLL、GSA、GSV、RMC和VTG。一般應用只關(guān)心其時(shí)間、經(jīng)緯度、地面速度信息等,因此,通常采用GPRMC最小定位信息來(lái)獲得所需信息。不過(guò)要注意,這些設置信息只在系統本次上電,并進(jìn)行設置后才有效。每次重新上電時(shí)均需重新設置。NMEA-0183通信標準格式如下:

$<地址區>,<數據區>,<數據區>,…<校驗區>,<CR><LF>

其中: "$"為語(yǔ)句起始標志; "地址區"為識別符; "數據區"為發(fā)送數據內容; ","為數據區分隔符; "校驗區"內為校驗和;<CR><LF>為語(yǔ)句結束符。

下面以GPRMC語(yǔ)句為例來(lái)介紹。該語(yǔ)句包含時(shí)間、日期、方位、速度和磁偏角等信息,基本上可以滿(mǎn)足一般的導航需求。GPRMC語(yǔ)句的結構為:$GPRMC,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,<lO>,<11>,*hh<CR><LF>。其中, "GP"為交談識別符, "RMC"為語(yǔ)句識別符;"*"是檢驗和識別符。 "hh"是校驗和,它們代表了"$"與"*"之間所有字符的按位異或值(不包括這兩個(gè)字符)。

$GPRMC語(yǔ)句數據區的內容如下:

(1)UTC時(shí)間,hhmmss(時(shí)分秒)格式

(2)定位狀態(tài),A=有效定位,V=無(wú)效定位

(3)緯度ddmm.mmmm(度分)格式(前面的0也將被傳輸)

(4)緯度半球N(北半球)或S(南半球)

(5)經(jīng)度dddmm.mmmm(度分)格式(前面的0也將被傳輸)

(6)經(jīng)度半球E(東經(jīng))或W(西經(jīng))

(7)地面速率(000.0~999.9節,前面的0也將被傳輸)

(8)地面航向(000.0~359.9度,以真北為參考基準,前面的0也將被傳輸)

(9)UTC日期,ddmmyy(日月年)格式

(10)磁偏角(000.0~180.0度,前面的0也將被傳輸)

(11)磁偏角方向,E(東)或W(西)

實(shí)際應用中,一般只需提取時(shí)間和位置信息,并對定位數據的有效性進(jìn)行驗證。              
               
2 串行通信系統的設計

2.1 系統通信原理

由于FPGA接口采用TTL電平,而OEM板的串行通信采用RS-232標準電平,故需電平轉換,電平轉換接口可以通過(guò)MAX202芯片來(lái)實(shí)現。GPS25有兩個(gè)串行口,其端口1可用來(lái)輸入差分修正信息和輸出衛星的原始測量信息,而端口2則用來(lái)輸入設定語(yǔ)句和輸出定位語(yǔ)句,因此,只需將FPGA接口與GPS25串行口2對應連接即可.其接口電路如圖l所示。FPGA的全局時(shí)鐘Global_clk由24 MHz的晶振產(chǎn)生。





2.2 OEM板的個(gè)性配置

當FPGA模塊完成開(kāi)機上電后.其中的異步串行發(fā)送電路將發(fā)送用戶(hù)制定的配置語(yǔ)句,以對OEM板進(jìn)行個(gè)性化的設置。

由于GPS25的默認波特率是4800 bit/s。故應將FPGA中異步串行發(fā)送電路的波特率時(shí)鐘也設置為此值,具體可通過(guò)對系統的全局時(shí)鐘進(jìn)行分頻來(lái)實(shí)現,發(fā)送完結束標志符后,FPGA中的定位信息接收讀取電路即可開(kāi)始工作,并等待數據的接收。本例用$GPRMC語(yǔ)句接收OEM板的定位信息,如果應用系統有特殊要求,還需要進(jìn)行初始化、配置以及對輸出語(yǔ)句進(jìn)行選擇。應該注意的是,NMEA-0183格式中的校驗和無(wú)需發(fā)送。

初始化可用$GRMI語(yǔ)句來(lái)實(shí)現,其結果是:





其中,<1>~<4>項用以設置地理位置,它們的格式與$GPGGA語(yǔ)句的對應項相同,第<5>項為UTC日期,格式為"日日月月年年",第<6>項為UTC時(shí)間,格式與$GPGGA語(yǔ)句相同,第<7>項中,A=自動(dòng)定位,R=設備復位。

OEM板的配置可利用$PGRMC語(yǔ)句來(lái)完成。該語(yǔ)句共有14個(gè)有效項,其中第<10>項選擇波特率,1~7分別代表標準波特率300~19200,配置時(shí),可以用空項表明保持原配置項不變。例如,配置為9600波特、輸出秒脈沖時(shí),其則語(yǔ)句為:





GPS25的輸出語(yǔ)句共有10多條,默認的輸出語(yǔ)句為$GPGGA等5條。用戶(hù)對輸出信息的設定可以通過(guò)$PGRMO語(yǔ)句實(shí)現。其結構是:





其中,<1>為合法語(yǔ)句名,如GPRMC;<2>為語(yǔ)句狀態(tài),1表示禁止該語(yǔ)句輸出,2表示允許該語(yǔ)句輸出,3表示禁止所有語(yǔ)句輸出,4表示允許所有語(yǔ)句輸出。

例如,下列輸入語(yǔ)句只允許OEM板輸出$GPRMC語(yǔ)句:

$PGRMO,3<CR><LF>;禁止所有語(yǔ)句輸出。

$PGRMO,GPRMC,2<CR><LF>;允許$GPRMC語(yǔ)輸出。     

3 定位信息的接收與讀取

3.1 接收模塊的設計

本設計中的接收模塊主要負責接收由OEM板串口2輸出的導航定位信號。該模塊包括對TXD端的起始位檢測電路,采樣電路,波特率發(fā)生器和異步FIFO緩存設計等。本例中的波特率發(fā)生器實(shí)際上是一個(gè)時(shí)鐘分頻器,所產(chǎn)生的分頻時(shí)鐘是波特率時(shí)鐘的16倍,目的是為了在接收時(shí)進(jìn)行精確的采樣,以提出異步串行數據,同時(shí),也可為異步FIFO提供寫(xiě)時(shí)鐘。

接收之前應對從OEM板直接輸出的RXD信號進(jìn)行同步處理,以濾除輸出中的干擾,降低異步時(shí)域數據傳輸中亞穩態(tài)產(chǎn)生的概率,提高系統的穩定性和可靠性。本設計采用兩級D觸發(fā)器來(lái)實(shí)現信號同步。根據異步傳輸的通訊協(xié)議,當電路檢測到OEM板同步后的輸出端syn_TXD發(fā)生負跳變時(shí)。整個(gè)接收采樣電路開(kāi)始工作。為了避免干擾和得到正確的起始位,在波特率時(shí)鐘檢測過(guò)程中,至少必須有一半屬于邏輯0,即8個(gè)時(shí)鐘周期后,才可認定收到是可靠的起始位。當接收到正確的起始位后.接著(zhù)的數據位將每隔16個(gè)采樣周期被采樣一次。即取每一位的第8次的波特率時(shí)鐘采樣值來(lái)確保采樣正確。圖2所示是本系統的串口接收狀態(tài)圖。連續采樣8次后,即一個(gè)字節數據接收完成之后,便可設置位結束標志。每采樣一個(gè)字節數據,都先放入FIFO中緩存。由于GPRMC格式數據所傳輸的最大字節數是72Byte,故當接收完一組數據之后,都要對FIFO的滿(mǎn)信號置位,并由外部的全局時(shí)鐘控制將里面緩存的數據讀出,以供后續部分處理。讀完之后,即可接收到后續模塊的結束標志,然后復位讀使能,以等待下一組數據的到來(lái)。其仿真結果如圖3所示。




3.2數據校驗和存儲設計

要正確讀取OEM板的輸出語(yǔ)句,首先是判斷語(yǔ)句類(lèi)型,其次是存放數據,然后再確定語(yǔ)句的結束標志。本例中將接收的數據存放在FPGA內部設定的RAM中,而對時(shí)間,位置等信息的提取和處理則在其它部分完成。

數據校驗模塊由FIFO的滿(mǎn)信號啟動(dòng)。當檢測到滿(mǎn)信號有效時(shí)。校驗模塊連續的讀取數據并進(jìn)行處理。當檢測到起始標志"$"后,即進(jìn)入數據讀取和檢測。輸出數據是以語(yǔ)句的形式出現的,每條語(yǔ)句代表一種數據,每種數據都有它自己的識別碼,所以,要根據收到的語(yǔ)句識別碼來(lái)判斷該語(yǔ)句是否為所需要的內容(如GPRMC中,"GP"為識別符,"RMC"為語(yǔ)句名)。

根據NMEA-0183通信標準格式的內容,可對所接收到的數據進(jìn)行檢驗。即對接收到的信息逐字節異或。當接收到"*"時(shí),比較下一字符"hh"與實(shí)際異或值是否相等。若相等,即所接收的數據正確;若不等,則所接收數據無(wú)效,系統隨之復位存儲設備,并等待檢測下一組數據。當檢測到結束符<CR><LF>時(shí),標志數據讀取結束,系統向FIFO發(fā)出結束標志,并等待下一次數據檢測。其系統校驗流程圖如圖4所示。





4 結束語(yǔ)

本文結合PFGA和GPS-25型OEM板的硬件特點(diǎn),分析了FPGA和OEM板的串行通訊問(wèn)題,同時(shí)重點(diǎn)分析了讀取GPS定位信息的設計問(wèn)題。
本文地址:http://selenalain.com/thread-37437-1-1.html     【打印本頁(yè)】

本站部分文章為轉載或網(wǎng)友發(fā)布,目的在于傳遞和分享信息,并不代表本網(wǎng)贊同其觀(guān)點(diǎn)和對其真實(shí)性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問(wèn)題,我們將根據著(zhù)作權人的要求,第一時(shí)間更正或刪除。
您需要登錄后才可以發(fā)表評論 登錄 | 立即注冊

相關(guān)視頻

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
快速回復 返回頂部 返回列表
午夜高清国产拍精品福利|亚洲色精品88色婷婷七月丁香|91久久精品无码一区|99久久国语露脸精品|动漫卡通亚洲综合专区48页