跳到主要内容

基于Nordic芯片的蓝牙固件升级流程

保密等级:C级(秘密)

版本号修改人员修改时间修改内容
V1.0胡伟20220105初始化文档
V1.1胡伟20230223更新服务器判断逻辑

1. 概述

基于Nordic 的蓝牙固件升级流程(以下称本协议)用以规范适用于符合行者XOSS硬件开放平台的设备的固件更新,包括版本检查,固件升级的命令和数据传输。

2. 蓝牙服务和特征

2.1 命令服务

本协议是基于开放式的服务通道,服务通道UUID为:0x6E400001-B5A3-F393-E0A9-E50E24DCCA9E,在该服务下,我们定义了基础特征来完成命令控制。

特征名UUID描述属性
命令0x6E400004-B5A3-F393-E0A9-E50E24DCCA9E命令特征,用于APP和硬件之间发送和接受命令Read&Write

该特征通道将用来控制硬件设备的进入固件升级流程。

2.2 设备信息服务DIS

通过标准蓝牙设备信息服务(DIS)来获取设备当前信息,包括设备生产商,设备型号,串号,硬件版本号,固件版本号。

无论是正常模式下还是固件升级模式下,都需要提供DIS服务。

Name = 广播名称

MFN = Manufacturer Name String

SN = Serial Number String

Model = Model Number String

Hardware = Hardware Revision String

Firmware = Firmware Revision String

2.3 DFUS和ANCS

DFUS和ANCS是Nordic官方定义升级通道和消息通知通道。

服务UUID
DFUService00001530-1212-EFDE-1523-785FEABCD123
ANCSService7905F431-B5CE-4E99-A40F-4B1E122D00D0

3. 设备升级流程

3.1 设备固件版本检查流程

客户端检查流程

服务器判断流程:

  1. 通过客户端提供的生产商,型号,硬件版本号,来比对固件版本号是否需要更新;

  2. 如果需要更新则,给最新的固件给客户端。

3.2 DFU 设备获取最新固件流程

服务端判断流程:

  1. 检测请求的设备名称是否符合以下文档中的设备定义:

硬件开放平台接入指南

  1. 云端通过设备DIS信息确定型号和版本,给出最新的固件版本。

3.2 设备固件版本升级流程

  1. App端下载最新的固件

  2. 连接设备是如果处于设备正常状态,则通过DFU命令出发设备进入DFU状态,如果已经是DFU状态直接进入第四步;

  3. App端通过名称识别自动连接DFU设备;

  4. 进入Nordic DFU升级流程。