[go: up one dir, main page]

CN104281470B - 一种基于单外接串口的多mcu系统软件升级方法 - Google Patents

一种基于单外接串口的多mcu系统软件升级方法 Download PDF

Info

Publication number
CN104281470B
CN104281470B CN201410446923.XA CN201410446923A CN104281470B CN 104281470 B CN104281470 B CN 104281470B CN 201410446923 A CN201410446923 A CN 201410446923A CN 104281470 B CN104281470 B CN 104281470B
Authority
CN
China
Prior art keywords
mcu
frame
upgraded
transmission path
upper computer
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
CN201410446923.XA
Other languages
English (en)
Other versions
CN104281470A (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.)
Zhejiang University ZJU
Original Assignee
Zhejiang University ZJU
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 Zhejiang University ZJU filed Critical Zhejiang University ZJU
Priority to CN201410446923.XA priority Critical patent/CN104281470B/zh
Publication of CN104281470A publication Critical patent/CN104281470A/zh
Application granted granted Critical
Publication of CN104281470B publication Critical patent/CN104281470B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Computer And Data Communications (AREA)

Abstract

本发明公开了一种基于单外接串口的多MCU系统软件升级方法,该方法通过串口将系统内部的MCU进行互联组成多MCU互联系统,由上位机根据系统进入bootloader的时段判断并选择需要更新的芯片。上位机以最小传输时间为准则选择代码数据传输的路径,与下位机建立连接,下位机根据路由信息执行数据的转发,从而实现整个系统中任意芯片代码的更新。所设计的协议定义了数据传输的基本格式,并运用了自动选择重传保证代码更新的稳定性。该方法只需要单个串口即可实现,占用了极少的硬件资源,对具有密封要求的如水下自主航行器等仪器仪表系统的开发和研制提供了简便、可靠的在线升级方案,具有重要的应用价值。

Description

