色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

實現高效通信數據處理的串行通信協議的設計

電子設計 ? 來源:郭婷 ? 作者:電子設計 ? 2019-01-11 09:06 ? 次閱讀

一、串行通信介紹

1、串行通信概述

串行通信是將數據分成若干二進制位(bit),然后通過一條線路或一個通信信道,按照規定的規程逐位依次進行傳輸,實現計算機與計算機或計算機與外部設備之間的通信(數據交換)。

在通信領域內,有兩種數據通信方式:并行通信和串行通信。隨著計算機網絡化和微機分級分布式應用系統的發展,通信的功能越來越重要。通信是指計算機與外界的信息傳輸,既包括計算機與計算機之間的傳輸,也包括計算機與外部設備,如終端、打印機和磁盤等設備之間的傳輸。

串行通信具有占用硬件資源少、可大幅度降低通信線路成本、簡化通信設備、應用靈活、易維護等諸多優點,在工業控制、電力通信、智能儀表等領域得到了廣泛應用。

2、串行通信特點

數據在單條一位寬的傳輸線上,一比特接一比特地按順序傳送的方式稱為串行通信。

一位接一位地順序傳送。這樣一個字節的數據要分8次由低位到高位按順序一位位地傳送。由此可見,串行通信的特點如下:

(1)節省傳輸線,這是顯而易見的。尤其是在遠程通信時,此特點尤為重要。這也是串行通信的主要優點。

(2)數據傳送效率低。與并行通信比,這也這是顯而易見的。這也是串行通信的主要缺點。

例如:傳送一個字節,并行通信只需要1T的時間,而串行通信至少需要8T的時間。 由此可見,串行通信適合于遠距離傳送,可以從幾米到數千公里。對于長距離、低速率的通信,串行通信往往是唯一的選擇。并行通信適合于短距離、高速率的數據傳送,通常傳輸距離小于30米。特別值得一提的是,現成的公共電話網是通用的長距離通信介質,它雖然是為傳輸聲音信號設計的,但利用調制解調技術,可使現成的公共電話網系統為串行數據通信提供方便、實用的通信線路。

3、串行通信方式

EIA-RS232、EIA-RS485電流環、CAN等串行通信方式是通信領域中應用廣泛的串行接口。EIA-RS232是全雙工的通信模式,可保證短距離點對點的高速傳輸,EIA-RS485實現了較長距離下的多點互聯通信。CAN屬于現場總線的范疇,采用了多主機制,改善了在集散控制系統下的主從通信模式。

隨著應用需求的復雜化,對串行通信的性能、通信效率的提升需求越來越明顯。如何制定一套切實可行、簡單易用,又能大幅度提高串行通信效率的通信協議;如何在PC端、嵌入式系統端構建一個高效的串行數據處理的應用程序,是串行通信協議中等待解決的問題。本文將以加油站信息管理系統為例,介紹串行通信協議的制定以及高效通信數據處理的實現。

二、串行通信協議的設計

1、系統總體結構

實現高效通信數據處理的串行通信協議的設計

加油站信息管理系統的結構如圖1所示,每臺加油機為一個應用節點(即圖1中的控制點),通過半雙工RS-485總線連接至通信控制器,在RS-485網絡中,通信控制器為主機,各加油機為從機,構成一個主從通信的網絡架構。在多種串行接口標準中,RS-485接口結構簡單、通信速率高、傳輸距離遠、使用傳輸線較少,長距離通信較經濟,在集散式控制裝置中得到了廣泛應用。RS-485采用差分電平傳輸,只需2根信號線,即可以方便地增加控制節點數目。

通信控制器通過全雙工RS-232總線與管理PC進行數據交互,管理PC和通信控制器層面的數據交互,保證了實時性和高效性,采用互為主機的通信方式,以此構成集散控制系統。

2、通信協議格式的定義

(1)協議幀格式

1)主機(Master)下發數據幀格式

