DSP課程設計基于DSP的GPGGA提取_第1頁
DSP課程設計基于DSP的GPGGA提取_第2頁
DSP課程設計基于DSP的GPGGA提取_第3頁
DSP課程設計基于DSP的GPGGA提取_第4頁
DSP課程設計基于DSP的GPGGA提取_第5頁
已閱讀5頁,還剩23頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、 華東交大課程設計 基于dsp 的gpgga提取 緒論 gps定位的數(shù)據格式nmer一0183標準應用于gps方面時,數(shù)據串以“$gp”開頭,主要有gga、gl、zda、gsv、gsa、alm等格式。這次設計主要是基于dsp的gpgga定位信息的提取,在實驗箱上實現(xiàn)gpgga定位數(shù)據的提取。第一部分為gps原理的介紹,gps定位的一些原理,再詳細闡述gpgga信息的接收和提取。第二部分為nema0183數(shù)據標準在gps中的應用。第三部分為系統(tǒng)整體設計,硬件的配置,以及整個系統(tǒng)的設計原理圖。第四部分為系統(tǒng)程序設計思路以及程序的實現(xiàn)。第五部分為調試結果與分析。 第一章 gps原理介紹1.1 gps

2、簡介 gps 是英文global positioning system(全球定位系統(tǒng))的簡稱,而其中文簡稱為“球位系”。gps是20世紀70年代由美國陸??杖娐?lián)合研制的新一代空間衛(wèi)星導航定位系統(tǒng) 。其主要目的是為陸、海、空三大領域提供實時、 全天候和全球性的導航服務,并用于情報收集、核爆監(jiān)測和應急通訊等一些軍事目的,簡單地說,這是一個由覆蓋全球的24顆衛(wèi)星組成的衛(wèi)星系統(tǒng)。這個系統(tǒng)可以保證在任意時刻,地球上任意一點都可以同時觀測到4顆衛(wèi)星,以保證衛(wèi)星可以采集到該觀測點的經緯度和高度,以便實現(xiàn)導航、定位、授時等功能。這項技術可以用來引導飛機、船舶、車輛以及個人,安全、準確地沿著選定的路線,準時到

3、達目的地。 gps主要由空間部分、地面控制系統(tǒng)、用戶設備等部分組成,gps的空間部分是由24顆衛(wèi)星組成(21顆工作衛(wèi)星,3顆備用衛(wèi)星),它位于距地表20200km的上空,均勻分布在6 個軌道面上(每個軌道面4 顆) ,軌道傾角為55。衛(wèi)星的分布使得在全球任何地方、任何時間都可觀測到4 顆以上的衛(wèi)星,并能在衛(wèi)星中預存的導航信息。gps的衛(wèi)星因為大氣摩擦等問題,隨著時間的推移,導航精度會逐漸降低;地面控制系統(tǒng)由監(jiān)測站(monitor station)、主控制站(master monitor station)、地面天線(ground antenna)所組成,主控制站位于美國科羅拉多州春田市(colo

4、rado spring)。地面控制站負責收集由衛(wèi)星傳回之訊息,并計算衛(wèi)星星歷、相對距離,大氣校正等數(shù)據;用戶設備部分即gps 信號接收機。其主要功能是能夠捕獲到按一定衛(wèi)星截止角所選擇的待測衛(wèi)星,并跟蹤這些衛(wèi)星的運行。當接收機捕獲到跟蹤的衛(wèi)星信號后,就可測量出接收天線至衛(wèi)星的偽距離和距離的變化率,解調出衛(wèi)星軌道參數(shù)等數(shù)據。根據這些數(shù)據,接收機中的微處理計算機就可按定位解算方法進行定位計算,計算出用戶所在地理位置的經緯度、高度、速度、時間等信息。接收機硬件和機內軟件以及gps 數(shù)據的后處理軟件包構成完整的gps 用戶設備。gps 接收機的結構分為天線單元和接收單元兩部分。1.2 gps 定位原理

5、gps定位的基本原理是根據高速運動的衛(wèi)星瞬間位置作為已知的起算數(shù)據,采用空間距離后方交會的方法,確定待測點的位置。如圖所示,假設t時刻在地面待測點上安置gps接收機,可以測定gps信號到達接收機的時間t,再加上接收機所接收到的衛(wèi)星星歷等其它數(shù)據可以確定以下四個方程式: 上述四個方程式中待測點坐標x、 y、 z 和vto為未知參數(shù),其中di=cti (i=1、2、3、4),di (i=1、2、3、4) 分別為衛(wèi)星1、衛(wèi)星2、衛(wèi)星3、衛(wèi)星4到接收機之間的距離,ti (i=1、2、3、4) 分別為衛(wèi)星1、衛(wèi)星2、衛(wèi)星3、衛(wèi)星4的信號到達接收機所經歷的時間,c為gps信號的傳播速度(即光速)。 四個方

