Ubuntu 通过shell脚本中的串行端口使用YMODEM-1K协议发送文件

Ubuntu 通过shell脚本中的串行端口使用YMODEM-1K协议发送文件,ubuntu,serial-port,xmodem,Ubuntu,Serial Port,Xmodem,要求:从终端或shell脚本通过串行端口使用YMODEM 1K协议发送多个文件 下面是对确切协议的描述 Sender receiving end <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<&

要求:从终端或shell脚本通过串行端口使用YMODEM 1K协议发送多个文件

下面是对确切协议的描述

Sender                                     receiving end
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<   C   //Receiver sends uppercase lettersCStart transfer
SOH 00 FF "foo.c" 1064 NUL[118] CRCH CRCL>>>>
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<   ACK  
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<   C  //Received0After frame data, feedbackACK as well 
asCStart first frame transmission
STX 01 FE data[1024] CRCH CRCL>>>>>>>>>>>>>>>
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<   ACK
STX 02 FD data[1024] CRCH CRCL>>>>>>>>>>>>>>>
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<   ACK
STX 03 FC data[1024] CRCH CRCL>>>>>>>>>>>>>>>
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<   ACK
STX 04 FB data[1024] CRCH CRCL>>>>>>>>>>>>>>>
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<   ACK
SOH 05 FA data[100] 1A[28] CRCH CRCL>>>>>>>>
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<   ACK
EOT>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<  NAK
EOT>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<  ACK
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<  C
SOH 00 FF NUL[128] CRCH CRCL>>>>>>>>>>>>>>>>
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<  ACK
期望值:理想情况下,对于YMDEM-1k协议,第一个数据包有效负载的大小为128字节,所有后续数据包的有效负载大小为1024字节

面临的问题:在终端中使用sz/sx命令时,我总是会得到128字节有效负载大小的后续数据包。下面是我使用的命令

sz -b --1k 01_partition.bin > /dev/ttyUSB0 < /dev/ttyUSB0
sz-b--1k 01_partition.bin>/dev/ttyUSB0
如果我使用terraterm从windows机器发送文件,它将遵循上述协议,但在使用linux终端sz命令时,它将发送128字节的有效负载作为后续数据包

sz -b --1k 01_partition.bin > /dev/ttyUSB0 < /dev/ttyUSB0