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

地面測量設(shè)備串口通信的數(shù)據(jù)處理方法

2021-12-08 12:24:26馬基賢
數(shù)字通信世界 2021年11期
關(guān)鍵詞:數(shù)據(jù)處理指令設(shè)備

馬基賢,王 偉

(1.天津航天機電設(shè)備研究所,天津 300458;2.中鐵建大橋局電氣化工程有限公司,天津 300000)

航天領(lǐng)域,航天器等設(shè)備研制過程中試驗及存放環(huán)境等需要各類地面測量設(shè)備支持保障,完成試驗過程監(jiān)測及環(huán)境參數(shù)監(jiān)測等。涉及溫濕度、壓力壓差、氣體成分、位置信息、電量、輸入輸出控制等各類參數(shù)。而在遠程控制、測試測量等應(yīng)用中,溫濕度傳感器、壓力壓差傳感器、氣體流量/組分傳感器、定位模塊、電量模塊、稱重模塊、IO控制模塊等大部分測試測量設(shè)備都支持串口通信。串口通信(Serial Communication),是指外設(shè)和計算機間,通過數(shù)據(jù)信號線、地線等,按位進行傳輸數(shù)據(jù)的一種通信方式。[1]串口是一種接口標(biāo)準(zhǔn),它規(guī)定了接口的電氣標(biāo)準(zhǔn),沒有規(guī)定接口插件電纜以及使用的協(xié)議[1]。地面測量設(shè)備的串口通信應(yīng)用主要有支持串口通信的測試測量設(shè)備應(yīng)用與具備串口通信功能的測控設(shè)備研制。本文針對常用串口通信協(xié)議,歸納分類并相應(yīng)給出數(shù)據(jù)處理流程。

1 通信協(xié)議

不同的廠家、不同的設(shè)備類型,通信協(xié)議各有不同。常用的通信協(xié)議有MODBUS協(xié)議、導(dǎo)航設(shè)備的NMEA協(xié)議、廠家自定義協(xié)議。

1.1 MODBUS協(xié)議

MODBUS是一種串行通信協(xié)議,是Modicon公司(現(xiàn)在的施耐德電氣Schneider Electric)于1979年為使用可編程邏輯控制器(PLC)通信而發(fā)表。MODBUS已經(jīng)成為工業(yè)領(lǐng)域通信協(xié)議的業(yè)界標(biāo)準(zhǔn)(De facto),并且現(xiàn)在是工業(yè)電子設(shè)備之間常用的連接方式[2]。MODBUS通信協(xié)議分為兩種串行通信模式,ASCII 和RTU通信模式[3]。協(xié)議組成為:起始位、設(shè)備地址、功能代碼、數(shù)據(jù)、校驗位、結(jié)束符。

1.2 NMEA協(xié)議

NMEA0183是美國國家海洋電子協(xié)會(National Marine Electronics Association)為海用電子設(shè)備制定的標(biāo)準(zhǔn)格式。NMEA0183協(xié)議采用ASCII碼來傳遞GPS定位信息,我們稱之為幀[4]。

幀格式為$aaccc,ddd,ddd,?,ddd*hh(CR)(LF),詳細定義如下:

(1)“$”:幀命令起始位;

(2)“aaccc”:地址域,前兩位為識別符(aa),后三位為語句名(ccc);

(3)“ddd,ddd”:數(shù)據(jù)內(nèi)容;

(4)“*”:校驗和前綴(也可以作為語句數(shù)據(jù)結(jié)束的標(biāo)志);

(5)“hh”:校驗和(check sum),$與*之間所有字符 ASCII 碼的校驗和(各字 節(jié)做異或運算,得到校驗和后,再轉(zhuǎn)換 16 進制格式的 ASCII 字符);

(6)“(CR)(LF)”:幀結(jié)束,回車和換行符。

1.3 小結(jié)

MODBUS協(xié)議、NMEA協(xié)議以及廠家自定義協(xié)議。歸納總結(jié),主要有連續(xù)方式和指令方式兩種[5]。

連續(xù)方式:指主機不需要發(fā)布命令,從機就能自動地向主機發(fā)送數(shù)據(jù)。

指令方式:指主機向從機發(fā)布命令,從機根據(jù)指令執(zhí)行動作,并將結(jié)果“應(yīng)答”給主機的模式。

其中指令方式又包括一問一答和一問多答兩種形式。

導(dǎo)航設(shè)備通常采用連續(xù)方式,建立連接后,數(shù)據(jù)信息即可連續(xù)上傳。傳感器和控制設(shè)備通常采用指令方式,通過讀寫指令查詢數(shù)據(jù)、控制設(shè)備。自定義協(xié)議通常數(shù)據(jù)內(nèi)容固定、單一的監(jiān)測設(shè)備采用連續(xù)方式;而數(shù)據(jù)內(nèi)容較多、頻率需求不固定并包含指令設(shè)置的測控設(shè)備采用指令方式。

2 數(shù)據(jù)處理