6、程式中各個參數(shù)意義如下:x、y、z 為待測點坐標的空間直角坐標。 xi 、yi 、zi (i=1、2、3、4) 分別為衛(wèi)星1、衛(wèi)星2、衛(wèi)星3、衛(wèi)星4在t時刻的空間直角坐標, 可由衛(wèi)星導航電文求得。vt i (i=1、2、3、4) 分別為衛(wèi)星1、衛(wèi)星2、衛(wèi)星3、衛(wèi)星4的衛(wèi)星鐘的鐘差,由衛(wèi)星星歷提供。vto為接收機的鐘差。 由以上四個方程即可解算出待測點的坐標x、y、z 和接收機的鐘差vto.1.3 gps定位方法 gps定位的方法是多種多樣的,用戶可以根據不同的用途采用不同的定位方法。gps定位方法可依據不同的分類標準,可分為:(1)根據定位所采用的觀測值:1.偽距定位:偽距定位所采用的觀測值為

7、gps偽距觀測值,所采用的偽距觀測值既可以是c/a碼偽距,也可以是p碼偽距。偽距定位的優(yōu)點是數(shù)據處理簡單,對定位條件的要求低,不存在整周模糊度的問題,可以非常容易地實現(xiàn)實時定位;其缺點是觀測值精度低,c/a 碼偽距觀測值的精度一般為3米,而p碼偽距觀測值的精度一般也在30個厘米左右,從而導致定位成果精度低,另外,若采用精度較高的p碼偽距觀測值,還存在as的問題,2載波相位定位 :載波相位定位所采用的觀測值為gps的載波相位觀測值,即l1、l2或它們的某種線性組合。載波相位定位的優(yōu)點是觀測值的精度高,一般優(yōu)于2個毫米;其缺點是數(shù)據處理過程復雜,存在整周模糊度的問題。 根據定位的模式:1. 絕對定

8、位:絕對定位又稱為單點定位,這是一種采用一臺接收機進行定位的模式,它所確定的是接收機天線的絕對坐標。這種定位模式的特點是作業(yè)方式簡單,可以單機作業(yè)。絕對定位一般用于導航和精度要求不高的應用中; 2 相對定位:相對定位又稱為差分定位,這種定位模式采用兩臺以上的接收機,同時對一組相同的衛(wèi)星進行觀測,以確定接收機天線間的相互位置關系;根據獲取定位結果的時間:1、實時定位::據接收機觀測到的數(shù)據,實時地解算出接收機天線所在的位置.。 2 、非實時定位:又稱后處理定位,它是通過對接收機接收到的數(shù)據進行后處理以進行定位得方法。根據定位時接收機的運動狀態(tài):1、動態(tài)定位:就是在進行gps定位時,認為接收機的天

9、線在整個觀測過程中的位置是變化的。也就是說,在數(shù)據處理時,將接收機天線的位置作為一個隨時間的改變而改變的量。動態(tài)定位又分為kinematic和dynamic兩類。 3 靜態(tài)定位:在進行gps定位時,認為接收機的天線在整個觀測過程中的位置是保持不變的。也就是說,在數(shù)據處理時,將接收機天線的位置作為一個不隨時間的改變而改變的量。在測量中,靜態(tài)定位一般用于高精度的測量定位,其具體觀測模式多臺接收機在不同的測站上進行靜止同步觀測,時間由幾分鐘、幾小時甚至數(shù)十小時不等。1.4 gps定位的特點 全球定位系統(tǒng)的主要特點:(1)全球、 全天候工作 (2)定位精度高應用實踐已經證明,gps相對定位精度在50k

10、m以內可達10-6,100-500km可達10-7m,1000km可達10-9m。在300-1500m工程精密定位中,1小時以上觀測的解其平面其平面位置誤差小于1mm,與me-5000電磁波測距儀測定得邊長比較,其邊長較差最大為0.5mm,校差中誤差為0.3mm。(3)、觀測時間短 隨著gps系統(tǒng)的不斷完善,軟件的不斷更新,目前,20km以內相對靜態(tài)定位,僅需15-20分鐘;快速靜態(tài)相對定位測量時,當每個流動站與基準站相距在15km以內時,流動站觀測時間只需1-2分鐘,然后可隨時定位,每站觀測只需幾秒鐘。 第二章 數(shù)據的格式與提取2.1 nmea-0183數(shù)據格式介紹 nmea系列標準是其制定

