日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁(yè) > 通信技術(shù) > 通信設(shè)計(jì)應(yīng)用
[導(dǎo)讀] 引 言   GPS(Global PosiTIon System)具有全球性、全天候性優(yōu)勢(shì)的定位、定時(shí)、測(cè)速系統(tǒng),用戶利用GPS接收機(jī)接收衛(wèi)星發(fā)射的信號(hào),從而獲取當(dāng)前位置的大地坐標(biāo)、高程

引 言

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

  1 多線程概述

  1.1 基本概念

  進(jìn)程是程序在計(jì)算機(jī)上的一個(gè)執(zhí)行實(shí)例,線程是程序中的一條執(zhí)行分支,多線程就是在同一個(gè)程序中可以同時(shí)執(zhí)行多個(gè)任務(wù)。每一個(gè)進(jìn)程至少有一個(gè)主執(zhí)行線程,它無(wú)需由用戶去主動(dòng)創(chuàng)建,是由系統(tǒng)自動(dòng)創(chuàng)建的。用戶根據(jù)需要在應(yīng)用程序中創(chuàng)建其他線程,多個(gè)線程并發(fā)地運(yùn)行于同一個(gè)進(jìn)程中。

  一個(gè)進(jìn)程中的所有線程都在該進(jìn)程的虛擬地址空間中,共同使用這些虛擬地址空間、全局變量和系統(tǒng)資源。

  1.2 VC

  VC++環(huán)境對(duì)多線程技術(shù)的支持visual c++6.0中,MFC類庫(kù)提供了對(duì)多線程編程的支持,使得多線程編程更加方便。MFC中有兩類線程,分別稱之為工作者線程和用戶界面線程。二者的主要區(qū)別在于工作者線程沒(méi)有消息循環(huán),而用戶界面線程有自己的消息隊(duì)列和消息循環(huán)。工作者線程通常用來(lái)執(zhí)行后臺(tái)計(jì)算和維護(hù)任務(wù)。用戶界面線程一般用于處理獨(dú)立于其他線程執(zhí)行之外的用戶輸入,響應(yīng)用戶及系統(tǒng)所產(chǎn)生的事件和消息等。

  1.3 線程創(chuàng)建、掛起、恢復(fù)、終止

  在MFC中,一般用全局函數(shù)AfxBeginThread()來(lái)創(chuàng)建并初始化一個(gè)線程的運(yùn)行,該函數(shù)有兩種重載形式,分別用于創(chuàng)建工作者線程和用戶界面線程。Sus-pendThread()和ResumeThread()分別用于掛起指定的線程和恢復(fù)用SuspendThread()掛起的線程。Exit-Thread(DWORD dwExitC0de)用于線程終結(jié)自身的執(zhí)行。

  1.4 線程同步

  線程之間經(jīng)常要同時(shí)訪問(wèn)一些資源,因此對(duì)共享資源進(jìn)行訪問(wèn)引起沖突是不可避免的。為了解決這種資源沖突問(wèn)題,必須引入線程同步的概念。Win32 API提供了多種同步控制對(duì)象來(lái)解決共享資源訪問(wèn)沖突,包括使用臨界區(qū)、使用互斥對(duì)象、使用信號(hào)量、使用事件。

  2 串口通信編程

  目前,在Windows下編程時(shí),常用的串口通信主要有3種方法:用MSC0mm通信控件;用Windows API進(jìn)行編程;使用第三方提供的一些串口通訊類進(jìn)行編寫。

  (1)MSComm控件

  利用MSComm控件會(huì)使編程快捷簡(jiǎn)單。然而,由于做了大量的封裝,降低了編程的可控性和靈活性,因此在多線程多串口編程時(shí),需要做許多復(fù)雜的處理。

  (2)Windows API

  利用Windows API編寫串口程序,特別是復(fù)雜的多線程串口程序時(shí),對(duì)于程序員的編程能力要求較高。除了需要程序員熟練掌握和使用眾多的API函數(shù),能編寫很多底層代碼之外,還必須熟悉線程的編程方法。

  (3)第三方串口通信類

  利用第三方的串口通信類進(jìn)行串口編程時(shí),既可以使編程效率高,程序可控性強(qiáng),又比Window API編程簡(jiǎn)單,其中應(yīng)用最多的第三方的串口通信類是CSerial-Port。它基于多線程,是一個(gè)Win32 API的打包類,對(duì)處理串口的Win32 API類進(jìn)行了封裝,借助這個(gè)類可以很方便地對(duì)串口進(jìn)行操作,容易實(shí)現(xiàn)多線程的串口通信,編寫的程序在Windows 98/NT/2000/XP操作系統(tǒng)下可很好地運(yùn)行。

  比較3種串口通信方式,可以發(fā)現(xiàn)使用第三方串口通信類CSerialPort是實(shí)現(xiàn)Windows下多線程串口編程的較好選擇。

  3 多線程編程技術(shù)在GPS數(shù)據(jù)采集系統(tǒng)中的應(yīng)用

  3.1 GPS導(dǎo)航系統(tǒng)功能分析

  GPS導(dǎo)航是通過(guò)GPS定位技術(shù)實(shí)時(shí)給出用戶所在的位置,這就要求需要實(shí)時(shí)接收來(lái)自GPS接收機(jī)串口的定位數(shù)據(jù),在實(shí)時(shí)監(jiān)視串口的同時(shí)還需要進(jìn)行數(shù)據(jù)存儲(chǔ)、顯示等,利用多線程串口通信技術(shù)將很好地解決這個(gè)問(wèn)題。通過(guò)對(duì)GPS導(dǎo)航系統(tǒng)分析,將程序分成以下幾個(gè)線程:

  主線程:負(fù)責(zé)處理用戶界面的消息處理,按照預(yù)定義流程調(diào)度其他線程處理數(shù)據(jù)。

  串口監(jiān)視線程:監(jiān)視串口,采集數(shù)據(jù)并將數(shù)據(jù)保存到一個(gè)緩沖區(qū)。

  入庫(kù)線程:從緩沖區(qū)讀取數(shù)據(jù)進(jìn)行相應(yīng)處理并將處理好的數(shù)據(jù)存入數(shù)據(jù)庫(kù)。

  顯示線程:通過(guò)地圖匹配算法將用戶實(shí)時(shí)位置顯示在電子地圖上。

  GPS導(dǎo)航系統(tǒng)框圖如圖1所示。

 

 

 

  3.2 具體實(shí)現(xiàn)

  系統(tǒng)首先對(duì)線程在相應(yīng)的頭文件中說(shuō)明,然后在程序初始化時(shí)加入創(chuàng)建程序代碼,這樣創(chuàng)建后,線程就可以和主線程并發(fā)執(zhí)行了。主線程、入庫(kù)線程、顯示線程與一般的編程處理相同,所以下面著重說(shuō)明串口監(jiān)視線程。

  對(duì)串口的操作采用基于多線程編程的CSerialPort類,其工作流程如下:首先設(shè)置好串口參數(shù),再開啟串口監(jiān)測(cè)工作線程。串口監(jiān)測(cè)工作線程監(jiān)測(cè)到串口接收到的數(shù)據(jù)流、控制事件或其他串口事件后,就以消息方式通知主程序,激發(fā)消息處理函數(shù)進(jìn)行數(shù)據(jù)處理,這是對(duì)接收數(shù)據(jù)而言的;發(fā)送數(shù)據(jù)可直接向串口發(fā)送。應(yīng)用程序流程如圖2所示。

 

 

 

 

  編程步驟如下:

  (1)建立程序

  建立一個(gè)基于單文檔的MFC應(yīng)用程序CSerial-PortteST,其他步驟保持缺省狀態(tài)。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

