本发明涉及汽车技术领域,尤其涉及车载ECU技术领域,具体是指一种通过CAN通讯更新车载启动加载程序的方法。
背景技术:
车载ECU更新Bootloader(启动加载)程序时,一般需要拆卸设备外壳才能使用烧写器重新烧写Bootloader程序。一般情况下,单片机更新应用程序,需要通过烧写器直接烧写来完成,这种方法在使用中很不方便,所以后面就有了Bootloader,通过CAN总线在线更新应用程序,避免了使用过程中拆卸设备外壳烧写程序的麻烦。
Bootloader驱动是运行于ECU的固定地址的一段启动代码,该段代码主要包含UDS诊断服务和FLASH编程等功能,并且可以通过UDS诊断服务与上位机完成应用程序代码更新的工作。如图1所示,ECU上电后首先运行该段代码,并完成以下功能:
1.上电1秒内未收到上位机更新应用程序的请求,就判断应用程序是否有效,若有效,跳转到应用程序执行,否则停留在Bootloader驱动中继续等待上位机请求。
2.上电1秒内收到上位机更新应用程序的请求,就执行应用程序更新服务。更新完成后,等待上位机复位命令执行复位操作,进入应用程序。
CAN Bootloader应用在汽车上,当汽车已经销售给客户后,一旦后期发现Bootloader有BUG,或者功能方面的更新。那么汽车召回后,只能将汽车中需要更新Bootloader的ECU拆卸下来,然后重新烧写Bootloader程序。这种工作一般4S店很难完成,只能交给车厂专业人员来处理。这样召回成本将会增加很多,并且在拆卸设备过程中可能会导致其他不良故障,影响安全性能。
技术实现要素:
本发明的目的是克服了上述现有技术的缺点,提供了一种通过CAN通讯更新车载启动加载程序的方法,解决了现有技术中不能在线更新车载ECU的启动加载程序的问题。
为了实现上述目的,本发明具有如下构成:
该通过CAN通讯更新车载启动加载程序的方法,其主要特点是,所述的方法包括如下步骤:
(1)通过CAN通讯在车载ECU中烧写反刷新启动加载程序;
(2)使用反刷新启动加载程序将新的启动加载程序更新至车载ECU的启动加载区域。
较佳地,所述的步骤(1)之前,还包括以下步骤:
(0)使用CAN总线将上位机和车载ECU进行连接。
较佳地,所述的步骤(1)包括以下步骤:
(1-1)车载ECU上电;
(1-2)车载ECU判断在预设时间内是否接收到上位机更新启动加载程序的请求,如果是,则继续步骤(1-3),否则继续步骤(1-4);
(1-3)车载ECU中烧写反刷新启动加载程序,然后继续步骤(2);
(1-4)车载ECU运行原有启动加载程序,然后结束退出。
更佳地,所述的步骤(1-4),包括以下步骤:
(1-4-1)车载ECU判断原有启动加载程序是否有效,如果是,则继续步骤(1-4-2),否则继续步骤(1-4-3);
(1-4-2)车载ECU运行原有启动加载程序,然后结束退出;
(1-4-3)车载ECU等待上位机更新原有启动加载程序的请求,并于接收到请求时继续步骤(1-3)。
较佳地,所述的步骤(2)之后,还包括以下步骤:
(3)使用新的启动加载程序下载新的应用程序;
(4)在车载ECU中更新应用程序。
更佳地,所述的步骤(3),包括以下步骤:
(3-1)车载ECU运行新的启动加载程序;
(3-2)车载ECU判断在预设时间内是否接收到上位机更新应用程序的请求,如果是,则继续步骤(3-3),否则继续步骤(3-4);
(3-3)车载ECU下载新的应用程序,然后继续步骤(4);
(3-4)车载ECU运行应用程序,然后结束退出。
更进一步地,所述的(3-4),包括以下步骤:
(3-4-1)车载ECU判断应用程序是否有效,如果是,则继续步骤(3-4-2),否则继续步骤(3-4-3);
(3-4-2)车载ECU运行应用程序,然后结束退出;
(3-4-3)车载ECU等待上位机更新应用程序的请求,并于接收到请求时继续步骤(3-3)。
采用了该发明中的通过CAN通讯更新车载启动加载程序的方法,软件上开发一个基于UDS的反刷新Bootloader程序,该程序可以通过CAN总线专门更新已有的Bootloader程序。车厂需要更新Bootloader程序时,将不再需要拆卸车上的ECU,可以有效降低后期维护成本
附图说明
图1为现有技术中车载ECU更新应用程序的流程图。
图2为本发明的通过CAN通讯更新车载启动加载程序的方法的流程图。
具体实施方式
为了能够更清楚地描述本发明的技术内容,下面结合具体实施例来进行进一步的描述。
本发明提供了一种通过CAN通讯更新车载启动加载程序的方法。如图2所示。
硬件上:在不拆卸车载ECU的前提下,使用PC端设备,通过CAN总线完成Bootloader程序的更新。
软件上:
步骤1:开发一个反刷新Bootloader程序,通过更新应用程序的方式,将反刷新程序烧写到应用程序区域。
步骤2:使用反刷新程序,将新的Bootloader程序更新到Bootloader区域。
步骤3:使用新的Bootloader下载应用程序。
步骤4:后期正常更新应用程序。
具体地,本发明的通过CAN通讯更新车载启动加载程序的方法包括如下步骤:
(1)通过CAN通讯在车载ECU中烧写反刷新启动加载程序;
(2)使用反刷新启动加载程序将新的启动加载程序更新至车载ECU的启动加载区域。
在一种较佳的实施方式中,所述的步骤(1)之前,还包括以下步骤:
(0)使用CAN总线将上位机和车载ECU进行连接。
在一种较佳的实施方式中,所述的步骤(1)包括以下步骤:
(1-1)车载ECU上电;
(1-2)车载ECU判断在预设时间内是否接收到上位机更新启动加载程序的请求,如果是,则继续步骤(1-3),否则继续步骤(1-4);
(1-3)车载ECU中烧写反刷新启动加载程序,然后继续步骤(2);
(1-4)车载ECU运行原有启动加载程序,然后结束退出。
在一种更佳的实施方式中,所述的步骤(1-4),包括以下步骤:
(1-4-1)车载ECU判断原有启动加载程序是否有效,如果是,则继续步骤(1-4-2),否则继续步骤(1-4-3);
(1-4-2)车载ECU运行原有启动加载程序,然后结束退出;
(1-4-3)车载ECU等待上位机更新原有启动加载程序的请求,并于接收到请求时继续步骤(1-3)。
在一种较佳的实施方式中,所述的步骤(2)之后,还包括以下步骤:
(3)使用新的启动加载程序下载新的应用程序;
(4)在车载ECU中更新应用程序。
在一种更佳的实施方式中,所述的步骤(3),包括以下步骤:
(3-1)车载ECU运行新的启动加载程序;
(3-2)车载ECU判断在预设时间内是否接收到上位机更新应用程序的请求,如果是,则继续步骤(3-3),否则继续步骤(3-4);
(3-3)车载ECU下载新的应用程序,然后继续步骤(4);
(3-4)车载ECU运行应用程序,然后结束退出。
在一种更进一步的实施方式中,所述的(3-4),包括以下步骤:
(3-4-1)车载ECU判断应用程序是否有效,如果是,则继续步骤(3-4-2),否则继续步骤(3-4-3);
(3-4-2)车载ECU运行应用程序,然后结束退出;
(3-4-3)车载ECU等待上位机更新应用程序的请求,并于接收到请求时继续步骤(3-3)。
采用了该发明中的通过CAN通讯更新车载启动加载程序的方法,软件上开发一个基于UDS的反刷新Bootloader程序,该程序可以通过CAN总线专门更新已有的Bootloader程序。车厂需要更新Bootloader程序时,将不再需要拆卸车上的ECU,可以有效降低后期维护成本。
在此说明书中,本发明已参照其特定的实施例作了描述。但是,很显然仍可以作出各种修改和变换而不背离本发明的精神和范围。因此,说明书和附图应被认为是说明性的而非限制性的。