11、的關于海洋電子設備之間通信接口和協(xié)議的標準,1983年制定了nmea一0183標準。這一標準在兼容nmea一0180和nmea一0182標準的基礎上,增加了gps、測深儀、羅經方位系統(tǒng)等多種設備的接口和通信協(xié)議定義,同時,標準還允許一些特定設備制造商對其設備(如garmin gps一38、tfimbleensign xl)通信自行定義協(xié)議。由于nmea一0183標準的通用性和靈活性,因而在全世界被廣泛使用。 nmea一0183格式定義: (1) 數(shù)據串定義:nema一0183格式數(shù)據串的所有字符均為母的“語句id”,其后是數(shù)據體,數(shù)據字段以逗號分隔,語句末尾為checksum(可選),以回車換

12、行結束。每行語句最多包含82個字符(包括回車換行和“$”符號)。數(shù)據串以逗號分隔符識別,空字段保留逗號。語句結束的checksum 由一個“*”和兩個數(shù)據位的十六進制數(shù)組成。ni、伍a一0183標準允許個別廠商自己定義語句格式,這些語句以“$p”開頭,其后是3個字符的廠家id識別號,后接自定義數(shù)據體。 nmea一0183標準應用于gps方面時,數(shù)據串以“$gp”開頭,主要有gga、gl、zda、gsv、gsa、alm等格式,這些格式的作用分別是:$gp0ga:輸出gps的定位信息;$gpgll:輸出大地坐標信息;$gpzda:輸出utc時間信息;$gpgsv::輸出可見的衛(wèi)星信息;$gpgst

13、:輸出定位標準差信息;$gpgsa:輸出衛(wèi)星dop值信息;$gpalm:輸出衛(wèi)星星歷信息。(2)通信協(xié)議定義:nmea一0183格式通信采用rs232通信標準,rs232標準用于dte和dce。gps和微機之間的通信屬于dte。標準的rs232通信連接采用25針串口(db一25),也可用于現(xiàn)在多數(shù)微機流行的9針串口(de一9)。 在試驗中,不需要了解nmea0183通信協(xié)議的全部信息,僅需要從中挑選出需要的那部分定位數(shù)據,其余的信息忽略掉。gps與掌上電腦通信時,通過串口每秒鐘發(fā)送10條數(shù)據。實際導航應用讀取gps的空間定位數(shù)據時,可以根據需要每隔幾秒鐘更新一次經緯度和時問數(shù)據,不必頻繁地更新

14、數(shù)據,否則,會浪費掌上設備有限的電能。如果和衛(wèi)星通信正常,可以接收到的數(shù)據格式如下:$gpgga,*hh。 一個完整的nema0183語句是從起始符“$gpgga”到終止符“”為止的一段字符串。需要掌握的信息是經緯度、經緯度方向、gps定位狀態(tài)和接收信號的時間。所以當接收到這樣一個完整的nema0183語句時,提取有用信息的方法是:先判定起始符$gpgga的位置,從起始符開始讀人數(shù)據,再通過異或校驗后的語句中尋找字符“,”,然后截取前后兩個“,”之間的字符(串)獲得所關心的數(shù)據,并以回車符為一個cps語句的終止符,得到一個完整的gps信號。在提取出的gps語句中,找尋經緯度所在的逗號位置,讀出

15、經緯度坐標,再將經緯度坐標進行度數(shù)的轉換。因為地圖的坐標是以度數(shù)為標準的?!?2.2 提取gpgga定位數(shù)據 gps 接收機只要處于工作狀態(tài)就會源源不斷地把接收并計算出的gps 導航定位信息通過串口傳送到計算機中。前面的代碼只負責從串口接收數(shù)據并將其放置于緩存, 在沒有進一步處理之前緩存中是一長串字節(jié)流, 這些信息在沒有經過分類提取之前是無法加以利用的。因此, 必須通過程序將各個字段的信息從緩存字節(jié)流中提取出來,將其轉化成有實際意義的, 可供高層決策使用的定位信息數(shù)據。同其他通訊協(xié)議類似, 對gps 進行信息提取必須首先明確其幀結構, 然后才能根據其結構完成對各定位信息的提取數(shù)據主要由幀頭、幀

16、尾和幀內數(shù)據組成, 根據數(shù)據幀的不同, 幀頭也不相同, 主要有$gpgga、$gpgsa、$gpgsv以及$gprmc等。這些幀頭標識了后續(xù)幀內數(shù)據的組成結構, 各幀均以回車符和換行符作為幀尾標識一幀的結束。 由于幀內各數(shù)據段由逗號分割, 因此在處理緩存數(shù)據時一般是通過搜尋ascii碼$來判斷是否是幀頭, 在對幀頭的類別進行識別后再通過對所經歷逗號個數(shù)的計數(shù)來判斷出當前正在處理的是哪一種定位導航參數(shù),并作出相應的處理。 在本次設計中定位數(shù)據如經緯度、速度、時間等均可以從$gpgga幀中獲取得到, $gpgga語句包括17個字段:語句標識頭,世界時間,緯度,緯度半球,經度,經度半球,定位質量指示

