一种Bootloader波特率转换方法及装置与流程

文档序号:13763097阅读:748来源:国知局
一种Bootloader波特率转换方法及装置与流程

本发明属于通信技术领域,尤其涉及一种Bootloader波特率转换方法及装置。



背景技术:

移动补电车的充电CAN盒和放电CAN盒的APP区使用的波特率是250K,而充电CAN盒和放电CAN盒出厂时Bootloader区的波特率是125K,当使用电脑在调试口进行升级程序时,程序从APP跳转到Bootloader,此时上位机与Bootloader无法通信,造成升级不成功。

具体来说,Bootloader区和APP区都有CAN通信的初始化程序,Bootloader区的CAN通信的初始化程序波特率是125K,APP区的CAN通信的初始化程序波特率是250K,Bootloader区和APP区的CAN通信必须初始化成相同的波特率才能互相通信,通信上后才能升级程序;即APP是250K波特率,Bootloader也必须是250K才能与APP通信上;所以需要将Bootloader转换成250K。

现有技术中,若要将Bootloader的波特率转换成250K,需要将充电CAN盒或者放电CAN盒进行升级。而在升级的时候,因为充电CAN盒和放电CAN盒是安装在主控箱内,需要先拆卸下主控箱盖子,再拆卸下CAN盒盖子,才能实施升级操作。

一方面,主控箱内除了有CAN盒外,还有其他比如BMS主机、绝缘模块,继电器等部件,他们之间都有连接线连接在一块,线路非常多,而且主控箱内空间有限,经常打开拆卸CAN盒难免会碰到线,造成线路断开,在没有意识到的情况下,往往会造成某些模块之间通信不上,使移动补电车运行出错率增加;另一方面,因为移动补电车本来就是带着高压电,主控箱内也有通高压的铜排,像这样操作容易接触到裸露着的高压铜排,比较危险;再一方面,整个拆卸的过程一般最少需要花费3个小时,执行效率低,特别是在大批量需要刷新Bootloader的时候,更体现出效率低下。



技术实现要素:

本发明所要解决的技术问题在于提供一种Bootloader波特率转换方法及装置,旨在提供一种简便、高效的Bootloader波特率转换方法。

本发明提供了一种Bootloader波特率转换方法,包括:

步骤S1,APP区接收到上位机的升级指令后,程序从APP区跳转到Bootloader区;

步骤S2,修改上位机的波特率以使上位机与Bootloader区建立连接,在Bootloader区中根据上位机发送的第一预设程序及其相关参数把APP区的代码升级为BootloaderB,并将程序跳转到BootloaderB所在的区;

步骤S3,在BootloaderB所在的区中根据上位机的第二预设程序及其相关参数把Bootloader区的代码升级为波特率为250K的Bootloader,再跳转到Bootloader区。

进一步地,所述步骤S2中,所述第一预设程序的波特率为125K;所述BootloaderB为波特率为125K的带有Bootloader功能的APP。

进一步地,所述步骤S2中,所述第一预设程序的相关参数包括:第一预设程序的大小、内容及擦写地址;

所述根据上位机发送的第一预设程序及其相关参数把APP区的代码升级为BootloaderB包括:根据上位机发送的第一预设程序的大小、内容及擦写地址擦除APP区的指定地址,并将所述内容写入到所述指定地址。

进一步地,所述步骤S3中,所述第二预设程序的相关参数包括:第二预设程序的大小、内容及擦写地址;

所述根据上位机的第二预设程序及其相关参数把Bootloader区的代码升级为波特率为250K的Bootloader包括:根据上位机发送的第二预设程序的大小、内容及擦写地址擦除BootloaderB区的指定地址,并将所述内容写入到所述指定地址。

本发明还提供了一种Bootloader波特率转换装置,包括:

程序跳转模块,用于在APP区接收到上位机的升级指令后,程序从APP区跳转到Bootloader区;

第一升级模块,用于修改上位机的波特率以使上位机与Bootloader区建立连接,并在Bootloader区中根据上位机发送的第一预设程序及其相关参数把APP区的代码升级为BootloaderB,并将程序跳转到BootloaderB所在的区;

第二升级模块,用于根据上位机的第二预设程序及其相关参数把Bootloader区的代码升级为波特率为250K的Bootloader,再跳转到Bootloader区。

进一步地,所述第一预设程序的波特率为125K;所述BootloaderB为波特率为125K的带有Bootloader功能的APP。

进一步地,所述第一预设程序的相关参数包括:第一预设程序的大小、内容及擦写地址;

所述第一升级模块具体用于:根据上位机发送的第一预设程序的大小、内容及擦写地址擦除APP区的指定地址,并将所述内容写入到所述指定地址。

进一步地,所述第二预设程序的相关参数包括:第二预设程序的大小、内容及擦写地址;

所述第二升级模块具体用于:根据上位机发送的第二预设程序的大小、内容及擦写地址擦除BootloaderB区的指定地址,并将所述内容写入到所述指定地址。

