CN114281392A - 一种多mcu从站的串口升级方法及系统 - Google Patents
一种多mcu从站的串口升级方法及系统 Download PDFInfo
- Publication number
- CN114281392A CN114281392A CN202210205929.2A CN202210205929A CN114281392A CN 114281392 A CN114281392 A CN 114281392A CN 202210205929 A CN202210205929 A CN 202210205929A CN 114281392 A CN114281392 A CN 114281392A
- Authority
- CN
- China
- Prior art keywords
- serial port
- slave station
- mcu
- upgrade
- mcu slave
- 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.)
- Pending
Links
Images
Landscapes
- Stored Programmes (AREA)
Abstract
本发明公开了一种多MCU从站的串口升级方法及系统,属于MCU升级技术领域,方法包括:所有MCU从站初始化将串口解析芯片置为读使能,仅在从上位机获取到对应从站的升级帧后,发送回复帧时置为写使能,发送完成立刻重新置为读使能,从而使多个MCU从站复用的总线不会产生冲突地完成数据收发;具体到单个MCU从站,逐帧获取到完整的升级文件后,MCU从站再将升级文件复制到应用工程存储区。利用该方法能够通过单个串口对多个MCU从站同时升级,所有MCU在系统中的优先级相同,传输速度较快,升级效率高,没有接口数量限制,单个MCU升级失败时不影响其他MCU升级,稳定性高,能够避免数据冲突,有利于降低升级风险。
Description
技术领域
本发明涉及一种多MCU从站的串口升级方法及系统,属于MCU升级技术领域。
背景技术
嵌入式系统在实际的使用中,往往有更新换代的需求。其中,软件的迭代需求速度通常远超过硬件。软件升级时选择将硬件邮寄回厂家升级成本高且不方便;用户自行拆开硬件重新烧写容易升级出错。因此,市面上通常通过在线升级技术(IAP,In ApplicationProgramming)在MCU(微控制单元)里增加bootloader工程(引导工程),让客户直接利用产品原有的通信接口,进行软件的迭代升级。
现有技术中,针对单个MCU芯片升级的方案已十分成熟。然而针对单系统下含多个MCU从站的情形,现有技术中的升级方法并不多,且绝大部分是基于CAN(现场总线)或者EtherCAT(工业以太网),通过串口对单系统下对多个MCU从站升级的方法更少。现有技术中利用串口对单系统下对多个MCU从站升级的方法有以下两种。
第一种:上位机与第一个MCU从站连接,第二个MCU从站与第一个MCU从站连接,其后每一个MCU从站与上一个MCU从站连接,升级文件在一串MCU从站之间按顺序传递。
第二种:上位机与主MCU连接,主MCU与多个从MCU连接,上位机发出的升级文件经主MCU分配给各个从MCU。
第一种方法传输速度低,假设传输给一个MCU从站的用时为t,则第n个MCU从站接收一帧的用时为n*t,排在越后的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从站;在写使能状态下将对应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就不能再升级。
针对以上技术问题,本申请实施例提出的改进参照图1,一种多MCU从站系统,包括上位机和多个MCU从站,上位机与串口总线连接,串口总线上连接有带有读写片选的多个串口解析芯片(transceiver),每个串口解析芯片均连接一个MCU从站。在本实施例中,上位机为微型计算机(PC)。图1中MCU1、MCU2、MCU3、MCU4代表多个MCU从站,每个MCU从站预先分配有不同的设备地址,CS表示片选信号,Tx表示发送数据,Rx表示接收数据。
多个MCU从站用于将对应串口解析芯片置为读使能,并接收对应串口解析芯片转发的串口数据;在所述串口数据的类型为升级帧时,将对应串口解析芯片置为写使能,向串口解析芯片发送回复帧;在接收到完整升级文件后,将升级文件复制到闪存中的应用工程存储区92。
多个串口解析芯片用于在读使能状态下将串口总线上的串口数据转发给对应的MCU从站;在写使能状态下将对应MCU从站的回复帧转发给上位机。
上位机用于发送多个升级文件中的升级帧,并在接收到某MCU从站的回复帧后发送对应MCU从站的下一个升级帧。升级帧包含在串口数据中。
参照图2,MCU从站的闪存包括两个工程文件存储区和两个升级存储区,两个工程文件存储区分别是引导工程存储区91和应用工程存储区92,两个升级存储区分别是升级标志位存储区93和升级文件存储区94。引导工程存储区91用于存储引导程序,引导程序用于执行引导工程。应用工程存储区92用于存储实际运行程序,即MCU从站工作时运行的程序,实际运行程序用于执行应用工程。升级文件存储区94用于存储升级文件,升级标志位存储区93用于存储标志密钥。
升级方法参照图3,包括以下步骤:
S1、MCU从站将串口解析芯片置为读使能。具体是,MCU从站向与自身连接的串口解析芯片发送片选信号,将串口解析芯片置读使能。
S2、MCU从站通过串口解析芯片从上位机接收串口数据。
S3、在串口数据的类型为升级帧,且升级帧为MCU从站所需升级文件的其中一帧时,MCU从站将串口解析芯片置为写使能。具体是,MCU从站通过串口解芯片接收串口数据,串口数据包括升级帧和其他数据,MCU从站按照文件传输协议等规定格式(例如Ymodem协议)处理串口数据,当串口数据的类型为升级帧,且该升级帧为本MCU从站所需升级文件的其中一帧时,将串口解析芯片置为写使能;否则,忽略该串口数据,不储存该串口数据。判断该升级帧是否为本MCU从站所需升级文件的其中一帧的方法可以是,串口数据中包括地址信息,解析串口数据时得知地址,结合本MCU从站的地址判断该升级帧是否为本MCU从站所需升级文件的其中一帧。
S4、MCU从站通过串口解析芯片向上位机发送回复帧。
重复步骤S1至S4,直至MCU从站接收到完整的升级文件。
S5、MCU从站将升级文件复制到MCU从站闪存中的应用工程存储区92。
使串口解析芯片常置为读使能,仅在MCU从站发送回复帧时将串口解析芯片置为写使能,能够避免数据冲突,使多个MCU从站复用的总线不会产生冲突地完成数据收发,利用该方法能够通过单个串口对多个MCU从站同时升级,有利于降低升级风险。具体流程如图4所示,在引导工程中或在应用工程中,MCU从站将对应的串口解析芯片置为读使能时,当串口总线上存在地址为本MCU从站的升级帧时,处理该升级帧,即解读报文,将升级文件的一部分存储于升级文件存储区94内,然后将串口解析芯片置为写使能,通过串口解析芯片发送回复帧。发送完回复帧后MCU从站立即又将串口解析芯片置为读使能。MCU从站在应用工程中或引导工程中,都可以通过串口解析芯片从上位机接收地址为本MCU从站的升级帧,使在系统中执行不同功能的MCU从站能够升级不同的升级文件。
如果在应用工程中直接将不完整的升级文件复制到应用工程存储区92将会出错,优选地,在一个实施例中,先将升级帧包含的数据复制到升级文件存储区94,升级方法的具体步骤为:
S11、MCU从站将串口解析芯片置为读使能。
S12、MCU从站通过串口解析芯片从上位机接收串口数据。
S13、在串口数据的类型为升级帧,且升级帧为MCU从站所需升级文件的其中一帧时,MCU从站将升级帧复制到MCU从站闪存中的升级文件存储区94。MCU从站将串口解析芯片置为写使能。
S14、MCU从站通过串口解析芯片向上位机发送回复帧。
重复步骤S11至S14,直至MCU从站接收到完整的升级文件。
S15、MCU从站将升级文件存储区94中的升级文件复制到应用工程存储区92。
在一些应用场景中,有些用户会使用非原厂规定的途径私自烧录MCU从站;有时会有其它竞争厂商破解MCU从站。
为此,在一些实施例中,升级方法包括以下步骤:
S21、MCU从站将串口解析芯片置为读使能。
S22、MCU从站通过串口解析芯片从上位机接收串口数据。
S23、在串口数据的类型为升级帧,且升级帧为MCU从站所需升级文件的其中一帧时,MCU从站将串口解析芯片置为写使能。
S24、MCU从站通过串口解析芯片向上位机发送回复帧。
重复步骤S21至S24,直至MCU从站接收到完整的升级文件。
S25、MCU从站于MCU从站闪存中的升级标志位存储区93中储存约定的标志密钥。
具体是某个MCU从站在引导工程中或应用工程中,当该MCU从站接收完自身升级所需的所有升级帧后,在升级标志位存储区93中储存约定的标志密钥。其中,根据系统选用的文件传输协议,例如Ymodem协议,MCU从站可以在接收第一帧升级帧时,处理第一帧升级帧得知本次升级的升级文件共多少帧,因此MCU可以得知是否已经接收到完整的升级文件,直到已接收到完整的升级文件后在升级标志位存储区93中储存约定的标志密钥。储存约定的标志密钥的代码预先写在引导程序和每个版本的实际应用程序中,私自将升级文件烧录进升级文件存储区94将不会触发储存约定的标志密钥的代码,私自烧录无法生成正确的标志密钥。
S26、MCU从站核对标志密钥。
具体是检查是否有标志密钥,标志密钥是否正确,核对的代码由厂家预先写入引导程序中,即只能在引导工程中核对标志密钥。每次通过IAP升级,MCU从站都不对引导工程存储区91作任何操作。
S27、在所述标志密钥正确时,MCU从站在引导工程中将升级文件复制到应用工程存储区92。若不存在标志密钥或标志密钥不正确,MCU从站跳转到应用工程。
S28、MCU从站将升级标志位存储区93中的数据擦除。具体是,MCU从站每次进入应用工程后都先将升级标志位存储区93中的数据擦除。
本申请实施例另外提供一种多MCU从站的串口升级方法,应用于串口解析芯片,适用的系统包括上位机、与上位机连接的串口总线、多个连接到串口总线上的串口解析芯片以及与多个串口解析芯片一对一连接的多个MCU从站,本实施例中的多MCU从站的串口升级方法包括以下步骤:
S31、串口解析芯片接收对应MCU从站的读使能片选信号,置为读使能状态;
S32、串口解析芯片将串口总线上的串口数据转发给对应的MCU从站;
S33、在串口数据的类型为升级帧,且升级帧为MCU从站所需升级文件的其中一帧时,串口解析芯片接收对应MCU从站的写使能片选信号,置为写使能状态;
S34、串口解析芯片将对应MCU从站的回复帧转发给上位机,回复帧为对应MCU从站接收到升级帧后回复的一帧;
重复步骤S31- S34,直至对应的MCU从站接收到完整的升级文件,以使对应MCU从站将升级文件复制到闪存中的应用工程存储区92。
MCU是从站,仅在上位机发送数据后回复信息,因此只要上位机仅在收到回复帧后才发送下一个命令帧,不同从站间在升级时就可以正确地接收到发送给该从站的指令,而不会出现读写同时的冲突。
具体地,在所述串口数据的类型为升级帧,且升级帧为MCU从站所需升级文件的其中一帧时,接收对应MCU从站的写使能片选信号,置为写使能状态的步骤包括:
在串口数据的类型为升级帧,且地址为与串口解析芯片对应的所述MCU从站时,接收对应MCU从站的写使能片选信号,置为写使能状态。
通过MCU从站发送片选信号给串口解析芯片,由MCU从站控制,切换transceiver接到串口总线上的数据流Tx(发送数据)和Rx(接收数据)的通断,MCU从站只保留属于自身的升级帧,仅在接收到属于自身的升级帧后才回复上位机,串口解析芯片仅在转发MCU从站的回复帧时处于写使能状态,减少串口总线的数据传输量。
本申请实施例还提供一种多MCU从站系统,该系统包括:
多个MCU从站,与多个串口解析芯片一一对应地连接,用于将对应串口解析芯片置为读使能,并接收对应串口解析芯片转发的串口数据;在串口数据的类型为升级帧时,将对应串口解析芯片置为写使能,向串口解析芯片发送回复帧;在接收到完整升级文件后,将升级文件复制到闪存中的应用工程存储区92;
多个串口解析芯片,与串口总线连接,用于在读使能状态下将串口总线上的升级帧转发给对应的MCU从站;在写使能状态下将对应MCU从站的回复帧转发给上位机;
上位机,与串口总线连接,用于发送多个升级文件中的升级帧,并在接收到回复帧后发送对应MCU从站的下一个升级帧。
该系统中MCU从站能够通过串口与上位机信号连接,实现同时升级,稳定性高。
图1中所示的系统为多个或全部MCU从站升级的完整步骤为:
S401、MCU从站将串口解析芯片置为读使能。
S402、上位机向串口总线上的多个串口解析芯片发布若干个升级帧,升级帧包含在串口数据中。
S403、多个串口解析芯片在读使能状态下将串口总线上的串口数据转发给各自对应的MCU从站。
S404、MCU从站通过串口解析芯片从上位机接收串口数据。
S405、MCU从站通过串口解芯片接收串口数据,串口数据包括升级帧和其他数据,MCU从站按照文件传输协议等规定格式(例如Ymodem协议)处理串口数据,当串口数据的类型为升级帧,且该升级帧为本MCU从站所需升级文件的其中一帧时,将串口解析芯片置为写使能,然后执行步骤S406;否则,忽略该串口数据,不储存该串口数据。
S406、MCU从站向串口解析芯片发送回复帧。
S407、串口解析芯片在写使能状态下将对应MCU从站的回复帧转发给上位机。
S408、上位机接收串口解析芯片转发的回复帧。
S409、上位机根据回复帧向对应的MCU从站发送下一个升级帧。
S410、接收完自身所需升级文件的MCU从站于MCU从站闪存中的升级标志位存储区93中储存约定的标志密钥。
S411、MCU从站核对标志密钥。
S412、在所述标志密钥正确时,MCU从站在引导工程中将升级文件复制到应用工程存储区92。
S413、MCU从站将升级标志位存储区93中的数据擦除。
这样即使是在连接到串口时,仅仅想要升级其中具体几个MCU从站而不升级另外几个(如升级MCU1、 MCU3,但不升级MCU2 、MCU4);又或者在连接到串口时,对于不同的MCU从站想要升级不同升级文件,均可通过这种片选总线的软硬件设计来实现。
在一些实施例中,对于单个MCU从站而言,上电后执行的流程如图5所示。每次上电后,先运行引导工程(Bootloader)等待一定时间(Time++),例如10秒。引导工程包括文件传输模块。如果等待期间在串口总线接收到升级数据,且数据中从站地址为本MCU从站,则进入引导工程的文件传输模块,继续与上位机PC进行升级文件的传输,具体是按照图4的收发逻辑,且将升级帧保存到升级文件存储区94,并保持在文件传输模块中,继续从串口总线下载升级文件;接收到完整升级文件后,生成标志密钥,然后重启。如果上电后10秒内没有接收到串口数据(包括升级指令),或串口总线上的数据的地址不是本MCU从站,则返回步骤Time++,继续等待Time++的10秒中剩余的时间;等待完Time++的10秒都没有接收到地址为本MCU从站的串口数据后,读取闪存(FLASH)中的升级标志位存储区93,如果没有标志密钥或标志密钥不正确,则进入原有的应用工程开始工作;如果标志密钥正确,则从闪存(FLASH)中的升级文件存储区94中读取数据,将升级文件复制到应用工程存储区92(APP工程存储区)。
复制成功则进入新的应用工程开始工作。即在该实施例中,MCU从站在接收完自身所需升级文件后于升级标志存储区存储约定的标志密钥,然后重启,重启后的一定时间内无新的升级数据后,再核对标志密钥(可视为在“存储约定的标志密钥”和“核对标志密钥”之间插入一步重启)。
若复制不成功,说明传输的可能有问题,MCU告知PC复制失败,具体是MCU将串口解析芯片置为写使能,向PC发送复制失败的信息,然后将串口解析芯片置为读使能。接着进入引导工程的文件传输模块,在此与PC进行升级文件的传输,具体是,MCU向PC发送复制失败的信息后,PC上显示对应MCU复制失败的相关提示,人看到PC上的提示后,操作上位机向对应MCU重新发送升级文件。
在应用工程运行时,也可以与上位机PC进行升级文件的通讯,即接收升级帧。图5的“进入升级文件传输模块,在此与PC进行升级文件的传输”和“此时可以与PC进行升级文件的通讯”按图4的收发逻辑进行。每个版本的应用程序中都写有一进入应用工程就擦除标志密钥的代码。即应用工程的逻辑如下:
1.在函数的初始化阶段,将标志密钥清除。
2.在初始化结束,正常运行工程时,如果PC发送来要求升级的指令,即可控制串口解析芯片,串口通信传输升级文件。
如果是在“进入升级文件传输模块,在此与PC进行升级文件的传输”(图5流程)过程中断电,只会导致升级文件存储区94的升级文件不完整,不影响应用工程存储区92。如果是在“复制到应用工程存储区”过程中断电,此时已经生成了标志密钥,升级文件存储区94有完整的新版本应用程序,虽然应用工程存储区92的旧版本应用程序已经丢失,但重新上电后还是会先运行引导程序,标志密钥正确时,还可以重新复制新的应用程序到应用工程存储区92中。
基于以上单个MCU从站上电后执行的流程,在正常运行应用工程时,和最初运行引导工程的后台等待时,均有对应的方式进行升级文件传输。前者操作方便,可以用于用户日常升级使用;后者可以在烧写错误的APP升级文件导致运行锁死在Bootloader工程时,便于用户重新烧写。
本申请实施例选择了带有读写片选的串口解析芯片,采用总线方式设计多个MCU间的串口连接架构。这让上位机可以通过发送的指令中的从站ID(设备地址)的差别,精准地选择同个系统下不同的从站进行升级操作,而不是只能所有MCU进行同样的升级
在本说明书的描述中,参考术语“一个实施方式”“某些实施方式”“示意性实施方式”“示例”“具体示例”、或“一些示例”等的描述意指结合所述实施方式或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施方式或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施方式或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施方式或示例中以合适的方式结合。
以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围。
Claims (10)
1.一种多MCU从站的串口升级方法,用于具有多个MCU从站的系统,所述系统包括上位机,其特征在于,所述系统还包括与所述上位机连接的串口总线,及多个连接到所述串口总线的串口解析芯片,所述串口解析芯片与所述MCU从站一对一连接,所述多MCU从站的串口升级方法包括以下步骤:
将与所述MCU从站对应的所述串口解析芯片置为读使能;
通过所述串口解析芯片从所述上位机接收串口数据;
在所述串口数据的类型为升级帧,且所述升级帧为所述MCU从站所需升级文件的其中一帧时,将所述串口解析芯片置为写使能;
通过所述串口解析芯片向所述上位机发送回复帧;
重复以上步骤直至所述MCU从站接收到完整的升级文件,将所述升级文件复制到所述MCU从站闪存中的应用工程存储区。
2.根据权利要求1所述的多MCU从站的串口升级方法,其特征在于,所述将所述串口解析芯片置为写使能之前还包括步骤:
将所述升级帧复制到所述MCU从站闪存中的升级文件存储区;
将所述升级文件复制到所述MCU从站闪存中的应用工程存储区的步骤包括:
将所述升级文件存储区中的升级文件复制到所述应用工程存储区。
3.根据权利要求1所述的多MCU从站的串口升级方法,其特征在于,所述在所述串口数据的类型为升级帧,且所述升级帧为所述MCU从站所需升级文件的其中一帧时,将所述串口解析芯片置为写使能的步骤包括:
在应用工程中或引导工程中,根据文件传输协议解析所述串口数据得到所述串口数据的类型和地址;
在所述串口数据的类型为升级帧,且地址为本MCU从站时,将所述串口解析芯片置为写使能。
4.根据权利要求1所述的多MCU从站的串口升级方法,其特征在于,所述重复以上步骤直至所述MCU从站接收到完整的升级文件,将所述升级文件复制到所述MCU从站闪存中的应用工程存储区的步骤包括:
在接收到完整的升级文件后,于所述MCU从站闪存中的升级标志位存储区中储存约定的标志密钥;
核对所述标志密钥;
在所述标志密钥正确时,在引导工程中将所述升级文件复制到所述应用工程存储区;
将所述升级标志位存储区中的数据擦除。
5.根据权利要求4所述的多MCU从站的串口升级方法,其特征在于,所述在接收到完整的升级文件后,于所述MCU从站闪存中的升级标志位存储区中生成标志密钥的步骤包括:
所述MCU从站接收到完整的升级文件后,在引导工程中或应用工程中,于所述升级标志位存储区中储存约定的标志密钥。
6.根据权利要求4所述的多MCU从站的串口升级方法,其特征在于,所述核对所述标志密钥的步骤包括:
在所述引导工程中核对所述标志密钥。
7.根据权利要求4所述的多MCU从站的串口升级方法,其特征在于,所述将所述升级标志位存储区中的数据擦除的步骤包括:
每次进入应用工程后都先将所述升级标志位存储区中的数据擦除。
8.一种多MCU从站的串口升级方法,用于具有多个MCU从站的系统,所述系统包括上位机,其特征在于,所述系统还包括与所述上位机连接的串口总线,及多个连接到所述串口总线上的串口解析芯片以及与多个所述串口解析芯片一对一连接的多个MCU从站,所述方法包括以下步骤:
接收对应MCU从站的读使能片选信号,置为读使能状态;
将串口总线上的串口数据转发给对应的MCU从站;
在所述串口数据的类型为升级帧,且所述升级帧为所述MCU从站所需升级文件的其中一帧时,接收对应MCU从站的写使能片选信号,置为写使能状态;
将对应MCU从站的回复帧转发给上位机,所述回复帧为对应所述MCU从站接收到所述升级帧后回复的一帧;
重复以上步骤,直至对应的所述MCU从站接收到完整的升级文件,以使对应所述MCU从站将所述升级文件复制到闪存中的应用工程存储区。
9.根据权利要求8所述的多MCU从站的串口升级方法,其特征在于,所述在所述串口数据的类型为升级帧,且所述升级帧为所述MCU从站所需升级文件的其中一帧时,接收对应MCU从站的写使能片选信号,置为写使能状态的步骤包括:
在所述串口数据的类型为升级帧,且地址为与所述串口解析芯片对应的所述MCU从站时,接收对应MCU从站的写使能片选信号,置为写使能状态。
10.一种多MCU从站系统,其特征在于,包括:
多个MCU从站,与多个串口解析芯片一一对应地连接,用于将对应所述串口解析芯片置为读使能,并接收对应所述串口解析芯片转发的串口数据;在所述串口数据的类型为升级帧时,将对应所述串口解析芯片置为写使能,向所述串口解析芯片发送回复帧;在接收到完整升级文件后,将所述升级文件复制到闪存中的应用工程存储区;
多个串口解析芯片,与串口总线连接,用于在读使能状态下将串口总线上的串口数据转发给对应的MCU从站;在写使能状态下将对应MCU从站的回复帧转发给上位机;
上位机,与串口总线连接,用于发送多个升级文件中的所述升级帧,并在接收到所述回复帧后发送对应所述MCU从站的下一个升级帧。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210205929.2A CN114281392A (zh) | 2022-03-04 | 2022-03-04 | 一种多mcu从站的串口升级方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210205929.2A CN114281392A (zh) | 2022-03-04 | 2022-03-04 | 一种多mcu从站的串口升级方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114281392A true CN114281392A (zh) | 2022-04-05 |
Family
ID=80882197
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210205929.2A Pending CN114281392A (zh) | 2022-03-04 | 2022-03-04 | 一种多mcu从站的串口升级方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114281392A (zh) |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102082965A (zh) * | 2010-10-15 | 2011-06-01 | 福建新大陆通信科技股份有限公司 | 一种保障机顶盒升级成功的方法 |
CN103713543A (zh) * | 2013-12-18 | 2014-04-09 | 国核自仪系统工程有限公司 | 一种基于fpga的多串口并行处理架构 |
CN103838591A (zh) * | 2012-11-20 | 2014-06-04 | 海尔集团公司 | 一种基于串行总线的多单片机升级方法及装置 |
CN205375458U (zh) * | 2016-01-20 | 2016-07-06 | 北京航宇天创科技发展有限公司 | 一种四通道的多协议通信接口卡 |
CN106020869A (zh) * | 2016-05-09 | 2016-10-12 | 广州康盛生物科技有限公司 | 基于can总线的选择性烧录多个单片机节点程序的方法 |
CN106951289A (zh) * | 2017-03-23 | 2017-07-14 | 苏州英威腾电力电子有限公司 | 一种在线升级方法、dsp控制器及升级系统 |
CN109933348A (zh) * | 2019-01-21 | 2019-06-25 | 宁波普瑞均胜汽车电子有限公司 | 一种电子控制单元中Bootloader的更新方法和装置 |
CN110262817A (zh) * | 2019-05-17 | 2019-09-20 | 福建星云电子股份有限公司 | 一种基于以太网的单片机程序批量升级方法及系统 |
CN110351314A (zh) * | 2018-04-03 | 2019-10-18 | 厦门雅迅网络股份有限公司 | 汽车控制器的远程升级方法及计算机可读存储介质 |
CN112764785A (zh) * | 2020-12-24 | 2021-05-07 | 江苏云涌电子科技股份有限公司 | 一种自动升级多级控制器的方法 |
CN112866313A (zh) * | 2019-11-27 | 2021-05-28 | 上海荣泰健康科技股份有限公司 | 按摩椅软件在线升级方法、升级系统、控制系统及按摩椅 |
CN113595581A (zh) * | 2021-07-28 | 2021-11-02 | 深圳市永旭电气技术有限公司 | 半双工串口通讯电路的安全收发状态控制方法及其电路 |
-
2022
- 2022-03-04 CN CN202210205929.2A patent/CN114281392A/zh active Pending
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102082965A (zh) * | 2010-10-15 | 2011-06-01 | 福建新大陆通信科技股份有限公司 | 一种保障机顶盒升级成功的方法 |
CN103838591A (zh) * | 2012-11-20 | 2014-06-04 | 海尔集团公司 | 一种基于串行总线的多单片机升级方法及装置 |
CN103713543A (zh) * | 2013-12-18 | 2014-04-09 | 国核自仪系统工程有限公司 | 一种基于fpga的多串口并行处理架构 |
CN205375458U (zh) * | 2016-01-20 | 2016-07-06 | 北京航宇天创科技发展有限公司 | 一种四通道的多协议通信接口卡 |
CN106020869A (zh) * | 2016-05-09 | 2016-10-12 | 广州康盛生物科技有限公司 | 基于can总线的选择性烧录多个单片机节点程序的方法 |
CN106951289A (zh) * | 2017-03-23 | 2017-07-14 | 苏州英威腾电力电子有限公司 | 一种在线升级方法、dsp控制器及升级系统 |
CN110351314A (zh) * | 2018-04-03 | 2019-10-18 | 厦门雅迅网络股份有限公司 | 汽车控制器的远程升级方法及计算机可读存储介质 |
CN109933348A (zh) * | 2019-01-21 | 2019-06-25 | 宁波普瑞均胜汽车电子有限公司 | 一种电子控制单元中Bootloader的更新方法和装置 |
CN110262817A (zh) * | 2019-05-17 | 2019-09-20 | 福建星云电子股份有限公司 | 一种基于以太网的单片机程序批量升级方法及系统 |
CN112866313A (zh) * | 2019-11-27 | 2021-05-28 | 上海荣泰健康科技股份有限公司 | 按摩椅软件在线升级方法、升级系统、控制系统及按摩椅 |
CN112764785A (zh) * | 2020-12-24 | 2021-05-07 | 江苏云涌电子科技股份有限公司 | 一种自动升级多级控制器的方法 |
CN113595581A (zh) * | 2021-07-28 | 2021-11-02 | 深圳市永旭电气技术有限公司 | 半双工串口通讯电路的安全收发状态控制方法及其电路 |
Non-Patent Citations (2)
Title |
---|
叶子健等: "一种新的程序在线升级的实现", 《电子器件》 * |
赵星寒 等: "《从0开始教你用单片机》", 31 January 2009 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CA1286786C (en) | Self-configuring terminal | |
CN102495744B (zh) | 基于can总线的电动汽车电控设备控制软件升级方法 | |
CN112947977B (zh) | 一种软件在线升级方法及系统 | |
CN105808292A (zh) | 嵌入式终端设备的固件升级方法 | |
CN113377408B (zh) | 一种高可靠sram型fpga在线升级方法及系统 | |
CN105224480A (zh) | 一种用于响应于读取要求的存取存储器装置的方法和装置 | |
CN113608772B (zh) | 一种应用程序升级方法及装置 | |
CN111984261A (zh) | 编译方法与编译系统 | |
CN114020340B (zh) | 一种服务器系统及其数据处理方法 | |
US8976398B2 (en) | Information processing apparatus, information processing method, and program | |
KR20020036717A (ko) | 마이크로컴퓨터 및 그 제어 방법 | |
US20100211699A1 (en) | Wireless access apparatus with firmware upgrading function and the method thereof | |
JP3001537B1 (ja) | リモートコンピュータのブートシステムのブート方法 | |
CN114281392A (zh) | 一种多mcu从站的串口升级方法及系统 | |
CN117407065A (zh) | 网卡预启动控制方法、装置、设备、系统及存储介质 | |
CN108536458A (zh) | 一种fpga在线升级方法、装置、设备及存储介质 | |
CN109728886A (zh) | 一种适于跨版本升级的数据同步方法、装置、设备及存储介质 | |
CN116501357A (zh) | 一种单片机的在线升级方法 | |
CN108415711B (zh) | 一种在线烧录mac地址的方法 | |
US7324231B2 (en) | Printer expansion method and apparatus | |
CN114237640A (zh) | 一种基于串口协议的芯片测试控制板Uboot烧录方法 | |
CN109918082A (zh) | 软件开发的编译系统及方法 | |
CN116028283A (zh) | 一种处理器测试系统、方法、装置及可读存储介质 | |
CN110442074B (zh) | 可编程逻辑控制器程序的处理装置 | |
JP2009032076A (ja) | 制御プログラムの更新方法 |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20220405 |
|
RJ01 | Rejection of invention patent application after publication |