2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩27頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

1、<p><b>  緒論</b></p><p>  GPS定位的數(shù)據(jù)格式NMER一0183標(biāo)準(zhǔn)應(yīng)用于GPS方面時,數(shù)據(jù)串以“$GP”開頭,主要有GGA、GL、ZDA、GSV、GSA、ALM等格式。</p><p>  這次設(shè)計主要是基于DSP的GPGGA定位信息的提取,在實驗箱上實現(xiàn)GPGGA定位數(shù)據(jù)的提取。</p><p>  第

2、一部分為GPS原理的介紹,GPS定位的一些原理,再詳細(xì)闡述GPGGA信息的接收和提取。</p><p>  第二部分為NEMA—0183數(shù)據(jù)標(biāo)準(zhǔn)在GPS中的應(yīng)用。</p><p>  第三部分為系統(tǒng)整體設(shè)計,硬件的配置,以及整個系統(tǒng)的設(shè)計原理圖。</p><p>  第四部分為系統(tǒng)程序設(shè)計思路以及程序的實現(xiàn)。</p><p>  第五部分為調(diào)

3、試結(jié)果與分析。</p><p>  第一章 GPS原理介紹</p><p><b>  1.1 GPS簡介</b></p><p>  GPS 是英文Global Positioning System(全球定位系統(tǒng))的簡稱,而其中文簡稱為“球位系”。GPS是20世紀(jì)70年代由美國陸??杖娐?lián)合研制的新一代空間衛(wèi)星導(dǎo)航定位系統(tǒng) 。其主要目的是為陸

4、、海、空三大領(lǐng)域提供實時、 全天候和全球性的導(dǎo)航服務(wù),并用于情報收集、核爆監(jiān)測和應(yīng)急通訊等一些軍事目的,簡單地說,這是一個由覆蓋全球的24顆衛(wèi)星組成的衛(wèi)星系統(tǒng)。這個系統(tǒng)可以保證在任意時刻,地球上任意一點都可以同時觀測到4顆衛(wèi)星,以保證衛(wèi)星可以采集到該觀測點的經(jīng)緯度和高度,以便實現(xiàn)導(dǎo)航、定位、授時等功能。這項技術(shù)可以用來引導(dǎo)飛機、船舶、車輛以及個人,安全、準(zhǔn)確地沿著選定的路線,準(zhǔn)時到達目的地。</p><p>  

5、GPS主要由空間部分、地面控制系統(tǒng)、用戶設(shè)備等部分組成,GPS的空間部分是由24顆衛(wèi)星組成(21顆工作衛(wèi)星,3顆備用衛(wèi)星),它位于距地表20200km的上空,均勻分布在6 個軌道面上(每個軌道面4 顆) ,軌道傾角為55°。衛(wèi)星的分布使得在全球任何地方、任何時間都可觀測到4 顆以上的衛(wèi)星,并能在衛(wèi)星中預(yù)存的導(dǎo)航信息。GPS的衛(wèi)星因為大氣摩擦等問題,隨著時間的推移,導(dǎo)航精度會逐漸降低;地面控制系統(tǒng)由監(jiān)測站(Monitor Sta

6、tion)、主控制站(Master Monitor Station)、地面天線(Ground Antenna)所組成,主控制站位于美國科羅拉多州春田市(Colorado Spring)。地面控制站負(fù)責(zé)收集由衛(wèi)星傳回之訊息,并計算衛(wèi)星星歷、相對距離,大氣校正等數(shù)據(jù);用戶設(shè)備部分即GPS 信號接收機。其主要功能是能夠捕獲到按一定衛(wèi)星截止角所選擇的待測衛(wèi)星,并跟蹤這些衛(wèi)星的運行。當(dāng)接收機捕獲到跟蹤的衛(wèi)星信號后,就可測量出接收天線至衛(wèi)星的偽距離

7、和距離的變化率,解調(diào)出衛(wèi)星軌道參數(shù)等數(shù)據(jù)。根據(jù)這些數(shù)據(jù),接收機中的微處理計算機就可按定位解算方法進行定位計算,計算出用戶所在地理位</p><p>  1.2 GPS 定位原理</p><p>  GPS定位的基本原理是根據(jù)高速運動的衛(wèi)星瞬間位置作為已知的起算數(shù)據(jù),采用空間距離后方交會的方法,確定待測點的位置。如圖所示,假設(shè)t時刻在地面待測點上安置GPS接收機,可以測定GPS信號到達接收機

