一种用于冗余控制器的程序升级方法与流程

文档序号:30696394发布日期:2022-07-09 17:27阅读:128来源:国知局
一种用于冗余控制器的程序升级方法与流程

1.本发明涉及汽车工业技术领域,具体为一种用于冗余控制器的程序升级方法。


背景技术:

2.随着汽车智能化、网联化和电气化,汽车电子元器件在整个零部件中所占有越来越高的比例,电子控制系统在各种复杂工况下失效的概率也大大增加,为了进一步电子控制系统的安全性、稳定性和冗余性,汽车零部件公司设计出了具有多套控制器的电子控制系统,控制器支持具有多种app程序更新方式,列如,天津英创汇智汽车技术有限公司推出了一款l3冗余电动助力转向系统,使用传统的串口、jtag或者dap完成程序的更新,但是控制器在工业化量产和安装在整车上时,上述的接口,除串口外,基本不会预留出来。而使用串口更新app程序时,首先必须把l3冗余eps控制器的原先的线束拆下,然后使用特定的线束连接上控制器,相较于boot loader说,费时费力; boot loader主要用于完成app程序的更新,包括上位机、boot程序和通讯协议,其中上位机用于对app程序进行解析,并将解析好的程序按照所规定的通讯协议传输给控制器;按照iso15765体系协议,将应用层分为四层,分别是物理层、数据链路层、网络层和应用层,每层都有不同的作用,其中网络层主要是完成数据的封包,应用层一般是基于uds协议中的服务所制定的 app程序更新流程;boot程序用于接收上位机传输的app程序,并将app程序存储到特定的flash或者ram区域。
3.现有技术方案主要是针对一套控制器上的单片机使用boot loader进行 app程序升级,而某些安全性要求很高的产品中设计有两套控制器,每套控制器拥有一个单片机,而且两套控制器里的程序是基本一致的,需要人工的重复boot loader程序升级流程,过程繁琐,极易耗费时间。


技术实现要素:

