BLE空中升级 谈(二)

BLE 空中升级谈

-- CC2541 的产品开发中OAD注意事项(续)

TI CC2541支持多个硬件,多个软件对它进行空中升级,可以有不同的组合,硬件有


编号


名称


Hex


用法


1


Cc2540 dongle


CC2540_USBdongle_HostTestRelease_All.hex


直接插在电脑上使用,驱动程序是ccxxxx_usb_cdc,usb作为CDC串口使用。


2


Cc2541 module


CC2541_SmartRF_HostTestRelease_All.hex


需要一个USB->UART,或者RS232->UART接口板,连接模块的P02,P03(UART0)


3


Cc2540 module


CC2540_SmartRF_HostTestRelease_All.hex


需要一个USB->UART,或者RS232->UART接口板,连接模块的P02,P03(UART0)

目前可以使用的软件有


编号


名称


平台


可用硬件


用法


验证


A


BLE device monitor


Windows PC


2,3


电脑与模块连接,可借助RS232-UART,或者USB-UART接口板,连接上以后的操作见软件使用向导。



B


BLE device monitor


Android


BLE android 手机


apk文件没有找到



C


Bluetooth LE OAD tool


Windows 8/10 带 BLE


BLE win8 / win10 电脑,可用dongle


将boot + imageA写入目标设备后,在系统设置/蓝牙中绑定设备,如果要输入PIN的话,输“0”,之后运行app,刷新列表后可以选定目标开始升级。



D


TI BLE Multitool


iOS


iPhone4s以上(含)


点此查看


以A2的组合来实现空中升级是比较容易凑齐硬件的,只是要注意A的串口配置,不要带流控,若是A1组合,则可以在ti.com找到很详细的说明,也可点这里。其他的软件基本可以相应平台直接运行, 不需要额外的硬件。

硬件齐备之后,准备一个可以用来升级的image B,TI-BLE Stack 1.4.0当中的SimpleBLEPeripheral工程有个CC254x-OAD-Img B选项,原封不动的编译生成一个bin文件就好了。它就是接下来空中升级的主角,为了说明,我们不妨给生成的文件取名为imgBSample.bin。

传输imgBSample.bin的时间在各个组合里是不一样的。通常生成的bin文件也就刚过100kb,使用BLE传输完成它,这几个平台都可能要3到4分钟,区别不大。但若使用原生的Image A,在windows 8/10就差不多要18分钟。这是非常慢的。想要缩短这个时间,密决就是调整连接参数。本人使用Bluetooth LE OAD Tool (WIN 10),简单测试过连接参数对传输时间的影响,大致如下。


序号


连接间隔

connInterval


SlaveLatency


Timeout


OAD耗时

Time


说明


1


6


1


50


3:27


2


48


0


960


18:00


Windows默认


3


11


0


50


4:58


4


6


0


50


Failed


5


7


0


50


Failed


6


8


0


50


3:49

注:这里的连接间隔1代表1.25ms

图一 Newbit Bluetooth LE OAD Tool 界面

传输完成后,系统自动重启,然后运行imgBSample.bin这个程序。但通常也会遇到如下问题,传输完成了,本应自复位后运行新程序,结果一定要手动复位才能正常运行,建议使用开发板来验证,若开发板可以自动重启并正常运行,说明程序没错,接着就要检查硬件了,比如电源供电,是否有32K晶体等,具体可以参考这里

完成以上所有工作,那么你已经完整的体验了空中升级,若只是按照这样做也还是Demo, 并不是一个产品所需要的空中升级,完整的空中升级还应该有完全保护措施,比如升级的客户端身份确认, 升级失败后的处理,甚至断点断传也可考虑进来。据说nordic可以实现增量升级,可以大大地缩短升级的时间,但不清楚它具体如何实现。当然,关于这些暂时就不多说了,若见此文的你有兴趣,我们可根据本文所描绘的空中升级,在2541上做一个boot, image A的固件,外带image B的模板。

附windows 10, ios 8.3, miui 6的BLE连接参数默认值


Platform


connInterval


SlaveLatency


Timeout


Win10


48


0


960


MIUI 6


39


0


700


IOS 8.3


24


0


72

时间: 2024-10-04 03:36:27

BLE空中升级 谈(二)的相关文章

BLE空中升级 谈(一)

BLE 空中升级谈 -- CC2541 的产品开发中OAD注意事项 现在的智能设备(可穿戴,智能家居,智能玩具等)是越来越多了,大公司的产品颜值高,功能强大而完备的应该说是比比皆是,这里不谈论它是满足所谓的刚性需求.许多新(shan)创(zhai)公司做的产品就只能凭一面之缘了,要是喜欢你就买下,反正后面觉得哪里不好,用着不爽就扔掉便是,看官自是不缺这几十一百块钱.比如像小米的一代手机 Mi BNAD(现售69),电子称Mi Scale(现售99).虽说便宜事实上这确是匠心之作,就本人了解,从空