起始標志數據(5AH+A5H)+長度(從命令字開始到校驗和為止的字節數)+命令字HIGH+命令字LOW+機號+參數+一個字節校驗和(從命令字開始到校驗碼前一個字節的邏輯“異或”和)。

2)從機(Slave)上傳數據幀格式

起始標志數據(9BH+B9H)+長度(從命令字開始到校驗和為止的字節數)+命令字HIGH+命令字LOW+機號+參數+一個字節校驗和(從命令字開始到校驗碼前一個字節的邏輯“異或”和)。

(2)協議幀解釋

起始標志數據:采用1個字節或多字節作為幀起始標志,該部分的字節定義應盡量與幀數據的其他部分完全不一樣。接收方在接收數據時總是先尋找幀頭。幀頭的排他性將有利于提高各通信節點的接收效率。

長度:應盡量采用短幀,以避免各種干擾因素對通信效率的影響。可根據實際應用情況,在“長度”后增加“長度反碼”或“長度補碼”等校驗數據對長度進行更為嚴格的校驗。

命令字:根據實際通信應用需求,可應用1~2字節的通信命令字。

機號:該幀所需接收方的地址識別號,可根據實際應用需求對其進行修改,如增加源地址、目的地址等。

參數:該幀的應用數據,針對不同的應用,考慮到數據的安全性,可對該部分的數據進行加密處理。

校驗和:該幀的數據校驗,可根據應用需求選擇不同的校驗方式。

三、高效串行通信方式的實現

1、PC端軟件發送數據的處理機制

PC端的軟件首先判斷最高優先級的命令字是否需要發送,如果需要,則進入該命令字的發送流程;如果沒有,接著判斷次高級優先級的命令字是否需要發送,如果需要,則進入發送流程。

根據命令字的優先級由高到低的順序依次判斷要發送的命令字,當沒有通信數據命令字發送時,PC端軟件將發送輪詢命令字。

此外,在發送完一幀數據后,PC端軟件會開啟接收超時定時器T,如果PC端軟件在超時時間內收到應答命令數據幀則進入相應數據處理流程,同時關閉接收超時定時器T;如果系統定時時間內未收到應答命令數據幀,則重新發送該命令字的幀數據,并記錄發送該命令字的次數,當發送命令字的幀超過10次未收到相應應答命令,即視為該命令字和控制點的通信失敗,將通信流程重新調整到輪詢命令字狀態下。

2、PC端軟件接收數據的處理機制

在PC軟件端的接收程序部分,按字節來處理接收到的每幀數據,而不是按幀來處理。為此,應用程序將串口的接收中斷的響應字節閾值設為1,即當接收緩沖區有多于1個數據便進入接收數據處理流程。

當開始接收一幀數據時,首先找到幀頭,其次應根據接收數據緩沖區中的有效數據長度和幀長度的關系來分類處理。因為Windows對串口的封裝(開發平臺為VC++6.0),使得應用程序無法來設定軟件,根據接收數據緩沖區的數據閾值來響應串行中斷。所以在通信過程中當PC產生串行中斷時,應根據串行中斷當前數據接收緩沖區的有效數據長度來做分類處理。

首先,把接收緩沖區ReceBuffer[M]的數據取出來,放到待處理緩沖區DealBuffer[M]中(為了防止該幀數據還沒有處理完畢,未處理的數據會被新來的數據覆蓋掉,造成系統的數據丟失)。其次,要確定接收數據的幀頭,方法就是逐字節查找,一般幀頭在接收緩沖區中出現的位置有3種情況,如圖2所示,每一個方格代表一個字節。

如果幀頭就是接收緩沖區的前兩個字節(如圖2(a)所示),則按照通信協議依次處理剩下的接收緩沖區的有效數據。用全局變量表示接收緩沖區處理步驟S,正確接收到2個幀頭后P賦值為2.

如果幀頭在接收數據緩沖區的不連續字節內(如圖2(b)所示),應把從第2個幀頭開始的有效數據移到第1個幀頭后,如圖3所示,使得待處理緩沖區的數據形成連續的一幀數據來繼續下一步的處理。

