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

一種基于串口通信的高可靠性應用協議設計

2015-01-19 07:37:29王建敏崔俊鋒牛道恒
鐵路通信信號工程技術 2015年1期
關鍵詞:定義

王建敏 崔俊鋒 牛道恒

(北京全路通信信號研究設計院有限公司,北京 100073)

一種基于串口通信的高可靠性應用協議設計

王建敏 崔俊鋒 牛道恒

(北京全路通信信號研究設計院有限公司,北京 100073)

為解決串口通信中的數據傳輸容易出錯、可靠性差且容錯能力低等問題,設計并實現一種串口通信高可靠性應用協議,并將此協議應用在列控產品中。首先介紹串口通信協議的數據包格式,通過在數據包格式定義中設置起始標志、數據長度、校驗、結束標志等字段,保證數據傳輸的正確性與可靠性。同時對數據包的組包、接收以及解析方法進行闡述,提出對數據丟失的判斷與處理方法,并對該協議的實時性、正確性和可靠性進行分析。實踐證明,該協議有效提高了串口通信過程的正確性、可靠性以及數據傳輸的容錯能力。

串口通信;高可靠性;列控產品

串行通信接口(如RS-422、RS-232等)作為計算機與單片機的主要接口,廣泛應用于各類儀器儀表、工業監控及自動控制領域中[1]。通信協議是需要通信的雙方所達成的一種約定,它規定了通信雙方必須遵守的數據格式、同步方式、傳送速度、傳送步驟、檢錯方式及控制字符定義等內容。在列控產品應用中,需要設計嚴格、合理、規范的串口通信協議,以保證數據傳輸的可靠性及安全性。提出一種基于串口的安全通信應用協議,在提高通信可靠性及安全性的同時,使通信過程具有較高的容錯能力。

基于串口的高可靠性應用協議設計關鍵點在于數據格式定義、對丟數的判斷與處理以及容錯機制設計。本文基于文獻[2],對數據格式定義與容錯機制設計進行進一步闡述,并提出了對丟數的判斷與處理方法,詳見第3章。

1 定義數據包格式

串口通信中最小的信息單元是數據幀。一個幀通常包括起始位、數據位、結束位,另外,還可以包含用于檢測傳輸錯誤的“奇偶校驗位”,每個數據幀中傳輸的數據位可以有5~9個,通常選用8位(1 Byte)為一幀[2]。在實際通信過程中,數據的發送是一幀一幀地進行,當被傳輸的數據超過一幀時,如果沒有對數據幀進行必要的組包,發送出去的數據會很難被數據接收方解釋與分析,進而造成數據傳輸混亂與錯誤。因此,在通常應用中必須將數據幀組合成數據包再發送。為了保證數據傳輸的正確性,將數據包定義為如表1所示格式。

表1 應用協議數據包格式

*起始標志表示接收到一個新的數據包,該協議規定為0x7E。

*數據長度為整個數據包的字節數。設置此字段,可方便接收方識別數據包的長度并能夠準確接收和處理數據包。

*命令用來說明數據包的用途或功能。*附加數據根據命令的不同,含義不同。*校驗是對命令字段與附加數據字段的所有字節進行校驗。

*結束標志表示數據包結束,本協議規定為0x7F。

2 組合數據包

實際應用中,如果有某數據包需要被發送,則可以按照表1格式進行組合。通常命令字段取值應避免使用0x7E與0x7F,數據長度一般約為幾十Byte,因此選用0x7D作為轉義符。當附加數據字段中遇到有效數據為0x7D、0x7E、0x7F時,要對這幾個字節做轉義處理。具體做法是:把該字節擴展為2 Byte,以轉義符125(0x7D)起始,下一個字節是該字節和0x20的異或值。

例如數據發送方有如下原始數據需要發送:

*命令字段取值為0x01。

*附加數據字段為3 Byte,依次為0x7D,0x7E,0x02。

*假設校驗后得到的校驗字段取值依次為0x7F,0x03。

則組包后的原始數據包格式如表2所示(均以16進制數表示)。

太和醫院始建于1965年,如今已然成長為四省(市)交界地綜合實力最強的一家三級甲等醫院,醫院服務能力輻射周邊40多個縣市區。

表2 原始數據包格式

因為原始數據中,附加數據字段存在需要轉義的0x7D與0x7E,校驗字段存在需要轉義的0x7F,因此需對這些字節進行轉義。0x7D轉義后變為0x7D 0x5D;0x7E轉義后變為0x7D 0x5E; 0x7F轉義后變為0x7D 0x5F。由于轉義后整個數據包增加了3 Byte的轉義符(0x7D),因此數據長度需要由9變為12。轉義后的數據包格式如表3所示(均以16進制數表示),數據發送方應以如下格式將該數據包通過串口發送給數據接收方。