4.本发明的目的在于提供一种用于冗余控制器的程序升级方法,以解决上述背景技术中提出的问题。
5.为实现上述目的,本发明提供如下技术方案:一种冗余控制器,包括控制器甲和控制器乙,其特征在于:所述控制器甲与控制器乙上均设置有连接端口,所述连接端口与控制器甲、控制器乙之间均通过cn总线连接,所述控制器甲与控制器乙通过cn总线或者spi总线连接。
6.优选的,在上位机通过boot loader对所述控制器甲进行app程序升级的情况时,具体是在上位机向控制器甲发出程序更新请求后,判断控制器乙的状态是否满足预定条件;在满足预定条件的情况下,所述控制器甲和控制器乙按照特定的更新步骤进行程序更新。
7.优选的,所述特定的更新步骤包括:
8.步骤一:上位机向控制器甲发出boot loader程序更新请求指令,并完成相关的握手协议;
9.步骤二:控制器甲完成app程序的擦除;
10.步骤三:控制器甲向控制器乙发出boot loader程序更新请求,此时,控制器甲相对于控制器乙就是上位机,使得控制器乙进入boot loader更新模式;
11.步骤四:控制器乙完成app程序的擦除;
12.步骤五:上位机向控制器甲发送app程序,同时控制器甲将上位机发送来的app程序传递给控制器乙;于此同时,控制器甲和控制器乙调用flash 驱动更新位于app段的应用程序;
13.步骤六:上位机校验控制器甲所更新的app程序完整性,若程序不完整,则重新执行步骤二及其以后的步骤;
14.步骤七:控制器甲校验控制器乙程序的完整性,若程序不完整,则重新执行步骤四及其以后的步骤。
15.优选的,所述特定的更新步骤包括:
16.步骤一:上位机向控制器甲发出boot loader程序更新请求指令,并完成相关的握手协议;
17.步骤二:控制器甲完成app程序的擦除;
18.步骤三:上位机向控制器甲发送app程序,于此同时,控制器甲调用flash 驱动更新位于app段的应用程序;
19.步骤四:上位机校验控制器甲所更新app程序的完整性,若程序不完整,则重新执行步骤二及其以后的步骤;
20.步骤五:控制器甲向控制器乙发出boot loader程序更新请求,此时,控制器甲相对于控制器乙就是上位机,使得控制器乙进入boot loader更新模式;
21.步骤六:控制器乙完成app程序的擦除;
22.步骤七:控制器甲将此次更新的app程序传递给控制器乙;于此同时,控制器乙调用flash驱动更新位于app段的应用程序;
23.步骤八:控制器甲校验控制器乙所更新app程序的完整性,若程序不完整,则重新执行步骤六及其以后的步骤。
24.优选的,判断所述控制器乙的状态是否满足预定条件包括:所述控制器乙能够正常运行程序,且能够与控制器甲相互通讯。
25.与现有技术相比,本发明的有益效果是:
26.1、本发明可以在对其中的一套控制器使用上位机进行app程序升级时,正在程序升级的控制器能够同时对另外的一套控制器进行程序升级,简化升级流程,大大节省了升级耗费的时间;
27.2、本发明当一套控制器的单片机flash发生故障而导致app程序不能正常执行时,另外一套控制器将app程序通过通讯协议传输至此损坏的控制器的ram上,使得损坏的控制器能够正常的执行app程序,使得冗余控制系统还能正常的工作。
附图说明
28.图1为本发明实施例一程序升级方法的流程框图;
29.图2为本发明程序升级时冗余控制器与上位机连接示意图;
30.图3为本发明冗余控制器flash故障下的容错方案示意图;
31.图4为本发明冗余控制器flash故障下的容错流程框图;
32.图5为本发明实施例二程序升级方法的流程框图。
33.图中:1、控制器甲;2、控制器乙。
具体实施方式
34.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
35.实施例一
36.请参阅图1-4,本发明提供一种技术方案:一种冗余控制器,包括控制器甲1和控制器乙2,其特征在于:控制器甲1与控制器乙2上均设置有连接端口,连接端口与控制器甲1、控制器乙2之间均通过cn总线连接,控制器甲1与控制器乙2通过cn总线或者spi总线连接;
37.一种冗余控制器程序升级方法,其特征在于:在上位机通过bootloader对控制器甲1进行app程序升级的情况时,具体是在上位机向控制器甲1发出程序更新请求后,判断控制器乙2的状态是否满足预定条件;在满足预定条件的情况下,控制器甲1和控制器乙2按照特定的更新步骤进行程序更新;
38.特定的更新步骤包括:
39.步骤一:上位机向控制器甲1发出bootloader程序更新请求指令,并完成相关的握手协议;
40.步骤二:控制器甲1完成app程序的擦除;
41.步骤三:控制器甲1向控制器乙2发出bootloader程序更新请求,此时,控制器甲1相对于控制器乙2就是上位机,使得控制器乙2进入bootloader更新模式;
42.步骤四:控制器乙2完成app程序的擦除;
43.步骤五:上位机向控制器甲1发送app程序,同时控制器甲1将上位机发送来的app程序传递给控制器乙2;于此同时,控制器甲1和控制器乙2调用flash驱动更新位于app段的应用程序;
44.步骤六:上位机校验控制器甲1所更新的app程序完整性,若程序不完整,则重新执行步骤二及其以后的步骤;
45.步骤七:控制器甲1校验控制器乙2程序的完整性,若程序不完整,则重新执行步骤四及其以后的步骤。
46.判断控制器乙2的状态是否满足预定条件包括:控制器乙2能够正常运行程序,且能够与控制器甲1相互通讯。
47.在控制器运行时,需要诊断flash是否出现故障,通过flash故障诊断系统,一套控制器利用flash故障诊断系统能够判断另外一套控制器是否发生flash故障;在控制器甲1的flash发生故障的情况下,控制器乙2能够通过故障诊断系统得到结果,控制器乙2对发生故障的控制器按照特定的更新步骤进行操作。
48.在控制器甲1的flash发生故障的情况下,控制器乙2对发生故障的控制器按照特
定的更新步骤包括且不限于:
49.步骤一:控制器甲1使得控制器乙2进入单片机厂商定义的bootstraploader更新机制;
50.步骤二:控制器甲1按照单片机厂商定义的通讯协议完成握手;
51.步骤三:控制器甲1发送自身的app程序到控制器乙2,bootstraploader更新机制会默认将app程序存储到控制器乙2的ram中;
52.步骤四:控制器甲1校验控制器乙2程序完整性,若程序不完整,则重新执行步骤三及其以后的步骤。
53.flash故障诊断系统包括单片机的flash故障诊断单元和数据存储器,单片机的flash故障诊断单元能够诊断到flash发生故障,数据存储器用于存储flash的故障信息,控制器甲1和控制器乙2都能访问数据存储器。
54.数据存储器是eeprom。
55.工作原理:该发明在使用时,当需要升级时,通过上位机任意的向向控制器甲1(控制器乙2)发出bootstrap更新请求,并与控制器甲1(控制器乙2)完成握手协议,控制器甲1(控制器乙2)清除自身的app程序,并向控制器乙2(控制器甲1)发出bootstrap更新请求,并与控制器乙2(控制器甲1)完成握手协议,控制器乙2(控制器甲1)清除自身的app程序,上位机向控制器甲1(控制器乙2)发送app程序,同时控制器甲1(控制器乙2)将上位机发送来的app程序传递给控制器乙2(控制器甲1),实现同时升级,接收程序后,控制器甲1与控制器乙2调用flash驱动更新位于app段的应用程序,检验程序完整性,程序不完整,继续清除程序,重新传输,直至更新完成,当发生控制器甲1(控制器乙2)发生故障时,控制器甲1(控制器乙2)将此故障信息写入外部的数据存储器中,控制器乙2(控制器甲1)读取控制器甲1写入到外部数据存储器的flash故障信息,控制器甲1(控制器乙2)将app程序发送至控制器乙2(控制器甲1),控制器乙2(控制器甲1)运行app段的应用程序,检验程序完整性,程序不完整,重新传输app程序,直至程序传输完整,具有节省程序更新时间、运行流程较为简单的优点。
56.实施例二
57.请参阅图2-5,本发明提供一种技术方案:一种冗余控制器,包括控制器甲1和控制器乙2,其特征在于:控制器甲1与控制器乙2上均设置有连接端口,连接端口与控制器甲1、控制器乙2之间均通过cn总线连接,控制器甲1与控制器乙2通过cn总线或者spi总线连接。
58.一种冗余控制器程序升级方法,其特征在于:在上位机通过bootloader对控制器甲1进行app程序升级的情况时,具体是在上位机向控制器甲1发出程序更新请求后,判断控制器乙2的状态是否满足预定条件。在满足预定条件的情况下,控制器甲1和控制器乙2按照特定的更新步骤进行程序更新。
59.特定的更新步骤包括:
60.步骤一:上位机向控制器甲1发出bootloader程序更新请求指令,并完成相关的握手协议。
61.步骤二:控制器甲1完成app程序的擦除。
62.步骤三:上位机向控制器甲1发送app程序,于此同时,控制器甲1调用flash驱动更新位于app段的应用程序。
63.步骤四:上位机校验控制器甲1所更新app程序的完整性,若程序不完整,则重新执行步骤二及其以后的步骤。
64.步骤五:控制器甲1向控制器乙2发出boot loader程序更新请求,此时,控制器甲1相对于控制器乙2就是上位机,使得控制器乙2进入bootloader更新模式。
65.步骤六:控制器乙2完成app程序的擦除。
66.步骤七:控制器甲1将此次更新的app程序传递给控制器乙2。于此同时,控制器乙2调用flash驱动更新位于app段的应用程序。
67.步骤八:控制器甲1校验控制器乙2所更新app程序的完整性,若程序不完整,则重新执行步骤六及其以后的步骤。
68.判断控制器乙2的状态是否满足预定条件包括:控制器乙2能够正常运行程序,且能够与控制器甲1相互通讯。
69.在控制器运行时,需要诊断flash是否出现故障,通过flash故障诊断系统,一套控制器利用flash故障诊断系统能够判断另外一套控制器是否发生flash故障。在控制器甲1的flash发生故障的情况下,控制器乙2能够通过故障诊断系统得到结果,控制器乙2对发生故障的控制器按照特定的更新步骤进行操作。
70.在控制器甲1的flash发生故障的情况下,控制器乙2对发生故障的控制器按照特定的更新步骤包括且不限于:
71.步骤一:控制器甲1使得控制器乙2进入单片机厂商定义的bootstraploader更新机制。
72.步骤二:控制器甲1按照单片机厂商定义的通讯协议完成握手。
73.步骤三:控制器甲1发送自身的app程序到控制器乙2,bootstrap loader 更新机制会默认将app程序存储到控制器乙2的ram中。
74.步骤四:控制器甲1校验控制器乙2程序完整性,若程序不完整,则重新执行步骤三及其以后的步骤。
75.flash故障诊断系统包括单片机的flash故障诊断单元和数据存储器,单片机的flash故障诊断单元能够诊断到flash发生故障,数据存储器用于存储flash的故障信息,控制器甲1和控制器乙2都能访问数据存储器。
76.数据存储器是eeprom。
77.工作原理:该发明在使用时,该发明在使用时,当需要升级时,通过上位机任意的向向控制器甲1(控制器乙2)发出bootstrap更新请求,并与控制器甲1(控制器乙2)完成握手协议,控制器甲1(控制器乙2)清除自身的app程序,上位机向控制器甲1(控制器乙2)发送app程序,上位机通过crc校验方法校验控制器甲1(控制器乙2)中所更新的app程序,程序不完整,继续清除程序,重新传输,直至程序完整,再控制器甲1(控制器乙2)向控制器乙2(控制器甲1)发出bootstrap更新请求,并与控制器乙 2(控制器甲1)完成握手协议,控制器乙2(控制器甲1)清除自身的app程序,控制器甲1(控制器乙2)将上位机发送来的app程序传递给控制器乙2 (控制器甲1),控制器甲1(控制器乙2)通过crc校验方法校验控制器乙 2(控制器甲1)中所更新的app程序,程序不完整,继续清除程序,重新传输,直至程序完整,更新完成,当发生控制器甲1(控制器乙2)发生故障时,控制器甲1(控制器乙2)将此故障信息写入外部的数据存储器中,控制器乙 2(控制器甲1)读取控制器甲1写入到外部数据存储器的
flash故障信息,控制器甲1(控制器乙2)将app程序发送至控制器乙2(控制器甲1),控制器乙2(控制器甲1)运行app段的应用程序,检验程序完整性,程序不完整,重新传输app程序,直至程序传输完整,具有节省程序更新时间、运行流程较为简单的优点。
78.需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。
79.尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1