商用车多ECU数据轮询传输方法与流程
未命名
08-15
阅读:107
评论:0
商用车多ecu数据轮询传输方法
技术领域
1.本发明涉及汽车制造技术领域,具体地涉及商用车多ecu数据轮询传输方法。
背景技术:
2.商用车整车电气网络架构逐渐向域控制方向发展,相比目前按照电控功能单元的电气架构,域控制器技术发展对主机厂来说,需要更高程度的自主集成和创新能力,需要将原来的多个功能组件集成在一个控制器上,从控制器的硬件设计到软件开发,都需要在设计人员由原来的拿来主义,即供应商提供产品,主机厂做匹配的模式,而向自主开发转变。
3.另一方面,因为域控制器的技术发展,自主设计开发控制器增多,从软件安全角度出发,控制器的软件灌装、ecu数据刷写会逐步由多点供应商供货向主机厂转移,主机厂需要对ecu数据传输和刷写相关方面能力做出不断提升。
4.现有技术在商用车的整车ecu数据刷写方面,采用的技术方案主要有两种,一种是整车环节刷写,另一种是零件环节刷写;具体来说:
5.整车环节刷写的原理属于最常规的做法,即在整车生产环节完成ecu数据刷写。整车刷写方式需要将单台车辆对应的所有ecu数据配置到生产线端,采用专用工具与整车诊断接口或ecu端口建立物理连接,然后触发刷写程序完成ecu数据的传输和刷写。这种数据传输和刷写一般采用顺序方式,即刷完ecu1再刷ecu2直至ecun。这种方法很直观,也很容易想到,其优点是流程逻辑简单,其缺点在于:
6.由于整车环节刷写是在整车生产线上完成,每台车能够允许的ecu刷写时间受生产线节拍限制,即单台车刷写时间不能超过生产线节拍,因此随着整车搭载的电控系统越来越多,多个ecu顺序刷写的时间累加,必然会最终超出整车生产线节拍。
7.零件环节刷写的原理也很简单:即在ecu零件生产环节完成ecu所有数据刷写。适用于整车订单化生产方式。在订单匹配成功后,就会生成对应单台车辆的全部ecu数据,并在ecu程序灌装环节完成ecu数据刷写,包括整车配置差异化数据,然后在整车装配环节将封装了完整数据的ecu与对应车辆匹配安装。这种做法的优点是分布式处理,将刷写的环节分化到了零件制造阶段;零件环节刷写的缺点如下:
8.零件环节刷写的情况下,ecu供应商提供的零件多为通用硬件、批量生产,该环节还不能确定将要搭载的整车类型和车辆配置差异数据,因此这种刷写模式对物流调达时序性要求非常高,对于商用车产品ecu硬件通用化率较高而且自主生产资源有限的情况难以适用,从而导致国内大部分商用车车企的生产模式都不支持这种刷写模式。
9.综上所述,目前需要的是一种能在整车刷写的前提下,提高工作效率的ecu刷写方法。
技术实现要素:
10.本发明针对上述问题,提供商用车多ecu数据轮询传输方法,其目的在于实现最大化利用总线资源,减少多ecu的整体刷写时间,提高ecu数据刷写效率,解决目前商用车整车
搭载多种ecu情况下,顺序刷写ecu数据时间过长问题;实现多ecu同步数据传输和刷写,比现有技术的由每个ecu轮流顺序刷写节省时间。
11.为解决上述问题,本发明提供的技术方案为:
12.一种商用车多ecu数据轮询传输方法,包含轮询主流程、多个ecu刷写流程;
13.每个所述ecu刷写流程都分别由多个按顺序衔接的子流程排列组成,每个子流程标定有人工预设的优先级;
14.每个所述ecu刷写流程中,传递、解析、刷写的文件都来自一个完整数据文件;
15.所述轮询主流程包含以下步骤:
16.s100.同时向每个所述ecu刷写流程发送通信连接请求;
17.s200.等待并接收返回的子流程完成信息;每一个所述子流程完成信息对应一个子流程的完成状态;
18.s300.开始计时;然后查询当前是否有等待执行的子流程;然后根据查询结果,做出如下操作:
19.如果当前有等待执行的子流程,则选取并执行其中优先级的值最大的子流程;然后执行s400;
20.如果当前没有等待执行的子流程,且计时尚未超过人工预设的等待延时上限阈值,则返回并再次从头执行s300;
21.如果当前没有等待执行的子流程,且计时超过人工预设的等待延时上限阈值,则执行按s200中接收到返回的所述子流程完成信息所对应的子流程的按顺序衔接的下一个子流程;然后执行s400;
22.s400.查询当前是否有未完成的子流程;然后根据查询结果,做出如下操作:
23.如果当前有未完成的子流程,则返回并再次从头执行s200;
24.如果当前已经再没有未完成的子流程,则执行s500;
25.s500.结束本次商用车多ecu数据轮询传输的主流程。
26.优选地,所述ecu刷写流程包含数据刷写和复位请求子流程、数据读取比对子流程、数据区域擦除子流程、数据校验和复位请求子流程、数据刷写和复位请求子流程;其中:
27.所述数据刷写和复位请求子流程包含第一数据刷写和复位请求子流程、第二数据刷写和复位请求子流程、第三数据刷写和复位请求子流程;
28.所述数据读取比对子流程包含第一数据读取比对子流程、第二数据读取比对子流程、第三数据读取比对子流程;
29.所述子流程完成信息包含数据刷写和复位请求子流程完成信息、数据刷写和复位请求子流程失败信息、ecu刷写流程成功信息、ecu刷写流程失败信息、数据区域擦除子流程完成信息、数据区域擦除子流程失败信息、数据校验和复位请求子流程完成信息、数据校验和复位请求子流程失败信息、数据读取比对子流程完成信息、数据读取比对子流程失败信息;
30.所述完整数据文件由多个ecu数据文件打包组成;所述ecu数据文件包含ecu的类型、can通道编号、can通讯速率、需要刷写的数据内容。
31.优选地,所述第一数据刷写和复位请求子流程包含以下步骤:
32.saa100.接收所述通信连接请求;
33.saa200.请求进入vin刷写模式;
34.saa300.在saa200完成后,刷写vin;
35.saa400.请求进入整车参数刷写模式;
36.saa500.在saa400完成后,刷写整车参数;
37.saa600.发送复位请求;
38.saa700.发送所述数据刷写和复位请求子流程完成信息。
39.优选地,所述第一数据读取比对子流程包含以下步骤:
40.sab100.请求进入vin读取模式;
41.sab200.在sab100完成后,读取所述vin;
42.sab300.请求进入整车参数读取模式;
43.sab400.在sab300完成后,读取所述整车参数;
44.sab500.将刷写的所述vin与读取的所述vin进行数据比对,然后刷写的所述整车参数与读取的所述整车参数进行数据比对;根据比对结果做出如下操作:
45.如果所述vin与读取的所述vin相同,且刷写的所述整车参数与读取的所述整车参数相同,则结束所述ecu刷写流程,并返回所述ecu刷写流程成功信息;
46.如果所述vin与读取的所述vin不相同,或刷写的所述整车参数与读取的所述整车参数不相同,则结束所述ecu刷写流程,并返回所述ecu刷写流程失败信息。
47.优选地,所述数据区域擦除子流程包含以下步骤:
48.sba100.接收所述通信连接请求;
49.sba200.请求进入程序刷写模式;
50.sba300.在sba200完成后,擦除数据区域;
51.sba400.发送所述数据区域擦除子流程完成信息。
52.优选地,所述数据校验和复位请求子流程包含以下步骤:
53.sbb100.传输数据;
54.sbb200.校验数据;
55.sbb300.发送所述复位请求;
56.sbb400.发送所述数据校验和复位请求子流程完成信息。
57.优选地,所述数据刷写和复位请求子流程包含以下步骤:
58.sbc100.请求进入所述vin刷写模式;
59.sbc200.在sbc100完成后,所述vin;
60.sbc300.发送所述复位请求;
61.sbc400.发送所述数据刷写和复位请求子流程完成信息。
62.优选地,所述第二数据读取比对子流程包含以下步骤:
63.sbd100.请求进入所述vin读取模式;
64.sbd200.在sbd100完成后,读取所述vin;
65.sbd300.将刷写的所述vin与读取的所述vin进行数据比对;根据比对结果做出如下操作:
66.如果所述vin与读取的所述vin相同,则结束所述ecu刷写流程,并返回所述ecu刷写流程成功信息;
67.如果所述vin与读取的所述vin不相同,则结束所述ecu刷写流程,并返回所述ecu刷写流程失败信息。
68.优选地,所述第三数据刷写和复位请求子流程包含以下步骤:
69.sca100.接收所述通信连接请求;
70.sca200.读取原始参数;
71.sca300.请求进入整车参数刷写模式;
72.sca400.刷写所述整车参数;
73.sca500.发送参数写入命令;
74.sca600.发送所述复位请求;
75.sca700.发送所述数据刷写和复位请求子流程完成信息。
76.优选地,所述第三数据读取比对子流程包含以下步骤:
77.scb100.读取所述整车参数;
78.scb200.将刷写的所述整车数据与读取的所述整车数据进行数据比对;根据比对结果做出如下操作:
79.如果所述整车数据与读取的所述整车数据相同,则结束所述ecu刷写流程,并返回所述ecu刷写流程成功信息;
80.如果所述整车数据与读取的所述整车数据不相同,则结束所述ecu刷写流程,并返回所述ecu刷写流程失败信息。
81.本发明与现有技术对比,具有以下优点:
82.1.由于本发明采用了一种通过上位机程序建立轮询机制对商用车整车一条can总线上的多个ecu同时建立会话模式,在其中一个ecu会话处于数据刷写流程中的等待时间时,提前进入另一个ecu的会话,从而实现了最大化利用总线资源,减少多ecu的整体刷写时间,提高ecu数据刷写效率,解决了目前商用车整车搭载多种ecu情况下,顺序刷写ecu数据时间过长问题;
83.2.由于本发明采用了新的ecu数据传输策略,在嵌入式系统软件的基础上,采用轮询机制与一条can总线上的多个ecu同时建立通讯,从而实现了多ecu同步数据传输和刷写,比现有技术的由每个ecu轮流顺序刷写节省了时间。
附图说明
84.图1为本发明的轮询主流程的流程示意图;
85.图2为本发明具体实施例的对比实验中采用本发明方法进行的多ecu轮询数据传输和刷写的时序示意图;
86.图3为本发明具体实施例的对比实验中采用现有技术的多ecu顺序数据传输和刷写的时序图。
具体实施方式
87.下面结合具体实施例,进一步阐明本发明,应理解这些实施例仅用于说明本发明而不用于限制本发明的范围,在阅读了本发明之后,本领域技术人员对本发明的各种等价形式的修改均落于本技术所附权利要求所限定的范围。
88.需要事先说明的是,本具体实施例包含一个轮询主程序和三个ecu刷写流程,其目的就是要动态分配每个ecu刷写流程的系统资源,以保证最大程度上节省系统资源。
89.具体的原理如下:
90.本发明采用轮询机制与一条can总线上的多个ecu同时建立通讯并保持通讯。
91.为了达到上述目的,定制开发的ecu刷写工具硬件采用32位微处理器,支持多路can接口。
92.在刷写程序启动后,嵌入式系统软件采用轮询机制向一条总线上的多个ecu发出建立通讯请求,然后对先给出应答的ecu按照通讯协议进入下一步流程,以此类推,通过轮询机制确保所有ecu都保持通讯,并保证先收到应答的ecu先进入下一步流程直至每个ecu都完成数据传输和刷写的完整流程。
93.需要进一步说明的是,整个过程中多个ecu都与上位机保持连接,实现了多ecu同步刷写,比每个ecu轮流顺序刷写节省了刷写流程中的等待应答时间、ecu复位等待时间、ecu存储区擦除等待时间、ecu数据写入存储区等待时间和刷写协议中特定的等待时间,以这样的机制最大化利用总线资源,减少多ecu的整体刷写时间,提高整车数据刷写效率,满足整车生产线节拍要求。
94.一种商用车多ecu数据轮询传输方法,包含轮询主流程、发动机ecu刷写流程、后处理ecu刷写流程、整车ecu刷写流程;发动机ecu刷写流程、后处理ecu刷写流程、整车ecu刷写流程都分别由多个按顺序衔接的子流程排列组成,每个子流程标定有人工预设的优先级。
95.本具体实施例中,第一数据刷写和复位请求子流程的优先级为6;第一数据读取比对子流程的优先级为5;数据区域擦除子流程的优先级为3;数据校验和复位请求子流程的优先级为3;数据刷写和复位请求子流程的优先级为3;第二数据读取比对子流程的优先级为3;第三数据刷写和复位请求子流程的优先级为6;第三数据读取比对子流程的优先级为2。
96.发动机ecu刷写流程依次由第一数据刷写和复位请求子流程和第一数据读取比对子流程排列组成;
97.本具体实施例中,第一数据刷写和复位请求子流程包含以下步骤:
98.saa100.接收通信连接请求。
99.saa200.请求进入vin刷写模式。
100.saa300.在saa200完成后,刷写vin。
101.saa400.请求进入整车参数刷写模式。
102.saa500.在saa400完成后,刷写整车参数。
103.saa600.发送复位请求。
104.saa700.发送第一数据刷写和复位请求子流程完成信息。
105.本具体实施例中,第一数据读取比对子流程包含以下步骤:
106.sab100.请求进入vin读取模式。
107.sab200.在sab100完成后,读取vin。
108.sab300.请求进入整车参数读取模式。
109.sab400.在sab300完成后,读取整车参数。
110.sab500.将刷写的vin与读取的vin进行数据比对,然后刷写的整车参数与读取的
整车参数进行数据比对;根据比对结果做出如下操作:
111.如果vin与读取的vin相同,且刷写的整车参数与读取的整车参数相同,则结束发动机ecu刷写流程,并返回发动机ecu刷写流程成功信息。
112.如果vin与读取的vin不相同,或刷写的整车参数与读取的整车参数不相同,则结束发动机ecu刷写流程,并返回发动机ecu刷写流程失败信息。
113.后处理ecu刷写流程依次由数据区域擦除子流程、数据校验和复位请求子流程、数据刷写和复位请求子流程、第二数据读取比对子流程排列组成;
114.本具体实施例中,数据区域擦除子流程包含以下步骤:
115.sba100.接收通信连接请求。
116.sba200.请求进入流程刷写模式。
117.sba300.在sba200完成后,擦除数据区域。
118.sba400.发送数据区域擦除子流程完成信息。
119.本具体实施例中,数据校验和复位请求子流程包含以下步骤:
120.sbb100.传输数据。
121.sbb200.校验数据。
122.sbb300.发送复位请求。
123.sbb400.发送数据校验和复位请求子流程完成信息。
124.本具体实施例中,数据刷写和复位请求子流程包含以下步骤:
125.sbc100.请求进入vin刷写模式。
126.sbc200.在sbc100完成后,vin。
127.sbc300.发送复位请求。
128.sbc400.发送数据刷写和复位请求子流程完成信息。
129.本具体实施例中,第二数据读取比对子流程包含以下步骤:
130.sbd100.请求进入vin读取模式。
131.sbd200.在sbd100完成后,读取vin。
132.sbd300.将刷写的vin与读取的vin进行数据比对;根据比对结果做出如下操作:
133.如果vin与读取的vin相同,则结束后处理ecu刷写流程,并返回后处理ecu刷写流程成功信息。
134.如果vin与读取的vin不相同,则结束后处理ecu刷写流程,并返回后处理ecu刷写流程失败信息。
135.整车ecu刷写流程依次由第三数据刷写和复位请求子流程和第三数据读取比对子流程排列组成。
136.本具体实施例中,第三数据刷写和复位请求子流程包含以下步骤:
137.sca100.接收通信连接请求。
138.sca200.读取原始参数。
139.sca300.请求进入整车参数刷写模式。
140.sca400.刷写整车参数。
141.sca500.发送参数写入命令。
142.sca600.发送复位请求。
143.sca700.发送第三数据刷写和复位请求子流程完成信息。
144.本具体实施例中,第三数据读取比对子流程包含以下步骤:
145.scb100.读取整车参数。
146.scb200.将刷写的整车数据与读取的整车数据进行数据比对;根据比对结果做出如下操作:
147.如果整车数据与读取的整车数据相同,则结束整车ecu刷写流程,并返回整车ecu刷写流程成功信息。
148.如果整车数据与读取的整车数据不相同,则结束整车ecu刷写流程,并返回整车ecu刷写流程失败信息。
149.在发动机ecu刷写流程、后处理ecu刷写流程、整车ecu刷写流程中,传递、解析、刷写的文件都来自一个完整数据文件;完整数据文件由多个ecu数据文件打包组成;ecu数据文件包含ecu的类型、can通道编号、can通讯速率、需要刷写的数据内容。
150.需要说明的是,ecu数据文件是最终传递给刷写程序进行解析并完成刷写的文件。本方案是针对一条can总线上的多个ecu,由同一个程序调用一个完整数据文件完成多个ecu的同步数据传输。这个数据文件是根据多个ecu数据文件按照特定格式打包而成,内容包括ecu的类型、can通道编号、can通讯速率以及需要刷写的数据内容。
151.如图1所示,轮询主流程包含以下步骤:
152.s100.同时向发动机ecu刷写流程、后处理ecu刷写流程、整车ecu刷写流程发送通信连接请求。
153.s200.等待并接收返回的子流程完成信息;子流程完成信息包含数据刷写和复位请求子流程完成信息、数据刷写和复位请求子流程失败信息、ecu刷写流程成功信息、ecu刷写流程失败信息、数据区域擦除子流程完成信息、数据区域擦除子流程失败信息、数据校验和复位请求子流程完成信息、数据校验和复位请求子流程失败信息、数据读取比对子流程完成信息、数据读取比对子流程失败信息;每一个子流程完成信息对应一个子流程的完成状态。
154.s300.开始计时;然后查询当前是否有等待执行的子流程;然后根据查询结果,做出如下操作:
155.如果当前有等待执行的子流程,则选取并执行其中优先级的值最大的子流程;然后执行s400。
156.如果当前没有等待执行的子流程,且计时尚未超过人工预设的等待延时上限阈值,则返回并再次从头执行s300。
157.如果当前没有等待执行的子流程,且计时尚不低于人工预设的等待延时上限阈值,则执行按s200中接收到返回的子流程完成信息所对应的子流程的按顺序衔接的下一个子流程;然后执行s400。
158.s400.查询当前是否有未完成的子流程;然后根据查询结果,做出如下操作:
159.如果当前有未完成的子流程,则返回并再次从头执行s200。
160.如果当前已经再没有未完成的子流程,则执行s500。
161.s500.结束本次商用车多ecu数据轮询传输的主流程。
162.为了展示本发明的技术效果,本具体实施例中,还包含一次轮询主流程的全部经
过;多ecu轮询刷写为刷写工具同时维护与一条can总线上多个ecu的会话,而相互之间没有任何影响,总刷写时间小于多个ecu顺序刷写的累加时间。多ecu轮询数据传输和刷写时序如图2所示:
163.需要事先说明的是,以下是一次实验中的轮询主流程,其目的在于展示本发明的方法所产生的技术效果,尤其是逻辑跳转的原理;由于实际工况的不同,因此每次采用本方法时,子流程间的跳转路径会有区别,但都在本发明方法的涵盖范围之中。
164.需要进一步说明的是,本次对比试验,是以某商用车车型为例,共搭载12种电控系统为背景。
165.最初的时候,系统同时向发动机ecu刷写流程、后处理ecu刷写流程、整车ecu刷写流程发送通信连接请求;第一数据刷写和复位请求子流程率先完成,并发回了第一数据刷写和复位请求子流程完成信息;于是系统开始计时;第一数据刷写和复位请求子流程与第一数据读取比对子流程之间的等待延时上限阈值设为5秒;于是在这5秒之内,第一数据读取比对子流程不参与请求资源。
166.然后经查询,当前等待执行的子流程只有数据区域擦除子流程,于是直接开始转向执行数据区域擦除子流程。
167.数据区域擦除子流程完成后,发回数据区域擦除子流程完成信息;然后又由于数据区域擦除子流程与其在后处理ecu刷写流程中的后续子流程——数据校验和复位请求子流程,之间是没有设置等待延时上限阈值的,因此这时数据校验和复位请求子流程也要参与竞争资源;于是比较数据校验和复位请求子流程与另一个等待执行的子流程——第三数据刷写和复位请求子流程的优先级;数据区域擦除子流程的优先级为3,而第三数据刷写和复位请求子流程的优先级为6,因此先执行第三数据刷写和复位请求子流程。
168.第三数据刷写和复位请求子流程完成后,发回第三数据刷写和复位请求子流程完成信息;然后第三数据刷写和复位请求子流程完成信息与其在整车ecu刷写流程中的后续子流程——第三数据读取比对子流程之间的等待延时上限阈值设为3秒;于是在这3秒之内,第三数据读取比对子流程不参与请求资源;而此时第一数据刷写和复位请求子流程与第一数据读取比对子流程之间的等待延时上限阈值5秒尚未到,因此等待执行的子流程就是数据校验和复位请求子流程;于是系统开始执行数据校验和复位请求子流程。
169.数据校验和复位请求子流程完成后,发回数据校验和复位请求子流程完成信息;然后数据校验和复位请求子流程与其在后处理ecu刷写流程中的后续子流程——数据刷写和复位请求子流程之间的等待延时上限阈值设为3秒;于是在这3秒之内,数据刷写和复位请求子流程不参与请求资源;而此时第一数据刷写和复位请求子流程与第一数据读取比对子流程之间的等待延时上限阈值5秒尚未到,因此等待执行的子流程就是第三数据读取比对子流程;于是系统开始执行第三数据读取比对子流程。
170.第三数据读取比对子流程成功完成,发回整车ecu刷写流程成功信息;至此,整车ecu刷写流程全部完成;而此时第一数据刷写和复位请求子流程与第一数据读取比对子流程之间的等待延时上限阈值5秒尚未到,因此等待执行的子流程就是数据刷写和复位请求子流程;于是系统开始执行数据刷写和复位请求子流程。
171.数据刷写和复位请求子流程完成后,发回数据刷写和复位请求子流程;然后数据刷写和复位请求子流程与其在后处理ecu刷写流程中的后续子流程——第二数据读取比对
子流程之间的等待延时上限阈值设为3秒;而此时,第一数据刷写和复位请求子流程与第一数据读取比对子流程之间的等待延时上限阈值5秒已到,且第一数据读取比对子流程的优先级为5,第二数据读取比对子流程的优先级为3,因此此时开始执行第一数据读取比对子流程。
172.第一数据读取比对子流程完成后,发回发动机ecu刷写流程成功信息;至此,发动机ecu刷写流程全部完成;目前剩下的等待执行的子流程就只有第二数据读取比对子流程了;于是开始执行第二数据读取比对子流程。
173.第二数据读取比对子流程完成后,发回后处理ecu刷写流程成功信息;至此,后处理ecu刷写流程全部完成,同时也没有更多的子流程要处理,因此轮询主流程也全部完成,本次刷写工作结束。
174.需要说明的是,对于延时等待,在后处理ecu刷写流程中,刷写程序发送“擦除数据区域”命令后,后处理ecu返回等待命令,告诉刷写程序后处理ecu正在进行擦除处理,请等待。此时刷写程序可以利用等待时间处理其它ecu的刷写流程。
175.需要进一步说明的是,对于延时等待,ecu在数据刷写完成后,刷写程序发送复位命令,ecu返回复位应答后,ecu开始进行重启需要3-5秒。此时刷写程序可以处理其它ecu的刷写流程。
176.为了进一步展示本发明的技术效果相对于现有技术的提升,本具体实施例还就上述实验的具体情况与一次采用现有技术进行的多ecu顺序数据传输和刷写过程进行了对比,具体如下:
177.现有技术采用的是串行流程,即严格规定每一个动作的先后顺序,即使系统资源有空闲也不释放出来,因此其效率很低。
178.一次典型的按现有技术进行的多ecu顺序数据传输和刷写过程如图3所示,常规刷写方式为:对于一条总线上的多个ecu依次进行,一个ecu刷写完成以后再进行下一个ecu的刷写,总刷写时间为单个ecu刷写时间的总和。以发动机ecu、后处理ecu、整车ecu(vecu)三个ecu为例,顺序刷写的数据传输和刷写时序如下:
179.首先执行发动机ecu刷写流程,具体来说包含以下步骤:
180.sd100.发送通信连接请求。
181.sd101.请求进入vin刷写模式。
182.sd102.刷写vin。
183.sd103.请求进入整车参数刷写模式。
184.sd104.刷写整车参数。
185.sd105.发送复位请求
186.sd106.延时3秒等待重启。
187.sd107.请求进入vin读取模式。
188.sd108.读取vin。
189.sd109.请求进入整车参数读取模式。
190.sd110.读取整车参数。
191.sd111.进行写入数据对比和读取数据对比。
192.然后执行后处理ecu刷写流程,具体来说包含以下步骤:sd200.发送通信连接请
求。
193.sd201.请求进入程序刷写模式。
194.sd202.擦除数据区域。
195.sd203.传输数据。
196.sd204.校验数据。
197.sd205.发送复位请求。
198.sd206.延时3秒等待重启。
199.sd207.请求进入vin刷写模式。
200.sd208.刷写vin。
201.sd209.发送复位请求。
202.sd210.延时3秒等待重启。
203.sd211.请求进入vin读取模式。
204.sd212.读取vin。
205.sd213.进行写入数据对比和读取数据对比。
206.最后再来执行vecu刷写流程,具体来说包含以下步骤:sd300.发送通信连接请求。
207.sd301.读取原始数据。
208.sd302.请求进入整车参数刷写模式。
209.sd303.刷写整车参数。
210.sd304.发送参数写入命令。
211.sd305.发送复位请求。
212.sd306.延时3秒等待重启。
213.sd307.读取整车参数。
214.sd308.进行写入数据对比和读取数据对比。
215.在本次对比试验中,采用的实验对象为申请人东风商用车有限公司的一款在产车型;该车型共涉及共搭载12种ecu需要进行数据刷写。
216.需要说明的是,本具体实施例中的方法是对3种ecu进行数据刷写的情况进行了说明,这3种ecu是所有车型都会涉及到的;实际生产中的车型,其待刷写ecu的数量都会大于3种;但无论待刷写的ecu有多少种,本发明的方法都是通用的,只需要按照本发明的流程来进行,都可以得到预期的技术效果提升。
217.需要进一步说明的是,为了严格控制实验变量,以符合双盲测试的要求,本次对比采用现有技术与本发明方法随机交替刷写各10次;实验对象为同一台车;且每次实验完成后都将车辆的系统参数重置;且每次实验完成后都将包括但不限于电量、环境温度进行精确调整,以保证非参与实验的变量严格一致。
218.如表1所示,为按照现有技术,安排所有ecu顺序刷写的用时记录:
219.表1.电控系统顺序刷写时间统计表
[0220][0221][0222]
从表1可以看到,采用现有技术累计刷写时间为168秒。
[0223]
而作为对比,采用本发明的方法,在本具体实施例中实现多ecu数据的轮询传输机制并完成数据刷写,理论计算该车型整体刷写时间能够缩短到134秒左右,减少了20%的刷写时间。
[0224]
在上述的详细描述中,各种特征一起组合在单个的实施方案中,以简化本公开。不应该将这种公开方法解释为反映了这样的意图,即,所要求保护的主题的实施方案需要比清楚地在每个权利要求中所陈述的特征更多的特征。相反,如所附的权利要求书所反映的那样,本发明处于比所公开的单个实施方案的全部特征少的状态。因此,所附的权利要求书特此清楚地被并入详细描述中,其中每项权利要求独自作为本发明单独的优选实施方案。
[0225]
为使本领域内的任何技术人员能够实现或者使用本发明,上面对所公开实施例进行了描述。对于本领域技术人员来说;这些实施例的各种修改方式都是显而易见的,并且本文定义的一般原理也可以在不脱离本公开的精神和保护范围的基础上适用于其它实施例。因此,本公开并不限于本文给出的实施例,而是与本技术公开的原理和新颖性特征的最广范围相一致。
[0226]
上文的描述包括一个或多个实施例的举例。当然,为了描述上述实施例而描述部件或方法的所有可能的结合是不可能的,但是本领域普通技术人员应该认识到,各个实施例可以做进一步的组合和排列。因此,本文中描述的实施例旨在涵盖落入所附权利要求书的保护范围内的所有这样的改变、修改和变型。此外,就说明书或权利要求书中使用的术语“包含”,该词的涵盖方式类似于术语“包括”,就如同“包括,”在权利要求中用作衔接词所解
释的那样。此外,使用在权利要求书的说明书中的任何一个术语“或”是要表示“非排它性的或者”。
[0227]
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
技术特征:
1.一种商用车多ecu数据轮询传输方法,其特征在于:包含轮询主流程、多个ecu刷写流程;每个所述ecu刷写流程都分别由多个按顺序衔接的子流程排列组成,每个子流程标定有人工预设的优先级;每个所述ecu刷写流程中,传递、解析、刷写的文件都来自一个完整数据文件;所述轮询主流程包含以下步骤:s100.同时向每个所述ecu刷写流程发送通信连接请求;s200.等待并接收返回的子流程完成信息;每一个所述子流程完成信息对应一个子流程的完成状态;s300.开始计时;然后查询当前是否有等待执行的子流程;然后根据查询结果,做出如下操作:如果当前有等待执行的子流程,则选取并执行其中优先级的值最大的子流程;然后执行s400;如果当前没有等待执行的子流程,且计时尚未超过人工预设的等待延时上限阈值,则返回并再次从头执行s300;如果当前没有等待执行的子流程,且计时超过人工预设的等待延时上限阈值,则执行按s200中接收到返回的所述子流程完成信息所对应的子流程的按顺序衔接的下一个子流程;然后执行s400;s400.查询当前是否有未完成的子流程;然后根据查询结果,做出如下操作:如果当前有未完成的子流程,则返回并再次从头执行s200;如果当前已经再没有未完成的子流程,则执行s500;s500.结束本次商用车多ecu数据轮询传输的主流程。2.根据权利要求1所述的商用车多ecu数据轮询传输方法,其特征在于:所述ecu刷写流程包含数据刷写和复位请求子流程、数据读取比对子流程、数据区域擦除子流程、数据校验和复位请求子流程、数据刷写和复位请求子流程;其中:所述数据刷写和复位请求子流程包含第一数据刷写和复位请求子流程、第二数据刷写和复位请求子流程、第三数据刷写和复位请求子流程;所述数据读取比对子流程包含第一数据读取比对子流程、第二数据读取比对子流程、第三数据读取比对子流程;所述子流程完成信息包含数据刷写和复位请求子流程完成信息、数据刷写和复位请求子流程失败信息、ecu刷写流程成功信息、ecu刷写流程失败信息、数据区域擦除子流程完成信息、数据区域擦除子流程失败信息、数据校验和复位请求子流程完成信息、数据校验和复位请求子流程失败信息、数据读取比对子流程完成信息、数据读取比对子流程失败信息;所述完整数据文件由多个ecu数据文件打包组成;所述ecu数据文件包含ecu的类型、can通道编号、can通讯速率、需要刷写的数据内容。3.根据权利要求2所述的商用车多ecu数据轮询传输方法,其特征在于:所述第一数据刷写和复位请求子流程包含以下步骤:saa100.接收所述通信连接请求;saa200.请求进入vin刷写模式;
saa300.在saa200完成后,刷写vin;saa400.请求进入整车参数刷写模式;saa500.在saa400完成后,刷写整车参数;saa600.发送复位请求;saa700.发送所述数据刷写和复位请求子流程完成信息。4.根据权利要求3所述的商用车多ecu数据轮询传输方法,其特征在于:所述第一数据读取比对子流程包含以下步骤:sab100.请求进入vin读取模式;sab200.在sab100完成后,读取所述vin;sab300.请求进入整车参数读取模式;sab400.在sab300完成后,读取所述整车参数;sab500.将刷写的所述vin与读取的所述vin进行数据比对,然后刷写的所述整车参数与读取的所述整车参数进行数据比对;根据比对结果做出如下操作:如果所述vin与读取的所述vin相同,且刷写的所述整车参数与读取的所述整车参数相同,则结束所述ecu刷写流程,并返回所述ecu刷写流程成功信息;如果所述vin与读取的所述vin不相同,或刷写的所述整车参数与读取的所述整车参数不相同,则结束所述ecu刷写流程,并返回所述ecu刷写流程失败信息。5.根据权利要求4所述的商用车多ecu数据轮询传输方法,其特征在于:所述数据区域擦除子流程包含以下步骤:sba100.接收所述通信连接请求;sba200.请求进入程序刷写模式;sba300.在sba200完成后,擦除数据区域;sba400.发送所述数据区域擦除子流程完成信息。6.根据权利要求5所述的商用车多ecu数据轮询传输方法,其特征在于:所述数据校验和复位请求子流程包含以下步骤:sbb100.传输数据;sbb200.校验数据;sbb300.发送所述复位请求;sbb400.发送所述数据校验和复位请求子流程完成信息。7.根据权利要求6所述的商用车多ecu数据轮询传输方法,其特征在于:所述数据刷写和复位请求子流程包含以下步骤:sbc100.请求进入所述vin刷写模式;sbc200.在sbc100完成后,所述vin;sbc300.发送所述复位请求;sbc400.发送所述数据刷写和复位请求子流程完成信息。8.根据权利要求7所述的商用车多ecu数据轮询传输方法,其特征在于:所述第二数据读取比对子流程包含以下步骤:sbd100.请求进入所述vin读取模式;sbd200.在sbd100完成后,读取所述vin;
sbd300.将刷写的所述vin与读取的所述vin进行数据比对;根据比对结果做出如下操作:如果所述vin与读取的所述vin相同,则结束所述ecu刷写流程,并返回所述ecu刷写流程成功信息;如果所述vin与读取的所述vin不相同,则结束所述ecu刷写流程,并返回所述ecu刷写流程失败信息。9.根据权利要求8所述的商用车多ecu数据轮询传输方法,其特征在于:所述第三数据刷写和复位请求子流程包含以下步骤:sca100.接收所述通信连接请求;sca200.读取原始参数;sca300.请求进入整车参数刷写模式;sca400.刷写所述整车参数;sca500.发送参数写入命令;sca600.发送所述复位请求;sca700.发送所述数据刷写和复位请求子流程完成信息。10.根据权利要求9所述的商用车多ecu数据轮询传输方法,其特征在于:所述第三数据读取比对子流程包含以下步骤:scb100.读取所述整车参数;scb200.将刷写的所述整车数据与读取的所述整车数据进行数据比对;根据比对结果做出如下操作:如果所述整车数据与读取的所述整车数据相同,则结束所述ecu刷写流程,并返回所述ecu刷写流程成功信息;如果所述整车数据与读取的所述整车数据不相同,则结束所述ecu刷写流程,并返回所述ecu刷写流程失败信息。
技术总结
本发明涉及商用车多ECU数据轮询传输方法,包含轮询主流程、ECU刷写流程;ECU刷写流程由多个按顺序衔接的子流程排列组成,每个子流程有优先级;轮询主流程包含步骤:发送通信连接请求;查询待执行子流程;如有则执行优先级最大子流程;如无且计时未超过等待延时上限阈值,则再次从头执行;如无且计时尚不低于等待延时上限阈值,则执行下一个子流程。本发明实现最大化利用总线资源,减少多ECU整体刷写时间,提高ECU数据刷写效率;实现多ECU同步数据传输、刷写。传输、刷写。传输、刷写。
技术研发人员:刘发丽 段金鑫 何飞 王伟 冯蔚军 王贤权
受保护的技术使用者:东风商用车有限公司
技术研发日:2023.05.06
技术公布日:2023/8/14
版权声明
本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
飞行汽车 https://www.autovtol.com/