17、,使用衛(wèi)星數(shù)量,水平精確度,海拔高度,高度單位,大地水準面高度,高度單位,差分gps數(shù)據期限,差分參考基站標號,校驗和結束標記(用回車符和換行符),分別用14個逗號進行分隔。該數(shù)據幀的結構及各字段釋義如下:$gpgga,m,m,*xx $gpgga:起始引導符及語句格式說明(本句為gps定位數(shù)據); utc時間,格式為hhmmss.sss; 緯度,格式為ddmm.mmmm(第一位是零也將傳送); 緯度半球,n或s(北緯或南緯) ; 經度,格式為dddmm.mmmm(第一位零也將傳送); 經度半球,e或w(東經或西經) ; gps狀態(tài), 0未定位, 1非差分定位, 2差分定位, 3無效pps,

18、6正在估算 ; 使用衛(wèi)星數(shù)量,從00到12(第一個零也將傳送) ; 水平精確度,0.5到99.9; 天線離海平面的高度,-9999.9到9999.9米;m 指單位米 大地水準面高度,-9999.9到9999.9米 ;m 指單位米 差分gps數(shù)據期限(rtcm sc-104),最后設立rtcm傳送的秒數(shù)量,如不是差分定位則為空; 差分參考基站標號,從0000到1023(首位0也將傳送); * 語句結束標志符 xx 從$開始到*之間的所有ascii碼的異或校驗和 回車 換行 第三章 系統(tǒng)總體設計 3.1 dsp介紹 dsp是digital signal processing的縮寫,表示數(shù)字信號處理

19、器,信息化的基礎是數(shù)字化,數(shù)字化的核心技術之一是數(shù)字信號處理,數(shù)字信號處理的任務在很大程度上需要由dsp器件來完成,dsp技術已成為人們日益關注的并得到迅速發(fā)展的前沿技術。數(shù)字信號處理是利用計算機或專用處理設備,以數(shù)字形式對信號進行采集、變換、濾波、估值、增強、壓縮、識別等處理,以得到符合人們需要的信號形式。 dsp技術的應用語音處理:語音編碼、語音合成、語音識別、語音增強、語音郵件、語音儲存等。圖像/圖形:二維和三維圖形處理、圖像壓縮與傳輸、圖像識別、動畫、機器人視覺、多媒體、電子地圖、圖像增強等。 由于dsp可以實現(xiàn)數(shù)字信號的處理和計算。從理論上講,只要有了算法,任何具有計算能力的設備都可

20、以用來實現(xiàn)數(shù)字信號處理。所以在各模塊功能確定的情況下,用dsp軟件開發(fā)平臺code composer studio(簡稱ccs)進行借條函數(shù)的設計,便可以達到預想中的功能。下圖所示為dsp實現(xiàn)解調功能的模塊組成: 圖3.1 dsp實現(xiàn)解調功能的模塊3.2 異步傳輸方式 通用數(shù)字信號處理器(dsp)以其很強的數(shù)據處理能力使其在高速數(shù)字信號處理方面得到廣泛的應用,但是它的通信接口控制能力比較弱,由于dsp的工作頻率很高,如tms320c6201 時鐘頻率為200mhz,adsp21060時鐘頻率為40mhz,故其數(shù)據讀寫周期很短,然而pc機串口讀寫速度較低,最大數(shù)據吞吐量約為115kbps,盡管d

21、sp在與這些慢速外進行數(shù)據交換時可以加入額外的等待周期,但是在實時性要求苛刻,算法復雜的場合,將dsp從這些冗長的等待周期中解放出來,將其時間重點放在處理關鍵的實時任務中去,有著重要的實際意義。故dsp與pc機之間串口通信的速度匹配是保證快速、準確通信的關鍵。 pc機一般帶有一個或兩個內置串口,每個端口的機箱背后有一個9針或25針的公插口。串口是以bit來傳輸數(shù)據的,傳輸數(shù)率取決于uart芯片,該芯片將pc總線上的并行數(shù)據(單字節(jié)或多字節(jié))分割成以比特為單位的串行數(shù)據流,從而實現(xiàn)在串口線纜中的數(shù)據傳輸。 在本次課設中用到了tl16c550b來實現(xiàn)并行數(shù)據和串行數(shù)據的格式轉換,它的最大數(shù)據吞吐量

