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

利用以太网刷新车载控制器的刷新设备以及方法

文献发布时间:2023-06-19 12:13:22


利用以太网刷新车载控制器的刷新设备以及方法

技术领域

本发明涉及汽车技术领域,特别涉及一种利用以太网刷新车载控制器的刷新设备以及方法。

背景技术

随着汽车技术的发展,车辆上的车载控制器经常面临着应用程序升级的需求。在刷新车载控制器时,通常将刷新软件包发送给车载控制器,车载控制器利用获得的刷新软件包进行刷新。由于以太网具有低成本、高带宽、传输速率快、网络实时等优点,已经被应用到车载控制器的刷新中。

图1为一种车载控制器的刷新流程示意图。如图1所示,车载控制器100(Electronic Control Unit,ECU)和刷新设备300(可称为Flasher)之间通过以太网网络200(Ethernet)连接,刷新软件包被封装形成报文400(即以太网报文),刷新设备300利用以太网网络200向车载控制器100发送报文400,车载控制器100再根据接收到的报文400执行刷新操作。

由于受链路环境限制,以太网网路具有允许传输的最大数据传输单元长度(MTU),该最大数据传输单元长度的值例如为1500B。目前,在利用以太网对车载控制器进行刷新时,通常沿用的还是控制器局域网(Controller Area Network,CAN)刷新的经验,例如将刷新软件包拆分为大小为4KB的刷新软件包分块,且将一个4KB的刷新软件包分块拆分成至少三个以太网报文(例如拆分为数据长度为1500B、1500B和1000B的三个刷新软件包分块并分别封装形成三个报文)以进行传输。而车载控制器通常以单次刷写的数据块长度(FlashPage Size)为刷写单位,车载控制器单次刷写的数据块长度通常为64B、128B、256B等。那么,4KB的刷新软件包分块拆分形成的三个以太网报文中,每个以太网报文中的刷新软件包分块的数据长度都不是车载控制器单次刷写的数据块长度的整数倍。

上述刷新软件包传送过程至少存在三个问题:(1)在两个报文的连接处,总是有不够一个车载控制器单次刷写的数据块长度的情况(即剩余不是车载控制器单次刷写的数据块长度整数倍的部分数据),此时车载控制器会等待下一个报文到来后才继续刷新,增长了车载控制器刷新的等待时间;(2)由于剩余了不是车载控制器单次刷写的数据块长度整数倍的部分数据,车载控制器的本次刷新并未完成,基于统一诊断服务协议USD和诊断数据通信协议DOIP,车载控制器不会发出刷新完成的确认信息,根据传输控制协议(通常基于TCP),刷新设备会认为车载控制器未收到以太网报文,导致刷新设备会不断地给车载控制器发送以太网报文,容易导致网络上出现大量的重传报文,极大地影响了传输效率;(3)通常在车载环境下,车载控制器的处理能力较弱(相对于IT行业而言),而以太网的传输速率快,车载控制器容易出现来不及处理的情况且不会给刷新设备发送确认信息,基于TCP协议,导致刷新设备也会不断的向车载控制器发送报文而产生大量的重传报文,影响了传输效率。实测结果表明,采用上述方式刷新一个3MB的Hex文件需要5分钟至10分钟,刷新速率较慢。

发明内容

本发明提供一种利用以太网刷新车载控制器的刷新设备以及方法,可以提高车载控制器刷新的效率。

为了实现上述目的,本发明的一方面提供一种利用以太网刷新车载控制器的刷新设备,所述刷新设备利用以太网网络向待刷新的车载控制器发送刷新软件包,其中,所述刷新软件包被封装成N个报文进行发送,每个所述报文包含一个刷新软件包分块;按照发送先后次序,第一个至第(N-1)个刷新软件包分块的数据长度被设置为所述车载控制器单次刷写的数据块长度的整数倍,所述刷新软件包除去前(N-1)个刷新软件包分块后的剩余数据为第N个刷新软件包分块,并且,各个所述刷新软件包分块的数据长度均小于所述以太网网络的最大数据传输单元长度,N为大于等于2的整数。