如果幀頭分散在兩個數據幀中(如圖2(c)所示),即PC響應串行中斷第1次接收到第1個幀頭,第2次響應或者第n次響應串行中斷接收到第2個幀頭。當接收到第1個幀頭后,S賦值為1.當下次響應串行中斷時,判斷S的值,如果是1,表示第1個幀頭已經找到,開始在接收到的幀數據中尋找第2個幀頭;如果找到,S賦值為2,并把從第2個幀頭開始的有效數據移到第1個幀頭后,使待處理緩沖區的數據形成連續的一幀數據來處理。

判斷命令字是否為協議中規定的合法命令字。如果是,將根據命令字所對應的長度來判斷該幀數據的合法性,因為在制定通信協議時,規定了特定命令字所對應的數據長度,這兩點約束條件可以保證接收數據的合法性,從而提高了系統的穩定性。如果命令字和其對應的長度值合法則將S賦值為3,進入下一步的數據處理步驟。

最后,關閉發送定時器,防止處理的過程中有新的接收數據影響處理有效數據的過程。處理完畢,打開發送定時器,根據處理過程中標志位的改變情況繼續與控制點進行相應的數據通信。在處理接收數據的步驟中,如果任何一個步驟出現非法數據,則清空ReceBuffer[M]和DealBuffer[M],認為該幀數據傳輸出錯,丟棄該幀數據,并初始化接收變量,重新設定接收超時定時器,接收下一次通信數據。

四、小結

本文通過完整的串行通信協議的設計,在PC軟件發送端始終處于通信狀態,能以很快的速度響應系統協議規定的命令字及其數據的發送。同時,在PC軟件接收端,采用逐字節處理的方式,通過設定全局變量來確定處理接收數據幀的步驟,細化了處理接收數據的過程,保證了數據高效可靠的傳輸。本系統已經應用在上海寶鋼集團加油站信息管理系統中,實驗結果證明,此協議的通信數據準確、通信效率高效可靠、自適應能力強,具有在相關領域推廣的價值和意義。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 計算機
    +關注

    關注

    19

    文章

    7488

    瀏覽量

    87854
  • 串行通信
    +關注

    關注

    4

    文章

    571

    瀏覽量

    35396
  • 數據處理
    +關注

    關注

    0

    文章

    595

    瀏覽量

    28554