一种基于单外接串口的多MCU系统软件升级方法
技术领域
本发明属于MCU系统开发技术领域,具体涉及一种基于单外接串口的多MCU系统软件升级方法。
背景技术
近年来,随着芯片技术的逐步发展,使得芯片的数据处理能力,进一步提高,在利用各种各样的芯片进行开发的过程中,产品可靠性、成本、及更新换代要求也随之进一步提高。
相对于软件,硬件平台的更新换代速率较慢,早期开发的软件中不可避免地存在着一些难以发觉的问题,在实践、应用和测试过程中这些问题会逐渐暴露,需要不断地进行修正。在硬件平台仍然满足当前的应用需求的条件下,直接在硬件平台上实现对软件代码的更新和升级,可以节约开发成本,提高经济效益。
在实际应用中,对单个MCU芯片升级已经较为成熟,然而在一个系统中,往往存在着多组芯片协同工作,对多个MCU芯片代码进行更新尚没有成熟的技术方案,通过合理地利用芯片的硬件资源可以提高系统的扩展性,增加系统的功能,因此研究如何利用有限的硬件资源实现对多组芯片的代码更新和升级对于整个系统的开发和设计具有重要意义。
由于某些应用的需求,一些系统需要在密封条件下进行工作,如水下自主航行器(AUV)、水下通信系统,与其他类型的系统相比,这种系统的价格昂贵,更加需要一种代码在线升级的方法。对于这些系统的代码更新和在线升级需要尽可能减少外接接口,减小整个系统密封装置产生渗漏的风险,保证系统工作环境的正常,增加系统工作的稳定性。
发明内容
针对现有技术所存在的上述技术问题,本发明提供了一种基于单外接串口的多MCU系统软件升级方法,实现简单、稳定性好,对于多MCU系统尤其是在密封环境下的多MCU系统的代码更新和在线升级具有重要的价值。
一种基于单外接串口的多MCU系统软件升级方法,包括如下步骤:
(1)对多MCU系统中的各MCU进行编号且使每个MCU均有唯一的ID号;
(2)设定多MCU系统外接串口的通信方式并进行上电,进而上位机通过外接串口向系统中的主MCU发送进入Bootloader程序的指令,进而由主MCU直接或间接向其他各MCU转发该指令,以使系统中所有MCU均进入Bootloader程序;
(3)上电后MCU的计时器开始计时,由用户通过对上位机进行触发操作来选择系统中待升级的MCU;
(4)上位机以传输单帧数据时间最短为目标确定待升级MCU的传输路径,并以此构建路由控制帧发送给主MCU,进而由主MCU通过对路由控制帧进行解析并依据路由信息将路由控制帧传递给下一MCU,依此逐个传递最终将路由控制帧传递至待升级的MCU并建立形成所述的传输路径;
(5)上位机对关于软件升级的代码数据进行分段,组帧后通过传输路径发送给待升级的MCU且采用超时重传机制;
(6)根据步骤(3)至(5),遍历系统中所有需要进行软件升级的MCU。
所述的主MCU为系统中唯一与外接串口连接的MCU。
所述的步骤(3)中用户选择待升级MCU的具体方法为:首先,设定待升级MCU的最长选择时间T,并将T平均分割成N个时段,且使N个时段与各MCU编号一一对应,N为系统中MCU的个数;然后上位机开始计时,由用户在相应的时段内对上位机进行触发操作,上位机感应该触发操作所对应的时段,确定该时段对应的MCU编号,进而确定该编号对应的MCU为待升级的MCU。
所述的步骤(4)中上位机根据以下公式以传输单帧数据时间最短为目标来确定待升级MCU的传输路径:
其中:t为上位机向待升级MCU传输单帧数据的时间,K为待升级MCU的传输路径的跳数,La为路由控制帧的长度,单位为Byte,其中每发送1Byte的数据串口实际发送了10bit(含奇偶校验位和停止位),Bandi为待升级MCU的传输路径中第i个MCU与第i+1个MCU之间的波特率。
所述的步骤(5)中当待升级的MCU接收到上位机发送的代码数据帧后,对代码数据帧进行校验,进而根据校验结果通过传输路径向上位机回复正确确认帧或错误确认帧。
若上位机收到错误确认帧或发送完代码数据帧τ秒后未收到待升级MCU回复的正确确认帧,则通过传输路径向待升级的MCU重传代码数据帧;
其中:K为待升级MCU的传输路径的跳数,Lb为上行和下行代码数据帧中最长的数据帧的长度,单位为Byte,Bandi为待升级MCU的传输路径中第i个MCU与第i+1个MCU之间的波特率。
若上位机向待升级MCU重传代码数据帧超过三次仍未收到待升级MCU回复的正确确认帧,则返回步骤(2)选择新的传输路径进行续传。
待升级的MCU接收代码数据帧并执行写入片内Flash的操作,直到所有代码数据帧全部传输完毕,待升级的MCU向通过传输路径向上位机回复传输完成帧。
所述的路由控制帧、代码数据帧、正确确认帧、错误确认帧和传输完成帧中均依次包含有帧头、编号、长度、源地址、目的地址、数据区和CRC(循环冗余校验码)校验七个部分信息。
待升级的MCU向上位机回复传输完成帧后会重新启动,若重启后的1.5t秒内,上位机收到待升级MCU发送的关于版本编号和更新成功的信息,则表示升级成功;否则,则返回步骤(2)选择新的传输路径重新传输代码数据;t为对应传输路径下上位机向待升级MCU传输单帧数据的时间。
本发明分两部分组成:上位机和下位机(即多MCU系统);上位机系统可对下位机系统进行代码更新,下位机系统则由多个MCU芯片组成,在设计时可将预留串口将未互相连接的MCU进行联接,其中与外接串口相连的MCU为主MCU,其余MCU芯片为子MCU,每个MCU都具有其独特的ID。上位机的数据可以通过外接串口导入到各个芯片。下位机系统启动,上位机给予下位机以进入Bootloader程序的命令后,下位机可进行代码更新。上位机以传输一帧数据所消耗的时间最短为评价准则选择数据传输路径,并建立连接。本发明还设计了合理的数据帧格式,并在数据传输的过程中应用了超时机制和重传机制,保证了整个数据传输过程的可靠性。
由于本发明升级方案只需要一个外接串口,对于在密封仪器内部的系统,减少了密封仪器外部接口的数量,在一定程度上提高了仪器的密封质量,同时该设计方案简单有效,可通过串口进行扩展,具有良好的扩展性。
附图说明
图1为上位机与多MCU系统之间的连接结构示意图。
图2为各通信帧的结构示意图。
图3为本发明软件升级方法的流程示意图。
图4为上位机与MCU之间数据传输的过程示意图。
具体实施方式
为了更为具体地描述本发明,下面结合附图及具体实施方式对本发明的技术方案进行详细说明。
本实施方式基于单串口更新多MCU代码的在线升级方案,以LPC2368芯片为例,结合图1进行说明。
LPC2368芯片具有4个UART,2路CAN通道,1个SPI接口,2个同步串行接口(SSP),三个I2C接口和一个I2S接口,非常适合于多路串行通信场合,具有一定的代表意义。利用ADS1.2(或其它ISP/IAP工具)将Bootloader程序烧写到起始地址为0,终止地址为0x7FFF的内部flash中,将待更新的代码转换为十六进制的bin文件,其中升级的应用程序的代码区起始地址为0x8000。
图3所示为代码更新过程,主要升级方案步骤如下:
(1)将外接串口同PC机串口相连接,打开上位机,考虑到数据传输的速率,可设置波特率为115200,传输方式为8数据位,1停止位,无奇偶校验,并打开串口。给下位机系统上电,系统上电后芯片计时器开始计时,在T时间内发送某个特定字符串,比如按下Ctrl+b,通过串口相连接的各个芯片进入Bootloader程序。若没有任何动作,各下位机MCU系统执行其内部原有的源程序。
(2)上位机根据按下Ctrl+b的时间t,判断需要更新代码的芯片编号,待更新代码的MCU编号如公式(1)所示。
其中:N为通过串口相互连接的MCU的数量,n为待更新代码的MCU的编号,考虑到反应时间,时隙Δt=T/N的设置选择要合理,一般选5s到10s即可
(3)判断需要更新的芯片编号后,上位机自动发送一个路由选择帧(如图2所示)进行连接,其中路由信息由上位机根据最短路径方法进行计算。上位机计算各个芯片之间传输一帧代码所需要的时间,以到达目的芯片所需要总时间最短的路径作为数据传输的路径。若所连接的均为串口,则计算公式如下:
其中:K为各个路径的跳数,Baudi为第i个芯片与第i+1个芯片之间的波特率,L为控制帧的长度,这里假设上位机与主芯片之间的波特率为Baud0
(4)下位机中接收到该控制帧的芯片将控制帧中包含的芯片编号与自己的芯片编号进行对比,并设置标志位,表示自己处于代码更新的路由中,并记录自己的数据传输路径上一跳和下一跳的芯片编号。
(5)路由控制帧传输到目的芯片后,下位机回复路径建立成功。待上位机系统出现字母d时,表示路径建立完毕并可以进行数据的传输,选择需要更新代码的bin文件,上位机将代码数据进行分段,组帧后进行传输,所传输的数据帧如图2所示。通信帧中包含帧头、编号、长度、源地址、目的地址、数据区和CRC校验七个部分。帧头判断一帧数据的开始,编号保证了数据不会重复成功发送,源地址即为主MCU的ID,目的地址为待更新代码芯片的ID,数据区内的数据分为5个类型,分别是代码数据、路由信息、正确确认、错误确认和传输结束,并包含了其数据类型标志,长度则可以判断通信帧的结束,最后CRC校验(也可采用其它校验方式)保证了数据不会被传输错误。
(6)下位机系统各个芯片根据已经记录下来的路由信息进行选择下一跳的转发芯片。数据传输过程中所经过的芯片执行数据的转发直到到达目的芯片。由于数据在转发的过程中可能经过多个MCU,因此可能发生数据的中断或传输校验错误等可能,在数据的传输过程中加入超时重传机制,最短超时时间可根据公式(3)计算。整个数据传输的过程如图4所示。
上位机发送完数据τs后,若没有接收到下位机回复的具有对应编号的正确确认帧,上位机重传数据,下位机接收到错误的数据帧,则回复错误确认帧,上位机重传数据,反之亦然。若重传次数超过三次,则表示通信路径出现中断,上位机重新选择路径并根据数据帧编号进行续传。待更新的芯片接收到传输的代码数据,执行写入片内Flash的操作直到数据全部传输完毕为止。上位机在发送完最后一帧代码数据后会传输结束帧,下位机对该帧进行回复,表明代码数据全部传输完毕、
数据传输完毕后,重新启动系统,等待Δτ时间后,若PC机收到所有MCU发送过来的版本编号+OK,则表示系统代码更新成功,否则重新执行步骤2进行代码更新,其中等待的时间Δτ为1.5t,其中t可以根据公式(2)进行计算。

Claims (8)

1.一种基于单外接串口的多MCU系统软件升级方法,包括如下步骤:
(1)对多MCU系统中的各MCU进行编号且使每个MCU均有唯一的ID号;
(2)设定多MCU系统外接串口的通信方式并进行上电,进而上位机通过外接串口向系统中的主MCU发送进入Bootloader程序的指令,进而由主MCU直接或间接向其他各MCU转发该指令,以使系统中所有MCU均进入Bootloader程序;
(3)上电后MCU的计时器开始计时,由用户通过对上位机进行触发操作来选择系统中待升级的MCU;
(4)上位机根据以下公式以传输单帧数据时间最短为目标确定待升级MCU的传输路径,并以此构建路由控制帧发送给主MCU,进而由主MCU通过对路由控制帧进行解析并依据路由信息将路由控制帧传递给下一MCU,依此逐个传递最终将路由控制帧传递至待升级的MCU并建立形成所述的传输路径;
m i n { t = Σ i = 0 K 10 * L a / Baud i }
其中:t为上位机向待升级MCU传输单帧数据的时间,K为待升级MCU的传输路径的跳数,La为路由控制帧的长度,Baudi为待升级MCU的传输路径中第i个MCU与第i+1个MCU之间的波特率;
(5)上位机对关于软件升级的代码数据进行分段,组帧后通过传输路径发送给待升级的MCU且采用超时重传机制;
(6)根据步骤(3)至(5),遍历系统中所有需要进行软件升级的MCU。
2.根据权利要求1所述的多MCU系统软件升级方法,其特征在于:所述的步骤(3)中用户选择待升级MCU的具体方法为:首先,设定待升级MCU的最长选择时间T,并将T平均分割成N个时段,且使N个时段与各MCU编号一一对应,N为系统中MCU的个数;然后上位机开始计时,由用户在相应的时段内对上位机进行触发操作,上位机感应该触发操作所对应的时段,确定该时段对应的MCU编号,进而确定该编号对应的MCU为待升级的MCU。
3.根据权利要求1所述的多MCU系统软件升级方法,其特征在于:所述的步骤(5)中当待升级的MCU接收到上位机发送的代码数据帧后,对代码数据帧进行校验,进而根据校验结果通过传输路径向上位机回复正确确认帧或错误确认帧。
4.根据权利要求3所述的多MCU系统软件升级方法,其特征在于:若上位机收到错误确认帧或发送完代码数据帧τ秒后未收到待升级MCU回复的正确确认帧,则通过传输路径向待升级的MCU重传代码数据帧;
τ = 2 · Σ i = 0 K 10 * L b / Baud i
其中:K为待升级MCU的传输路径的跳数,Lb为上行和下行代码数据帧中最长的数据帧的长度,Baudi为待升级MCU的传输路径中第i个MCU与第i+1个MCU之间的波特率。
5.根据权利要求4所述的多MCU系统软件升级方法,其特征在于:若上位机向待升级MCU重传代码数据帧超过三次仍未收到待升级MCU回复的正确确认帧,则返回步骤(2)选择新的传输路径进行续传。
6.根据权利要求3所述的多MCU系统软件升级方法,其特征在于:待升级的MCU接收代码数据帧并执行写入片内Flash的操作,直到所有代码数据帧全部传输完毕,待升级的MCU向通过传输路径向上位机回复传输完成帧。
7.根据权利要求6所述的多MCU系统软件升级方法,其特征在于:所述的路由控制帧、代码数据帧、正确确认帧、错误确认帧和传输完成帧中均依次包含有帧头、编号、长度、源地址、目的地址、数据区和CRC校验七个部分信息。
8.根据权利要求6所述的多MCU系统软件升级方法,其特征在于:待升级的MCU向上位机回复传输完成帧后会重新启动,若重启后的1.5t秒内,上位机收到待升级MCU发送的关于版本编号和更新成功的信息,则表示升级成功;否则,则返回步骤(2)选择新的传输路径重新传输代码数据;t为对应传输路径下上位机向待升级MCU传输单帧数据的时间。
CN201410446923.XA 2014-05-09 2014-09-04 一种基于单外接串口的多mcu系统软件升级方法 Active CN104281470B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410446923.XA CN104281470B (zh) 2014-05-09 2014-09-04 一种基于单外接串口的多mcu系统软件升级方法

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
CN201410196537.X 2014-05-09
CN201410196537X 2014-05-09
CN201410196537 2014-05-09
CN201410446923.XA CN104281470B (zh) 2014-05-09 2014-09-04 一种基于单外接串口的多mcu系统软件升级方法