可选的,所述车载控制器在接收到所述报文后,根据所述报文对所述车载控制器相应的待刷新区域进行刷新,在刷新完成后,根据统一诊断服务协议UDS和诊断数据通信协议DOIP,向所述刷新设备反馈确认信息;所述刷新设备在接收到所述确认信息后,根据传输控制协议TCP,向所述车载控制器发送下一个报文,直至完成所有报文的发送。

可选的,所述刷新软件包与所述车载控制器的待刷新区域对应,所述刷新软件包包括对应的所述待刷新区域的地址信息;所述刷新软件包被封装成所述N个报文时,所述地址信息被设置在所述第一个刷新软件包分块中。

可选的,每个所述报文包括报文头和所述刷新软件包分块;所述报文头包括第一关键字段和第二关键字段,所述第一关键字段包含所述刷新软件包的总数据长度信息,所述第二关键字段包含所述刷新软件包分块的数据长度信息。

可选的,所述车载控制器根据所述报文头的第一关键字段和第二关键字段,统计已接收到的所有刷新软件包分块的数据长度之和,以识别所述第N个报文,且在所述第N个报文中的刷新软件包分块的数据长度为所述车载控制器单次刷写的数据块长度的非整数倍时,执行刷新操作以完成所述车载控制器的刷新。

可选的,所述报文头还包括第三关键字段,所述第三关键字段包括执行刷新操作的服务指令。

可选的,所述第一个至第(N-1)个刷新软件包分块的最大数据长度为所述车载控制器单次刷写的数据块长度的K倍,且K通过以下关系式计算获得:

K=Round(MTU/L);

其中,Round表示取整,MTU为所述以太网网络的最大传输单元长度,L为车载控制器单次刷写的数据块长度。

可选的,所述刷新设备包括TBOX或车载网关。

本发明还提供一种利用以太网刷新车载控制器的方法,所述方法由刷新设备利用以太网网络向待刷新的车载控制器发送刷新软件包,其中,所述刷新软件包被封装成N个报文进行发送,每个所述报文包含一个刷新软件包分块;按照发送先后次序,第一个至第(N-1)个刷新软件包分块的数据长度被设置为所述车载控制器单次刷写的数据块长度的整数倍,所述刷新软件包除去前(N-1)个刷新软件包分块后的剩余数据为第N个刷新软件包分块,并且,各个所述刷新软件包分块的数据长度均小于所述以太网网络的最大数据传输单元长度,N为大于等于2的整数。

可选的,所述车载控制器在接收到所述报文后,根据所述报文对所述车载控制器相应的待刷新区域进行刷新,在刷新完成后,根据统一诊断服务协议UDS和诊断数据通信协议DOIP,向所述刷新设备反馈确认信息;所述刷新设备在接收到所述确认信息后,根据传输控制协议TCP,向所述车载控制器发送下一个报文,直至完成所有报文的发送。

本发明的利用以太网刷新车载控制器的刷新设备和方法中,所述刷新设备利用以太网网络向待刷新的车载控制器发送刷新软件包,相对于使用CAN网络进行数据传输的情况,所述以太网网络的数据传输速度较高,有助于提高所述车载控制器的刷新速率;由于所述刷新软件包被封装成N个报文进行发送,每个所述报文包含一个刷新软件包分块,且各个所述刷新软件包分块的数据长度均小于所述以太网网络的最大数据传输单元长度,使得每个刷新软件包分块能够一次性在所述以太网链路上完成传输,可以避免由链路环境限制而产生的拆分,有助于提高车载控制器的刷新速率;由于车载控制器在进行刷新时通常以车载控制器单次刷写的数据块长度为刷写单位,且第一个至第(N-1)个刷新软件包分块的数据长度被设置为所述车载控制器单次刷写的数据块长度的整数倍,所述刷新软件包除去前(N-1)个刷新软件包分块后的剩余数据为第N个刷新软件包分块,使得车载控制器接收到的相邻两个报文的连接处不存在不够一个车载存储器单次刷写的数据块长度的情况,从而所述车载控制器在接收到报文后,可以完成相应的更新且不需要等待下一个报文的到来,可以减小刷新的等待时间,提高所述车载控制器的刷新效率。

