一种蓝牙设备的固件兼容方法及装置与流程

文档序号:20273216发布日期:2020-04-03 19:18阅读:208来源:国知局
一种蓝牙设备的固件兼容方法及装置与流程

本发明涉及蓝牙设备技术领域,特别是涉及一种蓝牙设备的固件兼容方法及装置。



背景技术:

目前越来越多的新技术应用于人们的生活,无线网络的出现,更是使得物联网,智能家居等领域快速崛起。自从低功耗蓝牙ble和蓝牙mesh技术出来后,智能家居又有了更好的发展。在智能家居领域,会用到各种家用设备和一些检测的设备,如智能灯,智能开关,智能门锁等。对于这些的设备在整个智能家居或者是物联网中,由于设备种类多,所要维护的软件版本固件也多。过多的软件在维护上,需要增加空间的存储,增加开发人员去定时维护,还有售后的故障维护等等。为了减轻软件的维护成本,针对采用同一款蓝牙芯片应用在不同的硬件上,如何能做到同一个固件兼容所有的设备变成尤为重要。

固件兼容如果是同一种芯片的,不同的设备,正常来说是要不同的软件。但是如果设备众多,就会出现软件版本众多,不但维护起来也就比较麻烦,而且也容易出现使用软件出错。针对固件做兼容的主要方法是采用多个端口硬件电阻选择,软件识别处理的方式,这种方案就是需要硬件上做特殊的处理,如采用几个不同的gpio端口,外接电阻上拉到电源或者是下拉到地,从而组成不同的数值,如采用两个端口的选择就可以是二进制的00-11四种不同的电平,也就是可以是识别出四种硬件,然后再加上软件固件上的识别处理,软件上电时就根据电平的不同来选择运行不同的软件,如果增加端口就可以增加支持更多的设备。这种方案是最常用的一种方式,但是会增加硬件gpio端口,针对一些芯片gpio端口本来就少的情况就会导致端口不足,并且由于端口都是有限的,也不可能使用过多的端口来处理,这就导致在数量多的类型时无法处理,无法兼容数量多的硬件。

因此如何能让一个固件支持多个设备是亟待解决的问题。



技术实现要素:

本发明的目的是提供一种蓝牙设备的固件兼容方法及装置,以实现固件支持多种设备。

为解决上述技术问题,本发明提供一种蓝牙设备的固件兼容方法,包括:

在蓝牙设备上电后,读取存储在寄存器中的标识符;

依据所述标识符获取蓝牙设备的设备类型,在固件中查找与所述设备类型对应的软件分支;

执行所述软件分支。

优选的,所述在蓝牙设备上电后,读取存储在寄存器中的标识符之前,还包括:

对于每一个蓝牙设备,设置蓝牙设备的设备类型对应的标识符,将标识符写入到寄存器中。

优选的,所述将标识符写入到寄存器中之后,还包括:

对写入到寄存器中的标识符启用只读保护处理。

优选的,所述固件包括多个软件分支。

本发明还提供一种蓝牙设备的固件兼容装置,用于实现上述方法,包括:

读取模块,用于在蓝牙设备上电后,读取存储在寄存器中的标识符;

查找模块,用于依据所述标识符获取蓝牙设备的设备类型,在固件中查找与所述设备类型对应的软件分支;

执行模块,用于执行所述软件分支。

优选的,所述装置还包括:

写入模块,用于对于每一个蓝牙设备,设置蓝牙设备的设备类型对应的标识符,将标识符写入到寄存器中。

优选的,所述写入模块还包括:

保护单元,用于对写入到寄存器中的标识符启用只读保护处理。

优选的,所述固件包括多个软件分支。

本发明所提供的一种蓝牙设备的固件兼容方法及装置,在蓝牙设备上电后,读取存储在寄存器中的标识符;依据所述标识符获取蓝牙设备的设备类型,在固件中查找与所述设备类型对应的软件分支;执行所述软件分支。可见,蓝牙设备上电后,首先读出之前写入的设备类型的数值即标识符,然后跟软件即固件中定义的类型做判别,再执行对应的设备类型的软件分支,这个过程采用纯软件识别的处理方式,不需要修改硬件,不需要做硬件上的改动,不会多使用硬件端口,既能适用于单一设备的软件,也能满足大量不同的蓝牙设备上软件兼容的问题,实现一个固件支持多种设备,并且将多个软件分支集成到一个固件中,大大降低了软件的维护成本。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1为本发明所提供的一种蓝牙设备的固件兼容方法的流程图;

图2为蓝牙固件写入流程图;

图3为蓝牙固件识别流程图;

图4为本发明所提供的一种蓝牙设备的固件兼容装置结构示意图。

具体实施方式

本发明的核心是提供一种蓝牙设备的固件兼容方法及装置,以实现固件支持多种设备。

为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

请参考图1,图1为本发明所提供的一种蓝牙设备的固件兼容方法的流程图,该方法包括以下步骤:

s11:在蓝牙设备上电后,读取存储在寄存器中的标识符;

s12:依据标识符获取蓝牙设备的设备类型,在固件中查找与设备类型对应的软件分支;

s13:执行软件分支。