Publications (2)

Publication Number Publication Date
CN104281470A CN104281470A (zh) 2015-01-14
CN104281470B true CN104281470B (zh) 2017-07-21

Family

ID=52256372

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410446923.XA Active CN104281470B (zh) 2014-05-09 2014-09-04 一种基于单外接串口的多mcu系统软件升级方法

Country Status (1)

Country Link
CN (1) CN104281470B (zh)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106200454B (zh) * 2016-06-21 2019-03-29 沈阳东软医疗系统有限公司 一种多mcu的通信系统及方法
CN106788894A (zh) * 2016-12-20 2017-05-31 中核控制系统工程有限公司 分段独立传输校验方法
CN106843805A (zh) * 2016-12-23 2017-06-13 北京时代民芯科技有限公司 一种8031系列mcu在线下载模块及实现方法
CN106951287B (zh) * 2017-03-17 2020-08-04 北京润科通用技术有限公司 一种软件的配置方法、装置及系统
CN107832072A (zh) * 2017-06-23 2018-03-23 南京悦控智能科技有限公司 一种基于串口通信静默升级单片机固件的方法
CN108279910B (zh) * 2018-01-17 2021-04-13 珠海市杰理科技股份有限公司 程序代码烧写方法、装置、计算机设备和存储介质
CN111585704A (zh) * 2020-05-22 2020-08-25 湖南盈晟电子科技有限公司 一种新型代替模拟输出的数字通信方法
CN112905206A (zh) * 2021-03-10 2021-06-04 深圳市顺讯电子有限公司 基于串口的电路升级方法
CN113342383B (zh) * 2021-06-30 2022-10-11 广州市保伦电子有限公司 一种单片机远程在线烧录升级方法
CN113590152A (zh) * 2021-07-23 2021-11-02 深圳市朗驰欣创科技股份有限公司 设备升级方法、系统、嵌入式设备、上位机及存储介质
CN113904882B (zh) * 2021-09-24 2023-08-18 广东汇天航空航天科技有限公司 一种多mcu单元的通信控制系统及通信控制方法
CN116232995B (zh) * 2023-03-10 2024-12-24 广州导远电子科技有限公司 网络数据处理方法、存储介质和电子设备

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1804799A (zh) * 2005-01-12 2006-07-19 华为技术有限公司 单片机在线加载升级方法及系统
CN101673209A (zh) * 2009-10-28 2010-03-17 广东威创视讯科技股份有限公司 一种升级多个单片机程序的方法
CN102866900A (zh) * 2012-08-03 2013-01-09 浙江昱能光伏科技集成有限公司 更新fpga控制单元的配置数据的方法及系统
CN103324501A (zh) * 2013-05-28 2013-09-25 大连理工大学 无线传感器网络节点软件高效远程更新方法
CN103577233A (zh) * 2013-11-07 2014-02-12 深圳市元征科技股份有限公司 一种obdii读码卡设备、设备升级系统及方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100532467B1 (ko) * 2003-09-18 2005-12-01 삼성전자주식회사 서로 다른 버전에서 생성된 디버깅 정보 파일들을 이용한소스 코드 레벨 디버깅을 제공하는 엠시유 응용프로그램검증 시스템 및 그 방법

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1804799A (zh) * 2005-01-12 2006-07-19 华为技术有限公司 单片机在线加载升级方法及系统
CN101673209A (zh) * 2009-10-28 2010-03-17 广东威创视讯科技股份有限公司 一种升级多个单片机程序的方法
CN102866900A (zh) * 2012-08-03 2013-01-09 浙江昱能光伏科技集成有限公司 更新fpga控制单元的配置数据的方法及系统
CN103324501A (zh) * 2013-05-28 2013-09-25 大连理工大学 无线传感器网络节点软件高效远程更新方法
CN103577233A (zh) * 2013-11-07 2014-02-12 深圳市元征科技股份有限公司 一种obdii读码卡设备、设备升级系统及方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
水下移动平台数据采集和传输系统设计;杨海波;《传感技术学报》;20140331;第362-365页 *