22、為115kbps,這已經能夠滿足大多數(shù)串行設備的需要了。tl16c550b是通用異步接收/發(fā)送器(uart)芯片,它不僅能夠把從cpu接收的數(shù)據進行并-串轉換,還能夠把從外圍設備或modem接收到的數(shù)據進行串-并轉換。該uart包括一個可編程的波特率產生器??蓪⑤斎氲臅r鐘信號進行分頻,并可產生16倍的時鐘來驅動內部的傳輸邏輯單元。tl16c550還具有modemn控制能力。包含一個處理器中斷系統(tǒng),根據用戶的專用需要而設計,在處理通訊連接時,計算量是最小的。并且,tl16c550b管腳與tl16c750兼容,采用44引腳封裝。它的最高可達的波特率,且波特率發(fā)生器可編程設定,可以由軟件設定的來減少

23、中斷,并有可編程的串行數(shù)據發(fā)送格式:數(shù)據位長度為5、6、7、8。還有奇、偶校驗或無校驗模式,它的停止位長度為1、1.5、2. 同時它內部集成了中斷邏輯,另外通過對其內部的寄存器的設置可以完成相應功能,這些寄存器主要有:線路控制寄存器、fifo控制寄存器、中斷使能寄存器modemn控制寄存器、線路狀態(tài)寄存器等11個寄存器。這些寄存器分別用于實現(xiàn)通信參數(shù)的設置、對線路及modemn的狀態(tài)訪問、數(shù)據的發(fā)送和接收及中斷管理功能。因而它可以與大多數(shù)的cpu實現(xiàn)無縫接口、使用很方便。 圖3.2 c5402與機串行通信的硬件電路圖 圖中tl16c550b的cs0和cs1都接高電平,cs2 接c5402的外部

24、i/o空間,選擇線is。當、端外接晶振時,以4800的波特率與機通信,所以,波特率因子寄存器的低位設為30hz,高位設為00hz。tl16c550b的數(shù)據線d0-d7數(shù)據線相連,tl16c550的片內寄存器選擇線接c5402的a0-a2。3.2 系統(tǒng)硬件部分 以下為系統(tǒng)硬件部分pc機的連接與異步串口通信在實驗箱上實現(xiàn)的原理圖: 圖3.3 系統(tǒng)整體硬件部分電路圖 第四章 系統(tǒng)程序設計4.1 ccs介紹 ccs(code composer studio)代碼調試器是一種集成開發(fā)環(huán)境(ide,integrated development environment)。 ccs是一種針對標準tms320調

25、試器接口的交互式方法。ccs目前有ccs1.1 ccs1.2 ccs2.0等三個不同的版本,每個版本應有cc2000(針對c2xx)ccs5000(針對c54xx)ccs6000(針對c6x)等三個不同的型號。我們所使用的是ccs5000、1.2的版本。這里所說明的ccs的一切問題都是基于ccs5000所討論,對其他版本的使用其差別不是很大,請參考其他有關資料。 ccs5000具有以下特性: (1) ti編譯器的完全集成的環(huán)境 ccs5000目標管理系統(tǒng),內建編輯器,所有的調試和分析能力集成在一個windows環(huán)境中。 (2) 對c和dsp匯編文件的目標管理 目標編輯器保持對所有文件及相關內容

26、的跟蹤。它只對最近一次編譯中改變過的文件重新編譯,以節(jié)省編譯時間。 (3)高集成的編輯器調整c和dsp匯編代碼 ccs5000的內建編輯器支持c和匯編文件的動態(tài)語法加亮顯示,使用戶能很容易地閱讀代碼和當場發(fā)現(xiàn)語法錯誤。 (4) 編輯和調試時的后臺編輯 用戶在使用編譯器和匯編器時沒有必要退出系統(tǒng)到dos環(huán)境中,因為ccs5000會自動將這些工具裝載在它的環(huán)境中。在其窗口中,錯誤會加亮顯示,只要雙擊錯誤就可以直接到達出錯處。 (5) 在含有浮點并行調試管理器(pdm)的原有的ms窗口下支持多處理器,ccs5000在 windows95和windows-me中支持多處理器。pdm允許將命令傳播給所有