表3 轉義后數據包格式

根據上述分析,數據包發送流程如圖1所示。

圖1 數據包發送流程圖

3 接收數據包

3.1 完整數據的數據包接收

如果在數據傳輸過程中,未發生丟數現象,則接收方可以完整地接收到發送方所發送的數據,該種情況的處理較為簡單,可以直接進行數據包的解析,詳見下述第4章節。

3.2 存在丟數的數據包接收

串口通信中偶爾會發生丟數現象,根據丟失的字段不同,對應處理方法也不同,分為以下幾種情況。

*起始標志丟失的判斷與處理

結束標志先于起始標志被數據接收方接收到,則說明起始標志丟失。該種情況因無法判斷數據包的起始標志,數據接收方應將在收到起始標志前收到所有數據全部丟棄。

當連續收到兩個起始標志時,說明與第一個起始標志對應的結束標志丟失。該種情況因無法判斷與第一個起始標志對應的結束標志,數據接收方應將接收到第二個起始標志前的所有數據均丟棄,并等待接收與第二個開始標志相對應的結束標志。

*其他數據丟失的判斷與處理

除起始標志與結束標志外,如果其他數據發生丟失,則會導致接收方所收到的校驗值,與發送方所發送的檢驗值不同。該種情況可根據具體應用,采取不同處理方式,如容忍一定次數后使系統重啟,或直接使系統重啟。

根據上述分析,數據包接收流程如圖2所示。

4 解析數據包

當數據接收方接收到起始標志與結束標志后,則認為起始標志與結束標志間的數據為一包有效數據,需對該包數據進行解析。如果整個數據包中不存在轉義字符,則說明該數據包未進行轉義,直接按照數據包定義格式解析即可;如果數據包中存在轉義字符,則需對轉義字符后的數據進行轉義,使其轉義為原始值。待需要轉義數據全部完成轉義,并更新數據包長度后,再按照數據包定義的格式進行解析。

下面以第2章中表3數據為例進一步說明。表3中附加數據字段中存在需要轉義的0x5D與0x5E字節,同樣以異或0x20的方式進行轉義后,其值為0x7D與0x7E;校驗字段中存在需轉義的0x5F字節,轉義后其值為0x7F。完成轉義的同時,需去掉轉義符0x7D,并更新數據長度。根據上述過程,對所有需要轉義字節進行轉義操作后,便可得到數據發送方所發送的原始數據,如第2章中表2所示。

根據上述分析,數據包解析流程如圖3所示。

5 容錯機制

串口通信過程中,偶爾會發生丟數現象,根據第3.2節分析,無論哪種情況發生,都會導致數據接收方無法正確獲取與解析到數據發送方所發送數據,進而會導致通信異常,影響協議可用性。為避免該種情況發生,提高協議可用性,協議制定需考慮重發機制,并設置定時器。對關鍵數據包,數據發送方發送數據包后,需在規定時間內收到針對該數據包的對方確認信息。如果超過規定時間還未收到對方確認信息,則數據發送方需重發該包。根據具體應用,可以設置重發次數,如重發一定次數后,認為系統故障,使系統重啟。容錯機制實現流程如圖4所示。

圖4 容錯機制流程圖

6 協議分析

6.1 實時性

串口通信的實時性與通信雙方的波特率設置有關。一般應用中波特率設為9 600 bit/s,即大約每ms傳輸一個Byte即可。按照一包數據幾十個Byte計算,則傳輸一包數據約需幾十ms,具有良好的實時性,可以滿足通常應用需求。

6.2 正確性

該協議的數據包格式定義了起始標志、結束標志、數據長度字段、命令字段、校驗字段以及轉義符,同時還設計了容錯機制。通過該協議數據包格式定義與第3章節的分析可知,該協議可保證通信數據的正確性。

6.3 可靠性

通過該協議,通信雙方可以及時對數據丟失、數據錯誤等情況進行處理。對起始標志與結束標志丟失或錯誤的情況,可以通過容錯機制進行處理;對于其他字節丟失或錯誤的情況,可以通過校驗計算檢測到并進行相應處理。通過該協議數據包格式定義與第3章節的分析可知,該協議具有高可靠性,可以滿足通常應用需求。

7 結束語

在列控產品中,串口是各設備間較為常見的連接方式之一。本文介紹了一種基于串口的高可靠性應用協議設計方法。該設計方法已經應用到某列控產品中,經過實踐和分析證明,該協議是一種有效的、可靠的數據傳輸方法,可以滿足列控產品的高可靠性要求。同時,對其他領域需要串口通信的設備/產品的應用協議制定具有重要的借鑒意義。

