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

297 阅读1分钟

1 自定义包传输协议

  • 1、发送固件大小:符号*来同步,然后发送固件大小,板子收到后,回复0x30表示擦除相应扇区大小成功,回复0x60表示擦除失败。
  • 2、发送固件数据:符号$来同步,然后发送固件数据,每次64字节大小,板子收到后,回复0x30表示数据编程成功,回复0x60表示擦除失败。如此反复,一直到发送完毕。
  • 3、发送结束命令:符号#表示传输结束,目标板可以加载到APP运行了。
  • 要更新APP固件的I2C设备地址,我们设置为0x20,通信速度设置的100KHz。 image.png

1.1 IIC协议单字节写

image.png

1.2 IIC协议随机读

image.png

2 上位机(每写一个字节,从机都要应答

  • IIC初始化 image.png image.png
  • 启动应答 image.png
  • 发送固件大小 image.png image.png
  • 发送固件 image.png image.png
  • 发送结束命令 image.png

3 下位机传输

  • IIC板级驱动包初始化 image.png image.png
  • 发送固件大小 image.png
  • 发送固件 image.png

4 IIC板级驱动

  • iic_bus.h image.png
  • 相关引脚宏定义 image.png image.png
  • bsp_InitI2CBus image.png image.png
  • bsp_i2cTransfer image.png
  • bsp_i2cReceive image.png
  • 中断处理 image.png