Ymodem协议的工作流程分析.doc
- 文档编号:1222415
- 上传时间:2023-04-30
- 格式:DOC
- 页数:4
- 大小:75KB
Ymodem协议的工作流程分析.doc
《Ymodem协议的工作流程分析.doc》由会员分享,可在线阅读,更多相关《Ymodem协议的工作流程分析.doc(4页珍藏版)》请在冰点文库上搜索。
二、Ymodem协议分析
1、明确概念
一步一步来,先把概念搞清楚。
Ymodem协议是一种发送并等待的协议。
即发送方发送一个数据包以后,都要等待接收方的确认。
如果是ACK信号,则可以发送新的包。
如果是NAK信号,则重发或者错误退出。
2、文件传输过程
文件传输过程的开启:
(1)开启是由接收方开启传输,它发一个大写字母C开启传输。
然后进入等待(SOH)状态,如果没有回应,就会超时退出。
(2)发送方开始时处于等待过程中,等待C。
收到C以后,发送(SOH)数据包开始信号,发送序号(00),补码(FF),“文件名”,“空字符”“文件大小”“除去序号外,补满128字节”,CRC校验两个字节。
进入等待(ACK)状态。
(3)接收方收到以后,CRC校验满足,则发送ACK。
发送方接收到ACK,又进入等待“文件传输开启”信号,即重新进入等待“C”的状态。
(4)前面接收方只是收到了一个文件名,限制正式开启文件传输,Ymodem支持128字节和1024字节一个数据包。
128字节以(SOH)开始,1024字节以(STX)开始。
接收方又发出一个“C”信号,开始准备接收文件。
进入等待“SOH”或者“STX”状态。
(5)发送接收到“C”以后,发送数据包,(SOH)(01序号)(FE补码)(128位数据)(CRC校验),等待接收方“ACK”。
(6)文件发送完以后,发送方发出一个“EOT”信号,接收方也以“ACK”回应。
然后接收方会再次发出“C”开启另一次传输,若接着发送方会发出一个“全0数据包”,接收方“ACK”以后,本次通信正式结束。
(7)当然Ymodem相对于Xmodem改进的地方就在于传输再次开启以后,又可以发送另外一个文件,即一次传输允许发送多个文件,但这个特性我就不准备实现了。
SOH在ASCII码表中为01数据包开始
STX在ASCII码表中为02正文开始
ETX在ASCII码表中为03正文结束
EOT在ASCII码表中为04数据包结束
ENQ在ASCII码表中为05询问字符
ACK在ASCII码表中为06确认
SOH在ASCII码表中为01数据包开始
STX在ASCII码表中为02正文开始
ETX在ASCII码表中为03正文结束
EOT在ASCII码表中为04数据包结束
ENQ在ASCII码表中为05询问字符
ACK在ASCII码表中为06确认
1、首先由接收方stm32单片机发送大写字母C开启传输,发送方PC机在超级终端中打开传送菜单里的发送文件命令(此时会有设置波特率,数据位,奇偶检校位等的设置),收到大写字母C后,发送SOH(01)数据包开始信号,接着发送序号00和它的补码FF,然后发送文件名(Project.bin(50726F6A656374为Project),(2E62696E为.bin)),再发送一个空字符NULL(00),然后是文件大小(4224Bytes34323234),最后用NULL来填补达到128字节(Ymodem可以发送128字节或者1024字节的数据包,128字节以SOH开始,1024字节以STX开始)。
1045为CRC校验的两个字节。
0100FF50726F6A6563742E62696E0034323234000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001045
2、发送方PC机等待接收方STM32单片机发送ACK(06)信号,而接收方收到发送方的文件名和文件大小的信息,经过CRC检校满足后即发送ACK信号。
发送方接收到ACK,又进入等待“文件传输开启”信号,即重新进入等待大写字母“C”(43)的状态。
0643
3、发送方收到大写字母“C”以后进行文件内容的数据包的发送,发送1024字节大小的数据包,以STX(02)开始,紧接着是序号01和它的补码FE,然后是1024字节的数据,最后两个字节是CRC检校用的。
0201FE700800204902040835040408370404083B0404083F04040843040408000000000000000000000000000000004904040847040408000000004B0404084D0404084F04040851040408530404085504040857040408590404085B0404085D0404085F04040861040408630404086504040867040408690404086B0404086D0404086F04040871040408730404087504040877040408790404087B0404087D0404087F04040881040408830404088504040887040408890404088B0404088D0404088F04040891040408930404089504040897040408990404089B0404089D0404089F040408A1040408A3040408A5040408A7040408A9040408AB040408AD040408AF040408B1040408B3040408B5040408B7040408B9040408BB040408BD040408BF040408C1040408C3040408C504040800F002F800F03AF80AA090E8000C82448344AAF10107DA4501D100F02FF8AFF2090EBAE80F0013F0010F18BFFB1A43F001031847EC0E00000C0F0000103A24BF78C878C1FAD8520724BF30C830C144BF04680C60704700000023002400250026103A28BF78C1FBD8520728BF30C148BF0B6070471FB51FBD10B510BD00F00FFF1146FFF7F7FF00F0A0F800F02DFF03B4FFF7F2FF03BC00F031FF000030BF704720BF704740BF7047BFF36F8F7047BFF34F8F7047BFF35F8F704701DF7047EFF31480704780F31488BFF36F8F7047EFF30980704780F309887047EFF30880704780F30888704762B6704772B67047EFF31080704771B6704761B67047EFF31380704780F311887047EFF31280704740BA704700BA704700000348004703480449044A054B70470000310104087000002070080020700400207004002001B502E00098401E009000980028F9D108BD10B500214FF0006000F0D2FB10BD10B500F0C3FC4FF4803000F0DEFC00F01BFD5A49087008460078012826D1102000F022F9022000F009F9002000F055FD002000F064FD4FF4806000F057FD4FF4E0114FF4803000F02BFD012000F034FD00BF392000F0DCFC0028FAD0022000F02EFD00BF00F034FD0828FBD110BD4FF48021480200F095FBFFF7C2FFFFF7B9FF01217C2000F0EEFD4FF6FF703C4908800020C8703B4800F05DF939493A4800F059F93749394800F055F93549384800F051F93349374800F04DF900217C2000F0D1FD01214FF4C07000F0CCFD2C49324800F040F92A49314800F03CF900214FF4C07000F0BFFD0121802000F0BBFD4FF4F860234908801020C87003208870264800F028F939E04021234800F0CDF92448FFF766FF4FF4C0711F4800F0C5F940211D4800F0C3F91E48FFF75AFF4FF40071194800F0B9F94FF4C071174800F0B6F91748FFF74DFF4FF40071134800F0AEF914480078401CC0B212490870032807DD002008704FF480610B4800F09FF904E04FF480618803
4、4224字节的文件就是如下这样传输的:
5、文件发送完以后,发送方发出一个“EOT”信号,接收方也以“ACK”回应。
然后接收方会再次发出“C”开启另一次传输,若接着发送方会发出一个“全0数据包”,接收方“ACK”以后,本次通信正式结束。
6、最后STM32单片机发送文件接收成功的信息给PC机。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Ymodem 协议 工作 流程 分析