YModem介紹

YModem介紹


簡介

YModem是一種文件傳輸的協議, 可以參考百度百科 YModem百度百科, 本文主要講解我個人對這個協議的理解.


協議傳輸的過程

  • 流程如下圖所示:
  • 首先大家先了解幾個字符的ASCII碼
字符 ASCII碼16進制
SOH 0x01
STX 0x02
ACK 0x06
NAK 0x15
EOT 0x04
C 0x43
  • 這些控制字符和可顯示字符在傳輸過程中就是通過ASCII碼錶示的.
  • 整個過程比較簡單, 就是按照格式一條一條的傳輸, 直到結束.
  • 下面對傳輸過程中的幀進行分開講一下

1 起始幀(133字節)

SOH + 00 + FF + filename + filesize + NULL + CRCH + CRCL

  • 起始幀是文件傳輸發送端發的第一條重要消息.
  • filename表示傳輸文件的文件名.
  • filesize表示需要傳輸文件的大小.
  • CRCH + CRCL 表示整條幀(去掉前三個字節)的CRC16校驗.

2 數據幀格式

STX/SOH + [編號] + 編號的反碼 + data[0] + data[1] + data[2] + … + CRCH + CRCL

SOH 表示有128個字節, 有的也只用SOH傳輸數據.
STX 表示有1024個字節.

  • CRCH + CRCL 表示整條幀(去掉前三個字節)的CRC16校驗.
  • 如果傳輸最後一條字節不足128個字節, 則用1A填充

3 結束幀的數據格式

SOH + 00 + FF + NULL + NULL + … + NULL + CRCH + CRCL


總結

這個協議常用於文件傳輸, 比如在線升級過程中傳輸的.bin文件 或者傳輸一些碼庫文件. 在Xshell軟件中的串口傳輸過程中就有這種傳輸方式, 後面在講在線升級的過程中就會用到它, 所以還是有必要了解以下的.

備註:提供一下個人微信號 Hleafleafleaf,歡迎加好友,共同學習!共同進步!


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章