搜索
bottom↓
回复: 1

SYD8801 OTA说明【提高OTA速度】【手环方案OTA方法】

[复制链接]

出0入0汤圆

发表于 2018-5-10 23:45:30 | 显示全部楼层 |阅读模式
SYD8801是一款低功耗高性能蓝牙低功耗SOC,集成了高性能2.4GHz射频收发机、32位ARM Cortex-M0处理器、128kB Flash存储器、以及丰富的数字接口。SYD8801片上集成了Balun无需阻抗匹配网络、高效率DCDC降压转换器,适合用于可穿戴、物联网设备等。具体可咨询:http://www.syd-tek.com/


SYD8801 OTA相关说明

    SYD8801的OTA原理是主机通过特定的UUID通道发送OTA升级文件的数据到SYD8801中,然后SYD8801把主机发送过来的数据保存到芯片内部的flash空间中!
    要使用SYD8801的OTA功能,要进行的操作十分简单,主要是三步:
    1.在代码中加入《ota.c》
     2.在ble_gatt_write函数中增加对BLE_SERVICE_UUID_OTA_READ_WRITE的OTA UUID通道的处理
     3.在service.txt中加入OTA的主要服务以及相关配置
      代码中修改如下:

    UUID配置如下:



    此时手机连接上蓝牙后可以用master看到OTA服务的相关配置如下:

   
    4.修改蓝牙广播名或者修改APP识别的设备广播名使APP识别的设备名称和要升级的设备广播名称一致,这里既可以修改蓝牙设备的广播名,也可以修改APP是被的设备名称。
    A.通过修改蓝牙广播名称实现名称一致:
    A1.


    A2.


    B.通过修改APP识别的设备名称实现名称一致:

    目前SYD官方提供的OTA手机端DEMO是通过搜索“UART1”或者“UART2”这两个特定蓝牙广播来进行连接并且执行OTA流程的,所以要现在代码中修改蓝牙的广播名为“UART1”或者“UART2”。打开APP后界面如下:


    连接上之后UPDATE按钮变成黑色可点击,这时候点击UPDATE按钮将进入OTA流程,连接上后界面如下:

    按下UPDATE按钮进入连接流程后界面如下:

    OTA更新完成后UPDATE按钮将变灰色,EXIT按钮将变成黑色并可点击,按下该按钮退出该APP,注意:这里只是把数据传输并且写入flash完成了,但是是不是要立即复位重启,要看SYD8801代码中的相关逻辑,代码中可以调用SystemReset函数重启设备!升级完成后界面如下:

    升级完成后新的程序往串口输出不一样的信息,代表OTA升级完成!


这里上传以上内容的SYD8801端源代码:[url]http://download.csdn.net/detail/chengdong1314/9920219[/url]
手机APP端源代码请和官方咨询索要!



提高OTA速度
    在上文中说到了SYD8801的OTA流程,但是经过实际测试之后会发现用上面的程序OTA的速度不是很理想,主要是因为OTA的时候蓝牙速度不是很快,比如SYD8801的公版手环方案在连接上后会进行降低功耗也就是降低蓝牙速度的操作,所以这里在OTA之前必须要进行提升蓝牙速度的操作!提升SYD8801速度相关文章请看:[url]http://blog.csdn.net/chengdong1314/article/details/68941988[/url]
    最简单的办法是在OTA升级流程的第一步,也就是ota.c中的ota_cmd函数的“case CMD_FW_ERASE:”分支下调用提速函数:BLSetConnectionUpdate(0);其中传入的参数0代表要把连接参数设置为OTA状态;这种方法能够提速,但是提速会有一点延迟,看到的速度将是先慢后快!
    如果要上面APP控制OTA的提速流程,保证开始OTA的时候已经提速完成,这里可以通过命令的形式来做,方法如下

    这里的思路是在OTA流程里再增加一个提升功耗的命令,当然也可以发送其他命令进行提速,只要达到提高蓝牙速度的命令即可,比如SYD8801手环方案通过FC命令提速!
    SYD8801端代码修改如下:
1.在OTA命令处理函数ota_cmd中增加提升功耗的分支CMD_BLE_SPEED,如下:

2.增加OTA提速处理函数CMD_BLE_SPEED,这里调用SetOtaConnectionUpdate函数提升蓝牙速度,如下:

3.增加OTA提速命令代码宏以及返回结构体:

4.在OTA完成的时候应该使用SystemReset命令进行软复位,但是最好在调用该命令后进行适当的延时,复位命令相关内容请看文章:[url]http://blog.csdn.net/chengdong1314/article/details/73929998[/url],如下:


到这里OTA提速流程SYD8801端代码修改完毕!
    APP端代码修改如下:
1.在OTA处理函数ProcessOTA中增加OTA提速命令的调用,如下:

void ProcessOTA(){    。。。。。。。。。。。。。。。。。。。。。。。。。    OTA_Speed_BLE();    OTA_Erase_Flash();    WriteFlash_All(ReadData);    。。。。。。。。。。。。。。。。。。。。。。。。。    EnableButton(Exit_button,true);}2.增加OTA提速处理函数OTA_Speed_BLE,如下:public void OTA_Speed_BLE(){    byte [] WriteData = new byte[2];    WriteData[0] = CMD_BLE_SPEED;    WriteData[1] = 0x00;    Current_Command = CMD_BLE_SPEED;    Log.i(TAG, "Process OTA");    writeCharacteristic(WriteData);    readCharacteristic();}3.增加OTA提速命令代码全局变量:
至此安卓APP端代码修改完毕!

根据上面提及的测试流程测试结果截图如下:



这里可以看到单OTA流程完成后确实有软复位的操作!

至此OTA提速流程完毕!


这里上传本节提到的SYD8801端源代码:[url]http://download.csdn.net/detail/chengdong1314/9923012[/url]
因为android-studio的安装包太大,所以这里上传到百度云盘,请从如下地址下载:[url]http://pan.baidu.com/s/1dFw7vCt[/url]
这里上传测试APP:[url]http://download.csdn.net/download/chengdong1314/9957566[/url]

手机APP端源代码请和官方咨询索要!


手环方案OTA方法

    目前SYD官方的手环方案APP支持了OTA功能!
    IOS端OTA流程如下:



    Android端OTA流程如下:
1.把OTA升级固件拷贝到手机主目录下,注意这里是主目录


    2.打开APP连接上蓝牙,选择OTA文件并确认:

     3. 选择OTA文件后将进入OTA流程,如下:


      4.进度条走完后,OTA流程结束,程序OTA成功,程序自动复位启动,程序已经改变了:


出0入0汤圆

发表于 2018-5-11 07:50:43 | 显示全部楼层
这个SYD8801 什么价格?
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-5 03:23

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表