CN108365973B - 用于在虚拟隧道上进行传输的方法和设备 - Google Patents
用于在虚拟隧道上进行传输的方法和设备 Download PDFInfo
- Publication number
- CN108365973B CN108365973B CN201810034925.6A CN201810034925A CN108365973B CN 108365973 B CN108365973 B CN 108365973B CN 201810034925 A CN201810034925 A CN 201810034925A CN 108365973 B CN108365973 B CN 108365973B
- Authority
- CN
- China
- Prior art keywords
- fota
- target device
- firmware
- module
- communication link
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0803—Configuration setting
- H04L41/0813—Configuration setting characterised by the conditions triggering a change of settings
- H04L41/082—Configuration setting characterised by the conditions triggering a change of settings the condition being updates or upgrades of network functionality
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
- G06F8/654—Updates using techniques specially adapted for alterable solid state memories, e.g. for EEPROM or flash memories
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/02—Standardisation; Integration
- H04L41/0233—Object-oriented techniques, for representation of network management data, e.g. common object request broker architecture [CORBA]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/12—Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
- H04L67/125—Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks involving control of end-device applications over a network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/34—Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W8/00—Network data management
- H04W8/22—Processing or transfer of terminal data, e.g. status or physical capabilities
- H04W8/24—Transfer of terminal data
- H04W8/245—Transfer of terminal data from a network towards a terminal
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/02—Standardisation; Integration
- H04L41/0213—Standardised network management protocols, e.g. simple network management protocol [SNMP]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Databases & Information Systems (AREA)
- Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- General Health & Medical Sciences (AREA)
- Medical Informatics (AREA)
- Stored Programmes (AREA)
Abstract
一种用于在虚拟隧道上进行传输的方法和设备。一种用于在空中更新目标装置中的固件的电子装置包含调度模块和空中固件FOTA核心。所述调度模块经配置以在所述电子装置与所述目标装置之间建立通信链路。所述FOTA核心经配置以经由所述所建立的通信链路接收对应于更新后的固件的信息。
Description
相关申请的交叉参考
本申请主张2017年1月17日递交的第62/447,268号美国临时申请的权益和优先权,所述临时申请的内容以全文引用的方式并入本文中。
技术领域
本发明涉及用于在虚拟隧道上进行传输的方法和设备,且更确切地说,涉及在虚拟隧道上提供空中固件(FOTA)、软件组件管理对象(SCOMO)和/或锁定和擦拭管理对象(LAWMO)的方法和设备。
背景技术
一旦电子装置已经得到运送或部署,则更新电子装置的固件或软件是具有挑战性的。在电子装置已经传递到消费者的手中之后,升级固件(例如,通过FOTA)或软件(例如,通过SCOMO)可以提供软件内的错误修正并且提供新的功能。
固件是嵌入于电子装置中的计算机程序。实际上,固件升级可以改进性能和可靠性并且甚至修改电子装置的可用的功能,并且固件更新可以确保硬件的运行保持当前趋势和兼容性。
一般而言,固件或软件升级或更新是指允许嵌入于电子装置中的软件得到更新(例如,无线地)的过程。举例来说,FOTA允许压缩且在空中传输到电子装置并且随后解压缩且应用于所述装置的固件更新的创建。
发明内容
在一些实施例中,提供用于在空中更新目标装置中的固件的电子装置。所述电子装置包含调度模块和空中固件(FOTA)核心。调度模块经配置以在电子装置与目标装置之间建立通信链路。FOTA核心经配置以经由所建立的通信链路接收对应于更新后的固件的信息。
在一些实施例中,FOTA系统包含第一调度模块和FOTA模块。第一调度模块经配置以在第一调度模块与服务器之间建立通信链路。FOTA模块包含第二调度模块和FOTA核心。第二调度模块经配置以在第一调度模块与第二调度模块之间建立通信链路。FOTA核心经配置以接收对应于固件的信息。
在一些实施例中,用于更新FOTA的方法包含:(a)在FOTA模块与装置之间建立通信链路;(b)通过硬件接口连接FOTA模块与所述装置;以及(c)通过FOTA模块通过所建立的通信链路接收对应于固件的信息。
附图说明
当结合附图阅读时,从以下具体实施方式易于理解本发明的一些实施例的方面。应注意,各种结构可能未按比例绘制,且各种结构的尺寸可出于论述的清楚起见而任意增大或减小。
图1说明用于更新目标装置中的固件的比较的系统。
图2说明根据本发明的一些实施例的FOTA系统。
图3说明根据本发明的一些实施例的FOTA硬件模块的框图。
图4说明根据本发明的第二方面用于操作FOTA系统的方法。
图5说明根据本发明的一些实施例的FOTA系统。
图6说明根据本发明的一些实施例的装置管理(DM)系统。
图7说明根据本发明的一些实施例的DM硬件模块的框图。
图8说明根据本发明的第二方面用于操作DM系统的方法。
图9说明根据本发明的第二方面用于操作DM系统的方法。
具体实施方式
图1说明用于更新目标装置120中的固件的比较系统100。目标装置120可以是智能手机、平板电脑、物联网(IoT)装置或其它电子装置。目标装置120经由传输网络在空中媒体上与服务器110(例如,FOTA服务器)无线地通信。目标装置120包含无线通信模块121,所述无线通信模块可以是WiFi模块、3G模块、4G长期演进(LTE)模块、ZigBee模块、蓝牙模块或其它通信模块。目标装置120包含FOTA核心122。FOTA核心122是经配置以在目标装置120中执行固件的升级的软件或应用程序,其存储在快闪存储器123或其它非易失性存储器中。FOTA核心122包含FOTA客户端1221和更新代理1222。FOTA客户端1221经配置以遵循通信协议(例如,开放移动联盟(OMA)协议)从服务器110中下载更新后的固件。更新代理1222经配置以使用目标装置的硬件资源在目标装置120中执行固件的升级。
为了允许在系统100中升级FOTA,FOTA核心122得到开发并且被集成到目标装置120中。由于FOTA核心122是相对地复杂的,所以将FOTA核心122集成到目标装置120中可以是相当大的负担。目标装置120可以在不同操作系统中操作,这些操作系统可以包含WINDOWS、ANDROID、LINUX、MAC等等,且所述目标装置可具有不同硬件规范,并且FOTA核心122的集成可以涉及FOTA核心122的重新编译和重新设计以用于不同操作系统和不同硬件规范。因此,在系统100中升级FOTA涉及针对系统集成的较低效率和较高开销。
此外,系统100中的FOTA升级受到目标装置120的现有硬件资源的限制。目标装置120可能并不具有足够的硬件资源(例如,处理器的受限制的电力和操作速度以及RAM和快闪存储器的受限制的存储器容量)来执行FOTA操作。因此,在无有线连接的情况下目标装置120的功能可能无法得到扩展或者软件错误可能无法通过升级固件而得到校正。
图2说明根据本发明的一些实施例的FOTA系统200。FOTA系统200包含服务器210(例如,FOTA服务器)、目标装置220和FOTA硬件模块230。
在一些实施例中,目标装置220可以是智能手机、平板电脑、IoT装置或其它电子装置。目标装置220包含对应于FOTA硬件模块230中的调度器232的调度器(在本文中也被称作“调度模块”)222。目标装置220可以包含对应于FOTA硬件模块230的更新代理233更新代理(在本文中也被称作“更新模块”)223,并且可以从目标装置的存储器224中检索信息以用于执行更新操作。更新代理223和/或更新代理233可经配置以基于对应于更新后的固件的信息产生更新后的固件,和/或传输更新后的固件。目标装置220经由传输网络在空中媒体上与服务器210无线地通信。目标装置220包含无线通信模块221(或连接模块),所述无线通信模块可以是WiFi模块、3G模块、4G LTE模块、ZigBee模块、蓝牙模块或其它通信模块。在一些实施例中,无线通信模块221可以由有线通信模块(例如,以太网或缆线)替换。目标装置220可以包含可以存储调度器222的存储器224(例如,快闪存储器)。
FOTA硬件模块230包含FOTA客户端231、调度器232、更新代理233和存储器234。FOTA客户端231经配置以遵循例如OMA协议从服务器210中下载更新后的固件。更新代理233经配置以在目标装置220中执行固件的升级。存储器234经配置以存储调度器232(其包含链路管理器2321和接口抽象层2322)以及FOTA核心255(其包含FOTA客户端231和更新代理233)。在一些实施例中,FOTA硬件模块230的调度器232可以包含私有密钥,而目标装置220的调度器222可以包含公共密钥。如果公共密钥和私有密钥匹配,那么可以在FOTA硬件模块230的调度器232与目标装置220的调度器222之间建立通信链路。
在一些实施例中,FOTA硬件模块230可为与目标装置220间隔开的电子组件(例如,集成电路(IC))。替代地,FOTA硬件模块230可为集成到目标装置220中的电子组件(例如,IC)并且可存取与目标装置220的硬件资源间隔开的其自身的硬件资源。FOTA硬件模块230可通过硬件接口240(例如,通用串行总线(USB)、通用异步接收器-发射器(UART)、集成电路间(I2C)总线等等)与目标装置220通信。这避免了目标装置220上的复杂的软件开发和流线系统集成。用于FOTA操作的传送的数据可以使用目标装置220与FOTA硬件模块230中的配对的调度器(例如,调度器222和232)在目标装置220与FOTA硬件模块230之间的硬件接口240上传输。
服务器210与FOTA硬件模块230之间的通信链路包含虚拟隧道260以允许升级FOTA。举例来说,服务器210与FOTA硬件模块230之间的通信链路包含服务器210与目标装置220之间的通信链路250,并且是通过至少使用目标装置220的无线通信模块221的无线接口、目标装置220与FOTA硬件模块230之间的硬件接口240以及目标装置220与FOTA硬件模块230之间的虚拟隧道260创建的。虚拟隧道260通过目标装置220中的调度器222和FOTA硬件模块230中的调度器232创建。虚拟隧道260可以响应于匹配上述公共密钥和私有密钥的目标装置220和/或FOTA硬件模块230创建。
在一些实施例中,虚拟隧道260可以易于通过集成通信协议261、安全协议262和加密/解密协议263中的一或多个而创建(例如,替代于将FOTA核心255集成到目标装置中)。目标装置220中的调度器222和FOTA硬件模块230中的调度器232相应地包含链路管理器2221、2321和接口抽象层2222、2322。下文中进一步解释了链路管理器2221、2321和接口抽象层2222、2322(例如,用于应用程序接口(API)集成)的功能。FOTA硬件模块230使用虚拟隧道260,其利用目标装置220的连接性功能来通过服务器210执行认证以用于升级FOTA。FOTA操作可通过使用FOTA硬件模块230中的FOTA核心255执行。通过利用虚拟隧道260,可以改进FOTA核心与服务器210之间的通信。
FOTA硬件模块230使用目标装置220的连接性功能来建立连接并且通过服务器210执行认证。FOTA硬件模块230使用虚拟隧道260以在无线接口与硬件接口240上建立与服务器210的连接,并且可能因此省略额外的连接或额外的资源。一旦连接建立,则FOTA硬件模块230可以针对目标装置220执行FOTA操作。在一些实施例中,可以使用以下各项中的一或多个建立虚拟隧道260上的通信:1)通信协议261(其可以包含例如协议转换、包重定向和数据压缩);2)安全协议262(其可以包含例如握手协议、流控制和命令行接口);以及3)加密/解密协议263(例如,高级加密标准(AES)加密/解密)。
如前文所述,目标装置220中的调度器222和FOTA硬件模块230中的调度器232中的每一个包含链路管理器2221或2321和接口抽象层2222或2322。链路管理器2221、2321建立虚拟隧道260,并且还实施通信协议261、安全协议262和加密/解密协议263以用于FOTA操作的数据传输。链路管理器2221、2321还处理不同接口(例如,接口抽象层内的无线接口与硬件接口)之间的通信、协商和变换。接口抽象层2222、2322操作以降低不同硬件接口与链路管理器2221、2321之间的通信的复杂度,并且将标准API提供到链路管理器2221、2321。
图3说明根据本发明的一些实施例的FOTA硬件模块300的框图。在一些实施例中,FOTA硬件模块300与图2中的FOTA硬件模块230相同。替代地,FOTA硬件模块300与图2中的FOTA硬件模块230不同。FOTA硬件模块300包含硬件接口310、处理器320、第一存储器330(例如,快闪存储器)和第二存储器340(例如,随机存取存储器(RAM)),它们是例如通过总线连接的。第二存储器340经配置以存储调度器350(其包含链路管理器351和接口抽象层352)以及FOTA核心360(其包含FOTA客户端361和更新代理362)。第一存储器330经配置以存储调度器350和FOTA核心360的至少一个执行的例子。调度器350和/或FOTA核心360可以暂时存储在第一存储器330中并且通过处理器320执行。
图4说明根据本发明的一些实施例用于操作FOTA系统400的方法。FOTA系统400包含服务器410、目标装置420和FOTA硬件模块430。在一些实施例中,图4中的FOTA系统400与图2中的FOTA系统200相同。举例来说,服务器410、目标装置420和FOTA硬件模块430相应地与图2中的服务器210、目标装置220和FOTA硬件模块230相同。图4示出了过程S41到S49。某些组件是相对于图4描述的并且可经配置以执行过程S41到S49。
参考S41,目标装置420中的调度器初始化虚拟隧道的设置。
参考S42,目标装置420中的调度器通知FOTA硬件模块430虚拟隧道就绪。
参考S43,在从目标装置420中的调度器中接收通知之后,FOTA硬件模块430中的调度器确认虚拟隧道就绪。可以建立虚拟隧道。
参考S44,FOTA硬件模块430中的FOTA客户端初始化FOTA操作。举例来说,FOTA硬件模块430中的FOTA客户端将请求发送到服务器410。
参考S45,服务器410认证来自FOTA硬件模块430中的FOTA客户端的初始化(例如,请求)。
参考S46,在认证之后,服务器410产生、准备或检索固件升级包。固件升级包包含对应于固件的版本的信息(例如,固件的下一个版本或新固件)。在一些实施例中,固件升级包可以包含delta包或完整包。举例来说,delta包包含指示新固件与固件的当前版本(旧固件)之间的差异的信息。在一些实施例中,完整包包含用于建立新固件的信息。
参考S47,FOTA硬件模块430中的FOTA客户端从服务器410中接收或下载固件升级包。在一些实施例中,FOTA硬件模块430中的FOTA客户端验证固件升级包。在一些实施例中,固件升级包可以存储于目标装置420或FOTA硬件模块430的存储器中(例如,取决于目标装置420和FOTA硬件模块430的存储器的剩余的存储空间)。举例来说,如果FOTA硬件模块430的存储器的剩余的存储空间不足以存储固件升级包,那么固件升级包将被下载并且存储于目标装置420的存储器中。类似地,如果目标装置420的存储器的剩余的存储空间不足以存储固件升级包,那么固件升级包将被下载并且存储于FOTA硬件模块430的存储器中。
参考S48,FOTA硬件模块430中的更新代理使用固件升级包和旧固件(其可以存储在目标装置420中)以产生新固件并且将新固件发送到目标装置420。
参考S49,目标装置420中的本地闪存代理通过新固件升级目标装置420。
在一些实施例中,图2中的FOTA系统200的FOTA核心255或图4中的FOTA系统400升级FOTA核心中的FOTA客户端和更新代理。举例来说,FOTA客户端和更新代理的升级包含用户的规范、误差的校正和/或添加新功能。在一些实施例中,用于在FOTA客户端与服务器之间通信的协议(例如,OMA DM协议)的版本也可以通过虚拟隧道来升级。
在比较性FOTA系统中,FOTA核心经编译以与目标装置的操作系统兼容。FOTA核心的应用程序与目标装置集成(经由API集成),随后是FOTA协议应用程序的实施、系统集成和集成验证级。根据图2中的FOTA系统200或图4中的FOTA系统,FOTA硬件模块可以提供标准API,其缓解软件开发者使FOTA操作适应于目标装置的负担。由于大量的FOTA操作通过FOTA硬件模块执行,所以可以省略FOTA核心的编译。FOTA协议应用程序和系统集成的操作集成在FOTA硬件模块中(例如,在IC中)。为了集成FOTA与目标装置,经由FOTA硬件模块与目标装置之间的硬件接口建立连接。之后,可以执行FOTA操作,并且FOTA硬件模块使用目标装置的连接性功能以完成FOTA操作。
FOTA硬件模块可以减轻软件开发者将FOTA核心集成到具有不同操作系统和不同硬件规范的目标装置中的负担。此外,FOTA硬件模块可以从目标装置中卸载FOTA操作,这对于具有受限制的硬件资源的目标装置来说是相当重要的。FOTA硬件模块可以使用其自身的硬件资源以支持FOTA核心的操作。因此,可以在FOTA硬件模块上执行复杂的FOTA核心,并且甚至对于没有所希望的硬件容量的那些目标装置可以实现FOTA升级。此外,FOTA硬件模块可以实施为包含具有大容量(例如,大型快闪存储器尺寸)的存储器以存储固件图像(例如,新固件)。如果存在出现在目标装置中的造成目标装置的重启或再初始化的故障的重要的系统误差,那么存储于FOTA硬件模块的存储器中的固件图像(例如,新固件)可以用于固件升级和系统恢复。
图5说明FOTA系统500以更新多个目标装置520A、520B和520C中的固件。FOTA系统500包含服务器510(例如,FOTA服务器)、多个目标装置520A、520B和520C以及FOTA硬件模块530。在一些实施例中,FOTA硬件模块530与图2中的FOTA硬件模块230、图3中的FOTA硬件模块300或图4中的FOTA硬件模块430相同。
如图5中所示,目标装置520A、520B和520C中的每一个相应地包含调度器5201A、5201B和5201C。目标装置520B包含无线通信模块5202B(或连接模块),所述无线通信模块可以是WiFi模块、3G模块、4G LTE模块、ZigBee模块、蓝牙模块或其它通信模块。目标装置520A和520C可以省略无线通信模块。在一些实施例中,目标装置520B的无线通信模块5202B可以由有线通信模块(例如,以太网或缆线)替换。
FOTA硬件模块530包含FOTA核心5301和调度器5302。FOTA硬件模块530通过硬件接口(例如,USB/UART、I2C等等)连接到目标装置520B,并且经配置以通过目标装置520B与服务器510之间的通信链路以及FOTA硬件模块530与目标装置520B之间的通信链路建立FOTA硬件模块530与服务器510之间的虚拟隧道。在建立虚拟隧道之后,FOTA硬件模块530经配置以从服务器510中下载固件升级包(例如,新固件)并且将固件升级包存储在FOTA硬件模块530的存储器中。FOTA硬件模块530进一步经配置以使用新固件升级目标装置520B的旧固件。随后FOTA硬件模块530通过硬件接口(例如,USB/UART、I2C等等)连接到目标装置520A或目标装置520C(并且可以从目标装置520B断开)。由于新固件已经存储于FOTA硬件模块530的存储器中,所以FOTA硬件模块530可经配置以使用新固件在不将目标装置520A或目标装置520C连接到服务器510的情况下升级目标装置520A或目标装置520C的旧固件。在图5中所示的实施例中,FOTA硬件模块530用作网关或FOTA模块中心,其经配置以在不将目标装置连接到服务器的情况下使用存储于FOTA硬件模块的存储器中的新固件来升级多个目标装置。
图6说明根据本发明的一些实施例的装置管理(DM)系统600。DM系统600包含服务器610(例如,DM服务器)、目标装置620和DM硬件模块630。
目标装置620包含对应于DM硬件模块630的调度器632的调度器622。调度器622可以包含链路管理器6221、执行代理6222和接口抽象层6223。目标装置620经由传输网络在空中媒体上与服务器610无线地通信。目标装置620包含无线通信模块621(或连接模块),所述无线通信模块可以是WiFi模块、3G模块、4G LTE模块、ZigBee模块、蓝牙模块或其它通信模块。在一些实施例中,无线通信模块621可以由有线通信模块(例如,以太网或缆线)替换。目标装置620可以包含存储器(例如,快闪存储器)以存储调度器622。在一些实施例中,目标装置220可以是智能手机、平板电脑、IoT装置或其它电子装置,并且多个软件或应用程序(例如,SW1、SW2、SW3……SWN)可以安装在其上。在一些实施方案中,目标装置620可以包含对应于DM硬件模块630的更新代理633的更新代理623。更新代理623可以从目标装置620的存储器中检索固件信息(例如,新固件信息和/或旧固件信息)以实施更新操作。
DM硬件模块630包含DM核心631、调度器632、更新代理633。The更新代理633可以从目标装置620的存储器中检索信息(例如,更新包或目标装置软件组件信息)以实施更新操作。在一些实施例中,DM核心631可以包含DM客户端、DM固件更新管理对象(FUMO)、DM SCOMO和/或DM LAWMO。调度器632包含链路管理器6321、解释代理6322和接口抽象层6323。在一些实施例中,DM核心631和调度器632存储于DM硬件模块630的存储器(例如,快闪存储器)中。
在一些实施例中,解释代理6322经配置以对关于目标装置620的软件或应用程序的信息的请求进行编码和/或将关于目标装置620的软件或应用程序的信息的请求传输到执行代理6222。在一些实施例中,目标装置620的软件或应用程序的对应的信息是安装在目标装置620上的软件或应用程序的列表。在一些实施例中,执行代理6222经配置以检索和/或编码对应于目标装置620的软件或应用程序的信息并且将经编码信息发送到解释代理6322。
在一些实施例中,DM硬件模块630可为与目标装置620间隔开的电子组件(例如,集成电路(IC))。替代地,DM硬件模块630可为集成到目标装置620中可存取与目标装置620的硬件资源间隔开的其自身的硬件资源的电子组件(例如,IC)。DM硬件模块630可通过硬件接口640(例如,USB/UART、I2C等等)与目标装置620通信。这可以有助于避免目标装置620上的复杂的软件开发和流线系统集成。使用目标装置620和DM硬件模块630中的配对的调度器,用于FUMO、SCOMO或LAWMO操作的传送的数据可以在目标装置620与DM硬件模块630之间的硬件接口上传输。
服务器610与DM硬件模块630之间的通信链路包含虚拟隧道以用于FUMO、SCOMO和/或LAWMO操作。举例来说,服务器610与DM硬件模块630之间的通信链路是通过使用目标装置620的连接模块621的无线接口和目标装置620与DM硬件模块630之间的硬件接口640创建的。在一些实施例中,目标装置620与DM硬件模块630之间的虚拟隧道可以易于创建(并且可以包含例如通信协议641、安全协议642和加密协议643)。因此,可以省略目标装置中的DM核心。目标装置620中的调度器622和DM硬件模块630中的调度器632相应地包含链路管理器6221、6321以及接口抽象层6223、6323。在下文中进一步解释了链路管理器6221、6321和接口抽象层6223、6323的功能(例如,用于API集成)。DM硬件模块630使用虚拟隧道,其利用目标装置620的连接性功能以通过服务器610执行认证以用于执行装置管理(例如,FUMO、SCOMO或LAWMO操作)。可通过使用DM硬件模块630中的DM核心631执行装置管理。通过利用虚拟隧道,可以改进DM核心631与服务器610之间的通信。
DM硬件模块630使用目标装置620的连接性功能来建立连接并且通过服务器610执行认证。DM硬件模块630使用虚拟隧道以通过服务器610在无线接口和硬件接口640上建立连接,并且可能因此省略额外的连接或额外的资源。一旦连接建立,则DM硬件模块630可以执行用于目标装置620的装置管理操作。在一些实施例中,可以使用以下各项中的一或多个建立虚拟隧道上的通信:1)通信协议641(其包含例如协议转换、包重定向和数据压缩);2)安全协议642(其包含例如握手协议、流控制和命令行接口);以及3)加密/解密协议643(例如,高级加密标准(AES)加密/解密)。
目标装置620中的调度器622包含链路管理器6221、执行代理6222和接口抽象层6223。DM硬件模块630中的调度器632包含链路管理器6321、解释代理6322和接口抽象层6323。链路管理器6221、6321在其间建立虚拟隧道,并且还实施通信协议641、安全协议642和加密/解密协议643以用于FUMO、SCOMO或LAWMO操作的数据传输。链路管理器6221、6321还执行不同接口(例如,接口抽象层内的无线接口与硬件接口)之间的通信、协商和变换。接口抽象层6223、6323操作以降低不同硬件接口与链路管理器6221、6321之间的通信的复杂度,并且将标准API提供到链路管理器6221、6321。
图7说明根据本发明的一些实施例的DM硬件模块700的框图。在一些实施例中,DM硬件模块700与图6中的DM硬件模块630相同。替代地,DM硬件模块700与图6中的DM硬件模块630不同。DM硬件模块700包含硬件接口710、处理器720、第一存储器730(例如,快闪存储器)和第二存储器740(例如,RAM),它们是例如通过总线连接的。第二存储器740经配置以存储调度器750(其包含链路管理器751和接口抽象层752)和DM核心760(其包含DM客户端761和DM FUMO、DM SCOMO和/或DM LAWMO 762)。在一些实施例中,调度器750可以进一步包含解释代理。第一存储器730经配置以存储调度器750和DM核心760的至少一个执行的例子。调度器750和/或DM核心760可以暂时存储在第一存储器730中并且通过处理器720执行。
图8说明根据本发明的一些实施例用于操作如图6所示的DM系统600的方法。图8示出了过程S801到S818。某些组件是相对于图8描述的并且可经配置以执行过程S801到S818。
参考S801,目标装置620中的调度器622设置虚拟隧道。
参考S802,目标装置620中的调度器622通知DM硬件模块630虚拟隧道就绪。
参考S803,在从目标装置620中的调度器622中接收通知之后,DM硬件模块630中的调度器632确认虚拟隧道就绪。
参考S804,DM硬件模块630的DM核心631中的DM客户端初始化SCOMO操作。举例来说,DM硬件模块630的DM核心631中的DM客户端将请求发送到服务器610。
参考S805,服务器610认证来自DM硬件模块630的DM核心631中的DM客户端的初始化(例如,请求)。
参考S806,DM硬件模块630的DM核心631中的DM SCOMO将对目标装置620的软件或应用程序的对应的信息的请求发送到解释代理6322。在一些实施例中,目标装置620的软件或应用程序的对应的信息是安装在目标装置620上的软件或应用程序的列表。在一些实施例中,请求可以在预定时间处自动地发送。在一些实施例中,请求可以在DM硬件模块630连接到目标装置620时发送。在一些实施例中,请求可以基于来自用户的输入发送。
参考S807,DM硬件模块630的调度器632中的解释代理6322对从DM硬件模块630的DM核心631中的DM SCOMO中接收到的请求进行编码,并且将经编码请求发送到目标装置620的调度器622中的执行代理6222。
参考S808,目标装置620的调度器622中的执行代理6222对从DM硬件模块630的调度器632中的解释代理6322中接收的经编码请求进行解码。
参考S809,目标装置620的调度器622中的执行代理6222检索和编码对应于目标装置620的软件或应用程序的信息,并且将经编码信息发送到DM硬件模块630的调度器632中的解释代理6322。
参考S810,DM硬件模块630的调度器632中的解释代理6322对经编码信息进行解码并且将对应于目标装置620的软件或应用程序的信息发送到DM硬件模块630的DM核心631中的DM SCOMO。
参考S811,服务器610通过虚拟隧道将SCOMO控制发送到DM硬件模块630。
参考S812,DM硬件模块630的DM核心631中的DM SCOMO从服务器610中接收SCOMO控制。
参考S813,DM硬件模块630的DM核心631中的DM SCOMO答复SCOMO控制并且将对应于目标装置620的软件或应用程序的信息传输到服务器610。
参考S814,服务器610从DM硬件模块630的DM核心631中的DM SCOMO中接收包含对应于目标装置620的软件或应用程序的信息的回复。
参考S815,服务器610基于来自DM硬件模块630的DM核心631中的DM SCOMO中的回复产生、准备或检索软件(或应用程序)组件包并且将软件(或应用程序)组件包发送到DM硬件模块630。
参考S816,DM硬件模块630的DM核心631中的DM SCOMO从服务器610中接收软件(或应用程序)组件包。
参考S817,DM硬件模块630的调度器632中的解释代理6322对软件(或应用程序)组件包进行编码并且将经编码软件(或应用程序)组件包发送到目标装置620。
参考S818,目标装置620的调度器622中的执行代理6222对经编码软件(或应用程序)组件包进行解码并且更新目标装置620的软件或应用程序。
在一些实施例中,可以取决于设计规范省略S811和S812。在一些实施例中,可以取决于设计规范在S813之后执行S806、S807、S808、S809和S810。
图9说明根据本发明的一些实施例用于操作如图6所示的DM系统600的方法。图9示出了过程S91到S99。某些组件是相对于图9描述的并且可经配置以执行过程S91到S99。
参考S91,目标装置620中的调度器622设置虚拟隧道。
参考S92,目标装置620中的调度器622通知DM硬件模块630虚拟隧道就绪。
参考S93,在从目标装置620中的调度器622中接收通知之后,DM硬件模块630中的调度器632确认虚拟隧道就绪。
参考S94,DM硬件模块630的DM核心631中的DM客户端初始化LAWMO操作。举例来说,DM硬件模块630的DM核心631中的DM客户端将请求发送到服务器610。
参考S95,服务器610认证来自DM硬件模块630的DM核心631中的DM客户端的初始化(例如,请求)。
参考S96,服务器610通过虚拟隧道将LAWMO控制发送到DM硬件模块630。
参考S97,DM硬件模块630的DM核心631中的DM LAWMO从服务器610中接收LAWMO控制。
参考S98,DM硬件模块630的调度器632中的解释代理6322对LAWMO控制进行编码并且将经编码LAWMO控制发送到目标装置620。
参考S99,目标装置620的调度器622中的执行代理6222对经编码LAWMO控制进行解码并且执行对应的动作(例如,LAWMO操作)。
在比较性DM系统中,DM核心经编译以与目标装置的操作系统兼容。DM核心的应用程序与目标装置集成(经由API集成),随后是DM协议应用程序、系统集成和集成验证级。根据图6中的DM系统600,DM硬件模块630可以提供标准API,其缓解软件开发者使SCOMO或LAWMO操作适应于目标装置的负担。由于大量的SCOMO或LAWMO操作在DM硬件模块630中执行,所以可以省略DM核心的编译。DM协议应用程序和系统集成的操作集成在DM硬件模块(例如,IC)中。为了将DM集成到目标装置中,经由DM硬件模块与目标装置之间的硬件接口建立连接。之后,可以执行SCOMO或LAWMO操作,并且DM硬件模块使用目标装置的连接性功能以完成SCOMO或LAWMO操作。
DM硬件模块可以减轻软件开发者将DM核心集成到具有不同操作系统和不同硬件规范的目标装置中的负担。此外,DM硬件模块可以从目标装置中卸载SCOMO或LAWMO操作,这对于具有受限制的硬件资源的目标装置来说是相当重要的。DM硬件模块可以使用其自身的硬件资源以支持DM核心的操作。因此,可以在DM硬件模块上执行复杂的DM核心,并且甚至对于那些没有必需的硬件容量的目标装置也可以实现SCOMO或LAWMO操作。此外,DM硬件模块可以实施为包含具有更大容量(例如,快闪存储器尺寸)的存储器以存储整个固件图像(例如,新固件)。如果存在出现在目标装置中造成目标装置的重启或再初始化的故障的重要系统误差,那么存储于DM硬件模块的存储器中的固件图像(例如,新固件)可以用于软件更新。
除非上下文另外明确规定,否则如本文所用,单数术语“一(a/an)”和“所述”可包含多个指示物。
本发明的一些实施例涉及非暂时性计算机可读存储媒体,其上具有用于执行各种计算机实施的操作的计算机代码或指令。术语“计算机可读存储媒体”用于包含能够存储或编码指令或计算机代码的序列以用于执行本文中所描述的操作、方法和技术的任何媒体。媒体和计算机代码可以是为了本发明的实施例的目的专门设计和构造的媒体和计算机代码,或者它们可以是计算机软件技术领域的技术人员可以获得的任何种类的媒体和计算机代码。计算机可读存储媒体的实例包含用于存储信息的易失性和非易失性存储器。存储器的实例包含:半导体存储器装置,例如,可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、随机存取存储器(RAM)和快闪存储器装置;盘,例如,硬盘驱动器、可移除硬盘驱动器、磁光盘、压缩光盘(CD)、数字多功能光盘(DVD)和蓝光盘、记忆棒等等。
计算机代码的实例包含例如由编译器产生的机器代码,以及由处理器使用解释器或编译器执行的含有较高级代码的文件。举例来说,本发明的实施例可以使用Java、C++、C或其它面向对象的结构编程语言和开发工具来实施。计算机代码的额外实例包含经加密代码和经压缩代码。此外,本发明的实施例可以作为计算机程序产品而下载,所述计算机程序产品可从远程装置(例如,服务器)传递到请求装置(例如,客户端)。本发明的另一实施例可以代替于处理器可执行软件指令或与处理器可执行软件指令结合而在硬接线电路系统中实施。
虽然已参考本发明的具体实施例描述并说明本发明,但这些描述和说明并不限制本发明。所属领域的技术人员应理解,可在不脱离如由所附权利要求书界定的本发明的真实精神和范围的情况下,作出各种改变且取代等效物。所述图式可能未必按比例绘制。归因于制造过程及容差,本发明中的艺术再现与实际设备之间可能存在区别。可能存在并未特定说明的本发明的其它实施例。应将本说明书和图式视为说明性的而非限定性的。可作出修改,以使特定情况、材料、物质组成、方法或过程适应于本发明的目标、精神以及范围。所有此类修改都意图在所附权利要求书的范围内。虽然本文中所公开的方法已参考按特定次序执行的特定操作加以描述,但应理解,可在不脱离本发明的教示的情况下组合、细分或重新排序这些操作以形成等效方法。因此,除非本文中特别指示,否则操作的次序和分组并非本发明的限制。
Claims (20)
1.一种用于在空中更新目标装置中的固件的电子装置,所述电子装置包括:
调度模块,其经配置以在所述电子装置与所述目标装置之间建立通信链路;以及
空中固件(firmware over-the-air,FOTA)核心,其经配置以经由所述所建立的通信链路接收对应于更新后的固件的信息,其中所述FOTA核心通过硬件接口与所述目标装置连接,及其中所述FOTA核心使用所述所建立的通信链路以与服务器建立连结。
2.根据权利要求1所述的电子装置,其中所述调度模块经配置藉由以下操作以在所述电子装置与所述目标装置之间建立所述通信链路:
从所述目标装置中接收信号;以及
响应于所述信号在所述电子装置与所述目标装置之间建立所述通信链路,其中所述通信链路为虚拟隧道(virtualtunnel)。
3.根据权利要求1所述的电子装置,其中所述调度模块进一步经配置以进行以下操作:
识别所述目标装置;以及
在所述目标装置的所述识别之后在所述电子装置与所述目标装置之间建立所述通信链路。
4.根据权利要求1所述的电子装置,其中所述FOTA核心进一步经配置以进行以下操作:
将请求发送到所述服务器;以及
在所述目标装置的识别之后从所述服务器中接收对应于所述目标装置的当前固件的信息。
5.根据权利要求1所述的电子装置,其中对应于所述更新后的固件的所述信息进一步包含固件升级包。
6.根据权利要求1所述的电子装置,其进一步包括经配置以基于对应于所述更新后的固件的所述信息产生所述更新后的固件的更新模块。
7.根据权利要求6所述的电子装置,其中所述更新模块进一步经配置以将所述更新后的固件发送到所述目标装置。
8.一种FOTA系统,其包括:
第一调度模块,其经配置以在所述第一调度模块与服务器之间建立通信链路;以及
FOTA模块,其包括:
第二调度模块,其经配置以在所述第一调度模块与所述第二调度模块之间建立通信链路;以及
FOTA核心,其经配置以接收对应于固件的信息,其中所述FOTA模块通过硬件接口与所述第一调度模块连接,及其中所述FOTA核心使用所述所建立的通信链路以与所述服务器建立连结。
9.根据权利要求8所述的FOTA系统,其中所述第二调度模块经配置藉由以下操作以在所述第一调度模块与所述第二调度模块之间建立所述通信链路:
从所述第一调度模块中接收信号;以及
响应于所述信号在所述第一调度模块与所述第二调度模块之间建立所述通信链路,其中所述通信链路为虚拟隧道。
10.根据权利要求8所述的FOTA系统,其中
所述第一调度模块可存取公共密钥并且所述第二调度模块可存取私有密钥;以及
所述第一调度模块与所述第二调度模块之间的所述通信链路是响应于匹配所述公共密钥和所述私有密钥建立的。
11.根据权利要求8所述的FOTA系统,其中所述FOTA核心进一步经配置以进行以下操作:
将请求发送到所述服务器;以及
在所述FOTA系统的识别之后从所述服务器中接收对应于所述固件的所述信息。
12.根据权利要求8所述的FOTA系统,其中对应于所述固件的所述信息进一步包含固件升级包。
13.根据权利要求8所述的FOTA系统,其中所述FOTA模块进一步包括经配置以基于对应于所述固件的所述信息产生所述固件并且将所述固件发送到所述第一调度模块的更新模块。
14.根据权利要求8所述的FOTA系统,其中所述第一调度模块通过无线接口与所述服务器连接。
15.一种用于更新FOTA的方法,所述方法包括:
(a)在FOTA模块与装置之间建立通信链路;
(b)通过硬件接口连接所述FOTA模块与所述装置;以及
(c)通过所述FOTA模块通过所述所建立的通信链路接收对应于固件的信息,其中所述FOTA模块通过硬件接口与所述装置连接,及其中所述FOTA模块使用所述所建立的通信链路以与服务器建立连结。
16.根据权利要求15所述的方法,其进一步包括:
在操作(a)之前识别所述装置,
其中所述FOTA模块与所述装置之间的所述通信链路是在所述装置的所述识别之后建立的,其中所述通信链路为虚拟隧道。
17.根据权利要求15所述的方法,其进一步包括:
将请求发送到服务器;以及
从所述服务器中接收对应于所述固件的所述信息,其中对应于所述固件的所述信息进一步包含delta包。
18.根据权利要求15所述的方法,其进一步包括:
通过所述FOTA模块基于对应于所述固件的所述信息产生所述固件;以及
将所述固件发送到所述装置。
19.一种用于在空中更新目标装置中的固件的电子装置,所述电子装置包括:
处理器;
存储器;
调度模块,其经配置以在所述电子装置与所述目标装置之间建立通信链路;以及
空中固件(firmware over-the-air,FOTA)核心,其经配置以经由所述所建立的通信链路接收对应于更新后的固件的固件升级包,其中所述FOTA核心通过硬件接口与所述目标装置连接,及其中所述FOTA核心进一步包括:
更新代理,其经配置以使用所述固件升级包以及储存于所述目标装置中的当前固件以产生新固件并将新固件发送到所述目标装置。
20.根据权利要求19所述的电子装置,其中所述调度模块经配置藉由以下操作以在所述电子装置与所述目标装置之间建立所述通信链路:
从所述目标装置中接收信号;以及
响应于所述信号在所述电子装置与所述目标装置之间建立所述通信链路,其中所述通信链路为虚拟隧道。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201762447268P | 2017-01-17 | 2017-01-17 | |
US62/447,268 | 2017-01-17 | ||
US15/858,954 | 2017-12-29 | ||
US15/858,954 US11070427B2 (en) | 2017-01-17 | 2017-12-29 | Method and apparatus for transmission over virtual tunnel |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108365973A CN108365973A (zh) | 2018-08-03 |
CN108365973B true CN108365973B (zh) | 2022-07-22 |
Family
ID=62841225
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810034925.6A Active CN108365973B (zh) | 2017-01-17 | 2018-01-15 | 用于在虚拟隧道上进行传输的方法和设备 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11070427B2 (zh) |
CN (1) | CN108365973B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11038966B1 (en) * | 2020-04-28 | 2021-06-15 | Arm Ip Limited | Remote device operation |
US20220350586A1 (en) * | 2021-04-30 | 2022-11-03 | Arm Cloud Technology, Inc. | Methods of Distributing Software/Firmware Updates |
US12079619B2 (en) | 2022-07-27 | 2024-09-03 | T-Mobile Usa, Inc. | Firmware-over-the-air (FOTA) update for wireless devices in an internet of things (IoT) network |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8296268B2 (en) | 2006-07-21 | 2012-10-23 | Samsung Electronics Co., Ltd. | System and method for change logging in a firmware over the air development environment |
US8726259B2 (en) | 2007-04-09 | 2014-05-13 | Kyocera Corporation | System and method for preserving device parameters during a FOTA upgrade |
WO2011095914A1 (en) * | 2010-02-04 | 2011-08-11 | Nokia Corporation | Systems, methods, and apparatuses for facilitating distribution of firmware updates |
CN101917706B (zh) | 2010-07-30 | 2014-08-13 | 中兴通讯股份有限公司 | Fota升级的处理方法及装置 |
US8433310B2 (en) * | 2010-08-19 | 2013-04-30 | At&T Mobility Ii Llc | Systems, methods, and computer program products for providing device updates to a mobile device operating in a wireless telecommunications network |
CN101924607B (zh) * | 2010-08-27 | 2013-01-23 | 华为终端有限公司 | 基于固件空中传输技术的固件处理方法、装置及系统 |
EP2647169B1 (en) * | 2010-11-29 | 2015-03-18 | NEC Europe Ltd. | Method and apparatus for performing actions on packets at intermediate nodes in a connection between a communication device and a destination device in a target network |
KR101995461B1 (ko) | 2011-12-06 | 2019-09-30 | 삼성전자주식회사 | 사용자 단말들에게 fota 서비스를 제공하는 방법 및 장치 |
-
2017
- 2017-12-29 US US15/858,954 patent/US11070427B2/en active Active
-
2018
- 2018-01-15 CN CN201810034925.6A patent/CN108365973B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
US11070427B2 (en) | 2021-07-20 |
US20180205601A1 (en) | 2018-07-19 |
CN108365973A (zh) | 2018-08-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108365973B (zh) | 用于在虚拟隧道上进行传输的方法和设备 | |
US11340885B2 (en) | Method and apparatus for updating operating system | |
US9575741B2 (en) | Methods and devices for wireless device-to-device software upgrades | |
TWI518595B (zh) | 軟體更新方法及系統以及行動裝置 | |
EP3148114A1 (en) | Device management session triggering method, device, system and computer storage medium | |
CN105682075A (zh) | 供给用于安全模块的订户资料的方法 | |
US20170063805A1 (en) | Method for transferring a file via a mobile device and mobile device for performing same | |
EP3391209B1 (en) | Method for managing objects in a secure element | |
WO2017049550A1 (zh) | 适配器和适配器升级的方法 | |
WO2023216845A1 (zh) | 嵌入式设备固件更新方法、嵌入式设备、开发端设备 | |
WO2021147668A1 (zh) | 一种软件升级方法及设备 | |
WO2020127999A1 (en) | Portable secure elements for subscription manager roles | |
CN106547602B (zh) | 一种适用于iSCSI协议远程无线加载的操作系统镜像的制作方法 | |
US11997495B2 (en) | Transfer functionality between secure elements servers | |
EP3091435A1 (en) | Resource management method and device for terminal system | |
CN103987064A (zh) | 接入点ap升级方法及装置 | |
US20210373873A1 (en) | Manifest and payload delivery | |
CN104796532A (zh) | 一种销毁移动终端的方法及装置 | |
KR102000162B1 (ko) | 저사양 기기의 소프트웨어 업데이트 지원 장치 및 방법 | |
CN112688904A (zh) | 一种安全通道建立方法、电子设备及存储介质 | |
KR20150120640A (ko) | 스마트카드의 펌웨어를 업데이트하는 방법, 장치 및 시스템 | |
CN105471594B (zh) | 管理资源的方法和设备 | |
US12095902B2 (en) | Information processing terminal, information processing device, information processing method, program, and information processing system | |
WO2016065919A1 (zh) | 传输配置信息的方法、移动终端及设备管理服务器、存储介质 | |
CN115309430A (zh) | eSIM卡操作系统升级方法、装置、eSIM卡、服务器和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |