《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 嵌入式環境下串行幀通信的設計與實現
嵌入式環境下串行幀通信的設計與實現
現代電子技術
陳 樂,唐 波,盧 力 國防科學技術大學
摘要: 在嵌入式環境下,因設備間通信距離較遠,多采用串行通信方式,但許多串行通信協議只適用于協議設計時的應用系統環境,不具有通用性,且有些協議存在通信失敗的風險。通過分析設備間的通信需求,設計了一種分層的串行幀通信協議,該協議簡單可靠,能適應多種系統環境。在嵌入式Linux系統環境下,該協議在實際應用系統中運行穩定。
Abstract:
Key words :

摘要:在嵌入式環境下,因設備間通信距離較遠,多采用串行通信" title="串行通信">串行通信方式,但許多串行通信協議只適用于協議設計" title="協議設計">協議設計時的應用系統環境,不具有通用性,且有些協議存在通信失敗的風險。通過分析設備間的通信需求,設計了一種分層的串行幀通信協議,該協議簡單可靠,能適應多種系統環境。在嵌入式Linux系統" title="嵌入式Linux系統">嵌入式Linux系統環境下,該協議在實際應用系統中運行穩定。
關鍵詞:串行通信;協議設計;嵌入式Linux系統;應用層;鏈路層

    嵌入式系統之間的通信通常有兩種方式:并行通信和串行通信。并行方式傳輸數據速度快,但占用的通信線多,傳輸數據的可靠性隨距離的增加而下降,只適用于近距離的數據傳送。在遠距離數據通信中,一般采用串行通信方式,它具有占用通信線少、成本低等優點。目前RS 232串口是PC機與通信工業中應用最廣泛的一種串行接口,它應用于點對點通信模式,實際使用中多采用最簡單的三線方式連接,即兩端設備的串口只連接收、發、地三根線,即可實現簡單的全雙工通信。通信協議是兩端設備數據交換的語言,是通信可靠性的保證,在保證功能的前提下,通信協議應該力求簡潔。

1 系統通信需求
    本系統主要完成野外環境下時間間隔測量和瞬態數據采集的功能,系統內各模塊均選用三星公司的S3C2440" title="S3C2440">S3C2440芯片為處理器,操作系統使用嵌入式Linux。模塊間通信的主要任務為控制命令的下發與應答、工作狀態和采集數據的上報等,對通信的可靠性要求較高,無數據加密需求。
    根據系統軟硬件情況設定串口工作參數如下:115 200波特率,8位數據位,1位停止位,奇校驗、無流控。波特率的設置需要綜合考慮所選用芯片的串口性能、串口連接線長度、傳輸數據的最大幀長和應用過程中的誤碼率等;無流控則是由于串口使用三線方式連接。

2 通信協議的分層結構
    為保證不同設備之間通信協議的通用性,降低實現的復雜度,將通信協議為分上下兩層:上層為應用層,規范了設備間應用程序通信使用的應用層數據格式;下層為鏈路層" title="鏈路層">鏈路層,提供物理線路數據的發送與接收,應用層數據拆分與合并、封裝與解封裝以及錯誤檢測功能。協議應用層部分根據各設備功能的不同使用不同的數據格式,而鏈路層部分則完全通用。應用層通信過程如圖1所示。

 a.JPG


    發方設備按照約定的應用層數據格式構造應用層數據,交由鏈路層進行數據的拆分、封裝、校驗,再將生成的數據以數據幀的形式發送至物理線路;收方設備則從物理線路上接收數據,進行幀定位、解封裝、錯誤檢測、數據合并等,最后將應用層數據上交給應用層處理。收發方設備的應用層可根據用戶需求的變化,不斷修改應用層數據格式,并利用鏈路層提供的功能接口完成通信功能,故該通信協議設計的關鍵在于鏈路層,以下著重闡述鏈路層的設計與實現。

3 鏈路層設計
    鏈路層主要包含以下功能:數據拆分與合并、數據封裝與解封裝、數據幀的發送和接收以及錯誤檢測與重發機制。
3.1 數據拆分與合并
    數據拆分即是把過長的應用層數據分成幾部分,用多幀數據幀發送,接收端收到后再進行數據合并,上交給應用層處理。過長的應用層數據如果不進行拆分,可能導致數據幀超出設計的緩沖區大小,也可能造成發送時間太長導致超時錯誤。這個長度需要根據實際需求合理設置,當數據幀傳輸出現錯誤時,這幀數據就需要重新傳輸,長度太大將造成較大開銷;長度太小,封裝時產生的開銷字節所占比例又太高,影響傳輸效率。
3.2 數據封裝與解封裝
    數據封裝即是以一定格式把拆分后的應用層數據加上功能指示、數據長度等字段,以便對方收到后知道如何處理。數據封裝格式及功能指示字段含義如表1,表2所示。

 b.JPG
3.3 幀發送與接收
    鏈路層以幀為單位進行數據收發,一種普遍的界定幀起始與結束的方法是:在待發送數據的頭部和尾部加入特殊的起始碼和結束碼,如果在數據中出現了這個碼型,就必須在數據發送前進行轉義處理,把它轉換成其他碼型,否則將導致幀定位錯誤,數據通信失敗。很多協議實現者為求實現簡單沒有進行這種轉義,存在通信失敗的風險,其實在點對點協議(PPP協議)中的描述了一種轉義處理方法,經簡化后,實現起來也并不復雜,描述如下:
    數據發送方在幀首處發送0x7E作為起始碼,逐字節發送封裝后的數據,遇到0x7E時,發送0x7D,0x5E字節序列,遇到0x7D時,發送0x7 D,0x5D字節序列,最后在幀尾處發送0x7E作為結束碼;
    數據接收方在串口數據流中搜索第一個0x7E作為幀起始(連續的0x7E則以最后一個為幀起始),逐字節接收數據,遇到0x7D時,跳過不處理,而把該字節的后一個字節加上0x20,直到遇到0x7E認為幀結束。
    在鏈路幀發送前,應使用CRC16算法對封裝數據進行校驗,校驗多項式為,校驗值寫入校驗字段中;在鏈路幀接收后,先對其進行校驗,如果檢驗成功再進行數據解封裝處理,如果校驗失敗則按照下述重發機制進行重發。
3.4 錯誤檢測與重發機制
    綜合考慮協議實現的簡單性和數據收發的可靠性,決定采用停等協議進行數據收發,過程如下:
    發送方發送一幀數據幀后,設置一個最長等待時間,等待接收對方的確認幀或拒絕幀,若收到確認幀則發送下一幀;若收到拒絕幀或者在超時時間內未收到確認幀或拒絕幀,則重發當前幀,因等待超時而重發的幀要設置超時指示位。當連續收到拒絕幀三次或連續超時重發三次,則認為對端不可達,取消當前幀的發送,上報錯誤給應用層。
    接收方收到數據幀后,當超時指示位為0時,如果校驗正確,則發送確認幀,并處理此幀,如果校驗錯誤,則發送拒絕幀,不處理該幀;當超時指示位為1時,說明對方未正確收到確認幀或拒絕幀,如果上次非重發幀的校驗結果是正確的,則該幀實際上已經處理過,直接發送確認幀即可;如果上次非重發幀的校驗結果是錯誤的,則根據校驗結果正常處理該幀。

4 鏈路層實現
    鏈路層采用C++語言實現,以便于代碼在各模塊程序中復用。應用層數據發送和接收流程如圖2,圖3所示。

 c.JPG

 

5 結語
      鏈路層的作用是可靠地把應用層數據發送到對端設備,但如果僅僅是這樣,應用程序使用起來并不是很方便,如果使用面向對象編程的方法,把鏈路層代碼封裝在一個類中,向應用程序提供一些較為簡單的功能接口,如發送數據,接收數據,檢測對端是否可達等,就可以很好地解決易用性問題。另外當數據發送失敗時,應當以返回值或事件方式通知應用程序,當有應用層數據需要處理時,最好以回調函數或事件方式激活應用層處理程序,以避免應用程序低效的循環檢測。通過在協議設計和協議實現兩個方面同時進行優化,該協議在實際應用過程中表現出極好的可靠性和一定的通用性,可供參考借鑒。
 

此內容為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>
          欧美一区二区在线免费播放| 国产精品久久久久永久免费观看| 国产精品五区| 午夜国产精品影院在线观看| 伊人狠狠色j香婷婷综合| 亚洲视频日本| 欧美日韩亚洲一区二区三区| 久久天堂成人| 精品电影一区| 欧美aaaaaaaa牛牛影院| 9色porny自拍视频一区二区| 亚洲国产精品视频| 亚洲视频一二| 国产欧美日韩免费看aⅴ视频| 亚洲伦理在线免费看| 六月婷婷一区| 亚洲少妇自拍| 亚洲黄色毛片| 日韩一区二区电影网| 欧美精品久久一区| 欧美午夜激情小视频| 久久久久国色av免费看影院| 国产欧美日本一区二区三区| 在线一区二区三区做爰视频网站| 国产欧美日韩另类一区| 国产一区二区三区直播精品电影| 亚洲伦理一区| 美女诱惑黄网站一区| 国模 一区 二区 三区| 欧美日韩一级大片网址| 欧美成人一区二区三区在线观看| 免费成年人欧美视频| 亚洲人成网站777色婷婷| 国产在线播精品第三| 一区二区在线视频观看| 激情六月婷婷综合| 国产日韩精品视频一区二区三区| 亚洲精品久久久久久一区二区| 亚洲丶国产丶欧美一区二区三区| 欧美在线视频二区| 国产专区综合网| 国产精品亚洲а∨天堂免在线| 亚洲欧美日韩区| 麻豆精品视频在线观看| 欧美激情偷拍| 亚洲国产成人精品久久久国产成人一区| 在线成人av| 欧美在线观看日本一区| 欧美成人精品一区二区| 亚洲综合二区| 国产日本欧美一区二区三区| 国产女人水真多18毛片18精品视频| 欧美视频日韩视频| 99视频有精品| 亚洲一区精品视频| 国产精品久久久久久影视| 久久精品水蜜桃av综合天堂| 亚洲美女免费视频| 一区二区三区精品在线| 亚洲黄色av| 国产自产高清不卡| 亚洲国产三级在线| 国内成人精品2018免费看| 一区二区三区日韩欧美| 激情综合色综合久久综合| 欧美日韩成人在线播放| 国产专区一区| 国产日韩欧美视频| 欧美福利视频在线观看| 亚洲电影网站| 欧美大片在线观看| 亚洲日本无吗高清不卡| 一区在线影院| 国产日产亚洲精品系列| 久久国产乱子精品免费女| 亚洲永久在线| 中国日韩欧美久久久久久久久| 亚洲女与黑人做爰| 尤妮丝一区二区裸体视频| 久久久水蜜桃av免费网站| 亚洲字幕在线观看| 久久综合伊人| 久久久成人网| 中文无字幕一区二区三区| 欧美日韩免费观看一区| 亚洲黄色成人| 国产一区二区日韩| 中国成人黄色视屏| 久久久久久久欧美精品| 1000部精品久久久久久久久| 国产一区二区电影在线观看| 美女视频黄免费的久久| 日韩一级裸体免费视频| 最新热久久免费视频| 激情久久久久| 老鸭窝亚洲一区二区三区| 亚洲欧美成人一区二区三区| 日韩一级精品视频在线观看| 欧美日韩国产黄| 国产一区二区三区高清| 欧美激情一区三区| 老色鬼久久亚洲一区二区| 久久久午夜精品| 国产一区二区三区四区| 亚洲成色www8888| 久久久欧美精品sm网站| 亚洲国产高清一区| 亚洲美女视频网| 欧美日韩mv| 欧美多人爱爱视频网站| 久久久蜜臀国产一区二区| 久久影院午夜论| 蜜臀久久99精品久久久久久9| 欧美午夜激情在线| 国产精品视频精品视频| 欧美精品久久一区| 国产精品海角社区在线观看| 欧美激情国产日韩精品一区18| 欧美日韩精品一区| 亚洲人体一区| 亚洲高清资源综合久久精品| 久久久精品国产一区二区三区| 精品不卡在线| 蜜桃久久av| 一区二区三区精密机械公司| 这里只有精品电影| 一本色道久久加勒比精品| 国产精品一区二区在线观看网站| 好看的av在线不卡观看| 狠狠色狠狠色综合日日91app| 欧美福利专区| 欧美日韩亚洲视频| 国产无遮挡一区二区三区毛片日本| 日韩视频永久免费| 午夜综合激情| 亚洲一区二区三区视频播放| 美女露胸一区二区三区| 亚洲精品久久7777| 欧美与欧洲交xxxx免费观看| 国产精品久久久久久久一区探花| 国产精品日韩欧美综合| 亚洲综合999| 国产欧美欧洲在线观看| 9色porny自拍视频一区二区| 亚洲高清视频中文字幕| 国产精品久久久久久久久| 国产精品揄拍500视频| 欧美午夜激情小视频| 亚洲国产精品成人va在线观看| 六十路精品视频| 欧美国产高潮xxxx1819| 欧美午夜片欧美片在线观看| av成人毛片| 亚洲先锋成人| 国产专区综合网| 欧美日韩免费观看一区三区| 欧美在线播放| 欧美国产日韩xxxxx| 亚洲三级影院| 国产农村妇女毛片精品久久莱园子| 国内精品视频久久| 亚洲人屁股眼子交8| 久久一区二区三区超碰国产精品| 99re亚洲国产精品| 国产欧美一区二区精品性| 亚洲伦理在线免费看| 亚洲欧美精品伊人久久| 欧美日韩一区二区高清| 国产精品人成在线观看免费| 亚洲一区二区三区涩| 性欧美大战久久久久久久免费观看| 久久久综合免费视频| 久久不射中文字幕| 欧美日韩在线免费观看| 欧美一区二区三区男人的天堂| av不卡在线看| 一区在线电影| 依依成人综合视频| 妖精视频成人观看www| 欧美日韩免费看| 欧美成人黑人xx视频免费观看| 香蕉视频成人在线观看| 亚洲欧美一区二区精品久久久| 一区二区不卡在线视频 午夜欧美不卡'| 精品96久久久久久中文字幕无| 尤物精品在线| 欧美视频在线观看一区二区| 欧美婷婷六月丁香综合色| 国产精品xnxxcom| 欧美精品久久一区| 亚洲视频在线一区观看| 韩国三级电影久久久久久| 国产日韩在线看| 国产精品夜色7777狼人| 欧美一区二区在线观看| 国产真实乱子伦精品视频| 一区二区三区成人精品| 性xx色xx综合久久久xx| 免费亚洲网站| 在线播放日韩专区| 亚洲韩国日本中文字幕| 亚洲午夜精品视频| 亚洲级视频在线观看免费1级| 欧美区国产区| 久久理论片午夜琪琪电影网| 欧美丰满高潮xxxx喷水动漫| 亚洲高清视频的网址| 亚洲视频电影图片偷拍一区| 欧美淫片网站| 亚洲日本精品国产第一区| 亚洲一区二区三区色| 午夜影院日韩| 国产精品久久久久久久久果冻传媒| 国产欧美一区二区三区另类精品| 欧美成人免费小视频| 欧美另类69精品久久久久9999| 亚洲精品一区二区三区不| 欧美综合国产精品久久丁香| 国内精品久久久久久久97牛牛| 一本大道av伊人久久综合| 一区二区三区中文在线观看| 免费91麻豆精品国产自产在线观看| 永久久久久久| 欧美一区二区播放| 欧美区亚洲区| 一区二区三区日韩| 国产精品美女主播在线观看纯欲| 欧美成人免费va影院高清| 欧美视频在线视频| 在线观看一区欧美| 久久高清福利视频| 欧美视频在线一区二区三区| 亚洲国产精品国自产拍av秋霞| 美女日韩在线中文字幕| 性久久久久久久久| 亚洲欧美日韩一区二区三区在线观看| 欧美国产在线视频| 国产亚洲午夜高清国产拍精品| 欧美日韩久久精品| 久久夜色精品国产欧美乱极品| 欧美激情一区在线| 欧美日韩一区二区在线观看| 亚洲欧洲视频在线| 久久日韩粉嫩一区二区三区| 亚洲男人的天堂在线观看| 国产精品另类一区| 在线国产欧美| 亚洲精品美女在线观看播放| 国产日韩欧美一区| 国产欧美日韩另类视频免费观看| 亚洲欧美视频一区二区三区| 国产精品v欧美精品v日本精品动漫| 久久最新视频| 99国产精品久久久久久久成人热| 国产视频久久久久久久| 欧美理论在线播放| 亚洲欧美日韩直播| 亚洲三级电影全部在线观看高清| 国产丝袜美腿一区二区三区| 久久久免费观看视频| 在线观看日韩www视频免费| 欧美日韩一区二区视频在线观看| 激情欧美一区二区三区| 欧美在线免费观看视频| 国内外成人在线| 久久精品国产久精国产思思| 欧美精品福利在线| 欧美成人中文字幕| 亚洲成色www久久网站| 亚洲人成在线播放| 香蕉精品999视频一区二区| 欧美久久精品午夜青青大伊人| 国产欧美二区| 亚洲午夜激情免费视频| 亚洲一二三区在线观看| 欧美精品日韩综合在线| 亚洲性感美女99在线| 亚洲美女视频网| 欧美精品日本| 久久日韩粉嫩一区二区三区| 亚洲精品久久久久久久久久久久| 久久久国产精品亚洲一区| 国产在线国偷精品产拍免费yy| 久久久久久久久久码影片| 新67194成人永久网站| 亚洲国产91精品在线观看| 宅男噜噜噜66国产日韩在线观看| 欧美在线免费观看亚洲| 国产精品女人网站| 亚洲免费电影在线观看| 国产亚洲精久久久久久| 韩国视频理论视频久久| 亚洲毛片网站| 夜夜狂射影院欧美极品| 久久爱另类一区二区小说| 欧美精品日本| 欧美日韩一级大片网址| 亚洲影视九九影院在线观看| 久久五月婷婷丁香社区| 久久精品一二三区| 韩曰欧美视频免费观看| 亚洲一区制服诱惑| 久热综合在线亚洲精品| 亚洲精品一区久久久久久| 亚洲丝袜av一区| 国内自拍一区| 国产在线观看精品一区二区三区| 久久精品99国产精品酒店日本| 在线日韩av永久免费观看| 亚洲福利国产| 久久久久成人精品| 欧美精品九九99久久| 欧美午夜电影一区| 一区二区日韩精品| 最新国产の精品合集bt伙计| 久久免费国产精品1| 欧美性色aⅴ视频一区日韩精品| 国产精品蜜臀在线观看| 久久精品99| 欧美丝袜一区二区三区| 欧美日韩一区二区在线| 久久人人97超碰精品888| 欧美wwwwww| 午夜亚洲视频| 国产精品视频大全| 亚洲精品午夜| 一区精品久久| 国产精品系列在线播放|