掌桥专利:专业的专利平台
掌桥专利
首页

一种私有CAN总线子节点的软件升级系统及方法

文献发布时间:2024-04-18 20:01:55


一种私有CAN总线子节点的软件升级系统及方法

技术领域

本发明属于CAN总线子节点的软件升级领域,具体涉及一种私有CAN总线子节点的软件升级系统及方法。

背景技术

在汽车分布式CAN总线通讯网络架构下,整车主网络挂了绝大部分节点,其均可在整车主网络上使用诊断服务UDS(Unified Diagnostic Services,统一诊断服务),如,基于ISO 14229定义的UDS服务直接进行软件升级(下文用“$+数字”代表某项服务,如$1003);

在汽车域控制器架构下,整车主网络仅挂载有限的几个区域控制器和各个系统的主节点,其他子节点挂在域和主节点的私有CAN总线上,私有CAN总线独立于整车主网络之外,不与整车网络互通,子节点只能通过私有CAN总线与其主节点进行通讯,子节点在整车主网络上不存在独立的地址,亦无法直接与整车网络进行通讯。

专利号为“CN20181030751003”的专利公开了一种基于CAN总线的多节点单片机在线更新代码的方法,可实现多节点同时更新,并能通过CAN报文的ID实现不同节点的代码更新;面对不易拆卸且多有较多节点单片机的系统,可以将所有节点单片机通过CAN网络连接起来;既能满足相同类型单片机节点的代码烧录,也可实现不同类型单片机的代码升级。但是这种方法在需要对子节点的应用程序进行刷写更新的情况下,无法使用诊断服务通过整车主网络直接进行软件升级。

发明内容

本发明的目的在于提供一种私有CAN总线子节点的软件升级系统及方法,可在车身总线上对主节点的私有子节点进行应用程序的刷写与更新,且无需改变当前车身总线的网络协议、报文结构与上位机程序。

为实现上述发明目的,本发明采取的技术方案如下:

一种私有CAN总线子节点的软件升级系统,包括网关、整车网络节点、上位机、公共CAN总线、私有CAN总线;所述公共CAN总线由至少两个CAN线组成且包括CAN1线、CAN2线;所述CAN1线和所述CAN2线通过所述网关通讯;所述整车网络节点包括主节点和子节点;所述主节点的一端和所述CAN2线连接,且所述主节点通过所述CAN2线和所述上位机通讯;所述主节点的另一端和所述私有CAN总线连接,且所述主节点通过所述私有CAN总线和多个所述子节点通讯。

本发明的一种私有CAN总线子节点的软件升级系统,子节点通过主节点的私有CAN总线连接通讯,私有CAN总线与整车网络不互通;当待更新目标为子节点时,作为更新源的上位机通过整车网络,使用常规更新流程,即可对子节点完成软件更新;且在此过程中,可实现无需改变上位机程序、CAN报文结构,仅需主节点对刷写内存地址进行判断区分,即可识别待升级的私有子节点,并对上位机的刷写数据进行转发,从而完成对子节点应用程序的更新,提高了测试试验的效率,也为后期节点的维护提供了便利。

优选的,所述私有CAN总线包括CAN3线;所述整车网络节点包括主节点A、子节点A1、子节点A2;所述主节点A的一端和所述CAN2线连接,且所述主节点A通过所述CAN2线和所述上位机通讯;所述主节点A的另一端和所述CAN3线连接;所述主节点A通过所述CAN3线和所述子节点A1以及所述子节点A2通讯。

本发明还提供一种私有CAN总线子节点的软件升级方法,应用于上述的一种私有CAN总线子节点的软件升级系统;所述软件升级方法包括:

步骤S1.上位机向主节点发送第一功能寻址服务,主节点接收到第一功能寻址服务;

步骤S2.主节点将第一功能寻址服务转发至CAN总线上,并判断是否响应,同时子节点也判断是否响应;若主节点和子节点均判断为是,则主节点向上位机回复肯定响应并进入步骤S3;若主节点或子节点判断为否,则主节点向上位机回复否定响应并结束此流程;

步骤S3.上位机向主节点发送请求下载服务,主节点接收到请求下载服务;

步骤S4.主节点根据请求下载服务中包含的刷写地址信息,判断出更新对象,并根据更新对象来执行相应的更新流程。

优选的,所述步骤S3包括以下步骤:

步骤S3.1.主节点接收到上位机发送的请求下载服务后,根据请求下载服务里的地址信息,判断出更新对象为主节点或者子节点;若更新对象为主节点,则转步骤S3.2;若更新对象为子节点,则转步骤S3.3;

步骤S3.2.上位机对主节点执行第一更新流程;

步骤S3.3.主节点对子节点执行第二更新流程。

