999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

一種多串口通信沖突回避與數(shù)據(jù)同步方法

2020-05-06 10:50:38李昊昱繆煒濤郭玉潔高怡寒王凱悅
通信電源技術(shù) 2020年24期
關(guān)鍵詞:指令計(jì)算機(jī)

李昊昱,繆煒濤,郭玉潔,高怡寒,王凱悅

(航空工業(yè)西安航空計(jì)算技術(shù)研究所,陜西 西安 710068)

0 引 言

串口通信因?yàn)榈统杀尽⑿阅芸煽恳约凹夹g(shù)簡(jiǎn)單而廣泛應(yīng)用于計(jì)算機(jī)、自動(dòng)化控制與機(jī)載設(shè)備間的數(shù)據(jù)傳輸?shù)认嚓P(guān)領(lǐng)域[1]。串口通信數(shù)據(jù)一般按位順序傳送,其交互的對(duì)象通常是單個(gè)計(jì)算機(jī)對(duì)應(yīng)單個(gè)外設(shè),收發(fā)數(shù)據(jù)是一問(wèn)一答式,不會(huì)產(chǎn)生數(shù)據(jù)沖撞[2]。但一些領(lǐng)域中串口通信會(huì)遇到一對(duì)多的數(shù)據(jù)交互。在某型號(hào)國(guó)產(chǎn)飛機(jī)改裝項(xiàng)目中計(jì)算機(jī)通過(guò)串口傳輸協(xié)議向外部控制設(shè)備發(fā)出操控命令,并且采用雙余度綜合控制技術(shù)。當(dāng)多個(gè)外部設(shè)備與兩臺(tái)計(jì)算機(jī)進(jìn)行數(shù)據(jù)傳輸時(shí),外設(shè)會(huì)同時(shí)收到兩臺(tái)計(jì)算機(jī)的下發(fā)指令,此時(shí)會(huì)導(dǎo)致數(shù)據(jù)收發(fā)沖突。因此文章提出避免多串口并行通信產(chǎn)生的數(shù)據(jù)沖突技術(shù)以及采用雙余度配置下的數(shù)據(jù)同步技術(shù),保證系統(tǒng)的高可靠性和高穩(wěn)定性。

1 串口沖突的問(wèn)題描述

雙方在進(jìn)行通信時(shí),要求都采用同一種規(guī)則,這種規(guī)則不僅包括電器特性,也包括通信內(nèi)容的格式和類型[3]。串行通信標(biāo)準(zhǔn)接口包括RS-232、RS-422以及RS-485。RS-232是點(diǎn)對(duì)點(diǎn)的傳統(tǒng)通信方式,由于自身電平特性的限制,不可以一對(duì)多通信[4]。RS-422是一種四線制全雙工模式的數(shù)據(jù)傳輸協(xié)議,可以同時(shí)接收和發(fā)送數(shù)據(jù)。RS-485應(yīng)用廣泛,一般采用兩線制的半雙工模式,允許數(shù)據(jù)在兩個(gè)方向上傳輸,但在同一時(shí)刻上,數(shù)據(jù)不能同時(shí)收發(fā)[5]。

目前有的機(jī)載計(jì)算機(jī)采用雙余度技術(shù)操作外部設(shè)備,其串口通信電路原理如圖1所示。

圖1 串口通信電路原理圖

圖1采用RS-485串口通信標(biāo)準(zhǔn),其顯示單一外設(shè)串口并聯(lián)出兩路通信線路,連接在兩臺(tái)計(jì)算機(jī)。左右計(jì)算機(jī)都可以收到外部設(shè)備的應(yīng)答數(shù)據(jù),假定左計(jì)算機(jī)先向外部設(shè)備發(fā)送控制指令,右計(jì)算機(jī)不但可以收到左計(jì)算機(jī)的下發(fā)指令,也可以收到外部設(shè)備的應(yīng)答數(shù)據(jù)。如果左右計(jì)算機(jī)發(fā)送指令的時(shí)刻相近,那么由于RS-485的半雙工模式特性,外部設(shè)備回復(fù)的數(shù)據(jù)極有可能與其中一個(gè)計(jì)算機(jī)的下發(fā)指令相撞,造成外部設(shè)備回復(fù)的數(shù)據(jù)源錯(cuò)誤或計(jì)算機(jī)下發(fā)指令無(wú)效,從而造成左右計(jì)算機(jī)的數(shù)據(jù)解析錯(cuò)誤,系統(tǒng)工作狀態(tài)相異,無(wú)法實(shí)現(xiàn)數(shù)據(jù)同步。