8、的時間△t,再加上接收機所接收到的衛(wèi)星星歷等其它數(shù)據(jù)可以確定以下四個方程式: </p><p>  上述四個方程式中待測點坐標(biāo)x、 y、 z 和Vto為未知參數(shù),其中di=c△ti (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的信號到達接收機所經(jīng)歷的時間,c為GPS信號的傳播速度(

9、即光速)。 四個方程式中各個參數(shù)意義如下:x、y、z 為待測點坐標(biāo)的空間直角坐標(biāo)。 xi 、yi 、zi (i=1、2、3、4) 分別為衛(wèi)星1、衛(wèi)星2、衛(wèi)星3、衛(wèi)星4在t時刻的空間直角坐標(biāo), 可由衛(wèi)星導(dǎo)航電文求得。Vt i (i=1、2、3、4) 分別為衛(wèi)星1、衛(wèi)星2、衛(wèi)星3、衛(wèi)星4的衛(wèi)星鐘的鐘差,由衛(wèi)星星歷提供。Vto為接收機的鐘差。 由以上四個方程即可解算出待測點的坐標(biāo)x、y、z 和接收機的鐘差Vto.</p><

10、;p>  1.3 GPS定位方法</p><p>  GPS定位的方法是多種多樣的,用戶可以根據(jù)不同的用途采用不同的定位方法。GPS定位方法可依據(jù)不同的分類標(biāo)準(zhǔn),可分為:(1)根據(jù)定位所采用的觀測值:1.偽距定位:偽距定位所采用的觀測值為GPS偽距觀測值,所采用的偽距觀測值既可以是C/A碼偽距,也可以是P碼偽距。偽距定位的優(yōu)點是數(shù)據(jù)處理簡單,對定位條件的要求低,不存在整周模糊度的問題,可以非常容易地實現(xiàn)實時

11、定位;其缺點是觀測值精度低,C/A 碼偽距觀測值的精度一般為3米,而P碼偽距觀測值的精度一般也在30個厘米左右,從而導(dǎo)致定位成果精度低,另外,若采用精度較高的P碼偽距觀測值,還存在AS的問題,2載波相位定位 :載波相位定位所采用的觀測值為GPS的載波相位觀測值,即L1、L2或它們的某種線性組合。載波相位定位的優(yōu)點是觀測值的精度高,一般優(yōu)于2個毫米;其缺點是數(shù)據(jù)處理過程復(fù)雜,存在整周模糊度的問題。</p><p>

12、  根據(jù)定位的模式:1. 絕對定位:絕對定位又稱為單點定位,這是一種采用一臺接收機進行定位的模式,它所確定的是接收機天線的絕對坐標(biāo)。這種定位模式的特點是作業(yè)方式簡單,可以單機作業(yè)。絕對定位一般用于導(dǎo)航和精度要求不高的應(yīng)用中;</p><p>  2 相對定位:相對定位又稱為差分定位,這種定位模式采用兩臺以上的接收機,同時對一組相同的衛(wèi)星進行觀測,以確定接收機天線間的相互位置關(guān)系;</p><p

13、>  根據(jù)獲取定位結(jié)果的時間:1、實時定位::據(jù)接收機觀測到的數(shù)據(jù),實時地解算出接收機天線所在的位置.。 2 、非實時定位:又稱后處理定位,它是通過對接收機接收到的數(shù)據(jù)進行后處理以進行定位得方法。</p><p>  根據(jù)定位時接收機的運動狀態(tài):1、動態(tài)定位:就是在進行GPS定位時,認(rèn)為接收機的天線在整個觀測過程中的位置是變化的。也就是說,在數(shù)據(jù)處理時,將接收機天線的位置作為一個隨時間的改變而改變的量。動態(tài)

14、定位又分為Kinematic和Dynamic兩類。</p><p>  3 靜態(tài)定位:在進行GPS定位時,認(rèn)為接收機的天線在整個觀測過程中的位置是保持不變的。也就是說,在數(shù)據(jù)處理時,將接收機天線的位置作為一個不隨時間的改變而改變的量。在測量中,靜態(tài)定位一般用于高精度的測量定位,其具體觀測模式多臺接收機在不同的測站上進行靜止同步觀測,時間由幾分鐘、幾小時甚至數(shù)十小時不等。</p><p>

15、  1.4 GPS定位的特點</p><p>  全球定位系統(tǒng)的主要特點:(1)全球、 全天候工作 (2)定位精度高應(yīng)用實踐已經(jīng)證明,GPS相對定位精度在50KM以內(nèi)可達10-6,100-500KM可達10-7m,1000KM可達10-9m。在300-1500M工程精密定位中,1小時以上觀測的解其平面其平面位置誤差小于1mm,與ME-5000電磁波測距儀測定得邊長比較,其邊長較差最大為0.5mm,校差中誤差為0.

16、3mm。(3)、觀測時間短 隨著GPS系統(tǒng)的不斷完善,軟件的不斷更新,目前,20KM以內(nèi)相對靜態(tài)定位,僅需15-20分鐘;快速靜態(tài)相對定位測量時,當(dāng)每個流動站與基準(zhǔn)站相距在15KM以內(nèi)時,流動站觀測時間只需1-2分鐘,然后可隨時定位,每站觀測只需幾秒鐘。</p><p>  第二章 數(shù)據(jù)的格式與提取</p><p>  2.1 NMEA-0183數(shù)據(jù)格式介紹</p>&l

17、t;p>  NMEA系列標(biāo)準(zhǔn)是其制定的關(guān)于海洋電子設(shè)備之間通信接口和協(xié)議的標(biāo)準(zhǔn),1983年制定了NMEA一0183標(biāo)準(zhǔn)。這一標(biāo)準(zhǔn)在兼容NMEA一0180和NMEA一0182標(biāo)準(zhǔn)的基礎(chǔ)上,增加了GPS、測深儀、羅經(jīng)方位系統(tǒng)等多種設(shè)備的接口和通信協(xié)議定義,同時,標(biāo)準(zhǔn)還允許一些特定設(shè)備制造商對其設(shè)備(如Garmin GPS一38、TfimbleEnsign XL)通信自行定義協(xié)議。由于NMEA一0183標(biāo)準(zhǔn)的通用性和靈活性,因而在全世界

18、被廣泛使用。</p><p>  NMEA一0183格式定義:</p><p> ?。?) 數(shù)據(jù)串定義:NEMA一0183格式數(shù)據(jù)串的所有字符均為母的“語句ID”,其后是數(shù)據(jù)體,數(shù)據(jù)字段以逗號分隔,語句末尾為checksum(可選),以回車換行結(jié)束。每行語句最多包含82個字符(包括回車換行和“$”符號)。數(shù)據(jù)串以逗號分隔符識別,空字段保留逗號。</p><p>  

19、語句結(jié)束的checksum 由一個“*”和兩個數(shù)據(jù)位的十六進制數(shù)組成。NI、伍A一0183標(biāo)準(zhǔn)允許個別廠商自己定義語句格式,這些語句以“$P”開頭,其后是3個字符的廠家ID識別號,后接自定義數(shù)據(jù)體。</p><p>  NMEA一0183標(biāo)準(zhǔn)應(yīng)用于GPS方面時,數(shù)據(jù)串以“$GP”開頭,主要有GGA、GL、ZDA、GSV、GSA、ALM等格式,這些格式的作用分別是:</p><p>  $G

20、P0GA:輸出GPS的定位信息;</p><p>  $GPGLL:輸出大地坐標(biāo)信息;</p><p>  $GPZDA:輸出UTC時間信息;</p><p>  $GPGSV::輸出可見的衛(wèi)星信息;</p><p>  $GPGST:輸出定位標(biāo)準(zhǔn)差信息;</p><p>  $GPGSA:輸出衛(wèi)星DOP值信息;<

21、;/p><p>  $GPALM:輸出衛(wèi)星星歷信息。</p><p> ?。?)通信協(xié)議定義:NMEA一0183格式通信采用RS232通信標(biāo)準(zhǔn),RS232標(biāo)準(zhǔn)用于DTE和DCE。GPS和微機之間的通信屬于DTE。標(biāo)準(zhǔn)的RS232通信連接采用25針</p><p>  串口(DB一25),也可用于現(xiàn)在多數(shù)微機流行的9針串口(DE一9)。</p><p&