进一步的,所述车载控制器在接收到所述报文后,根据所述报文对所述车载控制器对应的待刷新区域进行刷新,在本次刷新完成后,根据统一诊断服务协议UDS诊断数据通信协议DOIP,向所述刷新设备反馈确认信息;所述刷新设备在接收到所述确认信息后,根据传输协议TCP,向所述车载控制器发送下一个报文。也就是说,所述刷新设备以车载控制器反馈(发送)的确认信息作为流量控制的标志,在收到确认信息后才会发送下一个报文,可以避免因车载控制器和刷新设备的处理节拍不一致而导致的数据重传,有助于减少网络上的重复报文,提高车载控制器的刷新效率。

附图说明

图1为一种车载控制器的刷新流程示意图。

图2为本发明一实施例的刷新设备对车载控制器进行刷新的示意图。

具体实施方式

以下结合附图和具体实施例对本发明提出的利用以太网刷新车载控制器的刷新设备以及方法作进一步详细说明。根据下面说明,本发明的优点和特征将更清楚。需说明的是,附图均采用非常简化的形式且均使用非精准的比例,仅用以方便、明晰地辅助说明本发明实施例的目的。

为了提高车载控制器的刷新效率,本实施例提供一种利用以太网刷新车载控制器的刷新设备。所述刷新设备利用以太网网络向待刷新的车载控制器发送刷新软件包,其中,所述刷新软件包被封装成N个报文进行发送,每个所述报文包含一个刷新软件包分块;按照发送先后次序,第一个至第(N-1)个刷新软件包分块的数据长度被设置为所述车载控制器单次刷写的数据块长度的整数倍,所述刷新软件包除去前(N-1)个刷新软件包分块后的剩余数据为第N个刷新软件包分块,并且,各个所述刷新软件包分块的数据长度均小于所述以太网网络的最大数据传输单元长度,N为大于等于2的整数。

所述车载控制器相当于车辆的大脑,可以采集加速踏板信号、制动踏板信号及其他部件信号,并做出相应判断后,控制下层的各部件车载控制器的动作,驱动汽车正常行驶;所述车载控制器还可以驱动力矩控制、制动能量的优化控制、管理整车的能量管理以及监视车辆状态。

所述刷新设备可以包括智能终端(Telematics BOX,TBOX)或车载网关。但不限于此,所述刷新设备还可以包括其它以太网设备,只要可以实现上述功能即可。

所述刷新软件包可以为所述车载控制器的待升级版本的总数据包。另一实施例中,所述刷新软件包可以包括所述车载控制器的当前版本与待升级版本的处理后差分包。

受链路环境的限制,所述以太网网络具有的最大数据传输单元长度(MTU),例如所述以太网网络允许传输的最大长度可以为1500B。当需要传输的刷新软件包的数据长度大于所述最大数据传输单元长度时,所述刷新软件包将无法一次性通过以太网网络进行传输,而是需要将所述刷新软件包拆分为数据长度小于所述最大数据传输单元长度的刷新软件包分块再进行传输。

为了使得所述刷新设备可以顺利的将所述刷新软件包通过所述以太网网络传输到所述车载控制器,本实施例中,所述刷新软件包被封装成N个报文进行发送,每个所述报文包含一个刷新软件包分块,且各个所述刷新软件包分块的数据长度均小于所述以太网网络的最大数据传输单元长度。或者说是说,所述刷新设备可以将所述刷新软件包拆分为N个刷新软件包分块,且所述N个刷新软件包分块的数据长度均被设置为小于所述以太网网络的最大数据传输单元长度。

