CN110784386B - 固件更新方法及相关设备 - Google Patents

固件更新方法及相关设备 Download PDF

Info

Publication number
CN110784386B
CN110784386B CN201910926093.3A CN201910926093A CN110784386B CN 110784386 B CN110784386 B CN 110784386B CN 201910926093 A CN201910926093 A CN 201910926093A CN 110784386 B CN110784386 B CN 110784386B
Authority
CN
China
Prior art keywords
mcu
data packets
numerical values
firmware
host
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
Application number
CN201910926093.3A
Other languages
English (en)
Other versions
CN110784386A (zh
Inventor
潘志伟
胡震宇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Huole Science and Technology Development Co Ltd
Original Assignee
Shenzhen Huole Science and Technology Development Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shenzhen Huole Science and Technology Development Co Ltd filed Critical Shenzhen Huole Science and Technology Development Co Ltd
Priority to CN201910926093.3A priority Critical patent/CN110784386B/zh
Publication of CN110784386A publication Critical patent/CN110784386A/zh
Application granted granted Critical
Publication of CN110784386B publication Critical patent/CN110784386B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L12/40006Architecture of a communication node
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • H04L41/0813Configuration setting characterised by the conditions triggering a change of settings
    • H04L41/082Configuration setting characterised by the conditions triggering a change of settings the condition being updates or upgrades of network functionality
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0435Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply symmetric encryption, i.e. same key used for encryption and decryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0442Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply asymmetric encryption, i.e. different keys for encryption and decryption

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本申请公开了一种固件更新方法及相关设备,应用于主机,主机与第一MCU之间通过I2C总线协议进行数据传输,第一MCU安装有第一固件,主机存储有升级第一固件的第一升级包,该方法包括:确定第一MCU的数据读写速度和主机与第一MCU的通信延时时长;基于数据读写速度和通信延时时长将第一升级包拆分成N个第一数据包;将N个第一数据包传输至第一MCU,以及向第一MCU发送固件升级指令,固件升级指令用于请求第一MCU基于N个第一数据包升级第一固件。采用本申请实施例可在使用I2C总线协议进行数据传输时,有利于成功接收升级数据进行升级。

Description

固件更新方法及相关设备
技术领域
本申请涉及投影技术领域,尤其涉及一种固件更新方法及相关设备。
背景技术
随着投影技术的不断发展,投影仪集成的功能也越来越丰富,投影仪内置的固件也需要随着技术的发展而更新迭代。目前,大部分的投影仪均包括集成电路总线(Inter-Integrated Circuit,I2C)接口,而在使用I2C总线协议进行数据传输时,投影仪在每接收到主机传输的一段数据时,无论是否成功写入存储中均会发送确认字符(Acknowledgement,ACK)确认成功。因此,在使用I2C总线协议进行数据传输时,如何确保成功接收升级数据进行升级是一个需要解决的问题。
发明内容
本申请实施例提供一种固件更新方法及相关设备,用于在使用I2C总线协议进行数据传输时,有利于成功接收升级数据进行升级。
第一方面,本申请实施例提供一种固件更新方法,应用于主机,所述主机与第一微处理单元MCU之间通过I2C总线协议进行数据传输,所述第一MCU安装有第一固件,所述主机存储有升级所述第一固件的第一升级包,所述方法包括:
确定所述第一MCU的数据读写速度和所述主机与所述第一MCU的通信延时时长;
基于所述数据读写速度和所述通信延时时长将所述第一升级包拆分成N个第一数据包,所述第一MCU读写每个第一数据包所需的第一时长小于或等于所述通信延时时长;
将所述N个第一数据包传输至所述第一MCU,以及向所述第一MCU发送固件升级指令,所述固件升级指令用于请求所述第一MCU基于所述N个第一数据包升级所述第一固件。
第二方面,本申请实施例提供一种固件更新装置,应用于主机,所述主机与第一MCU之间通过I2C总线协议进行数据传输,所述第一MCU安装有第一固件,所述主机存储有升级所述第一固件的第一升级包,所述装置包括:
确定单元,用于确定所述第一MCU的数据读写速度和所述主机与所述第一MCU的通信延时时长;
拆分单元,用于基于所述数据读写速度和所述通信延时时长将所述第一升级包拆分成N个第一数据包,所述第一MCU读写每个第一数据包所需的第一时长小于或等于所述通信延时时长;
通信单元,用于将所述N个第一数据包传输至所述第一MCU,以及向所述第一MCU发送固件升级指令,所述固件升级指令用于请求所述第一MCU基于所述N个第一数据包升级所述第一固件。
第三方面,本申请实施例提供一种主机,该主机包括处理器、存储器、通信接口,以及一个或多个程序,所述一个或多个程序被存储在所述存储器中,并且被配置由所述处理器执行,所述程序包括用于执行如本申请实施例第一方面所述的方法中所描述的部分或全部步骤的指令。
第四方面,本申请实施例提供了一种计算机可读存储介质,其中,上述计算机可读存储介质用于存储计算机程序,其中,上述计算机程序被处理器执行,以实现如本申请实施例第一方面所述的方法中所描述的部分或全部步骤。
第五方面,本申请实施例提供了一种计算机程序产品,其中,上述计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,上述计算机程序可操作来使计算机执行如本申请实施例第一方面所述的方法中所描述的部分或全部步骤。该计算机程序产品可以为一个软件安装包。
可以看出,在本申请实施例中,主机在与第一MCU通过I2C总线协议进行数据传输时,首先确定第一MCU的数据读写速度和其与第一MCU的通信延时时长;然后基于数据读写速度和通信延时时长将第一升级包拆分成N个第一数据包;最后将N个第一数据包传输至第一MCU,以及向第一MCU发送固件升级指令,固件升级指令用于请求第一MCU基于N个第一数据包升级第一固件,从而确保在使用I2C总线协议进行数据传输时,第一MCU成功接收升级数据进行升级。
本申请的这些方面或其他方面在以下实施例的描述中会更加简明易懂。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1A是本申请实施例提供的一种固件更新方法的系统架构图;
图1B是本申请实施例提供的一种I2C总线的物理拓扑图;
图2是本申请实施例提供的一种固件更新方法的流程示意图;
图3是本申请实施例提供的一种固件更新方法的交互示意图;
图4是本申请实施例提供的一种主机的结构示意图;
图5是本申请实施例提供的一种固件更新装置的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
以下分别进行详细说明。
本申请的说明书和权利要求书及所述附图中的术语“第一”、“第二”、“第三”和“第四”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
以下,对本申请中的部分用语进行解释说明,以便于本领域技术人员理解。
请参阅图1A,图1A是本申请实施例提供的一种固件更新方法的系统架构图。如图1A所示,该固件更新方法的系统包括主机和从机,两者之间通过I2C总线协议进行数据传输。同一时间,主机只能与一个从机通讯,从机挂载在总线上的数量由地址码位数以及总线最大电容400pf限制。主机在通讯中主要承担提供串行时钟线(Serial ClockLine,SCL),控制信息读写流向,决定通讯的开始与结束的任务。从机则是提供和接收信息并于主机进行交互。I2C总线(也称IIC或I2C)是由PHILIPS公司开发的两线式串行总线,用于连接微控制器及其外围设备,是微电子通信控制领域广泛采用的一种总线标准。它是同步通信的一种特殊形式,具有接口线少、控制方式简单、器件封装形式小、通信速率较高等优点。
在本申请实施例中,主机例如可以包括各种具有无线通信功能的手持设备、车载设备、可穿戴设备(例如智能手表、智能手环、计步器等)、计算设备或通信连接到无线调制解调器的其他处理设备,以及各种形式的用户设备(User Equipment,UE),移动台(MobileStation,MS),终端设备(terminal device)等等。为方便描述,上面提到的设备统称为主机。从机例如可以包括具有第一微控制单元(Microcontroller Unit,MCU)、光源、液晶显示器(Liquid Crystal Display,LCD)面板或数字光处理(Digital Light Processing,DLP)组件、光学器件组、输入组件的投影设备,光源用于发光来进行投影;LCD面板或DLP组件用于显示画面,并透过(LCD)或反射(DLP)的方式使光线能够投影出画面;光学器件组用于对光线进行处理以方便投射,主要负责对焦等工作;输入组件用于处理输入的信号,包括电脑接口、色差等视频输入和遥控器;第一MCU用于指挥上述元器件进行工作。
请参阅图1B,图1B是本申请实施例提供的一种I2C总线的物理拓扑图。I2C总线在物理连接上非常简单,分别由串行数据线(Serial Data Line,SDA)和SCL及上拉电阻组成。通信原理是通过对SCL和SDA线高低电平时序的控制,来产生I2C总线协议所需要的信号进行数据的传递。
主机发送数据的流程为:主机在检测到总线为“空闲状态”(即SDA、SCL线均为高电平)时,发送一个启动信号“S”,开始一次通信的开始;主机接着发送一个命令字节。该字节由7位的外围器件地址和1位读写控制位R/W组成(此时R/W=0)相对应的从机收到命令字节后向主机回馈应答信号ACK(ACK=0);主机收到从机的应答信号后开始发送第一个字节的数据;从机收到数据后返回一个应答信号ACK;主机收到应答信号后再发送下一个数据字节;当主机发送最后一个数据字节并收到从机的ACK后,通过向从机发送一个停止信号“P”结束本次通信并释放总线。从机收到“P”信号后也退出与主机从机之间的通信。
请参阅图2,图2是本申请实施例提供的一种固件更新方法的流程示意图,应用于主机,所述主机与第一微处理单元MCU之间通过I2C总线协议进行数据传输,所述第一MCU安装有第一固件,所述主机存储有升级所述第一固件的第一升级包,所述方法包括:
步骤201:确定所述第一MCU的数据读写速度和所述主机与所述第一MCU的通信延时时长。
进一步地,确定所述第一MCU的数据读写速度的一具体实现方式可以为:读取所述第一MCU的型号,基于所述第一MCU的型号确定所述第一MCU的数据读写速度。
其中,不同的型号MCU对应不同的数据读写速度,第一MCU为从机上安装的MCU,第一MCU的数据读写速度例如可以为1MB/s、3MB/s、5MB/s或是其他值,在此基于第一MCU的型号确定。
其中,主机在通过I2C总线协议向第一MCU传输数据时,每传输完一段数据则等待预定时长,待第一MCU将该段数据写入存储器中之后,再进行下段数据的传输,上述等待的时长则为所述主机与所述第一MCU的通信延时时长,该通信延时时长为人为预先设定的,例如可以为10ms、30ms、50ms或是其他值,在此不作限定。
步骤202:基于所述数据读写速度和所述通信延时时长将所述第一升级包拆分成N个第一数据包,所述第一MCU读写每个第一数据包所需的第一时长小于或等于所述通信延时时长。
举例说明,假设第一升级包的大小为50MB,第一MCU的读写速度为100MB/s,延时时长为10ms,则每个第一数据包的大小最大为1MB,则至少需要将所述第一升级包拆分成为50个大小为1MB的第一数据包。
其中,所述N个第一数据包的大小可以是相等的,也可以是不等的,在此不做限定。
步骤203:将所述N个第一数据包传输至所述第一MCU。
进一步地,在将所述N个第一数据包传输至所述第一MCU之前,所述方法还包括:主机发送命令字节,所述命令字节包括所述第一MCU的地址;主机接收所述第一MCU针对所述命令字节的通信确认响应。
步骤204:向所述第一MCU发送固件升级指令,所述固件升级指令用于请求所述第一MCU基于所述N个第一数据包升级所述第一固件。
可以看出,在本申请实施例中,主机在与第一MCU通过I2C总线协议进行数据传输时,首先确定第一MCU的数据读写速度和其与第一MCU的通信延时时长;然后基于数据读写速度和通信延时时长将第一升级包拆分成N个第一数据包;最后将N个第一数据包传输至第一MCU,以及向第一MCU发送固件升级指令,固件升级指令用于请求第一MCU基于N个第一数据包升级第一固件,从而确保在使用I2C总线协议进行数据传输时,第一MCU成功接收升级数据进行升级。
在本申请的一实现方式中,在确定所述第一MCU的数据读写速度和所述主机与所述第一MCU的通信延时时长之前,所述方法还包括:
接收所述第一MCU发送的固件升级请求,所述固件升级请求用于请求升级所述第一固件,所述固件升级请求携带所述第一固件的版本号;
确定所述第一固件的版本号低于或等于预设版本号。
在本申请的一实现方式中,在将所述N个第一数据包传输至所述第一MCU方面,包括:
基于预设加密算法加密所述N个第一数据包,得到N个加密数据包,所述N个第一数据包与所述N个加密数据包一一对应;
将所述N个加密数据包传输至所述第一MCU。
其中,预设加密算法包括以下至少一种:消息摘要算法5(Message-DigestAlgorithm 5,MD5)、数据加密标准(Data Encryption Standard,DES)、三重数据加密标准算法(Triple Data Encryption Standard,3DES)、高级加密标准(Advanced EncryptionStandard,AES)、安全哈希算法(Secure Hash Algorithm,SHA)。
其中,MD5为计算机安全领域广泛使用的一种散列函数,用以提供消息的完整性保护(又译摘要算法、哈希算法),主流编程语言普遍已有MD5实现。将数据运算为另一固定长度值,是杂凑算法的基础原理,MD5的前身有MD2、MD3和MD4。
其中,DES美国国家标准局公布IBM公司研制的用于电子数据加密的对称密钥算法。DeDES是原型块密码,它采用固定长度的明文比特字符串,并通过一系列复杂的操作将其转换成相同长度的另一个密文比特字符串。在DES的情况下,块大小是64位。DES还使用密钥来定制变换,使得解密可以仅由知道用于加密的特定密钥的人来执行。
其中,3DES是一种对称密钥加密块密码,相当于是对每个数据块应用三次数据加密标准(DES)算法。由于计算机运算能力的增强,原版DES密码的密钥长度变得容易被暴力破解;3DES即是设计用来提供一种相对简单的方法,即通过增加DES的密钥长度来避免类似的攻击,而不是设计一种全新的块密码算法。
其中,AES是美国联邦政府采用的一种区块加密标准。这个标准用来替代原先的DES,基于排列和置换运算,排列是对数据重新进行安排,置换是将一个数据单元替换为另一个。AES使用几种不同的方法来执行排列和置换运算。AES是一个迭代的、对称密钥分组的密码,它可以使用128、192和256位密钥,并且用128位(16字节)分组加密和解密数据。与公共密钥密码使用密钥对不同,对称密钥密码使用相同的密钥加密和解密数据。通过分组密码返回的加密数据的位数与输入数据相同。迭代加密使用一个循环结构,在该循环中重复置换和替换输入数据。
其中,SHA是数据加密算法,该算法的思想是接收一段明文,然后以一种不可逆的方式将它转化为密文,也可以简单理解为输出一串二进制数据,把它转化为长度较短、位数固定的输出序列(即散列值),也称为信息摘要或信息验证代码的过程。
在本申请的一实现方式中,在基于预设加密算法加密所述N个第一数据包,得到N个加密数据包方面,包括:
确定N个第一数值和N个第二数值,所述N个第一数值为所述N个第一数据包对应的拆分顺序,所述N个第二数值为所述N个第一数据包对应的大小,所述N个第一数值、所述N个第二数值均与所述N个第一数据包一一对应;
基于所述N个第一数值和所述N个第二数值生成第一密钥,以及将所述第一密钥作为预设加密算法使用的密钥;
基于所述预设加密算法和所述第一密钥加密所述N个第一数据包,得到N个加密数据包。
进一步地,预设加密函数为
Figure BDA0002218960790000081
其中,所述X为加密前的第一数据包,所述Y为加密后的加密数据包,所述a为第一数值,所述b为第二数值。
在本申请的一实现方式中,所述方法还包括:
向所述第一MCU发送所述第一密钥,所述第一密钥用于解密所述N个加密数据包,得到所述N个第一数据包。
进一步地,所述基于预设加密算法加密所述N个第一数据包,得到N个加密数据包,包括:
确定N个第三数值和N个第四数值,所述N个第三数值为所述N个第一数据包对应的拆分顺序,所述N个第四数值为所述N个第一数据包对应的大小,所述N个第三数值、所述N个第四数值均与所述N个第一数据包一一对应;
确定N个第五数值和N个第六数值,每个第五数值为每个第一数值与其对应的第二数值之和,每个第五数值为每个第一数值与其对应的第二数值之差;
基于所述N个第五数值和N个所述第六数值确定N个第一公钥和N个第一私钥,所述N个第五数值和N个所述第六数值与所述N个第一公钥一一对应,所述N个第五数值和N个所述第六数值与所述N个第一私钥一一对应;
基于所述预设加密算法和所述N个第一公钥加密所述N个第一数据包,得到N个加密数据包;
将所述N个第一私钥发送至所述第一MCU。
其中,所述第一MCU可以基于所述N个第一私钥解密所述N个加密数据宝。
进一步地,所述第一公钥为(C1,C2),所述第一私钥为(D1,D2),其中,C1=1+B1/A1,C2=1+A1/B1,D1=1-B1/A1,D2=A1/B1-1,A为第五数值,B为第六数值。
举例说明,第五数值为3,第六数值为2,则第一公钥例如可以为(6/5,6),第一私钥可以为(4/5,4)。
进一步地,所述基于所述预设加密算法和所述N个第一公钥加密所述N个第一数据包,得到N个加密数据包,包括:基于第一公式对所述N个第一数据包进行加密,得到N个加密数据包;所述第一公式为:E=(C2-C1)F,所述E为第一数据包,所述F为加密数据包,所述(C1,C2)为第一公钥。
进一步地,所述方法还包括:基于第二公式对所述N个加密数据包进行解密,得到所述N个第一数据包,所述第二公式为:F=E/(D1+D2),所述E为所述加密数据包,所述F为所述第一数据包,所述(D1,D2)为所述第一公钥。
与所述图2所示的实施例一致的,请参阅图3,图3是本申请实施例提供的一种固件更新方法的交互示意图,应用于主机,所述主机与第一微处理单元MCU之间通过I2C总线协议进行数据传输,所述第一MCU安装有第一固件,所述主机存储有升级所述第一固件的第一升级包,所述方法包括:
步骤301:第一MCU向主机发送固件升级请求,所述固件升级请求用于请求升级所述第一固件,所述固件升级请求携带所述第一固件的版本号。
步骤302:主机确定所述第一固件的版本号低于或等于预设版本号。
步骤303:主机确定所述第一MCU的数据读写速度和所述主机与所述第一MCU的通信延时时长。
步骤304:主机基于所述数据读写速度和所述通信延时时长将所述第一升级包拆分成N个第一数据包,所述第一MCU读写每个第一数据包所需的第一时长小于或等于所述通信延时时长。
步骤305:主机确定N个第一数值和N个第二数值,所述N个第一数值为所述N个第一数据包对应的拆分顺序,所述N个第二数值为所述N个第一数据包对应的大小,所述N个第一数值、所述N个第二数值均与所述N个第一数据包一一对应。
步骤306:主机基于所述N个第一数值和所述N个第二数值生成第一密钥,以及将所述第一密钥作为预设加密算法使用的密钥。
步骤307:主机基于所述预设加密算法和所述第一密钥加密所述N个第一数据包,得到N个加密数据包,所述N个第一数据包与所述N个加密数据包一一对应。
步骤308:主机向所述第一MCU传输所述N个加密数据包。
步骤309:主机向所述第一MCU发送所述第一密钥。
步骤310:主机向所述第一MCU发送固件升级指令。
步骤311:第一MCU基于所述第一密钥解密所述N个加密数据包,得到所述N个第一数据包。
步骤312:第一MCU基于所述N个第一数据包升级所述第一固件。
需要说明的是,本实施例的具体实现过程可参见上述方法实施例所述的具体实现过程,在此不再叙述。
与上述图2和图3所示的实施例一致的,请参阅图4,图4是本申请实施例提供的一种主机的结构示意图,如图所示,该主机包括存储器、通信接口以及一个或多个程序,其中,上述一个或多个程序被存储在上述存储器中,并且被配置由上述处理器执行,上述程序包括用于执行以下步骤的指令:
确定所述第一MCU的数据读写速度和所述主机与所述第一MCU的通信延时时长;
基于所述数据读写速度和所述通信延时时长将所述第一升级包拆分成N个第一数据包,所述第一MCU读写每个第一数据包所需的第一时长小于或等于所述通信延时时长;
将所述N个第一数据包传输至所述第一MCU,以及向所述第一MCU发送固件升级指令,所述固件升级指令用于请求所述第一MCU基于所述N个第一数据包升级所述第一固件。
在本申请的一实现方式中,在确定所述第一MCU的数据读写速度和所述主机与所述第一MCU的通信延时时长之前,上述程序包括还用于执行以下步骤的指令:
接收所述第一MCU发送的固件升级请求,所述固件升级请求用于请求升级所述第一固件,所述固件升级请求携带所述第一固件的版本号;
确定所述第一固件的版本号低于或等于预设版本号。
在本申请的一实现方式中,在将所述N个第一数据包传输至所述第一MCU方面,上述程序包括具体用于执行以下步骤的指令:
基于预设加密算法加密所述N个第一数据包,得到N个加密数据包,所述N个第一数据包与所述N个加密数据包一一对应;
将所述N个加密数据包传输至所述第一MCU。
在本申请的一实现方式中,在基于预设加密算法加密所述N个第一数据包,得到N个加密数据包方面,上述程序包括具体用于执行以下步骤的指令:
确定N个第一数值和N个第二数值,所述N个第一数值为所述N个第一数据包对应的拆分顺序,所述N个第二数值为所述N个第一数据包对应的大小,所述N个第一数值、所述N个第二数值均与所述N个第一数据包一一对应;
基于所述N个第一数值和所述N个第二数值生成第一密钥,以及将所述第一密钥作为预设加密算法使用的密钥;
基于所述预设加密算法和所述第一密钥加密所述N个第一数据包,得到N个加密数据包。
在本申请的一实现方式中,上述程序包括还用于执行以下步骤的指令:
向所述第一MCU发送所述第一密钥,所述第一密钥用于解密所述N个加密数据包,得到所述N个第一数据包。
需要说明的是,本实施例的具体实现过程可参见上述方法实施例所述的具体实现过程,在此不再叙述。
上述实施例主要从方法侧执行过程的角度对本申请实施例的方案进行了介绍。可以理解的是,主机为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本申请实施例可以根据所述方法示例对主机进行功能单元的划分,例如,可以对应各个功能划分各个功能单元,也可以将两个或两个以上的功能集成在一个处理单元中。所述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。需要说明的是,本申请实施例中对单元的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
下面为本申请装置实施例,本申请装置实施例用于执行本申请方法实施例所实现的方法。请参阅图5,图5是本申请实施例提供的一种固件更新装置的结构示意图,应用于主机,所述主机与第一MCU之间通过I2C总线协议进行数据传输,所述第一MCU安装有第一固件,所述主机存储有升级所述第一固件的第一升级包,所述装置包括:
确定单元501,用于确定所述第一MCU的数据读写速度和所述主机与所述第一MCU的通信延时时长;
拆分单元502,用于基于所述数据读写速度和所述通信延时时长将所述第一升级包拆分成N个第一数据包,所述第一MCU读写每个第一数据包所需的第一时长小于或等于所述通信延时时长;
通信单元503,用于将所述N个第一数据包传输至所述第一MCU,以及向所述第一MCU发送固件升级指令,所述固件升级指令用于请求所述第一MCU基于所述N个第一数据包升级所述第一固件。
在本申请的一实现方式中,在确定所述第一MCU的数据读写速度和所述主机与所述第一MCU的通信延时时长之前,所述通信单元503,还用于接收所述第一MCU发送的固件升级请求,所述固件升级请求用于请求升级所述第一固件,所述固件升级请求携带所述第一固件的版本号;
所述确定单元501,还用于确定所述第一固件的版本号低于或等于预设版本号。
在本申请的一实现方式中,在将所述N个第一数据包传输至所述第一MCU方面,所述通信单元503,具体用于:
基于预设加密算法加密所述N个第一数据包,得到N个加密数据包,所述N个第一数据包与所述N个加密数据包一一对应;
将所述N个加密数据包传输至所述第一MCU。
在本申请的一实现方式中,在基于预设加密算法加密所述N个第一数据包,得到N个加密数据包方面,所述通信单元503,具体用于:
确定N个第一数值和N个第二数值,所述N个第一数值为所述N个第一数据包对应的拆分顺序,所述N个第二数值为所述N个第一数据包对应的大小,所述N个第一数值、所述N个第二数值均与所述N个第一数据包一一对应;
基于所述N个第一数值和所述N个第二数值生成第一密钥,以及将所述第一密钥作为预设加密算法使用的密钥;
基于所述预设加密算法和所述第一密钥加密所述N个第一数据包,得到N个加密数据包。
在本申请的一实现方式中,所述通信单元503,还用于:
向所述第一MCU发送所述第一密钥,所述第一密钥用于解密所述N个加密数据包,得到所述N个第一数据包。
需要说明的是,确定单元501和拆分单元502可通过处理器实现,通信单元503可通过通信接口实现。
本申请实施例还提供一种计算机存储介质,其中,该计算机存储介质存储用于电子数据交换的计算机程序,该计算机程序使得计算机执行如上述方法实施例中记载的任一方法的部分或全部步骤,上述计算机包括电子设备。
本申请实施例还提供一种计算机程序产品,上述计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,上述计算机程序可操作来使计算机执行如上述方法实施例中记载的任一方法的部分或全部步骤。该计算机程序产品可以为一个软件安装包,上述计算机包括电子设备。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置,可通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如上述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性或其它的形式。
上述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
上述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储器中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储器中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例上述方法的全部或部分步骤。而前述的存储器包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储器中,存储器可以包括:闪存盘、只读存储器(英文:Read-Only Memory,简称:ROM)、随机存取器(英文:Random Access Memory,简称:RAM)、磁盘或光盘等。
以上对本申请实施例进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

Claims (8)

1.一种固件更新方法,其特征在于,应用于主机,所述主机与第一微处理单元MCU之间通过I2C总线协议进行数据传输,所述第一MCU安装有第一固件,所述主机存储有升级所述第一固件的第一升级包,所述方法包括:
确定所述第一MCU的数据读写速度和所述主机与所述第一MCU的通信延时时长,所述通信延时时长为所述主机在通过所述I2C总线协议向所述第一MCU传输数据时每传输完一段数据后等待的预定时长;
基于所述数据读写速度和所述通信延时时长将所述第一升级包拆分成N个第一数据包,所述第一MCU读写每个第一数据包所需的第一时长小于或等于所述通信延时时长;
基于预设加密算法加密所述N个第一数据包,得到N个加密数据包,包括:确定N个第三数值和N个第四数值,所述N个第三数值为所述N个第一数据包对应的拆分顺序,所述N个第四数值为所述N个第一数据包对应的大小,所述N个第三数值、所述N个第四数值均与所述N个第一数据包一一对应;确定N个第五数值和N个第六数值,每个第五数值为每个第三数值与其对应的第四数值之和,每个第六数值为每个第三数值与其对应的第四数值之差;基于所述N个第五数值和所述N个第六数值确定N个第一公钥和N个第一私钥,所述N个第五数值和所述N个第六数值与所述N个第一公钥一一对应,所述N个第五数值和所述N个第六数值与所述N个第一私钥一一对应;基于预设加密算法和所述N个第一公钥加密所述N个第一数据包,得到N个加密数据包,所述N个第一数据包与所述N个加密数据包一一对应;
将所述N个加密数据包传输至所述第一MCU,以及向所述第一MCU发送固件升级指令,所述固件升级指令用于请求所述第一MCU基于所述N个第一数据包升级所述第一固件。
2.根据权利要求1所述的方法,其特征在于,所述确定所述第一MCU的数据读写速度和所述主机与所述第一MCU的通信延时时长之前,所述方法还包括:
接收所述第一MCU发送的固件升级请求,所述固件升级请求用于请求升级所述第一固件,所述固件升级请求携带所述第一固件的版本号;
确定所述第一固件的版本号低于或等于预设版本号。
3.根据权利要求1或2所述的方法,其特征在于,所述基于预设加密算法加密所述N个第一数据包,得到N个加密数据包,还包括:
确定N个第一数值和N个第二数值,所述N个第一数值为所述N个第一数据包对应的拆分顺序,所述N个第二数值为所述N个第一数据包对应的大小,所述N个第一数值、所述N个第二数值均与所述N个第一数据包一一对应;
基于所述N个第一数值和所述N个第二数值生成第一密钥,以及将所述第一密钥作为预设加密算法使用的密钥;
基于所述预设加密算法和所述第一密钥加密所述N个第一数据包,得到N个加密数据包。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
向所述第一MCU发送所述第一密钥,所述第一密钥用于解密所述N个加密数据包,得到所述N个第一数据包。
5.一种固件更新装置,其特征在于,应用于主机,所述主机与第一MCU之间通过I2C总线协议进行数据传输,所述第一MCU安装有第一固件,所述主机存储有升级所述第一固件的第一升级包,所述装置包括:
确定单元,用于确定所述第一MCU的数据读写速度和所述主机与所述第一MCU的通信延时时长,所述通信延时时长为所述主机在通过所述I2C总线协议向所述第一MCU传输数据时每传输完一段数据后等待的预定时长;
拆分单元,用于基于所述数据读写速度和所述通信延时时长将所述第一升级包拆分成N个第一数据包,所述第一MCU读写每个第一数据包所需的第一时长小于或等于所述通信延时时长;
通信单元,用于基于预设加密算法加密所述N个第一数据包,得到N个加密数据包,包括:确定N个第三数值和N个第四数值,所述N个第三数值为所述N个第一数据包对应的拆分顺序,所述N个第四数值为所述N个第一数据包对应的大小,所述N个第三数值、所述N个第四数值均与所述N个第一数据包一一对应;确定N个第五数值和N个第六数值,每个第五数值为每个第三数值与其对应的第四数值之和,每个第六数值为每个第三数值与其对应的第四数值之差;基于所述N个第五数值和所述N个第六数值确定N个第一公钥和N个第一私钥,所述N个第五数值和所述N个第六数值与所述N个第一公钥一一对应,所述N个第五数值和所述N个第六数值与所述N个第一私钥一一对应;基于预设加密算法和所述N个第一公钥加密所述N个第一数据包,得到N个加密数据包,所述N个第一数据包与所述N个加密数据包一一对应;将所述N个加密数据包传输至所述第一MCU,以及向所述第一MCU发送固件升级指令,所述固件升级指令用于请求所述第一MCU基于所述N个第一数据包升级所述第一固件。
6.根据权利要求5所述的装置,其特征在于,所述确定所述第一MCU的数据读写速度和所述主机与所述第一MCU的通信延时时长之前,所述通信单元,还用于接收所述第一MCU发送的固件升级请求,所述固件升级请求用于请求升级所述第一固件,所述固件升级请求携带所述第一固件的版本号;
所述确定单元,还用于确定所述第一固件的版本号低于或等于预设版本号。
7.一种主机,其特征在于,包括处理器、存储器、通信接口,以及一个或多个程序,所述一个或多个程序被存储在所述存储器中,并且被配置由所述处理器执行,所述程序包括用于执行如权利要求1-4任一项所述的方法中的步骤的指令。
8.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行以实现权利要求1-4任一项所述的方法。
CN201910926093.3A 2019-09-27 2019-09-27 固件更新方法及相关设备 Active CN110784386B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910926093.3A CN110784386B (zh) 2019-09-27 2019-09-27 固件更新方法及相关设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910926093.3A CN110784386B (zh) 2019-09-27 2019-09-27 固件更新方法及相关设备

Publications (2)

Publication Number Publication Date
CN110784386A CN110784386A (zh) 2020-02-11
CN110784386B true CN110784386B (zh) 2021-12-07

Family

ID=69384619

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910926093.3A Active CN110784386B (zh) 2019-09-27 2019-09-27 固件更新方法及相关设备

Country Status (1)

Country Link
CN (1) CN110784386B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111538512A (zh) * 2020-04-16 2020-08-14 山东正中信息技术股份有限公司 一种空中下载技术ota固件升级方法、装置及设备
CN112579128B (zh) * 2020-12-23 2023-05-09 恒为科技(上海)股份有限公司 一种数据处理方法、上位机、单片机及系统
CN112764777B (zh) * 2021-01-18 2022-07-22 苏州浪潮智能科技有限公司 低速总线设备的升级方法、装置、设备及可读存储介质
CN117170704B (zh) * 2023-08-21 2024-04-30 南京智谱科技有限公司 基于硬件iic的远程升级方法和装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101373440A (zh) * 2008-10-09 2009-02-25 北京飞天诚信科技有限公司 一种固件升级数据处理方法和装置
CN103036804A (zh) * 2011-10-08 2013-04-10 腾讯科技(深圳)有限公司 控制网络上传速度的方法及系统
CN103605552A (zh) * 2013-11-29 2014-02-26 Tcl通力电子(惠州)有限公司 Mcu的升级方法和装置
CN105138384A (zh) * 2015-10-15 2015-12-09 珠海格力电器股份有限公司 空调及其程序升级方法和装置
CN109445823A (zh) * 2018-11-02 2019-03-08 长虹美菱股份有限公司 一种mcu固件快速升级方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3171245B1 (en) * 2015-09-24 2020-03-18 Guangdong Oppo Mobile Telecommunications Corp., Ltd. Method, apparatus, and system for upgrading adapter

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101373440A (zh) * 2008-10-09 2009-02-25 北京飞天诚信科技有限公司 一种固件升级数据处理方法和装置
CN103036804A (zh) * 2011-10-08 2013-04-10 腾讯科技(深圳)有限公司 控制网络上传速度的方法及系统
CN103605552A (zh) * 2013-11-29 2014-02-26 Tcl通力电子(惠州)有限公司 Mcu的升级方法和装置
CN105138384A (zh) * 2015-10-15 2015-12-09 珠海格力电器股份有限公司 空调及其程序升级方法和装置
CN109445823A (zh) * 2018-11-02 2019-03-08 长虹美菱股份有限公司 一种mcu固件快速升级方法

Also Published As

Publication number Publication date
CN110784386A (zh) 2020-02-11

Similar Documents

Publication Publication Date Title
CN110784386B (zh) 固件更新方法及相关设备
US8379847B2 (en) Data and control encryption
CN102273218B (zh) 用于内容保护端口的预先认证及维持认证的方法、装置及系统
JP6067757B2 (ja) ストレージ装置とホスト間でデータ伝送を保護するためのストレージ・コントローラ・バス・インターフェースの使用
JP2004226966A (ja) 多数の動作モードを支援する暗号化装置
CA2462673A1 (en) Systems and methods for providing digital rights management compatibility
JP2004226969A (ja) 暗号システム及び多様なモードを支援する方法
US20160323100A1 (en) Key generation device, terminal device, and data signature and encryption method
US20190361836A1 (en) Advanced peripheral bus based serial peripheral interface communication device
EP3751781A1 (en) Overhead reduction for link protection
CN112329038A (zh) 一种基于usb接口的数据加密控制系统及芯片
US20190362107A1 (en) Advanced peripheral bus based inter-integrated circuit communication device
JP2023533319A (ja) ファームウェアデータ検証装置及び方法、並びにファームウェア更新装置、方法、及びシステム
WO2023046207A1 (zh) 一种数据传输方法、装置及计算机非易失性可读存储介质
CN111786820A (zh) 固件更新方法、装置及网络设备
JPH10143439A (ja) データ処理装置
TWI253586B (en) Control system for controlling a plurality of computers
JP2016046799A (ja) セキュリティクラウドサービスを提供するためのエージェントおよびセキュリティクラウドサービスのためのセキュリティ鍵装置
TW202226018A (zh) 在半導體裝置中之功能之客戶特定啟動
CN111832051B (zh) 一种基于fpga的对称加解密方法及系统
US9425964B2 (en) Display device with mobile high-definition link port and signal processing method thereof
US8929555B2 (en) Data encryption systems and methods
CN105468983A (zh) 基于sata接口的数据传输方法与装置
CN114650138A (zh) 一种i2c通信方法、系统、设备以及介质
CN112995322B (zh) 信息传输通道建立方法、装置、存储介质以及终端

Legal Events

Date Code Title Description
PB01 Publication
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