22、gt;  在試驗中,不需要了解NMEA0183通信協(xié)議的全部信息,僅需要從中挑選出需要的那部分定位數(shù)據(jù),其余的信息忽略掉。GPS與掌上電腦通信時,通過串口每秒鐘發(fā)送10條數(shù)據(jù)。實際導(dǎo)航應(yīng)用讀取GPS的空間定位數(shù)據(jù)時,可以根據(jù)需要每隔幾秒鐘更新一次經(jīng)緯度和時問數(shù)據(jù),不必頻繁地更新數(shù)據(jù),否則,會浪費掌上設(shè)備有限的電能。如果和衛(wèi)星通信正常,可以接收到的數(shù)據(jù)格式如下:$GPGGA,<l>,<2>,<3>,&l

23、t;4>,<5>,<6>,<7>,<8>,<9>,<10>,<u>,<12>*hh<cR><LF>。</p><p>  一個完整的NEMA0183語句是從起始符“$GPGGA”到終止符“<CR><LF>”為止的一段字符串。需要掌握的信息是經(jīng)緯度、經(jīng)緯度方向、GPS

24、定位狀態(tài)和接收信號的時間。所以當(dāng)接收到這樣一個完整的NEMA0183語句時,提取有用信息的方法是:先判定起始符$GPGGA的位置,從起始符開始讀人數(shù)據(jù),再通過異或校驗后的語句中尋找字符“,”,然后截取前后兩個“,”之間的字符(串)獲得所關(guān)心的數(shù)據(jù),并以回車符為一個CPS語句的終止符,得到一個完整的GPS信號。在提取出的GPS語句中,找尋經(jīng)緯度所在的逗號位置,讀出經(jīng)緯度坐標(biāo),再將經(jīng)緯度坐標(biāo)進行度數(shù)的轉(zhuǎn)換。因為地圖的坐標(biāo)是以度數(shù)為標(biāo)準(zhǔn)的?!?/p>

25、 </p><p>  2.2 提取GPGGA定位數(shù)據(jù)</p><p>  GPS 接收機只要處于工作狀態(tài)就會源源不斷地把接收并計算出的GPS 導(dǎo)航定位信息通過串口傳送到計算機中。前面的代碼只負(fù)責(zé)從串口接收數(shù)據(jù)并將其放置于緩存, 在沒有進一步處理之前緩存中是一長串字節(jié)流, 這些信息在沒有經(jīng)過分類提取之前是無法加以利用的。因此, 必須通過程序?qū)⒏鱾€字段的信息從緩存字節(jié)流中提取出來,將其轉(zhuǎn)化成

26、有實際意義的, 可供高層決策使用的定位信息數(shù)據(jù)。同其他通訊協(xié)議類似, 對GPS 進行信息提取必須首先明確其幀結(jié)構(gòu), 然后</p><p>  才能根據(jù)其結(jié)構(gòu)完成對各定位信息的提取數(shù)據(jù)主要由幀頭、幀尾和幀內(nèi)數(shù)據(jù)組成, 根據(jù)數(shù)據(jù)幀的不同, 幀頭也不相同, 主要有"$GPGGA"、"$GPGSA"、"$GPGSV"以及"$GPRMC"等。這

27、些幀頭標(biāo)識了后續(xù)幀內(nèi)數(shù)據(jù)的組成結(jié)構(gòu), 各幀均以回車符和換行符作為幀尾標(biāo)識一幀的結(jié)束。</p><p>  由于幀內(nèi)各數(shù)據(jù)段由逗號分割, 因此在處理緩存數(shù)據(jù)時一般是通過搜尋ASCII</p><p>  碼"$"來判斷是否是幀頭, 在對幀頭的類別進行識別后再通過對所經(jīng)歷逗號個數(shù)的計數(shù)來判斷出當(dāng)前正在處理的是哪一種定位導(dǎo)航參數(shù),并作出相應(yīng)的處理。</p>&l

28、t;p>  在本次設(shè)計中定位數(shù)據(jù)如經(jīng)緯度、速度、時間等均可以從"$GPGGA"幀中獲取得到, $GPGGA語句包括17個字段:語句標(biāo)識頭,世界時間,緯度,緯度半球,經(jīng)度,經(jīng)度半球,定位質(zhì)量指示,使用衛(wèi)星數(shù)量,水平精確度,海拔高度,高度單位,大地水準(zhǔn)面高度,高度單位,差分GPS數(shù)據(jù)期限,差分參考基站標(biāo)號,校驗和結(jié)束標(biāo)記(用回車符<CR>和換行符<LF>),分別用14個逗號進行分隔。該數(shù)據(jù)幀

29、的結(jié)構(gòu)及各字段釋義如下:</p><p>  $GPGGA,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,M,<10>,M,<11>,<12>*xx<CR><LF>   $GPGGA:起始引導(dǎo)符及語句格式說明(本句為GPS

30、定位數(shù)據(jù));   </p><p>  <1> UTC時間,格式為hhmmss.sss;   </p><p>  <2> 緯度,格式為ddmm.mmmm(第一位是零也將傳送);   </p><p>  <3> 緯度半球,N或S(北緯或南緯) ; </p><p>  <4> 經(jīng)度,格式為dd

31、dmm.mmmm(第一位零也將傳送);   </p><p>  <5> 經(jīng)度半球,E或W(東經(jīng)或西經(jīng)) ;  </p><p>  <6> GPS狀態(tài), 0未定位, 1非差分定位, 2差分定位, 3無效PPS, 6正在估算 ;</p><p>  <7> 使用衛(wèi)星數(shù)量,從00到12(第一個零也將傳送) ; </p>

32、<p>  <8> 水平精確度,0.5到99.9; </p><p>  <9> 天線離海平面的高度,-9999.9到9999.9米;  </p><p><b>  M 指單位米   </b></p><p>  <10> 大地水準(zhǔn)面高度,-9999.9到9999.9米 ;  </p>

33、;<p><b>  M 指單位米   </b></p><p>  <11> 差分GPS數(shù)據(jù)期限(RTCM SC-104),最后設(shè)立RTCM傳送的秒數(shù)量,如不是差分定位則為空;   </p><p>  <12> 差分參考基站標(biāo)號,從0000到1023(首位0也將傳送);   </p><p>  * 語

34、句結(jié)束標(biāo)志符   </p><p>  xx 從$開始到*之間的所有ASCII碼的異或校驗和   </p><p>  <CR> 回車   </p><p><b>  <LF> 換行</b></p><p>  第三章 系統(tǒng)總體設(shè)計 </p><p><b>

