首页 > 编程知识 正文

ymodem协议,ymodem上位机

时间:2023-05-03 15:40:17 阅读:185172 作者:1284

1-实验结论:

对比标准Ymodem协议,ST官方IAP代码中YModem协议少了以下部分

发送端(secureCRT)                      接收端(开发板)

EOT---->

                                                   NAK----<

2-YModem

YModem协议是由XModem协议演变而来的,每包数据可以达到1024字节,是一个非常高效的文件传输协议。参考资料如下

https://baike.baidu.com/item/Ymodem?fr=aladdin

https://blog.csdn.net/gxdhf/article/details/80769163

3-ST官方IAP工程代码

https://pan.baidu.com/s/1_3R5iDKTMsbhj2Fv60mAvQ

4-修改后的STM32f103ZET6工程代码(对ymodem.c添加注释和调试代码)

串口1用于与secureCRT 8.5通信,串口2用于打印调试代码

https://pan.baidu.com/s/1NVYjwqt-Mq9CB7NovLWASA

5-ymodem.c文件代码分析,请见工程中

6-不错的STM IAP文章

https://blog.csdn.net/yazhouren/article/details/73385580

7-实验结果:

 

8-YModem协议部分代码分析

第一帧数据

数据帧

结束帧

ST官方IAP代码中YModem协议怎么少了一部分呢?

欢迎交流!

在阿莫论坛修复了问题,详细请见 https://www.amobbs.com/thread-5705496-1-1.html

修改代码,符合标准YModem协议,具体如下

1-接收端在第一次收到EOT时,发送NAK。那么发送端会再一次发送EOT,此时接收端发送ACK应答

发送端                                    接收端
                                               C---<
SOH-->
                                               ACK---<
                                                   C---<
SOH-->
                                              ACK---<
SOH-->
                                              ACK---<
...
SOH-->
                                              ACK---<
SOH-->
                                              ACK---<
EOT-->
                                              NAK---<
EOT-->
                                             ACK---<
                 (调试代码为ACK-end<)
                                                  C---<
SOH-->
                                              ACK---<

          (调试代码为ACK-empty<)

 

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。