[1]李瑩,賈彬.串口通信協議的設計與實現[J].電子設計工程,2012,20(7):100-103.

[2]運基信號[2006]312號 調度集中車站自律機與計算機聯鎖接口通信協議[S].

In order to solve the problems of the data transmission easily going wrong, poor reliability and fault-tolerance in serial communication, this paper presents the design of a high-reliable serial communication application protocol used for train control products. The paper presents the design of the serial communication protocol data packet format for ensuring the correctness and reliability of the data transmission through setting the start fl ag, data length, calibration and end fag in the format defi nition. At the same time, it sets forth the data packet package, receiving and analyzing methods, puts forward the judgment and processing methods of data loss, and analyzes the real-time feature, accuracy and reliability of the protocol. The practice shows that this protocol can effectively improve the correctness, reliability and the fault tolerance ability of the data transmission in serial communication process.

serial communication; high reliability; train control product

10.3969/j.issn.1673-4440.2015.01.001

2014-10-23)

鐵路總公司重點項目(2013X001-C);鐵路總公司重大課題(2003B001-A-1)

猜你喜歡
定義
以愛之名,定義成長
活用定義巧解統計概率解答題
例談橢圓的定義及其應用
題在書外 根在書中——圓錐曲線第三定義在教材和高考中的滲透
永遠不要用“起點”定義自己
海峽姐妹(2020年9期)2021-01-04 01:35:44
嚴昊:不定義終點 一直在路上
華人時刊(2020年13期)2020-09-25 08:21:32
定義“風格”
成功的定義
山東青年(2016年1期)2016-02-28 14:25:25
有壹手——重新定義快修連鎖
修辭學的重大定義
當代修辭學(2014年3期)2014-01-21 02:30:44
主站蜘蛛池模板: 亚洲黄色高清| 91麻豆国产视频| 国产成人亚洲无码淙合青草| 2021最新国产精品网站| 国产女人18毛片水真多1| 国产精品免费福利久久播放| 久久美女精品| 成人自拍视频在线观看| 成人日韩视频| 九九热精品视频在线| 国产精品黄色片| 日日碰狠狠添天天爽| 国产不卡一级毛片视频| 亚洲色图狠狠干| 欧美精品成人一区二区视频一| 久久黄色毛片| 成人在线综合| 亚洲国产系列| 国产精品视频3p| 99视频国产精品| 国产成人精品亚洲77美色| 国产色爱av资源综合区| 亚洲一区二区三区在线视频| 97久久超碰极品视觉盛宴| 天天摸天天操免费播放小视频| a色毛片免费视频| 亚洲Va中文字幕久久一区| 麻豆精品国产自产在线| 国产激情第一页| 极品国产在线| 久久精品人妻中文视频| 天堂中文在线资源| 香蕉久久国产超碰青草| 欧美精品亚洲二区| 久久无码av一区二区三区| 国产成人综合日韩精品无码首页| 99精品国产高清一区二区| 国产一区免费在线观看| 欧美α片免费观看| 亚洲A∨无码精品午夜在线观看| 国产精品美女自慰喷水| 免费高清毛片| 国产真实二区一区在线亚洲| 久久99热这里只有精品免费看| 中文字幕在线观看日本| 亚洲第一福利视频导航| 亚洲成肉网| 无码高潮喷水在线观看| 久久久久青草线综合超碰| 刘亦菲一区二区在线观看| 国产免费网址| 国产综合亚洲欧洲区精品无码| 国产一级视频在线观看网站| 福利姬国产精品一区在线| 国产成人免费视频精品一区二区| 亚洲精品自拍区在线观看| 日韩国产亚洲一区二区在线观看| 亚洲欧美日韩动漫| 午夜不卡福利| 亚洲日韩图片专区第1页| 国产91av在线| 51国产偷自视频区视频手机观看| 国产黄网永久免费| 青青青国产精品国产精品美女| 国产理论最新国产精品视频| 国产无套粉嫩白浆| 狠狠色婷婷丁香综合久久韩国| 免费jjzz在在线播放国产| 伊人激情综合| 久久久黄色片| 沈阳少妇高潮在线| av手机版在线播放| 在线观看无码a∨| 欧洲日本亚洲中文字幕| 欧美国产精品不卡在线观看| 精品国产免费观看一区| 亚洲欧美在线看片AI| 亚洲人成网站色7799在线播放| 97se亚洲综合在线天天| 欧美激情第一欧美在线| 试看120秒男女啪啪免费| 亚洲欧美日韩另类在线一|