优选的,所述步骤S3.2包括以下步骤:

步骤S3.2.1.上位机发送第二功能寻址服务使整车网络节点进入扩展会话模式;

步骤S3.2.2.上位机发送物理寻址服务读取整车网络节点的待更新节点零件号、版本号;

步骤S3.2.3.上位机发送第三功能寻址服务使整车网络节点关闭应用报文、诊断报文。

优选的,所述步骤S3.2还包括以下步骤:

步骤S3.2.4.上位机发送第一更新服务使主节点进入编程会话模式;上位机发送第二更新服务解除主节点的安全访问限制;上位机发送第三更新服务使主节点写入刷写指纹信息;

步骤S3.2.5.上位机发送第四更新服务使主节点请求下载第一软件更新程序,上位机发送第五更新服务使主节点下载第一软件更新程序的数据,上位机发送第六更新服务使主节点结束下载数据,上位机发送第七更新服务使主节点校核下载的数据;

步骤S3.2.6.重复步骤3.2.5,直到主节点下载完成第一软件更新程序;

步骤S3.2.7.上位机再次发送第三更新服务使主节点写入刷写记录;

步骤S3.2.8.上位机发送第四功能寻址服务使整车网络节点重启。

优选的,所述步骤S3.3包括以下步骤:

步骤S3.3.1.主节点发送第一更新服务至子节点使其进入编程会话模式;

步骤S3.3.2.主节点发送第二更新服务至子节点使其解除安全访问限制;

步骤S3.3.3.主节点发送第三更新服务至子节点使其写入刷写指纹信息;

步骤S3.3.4.主节点发送第四更新服务至子节点使其请求下载第二软件更新程序。

优选的,所述步骤S3.3还包括以下步骤:

步骤S3.3.5.上位机发送第五更新服务至主节点,主节点转发第五更新服务至子节点使其下载第一软件更新程序的数据;

步骤S3.3.6.上位机发送第六更新服务至主节点,主节点转发第六更新服务至子节点使其结束下载数据;

步骤S3.3.7.上位机发送第七更新服务至主节点,主节点转发第七更新服务至子节点使其校核下载的数据;

步骤S3.3.8.重复步骤S3.3.5~步骤S3.3.7,直到子节点下载完成第二软件更新程序;

步骤S3.3.9.上位机发送第四功能寻址服务至主节点,主节点转发第四功能寻址服务至子节点使子节点重启。

优选的,所述步骤S2中主节点向上位机回复否定响应并发送否定码至上位机。

优选的,所述软件升级方法还定义不同的子节点应用程序起始地址;所述步骤S4中主节点对请求下载服务里的地址信息进行判断,来判断出待升级的目标子节点。

有益效果:

本发明的一种私有CAN总线子节点的软件升级系统及方法,子节点通过主节点的私有CAN总线连接通讯,私有CAN总线与整车网络不互通;当待更新目标为子节点时,作为更新源的上位机通过整车网络,使用常规更新流程,即可对子节点完成软件更新;且在此过程中,可实现无需改变上位机程序、CAN报文结构,仅需主节点对刷写内存地址进行判断区分,即可识别待升级的私有子节点,并对上位机的刷写数据进行转发,从而完成对子节点应用程序的更新,提高了测试试验的效率,也为后期节点的维护提供了便利。

附图说明

图1所示为实施例一的一种私有CAN总线子节点的软件升级系统的结构框图;

图2所示为实施例二的一种私有CAN总线子节点的软件升级方法的总流程图;

图3所示为实施例二的一种私有CAN总线子节点的软件升级方法的第一子流程图;

图4所示为实施例二的一种私有CAN总线子节点的软件升级方法的第二子流程图;

图5所示为实施例二的一种私有CAN总线子节点的软件升级方法的第三子流程图。

具体实施方式

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对照附图说明本发明的具体实施方式。显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图,并获得其他的实施方式。

下面以具体实施例详细介绍本发明的技术方案。

实施例一

如图1所示,本实施例提供一种私有CAN总线子节点的软件升级系统,包括网关、整车网络节点、上位机、公共CAN总线、私有CAN总线;公共CAN总线由至少两个CAN线组成且包括CAN1线、CAN2线;CAN1线和CAN2线通过网关通讯;整车网络节点包括主节点和子节点;主节点的一端和CAN2线连接,且主节点通过CAN2线和上位机通讯;主节点的另一端和私有CAN总线连接,且主节点通过私有CAN总线和多个子节点通讯。

优选的,私有CAN总线包括CAN3线;整车网络节点包括主节点A、子节点A1、子节点A2;主节点A的一端和CAN2线连接,且主节点A通过CAN2线和上位机通讯;主节点A的另一端和CAN3线连接;主节点A通过CAN3线和子节点A1以及子节点A2通讯。