固件空中升级(OTA)与固件二次引导的原理和设计

蓝牙固件空中升级(OTA)涉及到蓝牙无线通信.固件外存分布.固件内存分布(定制链接脚本).固件二次引导等技术,须要开发者深入理解蓝牙单芯片的存储架构.启动引导流程.外存设备驱动和产品电路设计等领域知识.完整和完美地设计和实现OTA,是一名嵌入式物联网软件project师最好的技术体现. 本文以Dialog公司研发的号称全球最低功耗蓝牙单芯片DA14580平台为基础进行分析和设计,但设计思想能够推广到其它蓝牙单芯片平台,甚至也适用于wifi固件空中升级. 一.OTA意义 固件空中升级是如此重要,在

浅谈二维中的树状数组与线段树

一般来说,树状数组可以实现的东西线段树均可胜任,实际应用中也是如此.但是在二维中,线段树的操作变得太过复杂,更新子矩阵时第一维的lazy标记更是麻烦到不行. 但是树状数组在某些询问中又无法胜任,如最值等不符合区间减法的询问.此时就需要根据线段树与树状数组的优缺点来选择了. 做一下基本操作的对比,如下图. 因为线段树为自上向下更新,从而可以使用lazy标记使得矩阵的更新变的高校起来,几个不足就是代码长,代码长和代码长. 对于将将矩阵内元素变为某个值,因为树状数组自下向上更新,且要满足区间加法等限制

DevExpress v15.1:DevExtreme控件升级(二)

HTML 5/JS控件增强 1.1 无障碍 DevExtreme HTML5/JS控件现在包含WAI-ARIA标记并支持屏幕阅读器. 1.2 字体图标 我们已经改进了图标库并支持将图标作为一种字体,这使您能够瞬间定制图标.此外,您现在可以轻松地使用第三方字体icons - Bootstrap glyph icons.Font Awesome和Ionic icons. 1.3 HTML5数据网格 (1)Excel导出 现在您可以将在HTML5/JS数据网格控件中显示的数据导出到一个Excel文件中

通达OA 一次通达升级的二三事

这不最近OA使用发现有几个问题:工作流设置强制合并和强制并发时不能转交,工作流中的附件会自动复制繁殖,造成附件就有好几十屏打开时跟死机一样,通过咨询通达公司可以通过省级的办法解决,看来他们也发现了这样的问题,还好已经有解决方案. 从通达官网上下载升级包,按照省级说明将文件放到相应目录,断了网线直接在服务器上操作,打开服务器的ip地址访问,上面提示点击链接进行升级,点击链接后就是没有反应,原来用的360浏览器,换了IE也是一样.通达说是浏览器的事,上次就出现过一次这样的情况,怎么办?再安装个火狐?

详解BLE 空中包格式—兼BLE Link layer协议解析

BLE有几种空中包格式?常见的PDU命令有哪些?PDU和MTU的区别是什么?DLE又是什么?BLE怎么实现重传的?BLE ACK机制原理是什么?希望这篇文章能帮你回答以上问题. 虽然BLE空中包(packet)涉及BLE协议栈link layer,L2CAP,SMP和ATT等各层次,但link layer跟空中包格式关系最紧密,掌握了BLE packet的格式,就很容易理解BLE link layer协议的工作原理,因此文章取名"详解BLE空中包格式-兼BLE link layer协议解析&qu

nRF52832 BLE_DFU空中升级OTA(三)准备升级工程(SDK14.2.0)

准备需要加入DFU功能的工程 在工程main文件services_init函数中加入DFU服务 1 uint32_t err_code; 2 3 // Initialize the async SVCI interface to bootloader. 4 err_code = ble_dfu_buttonless_async_svci_init(); 5 //APP_ERROR_CHECK(err_code); 6 if(NRF_ERROR_NO_MEM != err_code) 7 { 8

DICOM医学图像处理:WEB PACS初谈二,图像的传输

背景: 如前一篇专栏博文所述,借助于CGI或FastCGI技术转发浏览器发送过来的用户请求,启动本地的DCMTK和CxImage库响应.然后将处理结果转换成常规图像返回到浏览器来实现Web PACS.本博文通过实际的代码測试来验证这一模式的可行性,同一时候对C语言编写CGI脚本提出了一些问题. 难题: 计划參照DCMTK自带工具dcm2pnm.exe的源代码.通过DicomImage将DCM文件转换成BMP文件,然后利用CGI技术返回到浏览器.实现一次简单的WEB PACS的影像传输模拟.详细的

Android BLE 蓝牙编程(二)

大家中秋快乐啊--哈哈,今天继续工程项目吧! 上篇我们已经实现了蓝牙设备的扫描,本篇我们来通过list展示扫描到的设备并 实现点击连接. 先贴出上篇的完整的MainActivity的方法: package com.wbnq.shouhuan; import android.bluetooth.BluetoothAdapter; import android.bluetooth.BluetoothDevice; import android.bluetooth.BluetoothManager;