多線程串口通信技術(shù)在gps導(dǎo)航中的應(yīng)用

多線程串口通信技術(shù)在gps導(dǎo)航中的應(yīng)用

ID:11487916

大?。?28.50 KB

頁數(shù):9頁

時間:2018-07-12

多線程串口通信技術(shù)在gps導(dǎo)航中的應(yīng)用_第1頁
多線程串口通信技術(shù)在gps導(dǎo)航中的應(yīng)用_第2頁
多線程串口通信技術(shù)在gps導(dǎo)航中的應(yīng)用_第3頁
多線程串口通信技術(shù)在gps導(dǎo)航中的應(yīng)用_第4頁
多線程串口通信技術(shù)在gps導(dǎo)航中的應(yīng)用_第5頁
資源描述:

《多線程串口通信技術(shù)在gps導(dǎo)航中的應(yīng)用》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。

1、多線程串口通信技術(shù)在GPS導(dǎo)航中的應(yīng)用摘要:GPS導(dǎo)航系統(tǒng)需要實時獲取來自接收機(jī)串口的定位數(shù)據(jù),在對串口實時監(jiān)控的同時還可以在前臺進(jìn)行一些其他的操作,利用基于多線程的串口通信編程思想方法可以很好地解決這一問題。介紹多線程的基本概念和串口通信編程技術(shù),分析了GPS導(dǎo)航系統(tǒng)的功能和需求,著重闡述了采用基于多線程的CSerialPort類的串口通信方法來獲取定位數(shù)據(jù),并且給出了CSerialPort類的使用方法。經(jīng)過調(diào)試,程序運(yùn)行平穩(wěn)。  0引言  GPS(GlobalPositionSystem)具有全球性、全天候性優(yōu)勢的定位、定時、測速系統(tǒng),用戶利用GPS接收

2、機(jī)接收衛(wèi)星發(fā)射的信號,從而獲取當(dāng)前位置的大地坐標(biāo)、高程和時間等信息,達(dá)到定位、導(dǎo)航或測量高程的目的。衛(wèi)星導(dǎo)航定位技術(shù)被廣泛應(yīng)用于海洋勘測、海洋工程、海洋開發(fā)和軍事作戰(zhàn)中,高精度、快捷方便、全天候等優(yōu)良特性,使其越來越受到人們的青睞。在GPS導(dǎo)航中,需要實時采集遵循NMEA0183協(xié)議的GPS數(shù)據(jù),對數(shù)據(jù)進(jìn)行處理后,通過ODBC接口將用戶的位置、時間、速度等信息存到數(shù)據(jù)庫,為以后在電子地圖上實時顯示目標(biāo)位置提供依據(jù)。為了避免由于一直等待串口I/0操作而引起的線程阻塞,要求程序在對串行端口進(jìn)行實時監(jiān)控的同時,可以在前臺進(jìn)行數(shù)據(jù)提取、保存、顯示等操作。為了解決實時

3、性和多任務(wù)處理,避免某項任務(wù)長時間占用CPU,多線程編程是一個比較理想的選擇。  1多線程概述  1.1基本概念  進(jìn)程是程序在計算機(jī)上的一個執(zhí)行實例,線程是程序中的一條執(zhí)行分支,多線程就是在同一個程序中可以同時執(zhí)行多個任務(wù)。每一個進(jìn)程至少有一個主執(zhí)行線程,它無需由用戶去主動創(chuàng)建,是由系統(tǒng)自動創(chuàng)建的。用戶根據(jù)需要在應(yīng)用程序中創(chuàng)建其他線程,多個線程并發(fā)地運(yùn)行于同一個進(jìn)程中?! ∫粋€進(jìn)程中的所有線程都在該進(jìn)程的虛擬地址空間中,共同使用這些虛擬地址空間、全局變量和系統(tǒng)資源。  1.2VC  VC++環(huán)境對多線程技術(shù)的支持visualc++6.0中,MFC類庫提供了

4、對多線程編程的支持,使得多線程編程更加方便。MFC中有兩類線程,分別稱之為工作者線程和用戶界面線程。二者的主要區(qū)別在于工作者線程沒有消息循環(huán),而用戶界面線程有自己的消息隊列和消息循環(huán)。工作者線程通常用來執(zhí)行后臺計算和維護(hù)任務(wù)。用戶界面線程一般用于處理獨立于其他線程執(zhí)行之外的用戶輸入,響應(yīng)用戶及系統(tǒng)所產(chǎn)生的事件和消息等。  1.3線程創(chuàng)建、掛起、恢復(fù)、終止  在MFC中,一般用全局函數(shù)AfxBeginThread()來創(chuàng)建并初始化一個線程的運(yùn)行,該函數(shù)有兩種重載形式,分別用于創(chuàng)建工作者線程和用戶界面線程。Sus-pendThread()和ResumeThrea

5、d()分別用于掛起指定的線程和恢復(fù)用SuspendThread()掛起的線程。Exit-Thread(DWORDdwExitC0de)用于線程終結(jié)自身的執(zhí)行?! ?.4線程同步  線程之間經(jīng)常要同時訪問一些資源,因此對共享資源進(jìn)行訪問引起沖突是不可避免的。為了解決這種資源沖突問題,必須引入線程同步的概念。Win32API提供了多種同步控制對象來解決共享資源訪問沖突,包括使用臨界區(qū)、使用互斥對象、使用信號量、使用事件。  2串口通信編程  目前,在Windows下編程時,常用的串口通信主要有3種方法:用MSC0mm通信控件;用WindowsAPI進(jìn)行編程;使用

6、第三方提供的一些串口通訊類進(jìn)行編寫?! ?1)MSComm控件  利用MSComm控件會使編程快捷簡單。然而,由于做了大量的封裝,降低了編程的可控性和靈活性,因此在多線程多串口編程時,需要做許多復(fù)雜的處理?! ?2)WindowsAPI  利用WindowsAPI編寫串口程序,特別是復(fù)雜的多線程串口程序時,對于程序員的編程能力要求較高。除了需要程序員熟練掌握和使用眾多的API函數(shù),能編寫很多底層代碼之外,還必須熟悉線程的編程方法?! ?3)第三方串口通信類  利用第三方的串口通信類進(jìn)行串口編程時,既可以使編程效率高,程序可控性強(qiáng),又比WindowAPI編程簡

7、單,其中應(yīng)用最多的第三方的串口通信類是CSerial-Port。它基于多線程,是一個Win32API的打包類,對處理串口的Win32API類進(jìn)行了封裝,借助這個類可以很方便地對串口進(jìn)行操作,容易實現(xiàn)多線程的串口通信,編寫的程序在Windows98/NT/2000/XP操作系統(tǒng)下可很好地運(yùn)行。  比較3種串口通信方式,可以發(fā)現(xiàn)使用第三方串口通信類CSerialPort是實現(xiàn)Windows下多線程串口編程的較好選擇?! ?多線程編程技術(shù)在GPS數(shù)據(jù)采集系統(tǒng)中的應(yīng)用  3.1GPS導(dǎo)航系統(tǒng)功能分析  GPS導(dǎo)航是通過GPS定位技術(shù)實時給出用戶所在的位置,這就要求需

8、要實時接收來自GPS接收機(jī)串口的定位數(shù)據(jù),在實時監(jiān)視

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動畫的文件,查看預(yù)覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(fù)責(zé)整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時聯(lián)系客服。
3. 下載前請仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時可能由于網(wǎng)絡(luò)波動等原因無法下載或下載錯誤,付費(fèi)完成后未能成功下載的用戶請聯(lián)系客服處理。