LED驅(qū)動(dòng)電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: 驅(qū)動(dòng)電源

在工業(yè)自動(dòng)化蓬勃發(fā)展的當(dāng)下,工業(yè)電機(jī)作為核心動(dòng)力設(shè)備,其驅(qū)動(dòng)電源的性能直接關(guān)系到整個(gè)系統(tǒng)的穩(wěn)定性和可靠性。其中,反電動(dòng)勢(shì)抑制與過(guò)流保護(hù)是驅(qū)動(dòng)電源設(shè)計(jì)中至關(guān)重要的兩個(gè)環(huán)節(jié),集成化方案的設(shè)計(jì)成為提升電機(jī)驅(qū)動(dòng)性能的關(guān)鍵。

關(guān)鍵字: 工業(yè)電機(jī) 驅(qū)動(dòng)電源

LED 驅(qū)動(dòng)電源作為 LED 照明系統(tǒng)的 “心臟”,其穩(wěn)定性直接決定了整個(gè)照明設(shè)備的使用壽命。然而,在實(shí)際應(yīng)用中,LED 驅(qū)動(dòng)電源易損壞的問(wèn)題卻十分常見(jiàn),不僅增加了維護(hù)成本,還影響了用戶體驗(yàn)。要解決這一問(wèn)題,需從設(shè)計(jì)、生...

