本技术涉及新能源汽车ota升级,特别是涉及一种ota升级数据包通信方法、装置、车载vbox和介质。
背景技术:
1、在利用空间下载技术(over the air technology,ota)对汽车固件或软件进行升级的过程中,车载vbox作为ota升级主控,从汽车远程服务提供商(telematics serviceprovider,tsp)下载升级数据包,然后通过整车网关将升级数据包传输至车辆内部的各个电子控制单元(electronic control unit,ecu),从而实现升级数据刷写。
2、相关技术中,当出现多个ecu同时访问ota升级主控请求升级刷写时,ota升级主控只能从多个ecu中选择第一个符合条件的建立通信连接,不能同时与多个ecu进行通信连接;而且,当与ota主控通信连接的ecu关闭通信连接时会释放数据,其会导致其他升级任务在读取数据时发生数据获取异常,进而造成其他ecu升级任务失败。
3、因此,相关技术中ota升级主控与各个ecu之间的通信效率较低。
技术实现思路
1、基于此,提供一种ota升级数据包通信方法、装置、车载vbox和介质,提高ota升级主控与各个ecu之间的通信效率。
2、第一方面,提供一种ota升级数据包通信方法,所述方法应用于车载vbox,包括:
3、创建通信管理任务,包括:当接收到来自至少一个电子控制单元的升级请求时建立通信连接,创建与所述电子控制单元相对应的数据成员,将各个所述数据成员接入预设的数据链表中,并将所述升级请求存入所述数据成员;
4、创建ota主控任务,包括:从所述数据链表的链表头开始遍历各个所述数据成员,读取所述数据成员中的升级请求得到升级数据需求信息,根据所述升级数据需求信息下载升级数据包,并将所述升级数据包存入所述数据成员以转发给所述电子控制单元。
5、结合第一方面,在第一方面的第一种可实施方式中,所述通信管理任务还包括:
6、当接收到来自所述电子控制单元的关闭连接请求且所述电子控制单元的数据成员存在于所述数据链表中时,判断所述电子控制单元的数据是否被所述ota主控任务占有;
7、若是,在所述ota主控任务使用完所述电子控制单元的数据后,将所述电子控制单元的数据成员从所述数据链表中释放,并在所述数据成员从所述数据链表中完全释放后,释放所述数据成员的读缓冲区和写缓冲区所存储的数据以及销毁所述数据成员;
8、若否,将所述电子控制单元的数据成员从所述数据链表中释放,并在所述数据成员从所述数据链表中完全释放后,释放所述数据成员的读缓冲区和写缓冲区所存储的数据以及销毁所述数据成员。
9、结合第一方面的第一种可实施方式,在第一方面的第二种可实施方式中,所述数据成员包括互斥信号量,所述互斥信号量用于判断所述电子控制单元的数据是否被所述ota主控任务占有,包括:
10、判断所述互斥信号量是否被所述ota主控任务锁定;
11、若是,判断出所述电子控制单元的数据被所述ota主控任务占有;
12、若否,判断出所述电子控制单元的数据未被所述ota主控任务占有。
13、结合第一方面的第二种可实施方式,在第一方面的第三种可实施方式中,所述互斥信号量还用于:所述ota主控任务使用完所述电子控制单元的数据后释放所述互斥信号量,所述通信管理任务将所述互斥信号量锁定,以使所述ota主控任务不能在所述电子控制单元的数据成员从所述数据链表中释放时占有所述电子控制单元的数据。
14、结合第一方面,在第一方面的第四种可实施方式中,创建与所述电子控制单元相对应的数据成员的步骤,包括:
15、根据接收到所述升级请求的时间先后顺序,按照从小到大的顺序为所述电子控制单元分配连接号,其中,所述连接号用于标识所述电子控制单元以供所述车载vbox识别;
16、为所述电子控制单元分配读缓冲区和写缓冲区,其中,所述读缓冲区用于接收来自所述电子控制单元的升级请求并进行缓存,所述写缓冲区用于缓存所述车载vbox下载的升级数据包并转发给所述电子控制单元。
17、结合第一方面的第四种可实施方式,在第一方面的第五种可实施方式中,所述数据成员还包括至少一个用于链接所述数据链表的链表指针;将各个所述数据成员接入预设的数据链表中的步骤,包括:
18、以所述链表头为开始节点并按照所述连接号从小到大的顺序,将各个所述数据成员通过所述链表指针接入所述数据链表中,其中,所述数据链表为双向链表。
19、结合第一方面的第一种可实施方式,在第一方面的第六种可实施方式中,所述数据成员还包括至少一个用于链接所述数据链表的链表指针;在所述数据成员从所述数据链表中完全释放后的步骤中,
20、当被释放的数据成员存在相邻的两个所述数据成员,与被释放的数据成员相邻的两个所述数据成员通过所述链表指针链接;
21、当被释放的数据成员存在一个相邻的所述数据成员且靠近所述链表头,与被释放的数据成员相邻的数据成员和所述链表头通过所述链表指针链接;
22、当被释放的数据成员存在一个相邻的所述数据成员且远离所述链表头,保持未被释放的数据成员的链表指针。
23、第二方面,提供了一种ota升级数据包通信装置,所述装置位于车载vbox,包括:
24、通信管理模块,用于创建通信管理任务,包括:当接收到来自至少一个电子控制单元的升级请求时建立通信连接,创建与所述电子控制单元相对应的数据成员,将各个所述数据成员接入预设的数据链表中,并将所述升级请求存入所述数据成员;
25、ota主控模块,用于创建ota主控任务,包括:从所述数据链表的链表头开始遍历各个所述数据成员,读取所述数据成员中的升级请求得到升级数据需求信息,根据所述升级数据需求信息下载升级数据包,并将所述升级数据包存入所述数据成员以转发给所述电子控制单元。
26、第三方面,提供了一种车载vbox,包括如第二方面所述的ota升级数据包通信装置。
27、第四方面,提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现第一方面或第一方面的第一种至第六种可实施方式中任一项所述的ota升级数据包通信方法的步骤。
28、上述ota升级数据包通信方法、装置、车载vbox和介质,所述方法应用于车载vbox,包括:创建通信管理任务和创建ota主控任务,具体来说,创建通信管理任务包括:当接收到来自至少一个电子控制单元的升级请求时建立通信连接,创建与电子控制单元相对应的数据成员,将各个数据成员接入预设的数据链表中,并将升级请求存入数据成员;创建ota主控任务包括:从数据链表的链表头开始遍历各个数据成员,读取数据成员中的升级请求得到升级数据需求信息,根据升级数据需求信息下载升级数据包,并将升级数据包存入数据成员以转发给电子控制单元。可见,通过本技术的ota升级数据包通信方法,可以在多个电子控制单元请求访问ota升级主控时,同时建立各个电子控制单元与车载vbox之间的通信连接,为每个电子控制单元创建对应的数据成员,并将各个数据成员加入数据链表以进行统一管理,通过数据成员来分别管理各个电子控制单元的升级请求以及传输根据升级请求所下载的升级数据包,以适应多个电子控制单元同时发出升级请求的应用场景,实现多个电子控制单元同时进行数据升级刷写,改善现有技术中各个电子控制单元需要逐个进行数据升级刷写的现象。因此,与现有技术相比,本技术的ota升级数据包通信方法可以兼容多个电子控制单元同时进行数据升级刷写,提高ota升级主控与各个ecu之间的通信效率。
1.一种ota升级数据包通信方法,其特征在于,所述方法应用于车载vbox,包括:
2.根据权利要求1所述的ota升级数据包通信方法,其特征在于,所述通信管理任务还包括:
3.根据权利要求2所述的ota升级数据包通信方法,其特征在于,所述数据成员包括互斥信号量,所述互斥信号量用于判断所述电子控制单元的数据是否被所述ota主控任务占有,包括:
4.根据权利要求3所述的ota升级数据包通信方法,其特征在于,所述互斥信号量还用于:所述ota主控任务使用完所述电子控制单元的数据后释放所述互斥信号量,所述通信管理任务将所述互斥信号量锁定,以使所述ota主控任务不能在所述电子控制单元的数据成员从所述数据链表中释放时占有所述电子控制单元的数据。
5.根据权利要求1所述的ota升级数据包通信方法,其特征在于,创建与所述电子控制单元相对应的数据成员的步骤,包括:
6.根据权利要求5所述的ota升级数据包通信方法,其特征在于,所述数据成员还包括至少一个用于链接所述数据链表的链表指针;将各个所述数据成员接入预设的数据链表中的步骤,包括:
7.根据权利要求2所述的ota升级数据包通信方法,其特征在于,所述数据成员还包括至少一个用于链接所述数据链表的链表指针;在所述数据成员从所述数据链表中完全释放后的步骤中,
8.一种ota升级数据包通信装置,其特征在于,所述装置位于车载vbox,包括:
9.一种车载vbox,包括如权利要求8所述的ota升级数据包通信装置。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的ota升级数据包通信方法的步骤。