35、  3.1 DSP介紹</b></p><p>  DSP是Digital Signal Processing的縮寫,表示數(shù)字信號處理器,信息化的基礎(chǔ)是數(shù)字化,數(shù)字化的核心技術(shù)之一是數(shù)字信號處理,數(shù)字信號處理的任務(wù)在很大程度上需要由DSP器件來完成,DSP技術(shù)已成為人們?nèi)找骊P(guān)注的并得到迅速發(fā)展的前沿技術(shù)。  數(shù)字信號處理是利用計算機或?qū)S锰幚碓O(shè)備,以數(shù)字形式對信號進行采集、變換、濾波、估值、增強、壓

36、縮、識別等處理,以得到符合人們需要的信號形式。 DSP技術(shù)的應(yīng)用  語音處理:語音編碼、語音合成、語音識別、語音增強、語音郵件、語音儲存等?! D像/圖形:二維和三維圖形處理、圖像壓縮與傳輸、圖像識別、動畫、機器人視覺、多媒體、電子地圖、圖像增強等。</p><p>  由于DSP可以實現(xiàn)數(shù)字信號的處理和計算。從理論上講,只要有了算法,任何具有計算能力的設(shè)備都可以用來實現(xiàn)數(shù)字信號處理。所以在各模塊功能確定的情

37、況下,用DSP軟件開發(fā)平臺CODE Composer Studio(簡稱CCS)進行借條函數(shù)的設(shè)計,便可以達到預(yù)想中的功能。下圖所示為DSP實現(xiàn)解調(diào)功能的模塊組成:</p><p>  圖3.1 DSP實現(xiàn)解調(diào)功能的模塊</p><p>  3.2 異步傳輸方式</p><p>  通用數(shù)字信號處理器(DSP)以其很強的數(shù)據(jù)處理能力使其在高速數(shù)字信號處理方面得到廣

38、泛的應(yīng)用,但是它的通信接口控制能力比較弱,由于DSP的工作頻率很高,如TMS320C6201 時鐘頻率為200MHz,ADSP21060時鐘頻率為40MHZ,故其數(shù)據(jù)讀寫周期很短,然而PC機串口讀寫速度較低,最大數(shù)據(jù)吞吐量約為115kbps,盡管DSp在與這些慢速外進行數(shù)據(jù)交換時可以加入額外的等待周期,但是在實時性要求苛刻,算法復(fù)雜的場合,將DSP從這些冗長的等待周期中解放出來,將其時間重點放在處理關(guān)鍵的實時任務(wù)中去,有著重要的實際意義

39、。故DSP與PC機之間串口通信的速度匹配是保證快速、準(zhǔn)確通信的關(guān)鍵。</p><p>  PC機一般帶有一個或兩個內(nèi)置串口,每個端口的機箱背后有一個9針或25針的公插口。串口是以bit來傳輸數(shù)據(jù)的,傳輸數(shù)率取決于UART芯片,該芯片將PC總線上的并行數(shù)據(jù)(單字節(jié)或多字節(jié))分割成以比特為單位的串行數(shù)據(jù)流,從而實現(xiàn)在串口線纜中的數(shù)據(jù)傳輸。</p><p>  在本次課設(shè)中用到了TL16C550

40、B來實現(xiàn)并行數(shù)據(jù)和串行數(shù)據(jù)的格式轉(zhuǎn)換,它的最大數(shù)據(jù)吞吐量為115kbps,這已經(jīng)能夠滿足大多數(shù)串行設(shè)備的需要了。TL16C550B是通用異步接收/發(fā)送器(UART)芯片,它不僅能夠把從CPU接收的數(shù)據(jù)進行并-串轉(zhuǎn)換,還能夠把從外圍設(shè)備或MODEM接收到的數(shù)據(jù)進行串-并轉(zhuǎn)換。該UART包括一個可編程的波特率產(chǎn)生器??蓪⑤斎氲臅r鐘信號進行分頻,并可產(chǎn)生16倍的時鐘來驅(qū)動內(nèi)部的傳輸邏輯單元。TL16C550還具有MODEMN控制能力。包含一個

41、處理器中斷系統(tǒng),根據(jù)用戶的專用需要而設(shè)計,在處理通訊連接時,計算量是最小的。并且,TL16C550B管腳與TL16C750兼容,采用44引腳PLCC封裝。它的最高可達1M的波特率,且波特率發(fā)生器可編程設(shè)定,可以由軟件設(shè)定的FIFO來減少CPU中斷,并有可編程的串行數(shù)據(jù)發(fā)送格式:數(shù)據(jù)位長度為5、6、7、8。還有奇、偶校驗或無校驗?zāi)J剑耐V刮婚L度為1、1.5、2.</p><p>  同時它內(nèi)部集成了中斷邏輯,另

42、外通過對其內(nèi)部的寄存器的設(shè)置可以完成相應(yīng)功能,這些寄存器主要有:線路控制寄存器、FIFO控制寄存器、中斷使能寄存器MODEMN控制寄存器、線路狀態(tài)寄存器等11個寄存器。這些寄存器分別用于實現(xiàn)通信參數(shù)的設(shè)置、對線路及MODEMN的狀態(tài)訪問、數(shù)據(jù)的發(fā)送和接收及中斷管理功能。因而它可以與大多數(shù)的CPU實現(xiàn)無縫接口、使用很方便。</p><p>  圖3.2 C5402與PC機串行通信的硬件電路圖</p>

43、<p>  圖中TL16C550B的CS0和CS1都接高電平,CS2 接C5402的外部I/O空間,選擇線IS。當(dāng)XIN、XOUT端外接1.8342MHZ晶振時,C5402以4800的波特率與PC機通信,所以,波特率因子寄存器的低位設(shè)為30HZ,高位設(shè)為00hz。TL16C550B的數(shù)據(jù)線D0-D7數(shù)據(jù)線相連,TL16C550的片內(nèi)寄存器選擇線接C5402的A0-A2。</p><p>  3.2 系

44、統(tǒng)硬件部分</p><p>  以下為系統(tǒng)硬件部分PC機的連接與異步串口通信在實驗箱上實現(xiàn)的原理圖:</p><p>  圖3.3 系統(tǒng)整體硬件部分電路圖</p><p>  第四章 系統(tǒng)程序設(shè)計</p><p><b>  4.1 CCS介紹</b></p><p>  CCS(Code Co

45、mposer Studio)代碼調(diào)試器是一種集成開發(fā)環(huán)境(IDE,Integrated Development Environment)。 CCS是一種針對標(biāo)準(zhǔn)TMS320調(diào)試器接口的交互式方法。CCS目前有CCS1.1 CCS1.2 CCS2.0等三個不同的版本,每個版本應(yīng)有CC2000(針對C2XX)</p><p>  CCS5000(針對C54XX)CCS6000(針對C6X)等三個不同的型號。我們所使

