国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

多線程串口通信技術(shù)在北斗導(dǎo)航中的運(yùn)用分析

2017-08-28 01:32:18陳讓琛
無線互聯(lián)科技 2017年15期
關(guān)鍵詞:控件線程導(dǎo)航系統(tǒng)

陳讓琛

(廣州海格通信集團(tuán)股份有限公司,廣東 廣州 510650)

多線程串口通信技術(shù)在北斗導(dǎo)航中的運(yùn)用分析

陳讓琛

(廣州海格通信集團(tuán)股份有限公司,廣東 廣州 510650)

北斗導(dǎo)航系統(tǒng)作為國家戰(zhàn)略性空間基礎(chǔ)設(shè)施,不僅對(duì)國防安全意義重大,在民用領(lǐng)域的精準(zhǔn)化應(yīng)用也越來越廣泛。多線程串口通信技術(shù)應(yīng)用在北斗導(dǎo)航系統(tǒng)中,可以通過此技術(shù)來實(shí)時(shí)獲取接收機(jī)串口的定位數(shù)據(jù),同步輸出到多個(gè)通信串口中,實(shí)現(xiàn)位置、時(shí)間、速度等信息的實(shí)時(shí)更新,同時(shí)還可以多設(shè)備聯(lián)合操作,以供用戶完成多重需要,大大提升了北斗導(dǎo)航系統(tǒng)的使用效益。文章對(duì)北斗導(dǎo)航系統(tǒng)的功能和多線程串口通信技術(shù)進(jìn)行了分析,闡述了多線程串口通信技術(shù)在北斗導(dǎo)航中的具體運(yùn)用。

多線程;串口通信技術(shù);北斗導(dǎo)航;運(yùn)用

北斗衛(wèi)星導(dǎo)航系統(tǒng)是我國自主研發(fā),獨(dú)立運(yùn)行的全球衛(wèi)星導(dǎo)航系統(tǒng)。此系統(tǒng)建設(shè)主要是為國民經(jīng)濟(jì)發(fā)展而服務(wù),可應(yīng)用于中國的交通運(yùn)輸、氣象、石油、海洋、通信、公安和國家安全等多個(gè)領(lǐng)域的導(dǎo)航定位服務(wù)。2012年,我國北斗衛(wèi)星系統(tǒng)中已經(jīng)有16顆衛(wèi)星,定位精度達(dá)到了亞米級(jí),實(shí)現(xiàn)了我國及周邊地區(qū)信號(hào)的全面覆蓋。2020年左右,我國將建成覆蓋全球的北斗衛(wèi)星導(dǎo)航系統(tǒng)。

1 多線程技術(shù)概述

在WinCE中,線程主要是通過時(shí)間片作為單位來運(yùn)行實(shí)現(xiàn)的,根據(jù)時(shí)間片段的優(yōu)先程度將其分配到每個(gè)線程中,并且每個(gè)線程可以在自己所在的時(shí)間片段中進(jìn)行內(nèi)容共享。優(yōu)先等級(jí)較高的線程先運(yùn)行,然后優(yōu)先等級(jí)較低的線程再運(yùn)行。在對(duì)特定優(yōu)先級(jí)線程調(diào)度以前,必須將所有的高優(yōu)先級(jí)線程進(jìn)行阻塞。而對(duì)于相同等級(jí)的優(yōu)先級(jí)線程運(yùn)行,都是使用循環(huán)的方式來進(jìn)行調(diào)度的。如果低優(yōu)先級(jí)線程正在運(yùn)行,停止高優(yōu)先級(jí)線程的阻塞,就會(huì)導(dǎo)致低優(yōu)先級(jí)線程被立刻掛起。與此同時(shí),高優(yōu)先級(jí)線程就會(huì)被立刻調(diào)度。高優(yōu)先級(jí)的線程永遠(yuǎn)都是處于優(yōu)先地位,不會(huì)被低優(yōu)先級(jí)線程所占用,這種方式為搶占式多任務(wù)處理提供良好的條件,從而提高數(shù)據(jù)傳輸量,保證通信的實(shí)時(shí)暢通。對(duì)于線程來說,其也具有一定特殊性:線程本身存在優(yōu)先級(jí),永遠(yuǎn)不會(huì)被強(qiáng)占。同時(shí),有可能會(huì)出現(xiàn)優(yōu)先級(jí)倒置的情況,這種情況出現(xiàn)的原因是低優(yōu)先級(jí)的線程擁有高優(yōu)先級(jí)線程沒有的資源,從而發(fā)生上述情況。

