本发明涉及汽车数据更新领域,尤其涉及一种基于车载以太网的并行刷新方法。
背景技术:
近年来,汽车技术发展迅速。高级驾驶辅助系统,无人驾驶系统,互联功能,智能座舱这些新技术被集成到汽车中去。这些新技术带来了代码量的大幅增长,表现在文件上就是文件容量普遍达十兆级别,甚至百兆级别。这给整车系统的更新带来了挑战。传统的基于can通信作为主干的技术,由于can的通信速率普遍为500kpbs,传输速率慢,难以满足日益增长的数据量。
由于以太网通讯速率可达100m甚至1000m,并且由于以太网通信速率远大于can通信。理论上可以实现并行刷新。可以大幅的降低刷新时间,从而减少整车软件更新时间,给用户更好的体验。
技术实现要素:
本申请为了解决上述技术问题,提出了一种基于车载以太网的并行刷新方法,包括以下步骤:
s1,设置刷新文件中的并行刷新帧,can控制器选择对应的can通道并将所述刷新文件拆包;
s2,接收以太网打包工具上传的并行can刷新打包数据;
s3,将所述并行can刷新打包数据拆包后下发至对应的can通道;
s4,接收所述can控制器的应答报文;
s5,更新对应的ack位数据,判断是否所有所述并行刷新帧中的所述ack位数据已正确更新,若判断结果为否,则重新执行所述步骤s1。
上述技术方案中,基于太网高达100m甚至1000m的通讯速率,对汽车整车实现并行刷新,大幅的降低刷新时间,减少整车软件更新时间,给用户更好的体验;所述can通道至少与一个ecu通信,实现对多个ecu的并行刷新。
作为优选,所述步骤s1包括:
s1.1,根据整车架构支持的can总线数量配置所述并行刷新帧中请求帧的参数;
s1.2,根据所述请求帧选择对应的所述can控制器;
s1.3,所述can控制器选择对应的can通道刷新进程并对所述刷新文件拆包。
作为优选,所述请求帧的控制头格式为:
numberofcanmessages=x
其中,x为小于或等于整车架构支持的can总线数量的正整数。
作为优选,根据所述请求帧所含数据选择使用位号为1至x的can通道,剩下的所有can通道不使用。
作为优选,所述请求帧的控制头中信息数据包括used位数据、update位数据、ack位数据。
作为优选,所述步骤s2之前还包括:
s2.1,所述以太网打包工具获取所述can通道的并行can数据,并根据所述并行刷新帧格式对所述并行can数据打包;
s2.2,所述以太网打包工具上传所述并行can刷新打包数据。
作为优选,所述步骤s3包括:
s3.1,将所述并行can刷新打包数据拆包后获取多条can报文;
s3.2,将多条所述can报文下发至对应所述can通道的所述can控制器。
作为优选,所述步骤s4之前包括:
s4.1,所述can控制器对所述can报文进行应答并生成所述应答报文;
s4.2,所述can控制器上传对应的所述can通道内的所述应答报文。
作为优选,所述步骤s4.1中的所述应答报文包含应答帧,所述应答帧和所述请求帧格式一致;
所述应答帧的控制头中信息数据包括used位数据、update位数据、ack位数据。
作为优选,所述步骤s5包括:
s5.1,更新所述ack位数据,判断如果为对应所述can通道的所述应答报文,若判断结果为对应正确,则更新为所述ack位数据的赋值为1;若判断结果为对应错误,则更新为所述ack位数据的赋值为0;
s5.2,判断是否所有的所述ack位数据的赋值均为1,若判断结果为否,则重新执行所述步骤s1。
综上所述,本技术方案的有益效果为:
1、基于以太网高达100m甚至1000m的通讯速率,对汽车整车实现并行刷新,大幅的降低刷新时间,减少整车软件更新时间,给用户更好的体验。
2、为了实现并行刷新,设计基于以太网帧的并行刷新帧、在以太网帧的数据部分定义了控制头,所述控制头包含有used位数据、update位数据、ack位数据,确定具体执行刷新任务的所述can通道和控制器。
3、每个使用执行刷新任务的所述can通道至少与一个ecu通信,多条can通道并行刷新,实现对多个ecu的并行刷新。
附图说明
图1为本发明一种基于车载以太网的并行刷新方法的流程图;
图2为本发明并行刷新帧格式的示意图;
图3为本发明步骤s1的流程图;
图4本发明步骤s2的流程图;
图5为本发明步骤s3的流程图;
图6为本发明步骤s4的流程图;
图7为本发明步骤s4的流程图;
图8为本发明刷新过程中的物理连接示意。
具体实施方式
这里使用的术语仅用于描述特定实施例的目的,而不意图限制本发明。除非另外定义,否则本文使用的所有术语具有与本发明所属领域的普通技术人员通常理解的相同的含义。将进一步理解的是,常用术语应该被解释为具有与其在相关领域和本公开内容中的含义一致的含义。本公开将被认为是本发明的示例,并且不旨在将本发明限制到特定实施例。
实施例
如图1-8所示,一种基于车载以太网的并行刷新方法,包括以下步骤:
s1,设置刷新文件中的并行刷新帧,can控制器选择对应的can通道并将所述刷新文件拆包。
如图8所示,首先将汽车整车中,上位机通过以太网连接中央网关,在中央网关上设置刷新文件中的并行刷新帧,即选择需要并行刷新的控制器程序文件,选中4个控制器相应的程序文件,本实施例中优选为ecu11,ecu21,ecu31,ecu41这四个刷新文件,每一个对应具有一个ecu,即为can控制器,特此说明的是每条can通道可以对应指向连接多个ecu。can刷新控制程序控制对应的can刷新进程,并对刷新文件拆包。
所述步骤s1包括:
s1.1,根据整车架构支持的can总线数量配置所述并行刷新帧中请求帧的参数。
其中,为了实现并行刷新,需要设计一种基于以太网帧的并行刷新帧。如图2所示,本发明并行刷新帧格式的示意图。本实施例优选为整车架构支持的can总线数量为8条线路。在以太网帧的数据部分定义了控制头,控制头长度为8字节。后面为can1-can8的can帧,每一个can帧长度也为8字节。
所述请求帧的控制头格式为:
numberofcanmessages=x
其中,x为小于或等于整车架构支持的can总线数量的正整数。根据所述请求帧所含数据选择使用位号为1至x的can通道,剩下的所有can通道不使用。所述请求帧的控制头中信息数据包括used位数据、update位数据、ack位数据。例如,numberofcanmessages=4,表示can1-can8仅使用can1-can4,can5-can8未使用。相应的used5-used8,update5-update8,ack5-ack8也不使用。
s1.2,根据所述请求帧选择对应的所述can控制器。
s1.3,所述can控制器选择对应的can通道刷新进程并对所述刷新文件拆包。
s2.1,所述以太网打包工具获取所述can通道的并行can数据,并根据所述并行刷新帧格式对所述并行can数据打包。以太网打包方式按照所述并行刷新帧的格式对4路并行can数据打包。其中,所述以太网打包工具为通过程序语言编写的对数据进行封包打包的软件工具。
s2.2,所述以太网打包工具上传所述并行can刷新打包数据。
s2,接收以太网打包工具上传的并行can刷新打包数据。其中,所述中央网关通过以太网协议与所述以太网打包工具连接,接收所述以太网打包工具上传的所述并行can刷新打包数据。
s3,将所述并行can刷新打包数据拆包后下发至对应的can通道。所述中央网关拆包后根据对应关系,将相应的can1-can4报文送入对应的can1-can4通道,所述can控制器应答报文
所述步骤s3包括:
s3.1,将所述并行can刷新打包数据拆包后获取多条can报文;
s3.2,将多条所述can报文下发至对应所述can通道的所述can控制器。
s4,接收所述can控制器的应答报文。
所述can控制器应答报文,通过can1-can4通道分别发送给所述中央网关,所述中央网关将四条应答报文打包。
所述步骤s4之前包括:
s4.1,所述can控制器对所述can报文进行应答并生成所述应答报文。所述步骤s4.1中的所述应答报文包含应答帧,所述应答帧和所述请求帧格式一致;所述应答帧的控制头中信息数据包括used位数据、update位数据、ack位数据。
s4.2,所述can控制器上传对应的所述can通道内的所述应答报文。
s5,更新对应的ack位数据,判断是否所有所述并行刷新帧中的所述ack位数据已正确更新,若判断结果为否,则重新执行所述步骤s1。
所述步骤s5包括:
s5.1,更新所述ack位数据,判断如果为对应所述can通道的所述应答报文,若判断结果为对应正确,则更新为所述ack位数据的赋值为1;若判断结果为对应错误,则更新为所述ack位数据的赋值为0。
s5.2,判断是否所有的所述ack位数据的赋值均为1,若判断结果为否,则重新执行所述步骤s1。如此交互,直到ecu11,ecu21,ecu31,ecu41刷新完成。
虽然结合附图描述了本发明的实施方式,但是本领域普通技术人员可以在所附权利要求的范围内做出各种变形或修改。