通常车载控制器的刷写单位为车载控制器单次刷写的数据块长度(Flash PageSize)。为了使得所述车载控制器在接收到所述刷新软件包分块后可以完成所述刷新软件包分块的数据更新且不剩余部分数据,本实施例中,按照发送先后次序,第一个至第(N-1)个刷新软件包分块的数据长度被设置为所述车载控制器单次刷写的数据块长度的整数倍,所述刷新软件包除去前(N-1)个刷新软件包分块后的剩余数据为第N个刷新软件包分块。需要说明的是,本实施例中,所述第一个至第(N-1)个所述软件包分块的数据长度可以相等。但不限于此,在其它实施例中,所述第一个至第(N-1)个所述软件包分块的数据长度可以不相等,只要均为车载控制器单次刷写的数据块长度的整数倍即可。

为了充分的利用所述以太网网络并加快数据的传输效率,本实施例中,所述第一个至第(N-1)个刷新软件包分块的最大数据长度可以设置为所述车载控制器单次刷写的数据块长度L的K倍,K可以通过关系式(1)计算获得。

关系式(1)为:K=Round(MTU/L);其中,Round表示取整,MTU为所述以太网网络的最大传输单元长度,L为车载控制器单次刷写的数据块长度。

图2为利用本发明一实施例的刷新设备对车载控制器进行刷新的示意图。如图2所示,本实施例中,所述刷新软件包拆分形成的刷新软件包分块被封装在报文400(即以太网报文)中,且一个报文400包含一个刷新软件包分块(例如按照发送先后次序,第一个报文包含第一个软件包分块,第二个报文包含第二个软件包分块,以此类推,第N个报文包含第N个软件包分块,其中,图2中的M可以表示任意小于等于N的整数),所述刷新设备300将所述报文依次传输至所述车载控制器100,所述车载控制器100根据接收到的所述报文进行更新(刷新)。

本实施例中,所述刷新软件包与所述车载控制器100的待刷新区域对应(例如一个刷新软件包对应一个待刷新区域),所述刷新软件包可以包括对应的所述待刷新区域的地址信息;所述刷新软件包被封装成所述N个报文时,所述地址信息可以被设置在所述第一个刷新软件包分块中,例如设置在所述第一个刷新软件包分块的头部,以便所述车载控制器100识别所述刷新软件包对应的待刷新区域。另一实施例中,所述车载控制器100可以具有多个待刷新区域,所述刷新设备300可以将多个刷新软件包分别传输给所述车载控制器100,且每个刷新软件包均包括对应的所述待刷新区域的地址信息,所述车载控制器100根据接收到的刷新软件包可以完成各个待刷新区域的更新。

如图2所示,每个所述报文400可以包括报文头和一个刷新软件包分块。所述报文头可以包括多个关键字段,各个关键字段可以表示或携带不同的信息;所述多个关键字段可以按任意顺序排列,各个关键字段只要可以识别即可。

具体的,所述报文头可以包括第一关键字段和第二关键字段,所述第一关键字段可以包含所述刷新软件包的总数据长度信息,所述第二关键字段可以包含所述刷新软件包分块的数据长度信息。

在更新所述车载控制器100的过程中,所述车载控制器100根据所述报文头的第一关键字段和第二关键字段,可以统计已接收到的所有刷新软件包分块的数据长度之和,进而在接收到最后一个报文(即第N个报文)时可以识别出该报文为最后一个,且在最后一个报文中的刷新软件包分块的数据长度为所述车载控制器单次刷写的数据块长度的非整数倍时,亦执行刷新操作以完成所述车载控制器的刷新。上述描述仅是为了强调第N个软件包分块的数据长度为车载控制器单次刷写的数据块长度的非整数倍时的情况;当然,在最后一个报文中的刷新软件包分块的数据长度为所述车载控制器单次刷写的数据块长度的整数倍时,所述车载控制器100也会进行刷新。

