1 / 19
文档名称:

2021年Xmodem协议详解以及源代码.doc

格式:doc   大小:35KB   页数:19页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

2021年Xmodem协议详解以及源代码.doc

上传人:业精于勤 2020/11/5 文件大小:35 KB

下载得到文件列表

2021年Xmodem协议详解以及源代码.doc

文档介绍

文档介绍:研究Xmodem协议必看11个问题
原文地址:~type=v5_one&label=rela_prevarticle
Xmodem协议作为串口数据传输关键方法之一,恐怕只有做过bootloader才有机会 接触一下,网上相关该协议内容要么是英语要么讲解不具体。笔者以前写bootloader时研究过1k-Xmodem,参考了不少相关资料。这里和大家交流一下我对Xmodem了解,多多指教!
1.Xmodem协议是什么?
  XMODEM协议是一个串口通信中 广泛用到异步文件传输协议。分为标准Xmodem和1k-Xmodem两种,前者以128字节块形式传输数据,后者字节块为1k即1024字节,而且 每个块全部使用一个校验和过程来进行错误检测。在校验过程中假如接收方相关一个块校验和和它在发送方校验和相同时,接收方就向发送方发送一个确定字节 (ACK)。因为Xmodem需要对每个块全部进行认可,这将造成性能有所下降,尤其是延时比较长场所,这种协议显得效率更低。
    除了Xmodem,还有Ymodem,Zmodem协议。她们协议内容和Xmodem类似,不一样是Ymodem许可批处理文件传输,效率更高;Zmodem则是改善了Xmodem,它只需要对损坏块进行重发,其它正确块不需要发送确定字节。降低了通信量。
2.Xmodem协议相关控制字符
    SOH             0x01
    STX           0x02
    EOT             0x04
    ACK             0x06
    NAK             0x15
    CAN             0x18
    CTRLZ         0x1A
3.标准Xmodem协议(每个数据包含有128字节数据)帧格式
  _______________________________________________________________
|     |            |                   |          |            |
| SOH | 信息包序号   |  信息包序号补码    | 数据区段  |  校验和      |
|_____|____________|___________________|__________|____________|
4.1k-Xmodem(每个数据包含有1024字节数据)帧格式
  _______________________________________________________________
|     |            |                   |          |            |
| STX | 信息包序号   |  信息包序号补码    | 数据区段  |  校验和      |
|_____|____________|___________________|__________|____________|
5.数据包说明
    对于标准Xmodem协议来说,假如传送文件不是128整数倍,那么最终一个数据包有效内容肯定小于帧长,不足部分需要用CTRL- Z(0x1A)来填充。这里可能有些人会问,,mcu收到后碰到0x1A字符会怎么处理?其实如 果传送是文本文件,那么接收方对于接收内容是很轻易识别,因为CTRL-Z不是前128个ascii码,不是通用可见字符,假如是二进制文件,mcu其实也不会把它看成代码来实施。哪怕是excel文件等,因为其内部会有些结构表示各个字段长度等,所以不会读取多出填充字符。不然 Xmodem太弱了。对于1k-Xmodem,同上理。
6.怎样开启传输?
    传输由接收方开启,方法是向发送方发送"C"或NAK(注意哦,这里提到NAK是用来开启传输。以下我们会看到NAK还能够用来对数据产生重传机 制)。接收方发送NAK信号表示接收方计划用累加和校验;发送字符"C"则表示接收方想计划使用CRC校验(具体校验规则下文Xmodem源码,源码胜于 雄辩)。
7.传输过程
    当接收方发送第一个"C"或NAK抵达发送方,发送方认为能够发送第一个数据包,传输已经开启。发送方接着应该将数据以每次128字节数据加上包头,包号,包号补码,末尾加上校验和,打包成帧格式传送。
发送方发了第一包后就等候接收方确实定字节ACK,收到接收方传来ACK确定,就认为数据包被接收方正确接收,而且接收方要求发送方继续发送下一个包; 假如发送方

最近更新

自助终端考试试题及答案 15页

营口市人民政府关于印发营口市物业管理实施细.. 18页

论学生创新能力的培养论文 4页

运输安全生产月活动方案 14页

部编版小学六年级上册语文教学工作计划 40页

重庆市江津区人民政府办公室关于进一步引导和.. 4页

长江大学食品化学期末考试题及答案 7页

需求质量规范,需求质量标准 12页

扩张型心肌病护理查房ppt 22页

高中美术《人间生活》说课稿 27页

黄山市人民政府办公厅关于印发深化产教融合校.. 10页

口鼻吸痰的护理ppt 24页

开水烫伤病人的护理ppt做 24页

骨干教师培养计划的学习型组织建设研究 27页

骨干教师培养计划和学科学习策略的培养 23页

全国进修班暴发性肝衰竭的诊治和进展 136页

骨干教师培养培训计划方案的专业化与通识教育.. 28页

食品加工新技术2024年行业创新趋势展望培训课.. 31页

预防冬季呼吸道传染病主题班会 28页

雨灾雪灾应急预案培训的损失评估与赔偿 24页

智慧农业物联网平台架构 33页

雨灾雪灾应急预案培训实践案例 23页

护理总带教竞聘ppt 19页

雨灾雪灾应急预案培训中的设备维修和保养 24页

租赁业的未来发展趋势与展望 34页

防火防爆知识培训课件 32页

护理职业生涯规划的ppt 27页

某建筑石料用灰岩矿普查报告 26页

2023中国急性肺栓塞诊断与治疗指南 21页

2023年7月份贵州省普通高中学业水平考试通用技.. 9页