本发明与现有技术相比,有益效果在于:本发明提供的一种Bootloader波特率转换方法及装置,程序从APP区跳转到Bootloader区,在Bootloader区中把APP升级为BootloaderB,再跳转到BootloaderB所在的区;在所述BootloaderB所在的区中把Bootloader升级为波特率为250K的Bootloader,再跳转到Bootloader区,此时即可实施APP升级操作。本发明不需要拆卸下主控箱盖子和CAN盒盖子即可将波特率转换成250K,操作安全;并且不会影响移动补电车的运行出错率;且能大大简化转换步骤,提升升级效率。

附图说明

图1是本发明实施例提供的Bootloader波特率转换过程示意图;

图2是本发明实施例提供的一种Bootloader波特率转换方法的流程图;

图3是本发明实施例提供的一种Bootloader波特率转换装置的示意图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

本发明的主要实现思想为:先运行APP程序,进入APP程序后,运行跳转指令,先跳转到Bootloader区,BootLoader根据第一预设程序升级APP区的代码,把APP区的代码升级成BootloaderB,再跳转到BootloaderB所在的区。在BootloaderB所在的区中根据第二预设程序把Bootloader升级成波特率为250K的Bootloader,升级成功后,跳转到Bootloader。此时Bootloader已经是250K,可以升级所要升级的APP程序,上述具体过程如图1所示。

下面具体介绍这种Bootloader波特率转换方法,如图2所示,包括:

步骤S1,APP区接收到上位机的升级指令后,程序从APP区跳转到Bootloader区;

具体地,在进行升级流程前,先运行程序。整个程序分为Bootloader区和APP区,Bootloader区的起始地址是0,终止地址是0x3FFF,APP区的起始地址是0x4000,终止地址是整个flash终止地址。程序的运行顺序是先进入Bootloader,判断是否要跳转到APP区,确定要跳转,则直接跳转到APP区,运行APP程序。

具体地,APP区的波特率为250K,Bootloader区的波特率为125K,上位机的波特率为250K。只有在APP与上位机的波特率相同时,才可以互相通信;同理,只有在Bootloader与上位机的波特率相同时,才可以互相通信。

具体地,APP区在接收到上位机的升级指令时,发送一个芯片的复位指令,使程序从APP区跳转到Bootloader区。

步骤S2,修改上位机的波特率以使上位机与Bootloader区建立连接,在Bootloader区中根据上位机发送的第一预设程序及其相关参数把APP区的代码升级为BootloaderB,并将程序跳转到BootloaderB所在的区;

具体地,上位机的波特率为250K,而Bootloader的波特率为125K,当程序跳转到Bootloader区后,因为上位机的波特率与Bootloader的波特率不一致而无法连接。此时,需要把上位机的波特率手动修改为125K,上位机即可与Bootloader可以进行通信。当通信上后,上位机将第一预设程序的大小、内容、擦写地址告知Bootloader,Bootloader进行检查,判断升级的不是自己本身,即可以在APP区中进行擦除指定地址,再将所述内容写入到所述指定地址。写完后,即是成功地把APP区的代码升级为BootloaderB。

具体地,所述第一预设程序是带有125K波特率的CAN通信。

进一步地,所述BootloaderB为波特率为125K的带有Bootloader功能的APP。

步骤S3,在BootloaderB所在的区中根据上位机的第二预设程序及其相关参数把Bootloader区的代码升级为波特率为250K的Bootloader,再跳转到Bootloader区。

具体地,跳转到BootloaderB区后,上位机的波特率是125K,BootloaderB也是125K,所以不需要手动转换波特率,上位机可以直接连接上BootloaderB。此时,上位机将第二预设程序的大小、内容、擦写地址告知BootloaderB,BootloaderB进行检查,判断升级的不是自己本身,即可以在Bootloader区中进行擦除指定地址,再将所述内容写入到所述指定地址。写完后,即是成功地把Bootloader区的代码升级为波特率为250K的Bootloader。

具体地,所述第二预设程序是带有250K波特率的Bootloader程序,所述250K波特率的Bootloader程序的作用是将原来的bootloader程序替换掉,直接换成带有250KCAN通信的程序。

进一步地,跳转到Bootloader区后,即可升级所要升级的APP程序。

本发明还提供了一种Bootloader波特率转换装置,如图3所示,包括:

程序跳转模块1,用于在APP区接收到上位机的升级指令后,程序从APP区跳转到Bootloader区;

第一升级模块2,用于修改上位机的波特率以使上位机与Bootloader区建立连接,并在Bootloader区中根据上位机发送的第一预设程序及其相关参数把APP区的代码升级为BootloaderB,并将程序跳转到BootloaderB所在的区;

第二升级模块3,用于根据上位机的第二预设程序及其相关参数把Bootloader区的代码升级为波特率为250K的Bootloader,再跳转到Bootloader区。

本发明提供的一种Bootloader波特率转换方法及装置,通过上位机即可将Bootloader的波特率转换为250K,操作安全,不需要拆卸下主控箱盖子和CAN盒盖子,并且不会影响移动补电车的运行出错率;且能大大简化转换步骤,提升升级效率,减少工时和成本。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1