一种基于软件APP技术的蓝牙设备固件升级方法及系统与流程

文档序号:11206861阅读:1359来源:国知局
一种基于软件APP技术的蓝牙设备固件升级方法及系统与流程

本发明涉及蓝牙低能耗技术应用领域,特别涉及一种基于软件app技术的蓝牙设备固件升级方法及系统。



背景技术:

随着低功耗蓝牙ble技术的日益成熟,ble在智能设备以及智能控制中得到了广泛地应用。所述设备可以是支持有ble协议的智能盒子、智能蓝牙音箱或者智能灯等。然而,厂家通常因业务需要会针对某款ble设备的固件进行更新,用于修复缺陷和添加功能,因此ble设备的固件经常需要根据实际需求升级。但是,目前由于ble设备一般不具有互联网能力,用户在为ble设备升级的时,需要拆机,然后使用专用升级工具烧录固件,该方法纯属人工操作,不仅操作不方便,还会导致ble设备外观受损,有时甚至拆坏ble设备。

中国发明专利申请公开号为106210102a,该专利公开了基于蓝牙ble的无线升级手柄固件的方法及装置,获取手柄的当前版本信息,并从固件服务器获取最新版本,然后通过ble发送数据包。然而,申请人发现,专利申请公开号为106210102a的方法存在以下不足之处:

1)、上述方法中ble服务并没有使用特定的服务,易与手柄的控制指令混淆;升级固件需从服务器获取,该方法对app的网络功能具有依赖性。

2)、上述方法中只是对每包数据进行检验,没有对异常处理,而ble传输因设备的兼容性,及每次传输的数据小而需要分很多数据包后,会比较容易出现丢包的情况,经常app传输完成,但设备没升级成功,导致升级成功率低。

3)、上述方法中数据传输与操作的连接间隔没有区分开,考虑功耗的因素,在仅有控制指令存在的情况下,需要使用比较长的连接间隔,而固件升级时,需要设置比较小的连接间隔,否则会影响升级效率。



技术实现要素:

本发明所要解决的技术问题是:提供一种基于软件app技术的蓝牙设备固件升级方法及系统,能克服旧式三种方法的弊端,是目前蓝牙设备固件升级等行业广泛应用的趋势。

为解决上述技术问题,本发明提供一种基于软件app技术的蓝牙设备固件升级方法及系统,包括智能设备、数据分析处理软件app和蓝牙设备ble。其中智能设备为手机、平板电脑等;蓝牙设备ble对外进行蓝牙通讯;其中智能设备上安装数据分析处理软件app;

进一步优化,智能设备通过蓝牙通信模块间的近距离通信;来接收蓝牙设备ble的通讯;

进一步优化,数据分析处理软件app与蓝牙设备ble建立连接后实现数据交换。

进一步优化,数据分析处理软件app获取蓝牙设备ble设备通讯后分析确定是否具有固件无线升级功能。

数据分析处理软件app检测蓝牙设备ble设备所具备的服务,以具备先约定好的升级服务为判断条件,含有该服务,就说明该设备具有无线升级的功能;若蓝牙设备ble设备不具备该服务,则数据分析处理软件app将拒绝给蓝牙设备ble设备进行固件升级。

进一步优化,数据分析处理软件app设置蓝牙设备ble数据传输的连接间隔,

数据分析处理软件app在连接升级服务成功后,设置升级数据包传输连接间隔,数据分析处理软件app与蓝牙设备ble在正常控制或数据交互时,使用连接间隔比较长的参数,这样可以有效降低蓝牙设备ble的功耗,但在升级数据包传输时,启用连接间隔短的数据,可以提高数据传输速率

进一步优化,数据分析处理软件app每隔20毫秒下发一包数据,整个传输最稳,出现的丢包率小。若是因智能设备原因引起的数据包发不出去,采用延时再次发送的方法,如原本数据分析处理软件app间隔20毫秒发送一包数据,当数据包发送不出去时,首次延时100毫秒再次发送,若还是发不出去,再次延时300毫秒发送数据,还是发不出去,则再次延时1000毫秒发送数据。在启动数据下发时,开启传输异常监听,用于处理异常数据的再次发送。

进一步优化,蓝牙设备ble对每个收到的数据包进行校验,判断数据的有效性和有连续性,若出现数据异常,如收到的数据包序号不连续或数据校验与数据分析处理软件app下发的不一致,则通知数据分析处理软件app数据异常,并携带异常数据包序号。