本文數(shù)據(jù)處理主要包括數(shù)據(jù)讀寫、數(shù)據(jù)包處理。為保證數(shù)據(jù)完整有效的解析,不同的協(xié)議,數(shù)據(jù)處理方法也有所不同。

2.1 連續(xù)方式

連續(xù)方式數(shù)據(jù)處理由于通信延時、中斷等原因,數(shù)據(jù)端口會出現(xiàn)數(shù)據(jù)長度不夠一幀或者超出一幀的情況。因此主要考慮數(shù)據(jù)讀寫速度匹配性及數(shù)據(jù)包粘包/半包的問題。根據(jù)通信數(shù)據(jù)長度分定長和變長兩種。

定長數(shù)據(jù)處理根據(jù)端口數(shù)據(jù)長度控制數(shù)據(jù)讀取速度,端口數(shù)據(jù)不夠一幀長度時循環(huán)等待,大于等于一幀長度時全部讀回。先將上次的斷幀數(shù)據(jù)與本次的數(shù)據(jù)連接,再通過查找?guī)^并讀取固定長度數(shù)據(jù)的方式拆包,取出完整數(shù)據(jù)包,并保存剩余斷幀數(shù)據(jù),通過“幀頭+固定長度”的方式解決粘包/半包的問題。具體流程如圖1所示。

圖1 定長數(shù)據(jù)處理流程

變長數(shù)據(jù)處理根據(jù)數(shù)據(jù)產(chǎn)生頻率(循環(huán)周期)控制數(shù)據(jù)讀取速度,定時循環(huán)將端口數(shù)據(jù)全部讀回,前提是端口數(shù)據(jù)長度大于零。讀取后對數(shù)據(jù)尾部先進行幀尾判斷,若是幀尾,即為完整數(shù)據(jù);若不是幀尾,將斷幀數(shù)據(jù)截取保存。數(shù)據(jù)不為空時,再將上次的斷幀數(shù)據(jù)與本次的數(shù)據(jù)連接,完成解析處理。通過“幀頭+幀尾”的方式拆包解決粘包/半包的問題。具體流程如圖2所示。

圖2 變長數(shù)據(jù)處理流程

定長數(shù)據(jù)讀取速度根據(jù)端口數(shù)據(jù)長度控制,有數(shù)即讀。但考慮線程資源,通常設(shè)定50-100ms循環(huán)周期。保證資源有效分配。

上述兩種方法針對數(shù)據(jù)堵塞時處理結(jié)果略有不同,定長數(shù)據(jù)處理方式將擁堵數(shù)據(jù)讀回快速循環(huán)處理,最大程度保證數(shù)據(jù)完整性;變長數(shù)據(jù)處理方式將擁堵數(shù)據(jù)讀回只讀取一幀處理,人為造成少量數(shù)據(jù)丟失,但此種方式對數(shù)據(jù)相對時間整齊,對無時間標(biāo)志的數(shù)據(jù)存儲較為友好。

2.2 指令方式

指令方式的數(shù)據(jù)處理方法相對連續(xù)方式,簡單很多。建立連接后,根據(jù)測量/控制周期發(fā)送指令,等待接收數(shù)據(jù),不超時,格式檢驗成功后解析數(shù)據(jù);超時或校驗不成功時,等待進入下次循環(huán)。一問一答和一問多答兩種情況相似。一問一答時,發(fā)一條收一條即可;一問多答時,發(fā)一條后,循環(huán)讀取多條指令,直至判別為“結(jié)束指令”判斷即可再發(fā)送下一條指令。另有些設(shè)備自帶接口函數(shù),直接調(diào)用其讀寫函數(shù)即可。

圖3 一問多答處理流程

2.3 數(shù)據(jù)包處理

數(shù)據(jù)包處理通常根據(jù)協(xié)議內(nèi)容格式處理。協(xié)議內(nèi)容通常有固定位置定義和指定字符索引兩種。固定位置定義以MODBUS RTU為例,起始位(1個字節(jié))+設(shè)備地址(1個字節(jié))+功能代碼(1個字節(jié))+長度(4個字節(jié))……+校驗碼(2個字節(jié))+結(jié)束符(1個字節(jié)),將數(shù)據(jù)包格式化成數(shù)組,索引相應(yīng)位置字段即可。指定字符索引以NEMA協(xié)議為例,$aaccc,ddd,ddd,,,,ddd*hh(CR)(LF),需要根據(jù)地址域字符找到所需的數(shù)據(jù)幀,根據(jù)分隔符拆分字段,再根據(jù)字段定義解析。

2.4 程序結(jié)構(gòu)優(yōu)化

通常串口類設(shè)備通信速度在秒級,針對單臺設(shè)備的讀數(shù)據(jù)和數(shù)據(jù)處理程序結(jié)構(gòu)一般采用上述流程圖順序執(zhí)行即可。

