基于SPI协议的自定义包传输协议

411 阅读1分钟

1 自定义包传输协议

  • 1、发送固件大小:符号*来同步,然后发送固件大小,板子收到后,回复0x30表示擦除相应扇区大小成功,回复0x60表示擦除失败。
  • 2、发送固件数据:符号$来同步,然后发送固件数据,每次64字节大小,板子收到后,回复0x30表示数据编程成功,回复0x60表示擦除失败。如此反复,一直到发送完毕。
  • 3、发送结束命令:符号#表示传输结束,目标板可以加载到APP运行了。
  • 4、我们这里SPI时钟设置为12.5MHz,空闲时SCK为0,上升沿采集数据。 image.png

2 上位机数据传输

  • 发送固件大小,固定长度为69, 剩余补A,符号*来同步,*+发送大小(4个字节)+A...... image.png image.png
  • 发送固件,固件数据每次发送64个字节,符号$来同步,$+发送大小+发送固件(62) image.png
  • 发送结束命令,符号#表示传输结束 image.png

3 下位机数据传输

  • buf[1024]用来存固件数据 image.png image.png image.png image.png image.png