2 線程實(shí)現(xiàn)方式

在整體系統(tǒng)中,會(huì)存在多個(gè)線程同步運(yùn)行,才能完成用戶需求。在WinCE中,一般通過使用事件同步對(duì)象的方法來實(shí)現(xiàn)。在事件創(chuàng)建完成后,事件對(duì)象會(huì)以“已標(biāo)示”和“未標(biāo)示”兩種狀態(tài)存在,如果設(shè)置為“已標(biāo)示”,說明任務(wù)可以進(jìn)行同步操作;如果處于“未標(biāo)示”狀態(tài),必須等到狀態(tài)變?yōu)椤耙褬?biāo)示”后,才能進(jìn)行同步操作。一個(gè)線程可以被事件對(duì)象允許將運(yùn)行減緩,然后對(duì)指定事件進(jìn)行等待。也就是說線程此時(shí)處于阻塞狀態(tài),這種情況下,線程只需要少量的電能和CPU處理能力來進(jìn)行維護(hù),同時(shí)提高了應(yīng)用程序中CPU的利用效率,使信息處理的速度有所提高,加大了信息數(shù)據(jù)的吞吐量和通信程序的暢通。如果串口中出現(xiàn)預(yù)定事件時(shí),就可以利用消息通知主線程并請(qǐng)求給予相應(yīng)的處理,在主線程接收到信息后,將相應(yīng)的線程處理程序喚醒,每個(gè)線程之間可以通過事件同步對(duì)象來完成程序同步,從而將監(jiān)視串口和讀寫串口同步進(jìn)行。

3 WinCE下串口通信技術(shù)的原理和優(yōu)勢(shì)分析

串行端口在Windows和WinCE中的通信函數(shù)大部分都是相同的,但是也有一定的差異。在Windows系統(tǒng)中,串行端口屬于流接口設(shè)備,它是建立在常規(guī)I/O驅(qū)動(dòng)程序基礎(chǔ)之上,來對(duì)與通信相關(guān)的具體函數(shù)進(jìn)行調(diào)用。而在WinCE設(shè)備中,存在較少的設(shè)備資源,而存儲(chǔ)器和顯示器的內(nèi)容量較小,接口也不多,并受實(shí)際情況影響變化較大。同時(shí),由于WinCE系統(tǒng)是建立在Unicode基礎(chǔ)之上的,它的API函數(shù)屬于Unicode格式,所以字符串的函數(shù)都必須以Unicode 格式提供給API函數(shù)。另外,WinCE系統(tǒng)中,設(shè)備名稱必須以“XXXn :”的形式來進(jìn)行書寫,而n的范圍為0~9之間的數(shù);串口要以“COM n :”的形式來命名,這里的冒號(hào)是必須存在的。WinCE系統(tǒng)不支持I/O的重疊,如果在主線程中同時(shí)進(jìn)行多個(gè)串口的讀寫,就會(huì)導(dǎo)致整個(gè)程序減慢并處于串口等待狀態(tài)。所以,WinCE系讀寫串口的操作都是通過多線程方式來完成。

