通用串行通信协议(串口&蓝牙Ble等)

1. 协议格式

Package (7~512 bytes)

1 byte 4 bytes 0~507 bytes 2 bytes
Magic byte,有效值为0xAB Header Value CRC16

Header (4 bytes)

1 byte 4 bits 4 bits 2byts
Command id Version Reserve Key header

Key header (2 bytes)

1 byte 7 bits 9 bits
Key Reserve Value length

CRC16 (2 bytes)
(Magic byte + Header + Value)进行CRC16计算

1 byte 1byte
15~8bits 7~0bits

2. Command详解

2.1 Command列表

Command ID 定义
0x01 固件升级命令
0x02 设置命令
0x02 ...

2.2 固件升级命令(command id 0x01)

2.2.1 协议版本号

当前版本号为0。

2.2.2 固件升级命令key列表
Key 定义
0x01 进入固件升级模式请求
0x02 进入固件升级模式返回
2.2.3 进入固件升级模式请求Key
2.2.3.1 功能描述

手机端通过这个Key让设备进入固件升级模式。

2.2.3.2 Value 内容描述

Vaule 为空。

例如:
1byte 1 byte 4 bits 4 bits 1 byte 7 bits 9 bits 0 byte 2 bytes
Magic byte Command id Version Reserve Key Reserve Value length Value CRC16
0xAB 0x01 0x00 0x00 0x01 0x00 0x00 -- 0xDB4A
2.2.4 进入固件升级模式返回Key
2.2.4.1 功能描述

设备通过这个Key返回是否成功进入OTA。

2.2.4.2 Value 内容描述
1 byte 1 byte
Status code Error code
Status code 定义
0x00 进入OTA成功,Error code无意义
0x01 进入OTA失败
Error code 定义
0x01 电量过低
例如:
1byte 1 byte 4 bits 4 bits 1 byte 7 bits 9 bits 2 bytes 2 bytes
Magic byte Command id Version Reserve Key Reserve Value length Value CRC16
0xAB 0x01 0x00 0x00 0x02 0x00 0x02 0x01 0x01 0xAB52
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 137,282评论 19赞 139
  • Spring Web MVC Spring Web MVC 是包含在 Spring 框架中的 Web 框架,建立于...
    Hsinwong阅读 23,150评论 1赞 92
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 35,385评论 18赞 399
  • 楔子 “你真的决定了吗?”一个冰冷的声音从飘渺虚无中传来,淡淡的不带一丝感情。 “是的!”少女仰起脸,冰蓝色的发丝...
    糖罐子阅读 285评论 1赞 2
  • JANE找到一份设计鸭子的工作,却由于创意不够被否定,直到她设计出了一只会做鸡汤的小鸭子…… (一)“现在鸭产业可...
    kirin酱阅读 1,911评论 11赞 13

友情链接更多精彩内容