2 串口沖突的回避設(shè)計(jì)

文章提出利用時(shí)間分片方法將左右計(jì)算機(jī)的下發(fā)控制命令錯(cuò)開,從而避免數(shù)據(jù)相撞。而各設(shè)備系統(tǒng)在長(zhǎng)時(shí)間的運(yùn)行下都會(huì)與標(biāo)準(zhǔn)時(shí)間產(chǎn)生誤差,因此多機(jī)聯(lián)合作業(yè)對(duì)各設(shè)備時(shí)間統(tǒng)一基準(zhǔn)提出更高的要求[6,7]。為實(shí)現(xiàn)時(shí)間分片先進(jìn)行時(shí)間校準(zhǔn),從而保證兩臺(tái)計(jì)算機(jī)與外設(shè)之間數(shù)據(jù)交互正常穩(wěn)定。

2.1 時(shí)間校準(zhǔn)

高精度授時(shí)在航天航空領(lǐng)域有著重要應(yīng)用,可利用我國(guó)自主研發(fā)的北斗衛(wèi)星導(dǎo)航系統(tǒng)來(lái)實(shí)現(xiàn)多個(gè)計(jì)算機(jī)的時(shí)間校準(zhǔn)服務(wù)[8]。北斗的3個(gè)核心功能分別是收發(fā)短消息、快速定位以及精密授時(shí),其中精密授時(shí)即北斗為終端提供20 ns和100 ns的時(shí)間同步精度[9]。北斗協(xié)議里可以用包括定位解算取得的位置、時(shí)間以及速度等信息的RMC語(yǔ)句授時(shí)[6]。

軟件上,兩臺(tái)計(jì)算機(jī)各自每秒獲取北斗自動(dòng)上傳的RMC語(yǔ)句,并將時(shí)間信息存放在全局變量中,用戶操作外部按鈕下發(fā)時(shí)間校準(zhǔn)的命令,計(jì)算機(jī)通過(guò)Windows應(yīng)用程序接口的Set System Time函數(shù)將全局變量的時(shí)間內(nèi)容設(shè)置在當(dāng)前系統(tǒng),包括年、月、日和時(shí)、分、秒,完成時(shí)間校準(zhǔn)。

2.2 時(shí)間分片

時(shí)間分片是在時(shí)間統(tǒng)一的基礎(chǔ)上將長(zhǎng)任務(wù)分成若干個(gè)錯(cuò)開執(zhí)行的短任務(wù)技術(shù),并依賴于對(duì)短任務(wù)的合理分配,保證系統(tǒng)的及時(shí)響應(yīng),從而優(yōu)化系統(tǒng)性能[10]。時(shí)間分片在本文主要是將左右計(jì)算機(jī)下發(fā)指令錯(cuò)開,避免數(shù)據(jù)沖撞,具體流程如圖2所示。

圖2 時(shí)間分片下發(fā)命令流程圖

首先需要計(jì)算左右計(jì)算機(jī)之間下發(fā)命令的最小時(shí)間間隔。若外設(shè)的波特率是xb/s,即每秒可傳輸x位數(shù)據(jù),外設(shè)與計(jì)算機(jī)之間的最長(zhǎng)下發(fā)數(shù)據(jù)幀和最長(zhǎng)回復(fù)數(shù)據(jù)幀是m和n個(gè)字節(jié),即8×m位和8×n位。由于硬件環(huán)境影響,一對(duì)多串口通信容易發(fā)生數(shù)據(jù)沖撞,需等待當(dāng)前操作計(jì)算機(jī)下發(fā)指令的時(shí)間加上外部設(shè)備回復(fù)數(shù)據(jù)的時(shí)間后,另一臺(tái)計(jì)算機(jī)才可以發(fā)送其他指令,避免沖突。因此兩臺(tái)計(jì)算機(jī)之間下發(fā)命令的最小時(shí)間間隔應(yīng)為:

