《電子技術應用》
您所在的位置:首頁 > 通信與網絡 > 設計應用 > 封裝串口數據通信協議的設計
封裝串口數據通信協議的設計
2014年微型機與應用第18期
曾 維,羅 粟,黃 宏,徐 驥,賴鎮森
成都理工大學 信息科學與技術學院,四川 成都 610059
摘要: 為了提高串口數據通信的準確率、方便上層應用編程,設計了一個協議對串口數據通信協議進行封裝。協議采用自定義報文格式封裝串口數據幀的方式工作,利用報文應答機制保證傳輸正確性,該協議在線路故障出現時能有效檢測并采取報文重發等措施保證數據準確傳輸。
Abstract:
Key words :

  摘  要: 為了提高串口數據通信的準確率、方便上層應用編程,設計了一個協議對串口數據通信協議進行封裝。協議采用自定義報文格式封裝串口數據幀的方式工作,利用報文應答機制保證傳輸正確性,該協議在線路故障出現時能有效檢測并采取報文重發等措施保證數據準確傳輸。

  關鍵詞: 串口;通信協議;數據報;數據傳輸

0 引言

  串口通信協議是計算機上非常通用的一種設備通信協議,串口按位(bit)發送和接收字節,可以在使用一根線發送數據的同時用另一根線接收數據[1]。利用串口進行數據傳輸時,串口能做到奇偶校驗以確定數據是否傳輸正確,然而在實際的上位機和下位機的通信中,往往傳輸以字節為單位的數據,這樣僅奇偶校驗數據位并不能達到正確傳輸數據的目的[2],因此需要建立在串口之上的數據交換規則,即封裝串口通信的協議[3]。本文設計的就是一種用數據報封裝了串口數據通信的協議,它能有效檢測線路狀態并處理丟包等問題。它不僅能實現PC之間的數據傳輸,還可用于嵌入式設備的數據通信。

1 協議分層結構

  為了使協議程序的設計更為合理,并且利于在各硬件系統使用,將此協議進行分層設計。由于串口通信的性質,無需過多采用面向連接來建立虛電路,因此本協議采用無連接服務[4]。協議體系結構如圖1所示。

001.jpg

2 協議的設計

  本文提出的協議的設計思想是數據報的傳輸方式,即將上層應用提供的流式數據分割并格式化為一個個的數據報,再發送給串口進行串行傳輸。接收方從串口接收到的數據報經過重新拼接形成數據流再送給上層應用。為保證串行傳輸,每個數據報的傳輸中采取發送—應答—重傳—失敗的方式工作。協議工作前需要設置超時等待時間、數據分割長度、串口參數等參數[5-6]。

  2.1 數據報格式