本实施例中,所述报文头还可以包括第三关键字段,所述第三关键字段可以包括执行刷新操作的服务指令。具体的,统一诊断服务(Unified Diagnostic Services,UDS)是国际标准化组织所定义的广为应用的诊断数据格式。本实施例中,所述报文可以属于UDS数据。所述执行刷新操作的服务指令例如为0x36。在其它实施例中,所述服务指令还可以为$34(表示擦除车载控制器内存)或$36(表示将上位机发送的刷新数据传输填充到擦除区域)等其它服务指令。

本实施例中,第一关键字段、第二关键字段和第三关键字段在报文头中依次排列。但不限于此,在其它实施例中,第一关键字段、第二关键字段和第三关键字段可以任意排序。

本实施例中,所述车载控制器100的刷新流程可以遵循统一诊断服务协议UDS和诊断数据通信协议DOIP,所述车载控制器100和所述刷新设备300之间的数据传输使用传输控制协议TCP。其中,诊断数据通信协议DOIP(Diagnostic over IP)是国际标准化组织所定义的数据通信协议。

如图2所示,所述车载控制器100在接收到所述报文400后,根据所述报文400对所述车载控制器100相应的待刷新区域进行刷新,并在刷新完成后,根据统一诊断服务协议UDS和诊断数据通信协议DOIP,向所述刷新设备300反馈确认信息;所述刷新设备300在接收到所述确认信息后,根据传输控制协议TCP,向所述车载控制器100发送下一个报文,直至完成所有报文的发送。

参考图2,作为示例,在所述车载控制器100的刷新过程中,所述刷新设备300首先通过所述以太网网络200向所述车载控制器100发送第一个报文,所述第一个报文中的第一个刷新软件包分块的数据长度例如为车载控制器单次刷写的数据块长度的三倍,所述车载控制器100在接收到所述第一个报文后,根据所述第一个报文中的第一个软件包分块中的地址信息可以识别所述刷新软件包对应的待刷新区域,以及根据报文头中的第三关键字段可以获得执行刷新操作的服务指令0x36,并将第一个刷新软件包分块的数据刷写到对应的待刷新区域,在本次刷新完成后,所述车载控制器100向所述刷新设备300反馈确认信息;所述刷新设备300在接到所述确认信息后,将第二个报文发送给所述车载控制器100,所述第二个报文中的第二刷新软件包分块的数据长度例如为车载控制器单次刷写的数据块长度的三倍,所述车载控制器100在接收到所述第二个报文后进行刷新,并在刷新完成后向所述刷新设备300发送确认信息;依此类推,所述刷新设备300在接到确认信息后,将第(N-1)个报文发送给所述车载控制器100,所述第(N-1)个报文中的第(N-1)个刷新软件包分块的数据长度例如为车载控制器单次刷写的数据块长度的三倍,所述车载控制器100在刷新完成后向所述刷新设备300发送确认信息;接着,所述刷新设备300向所述车载控制器100发送第N个报文(即最后一个),所述第N个报文中的第N个刷新软件包分块的数据长度例如不足两个车载控制器单次刷写的数据块长度,所述车载控制器100根据报文头中的第一关键字段可以获得所述刷新软件包的总数据长度,以及根据报文头中的第二关键字段可以获得每个刷新软件包分块的数据长度,并通过统计已接收到的所有刷新软件包分块的数据长度之和,可以识别出所述第N个报文即为最后一个报文,由于是最后一个报文,虽然其刷新软件包分块的数据长度不是车载控制器单次刷写的数据块长度的整数倍,但是车载控制器100还是会执行刷新操作,并完成所述车载控制器100的刷新。

实验表明,利用本实施例的刷新设备300,将一个3MB的Hex文件刷新到车载控制器100中,仅需1分钟。而若采用传统的刷新软件包分块大小(例如刷新软件包分块的大小为4KB),对于同样大小的Hex文件,则完成车载控制器100的刷新需要5分钟。可见,采用本实施例的刷新设备300可以有效的提高车载控制器100的刷新效率。