為保證收發(fā)數(shù)據(jù)的正確性,利用時(shí)長(zhǎng)至少大于兩倍最小時(shí)間間隔的定時(shí)器計(jì)數(shù),將某單位時(shí)間分段,左計(jì)算機(jī)在第一個(gè)時(shí)間段計(jì)數(shù)0時(shí)下發(fā)指令,右計(jì)算機(jī)在下一個(gè)時(shí)間段計(jì)數(shù)1時(shí)下發(fā)指令。

以時(shí)間校準(zhǔn)和時(shí)間分片為基礎(chǔ)的串口沖突回避設(shè)計(jì)不僅可以面對(duì)單一外設(shè),也可以用于多路串口的多個(gè)設(shè)備。如圖2所示,在定時(shí)器里完成當(dāng)前操作計(jì)算機(jī)向N個(gè)設(shè)備在計(jì)數(shù)0時(shí)下發(fā)指令,另一臺(tái)計(jì)算機(jī)則在計(jì)數(shù)1時(shí)對(duì)N個(gè)設(shè)備下發(fā)指令,錯(cuò)開發(fā)送指令可以留下足夠的時(shí)間得到外部設(shè)備回復(fù)的數(shù)據(jù),回避了數(shù)據(jù)沖突。

2.3 數(shù)據(jù)同步

采用雙余度控制的串口外接電路設(shè)計(jì),計(jì)算機(jī)可以收到對(duì)側(cè)計(jì)算機(jī)的下發(fā)指令和外設(shè)的應(yīng)答數(shù)據(jù),并且二者在緩沖區(qū)通常出現(xiàn)粘在一起的情況,因此實(shí)現(xiàn)數(shù)據(jù)同步要求計(jì)算機(jī)拆分對(duì)側(cè)計(jì)算機(jī)的下發(fā)指令和外設(shè)應(yīng)答數(shù)據(jù)。一般通信內(nèi)容中都會(huì)有標(biāo)識(shí)來(lái)區(qū)分各個(gè)數(shù)據(jù)幀,也代表外設(shè)的工作模式,計(jì)算機(jī)可根據(jù)對(duì)側(cè)計(jì)算機(jī)下發(fā)指令的標(biāo)識(shí)判斷外設(shè)此時(shí)的工作模式,從而調(diào)整左右計(jì)算機(jī)實(shí)時(shí)同步。

若兩臺(tái)計(jì)算機(jī)已經(jīng)過(guò)時(shí)間校準(zhǔn)和時(shí)間分片,則設(shè)置一個(gè)判斷主從計(jì)算機(jī)的標(biāo)識(shí)變量Flag,默認(rèn)為1,當(dāng)計(jì)算機(jī)在只收到外設(shè)回復(fù)的數(shù)據(jù)時(shí),該計(jì)算機(jī)為主機(jī),所有下發(fā)命令會(huì)在定時(shí)器中完成,并且進(jìn)入相應(yīng)工作模式完成數(shù)據(jù)解析。若收到對(duì)側(cè)計(jì)算機(jī)的下發(fā)指令,標(biāo)識(shí)Flag設(shè)置為0,該計(jì)算機(jī)為從機(jī)。從機(jī)根據(jù)主機(jī)的下發(fā)指令標(biāo)識(shí)判斷外設(shè)工作模式,再拆分出外設(shè)此時(shí)返回的數(shù)據(jù),然后在當(dāng)前工作模式解析數(shù)據(jù)。同時(shí)從機(jī)應(yīng)禁止定時(shí)器內(nèi)下發(fā)其他指令避免干擾,在當(dāng)前工作狀態(tài)完成之后,從機(jī)標(biāo)識(shí)Flag重新置1。

3 實(shí)驗(yàn)設(shè)計(jì)與結(jié)果分析

在某型號(hào)國(guó)產(chǎn)飛機(jī)改裝項(xiàng)目中,兩臺(tái)計(jì)算機(jī)操控多個(gè)外部設(shè)備。串口通信協(xié)議為RS-485和RS-422,波特率為9 600 bit/s。根據(jù)通信協(xié)議的內(nèi)容,最長(zhǎng)下發(fā)數(shù)據(jù)幀和最長(zhǎng)回復(fù)數(shù)據(jù)幀均為26個(gè)字節(jié),將波特率代入式(1)得最小時(shí)間間隔為43 ms。在調(diào)試過(guò)程中,計(jì)算機(jī)與某一外設(shè)的連接電路中引出兩根線,再連接到另一設(shè)備上,該設(shè)備用串口調(diào)試助手觀測(cè)計(jì)算機(jī)下發(fā)命令和外設(shè)回復(fù)數(shù)據(jù)。在已進(jìn)行時(shí)間校準(zhǔn)的條件下試驗(yàn)了未采用時(shí)間分片和采用不同時(shí)間分片單位的情況,觀察1 h內(nèi)數(shù)據(jù)包是否會(huì)出錯(cuò)。

數(shù)據(jù)沖突情況主要有以下3點(diǎn)。一是外設(shè)回復(fù)數(shù)據(jù)錯(cuò)誤。正常情況下,該外設(shè)回復(fù)數(shù)據(jù)幀頭應(yīng)該為0xDBCC,標(biāo)識(shí)符為0xAFAF,長(zhǎng)度為26字節(jié)。當(dāng)遇到串口數(shù)據(jù)相撞時(shí),錯(cuò)誤數(shù)據(jù)會(huì)丟失幀頭,標(biāo)識(shí)符無(wú)效或數(shù)據(jù)內(nèi)容不符合外設(shè)實(shí)際情況。二是串口調(diào)試助手收不到外設(shè)回復(fù)數(shù)據(jù)。三是串口調(diào)試助手不再顯示對(duì)側(cè)計(jì)算機(jī)下發(fā)指令,即無(wú)法下傳指令。

當(dāng)未采用時(shí)間分片技術(shù)時(shí),出現(xiàn)數(shù)據(jù)沖突的次數(shù)多達(dá)8次,系統(tǒng)不穩(wěn)定,當(dāng)采用時(shí)間分片單位為50 ms和100 ms時(shí),數(shù)據(jù)沖突次數(shù)為5次和2次,實(shí)時(shí)同步逐漸穩(wěn)定。而當(dāng)時(shí)間分片為125 ms時(shí),數(shù)據(jù)沖突次數(shù)為0。實(shí)驗(yàn)表明,時(shí)間分片單位應(yīng)設(shè)定為接近3倍的最小時(shí)間間隔。

最終時(shí)間分片單位定為125 ms,利用125 ms的定時(shí)器將500 ms分成四個(gè)時(shí)間段并計(jì)數(shù)0,1,2,3。單一計(jì)算機(jī)下發(fā)指令的時(shí)間間隔是500 ms,兩臺(tái)計(jì)算機(jī)下發(fā)指令的時(shí)間間隔是125 ms。一臺(tái)計(jì)算機(jī)在定時(shí)器計(jì)數(shù)0時(shí)下發(fā)指令,另一臺(tái)計(jì)算機(jī)在定時(shí)器計(jì)數(shù)1時(shí)下發(fā)指令,并對(duì)多個(gè)外設(shè)都進(jìn)行了驗(yàn)證,避免了多串口數(shù)據(jù)沖突,再利用對(duì)側(cè)計(jì)算機(jī)下發(fā)指令的標(biāo)識(shí)實(shí)時(shí)同步兩臺(tái)計(jì)算機(jī)狀態(tài)。

4 結(jié) 論

