STM32 CUbeIDE 使用Ymodem协议进行串口IAP升级
学习了一下使用Ymodem协议串口IAP程序升级的功能,移植的是ST的工程文件。附上下载链接https://www.st.com/content/st_com/en/search.html#q=IAP-t=tools-page=1;ST官网提供的各种IAP,其方法和原理其实都类似:就是将程序文件(二进制文件)写入FLASH。
1、Ymodem协议简介
Xmodem、Ymodem和Zmodem协议是最常用的三种通信协议。Xmodem协议是最早的,传输128字节信息块。Ymodem是Xmodem的改进版协议,具有传输快速稳定的优点。它可以一次传输1024字节的信息块,同时还支持传输多个文件。以下协议内容的简介,来源https://blog.youkuaiyun.com/lijing198997/article/details/29839505,顺便添加了一点自己的见解。
YModem,数据的发送回使用CRC校验,保证数据传输的正确性。它每传输一个信息块数据时,就会等待接收端回应ACK信号,接收到回应后,才会继续传输下一个信息块,保证数据已经全部接收。
SENDER:发送方。
RECEIVER:接收方。
第一步先由接收方,发送一个字符'C'
发送方收到'C'后,发送第一帧数据包,内容如下:
**SOH 00 FF filename filezise NUL CRCH CRCL**
帧长=3字节数据首部+128字节数据+2字节CRC16校验码=133字节
如下所示:
SOH 00 FF Foo.c NUL[123] CRCH CRCL
第1字节SOH:表示本包数据区大小有128字节。如果头为STX表示本包数据区大小为1024字节。
第2字节00: 编号,第一包为00,<