亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        POS實(shí)時監(jiān)控軟件多線程通信設(shè)計(jì)及實(shí)現(xiàn)

        2015-12-23 01:00:12劉艷群朱莊生
        關(guān)鍵詞:界面系統(tǒng)設(shè)計(jì)

        劉艷群,朱莊生

        (1.北京航空航天大學(xué) 慣性技術(shù)重點(diǎn)實(shí)驗(yàn)室,北京100191;2.北京航空航天大學(xué) 新型慣性技術(shù)儀表與導(dǎo)航系統(tǒng)技術(shù)國防重點(diǎn)學(xué)科實(shí)驗(yàn)室,北京100191)

        0 引 言

        位置姿態(tài)測量系統(tǒng) (position and orientation system,POS)[1,2]主要由慣性測量單元 (inertial measurement unit,IMU)、全球定位系統(tǒng) (global position system,GPS)、POS計(jì)算機(jī)系統(tǒng) (POS computer system,PCS)和后處理軟件組成[3],因此POS系統(tǒng)是一個復(fù)雜且有大量數(shù)據(jù)信息傳遞和存儲的系統(tǒng)。從POS工程應(yīng)用背景的需求來說,需要對POS系統(tǒng)進(jìn)行實(shí)時監(jiān)控,但要實(shí)現(xiàn)對POS系統(tǒng)的實(shí)時監(jiān)控,首要解決是通信問題。監(jiān)控軟件常用監(jiān)控接口有串口、USB口、網(wǎng)口等。監(jiān)控軟件一般采用單一的接口作為監(jiān)控接口,但這種方式會導(dǎo)致監(jiān)控能力受到接口性能的限制。例如:串口數(shù)據(jù)傳輸速度和傳輸距離導(dǎo)致監(jiān)控軟件只能實(shí)現(xiàn)低速、短距離的監(jiān)控;以太網(wǎng)雖能實(shí)現(xiàn)高速、遠(yuǎn)距離監(jiān)控,但大數(shù)據(jù)量的傳輸會造成數(shù)據(jù)流阻塞和資源浪費(fèi)。

        本文基于Windows Socket的網(wǎng)絡(luò)數(shù)據(jù)傳輸和MSComm串口通信原理,設(shè)計(jì)基于TCP/IP 協(xié)議的流式套接字的網(wǎng)絡(luò)數(shù)據(jù)傳輸和MSComm 串口監(jiān)控多線程通信系統(tǒng),實(shí)現(xiàn)對POS系統(tǒng)的數(shù)據(jù)傳輸及系統(tǒng)的監(jiān)控,消除了單一監(jiān)控接口的弊端,充分利用了不同通信方式的優(yōu)勢,實(shí)現(xiàn)優(yōu)勢互補(bǔ),具有很好的工程應(yīng)用價值。

        1 多線程通信方法

        1.1 POS系統(tǒng)

        POS的基本工作原理如圖1所示,系統(tǒng)由IMU 和POS導(dǎo)航計(jì)算機(jī)兩大部分組成,POS導(dǎo)航計(jì)算機(jī)集成了系統(tǒng)供電單元、GNSS接收單元、數(shù)據(jù)處理單元、數(shù)據(jù)存儲單元等;IMU 由加速計(jì)、陀螺儀和溫度傳感器等各類傳感器構(gòu)成。利用IMU 可實(shí)時連續(xù)地測量載體的角速度和加速度信息,通過積分運(yùn)算可得載體的位置、速度和姿態(tài)等參數(shù),但由于積分運(yùn)算會導(dǎo)致誤差的積累而引發(fā)導(dǎo)航結(jié)果的發(fā)散;GNSS單元通過獲取衛(wèi)星信號實(shí)時解算得到高精度的位置信息,但其數(shù)據(jù)更新率低;因此將兩者組合起來,綜合二者的優(yōu)點(diǎn),實(shí)現(xiàn)優(yōu)勢互補(bǔ),經(jīng)過平滑、事后差分等后處理,可以獲得更高精度的位置姿態(tài)信息。

        圖1 POS的基本工作原理

        由于POS應(yīng)用于各種載荷,POS接口也從單一的串口向多樣的、高速、可靠接口發(fā)展,目前POS 的接口資源有:串口RS-232、串口RS-422、CAN 口、以太網(wǎng)等。

        由于串口RS-232和RS-422結(jié)構(gòu)簡單,編程簡易,已廣泛作為工業(yè)通信的一種手段。串口RS-232的最大傳輸距離約為15m,最大傳輸速率為460800b/s;串口RS-422的最大傳輸距離約為1200 多米,最大傳輸速率為10Mb/s。但串口RS-232、RS-422 通信的可靠性低,抗噪聲干擾性弱,以及其傳輸速度和傳輸距離的限制,使其通信能力受到嚴(yán)重的局限。

        CAN 總線屬于工業(yè)現(xiàn)場總線,是一種有效支持分布式控制或?qū)崟r控制的串行通信網(wǎng)絡(luò)。與一般的通信總線相比,CAN 總線網(wǎng)絡(luò)各節(jié)點(diǎn)之間的數(shù)據(jù)通信實(shí)時性強(qiáng),通信速率最高可達(dá)1Mb/s,但傳輸距離與速率成反比例。CAN 總線適用于大數(shù)據(jù)量短距離或者長距離小數(shù)據(jù)量,實(shí)時性要求比較高的通信。

        以太網(wǎng)通信是一種高速、可靠的通信方式,目前10、100Mb/s的快速以太網(wǎng)已開始廣泛應(yīng)用,1Gb/s以太網(wǎng)技術(shù)也逐漸成熟。且通信網(wǎng)絡(luò)具有更高的帶寬和性能,通信協(xié)議有更高的靈活性,是任何一種通信手段所無法比擬得。

        根據(jù)各接口的特點(diǎn),在POS中串口主要用于器件間的低速數(shù)據(jù)傳輸,如與監(jiān)控上位機(jī)間的數(shù)據(jù)傳輸;CAN 總線通信主要用于與載荷間的高速數(shù)據(jù)傳輸;以太網(wǎng)通信主要用于高速數(shù)據(jù)的存儲傳輸。本文提出一種多線線程的通信方案,采用以太網(wǎng)通信和串口通信并行使用,解決了高速數(shù)據(jù)傳輸和實(shí)時監(jiān)控的問題。

        1.2 多線程通信設(shè)計(jì)總體方案

        MFC中有兩類線程,分別稱之為用戶界面線程和工作者線程。用戶界面線程擁有自己的消息隊(duì)列和消息循環(huán)來處理界面消息,可以與用戶進(jìn)行交互;工作者線程沒有消息循環(huán),一般用來完成后臺計(jì)算和維護(hù)任務(wù)。本文提出的多線程方法總臺方案是:在工作者線程中開啟一個以太網(wǎng)通信工作線程,利用Windows Socket 控件建立了基于TCP/IP協(xié)議的以太網(wǎng)通信[4-7],在軟件后臺運(yùn)行,實(shí)現(xiàn)與POS系統(tǒng)高速數(shù)據(jù)的傳輸;在用戶界面線程運(yùn)行串口通信線程,利用MSComm 控件設(shè)計(jì)串口通信[8-11],實(shí)現(xiàn)與用戶的交互,實(shí)現(xiàn)對POS系統(tǒng)狀態(tài)的實(shí)時監(jiān)控;利用工作者線程與用戶界面線程擁有各自的消息響應(yīng)機(jī)制,不會產(chǎn)生干擾的特性,實(shí)現(xiàn)了以太網(wǎng)和串口并行通信??傮w設(shè)計(jì)方案流程如圖2所示。

        圖2 多線程通信設(shè)計(jì)流程

        2 多線程通信設(shè)計(jì)

        2.1 串口通信設(shè)計(jì)

        MSComm 控件有兩種處理通信的方式,一種是事件驅(qū)動方式;另一種是定時或不定時查詢方式。本次設(shè)計(jì)要實(shí)現(xiàn)對POS系統(tǒng)的實(shí)時監(jiān)控,因此對程序的實(shí)時性和速度要較高要求,所以本次設(shè)計(jì)選擇了事件驅(qū)動方式。串口通信設(shè)計(jì)流程如圖3所示。

        (1)對MSComm 控件的進(jìn)行初始化配置

        將MSComm 控件通信端口設(shè)置為端口1;波特率為9600,無校驗(yàn)位,8位數(shù)據(jù)位,1位停止位;以二進(jìn)制方式接收數(shù)據(jù);當(dāng)緩沖器有數(shù)據(jù)就觸發(fā)OnComm 事件;每次都將緩沖區(qū)的數(shù)據(jù)全部接收。

        (2)編寫OnComm 事件處理函數(shù)

        利用GetCommEvent()函數(shù)獲取串口事件,當(dāng)返回值為2時表示緩沖區(qū)有數(shù)據(jù);將緩沖區(qū)的數(shù)據(jù)提取出來。

        (3)利用SetPortOpen函數(shù)打開串口

        BOOL CMSComm::SetPortOpen (BOOL Value)

        當(dāng)Value設(shè)置為TURE 時串口打開;設(shè)置為FALSE則串口關(guān)閉。

        (4)利用函數(shù)通過串口向POS系統(tǒng)的下位機(jī)發(fā)送指令

        2.2 以太網(wǎng)通信設(shè)計(jì)

        Windows Socket支持兩種類型的套接字,即流式套接字 (SOCK _STREAM)和數(shù)據(jù)報(bào)套接字 (SOCK _DGRAM)。因?yàn)镻OS系統(tǒng)的復(fù)雜性,和考慮系統(tǒng)安全可靠性要求,本次設(shè)計(jì)采用的是流式套接字。且采用TCP/IP協(xié)議,上位機(jī)監(jiān)控軟件作為客戶端,POS系統(tǒng)作為服務(wù)器。以太網(wǎng)通信設(shè)計(jì)流程如圖4所示。

        圖4 以太網(wǎng)通信流程

        (1)以太網(wǎng)初始化,加載套接字?jǐn)?shù)據(jù)庫,創(chuàng)建流式套接字,將套接字設(shè)為非阻塞模式。

        (2)利用WSAAsyncSelect函數(shù)建立套接字的事件通知

        (3)添加網(wǎng)絡(luò)事件處理函數(shù)OnSockt。

        (4)利用connect函數(shù)創(chuàng)建與POS系統(tǒng)服務(wù)器的連接

        2.3 多線程設(shè)計(jì)

        多線程設(shè)計(jì)流程如圖2所示。串口通信界面線程位于主線程中,完成MSComm 控件的初始化后,就開啟串口通信界面線程,因此多線程的設(shè)計(jì)主要是針對以太網(wǎng)工作線程設(shè)計(jì)。

        (1)創(chuàng)建Windows Socket工作線程的入口函數(shù)

        DWORD WINAPI ThreadFun(LPVOID pThread)

        創(chuàng)建工作線程時,首先要先建立線程的入口函數(shù),當(dāng)工作線程被啟動后會轉(zhuǎn)入該函數(shù),并且函數(shù)退出時工作線程就會結(jié)束。ThreadFun是入口函數(shù)名,也就是工作線程開始執(zhí)行時代碼所在的函數(shù)地址,pThread是工作線程傳遞的入口函數(shù)的參數(shù)。如2.1節(jié)所述WSAAsyncSelect函數(shù)實(shí)現(xiàn)套接字自主監(jiān)控網(wǎng)絡(luò)事件的功能,一旦啟動該函數(shù),將啟動一個網(wǎng)絡(luò)事件監(jiān)控的一個線程,因此若在主線程即界面線程中就調(diào)用該函數(shù),則會與串口消息的OnComm 事件處理函數(shù)發(fā)生沖突,因此將在工作線程的入口函數(shù)調(diào)用WSAAsyncSelect函數(shù),為其開辟另一個工作線程,實(shí)現(xiàn)網(wǎng)絡(luò)通信和串口通信的并行執(zhí)行。

        (2)利用CreatThread函數(shù)創(chuàng)建Windows Socket工作線程

        參數(shù)lpThreadAttributes用來決定線程句柄是否可以被子線程繼承,此處將其設(shè)為NULL,令返回的句柄不能被繼承;參數(shù)dwStackSize指定新線程的堆棧的大小,將其設(shè)為0,線程將與進(jìn)程的主線程堆棧相同;參數(shù)lpStartAddress是指向線程的入口函數(shù),即2.3 節(jié) (1)中所建立的函數(shù);參數(shù)lpParameter是線程傳遞給線程入口函數(shù)的參數(shù);參數(shù)dwCreationFlags設(shè)為0,使得線程產(chǎn)生后立即執(zhí)行;參數(shù)lpThreadId用來存放返回線程ID。

        (3)利用Terminate Thread函數(shù)終止線程

        BOOL Terminate Thread (HANDLE hThread,DWORD dwExitCode);

        3 界面設(shè)計(jì)及實(shí)驗(yàn)驗(yàn)證

        3.1 界面設(shè)計(jì)

        3.1.1 設(shè)計(jì)通信接口配置界面

        界面由兩部分組成,一個是MSComm 串口通信配置;另一個是Windows Socket 套接字的配置。效果如圖5所示。

        通過對相關(guān)參數(shù)的配置,實(shí)現(xiàn)了對MSComm 串口和Windows Socket套接字的初始化,只要啟動連接則建立了與POS系統(tǒng)的連接,可以實(shí)現(xiàn)數(shù)據(jù)傳輸和系統(tǒng)監(jiān)控。

        3.1.2 串口監(jiān)控主界面設(shè)計(jì)

        監(jiān)控界面由三大部分組成,一是系統(tǒng)的通信狀態(tài)顯示;二是系統(tǒng)的工作狀態(tài)顯示;三是系統(tǒng)的工作參數(shù)顯示。效果如圖6所示。

        3.2 實(shí)驗(yàn)驗(yàn)證

        實(shí)驗(yàn)采用北京航空航天大學(xué)研制的1.5代光纖POS系統(tǒng),測試系統(tǒng)如圖7所示。

        圖5 通信接口配置界面

        圖6 串口監(jiān)控主界面

        圖7 測試系統(tǒng)結(jié)構(gòu)

        測試結(jié)果:POS系統(tǒng)靜態(tài)測試實(shí)驗(yàn)驗(yàn)證了,多方式通信并行性的可行性,上位機(jī)既能實(shí)時通過串口監(jiān)控POS系統(tǒng)的工作狀態(tài),同時能通過網(wǎng)口實(shí)時存儲GPS接收機(jī)的實(shí)時衛(wèi)星導(dǎo)航結(jié)果數(shù)據(jù)。圖8和圖9是測試結(jié)果。

        圖8 上位機(jī)實(shí)時串口監(jiān)控結(jié)果

        圖9 網(wǎng)口實(shí)時存儲的衛(wèi)星導(dǎo)航結(jié)果數(shù)據(jù)

        4 結(jié)束語

        本文利用多線程方法,提出開辟工作線程,將以太網(wǎng)通信置于后臺運(yùn)行,避免了與界面線程的串口通信的沖突,因此實(shí)現(xiàn)了以太網(wǎng)通信和串口通信并行通信。該方案有效的利用了網(wǎng)絡(luò)通信和串口通信各自的優(yōu)點(diǎn),使得上位機(jī)既能實(shí)現(xiàn)與POS系統(tǒng)的高速數(shù)據(jù)傳輸,又能實(shí)現(xiàn)對POS系統(tǒng)監(jiān)控。但該方案還存在不足之處,這兩種通信方式只是獨(dú)自運(yùn)行,并未進(jìn)行數(shù)據(jù)交流共享,下一步可研究兩種通信方式的數(shù)據(jù)交換共享,充分利用數(shù)據(jù)信息,擴(kuò)展其功能。

        [1]HAN Rui.Motion compensation system for SAR based on GPS/IMU intetgrated navigation [J].Journal of Chinese Inertial Technology,2013,21 (3):308-311 (in Chinese). [韓銳.一種基于GPS/IMU 組合導(dǎo)航的機(jī)載SAR 運(yùn)動補(bǔ)償方案[J].中國慣性技術(shù)學(xué)報(bào),2013,21 (3):308-311.]

        [2]YANG Sheng,F(xiàn)ANG Jiancheng.Design and realization of POS data acquisition and processing system based on double DSP [J].Chinese Journal of Scientific Instrument,2008,29(9):1822-1826 (in Chinese). [楊勝,房建成.基于雙DSP的POS數(shù)據(jù)采集與處理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn) [J].儀器儀表學(xué)報(bào),2008,29 (9):1822-1826.]

        [3]FANG Jiancheng,ZHANG Zhou,GONG Xiaolin.Modeling and simulation of transfer alignment for distributed POS [J].Journal of Chinese Inertial Technology,2012,20 (4):379-385 (in Chinese).[房建成,張舟,宮曉琳.機(jī)載分布式POS傳遞對準(zhǔn)建模與仿真 [J].中國慣性技術(shù)學(xué)報(bào),2012,20(4):379-385.]

        [4]ZHOU Kun,F(xiàn)U Desheng.Data transmission and security on net based on Windows socket[J].Computer Engineering and Design,2007,28 (22):5381-5383 (in Chinese). [周坤,傅德勝.基于Windows Socket的網(wǎng)絡(luò)數(shù)據(jù)傳輸及其安全 [J].計(jì)算機(jī)工程與設(shè)計(jì),2007,28 (22):5381-5383.]

        [5]GONG Chao,GONG Liang.TCP/IP-based OPC communication between heterogeneous platforms [J].Computer Engineering,2008,44 (21):62-64 (in Chinese).[鞏超,宮亮.基于TCP/IP的異構(gòu)平臺OPC通信 [J].計(jì)算機(jī)工程,2008,44 (21):62-64.]

        [6]XIAO Meihua,YU Liquan.Model extraction and reliability verification on SOCKET communition program [J].Computer Science,2012,39 (11):102-106 (in Chinese). [肖美華,余立全.SOCKECT 通信程序模型抽取及可靠性驗(yàn)證 [J].計(jì)算機(jī)科學(xué),2012,39 (11):102-106.]

        [7]WANG Yuanyang,ZHOU Yuanping.The accomplishment of multi-pthread communication based on socket model in the Linux[J].Microcomputer Information,2009,25 (5-3):70-72 (in Chinese).[王遠(yuǎn)洋,周淵平.Linux下基于socket多線程并發(fā)通信的實(shí)現(xiàn)[J].微計(jì)算機(jī)信息,2009,25 (5-3):70-72.]

        [8]WANG Jianxin,YAN Jun.Application of MSComm and Multthread in data acquisition system [J].Computer Applications and Software,2006,23 (4):134-136 (in Chinese). [王建新,嚴(yán)駿.MSComm 和多線程在數(shù)據(jù)采集系統(tǒng)中的應(yīng)用 [J].計(jì)算機(jī)應(yīng)用與軟件,2006,23 (4):134-136.]

        [9]ZHANG Guolong,XU Xiaosu.Design of simulation inertial measurement units based on multithreading of VC++ [J].Journal of Chinese Inertial Technology,2009,17 (1):20-23(in Chinese).[張國龍,徐曉蘇.基于VC++多線程技術(shù)的模擬慣性測量組件設(shè)計(jì) [J].中國慣性技術(shù)學(xué)報(bào),2009,17(1):20-23.]

        [10]QU Wenxin,F(xiàn)AN Xiaoya.Research progress in memory technique of the multi-core and multi-thread processor [J].Computer Science,2007,34 (4):13-16 (in Chinese).[屈文新,樊曉椏.多核多線程處理器存儲技術(shù)研究進(jìn)展 [J].計(jì)算機(jī)科學(xué),2007,34 (4):13-16.]

        [11]FENG Junyu,DAI Qingyun.Realtime data collecting system basing on Multi-thread serial communition technology [J].Microcomputer Information,2006,22 (10):149-152 (in Chinese).[馮峻域,戴青云.基于多線程串口通信的生產(chǎn)數(shù)據(jù)實(shí)時采集系統(tǒng)[J].微計(jì)算機(jī)信息,2006,22 (10):149-152.]

        猜你喜歡
        界面系統(tǒng)設(shè)計(jì)
        Smartflower POP 一體式光伏系統(tǒng)
        WJ-700無人機(jī)系統(tǒng)
        ZC系列無人機(jī)遙感系統(tǒng)
        北京測繪(2020年12期)2020-12-29 01:33:58
        國企黨委前置研究的“四個界面”
        瞞天過?!律O(shè)計(jì)萌到家
        基于FANUC PICTURE的虛擬軸坐標(biāo)顯示界面開發(fā)方法研究
        連通與提升系統(tǒng)的最后一塊拼圖 Audiolab 傲立 M-DAC mini
        設(shè)計(jì)秀
        海峽姐妹(2017年7期)2017-07-31 19:08:17
        有種設(shè)計(jì)叫而專
        Coco薇(2017年5期)2017-06-05 08:53:16
        人機(jī)交互界面發(fā)展趨勢研究
        亚洲av综合日韩精品久久| 国产一区日韩二区欧美三区| 在线观看亚洲AV日韩A∨| 青青自拍视频成人免费观看| 亚洲av专区国产一区| 狠狠躁日日躁夜夜躁2020| 亚洲乱码日产精品bd在线观看| 亚洲免费不卡| 五月天亚洲av优女天堂| 国产亚洲精品av一区| 亚洲成av人片在www| 精品免费在线| 国产99久久精品一区| 日本不卡的一区二区三区中文字幕| 亚洲乱码日产精品一二三| 国语对白做受xxxxx在线中国| 天天摸天天做天天爽天天舒服| 日本午夜艺术一区二区| 久久久久夜夜夜精品国产| 亚洲综合无码一区二区三区| 最新福利姬在线视频国产观看| 成人免费av高清在线| 日韩精品视频一区二区三区 | 亚洲欧洲免费无码| 欧美日韩色另类综合| 亚洲国产成人久久综合一区77| 五十路一区二区中文字幕| 日本丰满少妇xxxx| 亚洲av成人无码久久精品| 2017天天爽夜夜爽精品视频| 特级黄色大片性久久久| 欧美变态另类刺激| 极品尤物高潮潮喷在线视频| 中文字幕亚洲精品第一页| 不卡一区二区视频日本| 男女啪啪无遮挡免费网站| 中国精品视频一区二区三区 | 国产又色又爽又刺激在线播放| 亚洲综合免费| 国产精品久久国产精麻豆| 国产毛多水多高潮高清 |