Files
JBao_JL7016_MOD_FW/Doc/BLE+MCU架构开发流程.md
T

6.6 KiB
Raw Blame History

BLE+MCU架构开发流程

1. 系统架构说明

功能说明

设备采用 BLE + MCU 双芯片架构:

  • MCU

    • 负责产品业务控制;

    • 传感器采集;

    • 外设控制;

    • 产品逻辑处理。

  • BLE 模组:

    • 负责 BLE 通信;

    • APP连接;

    • 网关接入;

    • 云端通信;

    • OTA升级;

    • 数据透传。

整体通信链路:

APP
 |
BLE
 |
MCU
 |
设备功能

云端通信:

设备
 |
BLE----------
 |          |
网关       APP 
 |          |
服务器-------

2. BLE启动流程

2.1 BLE上电初始化

功能说明

BLE 模组上电完成初始化后,主动向 MCU 获取设备身份信息。

BLE → MCU

请求获取设备信息:

字段 内容
命令 0x01
请求类型 获取设备身份信息

MCU → BLE

返回设备身份信息:

字段 内容
产品类别 Product Type
产品型号 Product Model
设备SN Device SN(可选)

BLE收到信息后:

  1. 保存产品类别;

  2. 保存产品型号;

  3. 生成BLE广播数据。

广播内容:

Product Type
+
Product Model
+
设备标识

注意:

BLE上电后默认不启动配网广播。

只有收到 MCU 配网指令后才进入配网状态。


3. 配网流程

3.1 用户触发配网

功能说明

用户长按设备按键进入配网。

流程:

用户操作
 ↓
MCU检测按键
 ↓
MCU发送配网指令
 ↓
BLE开启配网广播
 ↓
网关连接
 ↓
完成配网

3.2 MCU通知BLE进入配网

MCU → BLE

字段 内容
命令 0x10
参数 配网模式+配网超时时间

BLE收到后:

  1. 清除旧连接状态;

  2. 开启BLE广播;

  3. 等待APP或网关连接。


4. BLE联网成功流程

4.1 获取MCU版本信息

功能说明

BLE完成联网后,获取MCU版本信息并上传服务器。

流程:

BLE联网成功
↓
BLE请求MCU版本
↓
MCU返回版本
↓
BLE组合自身版本信息
↓
上传服务器

版本信息:

类型 示例
BLE版本 V1.0.0
MCU固件版本 V1.0.0
硬件版本 V1.0.0

说明:

服务器出厂时已保存设备版本,因此该上报主要用于版本同步和调试。


5. BLE状态同步机制

功能说明

BLE实时同步当前通信状态给 MCU。

BLE → MCU

状态字段:

状态 描述
Bit0 已完成配网
Bit1 已连接互联网(云)
Bit2 APP 在线
Bit3 手机已连接 BLE
Bit4 OTA 升级中
Bit5 配网模式中
Bit6~Bit7 Reserved

例如:

设备断电重新启动:

BLE启动
↓
检测保存的配网信息
↓
发送回连广播
↓
成功连接网关
↓
BLE通知MCU:设备已完成配网

6. BLE与MCU心跳机制

6.1 心跳检测

功能说明

检测 BLE 与 MCU UART通信是否正常。

规则:

  • BLE超过55秒没有收到 MCU 数据;

  • BLE主动发送心跳。


BLE → MCU

心跳请求

字段 内容
命令 0x12
序号 Seq

MCU → BLE

心跳回复

字段 内容
命令 0x13
状态 执行结果

6.2 心跳异常

判断:

发送心跳
↓
等待回复
↓
失败
↓
次数+1
↓
连续3次失败

进入异常状态。


7. MCU通信异常报警

7.1 BLE内部异常记录

BLE保存:

参数 说明
异常类型 MCU通信异常
时间 时间戳

7.2 报警上报协议

BLE → Server

序号 字段名称 字节长度 内容说明
1 包头 2 固定 0x55AA
2 包长度 2 len(命令...校验和)
3 命令 1 0x12
4 序列号 1 数据包序列号
5 Error Code 1 错误码
6 校验和 1 和校验(包长度...校验和前一个字节)

错误码定义:

错误码 描述
0x01 MCU通信超时
0x02~0xFF 预留

离线处理

如果:

BLE未联网

则:

BLE保存报警记录
↓
等待BLE重新联网
↓
主动补报服务器

8. APP通信流程

功能说明

设备完成配网后:

BLE作为透明传输通道。

APP
↓
BLE
↓
MCU
------------
MCU
↓
BLE
↓
APP

BLE不解析业务数据。


9. 摄像功能控制

9.1 MCU控制录像/拍照

流程:

MCU
↓
BLE
↓
迈科网关协议
↓
网关
↓
摄像头执行

BLE收到MCU命令:

  • 开启录像;

  • 停止录像;

  • 拍照。

按照迈科协议转换发送。


10. 音频播放功能

功能说明

MCU通知BLE播放指定Flash音频。

流程:

MCU发送音频编号
↓
BLE查询Flash
↓
播放对应音频

例如:

音频ID:
001 开机声音
002 报警声音
003 完成声音

11. OTA升级流程

11.1 OTA类型

OTA分为:

类型 说明
MCU OTA MCU固件升级
BLE OTA BLE固件升级

11.2 MCU OTA流程

流程:

APP发送OTA请求
↓
BLE判断类型
↓
MCU OTA
↓
转发升级

BLE处理:

删除OTA类型字段:

APP OTA协议
↓
MCU OTA协议

升级数据流程

APP发送数据包
↓
BLE
↓
MCU


MCU应答
↓
BLE转发APP
↓
APP继续发送下一包

升级完成:

MCU

  1. 校验MD5

  2. 保存固件;

  3. 重启;

  4. 切换固件。

成功:

MCU OTA完成通知
↓
BLE + 类型
↓
APP

BLE增加:

OTA类型 = MCU

11.3 BLE OTA流程

流程:

APP
↓
BLE判断OTA类型
↓
BLE自身升级

BLE

  1. 回复包长度;

  2. 接收数据;

  3. 校验;

  4. 写入Flash

  5. 重启。

完成:

BLE发送:

OTA完成通知
OTA类型 = BLE

12. OTA异常处理

异常 处理
数据超时 重新请求
MD5失败 升级失败
断电 恢复升级
BLE断链 保存进度
MCU升级失败 上报失败

13. BLE直连模式

场景:

网关离线
↓
网关断开BLE
↓
APP扫描设备广播
↓
APP直接连接BLE
↓
控制设备

BLE支持:

  • 回连广播;

  • APP直连;

  • 数据透传。


14. 总体流程总结

BLE上电
↓
获取MCU身份信息
↓
生成设备广播信息
↓
等待MCU配网指令
↓
开启配网广播
↓
连接网关
↓
获取MCU版本
↓
上传服务器
↓
状态同步MCU
↓
APP数据透传
↓
业务控制
↓
OTA升级
↓
异常监控