46、用的是CCS5000、1.2的版本。這里所說明的CCS的一切問題都是基于CCS5000所討論,對其他版本的使用其差別不是很大,請參考其他有關(guān)資料。</p><p>  CCS5000具有以下特性:</p><p>  (1) TI編譯器的完全集成的環(huán)境</p><p>  CCS5000目標(biāo)管理系統(tǒng),內(nèi)建編輯器,所有的調(diào)試和分析能力集成在一個Windows環(huán)境中。&

47、lt;/p><p>  (2) 對C和DSP匯編文件的目標(biāo)管理</p><p>  目標(biāo)編輯器保持對所有文件及相關(guān)內(nèi)容的跟蹤。它只對最近一次編譯中改變過的文件重新編譯,以節(jié)省編譯時間。 </p><p>  (3)高集成的編輯器調(diào)整C和DSP匯編代碼 </p><p>  CCS5000的內(nèi)建編輯器支持C和匯編文件的動態(tài)語法加亮顯示,使用戶能

48、很容易地閱讀代碼和當(dāng)場發(fā)現(xiàn)語法錯誤。 </p><p>  (4) 編輯和調(diào)試時的后臺編輯 </p><p>  用戶在使用編譯器和匯編器時沒有必要退出系統(tǒng)到DOS環(huán)境中,因為CCS5000會自動將這些工具裝載在它的環(huán)境中。在其窗口中,錯誤會加亮顯示,只要雙擊錯誤就可以直接到達出錯處。</p><p>  

49、(5) 在含有浮點并行調(diào)試管理器(PDM)的原有的MS窗口下支持多處理器,CCS5000在 Windows95和Windows-me中支持多處理器。PDM允許將命令傳播給所有的或所選擇的處理器。 </p><p>  (6) 任何算法點觀察信號的圖形窗口探針 </p><p>  圖形顯示窗口使用戶能夠觀察時域或者頻域的信號。對于頻域圖,F(xiàn)FT在主機內(nèi)執(zhí)行, 這樣就可以觀察所感興趣的部分

50、而無須改變它的DSP代碼。圖形顯示也可以同探針連接,當(dāng)前顯示窗口被更新時,探針被指定,這樣當(dāng)代碼執(zhí)行到達該點時,就可以迅速地觀察到信號。 </p><p>  (7) 文件探針在算法處通過文件提取或加入信號或數(shù)據(jù) </p><p>  CCS5000允許用戶從PC機讀或?qū)懶盘柫?。而不是實時的讀信號,這就可以用

51、已知的例子來仿真算法。</p><p>  (8) 圖形分析 </p><p>  CCS5000的圖形分析能力在其環(huán)境中是集成的。</p><p>  (9) 在后臺(系統(tǒng)命令)執(zhí)行用戶的DOS程序 &l

52、t;/p><p>  用戶可以執(zhí)行CCS5000中的DOS程序,并將其輸出以流水方式送到CCS5000的輸出窗口。且允許用戶將應(yīng)用集成到CCS5000。</p><p>  4.2 系統(tǒng)程序設(shè)計與流程圖</p><p>  GPS模塊以9600波特的速率串行輸出數(shù)據(jù)。有用的時間、經(jīng)緯度及海拔高度信息就包含在其中。實驗的任務(wù)就是從選出有用的信息并送液晶顯示器顯示。實驗的導(dǎo)

53、航電文由串口調(diào)試助手導(dǎo)入,導(dǎo)航電文里頭的GGA格式的數(shù)據(jù)就是我們這次實驗要接收的,找到該組的有用信息。在字符串找到指定的字符串,并返回它的位置。在這里就找“$GPGGA”和“,”找到后,把這個位置以后的字符串重新賦給一個以前的字符串,一直循環(huán),就可以找到所有的信息了。具體步驟如下:</p><p>  系統(tǒng)進行初始化,主要是對DSP芯片的ASP(異步串口)進行初始化,將DSP異步通信口得數(shù)據(jù)傳送率設(shè)為9600bi

54、t/s,通信數(shù)據(jù)格式的設(shè)置為1個起始位,8位數(shù)據(jù)位,一個停止位,并設(shè)置接受數(shù)據(jù)緩沖區(qū)。對于波特率的設(shè)置可在串口驅(qū)動程序中設(shè)置。</p><p>  使程序指向接受數(shù)據(jù)緩沖區(qū)首地址,系統(tǒng)處于讀接受狀態(tài)。</p><p>  采用查詢方式、進行GPS數(shù)據(jù)流的數(shù)據(jù)起始位置時,開始數(shù)據(jù)接收,否則就放棄,重新開始查詢過程。</p><p>  判斷是否再次查找到'$&

55、#39;f符號,若是,則跳回第二步,重新進行數(shù)據(jù)接收。</p><p>  接收數(shù)據(jù)并查找所需的數(shù)據(jù)前面的逗號的位置。</p><p>  將查找到的逗號后的數(shù)據(jù)保存到中間數(shù)組變量中。</p><p>  數(shù)據(jù)處理,篩選出時間、經(jīng)度、緯度等基本數(shù)據(jù)進行傳輸并調(diào)整格式在LCD上顯示。 </p><p>  圖4.2 程序設(shè)計流程圖</

56、p><p>  4.3 系統(tǒng)程序設(shè)計</p><p>  4.3.1 初始化程序模塊:</p><p>  init_exint1_interrupt();</p><p>  init_GPIO();</p><p>  init_lcd();</p><p>  LCD_clear(0);<

57、;/p><p>  cur_row=2;</p><p>  cur_col=20; /*列*/</p><p>  LCD_pr_chars(" UART TEST ",16);</p><p>  cur_row=3;</p><p>  cur_col=1;</p>