具体地,本实施例中,上位机往主节点A发送功能寻址服务,判断主节点A、子节点A1或者子节点A2需不需要进行软件升级。

进一步地,本实施例的公共CAN总线作为整车网络,子节点通过主节点的私有CAN总线连接通讯,私有CAN总线与整车网络不互通,私有子节点不具备整车网络上的地址,正常情况下上位机无法区分不同的子节点。

进一步地,本实施例的一种私有CAN总线子节点的软件升级系统,通过定义不同子节点应用程序起始地址,在进行软件升级时由主节点对软件刷写地址进行判断,来识别待升级的目标子节点,从而对其进行软件升级。可实现在整车主网络上使用常规刷写手段对节点私有CAN总线上的子节点进行应用程序的软件更新,且该方法无需改变当前车身总线的网络协议与报文结构。

进一步地,本实施例的一种私有CAN总线子节点的软件升级系统,适用于域控制器、空调控制器、热管理模块等,挂载在整车网络上,具备私有CAN总线,且私有总线上挂载一个或以上子节点,且子节点无法与整车网络通讯的类似架构产品。

实施例二

本实施例提供一种私有CAN总线子节点的软件升级方法,应用于实施例一的一种私有CAN总线子节点的软件升级系统;如图2所示,软件升级方法包括:

步骤S1.上位机向主节点发送第一功能寻址服务,主节点接收到第一功能寻址服务;

步骤S2.主节点将第一功能寻址服务转发至CAN总线上,并判断是否响应,同时子节点也判断是否响应;若主节点和子节点均判断为是,则主节点向上位机回复肯定响应并进入步骤S3;若主节点或子节点判断为否,则主节点向上位机回复否定响应并结束此流程;

步骤S3.上位机向主节点发送请求下载服务,主节点接收到请求下载服务;

步骤S4.主节点根据请求下载服务中包含的刷写地址信息,判断出更新对象,并根据更新对象来执行相应的更新流程。

优选的,步骤S3包括以下步骤:

步骤S3.1.主节点接收到上位机发送的请求下载服务后,根据请求下载服务里的地址信息,判断出更新对象为主节点或者子节点;若更新对象为主节点,则转步骤S3.2;若更新对象为子节点,则转步骤S3.3;

步骤S3.2.上位机对主节点执行第一更新流程;

步骤S3.3.主节点对子节点执行第二更新流程。

优选的,步骤S3.2包括以下步骤:

步骤S3.2.1.上位机发送第二功能寻址服务使整车网络节点进入扩展会话模式;

步骤S3.2.2.上位机发送物理寻址服务读取整车网络节点的待更新节点零件号、版本号;

步骤S3.2.3.上位机发送第三功能寻址服务使整车网络节点关闭应用报文、诊断报文。

优选的,步骤S3.2还包括以下步骤:

步骤S3.2.4.上位机发送第一更新服务使主节点进入编程会话模式;上位机发送第二更新服务解除主节点的安全访问限制;上位机发送第三更新服务使主节点写入刷写指纹信息;

步骤S3.2.5.上位机发送第四更新服务使主节点请求下载第一软件更新程序,上位机发送第五更新服务使主节点下载第一软件更新程序的数据,上位机发送第六更新服务使主节点结束下载数据,上位机发送第七更新服务使主节点校核下载的数据;

步骤S3.2.6.重复步骤3.2.5,直到主节点下载完成第一软件更新程序;

步骤S3.2.7.上位机再次发送第三更新服务使主节点写入刷写记录;

步骤S3.2.8.上位机发送第四功能寻址服务使整车网络节点重启。

优选的,步骤S3.3包括以下步骤:

步骤S3.3.1.主节点发送第一更新服务至子节点使其进入编程会话模式;

步骤S3.3.2.主节点发送第二更新服务至子节点使其解除安全访问限制;

步骤S3.3.3.主节点发送第三更新服务至子节点使其写入刷写指纹信息;

步骤S3.3.4.主节点发送第四更新服务至子节点使其请求下载第二软件更新程序。

优选的,步骤S3.3还包括以下步骤:

步骤S3.3.5.上位机发送第五更新服务至主节点,主节点转发第五更新服务至子节点使其下载第一软件更新程序的数据;

步骤S3.3.6.上位机发送第六更新服务至主节点,主节点转发第六更新服务至子节点使其结束下载数据;

步骤S3.3.7.上位机发送第七更新服务至主节点,主节点转发第七更新服务至子节点使其校核下载的数据;

步骤S3.3.8.重复步骤S3.3.5~步骤S3.3.7,直到子节点下载完成第二软件更新程序;