002.jpg

  數據報分為報文頭部和數據部兩部分,其格式如圖2所示。報文頭部由6字節組成,第1、2字節AB表示報文長度,即報文頭部長度加上數據部長度;第3、4字節CD表示整個報文的校驗和;第5、6字節XX表示應答ACK;第7、8字節GH表示報文序號。

  數據報長度AB范圍為0~65 535,所以一個報文最大為8 KB。數據部長度等于報文長度(AB)減去報文頭長度(8 B)。

  2.2 數據處理與報文處理

  數據處理包括分割上層應用提供的數據,以及從報文還原拼接數據;報文處理包括格式化報文以提供給串口發送以及從串口讀取報文、校驗報文、提取數據[7]。

  2.2.1 數據分割

  協議從應用程序接口獲取應用程序提供的數據并以流式數據寫入發送方數據緩沖區;然后以事先設定的數據分割長度取數據,長度不足的部分則全部取出,取數據指針移動相應距離。

  2.2.2 報文組裝

  報文的組裝過程如下[8]:

 ?。?)計算取出數據的長度,填入報文第1、2字節;

 ?。?)報文第3~6字節全部置0;

 ?。?)計算報文序號GH;

  (4)計算校驗和,從第1字節開始,每兩個字節為一個單元進行分割,末尾不足兩字節則在其后補0,再將這些單元進行二進制反碼求和,結果存在檢驗和字段中第3、4字節;

 ?。?)將取出的數據接在報文頭部后面,將整個報文寫入報文緩沖區。

  2.2.3 報文拆分

  報文拆分的具體步驟如下[9]:

 ?。?)從報文緩沖區按報文長度獲取報文數據;

 ?。?)計算校驗和,方法同報文組裝里的計算方法:如果校驗和不為0xFFFF,則傳輸過程中發生差錯,丟棄此報文;如果校驗和為0xFFFF,取出報文長度及報文序號,計算數據部長度,取出數據[9]。

  2.2.4 數據拼接

  將從報文取出的數據填入接收方數據緩沖區,寫數據指針移動相應距離;接收完最后一個數據后,協議將數據緩沖區中的數據提供給上層應用程序,寫數據指針恢復初始值。

  2.3 數據報傳輸過程

  數據報傳輸情況分為考慮定時器超時和不考慮定時器超時兩種,定時器超時處理應屬于中斷調用。

  2.3.1 傳輸過程

  數據報傳輸過程如下[10]:

  (1)在進行數據報傳輸前,發送方將數據分割并裝進報文,ACK置為0x0000,計算報文序號,再將報文送入報文緩沖區。

 ?。?)開始發送時,串口按已經設定的工作方式和波特率工作,從報文緩沖區獲取報文數據并發送。

 ?。?)發送方發送完畢一個數據報后,停止發送,啟動定時器計時,準備接收響應。

 ?。?)接收方串口接收數據并填入報文緩沖區。

 ?。?)接收方從報文緩沖區獲取報文數據,進行校驗:

  ①若接收方校驗結果為正確,則取出數據;若接收的ACK=0x0011并且收到的序號等于前面一個報文的序號,則將數據覆蓋到前一塊數據,否則將數據填入數據緩沖區;記錄報文序號,發送數據部為空、ACK=0x1111的報文。

 ?、谌艚邮辗叫r灲Y果為錯誤,則丟棄數據報,發送數據部為空、ACK=0x1110的報文,通知發送方重發。

 ?。?)接收方每次處理完數據報均初始化并啟動定時器計時,剛收到數據報時關閉定時器。

 ?。?)發送方收到響應報文,校驗通過則關閉定時器,獲取ACK,若ACK=0x1111,則發送下一個數據報;若ACK=0x1110,則重發當前數據報(ACK置0x0011)。如果校驗不通過就丟棄此數據報,仍保持定時器計時。

 ?。?)雙方重復以上步驟直到最后一個報文發送完畢。

  (9)發送方發送最后一個報文完成后,發送數據部為空、ACK=0x0001的報文提示數據傳輸完畢,若此報文發送后收到重傳響應,則重發此數據報(ACK仍置0x0001)[10]。

  2.3.2 定時器超時處理

  若發送方定時器達到發送方超時等待時間仍未收到響應報文,則重傳當前數據報(ACK置0x0011),連續超時三次還沒收到應答則停止發送數據報,清空報文緩沖區和數據緩沖區,并向應用程序返回通信失敗[11]。若接收方定時器達到接收方超時等待時間仍未收到報文,清空報文緩沖區和數據緩沖區,關閉定時器,并向上層應用程序返回通信失敗。

3 結論

  本文所設計的協議封裝串口通信是為了更方便和安全地傳送數據,從上文可以看到,在發送大數據報時,串口的速度其實不高,而本協議若需控制在毫秒級的處理,所發數據不能超過1 192 B。報文長度字節AB范圍為0~65 535,故每個報文大小為8 B~8 KB,數據部大小為0~8 184 B,所以數據分割范圍為0~8 184 B[12]。故本協議更適用于小數據量傳送,比如在信號采集后的數據傳送等,傳輸一個雙精度浮點數需要14 ms左右。

  參考文獻

  [1] 陳荔,張菁.基于串口自定義協議傳輸文件的設計[J].計算機技術與發展,2012,22(2):45-48.

  [2] 董翰川,郭勇,李文杰.LabVIEW串口通信在數據采集中的應用[J].微型機與應用,2011,30(23):63-64.

  [3] 王承君.自定義串口數據通信協議的分析與設計[J].計算機工程,2004(24):192-194.

  [4] 王嬌,姚竹亭.基于VC++6.0的串口通信的設計[J].電子測試,2009(11):47-50.

  [5] 李長林,高潔.Visual C++串口通信技術與典型實例[M].北京:清華大學出版社,2006.

  [6] 李志強,汪晴,徐曉鐵,等.一種基于跨層設計的簡單可靠UDP協議[J].解放軍理工大學學報(自然科學版),2009,10(3):209-214.

  [7] 蘆東昕,張華強,王陳.基于UDP的可靠數據傳遞技術研究[J].計算機工程,2003,29(22):62-63.

  [8] 趙玉劍,范修榮.單片機與PC串行通信的實現[J].機電產品開發與創新,2008,2(5):96-97.

  [9] 范月霞,吳正江.一種新型串口通信類的實現[J].艦船電子工程,2008,28(4):157-159.

  [10] 靳海力,李俊.具有補發機制的增強型可靠UDP的實現[J].小型微型計算機系統,2010(5):904-907.

  [11] 林培杰,黃比得,黃春暉.基于TMS320C6713的McBSP和EDMA實現串口通信[J].電子技術應用,2009,35(2):33-35.

  [12] 朱耀麟,馬慧銘.USB3.0超高速多串口傳輸系統的設計[J].電子技術應用,2013,39(9):138-140.