在機(jī)載設(shè)備,自動(dòng)化或其他工業(yè)領(lǐng)域中,由于系統(tǒng)集成的復(fù)雜度越來(lái)越高,多路串口通信方式會(huì)經(jīng)常遇到。本文利用時(shí)間校準(zhǔn)和時(shí)間分片克服了串口數(shù)據(jù)沖突問(wèn)題,實(shí)現(xiàn)了數(shù)據(jù)實(shí)時(shí)同步,并可適用于多種串口協(xié)議,使得系統(tǒng)任務(wù)統(tǒng)一、可靠且實(shí)用。

猜你喜歡
指令計(jì)算機(jī)
聽我指令:大催眠術(shù)
計(jì)算機(jī)操作系統(tǒng)
穿裙子的“計(jì)算機(jī)”
基于計(jì)算機(jī)自然語(yǔ)言處理的機(jī)器翻譯技術(shù)應(yīng)用與簡(jiǎn)介
科技傳播(2019年22期)2020-01-14 03:06:34
計(jì)算機(jī)多媒體技術(shù)應(yīng)用初探
科技傳播(2019年22期)2020-01-14 03:06:30
ARINC661顯控指令快速驗(yàn)證方法
LED照明產(chǎn)品歐盟ErP指令要求解讀
信息系統(tǒng)審計(jì)中計(jì)算機(jī)審計(jì)的應(yīng)用
殺毒軟件中指令虛擬機(jī)的脆弱性分析
Fresnel衍射的計(jì)算機(jī)模擬演示
主站蜘蛛池模板: 中文天堂在线视频| 91精品国产自产在线老师啪l| 综合色婷婷| 国产一区二区福利| 久久久久国产一级毛片高清板| 国产三区二区| 日韩精品成人在线| 青青草一区| 亚洲天堂网2014| 成人国产精品视频频| 国产三区二区| 国产日产欧美精品| 亚洲综合色婷婷中文字幕| 亚洲综合天堂网| 久久精品这里只有国产中文精品 | 久久伊人久久亚洲综合| 精品国产美女福到在线不卡f| 在线a视频免费观看| 久久99国产综合精品1| 五月天在线网站| 亚洲国产精品美女| 茄子视频毛片免费观看| 国产精品999在线| 亚洲国产综合精品中文第一| 成人亚洲天堂| 无码免费视频| 真人高潮娇喘嗯啊在线观看| 爽爽影院十八禁在线观看| 欧亚日韩Av| 情侣午夜国产在线一区无码| 亚洲无码高清免费视频亚洲| 无码福利日韩神码福利片| 国产成人毛片| 丁香婷婷激情网| 中文天堂在线视频| 国产日韩精品一区在线不卡| 91po国产在线精品免费观看| 欧美久久网| 久久综合九色综合97婷婷| 欧美精品另类| 欧美中出一区二区| 亚洲中文字幕无码爆乳| 欧美一级高清免费a| 国产精品成人不卡在线观看| 激情無極限的亚洲一区免费| 久久久久久久97| 国产一区成人| 亚洲有码在线播放| 97视频免费在线观看| 在线看片免费人成视久网下载| 午夜国产理论| 另类专区亚洲| 夜夜操国产| 国产99视频精品免费观看9e| 国产乱子伦视频三区| 日韩成人午夜| 国产美女人喷水在线观看| 欧美成人精品一级在线观看| 久久中文字幕av不卡一区二区| 91毛片网| 欧美成人精品在线| 国产在线啪| 日韩黄色大片免费看| 91在线丝袜| 五月天福利视频| 日韩一区精品视频一区二区| 亚洲人成网站日本片| 免费毛片全部不收费的| 免费看美女自慰的网站| 亚洲美女久久| 欧美一级高清片久久99| 国产99精品视频| av一区二区无码在线| 国产欧美精品专区一区二区| 欧美区在线播放| 99ri精品视频在线观看播放| 狠狠综合久久久久综| 国内精品免费| 欧美丝袜高跟鞋一区二区| 国产毛片不卡| 国产成人精品在线1区| 国产91视频观看|