現(xiàn)階段,WinCE系統(tǒng)在進(jìn)行編程時(shí),ActiveX控件中的MSComm通信控件,WindowsAPI和第三方通信控件進(jìn)行編程是最為常用的串口通信控件。在WinCE系統(tǒng)中應(yīng)用MSComm通信控件時(shí),因?yàn)檫@些控件已經(jīng)被封裝,簡單地配置串口就可以了。但是在此情況下,大大降低了編程的靈活性和可控性。而在編程時(shí)如果使用Windows API 函數(shù),要求工作人員必須掌握更多的底層編程知識(shí)和更高的多線程技術(shù),增加了開發(fā)的難度。當(dāng)使用第三方串口通信控件進(jìn)行編程時(shí),可以提高編程效率,也可以對(duì)程序進(jìn)行更好的控制。其中最常用的此類控件為CComPort類,它將CSeriPort類CRead-ComThread類和CWriteComThread類進(jìn)行了封裝,此類控件是建立在多線程基礎(chǔ)之上的,很容易操作串口,從而使得多線程串口通信得以實(shí)現(xiàn)。根據(jù)以上3種串口通信技術(shù)的對(duì)比,第三方串口通信中CComPort類是WinCE系統(tǒng)中進(jìn)行多線程編寫的最佳選擇。

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

北斗導(dǎo)航都是通過衛(wèi)星來進(jìn)行定位作業(yè)的,然后將相應(yīng)的數(shù)據(jù)傳輸給用戶。為了達(dá)到定位需求,北斗導(dǎo)航接收機(jī)解算的位置信息等數(shù)據(jù)需要通過串口來提供給用戶實(shí)時(shí)的數(shù)據(jù)。接收機(jī)在接收數(shù)據(jù)的同時(shí),要對(duì)數(shù)據(jù)進(jìn)行實(shí)時(shí)監(jiān)控,存儲(chǔ)和顯示,這些作業(yè)都可以使用多線程串口通信技術(shù)來完成。所以,北斗導(dǎo)航系統(tǒng)程序在使用此技術(shù)時(shí),首先要確定一個(gè)主線程,這主要是用來處理用戶信息,然后再使用已經(jīng)預(yù)定好的預(yù)流程來對(duì)其他的支線程進(jìn)行調(diào)度并進(jìn)行數(shù)據(jù)的處理。其次,串口堅(jiān)實(shí)的線程,是對(duì)數(shù)據(jù)處理的滯留期,入庫線程在處理滯留期的數(shù)據(jù)后對(duì)其進(jìn)行儲(chǔ)存。最后,顯示線程。其主要是將已處理的數(shù)據(jù)對(duì)用戶進(jìn)行顯示,其顯示出來的狀態(tài)都會(huì)與地圖相一致,使得用戶可以讀懂這些數(shù)據(jù)。具體的操作流程如圖1所示。

隨著科學(xué)技術(shù)的發(fā)展,北斗導(dǎo)航技術(shù)也得到了不斷完善。多線程串口通信技術(shù)在程序中的應(yīng)用可以分為以下幾個(gè)部分:(1)確定用戶主界面線程。它主要是用來處理用戶界面的消息,根據(jù)預(yù)定義流程來對(duì)其他線程數(shù)據(jù)進(jìn)行處理和調(diào)整。(2)串口監(jiān)聽線程。它主要是用來對(duì)串口的監(jiān)聽,檢查是否有數(shù)據(jù)傳輸過來,如果有數(shù)據(jù),需要將敘述發(fā)送給讀線程。(3)讀線程。它主要是用來接收串口監(jiān)聽線程的消息,并將其保存到緩沖區(qū)中。(4)寫線程。主要是對(duì)緩沖區(qū)的數(shù)據(jù)進(jìn)行讀取和處理,并將處理好的數(shù)據(jù)存入數(shù)據(jù)庫。(5)顯示線程。結(jié)合地圖,使用科學(xué)合理的計(jì)算方法對(duì)用戶實(shí)時(shí)地址在電子地圖上進(jìn)行顯示。具體流程如圖2所示。

圖1 北斗一號(hào)導(dǎo)航系統(tǒng)程序

圖2 北斗二號(hào)導(dǎo)航系統(tǒng)程序

5 結(jié)語