收藏 人收藏

    評論

    相關推薦

    Modbus?串行通信協議概述

    Modbus是一種串行通信協議,是Modicon公司(現在的施耐德電氣 Schneider Electric)于1979年為使用可編程邏輯控制器(PLC)通信而發表。Modbus已經成為工業領域
    發表于 09-02 10:58 ?1371次閱讀

    Minifly的通信協議是什么?

    通信協議是什么?是不是我協議沒理解清楚?還是原子的飛控51822端做了數據處理(添加或修改了遙控器發來的包)后才通過串口發送給411的?
    發表于 08-05 02:20

    CAN串行通信協議

    一.CAN簡介CAN是ControllerArea Network的縮寫(以下稱為CAN),是ISO國際標準化的串行通信協議。在當前的汽車產業中,出于對安全性、舒適性、方便性、低公害、低成本的要求
    發表于 08-19 08:44

    通信協議是指什么?串行通信和并行通信的優缺點分別有哪些

    通信協議是指什么?串行通信和并行通信的優缺點分別有哪些?串行通信
    發表于 12-10 06:36

    如何實現基礎通信協議的設計?

    常見的通信協議格式是什么?如何實現基礎通信協議的設計?
    發表于 02-14 07:35

    串行通信數據的傳送方向是怎樣的?具體的通信協議有哪幾種呢

    所謂異步通信是指什么?所謂同步通信是指什么?串行通信數據的傳送方向是怎樣的?具體的通信協議有哪幾
    發表于 02-16 07:57

    高效串行通信協議的制定及實現

    探討了一種基于串行通信的簡單、高效通信協議制定方法。實驗結果證明,該協議有效提高了串行
    發表于 12-03 17:22 ?18次下載
    <b class='flag-5'>高效</b>的<b class='flag-5'>串行</b><b class='flag-5'>通信協議</b>的制定及<b class='flag-5'>實現</b>

    一種高效串行通信協議的制定及實現

    一種高效串行通信協議的制定及實現
    發表于 11-09 18:08 ?56次下載

    基于嵌入式環境的串行通信協議設計

    根線,即可實現簡單的全雙工通信通信協議是兩端設備數據交換的語言,是通信可靠性的保證,在保證功能的前提下,
    發表于 10-14 16:29 ?1414次閱讀
    基于嵌入式環境的<b class='flag-5'>串行</b>幀<b class='flag-5'>通信協議</b>設計

    一個簡單的基礎通信協議的設計與實現

    一個簡單的基礎通信協議的設計與實現一種常見的通信協議格式搭建串口收發環境配置STM32CubeMX添加USART部分代碼通信協議實現不同設
    發表于 12-14 18:38 ?10次下載
    一個簡單的基礎<b class='flag-5'>通信協議</b>的設計與<b class='flag-5'>實現</b>

    通信協議的概念

    通信協議是指在通信過程中,為了使得不同設備之間進行有效的數據交換,所約定的一整套規則和標準。通信協議中定義了通信雙方的接口、
    發表于 05-06 14:32 ?2090次閱讀

    高速串行通信協議詳解

    隨著信息技術的飛速發展,數據通信已成為現代社會不可或缺的一部分。在數據通信中,串行通信作為一種基本的通信方式,以其獨特的優勢在各個領域得到了
    的頭像 發表于 05-16 16:45 ?808次閱讀

    簡單認識UART串行通信協議

    數據通信,特別是在嵌入式系統、計算機外設以及微控制器等場景中。本文將對UART串行通信協議進行詳細的介紹,包括其基本原理、工作方式、參數設置、錯誤檢測與糾正以及應用實例等方面。
    的頭像 發表于 05-27 16:09 ?2088次閱讀

    高速串行通信協議都有哪些

    高速串行通信協議是現代電子設備中用于數據傳輸的關鍵技術。這些協議在各種應用中發揮著重要作用,如計算機、移動設備、網絡設備等。以下是一些常見的高速串行
    的頭像 發表于 05-31 16:11 ?1079次閱讀

    AUTOSAR通信協議解析 如何實現AUTOSAR通信

    通信協議棧是一個復雜的系統,它涵蓋了多種通信方式和模塊,以實現車內ECU之間的高效、可靠的數據交換。以下是對AUTOSAR
    的頭像 發表于 12-17 14:54 ?344次閱讀
    主站蜘蛛池模板: 贵妃高h荡肉呻吟np杨玉环| 色色色五的天| 97se se| 久久一er精这里有精品| 亚洲性无码AV久久成人| 幻女FREE性俄罗斯学生| 一个人免费视频在线观看高清频道 | 做暖暖视频在线看片免费| 里番acg纲手的熟蜜姬训练场 | 毛片无码免费无码播放| 2020久久精品永久免费| 男人扒开添女人下部口述| 99热国产这里只有精品6| 强奸日本美女小游戏| 东日韩二三区| 无码人妻精品一区二区蜜桃色欲| 国产成人在线视频观看| 亚洲 自拍 偷拍 另类综合图区| 果冻传媒9CM在线观看| 亚洲无碼网站观看| 久久综合给会久久狠狠狠| 97在线看视频福利免费| 青娱乐极品视觉盛宴av| 国产成人久视频免费| 亚洲国产在线播放在线| 久久66热在线视频精品| 2012中文字幕手机在线| 欧美在线亚洲综合国产人| 国产成人拍精品视频网| 亚洲精品视频久久| 旧里番6080在线观看| np高h肉文| 午夜理论片日本中文在线| 茎身铃口调教| 99RE久久精品国产| 日韩在线av免费视久久| 国产在线精彩视频| 13一18TV处流血TV| 日韩欧美一区二区三区在线| 国产午夜精品理论片影院| 在线免费观看亚洲视频|