27、的或所選擇的處理器。 (6) 任何算法點觀察信號的圖形窗口探針 圖形顯示窗口使用戶能夠觀察時域或者頻域的信號。對于頻域圖,fft在主機內執(zhí)行, 這樣就可以觀察所感興趣的部分而無須改變它的dsp代碼。圖形顯示也可以同探針連接,當前顯示窗口被更新時,探針被指定,這樣當代碼執(zhí)行到達該點時,就可以迅速地觀察到信號。 (7) 文件探針在算法處通過文件提取或加入信號或數(shù)據 ccs5000允許用戶從pc機讀或寫信號流。而不是實時的讀信號,這就可以用已知的例子來仿真算法。(8) 圖形分析 ccs5000的圖形分析能力在其環(huán)境中是集成的。(9) 在后臺(系統(tǒng)命令)執(zhí)行用戶的dos程序 用戶可以執(zhí)行ccs5000

28、中的dos程序,并將其輸出以流水方式送到ccs5000的輸出窗口。且允許用戶將應用集成到ccs5000。4.2 系統(tǒng)程序設計與流程圖 gps模塊以9600波特的速率串行輸出數(shù)據。有用的時間、經緯度及海拔高度信息就包含在其中。實驗的任務就是從選出有用的信息并送液晶顯示器顯示。實驗的導航電文由串口調試助手導入,導航電文里頭的gga格式的數(shù)據就是我們這次實驗要接收的,找到該組的有用信息。在字符串找到指定的字符串,并返回它的位置。在這里就找“$gpgga”和“,”找到后,把這個位置以后的字符串重新賦給一個以前的字符串,一直循環(huán),就可以找到所有的信息了。具體步驟如下: 系統(tǒng)進行初始化,主要是對dsp芯片

29、的asp(異步串口)進行初始化,將dsp異步通信口得數(shù)據傳送率設為9600bit/s,通信數(shù)據格式的設置為1個起始位,8位數(shù)據位,一個停止位,并設置接受數(shù)據緩沖區(qū)。對于波特率的設置可在串口驅動程序中設置。 使程序指向接受數(shù)據緩沖區(qū)首地址,系統(tǒng)處于讀接受狀態(tài)。 采用查詢方式、進行gps數(shù)據流的數(shù)據起始位置時,開始數(shù)據接收,否則就放棄,重新開始查詢過程。 判斷是否再次查找到$f符號,若是,則跳回第二步,重新進行數(shù)據接收。 接收數(shù)據并查找所需的數(shù)據前面的逗號的位置。 將查找到的逗號后的數(shù)據保存到中間數(shù)組變量中。 數(shù)據處理,篩選出時間、經度、緯度等基本數(shù)據進行傳輸并調整格式在lcd上顯示。 yydsp

30、串口初始化數(shù)據接收 是 $ 是查找到所需數(shù)據前面逗號的位置將數(shù)據賦給輸出的中間變量發(fā)送數(shù)據到pc機上調整數(shù)據格式在lcd上顯示 圖4.2 程序設計流程圖4.3 系統(tǒng)程序設計4.3.1 初始化程序模塊:init_exint1_interrupt();init_gpio();init_lcd();lcd_clear(0);cur_row=2;cur_col=20; /*列*/ lcd_pr_chars( uart test ,16);cur_row=3;cur_col=1; lcd_pr_chars(-,23); close_led_sign(); close_led_data(); close_

