zoukankan      html  css  js  c++  java
  • BLE空中升级 谈(二)

    BLE 空中升级谈

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

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

    编号

    名称

    Hex

    用法

    1

    Cc2540 dongle

    CC2540_USBdongle_HostTestRelease_All.hex

    直接插在电脑上使用,驱动程序是ccxxxx_usb_cdcusb作为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

    23

    电脑与模块连接,可借助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 BTI-BLE Stack 1.4.0当中的SimpleBLEPeripheral工程有个CC254x-OAD-Img B选项,原封不动的编译生成一个bin文件就好了。它就是接下来空中升级的主角,为了说明,我们不妨给生成的文件取名为imgBSample.bin

     传输imgBSample.bin的时间在各个组合里是不一样的。通常生成的bin文件也就刚过100kb,使用BLE传输完成它,这几个平台都可能要34分钟,区别不大。但若使用原生的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 界面

    图一 Newbit Bluetooth LE OAD Tool 界面

      

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

      

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

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

    Platform

    connInterval

    SlaveLatency

    Timeout

    Win10

    48

    0

    960

    MIUI 6

    39

    0

    700

    IOS 8.3

    24

    0

    72

  • 相关阅读:
    【零基础】量子纠缠图像问世,简单解读实验原理
    【零基础】一文读懂CPU(从二极管到超大规模集成电路)
    【零基础】搞定LAMP(linux、apache、mysql、php)环境安装图文教程(基于centos7)
    【零基础】Selenium:Webdriver图文入门教程java篇(附相关包下载)
    【零基础】快速入门爬虫框架HtmlUnit
    【零基础】speech driven animation中文安装使用指南
    【零基础】斯坦福四足机器人DIY指引
    【零基础】为什么Facebook发币就不一样
    【零基础】彻底搞懂51单片机各种型号(ATMEL系列)
    【零基础】简单说说一键果体APP的AI
  • 原文地址:https://www.cnblogs.com/newbit/p/smartdeviceoad2.html
Copyright © 2011-2022 走看看