tag 标签: 空中升级

相关帖子
相关博文
  • 热度 20
    2015-9-24 07:06
    3745 次阅读|
    1 个评论
    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      
  • 热度 24
    2015-9-24 07:01
    2177 次阅读|
    2 个评论
    BLE  空中升级谈   -- CC2541  的产品开发中 OAD 注意事项     现在的智能设备(可穿戴,智能家居,智能玩具等)是越来越多了,大公司的产品颜值高,功能强大而完备的应该说是比比皆是,这里不谈论它是满足所谓的刚性需求。许多新 (shan) 创 (zhai) 公司做的产品就只能凭一面之缘了,要是喜欢你就买下,反正后面觉得哪里不好,用着不爽就扔掉便是,看官自是不缺这几十一百块钱。比如像小米的一代手机  Mi BNAD (现售 69 ) , 电子称 Mi Scale (现售 99 )。虽说便宜事实上这确是匠心之作,就本人了解,从空中升级来看,它们就很棒,设备它的目前的程序存在严重问题,或者它的功能在现有硬件资源还能进行合理的扩增,小米会在后续推出相应的 firmware ,就算产品已经到了用户手上也可以得到升级,这一切都是免费的,甚至是不知不觉的,要不怎么说相信大公司呢。所以有着完美主义情节的在下总觉得空中升级就应该是此类设备必备的功能(之一)。   前言说小米是大公司,产品有带空中升级,话外音就是想说当前市面上许多众筹,或者外贸品牌转内销,一些刚开创的小牌产品,基于快速上市这一当前市场的最高原则,几乎把这个“不 (hen) 起 (zhong) 眼 (yao) ”的功能给选择性忽略了。话说在这里,不怕砖块。事实上这个功能之于产品是非常重要的, 对于这些很容易就被弃之不用的小物件是极重 / 相当重要的!   这么重要的功能,如何开发呢,以低功耗蓝牙来说,本人最早自 TI BLE Stack 1.4.0 开始了解,也基于这里开始开发。而这个版本的协议栈,就已经自带了空中升级的例程,并且编写了相当不错的 boot ,这是从 IC 原厂的角度来看,也是 IC 原厂的态度,一个小的 智能设备 本来就应当具备空中升级。没错,不用怀疑,必须的特性。虽然原厂给了这么大力的支持,还是很遗憾,现在市面还是有不( zhu )少 (duo) 产品就是没有空中升级的,让人难予置信。除了 TI , 其他原厂比如 NODIC 也有,这是半导体大厂的共识。 有了这么好的基础,想演示空中升级已经是极其容易了,于是应该也出现了按照这个 demo 水准而推出的“产品”,但我没有去一一验证过,相信找找肯定还是会有的。有的产品根本没有,有的也只是一个 demo ,这让趟这行浑水的人总觉得世间坑无数,此处再添来的感慨。好了,牢骚发完,谢谢各位的耐心,我再接着讲讲这个空中升级也称 Upgarade over the air( 简记为 OTA), Over Air Download (简记为 OAD ),大概怎么来做,原谅这里也不会太详细,详细的部分各方案的开发向导中就有,可能是英文的,但也容易读懂。以 TI 的 CC2541 为例,对于其他 IC 请举一反三。   第一条 是了解原厂的空中升级方案,作为一线开发者,要达到深入的理解,只是了解还不够的。 TI 的 OAD 方案大致是使用  boot + image A + image B 这样的方式, boot 负责启动系统, image A 能更新 image B , 反过来 image B 也能更新 Image A ,这样设备就可以反复进行 OAD 了,  Image A/B 的作用是完全等同的。而通常在实际的开发中,  image B 才是设备正常使用时运行的程序 , Image A 仅是用来更新 Image B 会更好,一来安全,再者可以让 Image B 有更多的空间。按照后面的设计它们分别占用三个分区,仅 image B 区域是可以擦除的。另外还有一个区域是前面三者共同使用的,用于存储用户信息等,这个空间是共享的。具体的解读可以找度娘。 STEP BY STEP 1,  http://bbs.ednchina.com/BLOG_ARTICLE_3019402.HTM   干货在后面。 未完待续。。。