步骤S3.3.9.上位机发送第四功能寻址服务至主节点,主节点转发第四功能寻址服务至子节点使子节点重启。

优选的,步骤S2中主节点向上位机回复否定响应并发送否定码至上位机。

优选的,软件升级方法还定义不同的子节点应用程序起始地址;步骤S4中主节点对请求下载服务里的地址信息进行判断,来判断出待升级的目标子节点。

具体地,本实施例中,上位机发送的第一功能寻址服务为$1003、第二功能寻址服务为$8502、第三功能寻址服务为$280301、第四功能寻址服务为$1101;上位机发送的第一更新服务为$1002、第二更新服务为$27、第三更新服务为$2E、第四更新服务为$34、第五更新服务为$36、第六更新服务为$37、第七更新服务为$31;上位机发送的请求下载服务为$34。

具体地,本实施例中,上位机发送的对象为主节点A,和主节点A通过私有CAN总线通讯的子节点为A1、A2。

具体地,本实施例中的软件升级方法主要分为软件更新准备阶段、软件更新目标判断阶段、子节点软件更新阶段这三个阶段如下:

(1)软件更新准备阶段,当主节点A接收到上位机的发送的功能寻址服务,如$1003、$8502、$280301时,将其转发至私有CAN总线上,同时等待子节点A1、A2…的回复。若自身与所有子节点均回复肯定响应,则节点向上位机回复肯定响应,若存在至少1个否定响应,则节点需回复否定响应并连同否定码一同发送至上位机;

(2)软件更新目标判断阶段,当主节点A接收到上位机发送的$34服务后,根据$34服务里的地址信息($34服务完整内容为$300044xx xx xx xx yy yy yy yy,其中XX为刷写内存起始地址,yy为更新软件的大小),对软件更新对象进行判断,由于A、A1、A2…应用程序软件的内存起始地址均为不相同,因此主节点A可据此识别出待更新的目标节点。若待更新目标为主节点A,则执行步骤S3.2中的第一更新流程直至结束;若待刷写的目标为私有子节点A1、A2…,主节点A程序跳转至子节点更新软件专用第二软件更新程序对子节点执行软件更新流程;

(3)子节点软件更新阶段,以A1为例,主节点A向A1发送$1002服务使A1进入编程会话模式,发送$27服务解除安全访问限制,发送$2E服务写入刷写指纹信息,发送$34服务请求下载。再此期间,主节点A对上位机回复$34的0x78否定码令其进行等待,若该过程中子节点A1出现否定响应,则主节点A对上位机回复$34否定响应,否则,主节点A对上位机回复$34肯定响应。然后主节点A对上位机的$36服务(请求传输)、$37服务(请求退出传输)、$31服务(校验)、$2E服务(写入刷新信息)转发至子节点A1,同时转发子节点A1的回复。待刷写成功后,转发$1101(ECU重启)服务,完成刷写流程。

进一步地,若软件更新目标判断阶段中判断待更新目标为主节点A,则执行步骤S3.2中的第一更新流程,步骤S3.2中上位机对主节点A执行第一更新流程时,主要分为软件更新准备阶段、软件更新刷写阶段、软件更新结束阶段这三个阶段如下:

(1)软件更新准备阶段,上位机使用功能寻址发送$1003服务使整车网络节点进入扩展会话模式,使用物理寻址发送$22服务读取待更新节点零件号、版本号等相关信息;使用功能寻址发送$8502服务关闭应用报文、发送$280301服务关闭诊断报文;

(2)软件更新刷写阶段,上位机发送$1002服务使节点进入编程会话模式,发送$27服务解除安全访问限制,发送$2E服务写入刷写指纹信息,发送$34服务请求下载FlashDriver,发送$36服务传输数据,发送$37服务结束传输流程,发送$31服务校核下载的数据,重复$34、$36、$37、$31服务下载第一软件更新程序。

(3)软件更新结束阶段,上位机发送$2E服务写入刷写记录,最后使用功能寻址发送$1101重启整车网络上的节点。

具体地,本实施例的子节点通过主节点的私有CAN总线连接通讯,私有CAN总线与整车网络不互通;当待更新目标为子节点时,作为更新源的上位机通过整车网络,使用常规更新流程,即可对子节点完成软件更新;且在此过程中,可实现无需改变上位机程序、CAN报文结构,仅需主节点对刷写内存地址进行判断区分,即可识别待升级的私有子节点,并对上位机的刷写数据进行转发,从而完成对子节点应用程序的更新,提高了测试试验的效率,也为后期节点的维护提供了便利。

以上对本发明所提供的一种私有CAN总线子节点的软件升级系统及方法的实施例进行了详细阐述。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明的原理的前提下,还可以本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。

技术分类

06120116566748