針對多臺設(shè)備連接數(shù)據(jù)處理或者程序數(shù)據(jù)量較大時,建議采用并行結(jié)構(gòu),將數(shù)據(jù)讀取和數(shù)據(jù)處理分線程并行處理。推薦采用生產(chǎn)者-消費者模式。

圖4 生產(chǎn)消費模式

3 結(jié)束語

本文針對常用串口通信協(xié)議,歸納分類并相應(yīng)給出數(shù)據(jù)處理流程。成功應(yīng)用于航天員人體代謝模擬、航天器儲運包裝箱測控系統(tǒng)等測控軟件編制。其中采用定長數(shù)據(jù)處理流程完成某固定長度的電量監(jiān)測設(shè)備數(shù)據(jù)處理,采用變長數(shù)據(jù)處理流程完成北斗定位、GPS定位模塊數(shù)據(jù)處理,采用一問一答式數(shù)據(jù)處理流程完成稱重、流量、氣體組分等測量設(shè)備數(shù)據(jù)處理及空調(diào)設(shè)備控制、IO設(shè)備控制,采用一問多答式數(shù)據(jù)處理流程完成某電源歷史數(shù)據(jù)協(xié)議制定及數(shù)據(jù)處理。上述處理方法可根據(jù)實際組合變體使用,對同類串口通信數(shù)據(jù)處理、串口協(xié)議制定具有參考意義。

猜你喜歡
數(shù)據(jù)處理指令設(shè)備
聽我指令:大催眠術(shù)
諧響應(yīng)分析在設(shè)備減振中的應(yīng)用
認知診斷缺失數(shù)據(jù)處理方法的比較:零替換、多重插補與極大似然估計法*
ILWT-EEMD數(shù)據(jù)處理的ELM滾動軸承故障診斷
ARINC661顯控指令快速驗證方法
LED照明產(chǎn)品歐盟ErP指令要求解讀
電子測試(2018年18期)2018-11-14 02:30:34
基于MPU6050簡單控制設(shè)備
電子制作(2018年11期)2018-08-04 03:26:08
500kV輸變電設(shè)備運行維護探討
基于希爾伯特- 黃變換的去噪法在外測數(shù)據(jù)處理中的應(yīng)用
原來他們都是可穿戴設(shè)備
消費者報道(2014年7期)2014-07-31 11:23:57
主站蜘蛛池模板: 国产成人无码Av在线播放无广告| 亚洲日韩高清在线亚洲专区| 国产成人福利在线视老湿机| 香港一级毛片免费看| 亚洲天堂日韩在线| 一区二区三区四区在线| 亚洲天堂精品视频| 99热国产这里只有精品9九| 亚洲欧美一区二区三区麻豆| 制服丝袜 91视频| 亚洲人人视频| 国产高清色视频免费看的网址| 欧美国产菊爆免费观看 | 国产女人在线观看| 婷婷成人综合| 国产成人做受免费视频| 国产无吗一区二区三区在线欢| 亚洲精品无码久久久久苍井空| 成人综合网址| 日本成人不卡视频| 天堂久久久久久中文字幕| 播五月综合| 国产精品久久自在自线观看| 精品国产成人国产在线| 国产精品.com| 91久久精品国产| 国产激情无码一区二区APP| 欧美激情综合| 日本少妇又色又爽又高潮| 欧美中文字幕在线二区| 日本在线国产| 成人午夜久久| 国产高颜值露脸在线观看| 男女男免费视频网站国产| www.日韩三级| 国产福利微拍精品一区二区| 激情六月丁香婷婷四房播| 欧美精品在线视频观看| 国产黄在线免费观看| 国产精品亚洲一区二区三区在线观看| 免费国产高清精品一区在线| av大片在线无码免费| 亚洲三级成人| 亚洲一区二区三区中文字幕5566| 国产成人无码久久久久毛片| 国产小视频a在线观看| 夜夜拍夜夜爽| 成人国产精品2021| 精品视频福利| 国产永久在线观看| 人妻91无码色偷偷色噜噜噜| 超碰精品无码一区二区| 日本中文字幕久久网站| 国产成人综合亚洲欧美在| 激情六月丁香婷婷| 狠狠做深爱婷婷综合一区| 国产噜噜噜视频在线观看| 国产国模一区二区三区四区| 少妇露出福利视频| 欧美精品v欧洲精品| 色丁丁毛片在线观看| 欧美日韩国产精品va| 亚洲国产黄色| 国产中文在线亚洲精品官网| 国产情侣一区二区三区| 综合色88| 高清亚洲欧美在线看| 成年av福利永久免费观看| 人妻无码一区二区视频| 2020最新国产精品视频| 亚洲国产精品日韩欧美一区| 亚洲人成在线精品| 成人福利在线观看| 熟妇丰满人妻| 亚洲欧洲国产成人综合不卡| 精品久久人人爽人人玩人人妻| 伊人丁香五月天久久综合| 国产自在线播放| 狠狠色噜噜狠狠狠狠色综合久 | 国产乱子伦手机在线| 人人澡人人爽欧美一区| 久久99久久无码毛片一区二区|