31、led_traf(); waitloop( 0x0400 );4.3.2 鍵盤控制程序模塊 本課設中利用鍵盤來控制顯示,設置鍵盤值1鍵來設置控制,下載成功后,按1鍵即開始進行接收顯示。 while(1) flag=0xffff; i=get_key(); waitloop( 0x040000l ); j=get_key(); if(i=j) key_val=j; /*save key_val*/ while(get_key() asm(tnop); /*wait blank_key*/ switch(key_val) /*由鍵值來控制*/ default: break; case 1: lcd

32、_clear(0); /*lcd清屏幕*/ uart_rece(); /*調用 uart_race()接收函數(shù)*/ break;4.3.3 中斷程序程序模塊: void init_exint1_interrupt() ifr=0xffff; imr=0x0002; /*tint=imr.3 exint1=imr.1*/ asm(trsbxtintm);interrupt void exint1_isr() close_led_sign(); close_led_data(); close_led_traf();/ while(!(gpiosr&0x01) asm(tnop); asm(tnop

33、); / flag=flag; flag=0; cur_row=7; cur_col=15; lcd_pr_chars( uart_stop ,17);4.3.4 數(shù)據處理模塊定位信息通過串口來實現(xiàn)傳輸。本程序的關鍵在于串口數(shù)據的提取及相關處理操作。前面的代碼負責從串口接收數(shù)據并將其放置于緩存。在沒有進一步處理之前緩存是一長串字節(jié)流,這些信息在沒有經過分類提取之前是無法加以利用的。因此,必須通過程序將各個字段的信息從緩存字節(jié)流中提取出來,將其轉化成有實際意義的,可供高層決策使用的定位信息數(shù)據。同期他通訊協(xié)議類似。對該實驗采用nmea_0183xieyi協(xié)議的gps固定數(shù)據輸出語句($gpgga

34、)數(shù)據結構。先定義305個數(shù)據的數(shù)組來存放導航電文的串行數(shù)據,逗號、時間、緯度、及經度的中間接收數(shù)組,以及輸出的字符數(shù)組。void uart_rece(void) /char buf16; unsigned int data305,mc,tm7,weidu10,jingdu11,geshu3,deep5; unsigned int jj,ii,ni; unsigned int locate=0;char chartable10=0,1,2,3,4,5,6,7,8,9;/*定義顯示值*/由于串口數(shù)據的讀取速度和對數(shù)據中參數(shù)的提取操作速度需要匹配,所以難免會有數(shù)據的丟失,為了保證參數(shù)的正確提取,程

35、序的開始就需要對語句的正確性進行控制。處理時一般先通過對幀頭的判斷,即對“$gpgga”幀進行判斷。由于幀內個數(shù)據段由逗號分割,因此在處理緩存數(shù)據時一般是通過搜尋ascii碼$來判斷是否是幀頭,在對幀頭的類別進行識別后再通過所經歷逗號個數(shù)的計數(shù)來判斷出當前處理地是那一種定位導航參數(shù),并作出相應的處理。判斷數(shù)據格式的程序如下: do jj=uart_rx();/*串行數(shù)據輸出的調用函數(shù)*/ if(!flag) asm(tnop); break; while(jj=0xffff);if(locate300)/是發(fā)送數(shù)據存放在數(shù)組中的位置 datalocate=jj; locate+; /locat

36、e自加到300 uart_tx(jj);else ii=0; while(ii300) /接收并識別gga數(shù)據的幀頭 if(dataii=36) if(ii+1)300&dataii+1=71)if(ii+2)300&dataii+2=80)if(ii+3)300&dataii+3=71)if(ii+4)300&dataii+4=71)if(ii+5)300&dataii+5=65)break; /*識別gpgga幀*/4.3.5定位信息的提取與lcd顯示模塊 一個完整的nmea-0183語句是從信息起始標志“$”、數(shù)據分隔符“,”和信息結束標志符“”為止的一段字符串,需要掌握的信息是時間、經

37、度及緯度。所以當接收到這樣一個完整的語句時,提取有用信息的方法首先是判斷起始符的位置,從起始符開始讀入數(shù)據、再通過異或校驗后的語句中尋找自負,然后截取前兩個,之間的字符串獲取所關心的數(shù)據,并以回車符為一個gps語句的終止符,得到一個完整的gps信號。 for(;ii400;ii+)/$gpgga,061820,2844.3546,n,11551.8844,e,1,10,0.8,57.9,m,-5.6,m,*6c if(dataii=36) break;if(mc=1) tmni=dataii;ni+; /*提取時間*/else if(mc=2) weiduni=dataii;ni+; /*提取

38、緯度*/else if(mc=4) jingduni=dataii;ni+;/*提取經度*/ else if(mc=7) geshuni =dataii;ni+;/*提取衛(wèi)星數(shù)據*/else if(mc=9)deepni=dataii;ni+;/*提取海拔高度*/ if(dataii=44) mc+;ni=0;/*逗號計數(shù)*/ 篩選出時間、經度、緯度等基本數(shù)據進行傳輸并調整在lcd上顯示,以下是顯示時間的一個處理過程 lcd_pr_chars(md: ,5); for(ii=0;ii6;ii+) lcd_nextchar(chartabletmii-48);/*化ascii值為數(shù)值*/ /*顯

39、示時間*/ 第五章 系統(tǒng)調試5.1 調試器介紹: 一個很好而小巧的串口調試工具,支持常用的150-115200bps波特率,能設置校驗、數(shù)據位和停止位,能以ascii碼或十六進制接收或發(fā)送任何數(shù)據或字符(包括中文),可以任意設定自動發(fā)送周期,并能將接收數(shù)據保存成文本文件,能發(fā)送任意大小的文本文件。支持串口號高于9的串口(例如 com10、com255 等)如圖為課設中用到的串口調試器 圖5.1 串口調試器 5.2 系統(tǒng)調試過程 連接好電源線和仿真器,在打開實驗箱電源前,先用交叉串口線連接實驗箱串口和pc機串口1。編譯并運行程序后,打開串口調試器,設置串口為com1,波特率為9600,并打開串口

