CN107894900B - 一种mcu升级的方法及*** - Google Patents
一种mcu升级的方法及*** Download PDFInfo
- Publication number
- CN107894900B CN107894900B CN201711278705.XA CN201711278705A CN107894900B CN 107894900 B CN107894900 B CN 107894900B CN 201711278705 A CN201711278705 A CN 201711278705A CN 107894900 B CN107894900 B CN 107894900B
- Authority
- CN
- China
- Prior art keywords
- mcu
- control end
- data
- state
- main control
- 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
- 238000000034 method Methods 0.000 title claims abstract description 63
- 238000004891 communication Methods 0.000 claims abstract description 11
- 238000012795 verification Methods 0.000 claims description 79
- 238000012545 processing Methods 0.000 claims description 41
- 230000005540 biological transmission Effects 0.000 claims description 27
- 238000004364 calculation method Methods 0.000 claims description 8
- 230000009286 beneficial effect Effects 0.000 abstract description 2
- 239000007787 solid Substances 0.000 description 11
- 230000008569 process Effects 0.000 description 8
- 230000004044 response Effects 0.000 description 7
- 230000009471 action Effects 0.000 description 4
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
Images
Classifications
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
- Communication Control (AREA)
Abstract
本发明公开了一种MCU升级的方法,每当主控端向MCU发送了预设字节数的升级数据之后,MCU就会将接收的升级数据写入MCU的存储空间。循环上述步骤,直到MCU将全部的升级数据写入MCU的存储空间之后,MCU的升级完成。由于主控端与MCU之间通讯具有固有的频率,即主控端每次向MCU发送升级数据都是发送预设字节数的升级数据,并且相邻两次发送升级数据之间会有中断间隙时间。本发明是利用中断间隙时间将升级数据写入MCU的存储空间,从而在总体上减少了从主控端开始发送升级数据直到MCU将全部的升级数据写入存储空间这之间的时间。本发明还提供了一种MCU升级的***,同样具有上述有益效果。
Description
技术领域
本发明涉及***升级领域,特别是涉及一种MCU升级的方法及***。
背景技术
随着近年来科技不断的进步,互联网、云计算、物联网等技术有了长足的进步,而固态硬盘作为新一代的存储设备,被广泛的应用其中。
在现阶段,固态硬盘除了具有存储功能以外,通常还配备有MCU(MicrocontrollerUnit,微控制单元)实现对固态硬盘基本的管理,例如温度检测、告警、电源管理、电容管理等等。通常情况下,MCU会与固态硬盘的主控端相连,MCU会接收主控端发出的指令对固态硬盘进行管理,以及将检测到的数据发送至主控端。
而对于MCU来说,需要定期或者是不定期的对MCU进行升级,通常是固态硬盘的主控端向MCU发送升级数据,MCU将升级数据存储到自身的存储空间中。
在现有技术中,通常情况主控端会先将全部的升级数据发送至MCU,之后MCU再将主控端发送过来的升级数据写入自身的存储空间中。
但是在现有技术中,从主控端开始发送升级数据,直到MCU将全部的升级数据写入存储空间这之间的时间通常来说较长,即MCU升级的速率较慢。
发明内容
本发明的目的是提供一种MCU升级的方法,可以有效减少MCU升级所需的时间;本发明的另一目的在于提供一种MCU升级的***,可以有效提高MCU升级的速率。
为解决上述技术问题,本发明提供一种MCU升级的方法,所述方法包括:
S101:主控端检测MCU当前的状态;
S102:当所述MCU当前的状态为接收状态时,所述主控端向所述MCU发送预设字节数的升级数据,以使所述MCU将所述升级数据写入所述MCU的存储空间,并跳转至S101;
当所述主控端将全部所述升级数据发送至所述MCU时,所述主控端完成所述MCU的升级。
可选的,所述S102:当所述MCU当前的状态为接收状态时,所述主控端向所述MCU发送预设字节数的升级数据,以使所述MCU将所述升级数据写入所述MCU的存储空间包括:
当所述MCU当前的状态为所述接收状态时,所述主控端向所述MCU发送所述升级数据与对应所述升级数据的原校验信息,以使所述MCU将计算得到的对应接收后的所述升级数据的校验信息与所述原校验信息作对比,当所述校验信息与所述原校验信息相同时,所述MCU将所述升级数据写入所述存储空间。
可选的,在所述当所述主控端将全部所述升级数据发送至所述MCU时,完成所述MCU的升级之前,所述方法还包括:
当所述MCU当前的状态为读取状态时,所述主控端向所述MCU发送传输指令,以使所述MCU根据所述传输指令向所述主控端发送预先生成的反馈信息,并跳转至S101。
可选的,所述当所述主控端将全部所述升级数据发送至所述MCU时,完成所述MCU的升级包括:
当所述主控端将全部所述升级数据发送至所述MCU时,所述主控端接收所述MCU计算的对应写在所述存储空间中全部所述升级数据的第二总校验信息;
所述主控端将预先计算的所述主控端中全部所述升级数据的第一总校验信息与所述第二总校验信息进行对比;
当所述第一总校验信息与所述第二总校验信息相同时,所述主控端完成所述MCU的升级。
本发明还提供了一种MCU升级的方法,所述方法包括:
MCU接收主控端发送的预设字节数的升级数据,并将所述MCU当前的状态更改为处理状态;
当所述MCU处于所述处理状态时,所述MCU将所述升级数据写入所述MCU的存储空间;
所述MCU将所述MCU当前的状态更改为接收状态。
可选的,所述MCU接收主控端发送的预设字节数的升级数据,并将所述MCU的状态更改为处理状态包括:
所述MCU开始接收所述升级数据,并将所述MCU当前的状态更改为正在接收状态;
所述MCU完成接收所述升级数据,并将所述MCU当前的状态更改为处理状态。
可选的,所述MCU接收主控端发送的预设字节数的升级数据包括:
所述MCU接收所述主控端发送的所述升级数据和对应所述升级数据的原校验信息;
在所述MCU接收主控端发送的预设字节数的升级数据之后,所述方法还包括:
所述MCU计算所述升级数据的校验信息;
所述MCU将所述升级数据写入所述MCU的存储空间包括:
当所述校验信息与所述原校验信息相同时,所述MCU将所述升级数据写入所述存储空间。
可选的,在所述MCU将所述MCU当前的状态更改为接收状态之前,所述方法还包括:
所述MCU生成反馈信息,并将所述MCU当前的状态更改为读取状态;
当所述MCU接收到所述主控端发送的传输指令时,将所述反馈信息发送至所述主控端。
本发明还提供了一种MCU升级的***,所述***包括主控端和MCU,所述主控端连接所述MCU;
所述主控端用于检测所述MCU当前的状态,当所述MCU当前的状态为接收状态时,向所述MCU发送预设字节数的升级数据;
所述MCU用于接收主控端发送的所述升级数据,并将所述MCU当前的状态更改为处理状态;所述MCU用于当所述MCU处于所述处理状态时,将所述升级数据写入所述MCU的存储空间,并将所述MCU当前的状态更改为数据接收状态;
所述主控端用于当将全部所述升级数据发送至所述MCU时,完成所述MCU的升级。
可选的,所述主控端与所述MCU之间通过IIC总线相互连接。
本发明所提供的一种MCU升级的方法,每当主控端向MCU发送了预设字节数的升级数据之后,MCU就会将接收的升级数据写入MCU的存储空间。循环上述步骤,直到MCU将全部的升级数据写入MCU的存储空间之后,MCU的升级完成。由于主控端与MCU之间通讯具有固有的频率,即主控端每次向MCU发送升级数据都是发送预设字节数的升级数据,并且相邻两次发送升级数据之间会有中断间隙时间。本发明是利用中断间隙时间将每次发送的预设字节数的升级数据都写入MCU的存储空间,从而在总体上减少了从主控端开始发送升级数据直到MCU将全部的升级数据写入存储空间这之间的时间,进而增加了MCU升级的速率。
本发明还提供了一种MCU升级的***,同样具有上述有益效果,在此不再进行赘述。
附图说明
为了更清楚的说明本发明实施例或现有技术的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例所提供的第一种MCU升级方法的流程图;
图2为本发明实施例所提供的第二种MCU升级方法的流程图;
图3为本发明实施例所提供的第三种MCU升级方法的流程图;
图4为本发明实施例所提供的第四种MCU升级方法的流程图;
图5为本发明实施例所提供的一种MCU升级***的结构框图。
具体实施方式
本发明的核心是提供一种MCU升级的方法。在现有技术中,通常情况主控端会先将全部的升级数据发送至MCU,之后MCU再将主控端发送过来的全部升级数据一起写入自身的存储空间中。但是通常情况下,由于主控端与MCU之间通讯通常情况下具有固有的频率,即主控端每次向MCU发送升级数据都是发送预设字节数的升级数据,并且相邻两次发送升级数据之间会有中断间隙时间。而现有技术中在中断间隙时间内不论是主控端与MCU端都不会进行任何的操作,MCU仅仅是等待主控端发送剩余的升级数据,这无疑会使得从主控端开始发送升级数据,直到MCU将全部的升级数据写入存储空间这之间的时间通常来说较长,即MCU升级的速率较慢。
而本发明所提供的一种MCU升级的方法,每当主控端向MCU发送了预设字节数的升级数据之后,MCU就会将接收的升级数据写入MCU的存储空间。循环上述步骤,直到MCU将全部的升级数据写入MCU的存储空间之后,MCU的升级完成。由于主控端与MCU之间通讯具有固有的频率,即主控端每次向MCU发送升级数据都是发送预设字节数的升级数据,并且相邻两次发送升级数据之间会有中断间隙时间。本发明是利用中断间隙时间将每次发送的预设字节数的升级数据都写入MCU的存储空间,从而在总体上减少了从主控端开始发送升级数据,直到MCU将全部的升级数据写入存储空间这之间的时间,进而增加了MCU升级的速率。
为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参考图1,图1为本发明实施例所提供的第一种MCU升级方法的流程图,该办法包括:
S101:主控端检测MCU当前的状态。
在本发明实施例中,主控端通常情况下是固态硬盘的主控端。所述主控端除了与MCU进行通讯以外,通常还负责对整个固态硬盘进行管理,例如向固态硬盘中的各个数据块进行读操作、写操作、擦操作等等,以及存储固态硬盘的状态信息,所述状态信息包括坏块表等等。
上述MCU主要用于对固态硬盘进行基本的管理,例如温度检测、告警、电源管理、电容管理等等。在本发明实施例中,MCU通常需要区分出三个具有不同功能的区域,包括中断响应区、数据处理区以及状态机轮询区。其中,中断响应区主要用于接收主控端发送的每段升级数据;数据处理区主要用于将接收到的升级数据写入MCU的存储空间;状态机轮询区主要用于改变MCU当前的状态。MCU的状态通常包括有处理状态和接收状态。
在本步骤中,主控端会检测MCU的状态,只有当MCU处于特定状态时,才会执行相应的步骤。
S102:当MCU当前的状态为接收状态时,主控端向MCU发送预设字节数的升级数据,以使MCU将升级数据写入MCU的存储空间,并跳转至S101。
在本步骤中,当MCU处于接收状态时,主控端会向MCU发送预设字节数的升级数据。由于主控端与MCU之间的通讯具有固定的频率,即主控端每次向MCU发送升级数据都是发送预设字节数的升级数据,并且相邻两次发送升级数据之间会有中断间隙时间。在本发明实施例中,升级数据的字节数对应于主控端与MCU之间传输数据的固有频率。当然,由于硬件型号的不同,主控端与MCU之间传输数据的固有频率也会不尽相同,相应的在每次主控端向MCU传输升级数据的过程中,每次传输升级数据的字节数也不尽相同。有关升级数据的预设字节数的大小在本发明实施例中不做具体限定。
在本步骤中,当MCU接收到主控端发送的升级数据之后,会将MCU当前的状态更改为处理状态。当MCU处于处理状态时,主控端不会向MCU发送升级数据。通常情况下,当MCU中的中断响应区接收完主控端这一次发送的升级数据之后,会生成一个结束标志,该结束标志会被MCU中的数据处理区以及状态机轮询区检测到。当状态机轮询区检测到所述结束标志时,会将MCU的状态更改为处理状态;当数据处理区检测到所述结束标志时,会将MCU本次接收的升级数据写入MCU的存储空间中。MCU升级的本质就是MCU将主控端发送的升级数据写入MCU自身的存储空间中。当MCU正常执行工作的时候,就是调用预先写入MCU的存储空间中的程序去执行相应的操作。
在本发明实施例中,当MCU中的数据处理区将接收的升级数据写入存储空间之后,通常会发送一个完成标志。当状态机轮询区检测到该完成标志之后,会将MCU当前的状态更改为接收状态。在本步骤中,当主控端向MCU发送预设字节数的升级数据之后,会跳转回S101,即重新获取MCU的状态。当MCU的状态又重新更改为接收状态之后,主控端会继续将下一段预设字节数的升级数据发送至MCU,直到全部升级数据都发送至MCU。
S103:当主控端将全部升级数据发送至MCU时,主控端完成MCU的升级。
当主控端将全部的升级数据都发送至MCU时,从主控端的角度来看通常情况下,已经完成了MCU的升级。当然,通常情况下主控端需要等MCU将最后一段预设字节数的升级数据写入MCU的存储空间之后,意味着MCU整个升级流程已经结束。
通常情况下,当MCU升级结束之后,主控端会向MCU发送跳转指令。MCU会根据该跳转指令运行写入自身存储空间的程序。当然,通常情况下也需要主控端检测到MCU处于接收状态时才会向MCU发送跳转指令。
在本发明实施例中,S101与S102通常是在一个线程中顺序的执行,而S103通常是在另一个线程中与S101和S102并列的执行。
本发明实施例所提供的一种MCU升级的方法,每当主控端向MCU发送了预设字节数的升级数据之后,MCU就会将接收的升级数据写入MCU的存储空间。循环上述步骤,直到MCU将全部的升级数据写入MCU的存储空间之后,MCU的升级完成。由于主控端与MCU之间通讯具有固有的频率,即主控端每次向MCU发送升级数据都是发送预设字节数的升级数据,并且相邻两次发送升级数据之间会有中断间隙时间。本发明是利用中断间隙时间将每次发送的预设字节数的升级数据都写入MCU的存储空间,从而在总体上减少了从主控端开始发送升级数据直到MCU将全部的升级数据写入存储空间这之间的时间,进而增加了MCU升级的速率。
为了保证升级数据在传输过程中的准确性,可以进一步的添加校验步骤。详细内容请参照下述发明实施例。
请参考图2,图2为本发明实施例所提供的第二种MCU升级方法的流程图。
本发明实施例是在上述发明实施例的基础上进一步的添加了对升级数据进行校验的步骤,其余内容与上述发明实施例大体相同。相同的技术特征请参考上述发明实施例。
在本发明实施例中,MCU升级方法包括:
S201:主控端检测MCU当前的状态。
本步骤与上述发明实施例中S101大体相同,详细内容请参照上述发明实施例,在此不再进行赘述。
S202:当MCU当前的状态为接收状态时,主控端向MCU发送升级数据与对应升级数据的原校验信息,以使MCU将计算得到的对应接收后的升级数据的校验信息与原校验信息作对比,当校验信息与原校验信息相同时,MCU将升级数据写入存储空间。
在本步骤中,当MCU当前的状态为接收状态时,主控端除了会向MCU发送预设字节数的升级数据之外,还会向MCU发送对应本次发送的升级数据的原校验信息。原校验信息是主控端预先根据本次向MCU发送的升级数据通过预先设置的算法计算得到的原校验信息。当然,具体主控端计算原校验信息的步骤只要是在主控端向MCU发送本次升级数据之前均可,在本发明实施例中对于主控端计算所述原校验信息这一步骤具体是在哪一步骤之后并不做具体限定。
上述计算原校验信息的算法包括使用预先设置的多项式进行计算,或者使用哈希算法等等均可,有关计算原校验信息具体的算法在本发明实施例中并不做具体限定。通常情况下,再现阶段大部分计算原检验信息的算法为使用预先设置的多项式进行计算,而通过多项式进行计算进而检验数据在传输过程中是否准确的方法也称为CRC(CyclicRedundancy Check,循环冗余校验码)校验。
在本步骤中,当MCU接收到升级数据以及对应该升级数据的原校验信息之后,MCU会对接收到的升级数据进行计算,以得到对应接收到的升级数据的校验信息。通常情况下,MCU计算校验信息的算法以及公式需要与主控端计算原校验信息的算法以及公式保持一致。同理,有关计算校验信息具体的算法在本发明实施例中同样并不做具体限定。
当MCU计算到校验信息之后,需要将原校验信息与校验信息进行比对。当原校验信息与校验信息相同时,说明本次传输的升级数据在传输过程中没有丢失,是完整的,可以写入MCU的存储空间中。此时MCU会将接收到的升级数据写入自身的存储空间中。当原校验信息与校验信息不同时,MCU不会将本次接收的升级数据写入存储空间,同时会将校验结果添加至反馈信息中。有关反馈信息的具体内容将在S203中进行详细描述。
S203:当MCU当前的状态为读取状态时,主控端向MCU发送传输指令,以使MCU根据传输指令向主控端发送预先生成的反馈信息,并跳转至S101。
在本发明实施例中,每次当MCU将收到的升级数据写入存储空间之后,通常会生成一个反馈信息。所述反馈信息通常包括MCU本次对接收到的升级数据进行处理的处理结果,例如该升级数据在MCU的存储空间中的位置、写入该升级数据的时间、对该升级数据的检验结果等等。有关所述反馈信息的具体内容在本发明实施例中并不做具体限定。在现阶段,主控端与MCU之间通常是通过IIC(Inter-Integrated Circuit,集成电路总线)总线相互连接,而MCU通常不能主动的向主控端发送信息。所以通常情况下,当MCU生成反馈信息之后,会将自身的状态更改为读取状态。当主控端检测到MCU处于读取状态之后,会向MCU发送传输指令,MCU会根据该传输指令向主控端发送反馈信息。当MCU将反馈信息发送至主控端之后,通常会将自身的状态更改为接收状态。
在本发明实施例中,原则上上述S202与S203之间没有先后顺序,但是MCU状态的轮转存在一定的顺序,通常情况下MCU状态的轮转是从接收状态到处理状态,再从处理状态到读取状态,最后从读取状态再到接收状态。因此通常S203是在S202之后执行。当然,在本发明实施例中,每当主控端执行完一个动作之后,都会跳转回S101,以检测MCU的状态。当MCU处于特定的状态时,主控端执行相应的步骤。
S204:当主控端将全部升级数据发送至MCU时,主控端接收MCU计算的对应写在存储空间中全部升级数据的第二总校验信息。
在本发明实施例中,当主控端将全部升级数据都发送至MCU之后,可以进一步的对MCU接收的全部升级数据进行校验。在本步骤中,当MCU将全部升级数据都写入MCU的存储空间之后,可以计算对应存储空间中全部升级数据的第二总校验信息,并将计算得到的第二总校验信息发送至主控端。在本步骤中,主控端会接收MCU发送的第二总校验信息。与S203类似,通常情况下主控端会先向MCU发送校验指令,之后MCU会根据传输指令向主控端发送第二总校验信息。
S205:主控端将预先计算的主控端中全部升级数据的第一总校验信息与第二总校验信息进行对比。
在本发明实施例中,通常情况下主控端向MCU发送完升级数据之后,在主控端中也会存储有全部的升级数据。而主控端会在本步骤之前预先计算全部升级数据的第一总校验信息。与主控端计算上述原校验信息相类似,在本发明实施例中具体主控端计算第一总校验信息的步骤只要是在主控端对比第一总校验信息与第二总校验信息之前均可,在本发明实施例中对于主控端计算所述第一总校验信息这一步骤具体是在哪一步骤之后并不做具体限定。
与计算原校验信息和计算校验信息相类似,在本发明实施例中同样对于主控端计算第一总校验信息的算法以及公式并不做具体限定,同样在本发明实施例中对于MCU计算第二总校验信息的算法以及公式不做具体限定。但是通常情况下主控端计算第一总校验信息的公式需要与MCU计算第二总校验信息的公式相同。
S206:当第一总校验信息与第二总校验信息相同时,主控端完成MCU的升级。
在本步骤中,当第一总校验信息与第二总校验信息相同时,意味着MCU的存储空间中写入的全部升级数据都没有错误,表明已经完成了MCU的升级。当第一总校验信息与第二总校验信息不同时,意味着MCU的存储空间中写入的升级数据存在错误,需要进行相应的调整或修改,例如擦除MCU的存储空间中的升级数据,并重新进行升级等等。
在本发明实施例中,S201至S203通常是在一个线程中顺序的执行,而S204至S206通常是在另一个线程中与S201至S203并列的执行。
本发明实施例中所提供的一种MCU升级的方法,MCU在接收到主控端发送的升级数据时,会对每一条升级数据的完整性进行校验,同时在主控端将全部升级数据发送至MCU之后,会对MCU写入存储空间中的全部升级数据的完整性进行校验。通过多次校验以保证升级数据在传输过程中的完整性。
请参考图3,图3为本发明实施例所提供的第三种MCU升级方法的流程图,该方法包括:
S301:MCU接收主控端发送的预设字节数的升级数据,并将MCU当前的状态更改为处理状态。
在本发明实施例中,有关MCU与主控端的详细内容已在上述发明实施例中进行了详细介绍,在此不再进行赘述。
在本步骤中,在MCU接收主控端发送的预设字节数的升级数据之前,通常情况下MCU处于接收状态。当MCU可以在刚开始接收升级数据或者是刚刚完成接收升级数据时,将自身的状态更改为处理状态。通常情况下,是MCU中的中断响应区会发送出结束标志,当MCU中的状态机轮询区检测到该结束标志时,会将MCU的状态更改为处理状态。
在本发明实施例中,由于主控端与MCU之间的通讯具有固定的频率,在相邻两次发送升级数据之间会有中断间隙时间。上述升级数据的字节数对应于主控端与MCU之间传输数据的固有频率。当然,由于不同硬件之间通讯的固有频率通常不尽相同,所以有关升级数据的预设字节数的大小在本发明实施例中不做具体限定。
S302:当MCU处于处理状态时,MCU将升级数据写入MCU的存储空间。
在本步骤中,通常是当MCU中的数据处理区检测到该结束标志时,所述数据处理区将MCU本次接收的升级数据写入MCU的存储空间中。在本发明实施例中,MCU将升级数据写入MCU的存储空间本质上就是更换MCU自身的程序,即对MCU进行升级。
S303:MCU将MCU当前的状态更改为接收状态。
在本步骤中,当MCU中的数据处理区将接收的升级数据写入存储空间之后,通常会发送一个完成标志。当状态机轮询区检测到该完成标志之后,会将MCU当前的状态更改为接收状态。
本发明实施例所提供的一种MCU升级的方法,每当MCU接收到预设字节数的升级数据之后,就将接收的升级数据写入自身的存储空间中,以进行对MCU的升级。由于主控端在每发送预设字节数的升级数据之后都会存在中断间隙时间,而MCU会利用所述中断间隙时间将升级数据写入存储空间,从而在总体上减少了从主控端开始发送升级数据直到MCU将全部的升级数据写入存储空间这之间的时间,进而增加了MCU升级的速率。
为了保证升级数据在传输过程中的准确性,可以进一步的添加校验步骤。详细内容请参照下述发明实施例。
参见图4,图4为本发明实施例所提供的第四种MCU升级方法的流程图。
本发明实施例是在上述发明实施例的基础上进一步的添加了对升级数据进行校验的步骤,其余内容与上述发明实施例大体相同。相同的技术特征请参考上述发明实施例。
在本发明实施例中,MCU升级方法包括:
S401:MCU接收主控端发送的升级数据和对应升级数据的原校验信息。
在本步骤中,MCU会接收到主控端发送的预设字节数的升级数据以及对应该升级数据的原校验信息。有关原校验信息的具体内容已在上述发明实施例中进行了详细介绍,在此不再进行赘述。
通常情况下,每当MCU开始接收升级数据时,或者是开始接收升级数据以及原校验信息时,MCU中的中断响应区会发送一个正在接收标志。当MCU中状态机轮询区检测到该正在接收标志时,会将MCU的状态更改为正在接收状态。而MCU中的数据处理区检测到正在接收标志时,会开始重复检测中断响应区即将发送的结束标志。
当MCU完成接收升级数据时,或者是完成接收升级数据以及原校验信息时,MCU中的中断响应区会发送一个结束标志。当MCU中状态机轮询区检测到该结束标志时,会将MCU的状态更改为处理状态。而MCU中的数据处理区检测到结束标志时,会执行后续的步骤。
S402:MCU计算升级数据的校验信息。
在本步骤中,MCU会计算接收到的升级数据的校验信息。有关校验信息的具体内容已在上述发明实施例中进行了详细介绍,在此不再进行赘述。
S403:当校验信息与原校验信息相同时,MCU将升级数据写入存储空间。
在本步骤中,当校验信息与原校验信息相同时,意味着升级数据在本次传输过程中没有丢失,可以写入MCU的存储空间中。此时MCU会将接收到的升级数据写入自身的存储空间中。当原校验信息与校验信息不同时,MCU不会将本次接收的升级数据写入存储空间。
S404:MCU生成反馈信息,并将MCU当前的状态更改为读取状态。
在本步骤中,每次当MCU将收到的升级数据写入存储空间之后,通常会生成一个反馈信息。有关反馈信息的具体内容已在上述发明实施例进行了详细介绍,在此不再进行赘述。
在现阶段,主控端与MCU之间通常是通过IIC总线相互连接,而MCU通常不能主动的向主控端发送信息。所以通常情况下,当MCU生成反馈信息之后,会将自身的状态更改为读取状态。而MCU将自身的状态更改为读取状态的过程通常是MCU中的数据处理区生成一个发送标志。当MCU中的状态机轮询区检测到该发送标志时,会将MCU自身的状态更改为读取状态。
S405:当MCU接收到主控端发送的传输指令时,将反馈信息发送至主控端。
在本发明实施例中,当主控端检测到MCU处于读取状态时,所述触控端会向MCU发送传输指令。MCU会根据该传输指令向主控端发送反馈信息。
S406:MCU将MCU当前的状态更改为接收状态。
在本步骤中,当MCU完成上述步骤之后,会将自身的状态更改为接收状态,以使主控端向MCU发送下一段预设字节数的升级数据,并循环上述步骤,直到MCU将主控端全部的升级数据都写入自身的存储空间中,完成MCU的升级。
本发明实施例中所提供的一种MCU升级的方法,MCU在接收到主控端发送的升级数据时,会对每一条升级数据的完整性进行校验,以保证升级数据在传输过程中的完整性。
下面对本发明实施例提供的一种MCU升级的***进行介绍,下文描述的MCU升级***与上文描述的MCU升级方法可相互对应参照。
图5为本发明实施例所提供的一种MCU升级***的结构框图,参照图5,MCU升级***可以包括:
主控端100和MCU200,所述主控端100连接所述MCU200。
所述主控端100用于检测所述MCU200当前的状态,当所述MCU200当前的状态为接收状态时,向所述MCU200发送预设字节数的升级数据。
所述MCU200用于接收主控端100发送的所述升级数据,并将所述MCU200当前的状态更改为处理状态;所述MCU200用于当所述MCU200处于所述处理状态时,将所述升级数据写入所述MCU200的存储空间,并将所述MCU200当前的状态更改为数据接收状态。
所述主控端100用于当将全部所述升级数据发送至所述MCU200时,完成所述MCU200的升级。
在本发明实施例中,由于通过IIC总线进行数据传输可以有效较低I/O线的占用,所以上述主控端100与MCU200之间可以通过IIC总线相互连接。
本实施例的MCU升级***用于实现前述的MCU升级方法,因此MCU升级***中的具体实施方式可见前文中的MCU升级方法的实施例部分,所以,其具体实施方式可以参照相应的各个部分实施例的描述,在此不再赘述。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上对本发明所提供的一种MCU升级的方法及***进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。
Claims (8)
1.一种MCU升级的方法,其特征在于,所述方法包括:
S101:主控端检测MCU当前的状态;
S102:当所述MCU当前的状态为接收状态时,所述主控端向所述MCU发送预设字节数的升级数据,以使所述MCU将所述升级数据写入所述MCU的存储空间,并跳转至S101;
当所述主控端将全部所述升级数据发送至所述MCU时,所述主控端完成所述MCU的升级;
所述预设字节数对应所述主控端与所述MCU之间通讯具有的固定的频率;
所述当所述MCU当前的状态为接收状态时,所述主控端向所述MCU发送预设字节数的升级数据,以使所述MCU将所述升级数据写入所述MCU的存储空间包括:
当所述MCU当前的状态为接收状态时,所述主控端向所述MCU发送预设字节数的升级数据,以使所述MCU将自身状态更改为处理状态,并在所述处理状态中将所述升级数据写入所述MCU的存储空间;
在所述当所述主控端将全部所述升级数据发送至所述MCU时,完成所述MCU的升级之前,所述方法还包括:
当所述MCU当前的状态为读取状态时,所述主控端向所述MCU发送传输指令,以使所述MCU根据所述传输指令向所述主控端发送预先生成的反馈信息,并跳转至S101。
2.根据权利要求1所述的方法,其特征在于,所述S102:当所述MCU当前的状态为接收状态时,所述主控端向所述MCU发送预设字节数的升级数据,以使所述MCU将所述升级数据写入所述MCU的存储空间包括:
当所述MCU当前的状态为所述接收状态时,所述主控端向所述MCU发送所述升级数据与对应所述升级数据的原校验信息,以使所述MCU将计算得到的对应接收后的所述升级数据的校验信息与所述原校验信息作对比,当所述校验信息与所述原校验信息相同时,所述MCU将所述升级数据写入所述存储空间。
3.根据权利要求1所述的方法,其特征在于,所述当所述主控端将全部所述升级数据发送至所述MCU时,完成所述MCU的升级包括:
当所述主控端将全部所述升级数据发送至所述MCU时,所述主控端接收所述MCU计算的对应写在所述存储空间中全部所述升级数据的第二总校验信息;
所述主控端将预先计算的所述主控端中全部所述升级数据的第一总校验信息与所述第二总校验信息进行对比;
当所述第一总校验信息与所述第二总校验信息相同时,所述主控端完成所述MCU的升级。
4.一种MCU升级的方法,其特征在于,所述方法包括:
MCU接收主控端发送的预设字节数的升级数据,并将所述MCU当前的状态更改为处理状态;
当所述MCU处于所述处理状态时,所述MCU将所述升级数据写入所述MCU的存储空间;
所述MCU将所述MCU当前的状态更改为接收状态;
所述预设字节数对应所述主控端与所述MCU之间通讯具有的固定的频率;所述主控端只在所述MCU处于所述接收状态时向所述MCU发送预设字节数的所述升级数据;
在所述MCU将所述MCU当前的状态更改为接收状态之前,所述方法还包括:
所述MCU生成反馈信息,并将所述MCU当前的状态更改为读取状态;
当所述MCU接收到所述主控端发送的传输指令时,将所述反馈信息发送至所述主控端。
5.根据权利要求4所述的方法,其特征在于,所述MCU接收主控端发送的预设字节数的升级数据,并将所述MCU的状态更改为处理状态包括:
所述MCU开始接收所述升级数据,并将所述MCU当前的状态更改为正在接收状态;
所述MCU完成接收所述升级数据,并将所述MCU当前的状态更改为处理状态。
6.根据权利要求4所述的方法,其特征在于,所述MCU接收主控端发送的预设字节数的升级数据包括:
所述MCU接收所述主控端发送的所述升级数据和对应所述升级数据的原校验信息;
在所述MCU接收主控端发送的预设字节数的升级数据之后,所述方法还包括:
所述MCU计算所述升级数据的校验信息;
所述MCU将所述升级数据写入所述MCU的存储空间包括:
当所述校验信息与所述原校验信息相同时,所述MCU将所述升级数据写入所述存储空间。
7.一种MCU升级的***,其特征在于,所述***包括主控端和MCU,所述主控端连接所述MCU;
所述主控端用于检测所述MCU当前的状态,当所述MCU当前的状态为接收状态时,向所述MCU发送预设字节数的升级数据;
所述MCU用于接收主控端发送的所述升级数据,并将所述MCU当前的状态更改为处理状态;所述MCU用于当所述MCU处于所述处理状态时,将所述升级数据写入所述MCU的存储空间,并将所述MCU当前的状态更改为数据接收状态;
所述主控端用于当将全部所述升级数据发送至所述MCU时,完成所述MCU的升级;
所述预设字节数对应所述主控端与所述MCU之间通讯具有的固定的频率;
所述MCU还用于生成反馈信息,并将所述MCU当前的状态更改为读取状态;
所述主控端还用于当所述MCU当前的状态为读取状态时,所述主控端向所述MCU发送传输指令,以使所述MCU根据所述传输指令向所述主控端发送预先生成的反馈信息。
8.根据权利要求7所述的***,其特征在于,所述主控端与所述MCU之间通过IIC总线相互连接。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711278705.XA CN107894900B (zh) | 2017-12-06 | 2017-12-06 | 一种mcu升级的方法及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711278705.XA CN107894900B (zh) | 2017-12-06 | 2017-12-06 | 一种mcu升级的方法及*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107894900A CN107894900A (zh) | 2018-04-10 |
CN107894900B true CN107894900B (zh) | 2021-06-29 |
Family
ID=61806106
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711278705.XA Active CN107894900B (zh) | 2017-12-06 | 2017-12-06 | 一种mcu升级的方法及*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107894900B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109388526B (zh) * | 2018-11-01 | 2023-01-24 | 郑州云海信息技术有限公司 | 一种控制电路及复位操作的方法 |
CN110941445A (zh) * | 2019-11-30 | 2020-03-31 | 航天科技控股集团股份有限公司 | 一种双芯片***仪表单片机升级的方法 |
CN111459519A (zh) * | 2020-03-30 | 2020-07-28 | 北京经纬恒润科技有限公司 | 一种mcu升级方法及装置 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103324501A (zh) * | 2013-05-28 | 2013-09-25 | 大连理工大学 | 无线传感器网络节点软件高效远程更新方法 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4527348B2 (ja) * | 2002-05-29 | 2010-08-18 | 富士通コンポーネント株式会社 | インタフェース装置、インタフェース装置におけるファームウェアの更新方法、及びそのプログラム |
CN102063318A (zh) * | 2010-12-22 | 2011-05-18 | Tcl通力电子(惠州)有限公司 | 一种供电mcu的升级方法 |
KR20140066357A (ko) * | 2012-11-23 | 2014-06-02 | 현대모비스 주식회사 | 다중 mcu 환경에서의 펌웨어 업데이트 방법 및 이를 이용한 전자제어장치 |
CN104375783B (zh) * | 2014-11-05 | 2018-07-31 | 上海斐讯数据通信技术有限公司 | 一种eeprom数据写入的方法 |
CN106648803A (zh) * | 2016-12-30 | 2017-05-10 | 南京科远自动化集团股份有限公司 | 一种dsp芯片在线升级方法 |
CN107301068A (zh) * | 2017-06-12 | 2017-10-27 | 合肥众志行云科技有限公司 | 一种单片机上的一对多无线程序升级***及方法 |
-
2017
- 2017-12-06 CN CN201711278705.XA patent/CN107894900B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103324501A (zh) * | 2013-05-28 | 2013-09-25 | 大连理工大学 | 无线传感器网络节点软件高效远程更新方法 |
Non-Patent Citations (1)
Title |
---|
笔记本电脑嵌入式控制器的设计与实现;刘佳等;《计算机工程与设计》;20101231;第3576-3579段 * |
Also Published As
Publication number | Publication date |
---|---|
CN107894900A (zh) | 2018-04-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108681565B (zh) | 区块链数据并行处理方法、装置、设备和存储介质 | |
CN108958787B (zh) | 区块链***升级方法、装置、设备及存储介质 | |
CN107894900B (zh) | 一种mcu升级的方法及*** | |
CN110442473B (zh) | 一种非易失性数据存储方法、装置、电子设备及介质 | |
CN103164523A (zh) | 数据一致性检查方法、装置及*** | |
CN107066300B (zh) | 一种存储设备的固件升级方法和存储设备 | |
CN103257880A (zh) | 一种基于dsp的远程应用程序在线更新方法 | |
CN108170457A (zh) | 固件升级方法、装置及vr头戴式显示器 | |
CN110083379A (zh) | 一种服务器部件升级方法及相关装置 | |
CN111475853A (zh) | 一种基于分布式数据的模型训练方法及*** | |
CN107608821B (zh) | 一种基于纠删码的数据读取方法、装置、设备 | |
CN104133743B (zh) | 一种将文件烧录到emmc芯片的方法及装置 | |
CN110825425A (zh) | 配置数据管理方法及装置、电子设备、存储介质 | |
CN110737548B (zh) | 数据请求方法和服务器 | |
CN112015447A (zh) | 电子设备的***更新方法及装置、电子设备及存储介质 | |
CN108196975B (zh) | 基于多校验和的数据验证方法、装置及存储介质 | |
CN111143181A (zh) | 一种服务器维护方法、***、设备及计算机可读存储介质 | |
CN111130856A (zh) | 一种服务器配置方法、***、设备及计算机可读存储介质 | |
CN107515757A (zh) | 软件程序升级方法和***、终端 | |
CN115129509B (zh) | 一种数据传输方法、装置、介质 | |
CN116610336A (zh) | 一种固件升级方法、***、装置及可读存储介质 | |
CN107920074B (zh) | 一种sdk自动升级方法、终端设备及主控服务器 | |
CN111371799B (zh) | Mctp控制器收发数据的控制方法、装置及设备 | |
CN109634526B (zh) | 一种基于对象存储的数据操作方法及相关装置 | |
CN109542598B (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 |