进一步优化,蓝牙设备ble接收完所有数据,即最后的数据包序号与之前发的长度相同,且所有数据检验也一致,则通知数据分析处理软件app数据接收完成,反之,通知app异常。

进一步优化,数据分析处理软件app接收到蓝牙设备ble通知数据接收完成后的消息,含异常消息,数据分析处理软件app根据所接收到的消息做下一步指令。

进一步优化,基于软件app技术的蓝牙设备固件升级方法及系统的工作步骤:

a、智能设备的数据分析处理软件app与ble设备建立蓝牙设备ble连接;

b、智能设备的数据分析处理软件app获取蓝牙设备ble是否具有固件无线升级功能;

c、智能设备的数据分析处理软件app设置蓝牙设备ble数据传输的连接间隔;

d、智能设备的数据分析处理软件app获取蓝牙设备ble当前固件信息;

e、智能设备的数据分析处理软件app根据当前蓝牙设备ble的固件信息选择本地或服务器的新固件文件;

f、智能设备的数据分析处理软件app下发新固件版本信息及文件长度;

g、智能设备的数据分析处理软件app下发升级数据包,开启异常监听;

h、蓝牙设备ble检验接收到的数据,若有异常,通知智能设备的数据分析处理软件app;

i、智能设备的数据分析处理软件app对异常数据包的处理;

j、蓝牙设备ble接收完所有数据数据并检验,结果通知智能设备的数据分析处理软件app;

k、智能设备的数据分析处理软件app接收数据传输完成通知,并根据结果下发指令;

l、蓝牙设备ble接收重启指令后重启设备,升级完成。

采用了上述技术方案后,本发明的有益效果是:

相对于现有的技术方案,提供一种快捷方便的利用常用的移动终端进行自动升级的方法及系统,解决现有相关技术中的因设备兼容性问题导致升级失败,升级过程繁琐且耗时的技术问题,提高传输数据的可靠性,大大方便用户使用。

附图说明

图1是基于软件app技术的蓝牙设备固件升级方法及系统工作模块图

图2是基于软件app技术的蓝牙设备固件升级方法及系统工作流程图

具体实施方式

下面结合附图1至附图2和具体实施例对本发明进行详细描述,但不作为对本发明的限定。

如附图1至附图2所示,一种基于软件app技术的蓝牙设备固件升级方法及系统,包括智能设备、数据分析处理软件app和蓝牙设备ble。其中智能设备为手机、平板电脑等;蓝牙设备ble对外进行蓝牙通讯;其中智能设备上安装数据分析处理软件app;智能设备通过蓝牙通信模块间的近距离通信;来接收蓝牙设备ble的通讯;数据分析处理软件app与蓝牙设备ble建立连接后实现数据交换。数据分析处理软件app获取蓝牙设备ble设备通讯后分析确定是否具有固件无线升级功能;

如图1所示的系统,包括智能设备、数据分析处理软件app和蓝牙设备ble,以一台智能手机和一台智能蓝牙设备ble音箱为例。

请参阅图2,为本发明实施例提供的一种基于app技术的ble设备固件升级方法及系统的实现流程,其主要包括以下步骤:

s101智能设备的数据分析处理软件app搜索蓝牙设备ble的ble模块,并进行连接;

在本发明实施例中,所述蓝牙设备ble可以为智能盒子、智能蓝牙音箱或者智能灯等,通过能设备的数据分析处理软件app打开蓝牙,搜索蓝牙设备ble,并建立连接后,可实现能设备的数据分析处理软件app与蓝牙设备ble的数据交互。

s102智能设备的数据分析处理软件app获取蓝牙设备ble是否具有固件无线升级功能;

在本发明实施例中,能设备的数据分析处理软件app开始检测蓝牙设备ble设备所具备的服务,以具备先约定好的升级服务为判断条件,含有该服务,就说明该设备具有无线升级的功能;若蓝牙设备ble不具备该服务,则app将拒绝给蓝牙设备ble进行固件升级。

s103智能设备的数据分析处理软件app设置蓝牙设备ble数据传输的连接间隔;

在本发明实施例中,数据分析处理软件app在连接升级服务成功后,设置升级数据包传输连接间隔,数据分析处理软件app与蓝牙设备ble在正常控制或数据交互时,使用连接间隔比较长的参数,这样可以有效降低蓝牙设备ble设备的功耗,但在升级数据包传输时,启用连接间隔短的数据,可以提高数据传输速率,格式如:0x04,0xa1,0x01,(min_interval),(max_interval)。

s104智能设备的数据分析处理软件app获取蓝牙设备ble当前固件信息;

