蓝牙固件升级是使用手机给固件进行更新,以达到修复bug,完善功能的做用。升级的大概流程是:首先,当手环的固件须要升级时,由嵌入式开发人员提供新的固件,由服务器管理人员将固件放到服务器上,此时,用户打开手机APP的时候会检测到服务器有更新,请求更新手环固件,确认更新后,手机会从服务器下载固件。下载完毕后,APP会读取固件内容,并根据升级协议将内容传到手环里,完成升级。服务器
各个蓝牙设备不尽相同,如下是我测试设备的升级流程:测试
从云端下载的固件为.bin后缀的文件,文件名会有必定的格式,含有固件版本号和文件CRC32校验值。cdn
规定一个数据块大小好比2048字节,而后把升级数据进行分块,不够的就剩余多少做为一块。蓝牙一次发送的数据量是有限的,因此每次发送20字节的数据。这个数据要遵循升级数据格式,带指令头和校验和,下载包的数据只是这20字节中的一部分。全部包内数据都携带在每条升级数据指令中。blog
蓝牙升级最复杂的就在升级过程,大量的数据与蓝牙交互,这时最好记录发送到升级数据的那一部分,能够给用户展现升级的进程。进程