關(guān)鍵字: 驅(qū)動(dòng)電源 照明系統(tǒng) 散熱

根據(jù)LED驅(qū)動(dòng)電源的公式,電感內(nèi)電流波動(dòng)大小和電感值成反比,輸出紋波和輸出電容值成反比。所以加大電感值和輸出電容值可以減小紋波。

關(guān)鍵字: LED 設(shè)計(jì) 驅(qū)動(dòng)電源

電動(dòng)汽車(EV)作為新能源汽車的重要代表,正逐漸成為全球汽車產(chǎn)業(yè)的重要發(fā)展方向。電動(dòng)汽車的核心技術(shù)之一是電機(jī)驅(qū)動(dòng)控制系統(tǒng),而絕緣柵雙極型晶體管(IGBT)作為電機(jī)驅(qū)動(dòng)系統(tǒng)中的關(guān)鍵元件,其性能直接影響到電動(dòng)汽車的動(dòng)力性能和...

關(guān)鍵字: 電動(dòng)汽車 新能源 驅(qū)動(dòng)電源

在現(xiàn)代城市建設(shè)中,街道及停車場(chǎng)照明作為基礎(chǔ)設(shè)施的重要組成部分,其質(zhì)量和效率直接關(guān)系到城市的公共安全、居民生活質(zhì)量和能源利用效率。隨著科技的進(jìn)步,高亮度白光發(fā)光二極管(LED)因其獨(dú)特的優(yōu)勢(shì)逐漸取代傳統(tǒng)光源,成為大功率區(qū)域...

關(guān)鍵字: 發(fā)光二極管 驅(qū)動(dòng)電源 LED

LED通用照明設(shè)計(jì)工程師會(huì)遇到許多挑戰(zhàn),如功率密度、功率因數(shù)校正(PFC)、空間受限和可靠性等。

關(guān)鍵字: LED 驅(qū)動(dòng)電源 功率因數(shù)校正

在LED照明技術(shù)日益普及的今天,LED驅(qū)動(dòng)電源的電磁干擾(EMI)問(wèn)題成為了一個(gè)不可忽視的挑戰(zhàn)。電磁干擾不僅會(huì)影響LED燈具的正常工作,還可能對(duì)周圍電子設(shè)備造成不利影響,甚至引發(fā)系統(tǒng)故障。因此,采取有效的硬件措施來(lái)解決L...

關(guān)鍵字: LED照明技術(shù) 電磁干擾 驅(qū)動(dòng)電源

開關(guān)電源具有效率高的特性,而且開關(guān)電源的變壓器體積比串聯(lián)穩(wěn)壓型電源的要小得多,電源電路比較整潔,整機(jī)重量也有所下降,所以,現(xiàn)在的LED驅(qū)動(dòng)電源

關(guān)鍵字: LED 驅(qū)動(dòng)電源 開關(guān)電源

LED驅(qū)動(dòng)電源是把電源供應(yīng)轉(zhuǎn)換為特定的電壓電流以驅(qū)動(dòng)LED發(fā)光的電壓轉(zhuǎn)換器,通常情況下:LED驅(qū)動(dòng)電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: LED 隧道燈 驅(qū)動(dòng)電源
關(guān)閉