可见,该方法中,蓝牙设备上电后,首先读出之前写入的设备类型的数值即标识符,然后跟软件即固件中定义的类型做判别,再执行对应的设备类型的软件分支,这个过程采用纯软件识别的处理方式,不需要修改硬件,不需要做硬件上的改动,不会多使用硬件端口,既能适用于单一设备的软件,也能满足大量不同的蓝牙设备上软件兼容的问题,实现一个固件支持多种设备,并且将多个软件分支集成到一个固件中,大大降低了软件的维护成本。

基于上述方法,进一步的,步骤s11之前还包括以下步骤:

s21:对于每一个蓝牙设备,设置蓝牙设备的设备类型对应的标识符,将标识符写入到寄存器中。

详细的,将标识符写入到寄存器中之后,对写入到寄存器中的标识符启用只读保护处理。

其中,固件包括多个软件分支。一个软件分支对应一个设备类型,是一个用于驱动蓝牙设备的程序,即为一个驱动这个设备类型对应的蓝牙设备的程序软件。固件为驱动程序即一个软件,将多个软件分支集成到一个固件中,表示一个软件包括多个软件分支。一个固件有多个软件分支即多个驱动程序软件,大大降低了软件的维护成本。

详细的,标识符由三个字母和一个数字组成,即采用三位字母和一位数字的组合,用于代表不同的设备类型。第一个字母代表公司,例如采用字母k表示公司,第2个字母代表设备的主类型,例如传感器采用字母s,门锁门铃采用字母l,第3个字母表示设备具体型号或者标准,例如人体热释电红外传感器pir就采用字母p,门铃采用字母b。由于设备类型众多,名称接近的比较多,为了避免重复,不管是主类型还是辅助类型字母有的就没有办法跟原来的设备一致。比如插座是soket,首字母跟传感器sensor一样,sensor用了s,socket就不能用了,就从a-z中取一个别的没有用的字母。第4位数字代表有一些细节的型号,或者是不同的厂家设备,默认是为1,因此一个完整的设备类型的名称如pir传感器的是用ksp1。

将标识符这四位的数值存到flash存储器中或者是一些特殊的给用户使用的寄存器中。上电时会先读取这四个字节的内容,根据之前已经定义好的类型做判别,然后就可以识别出具体的设备类型。软件根据具体的设备类型就可以执行不同的软件分支。由三个字母和一位数字组成的型号,这个组合的数量就能达到很多,足够兼容大量的设备类型。如果使用更多的字节表示,那就可以扩张更多的设备类型。由于一般蓝牙的模块的容量有限,因此一般四个字节的组合足够使用了。

详细的,步骤s21是设备类型写入流程,本方法中软件兼容是依靠设备的不同类型来区分,而这个设备的类型是在生产时写进去的。首先是要定义好各种设备的类型对应的数值,生产时首先是根据硬件的类型,选择对应的设备类型数值输入进去,然后是由生产软件或者是其它的烧录工具写到flash或者是用户寄存器的一个预先定义好固定的位置,且该位置是特殊的支持只读保护的位置,写完后再进行启用只读保护,避免被破坏,图2为蓝牙固件写入流程图。

详细的,步骤s11至s12为类型识别流程。主要是系统上电后,首先执行必要的时钟初始化后,再进行flash或者是寄存器初始化,读出之前写入的设备类型的数值,然后跟软件中定义的类型做判别,然后执行对应的设备类型的软件分支,再由不同的软件分支去执行其它对应的初始化上电流程,这个流程速度较快且不需要做硬件上的改动,图3为蓝牙固件识别流程图。

本方法既能适用于单一设备的软件,也能满足大量不同的蓝牙设备上软件兼容的问题。大大降低了软件的维护成本,且能本方法不仅仅可以适用于蓝牙的设备,还可推广应用到其它的需要做软件兼容的电子产品设备。对开发公司和工厂生产,还有售后设备维护都起到一定的节省软件维护成本的作用。

本方法节省软件维护成本,一版软件能兼容所有同一种芯片的不同硬件。给开发公司和工厂生产,还有售后设备维护都带来不可估量的成本节约效果。

请参考图4,图4为本发明所提供的一种蓝牙设备的固件兼容装置结构示意图,用于实现上述方法,该装置包括:

读取模块101,用于在蓝牙设备上电后,读取存储在寄存器中的标识符;

查找模块102,用于依据标识符获取蓝牙设备的设备类型,在固件中查找与设备类型对应的软件分支;

执行模块103,用于执行软件分支。

可见,该装置中,蓝牙设备上电后,首先读出之前写入的设备类型的数值即标识符,然后跟软件即固件中定义的类型做判别,再执行对应的设备类型的软件分支,这个过程采用纯软件识别的处理方式,不需要修改硬件,不需要做硬件上的改动,不会多使用硬件端口,既能适用于单一设备的软件,也能满足大量不同的蓝牙设备上软件兼容的问题,实现一个固件支持多种设备,并且将多个软件分支集成到一个固件中,大大降低了软件的维护成本。

基于上述装置,进一步的,还包括:

写入模块,用于对于每一个蓝牙设备,设置蓝牙设备的设备类型对应的标识符,将标识符写入到寄存器中。

进一步的,写入模块还包括:保护单元,用于对写入到寄存器中的标识符启用只读保护处理。

其中,固件包括多个软件分支。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质中。

以上对本发明所提供的一种蓝牙设备的固件兼容方法及装置进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。

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