在本发明实施例中,数据分析处理软件app根据约定下发读取蓝牙设备ble当前固件信息的指令,蓝牙设备ble接收到读取固件信息的指令后,以约定的格式回复app,信息格式如:uint16ver,uint16len,uint8uid[4],其中ver表示版本,len表示数据长度,uid表示版本号信息。

s105智能设备的数据分析处理软件app根据当前蓝牙设备ble的固件信息选择本地或服务器的新固件文件;

在本发明实施例中,智能设备的数据分析处理软件app根据蓝牙设备ble当前的固件信息匹配服务器或本地的新固件,若服务有新固件,则app先把固件下载到本地;app选择新固件,同时记录当前的路径,下次或给另一个台设备升级时,直接定位保存的路径,若没有找到相应的固件,则定位到根目录,此步骤特意不做版本号比较,避免设备出现不能回退之前版本的问题。

s106智能设备的数据分析处理软件app下发新固件版本信息及文件长度;

在本发明实施例中,智能设备的数据分析处理软件app按约定下发新固件版本信息及文件长度,用于ble设备做接收固件完整检验。

s107智能设备的数据分析处理软件app下发升级数据包,开启异常监听;

在本发明实施例中,由于蓝牙设备ble数据传输每包的大小受限制(一次最多20个字节),所以一个文件要分多包发送,发送数据格式:2bytes包号+16bytes内容+2bytescrc。crc检验算法如下:

u_int16crc16(u_int8*pd,u_int32len)

{

u_int32i,j;

u_int8ds;

u_int16crc=0xffff;

staticu_int16poly[2]={0,0xa001};

for(j=len;j>0;j--)

{

ds=*pd++;

for(i=0;i<8;i++)

{

crc=(crc>>1)^poly[(crc^ds)&1];

ds=ds>>1;

}

}

returncrc;

}

经过大量的手机测试发现,app每隔20毫秒下发一包数据,整个传输最稳,出现的丢包率小。若是因智能手机原因引起的数据包发不出去,采用延时再次发送的方法,如原本app间隔20毫秒发送一包数据,当数据包发送不出去时,首次延时100毫秒再次发送,若还是发不出去,再次延时300毫秒发送数据,还是发不出去,则再次延时1000毫秒发送数据。在启动数据下发时,开启传输异常监听,用于处理异常数据的再次发送。

s108蓝牙设备ble检验接收到的数据,若有异常,通知智能设备的数据分析处理软件app;

在本发明实施例中,蓝牙设备ble对每个收到的数据包进行校验,判断数据的有效性和有连续性,若出现数据异常,如收到的数据包序号不连续或数据校验与app下发的不一致,则通知app数据异常,并携带异常数据包序号。

s109智能设备的数据分析处理软件app对异常数据包的处理;

在本发明实施例中,智能设备的数据分析处理软件app接收到蓝牙设备ble通知的异常消息后,提取出异常包的序号,根据序号重新按格式组织数据,并下发。

s110蓝牙设备ble接收完所有数据数据并检验,结果通知智能设备的数据分析处理软件app;

在本发明实施例中,蓝牙设备ble接收完所有数据,即最后的数据包序号与之前发的长度相同,且所有数据检验也一致,则通知app数据接收完成,反之,通知app异常,按约定,整个升级结果有:0x00:成功;0x01:校验错误;0x02:丢包;0x03:数据无效;0x04:固件无效。

s111智能设备的数据分析处理软件app接收数据传输完成通知,并根据结果下发指令;

在本发明实施例中,智能设备的数据分析处理软件app接收到蓝牙设备ble通知数据接收完成后的消息,含异常消息,数据分析处理软件app根据所接收到的消息做下一步指令,如:当接收到数据接收成功的消息,下发设备重启指令,若接收到数据异常的消息时,则ui上提示用户,用户可自行判断是否要再次操作升级。

s112蓝牙设备ble接收重启指令后重启设备,升级完成;

在本发明实施例中,若蓝牙设备ble升级完没有通知智能设备的数据分析处理软件app而自动重启,那么可能出现智能设备的数据分析处理软件app不知道升级成功的消息,则会让用户产生误解,所以,ble设备在接收到智能设备的数据分析处理软件app下发的重启指令,重启设备,确保让用户知道升级结果。

由技术常识可知,本技术方案可以通过其它的不脱离其精神实质或必要特征的实施方案来实现。因此,上述公开的实施方案,就各方面而言,都只是举例说明,并不是仅有的。所有在本发明范围内或在等同于本发明的范围内的改变均被本发明包含。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1