40、。在發(fā)送窗口輸入字符或數(shù)字,選擇自動發(fā)送或手動發(fā)送。圖5.1即為設置的串口圖。 在ccs軟件中完成程序并通過編譯生成.out文件,再加載.out文件運行,打開串口調試器,把要發(fā)送的數(shù)據粘貼在發(fā)送端窗口,如圖發(fā)送數(shù)據:$gpgga,061825,2844.3546,n,11551.8846,e,1,10,0.8,58.3,m,-5.6,m,*6e時,串口接收到的數(shù)據 圖5.2 數(shù)據發(fā)送圖5.3 調試結果與分析 在實驗箱上按鍵1開始lcd上顯示gpgga,接著顯示uart start receive最后開始顯示提取后的數(shù)據: 圖5.3 lcd顯示 結束語 這次設計是基于dsp的gpgga定位信息的

41、提取,首先論述了gps定位的原理以及方法,介紹了nema-0183數(shù)據格式定義,以及gpgga提取的定位數(shù)據的特點以及相應的格式,接著又介紹了系統(tǒng)總體總體設計的原理圖,異步傳輸?shù)姆绞?,硬件部分的一些簡單介紹,再接著介紹了系統(tǒng)的程序設計,詳細的闡述了每個模塊的實現(xiàn)過程,最后再論述了系統(tǒng)調試的過程,對結過的分析。 通過這一周的課設,對整個基于dsp gpgga定位數(shù)據的提取過程有了一個全面的了解,深入理解了異步串口通信的實現(xiàn)方法,通過實踐提高了自身的分析解決問題的能了,以及團隊合作解決問題的能了。 參考文獻1 李莉編著,dsp原理與應用 北京:中國水利水電出版社,20042 gps定位的數(shù)據格式,

42、nmea0183數(shù)據格式3 張雄偉 陳亮 徐光輝編著,dsp芯片的原理與開發(fā)應用 北京:電子工業(yè)出版社,2006 致謝 在整個課程設計的過程中,指導老師胡輝老師給予我細心的指導和幫助,讓我在這次課設的課題中學會了團隊合作完成課題,加強了對dsp的了解,在課設中鍛煉了自己的動手操作能力。 在設計過程中,同學們也給了我很大的幫助,特別是實驗室的王濤同學,幫助我們解決了驅動下載中遇到的一些問題,還有朱路老師把實驗箱借給我們調試了一天,最后才能順利的完成這個課設的任務。 最后還要感謝同組成員李金森和李偉同學的配合跟合作,沒有大家的共同努了,也就沒有最后成功的結果,在此對以上所有人表示誠摯的感激。 附錄

43、源代碼:#include #include mmdrv.h#include mcbsp.h#include cpu_reg.h#include lcd_86.hioport unsigned portefff;#define io_374 portefffvoid init_exint1_interrupt();void init_gpio(void);void uart_rece(void);void uart_trans(void);void uart_trans_byte(unsigned int data);unsigned int flag=0xffff;char tx_re_buf

44、1=0x38;void main(void)unsigned int i,j;unsigned int key_val;swwsr=0x7fff;swcr=0x0001;bscr=0x8006;clkmd=pll_div_init;waitloop(0x0400);clkmd=pll_lock_init_x(9);waitloop(0x0400);pmst=0x0168;io_374=0xffff; /*374 enable*/初始化系統(tǒng)init_exint1_interrupt();init_gpio();init_lcd();lcd_clear(0);cur_row=2;cur_col=2

45、0; /*列*/ lcd_pr_chars( uart test ,16);cur_row=3;cur_col=1; lcd_pr_chars(-,23); close_led_sign(); close_led_data(); close_led_traf(); waitloop( 0x0400 ); while(1) flag=0xffff; i=get_key(); waitloop( 0x040000l ); j=get_key(); if(i=j) key_val=j; /*save key_val*/ while(get_key() asm(tnop); /*wait blank_

46、key*/ switch(key_val) /*由鍵值來控制*/ default: break; case 1: lcd_clear(0); /*lcd清屏幕*/ uart_rece(); /*調用 uart_race()接收函數(shù)*/ break; void init_exint1_interrupt() ifr=0xffff; imr=0x0002; /*tint=imr.3 exint1=imr.1*/ asm(trsbxtintm);interrupt void exint1_isr() close_led_sign(); close_led_data(); close_led_traf

47、();/ while(!(gpiosr&0x01) asm(tnop); asm(tnop); / flag=flag; flag=0; cur_row=7; cur_col=15; lcd_pr_chars( uart_stop ,17);void init_gpio(void) gpiocr=0xfffe; /*exint=gpi0.0=input=0,nand_cs=gpi0.6=output=1*/ gpiosr=0x0040; /*gpi0.6=output=1*/void uart_rece(void) /char buf16; unsigned int data305,mc,tm7,weidu10,jing

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論