北斗導(dǎo)航在我國國民經(jīng)濟(jì)發(fā)展中占據(jù)著重要位置,不僅對(duì)人們?nèi)粘Ia(chǎn)和生活產(chǎn)生巨大影響,在各行業(yè)研發(fā)和運(yùn)行中也發(fā)揮著關(guān)鍵的作用。所以,北斗導(dǎo)航具有很高的社會(huì)價(jià)值。而多線程接口通信技術(shù)在北斗導(dǎo)航系統(tǒng)中的應(yīng)用,實(shí)現(xiàn)了數(shù)據(jù)共享和分發(fā)的作用,解決了用戶多路數(shù)據(jù)并發(fā)的需求,為導(dǎo)航產(chǎn)品提供全方位的服務(wù),最大程度地提升設(shè)備的使用效率。實(shí)際使用中,由于軟件的成熟度和每個(gè)人的編程風(fēng)格不同,多線程串口通信技術(shù)還存在許多可以挖掘和完善的地方,相信在以后的科研工作中通過對(duì)實(shí)際效果的評(píng)估和積累,能進(jìn)一步增強(qiáng)多線程串口通信的穩(wěn)定性和實(shí)用性。

[1]趙素林.利用多線程實(shí)現(xiàn)串口數(shù)據(jù)的實(shí)時(shí)圖形化顯示[J].計(jì)算機(jī)技術(shù)與發(fā)展,2016(6):124-126.

[2]馮正,韓焱,王黎明.多線程串口通信技術(shù)在GPS導(dǎo)航中的應(yīng)用[J].現(xiàn)代電子技術(shù),2013(8):28-30,33.

[3]張九宴.VC多線程串口通訊編程技術(shù)在GPS導(dǎo)航的應(yīng)用介紹[J].全球定位系統(tǒng),2012(3):21-23,53.

[4]熊志昂,李紅瑞,賴順香.GPS技術(shù)與工程應(yīng)用[M].北京:國防工業(yè)出版社,2015(6):12-13.

Analysis on the use of multi-threaded serial communication technology in Beidou navigation

Chen Rangchen
(Guangzhou Haige Communications Group Limited by Share Ltd., Guangzhou 510650, China)

The Beidou navigation system as a national strategic space infrastructure, it is not only of great significance for national security, but also enjoys wider and more accurate application in civil field. The application of multi thread serial communication technology in Beidou navigation system can be used to acquire real time positioning data of the receiver serial ports, synchronization output to multiple communication serial ports, and realize real-time updates of location, time, speed and other information, at the same time, multiple devices can also be combined to enable users to perform multiple requirements, which greatly enhance the use of Beidou navigation system benefits. This paper analyzes the function of Beidou navigation system and the technology of multi thread serial communication, and expounds the speci fi c application of multi thread serial communication technology in Beidou navigation.

multi thread; serial communication technology; Beidou navigation; application

陳讓?。?980— ),男,廣東汕尾,工程師;研究方向:高級(jí)數(shù)字電路設(shè)計(jì)師。

猜你喜歡
控件線程導(dǎo)航系統(tǒng)
說說“北斗導(dǎo)航系統(tǒng)”
關(guān)于.net控件數(shù)組的探討
軟件(2018年7期)2018-08-13 09:44:42
“北斗”導(dǎo)航系統(tǒng)是怎樣煉成的
一種GNSS/SINS容錯(cuò)深組合導(dǎo)航系統(tǒng)設(shè)計(jì)
淺談linux多線程協(xié)作
解讀全球第四大導(dǎo)航系統(tǒng)
Linux線程實(shí)現(xiàn)技術(shù)研究
就這樣玩會(huì)VBA中常見的自定義控件
電腦迷(2012年24期)2012-04-29 00:44:03
么移動(dòng)中間件線程池并發(fā)機(jī)制優(yōu)化改進(jìn)
在PowerBuUder中利用WinSock控件制作簡單的Web服務(wù)器
镇安县| 儋州市| 灌云县| 安溪县| 本溪市| 晋城| 洛隆县| 阳信县| 黑龙江省| 塔城市| 潮州市| 息烽县| 白水县| 成安县| 河曲县| 潍坊市| 郸城县| 长沙市| 金阳县| 灵武市| 葵青区| 塔城市| 彭州市| 黄冈市| 勃利县| 积石山| 平利县| 随州市| 宁武县| 湄潭县| 光泽县| 望都县| 黄石市| 宝坻区| 万载县| 南丹县| 海晏县| 桓台县| 广元市| 平武县| 德江县|