58、;<p>  LCD_pr_chars("------------------",23);</p><p>  Close_LED_sign();</p><p>  Close_LED_Data();</p><p>  Close_LED_Traf();</p><p>  waitloop( 0x040

59、0 );</p><p>  4.3.2 鍵盤控制程序模塊</p><p>  本課設(shè)中利用鍵盤來控制顯示,設(shè)置鍵盤值1鍵來設(shè)置控制,下載成功后,按1鍵即開始進行接收顯示。</p><p><b>  while(1)</b></p><p><b>  {</b></p><p

60、>  flag=0xffff;</p><p>  i=Get_Key();</p><p>  waitloop( 0x040000L );</p><p>  j=Get_Key();</p><p><b>  if(i==j)</b></p><p><b>  {<

61、/b></p><p>  key_val=j; /*save key_val*/ </p><p>  while(Get_Key())</p><p><b>  {</b></p><p>  asm("\tnop"); /*wait blank_key*/</p>

62、<p><b>  }</b></p><p>  switch(key_val) /*由鍵值來控制*/</p><p><b>  {</b></p><p><b>  default:</b></p><p><b>  break;<

63、;/b></p><p><b>  case 1:</b></p><p>  LCD_clear(0); /*LCD清屏幕*/</p><p>  uart_rece(); /*調(diào)用 uart_race()接收函數(shù)*/</p><p><b>  break;</b></p&

64、gt;<p>  4.3.3 中斷程序程序模塊:</p><p>  void init_exint1_interrupt()</p><p><b>  { </b></p><p>  IFR=0Xffff;</p><p>  IMR=0x0002; /*TINT=IMR.3 EXI

65、NT1=IMR.1*/</p><p>  asm("\trsbx\tintm");</p><p><b>  }</b></p><p>  interrupt void EXINT1_isr()</p><p><b>  { </b></p><

66、;p>  Close_LED_sign();</p><p>  Close_LED_Data();</p><p>  Close_LED_Traf();</p><p>  // while(!(GPIOSR&0X01))</p><p>  { </p><

67、;p>  asm("\tnop");</p><p>  asm("\tnop");</p><p><b>  }</b></p><p>  // flag=~flag;</p><p><b>  flag=0;</b></p>

68、;<p>  cur_row=7;</p><p>  cur_col=15;</p><p>  LCD_pr_chars(" Uart_Stop ",17);</p><p><b>  }</b></p><p>  4.3.4 數(shù)據(jù)處理模塊</p>&l

69、t;p>  定位信息通過串口來實現(xiàn)傳輸。本程序的關(guān)鍵在于串口數(shù)據(jù)的提取及相關(guān)處理操作。前面的代碼負(fù)責(zé)從串口接收數(shù)據(jù)并將其放置于緩存。在沒有進一步處理之前緩存是一長串字節(jié)流,這些信息在沒有經(jīng)過分類提取之前是無法加以利用的。因此,必須通過程序?qū)⒏鱾€字段的信息從緩存字節(jié)流中提取出來,將其轉(zhuǎn)化成有實際意義的,可供高層決策使用的定位信息數(shù)據(jù)。同期他通訊協(xié)議類似。對該實驗采用NMEA_0183xieyi協(xié)議的GPS固定數(shù)據(jù)輸出語句($GPGG

70、A)數(shù)據(jù)結(jié)構(gòu)。</p><p>  先定義305個數(shù)據(jù)的數(shù)組來存放導(dǎo)航電文的串行數(shù)據(jù),逗號、時間、緯度、及經(jīng)度的中間接收數(shù)組,以及輸出的字符數(shù)組。</p><p>  void uart_rece(void)</p><p><b>  {</b></p><p>  //char buf[16];</p>

71、<p>  unsigned int data[305],mc,tm[7],weidu[10],jingdu[11],geshu[3],deep[5];</p><p>  unsigned int jj,ii,ni;</p><p>  unsigned int locate=0;</p><p>  char chartable[10]={'

72、0','1','2','3','4','5','6','7','8','9'};/*定義顯示值*/</p><p>  由于串口數(shù)據(jù)的讀取速度和對數(shù)據(jù)中參數(shù)的提取操作速度需要匹配,所以難免會有數(shù)據(jù)的丟失,為了保證參數(shù)的正確提取,程序的開始就需要對語句的正確性進行控

73、制。處理時一般先通過對幀頭的判斷,即對“$GPGGA”幀進行判斷。由于幀內(nèi)個數(shù)據(jù)段由逗號分割,因此在處理緩存數(shù)據(jù)時一般是通過搜尋ASCII碼‘$’來判斷是否是幀頭,在對幀頭的類別進行識別后再通過所經(jīng)歷逗號個數(shù)的計數(shù)來判斷出當(dāng)前處理地是那一種定位導(dǎo)航參數(shù),并作出相應(yīng)的處理。判斷數(shù)據(jù)格式的程序如下:</p><p><b>  do</b></p><p><b&g

74、t;  {</b></p><p>  jj=Uart_rx();/*串行數(shù)據(jù)輸出的調(diào)用函數(shù)*/</p><p><b>  if(!flag)</b></p><p><b>  {</b></p><p>  asm("\tnop");</p>&l

75、t;p><b>  break;</b></p><p><b>  }</b></p><p>  }while(jj==0xFFFF);</p><p>  if(locate<300)//是發(fā)送數(shù)據(jù)存放在數(shù)組中的位置</p><p><b>  { </b>

76、</p><p>  data[locate]=jj; locate++; //locate自加到300</p><p>  Uart_tx(jj);</p><p><b>  }</b></p><p><b>  else</b></p><p><b>

77、;  {</b></p><p><b>  ii=0;</b></p><p>  while(ii<300) //接收并識別GGA數(shù)據(jù)的幀頭</p><p><b>  { </b></p><p>  if(data[ii]==36)</p><p>

78、  { if((ii+1)<300&&data[ii+1]==71)</p><p>  if((ii+2)<300&&data[ii+2]==80)</p><p>  if((ii+3)<300&&data[ii+3]==71)</p><p>  if((ii+4)<300&&

79、amp;data[ii+4]==71)</p><p>  if((ii+5)<300&&data[ii+5]==65)</p><p><b>  break;</b></p><p>  } /*識別GPGGA幀*/</p><p>  4.3.5定位信息的提取與LCD顯示模塊</p&

80、gt;<p>  一個完整的NMEA-0183語句是從信息起始標(biāo)志“$”、數(shù)據(jù)分隔符“,”和信息結(jié)束標(biāo)志符“”為止的一段字符串,需要掌握的信息是時間、經(jīng)度及緯度。所以當(dāng)接收到這樣一個完整的語句時,提取有用信息的方法首先是判斷起始符的位置,從起始符開始讀入數(shù)據(jù)、再通過異或校驗后的語句中尋找自負(fù)'‘,’,然后截取前兩個‘,’之間的字符串獲取所關(guān)心的數(shù)據(jù),并以回車符為一個GPS語句的終止符,得到一個完整的GPS信號。&l

81、t;/p><p>  for(;ii<400;ii++)</p><p>  {//$GPGGA,061820,2844.3546,N,11551.8844,E,1,10,0.8,57.9,M,-5.6,M,,*6C</p><p>  if(data[ii]==36) </p><p><b>  break;</b>

82、;</p><p>  if(mc==1) {tm[ni]=data[ii];ni++;} /*提取時間*/</p><p>  else if(mc==2) {weidu[ni]=data[ii];ni++;} /*提取緯度*/</p><p><b>  else</b></p><p>  if(mc==4) {

83、jingdu[ni]=data[ii];ni++;}/*提取經(jīng)度*/</p><p>  else if(mc==7) {geshu[ni] =data[ii];ni++;}/*提取衛(wèi)星數(shù)據(jù)*/</p><p>  else if(mc==9){deep[ni]=data[ii];ni++;}/*提取海拔高度*/</p><p>  if(data[ii]==44)

84、 {mc++;ni=0;}/*逗號計數(shù)*/</p><p><b>  }</b></p><p>  篩選出時間、經(jīng)度、緯度等基本數(shù)據(jù)進行傳輸并調(diào)整在LCD上顯示,以下是顯示時間的一個處理過程</p><p>  LCD_pr_chars("MD: ",5);</p><p>  for(ii=0

85、;ii<6;ii++)</p><p><b>  {</b></p><p>  LCD_nextchar(chartable[tm[ii]-48]);/*化ASCII值為數(shù)值*/</p><p><b>  }/*顯示時間*/</b></p><p><b>  第五章 系統(tǒng)調(diào)試

86、</b></p><p>  5.1 調(diào)試器介紹:</p><p>  一個很好而小巧的串口調(diào)試工具,支持常用的150-115200bps波特率,能設(shè)置校驗、數(shù)據(jù)位和停止位,能以ASCII碼或十六進制接收或發(fā)送任何數(shù)據(jù)或字符(包括中文),可以任意設(shè)定自動發(fā)送周期,并能將接收數(shù)據(jù)保存成文本文件,能發(fā)送任意大小的文本文件。支持串口號高于9的串口(例如 COM10、com255 等)

87、</p><p>  如圖為課設(shè)中用到的串口調(diào)試器</p><p>  圖5.1 串口調(diào)試器</p><p>  5.2 系統(tǒng)調(diào)試過程</p><p>  連接好電源線和仿真器,在打開實驗箱電源前,先用交叉串口線連接實驗箱串口和PC機串口1。編譯并運行程序后,打開串口調(diào)試器,設(shè)置串口為COM1,波特率為9600,并打開串口。在發(fā)送窗口輸入字符

88、或數(shù)字,選擇自動發(fā)送或手動發(fā)送。圖5.1即為設(shè)置的串口圖。</p><p>  在CCS軟件中完成程序并通過編譯生成.out文件,再加載.out文件運行,打開串口調(diào)試器,把要發(fā)送的數(shù)據(jù)粘貼在發(fā)送端窗口,如圖發(fā)送數(shù)據(jù):</p><p>  $GPGGA,061825,2844.3546,N,11551.8846,E,1,10,0.8,58.3,M,-5.6,M,,*6E時,串口接收到的數(shù)據(jù)&

89、lt;/p><p>  圖5.2 數(shù)據(jù)發(fā)送圖</p><p>  5.3 調(diào)試結(jié)果與分析</p><p>  在實驗箱上按鍵1開始LCD上顯示GPGGA,接著顯示UART start receive</p><p>  最后開始顯示提取后的數(shù)據(jù):</p><p>  圖5.3 LCD顯示</p><p

90、><b>  結(jié)束語</b></p><p>  這次設(shè)計是基于DSP的GPGGA定位信息的提取,首先論述了GPS定位的原理以及方法,介紹了NEMA-0183數(shù)據(jù)格式定義,以及GPGGA提取的定位數(shù)據(jù)的特點以及相應(yīng)的格式,接著又介紹了系統(tǒng)總體總體設(shè)計的原理圖,異步傳輸?shù)姆绞?,硬件部分的一些簡單介紹,再接著介紹了系統(tǒng)的程序設(shè)計,詳細(xì)的闡述了每個模塊的實現(xiàn)過程,最后再論述了系統(tǒng)調(diào)試的過程,

91、對結(jié)過的分析。</p><p>  通過這一周的課設(shè),對整個基于DSP GPGGA定位數(shù)據(jù)的提取過程有了一個全面的了解,深入理解了異步串口通信的實現(xiàn)方法,通過實踐提高了自身的分析解決問題的能了,以及團隊合作解決問題的能了。</p><p><b>  參考文獻</b></p><p>  [1] 李莉編著,《DSP原理與應(yīng)用》 北京:中國水利水

92、電出版社,2004</p><p>  [2] GPS定位的數(shù)據(jù)格式,NMEA-0183數(shù)據(jù)格式</p><p>  [3] 張雄偉 陳亮 徐光輝編著,《DSP芯片的原理與開發(fā)應(yīng)用》 北京:電子工業(yè)出版社,2006</p><p><b>  致謝</b></p><p>  在整個課程設(shè)計的過程中,指導(dǎo)老師胡輝老師給予

93、我細(xì)心的指導(dǎo)和幫助,讓我在這次課設(shè)的課題中學(xué)會了團隊合作完成課題,加強了對DSP的了解,在課設(shè)中鍛煉了自己的動手操作能力。</p><p>  在設(shè)計過程中,同學(xué)們也給了我很大的幫助,特別是實驗室的王濤同學(xué),幫助我們解決了驅(qū)動下載中遇到的一些問題,還有朱路老師把實驗箱借給我們調(diào)試了一天,最后才能順利的完成這個課設(shè)的任務(wù)。</p><p>  最后還要感謝同組成員李金森和李偉同學(xué)的配合跟合作

94、,沒有大家的共同努了,也就沒有最后成功的結(jié)果,在此對以上所有人表示誠摯的感激。</p><p><b>  附錄</b></p><p><b>  源代碼:</b></p><p>  #include <stdio.h></p><p>  #include "mmdrv.

95、h"</p><p>  #include "mcbsp.h"</p><p>  #include "cpu_reg.h"</p><p>  #include "lcd_86.h"</p><p>  ioport unsigned portefff;</p>

96、;<p>  #define IO_374 portefff</p><p>  void init_exint1_interrupt();</p><p>  void init_GPIO(void);</p><p>  void uart_rece(void);</p><p>  void uart_trans(vo

97、id);</p><p>  void uart_trans_byte(unsigned int data);</p><p>  unsigned int flag=0xffff;</p><p>  char tx_re_buf[1]={0x38};</p><p>  void main(void)</p><p&g

98、t;<b>  {</b></p><p>  unsigned int i,j;</p><p>  unsigned int key_val;</p><p>  SWWSR=0X7fff;</p><p>  SWCR=0X0001;</p><p>  BSCR=0x8006;</p

99、><p>  CLKMD=PLL_DIV_INIT;</p><p>  waitloop(0x0400);</p><p>  CLKMD=PLL_LOCK_INIT_X(9);</p><p>  waitloop(0x0400);</p><p>  PMST=0x0168;</p><p>

100、  IO_374=0Xffff; /*374 enable*/</p><p><b>  //初始化系統(tǒng)</b></p><p>  init_exint1_interrupt();</p><p>  init_GPIO();</p><p>  init_lcd();</p><p>

101、;  LCD_clear(0);</p><p>  cur_row=2;</p><p>  cur_col=20; /*列*/</p><p>  LCD_pr_chars(" UART TEST ",16);</p><p>  cur_row=3;</p><p>  

102、cur_col=1;</p><p>  LCD_pr_chars("------------------",23);</p><p>  Close_LED_sign();</p><p>  Close_LED_Data();</p><p>  Close_LED_Traf();</p><p&g

103、t;  waitloop( 0x0400 );</p><p><b>  while(1)</b></p><p><b>  {</b></p><p>  flag=0xffff;</p><p>  i=Get_Key();</p><p>  waitloop( 0

104、x040000L );</p><p>  j=Get_Key();</p><p><b>  if(i==j)</b></p><p><b>  {</b></p><p>  key_val=j; /*save key_val*/ </p><p>  while(

105、Get_Key())</p><p><b>  {</b></p><p>  asm("\tnop"); /*wait blank_key*/</p><p><b>  }</b></p><p>  switch(key_val) /*由鍵值來控制*/&

106、lt;/p><p><b>  {</b></p><p><b>  default:</b></p><p><b>  break;</b></p><p><b>  case 1:</b></p><p>  LCD_clea

107、r(0); /*LCD清屏幕*/</p><p>  uart_rece(); /*調(diào)用 uart_race()接收函數(shù)*/</p><p><b>  break;</b></p><p><b>  }</b></p><p><b>  }</b></p&g

108、t;<p><b>  }</b></p><p><b>  }</b></p><p>  void init_exint1_interrupt()</p><p><b>  { </b></p><p>  IFR=0Xffff;</p&

109、gt;<p>  IMR=0x0002; /*TINT=IMR.3 EXINT1=IMR.1*/</p><p>  asm("\trsbx\tintm");</p><p><b>  }</b></p><p>  interrupt void EXINT1_isr()</p><

110、p><b>  { </b></p><p>  Close_LED_sign();</p><p>  Close_LED_Data();</p><p>  Close_LED_Traf();</p><p>  // while(!(GPIOSR&0X01))</

111、p><p>  { </p><p>  asm("\tnop");</p><p>  asm("\tnop");</p><p><b>  }</b></p><p>  // flag=~flag;</p>

112、<p><b>  flag=0;</b></p><p>  cur_row=7;</p><p>  cur_col=15;</p><p>  LCD_pr_chars(" Uart_Stop ",17);</p><p><b>  }</b>&l

113、t;/p><p>  void init_GPIO(void)</p><p><b>  {</b></p><p>  GPIOCR=0xfffe; /*EXINT=GPI0.0=INPUT=0,nand_cs=GPI0.6=output=1*/</p><p>  GPIOSR=0x0040;

114、/*GPI0.6=output=1*/</p><p><b>  }</b></p><p>  void uart_rece(void)</p><p><b>  {</b></p><p>  //char buf[16];</p><p>  unsigned in

115、t data[305],mc,tm[7],weidu[10],jingdu[11],geshu[3],deep[5];</p><p>  unsigned int jj,ii,ni;</p><p>  unsigned int locate=0;</p><p>  char chartable[10]={'0','1','

116、;2','3','4','5','6','7','8','9'};/*定義顯示值*/</p><p>  Uart_Init();/*初始化串口系統(tǒng)*/</p><p>  cur_col=28;/*列*/</p><p>  cur_row=1;

117、/*行*/</p><p>  LCD_pr_chars("--GPGGA--",9);/*LCD顯示*/</p><p>  cur_col=1;</p><p>  cur_row=2;</p><p>  LCD_pr_chars("=====================",21);</

118、p><p>  for(ii=0;ii<300;ii++)</p><p>  { data[ii]=0;}/*初始化data數(shù)組的前300個為0*/</p><p><b>  while(1)</b></p><p><b>  {</b></p><p>&

119、lt;b>  do</b></p><p><b>  {</b></p><p>  jj=Uart_rx();/*串行數(shù)據(jù)輸出的調(diào)用函數(shù)*/</p><p><b>  if(!flag)</b></p><p><b>  {</b></p>

120、<p>  asm("\tnop");</p><p><b>  break;</b></p><p><b>  }</b></p><p>  }while(jj==0xFFFF);</p><p>  if(locate<300)</p>

121、<p><b>  { </b></p><p>  data[locate]=jj; locate++;</p><p>  Uart_tx(jj);</p><p><b>  }</b></p><p><b>  else</b></p>

122、<p><b>  {</b></p><p><b>  ii=0;</b></p><p>  while(ii<300) </p><p><b>  { </b></p><p>  if(data[ii]==36)</p><p&

123、gt;  { if((ii+1)<300&&data[ii+1]==71)</p><p>  if((ii+2)<300&&data[ii+2]==80)</p><p>  if((ii+3)<300&&data[ii+3]==71)</p><p>  if((ii+4)<300&am

124、p;&data[ii+4]==71)</p><p>  if((ii+5)<300&&data[ii+5]==65)</p><p><b>  break;</b></p><p>  } /*識別GPGGA幀*/</p><p><b>  ii++;</b>

溫馨提示

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

評論

0/150

提交評論