此內容為AET網站原創,未經授權禁止轉載。
热re99久久精品国产66热_欧美小视频在线观看_日韩成人激情影院_庆余年2免费日韩剧观看大牛_91久久久久久国产精品_国产原创欧美精品_美女999久久久精品视频_欧美大成色www永久网站婷_国产色婷婷国产综合在线理论片a_国产精品电影在线观看_日韩精品视频在线观看网址_97在线观看免费_性欧美亚洲xxxx乳在线观看_久久精品美女视频网站_777国产偷窥盗摄精品视频_在线日韩第一页
  • <strike id="ygamy"></strike>
  • 
    
      • <del id="ygamy"></del>
        <tfoot id="ygamy"></tfoot>
          <strike id="ygamy"></strike>
          国产一区二区三区免费在线观看| 亚洲国产色一区| 久久综合网络一区二区| 亚洲美女精品成人在线视频| 在线视频日韩| 亚洲激情综合| 国产精品丝袜久久久久久app| 国产欧美日韩综合一区在线观看| 91久久一区二区| avtt综合网| 欧美 日韩 国产在线| 亚洲视频www| 久久精品中文字幕免费mv| av不卡在线| ●精品国产综合乱码久久久久| 午夜综合激情| 亚洲香蕉视频| 国产欧美精品国产国产专区| 国产目拍亚洲精品99久久精品| 国产精品一区二区三区免费观看| 一本久久综合亚洲鲁鲁五月天| 欧美不卡三区| 亚洲日韩中文字幕在线播放| 99国内精品久久久久久久软件| 亚洲国产另类久久精品| 欧美日韩精品免费观看视频| 精品不卡视频| 欧美福利网址| 久久精品视频免费| 亚洲经典视频在线观看| 午夜在线a亚洲v天堂网2018| 欧美精品1区| 欧美三区视频| 欧美日韩二区三区| 欧美一区二区三区四区在线观看地址| 国产欧美日韩亚洲精品| 亚洲人线精品午夜| 亚洲免费观看高清在线观看| 精品不卡一区| 亚洲在线国产日韩欧美| 亚洲午夜一区二区三区| 欧美激情一区二区在线| 国产精品视频不卡| 亚洲欧洲一区二区在线观看| 中文在线资源观看视频网站免费不卡| 亚洲天堂偷拍| 欧美成人精品1314www| 日韩视频在线观看| 国产欧亚日韩视频| 亚洲黄色在线观看| 一本到12不卡视频在线dvd| 亚洲一区二区三区精品动漫| 欧美1级日本1级| 国产一区二区高清| 91久久精品一区二区别| 亚洲在线日韩| 亚洲自拍三区| 在线观看亚洲| 欧美日韩国产va另类| 久久精品国产亚洲一区二区三区| 久久不射网站| 免费成人小视频| 亚洲一区在线观看视频| 夜久久久久久| 欧美图区在线视频| 久久亚洲精品一区二区| 国产精品日韩欧美一区| 欧美日韩国产精品| 亚洲欧洲精品一区二区三区波多野1战4| 久久成人精品视频| 免费一级欧美在线大片| 亚洲第一精品福利| 久久久久久婷| 亚洲欧美日韩在线高清直播| 一区二区在线视频| 欧美精品成人一区二区在线观看| 亚洲国产欧美在线人成| 久久婷婷人人澡人人喊人人爽| 一区二区三区免费在线观看| 欧美高清在线视频观看不卡| 性欧美8khd高清极品| 国产精品美女久久久久久2018| 国产日韩欧美综合| 欧美国产大片| 欧美精品一区二区三区在线看午夜| 欧美日韩人人澡狠狠躁视频| 亚洲欧美日本国产专区一区| 亚洲高清资源| 韩国一区二区三区美女美女秀| 国产午夜精品一区理论片飘花| 久久亚洲美女| 久久综合久久88| 91久久精品网| 国产精品永久免费视频| 国内精品国语自产拍在线观看| 欧美成人r级一区二区三区| 99re亚洲国产精品| 国产伦精品免费视频| 欧美日韩视频在线一区二区观看视频| 欧美成人高清视频| 国产精品久久久久久久浪潮网站| 欧美无砖砖区免费| 亚洲国产成人久久综合| 亚洲午夜激情免费视频| 欧美午夜一区二区三区免费大片| 日韩一级黄色大片| 日韩小视频在线观看专区| 欧美日韩一区精品| 亚洲在线成人精品| a91a精品视频在线观看| 欧美激情在线播放| 国产精品v日韩精品v欧美精品网站| 国语对白精品一区二区| 欧美激情aaaa| 国产精品久久国产精麻豆99网站| 久久男人资源视频| 欧美极品一区二区三区| 国产九区一区在线| 亚洲国产精选| 国产精品久久久久久久久久久久| 亚洲精品免费电影| 久久偷看各类wc女厕嘘嘘偷窃| 亚洲午夜av电影| 午夜精品久久久久| 欧美日韩精品一区二区在线播放| 欧美日韩综合精品| 亚洲激情在线观看视频免费| 国产一区二区av| 国产精品jizz在线观看美国| 国产欧亚日韩视频| 99视频精品在线| 亚洲在线中文字幕| 欧美日韩一区二区免费视频| 久久精品人人爽| 99精品欧美一区二区三区综合在线| 亚洲国产精品国自产拍av秋霞| 久久国产日韩| 欧美日韩成人激情| 在线国产亚洲欧美| 欧美日韩在线播放三区四区| 欧美成人官网二区| 香蕉国产精品偷在线观看不卡| 国产一级精品aaaaa看| 午夜亚洲一区| 亚洲视频每日更新| 女生裸体视频一区二区三区| 国产精品进线69影院| 国产欧美 在线欧美| 亚洲国语精品自产拍在线观看| 中文在线资源观看视频网站免费不卡| 国产精品午夜春色av| 亚洲乱亚洲高清| 亚洲欧洲日夜超级视频| 欧美成人精品影院| 欧美精品日韩精品| av成人激情| 99精品视频免费全部在线| 亚洲国产成人久久| 欧美在线影院在线视频| 亚洲欧美一区二区视频| 欧美视频免费看| 最新中文字幕一区二区三区| 国产精品中文字幕欧美| 国产日韩精品视频一区| 国产亚洲福利社区一区| 尤妮丝一区二区裸体视频| 亚洲视频中文字幕| 国产精品免费看久久久香蕉| 久久久久久久波多野高潮日日| 一本色道久久88亚洲综合88| 亚洲欧美精品在线| 欧美大香线蕉线伊人久久国产精品| 国内精品写真在线观看| 亚洲人成精品久久久久| 欧美精品九九99久久| 伊人成人在线| 亚洲国产高清高潮精品美女| 狠狠色丁香久久婷婷综合丁香| 国产一区二区三区久久| 久久青草欧美一区二区三区| 国产精品视频yy9099| 欧美激情一级片一区二区| 欧美日韩免费高清| 韩国一区电影| 久久大香伊蕉在人线观看热2| 亚洲性线免费观看视频成熟| 国产午夜精品视频| 久久国产日韩欧美| 欧美黄色精品| 永久免费精品影视网站| 欧美成人一品| 欧美一区二区三区男人的天堂| 亚洲精品影院| 欧美成人免费全部| 亚洲专区国产精品| 亚洲一区亚洲二区| 99香蕉国产精品偷在线观看| 最新热久久免费视频| 好看的亚洲午夜视频在线| 欧美大尺度在线| 欧美精品入口| 久久人人爽人人爽| 国际精品欧美精品| 国产精品乱码一区二三区小蝌蚪| 老司机凹凸av亚洲导航| 亚洲精品乱码久久久久久黑人| 国产精品视频精品| 亚洲午夜在线观看| 国产精品第十页| 国产日韩一区二区三区| 嫩模写真一区二区三区三州| 中文日韩在线| 黄色精品一二区| 性欧美1819性猛交| 欧美视频不卡| 欧美/亚洲一区| 这里只有精品在线播放| 国产欧美一区二区三区沐欲| 国内精品视频一区| 国产精品日韩在线播放| 国产女人aaa级久久久级| 亚洲精品美女久久7777777| 欧美三级在线视频| 久久婷婷成人综合色| 韩国亚洲精品| 欧美成年人网| 99热这里只有精品8| 亚洲美洲欧洲综合国产一区| 能在线观看的日韩av| 久久这里有精品15一区二区三区| 国产一区二区精品久久91| 国产欧美日韩在线观看| 欧美永久精品| 国产亚洲欧美日韩在线一区| 国产精品影院在线观看| 国产一区二区毛片| 亚洲精品综合久久中文字幕| 一区精品久久| 亚洲国产另类 国产精品国产免费| 欧美在线播放| 亚洲国产电影| 一区二区三区在线视频免费观看| 久久亚洲二区| 国产午夜精品理论片a级大结局| 国产精自产拍久久久久久| 欧美一区二区三区久久精品| 亚洲日本中文字幕| 欧美日韩少妇| 亚洲欧洲精品一区二区三区波多野1战4| 久久漫画官网| 亚洲精品影视在线观看| 欧美精品在线极品| 亚洲欧美国产精品专区久久| 狠狠久久亚洲欧美专区| 亚洲国产成人av好男人在线观看| 欧美天天综合网| 一本色道久久综合亚洲精品不卡| 亚洲国产精品一区二区www在线| 久久综合伊人77777蜜臀| 在线观看成人一级片| 亚洲一区二区免费在线| 国产欧美一区二区精品婷婷| 国产午夜一区二区三区| 亚洲欧洲中文日韩久久av乱码| 午夜精品美女自拍福到在线| 夜夜嗨av色综合久久久综合网| 国产精品爱啪在线线免费观看| 亚洲国产欧美在线| 亚洲美女精品一区| 亚洲伦理在线免费看| 国产欧美一区二区精品忘忧草| 欧美成ee人免费视频| 国产一区99| 国产精品视频免费观看www| 欧美在线观看天堂一区二区三区| 久久国产精品久久国产精品| 亚洲一区二区网站| 香蕉久久久久久久av网站| 国产日韩一区二区三区在线| 极品尤物av久久免费看| 亚洲国内欧美| 国内视频一区| 香蕉乱码成人久久天堂爱免费| 久久久久欧美| 午夜精品久久久| 欧美色欧美亚洲另类二区| 亚洲精品国精品久久99热一| 亚洲一区二区三区四区中文| 9久草视频在线视频精品| 欧美国产日韩一区二区| 国产精品久久久爽爽爽麻豆色哟哟| 久久综合久久综合久久| 国产精品入口日韩视频大尺度| 亚洲精品日韩综合观看成人91| 亚洲精选一区| 乱人伦精品视频在线观看| 国产亚洲人成a一在线v站| 久久久久久久网站| 亚洲视频成人| 美女诱惑一区| 国产亚洲精品资源在线26u| 美女亚洲精品| 亚洲午夜一区二区三区| 一本色道久久综合一区| 国产午夜精品一区理论片飘花| 国产欧美日韩在线播放| 国产精品成人在线| 狠狠色丁香婷婷综合久久片| 国产精品每日更新| 麻豆精品视频在线观看视频| 红桃视频一区| 国产欧美亚洲精品| 欧美日韩亚洲综合| 欧美一区免费视频| 国产一区二区三区观看| 亚洲精品美女在线观看播放| 在线日韩欧美| 在线观看中文字幕不卡| 在线免费精品视频| 国产精品人人做人人爽人人添| 欧美国产精品va在线观看| 欧美日韩国产首页在线观看| 国产色产综合色产在线视频| 亚洲神马久久| 国产精品99久久久久久久久久久久| 亚洲午夜一级| 久久国产一区二区| 国内精品一区二区三区|