Also Published As

Publication number Publication date
CN104281470A (zh) 2015-01-14

Similar Documents

Publication Publication Date Title
CN104281470B (zh) 一种基于单外接串口的多mcu系统软件升级方法
USRE47598E1 (en) System, device, and method for initializing a plurality of electronic devices using a single packet
KR101283482B1 (ko) Pci 익스프레스 프로토콜 처리 장치
CN113839750B (zh) 一种语义通信系统中的信息传输方法
CN108512785B (zh) 一种数据传输协议方法
CN111752579B (zh) 蓝牙终端升级方法、装置、存储介质与电子设备
CN101361310B (zh) 用于通信数据的数据处理器系统及方法
CN109587022B (zh) 一种点火驱动总线idbus的通信方法
CN106569833A (zh) 一种具有二级boot的dsp程序在线升级方法
CN111641638A (zh) 一种数据传输方法及相关装置
US7808998B2 (en) Disconnected transport protocol connectivity
CN106656424A (zh) 一种数据传输的校验方法
CN105978727A (zh) 一种穿戴式人体运动捕捉系统的节点固件更新方法
CN1322444C (zh) 传输和处理命令与数据的方法
CN110943810A (zh) 面向深空通信的可变滑动窗口长度的回退n帧自动重传方法及系统
CN104333401A (zh) 蓝牙数据发送方法、接收方法、装置及系统
CN105786734A (zh) 数据传输的方法、扩展装置、外围设备及系统
TW201321242A (zh) 數位信號收發裝置、方法以及電動車系統
CN104883611A (zh) 电视屏的调试方法和系统
CN109726604B (zh) 一种接触卡与终端之间的数据交换通信方法
CN104144044A (zh) 一种多设备透明harq的处理方法
CN107832072A (zh) 一种基于串口通信静默升级单片机固件的方法
CN111327393A (zh) 一种基于串行通讯接口的图像探测器参数传输方法
CN113196255B (zh) 基于内部集成电路协议的数据传输方法和传输装置
CN113760808A (zh) 一种电源初次级串口通讯方法、系统、存储介质

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant