<abbr id="kc8ii"><menu id="kc8ii"></menu></abbr>
  • <input id="kc8ii"><tbody id="kc8ii"></tbody></input><table id="kc8ii"><source id="kc8ii"></source></table><kbd id="kc8ii"></kbd>
    <center id="kc8ii"><table id="kc8ii"></table></center>
  • <input id="kc8ii"></input>
    <abbr id="kc8ii"></abbr>
  • <abbr id="kc8ii"></abbr>
  • <center id="kc8ii"><table id="kc8ii"></table></center>
    <abbr id="kc8ii"></abbr>
    你的位置:首頁 > 互連技術 > 正文

    嵌入式串口同步幀數方法解析,怎樣學好嵌入式技術?

    發布時間:2017-06-20 責任編輯:susan

    【導讀】本文給出逐次比較、基于FIFO隊列和基于狀態機的3種幀同步方法。通過測試、分析和比較得出,基于有限狀態機的方法是嵌入式系統串口通信中很有效的幀同步方法,同時也是一種很不錯的串口通信程序設計結構。
     
    嵌入式串口同步幀數方法解析
     
    串口通信是日前單片機和DSP等嵌入式系統之間,以及嵌入式系統與PC機或無線模塊之間的一種非常重要且普遍使用的通信方式。在嵌入式系統的硬件結構中,通常只有一個8位或16位的CPU,不僅要完成主流程的工作,同時還要處理隨時發生的各種中斷,因而嵌入式系統中的串口通信程序設計與PC機有很大的不同。若嵌入式系統中.中斷服務子程序在系統運行過程中占用了較多的時間,就有可能在中斷眼務子程序正運行時,又產生一個同類型或其他類型的中斷,從而造成主程序得不到執行或后續中斷數據丟失。所以,嵌入式系統中的串口通信雖然看似簡單,但其中仍有許多問題值得研究,例如串口通信過程中的幀同步問題。本文針對該問題給出了逐次比較、基于FIFO隊列和基于狀態機的3種幀同步方法。通過測試、分析和比較得出,基于有限狀態機的方法是嵌入式系統串口通信中很有效的幀同步方法,同時也是一種很不錯的串口通信程序設計結構。
     
     
    1.串口通信的數據幀結構
     
    現代工業控制,往往需要由多個獨立的控制模塊來共同完成。它們之間通過串口通信完成復雜的控制過程,必須在通信過程中加入必要的通信協議,以提高系統的可靠性和穩定性;而要完成特定的通信協議,就得有一定的同步機制。下面介紹一下簡化的串口通信數據幀結構,以便分析說明嵌入式系統串口通信過程中的幀同步方法。
     
    假定串口發送的數據幀結構為:
     
     
    其中:包頭用于同步,一般是一個或多個ASCII字符,本文中假定數據幀同步頭有2字節(0xAA、0x55);包長表示數據包中除去包頭和包長的字節數,一般用約定好的幾個字節表示;類型為通信協議里規定的命令類型;數據為應發送的主要信息;校驗通常采用單字節“異或”的方法。
     
    2.串口通信中的幀同步方法

    2.1 逐次比較的幀同步方法
     
    首先等待串口數據,將接收到的第1個字節數據與約定好的包頭信息的第1個字節進行比較。如果不正確,則等待新字節,直到接收的數據與包頭信息的第1個字節相同。第1個字節比較正確以后,將收到的第2個字節與包頭信息的第2個字節進行比較。如果仍然正確,則說明串口接收已經同步,可以開始接收數據幀中的數據部分;否則,重新開始同步過程。其程序流程如圖1所示。
     
     
    此種方法代碼量小,編程簡單,一般用于在主程序中以非中斷方式接收串口數據、實時性很差、數據幀較短的場合。但是,在串口速度過快且包頭字節數比較多的情況下,串口實現同步花費的時間很長或很難實現同步。例如,串口接收到序列Ox0O OxAA0xAA 0x55…,當遇到第一個“0xAA”時,該方法認為第1個字節正確開始比較第2個同步頭。第2個字節仍是“0xAA”而不是“0x55”,所以必須等待新的字節重新開始比較第1個同步頭。而緊隨其后的是“0x55”,因而,此時包頭的第1個字節也沒有同步上。事實上,“0x00 OxAA”是干擾字節,“0xAA 0x55”才是通信協議中的同步頭。
     
    怎樣學好嵌入式技術?
     
    隨著現代社會信息化進程的加快,嵌入式系統被廣泛的地應用于軍事、家用、工業、商業、辦公、醫療等社會各個方面,表現出很強的投資價值。從國際范圍來看,作為數字化電子信息產品核心的嵌入式系統目前其硬件和軟件開發工具市場已經突破2000億美元,嵌入式系統帶來的全球工業年產值更是達到了一萬億美元,隨著全球經濟的持續增長以及信息化的加速發展,嵌入式系統市場必將進一步增長。
     
    根據中國物聯網校企聯盟的建議,學習嵌入式系統的必備條件與學習方法如下:
     
     
    1、C開發經驗
     
    條件:Linux
     
    方法:主要是掌握ANSI C編程(不包括gtk,qt等圖形可視化開發)
     
    2、網絡、操作系統、體系結構
     
    條件:Linux,各種書,算法、例程。
     
    方法:通過C編程實現簡單的網絡等知識的算法和過程。
     
    3、嵌入式系統概念
     
    條件:各個嵌入式網站,討論組,書籍
     
    方法:少提問,多留給自己思考的空間。
     
    4、嵌入式開發實踐
     
    條件:各種嵌入式系統開發工具的demo版,包括編譯器,仿真器。
     
    方法:一個是基于MCU/MDSP的嵌入式系統開發,另一個是像Palm OS,WinCE,uC/OS II等RTOS下的應用軟件開發。第一個是針對硬件開發而言的,而第二個則是針對軟件開發而言的。
     
     
    5、硬件開發
     
    條件:各種嵌入式芯片、存儲器等電路器件,protel99等電路設計軟件,電路板制作。
     
    方法:這時候該有開發條件了,最起碼是51系列,這個比較方便。電路的設計內容較多,不過看起來嚇人,實際上比軟件要簡單的多。只要下功夫,實踐會告訴你一切。
    要采購工具么,點這里了解一下價格!
    特別推薦
    技術文章更多>>
    技術白皮書下載更多>>
    熱門搜索
    ?

    關閉

    ?

    關閉

    久久亚洲AV成人无码| 免费无码黄十八禁网站在线观看| 亚洲av中文无码乱人伦在线r▽| 免费A级毛片无码A∨中文字幕下载| 亚洲AV无码不卡在线观看下载 | 制服中文字幕一区二区| 亚洲AV无码久久精品色欲| 一区二区三区无码高清视频| 免费看成人AA片无码视频羞羞网 | 无码任你躁久久久久久老妇| 中文字幕一区日韩在线视频| 91精品久久久久久无码 | 中文字幕久久欲求不满| 久久久久亚洲精品无码蜜桃| 欧美日韩中文国产一区| 久久人妻少妇嫩草AV无码专区| 乱人伦人妻中文字幕无码| 97人妻无码一区二区精品免费| 一级中文字幕免费乱码专区| 人妻少妇无码视频在线| 亚洲精品无码不卡在线播HE| 最近中文字幕大全免费版在线| 亚洲国产精品无码成人片久久| 中文字幕亚洲精品| 日韩少妇无码喷潮系列一二三 | 69堂人成无码免费视频果冻传媒| 久久无码一区二区三区少妇| 亚洲中文字幕无码久久2017| 7国产欧美日韩综合天堂中文久久久久 | 亚洲av中文无码乱人伦在线咪咕| 欧美日韩中文字幕久久伊人| 免费一区二区无码视频在线播放| 无码乱人伦一区二区亚洲| 亚洲AV无码无限在线观看不卡| 六月婷婷中文字幕| 中文字幕国产精品| 国产成人无码av片在线观看不卡| 少妇人妻偷人精品无码视频新浪| 中文字幕国产91| 欧美亚洲精品中文字幕乱码免费高清 | 午夜不卡无码中文字幕影院|