本实施例还提供一种利用以太网刷新车载控制器的方法,所述方法可以利用上述的刷新设备对车载控制器进行刷新。

所述方法中,由刷新设备利用以太网网络向待刷新的车载控制器发送刷新软件包,其中,所述刷新软件包被封装成N个报文进行发送,每个所述报文包含一个刷新软件包分块;按照发送先后次序,第一个至第(N-1)个刷新软件包分块的数据长度被设置为所述车载控制器单次刷写的数据块长度的整数倍,所述刷新软件包除去前(N-1)个刷新软件包分块后的剩余数据为第N个刷新软件包分块,并且,各个所述刷新软件包分块的数据长度均小于所述以太网网络的最大数据传输单元长度,N为大于等于2的整数。

所述车载控制器在接收到所述报文后,根据所述报文对所述车载控制器相应的待刷新区域进行刷新,在刷新完成后,根据统一诊断服务协议UDS和诊断数据通信协议DOIP,向所述刷新设备反馈确认信息;所述刷新设备在接收到所述确认信息后,根据传输控制协议TCP,向所述车载控制器发送下一个报文,直至完成所有报文的发送。

本实施例的利用以太网刷新车载控制器的刷新设备和方法中,所述刷新设备300利用以太网网络200向待刷新的车载控制器发送刷新软件包,相对于使用CAN网络(通讯速率例如普遍为500kpbs)进行数据传输的情况,所述以太网网络的数据传输速度较高(通讯速率例如达到100M甚至1000M),有助于提高所述车载控制器100的刷新速率;由于所述刷新软件包被封装成N个报文400进行发送,每个所述报文400包含一个刷新软件包分块,且各个所述刷新软件包分块的数据长度均小于所述以太网网络200的最大数据传输单元长度,使得每个刷新软件包分块能够一次性在所述以太网链路上完成传输,可以避免由链路环境限制而产生的拆分,有助于提高车载控制器的刷新速率;由于车载控制器在进行刷新时通常以车载控制器单次刷写的数据块长度为刷写单位,且第一个至第(N-1)个刷新软件包分块的数据长度被设置为所述车载控制器单次刷写的数据块长度的整数倍,所述刷新软件包除去前(N-1)个刷新软件包分块后的剩余数据为第N个刷新软件包分块,使得车载控制器100接收到的相邻两个报文的连接处不存在不够一个车载存储器单次刷写的数据块长度的情况,从而所述车载控制器100在接收到报文后,可以完成相应的更新且不需要等待下一个报文的到来,可以减小刷新的等待时间,提高所述车载控制器的刷新效率。

进一步的,所述车载控制器100在接收到所述报文400后,根据所述报文400对所述车载控制器100对应的待刷新区域进行刷新,并在本次刷新完成后,根据统一诊断服务协议UDS和诊断数据通信协议DOIP,向所述刷新设备300反馈确认信息;所述刷新设备300在接收到所述确认信息后,根据传输协议TCP,向所述车载控制器发送下一个报文。也就是说,所述刷新设备300以车载控制器100反馈(发送)的确认信息作为流量控制的标志,在收到确认信息后才会发送下一个报文,可以避免因车载控制器100和刷新设备300的处理节拍不一致而导致的数据重传,有助于减少网络上的重复报文,提高车载控制器的刷新效率。

需要说明的是,本说明书采用递进的方式描述,在后描述的方法部分重点说明的都是与在前描述的设备部分的不同之处,各个部分之间相同和相似的地方互相参见即可。

上述描述仅是对本发明较佳实施例的描述,并非对本发明权利范围的任何限定,任何本领域技术人员在不脱离本发明的精神和范围内,都可以利用上述揭示的方法和技术内容对本发明技术方案做出可能的变动和修改,因此,凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化及修饰,均属于本发明技术方案的保护范围。

相关技术
  • 利用以太网刷新车载控制器的刷新设备以及方法
  • 刷新控制器以及包括刷新控制器的存储器设备
技术分类

06120113213093