• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 新聞中心

    EEPW首頁 > 手機與無線通信 > 設計應用 > 兩種MCU間的串行通信協議設計

    兩種MCU間的串行通信協議設計

    作者: 時間:2011-04-12 來源:網絡 收藏

    2.2 軟件
    2.2.1數據幀解析
    Cortex-M3側和C51側采用同樣的數據幀格式,以簡化編程的難度,增強程序的可移植性。數據幀由起始標識符、數據長度、類型ID、內容、循環冗余校驗碼構成,如圖2所示。

    本文引用地址:http://www.czjhyjcfj.com/article/156421.htm

    b.jpg


    (1)起始標識符
    起始標識符的作用主要是用于定界,把不同的數據幀在一連串的數據中分離開來。起始標識符內的數據不能與數據幀中可能出現的任何數據相同,否則會引起歧義,導致定界失敗,造成數據錯誤。在本例中,為2個字節,選用0xFF+0xAA,因為該組合與其他數據具有排他性,不會引起歧義。
    (2)數據長度
    數據長度的計算方法為,從該位開始,到最后一個數據位結束,也就是CRC校驗位之前的一個字節。雖然使用Length位可以表示很長的數據幀,但在應用中應盡量采用短幀,以避免各種干擾因素造成少數數據位出錯,導致大量數據無效,影響效率。同時,應該設置一個最大發送長度,以便設置超時重傳計時器的值。本例采用1個字節,最大幀長為260個字節。
    (3)類型ID
    根據實際需要,類型ID可以采用1個或多個字節,用于表示該數據幀的作用類型。本例中,采用1個字節,可以表示256種作用類型,例如設備參數幀(如音量)、線路探測幀或應答幀。
    (4)內容
    通信內容與類型ID結合,表達特定意義。相同的Data,但ID不同的話,表達的信息不一樣。根據不同的ID,Data的長度可能會有所不同。
    (5)循環冗余校驗碼
    循環冗余校驗碼用于校驗接收到的數據是否在傳輸過程中出錯。本例中采用CRC-16算法,占2個字節,對從起始標識符開始到最后一個通信內容位的所有數據進行運算,把得到的結果附在最后。



    評論


    相關推薦

    技術專區

    關閉
    主站蜘蛛池模板: 新竹县| 澄迈县| 宜良县| 鄂尔多斯市| 武定县| 荃湾区| 灵台县| 新野县| 额济纳旗| 大石桥市| 新泰市| 奎屯市| 怀柔区| 阿合奇县| 肥乡县| 思茅市| 武隆县| 大悟县| 通许县| 清镇市| 开化县| 崇左市| 韩城市| 新乡市| 凯里市| 哈巴河县| 泰安市| 长垣县| 屏山县| 独山县| 正定县| 铁力市| 息烽县| 家居| 万荣县| 云梦县| 游戏| 武城县| 小金县| 惠州市| 吉木乃县|