[发明专利]一种基于单外接串口的多MCU系统软件升级方法有效
申请号: | 201410446923.X | 申请日: | 2014-09-04 |
公开(公告)号: | CN104281470B | 公开(公告)日: | 2017-07-21 |
发明(设计)人: | 杨海波;刘陈展;王开兴;孙晨;徐元欣;徐文 | 申请(专利权)人: | 浙江大学 |
主分类号: | G06F9/445 | 分类号: | G06F9/445 |
代理公司: | 杭州天勤知识产权代理有限公司33224 | 代理人: | 胡红娟 |
地址: | 310027 浙*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 外接 串口 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之间的波特率。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浙江大学,未经浙江大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410446923.X/2.html,转载请声明来源钻瓜专利网。
- 上一篇:多核处理器共享高速缓存任务调度方法
- 下一篇:用于现场仪器的维护系统