本发明涉及汽车网络技术领域,特别涉及一种报文传输的方法、车载网络系统及车辆。
背景技术:
随着电子信息技术的快速发展,汽车也进入了电子化、网络化的控制时代,其中最明显的标志是ECU(Electronic Control Unit,电子控制单元)在汽车中的应用。随着汽车中ECU数量的不断增多,各个ECU之间需要相互交换信息,于是就诞生了在汽车控制系统中应用的互联网络。其中,CAN(Controller Area Network,控制器局域网络)由于其具有的实时性强、可靠性高、结构简单、互操作性好和价格低廉等特点,作为车载网络系统被广泛应用于汽车控制系统中。
在现有技术中,CAN包括多个ECU,CAN中的任意ECU在任意时刻都可以主动地向其他的ECU发送报文,本申请发明人在研发过程中发现,当CAN的总线网段负载率超过40%时,接收报文的ECU在等待一段时间但还未接收到报文后,退出接收报文状态,导致报文丢失率较高。同理,若想要降低报文丢失率,就要保证总线网段负载率低于40%,如此会导致总线网段的利用率较低。
技术实现要素:
有鉴于此,本发明旨在提出一种报文传输的方法,以在保证报文丢失率较低的基础上,提高总线网段的利用率。
为达到上述目的,本发明的技术方案是这样实现的:
一种报文传输的方法,应用于车载网络系统,所述车载网络系统包括网关和多个总线网段,每个所述总线网段包括多个电子控制单元;对于车载网络系 统中的任意一个总线网段,所述报文传输的方法包括:
所述网关获取待传输报文的数量和传输周期;
所述网关根据所述待传输报文的数量和传输周期,确定传输时隙t,所述传输时隙t为使得每条所述待传输报文能够完整发送出去的时间间隔;
所述网关向所述总线网段中的所述电子控制单元发送时钟同步命令,所述时钟同步命令用于使所述总线网段中的所有所述电子控制单元在同一时间启动计时;
所述电子控制单元计时,当计时到所述传输时隙t的起始时刻时,将所述待传输报文在所述传输时隙t发送,其中,一条所述待传输报文在一个所述传输时隙t中发送。
进一步的,所述根据所述待传输报文的数量和传输周期,确定传输时隙t,包括:
根据所述待传输报文的传输周期,将所述待传输报文划分为多个待传输报文集合,每个所述待传输报文集合中的所述待传输报文的传输周期相同;
获取最小的传输周期T1,以及所述最小的传输周期T1对应的所述待传输报文集合;
根据所述最小的传输周期T1对应的所述待传输报文集合中一条所述待传输报文完整发送出去所需要的时长,确定所述传输时隙t,所述传输时隙t大于所述最小的传输周期T1对应的所述待传输报文集合中一条所述待传输报文完整发送出去所需要的时长,且所述最小的传输周期T1对应的所述待传输报文集合中所述待传输报文的数量a1与所述传输时隙t之积小于或等于所述最小的传输周期T1。
具体的,所述传输时隙t大于或等于所述最小的传输周期T1对应的所述待传输报文集合中一条所述待传输报文完整发送出去所需要的时长的两倍。
具体的,所述传输时隙t≥(1/2)*(T1/a1)。
进一步的,所述将所述待传输报文在所述传输时隙t发送,包括:
将所述传输周期不同的所述待传输报文在所述传输时隙t间隔发送。
进一步的,所述将所述待传输报文在所述传输时隙t发送,包括:
获取所述传输周期相同的所述待传输报文的优先级,按照优先级由高到低的优先顺序依次在所述传输时隙t发送所述待传输报文。
进一步的,在所述将所述待传输报文在所述传输时隙发送之后,还包括:
所述电子控制单元检测所述待传输报文在所述传输时隙t发送的过程中是否发生传输错误;
若发生传输错误,则检测当前所述传输时隙t的剩余时长是否能够完整发送错误帧;
若当前所述传输时隙t的剩余时长能够完整发送错误帧,则发送所述错误帧。
进一步的,在发送所述错误帧之后,还包括:
检测当前所述传输时隙t的剩余时长是否能够完整发送发生传输错误时发送的所述待传输报文;
若当前所述传输时隙t的剩余时长能够完整发送发生传输错误时发送的所述待传输报文,则重新发送发生传输错误时发送的所述待传输报文。
相对于现有技术,本发明所述的报文传输的方法具有以下优势:
本发明所述的报文传输的方法,利用待传输报文的数量和传输周期,确定传输时隙t,并使得同一总线网段中的所有电子控制单元在同一时间开启计时,保持计时同步,当计时到传输时隙t时,电子控制单元安排待传输报文在传输时隙t发送,从而在已经确定的传输时隙t中发送待传输报文,接收待传输报文的电子控制单元能够从确定的传输时隙t中接收待传输报文,避免了现有技术中电子控制单元无法在准确的时段接收待传输报文的情况,与现有技术中的传输报文的方法相比,本发明能够在降低报文丢失率的基础上,将待传输报文合理安排在传输时隙t中发送,提高了总线网段的负载率,从而提高了总线网段的利用率。
本发明的另一目的在于提出一种车载网络系统,以在保证报文丢失率较低的基础上,提高总线网段的利用率。
为达到上述目的,本发明的技术方案是这样实现的:
一种车载网络系统,所述车载网络系统包括网关和多个总线网段,每个所述总线网段包括多个所述电子控制单元;
其中,所述网关用于获取待传输报文的数量和传输周期;以及根据所述待传输报文的数量和传输周期,确定传输时隙t,所述传输时隙t为使得每条所述待传输报文能够完整发送出去的时间间隔;以及向所述总线网段中的所述电子控制单元发送时钟同步命令,所述时钟同步命令用于使所述总线网段中的所有所述电子控制单元在同一时间启动计时;
所述电子控制单元用于计时,当计时到所述传输时隙t的起始时刻时,将所述待传输报文在所述传输时隙t发送,其中,一条所述待传输报文在一个所述传输时隙t中发送。
相对于现有技术,本发明所述的车载网络系统具有以下优势:
所述车载网络系统与上述报文传输的方法相对于现有技术所具有的优势相同,在此不再赘述。
本发明的另一目的在于提出一种车辆,以在保证报文丢失率较低的基础上,提高总线网段的利用率。
为达到上述目的,本发明的技术方案是这样实现的:
一种车辆,所述车辆安装有上述技术方案中所述的车载网络系统。
相对于现有技术,本发明所述的车辆具有以下优势:
所述车辆与上述车载网络系统相对于现有技术所具有的优势相同,在此不再赘述。
附图说明
构成本发明的一部分的附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1为本发明实施例一所述的报文传输的方法的流程图;
图2为本发明实施例二所述的报文传输的方法的流程图;
图3为本发明实施例二中的待传输报文占用传输时隙的示意图;
图4为本发明实施例三所述的报文传输的方法的流程图;
图5为本发明实施例四所述的车载网络系统的结构示意图。
附图标记说明:
20-车载网络系统, 21-网关,
22-总线网段, 23-电子控制单元。
具体实施方式
需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。
下面将参考附图并结合实施例来详细说明本发明。
本发明提供的报文传输的方法应用于车载网络系统,其中,车载网络系统包括网关和多个总线网段,车辆可以划分为多个区域,每个区域对应一个总线网段,比如,将车辆划分为动力区域、舒适区域、新能源区域以及辅助区域等区域,总线也可以分为动力总线网段、车身总线网段、舒适总线网段、新能源总线网段以及辅助总线网段等总线网段;每个总线网段包括多个电子控制单元,网关与每个总线网段中的多个电子控制单元之间能够进行通信。
实施例一
请参阅图1,本发明实施例提供了一种报文传输的方法,下面以车载网络系统中任意一个总线网段为例进行说明,该方法包括:
步骤101,网关获取待传输报文的数量和传输周期;其中,各个待传输报文的传输周期可能相同,也可能不同。在网关获取待传输报文的数量和传输周期之前,需要唤醒网关,其中可以通过电源唤醒方式或电子控制单元唤醒方式来唤醒网关,电源唤醒方式即电源为网关上电,上电后,网关即被唤醒;电子控制单元唤醒方式即由电子控制单元作为唤醒源,向网关发送唤醒命令,网关接收唤醒命令后即被唤醒。
步骤102,网关根据待传输报文的数量和传输周期,确定传输时隙t;传输时隙t为使得每条待传输报文能够完整发送出去的时间间隔,在传输时隙t这段时间间隔中能够将一条待传输报文完整的发送出去,具体传输时隙t的设置根据实际情况中待传输报文的数量和传输周期而定,具体制定方法将在后续实施例中详细说明。
步骤103,网关向总线网段中的所有电子控制单元发送时钟同步命令;时钟同步命令用于使得总线网段中的电子控制单元在同一时间启动计时;在网关向总线网段中的电子控制单元发送时钟同步命令后,各个电子控制单元在接收到时钟同步命令后,均向网关做出响应,该总线网段中的所有电子控制单元均向网关做出响应后,电子控制单元在约定的同一时间启动计时,从而保证同一总线网段中的电子控制单元在时间线上保持同步,从而便于在后续步骤中各个电子控制单元能够同步待传输报文发送的传输时隙。
步骤104,电子控制单元计时,当计时到传输时隙t的起始时刻时,将待传输报文在传输时隙t发送;其中,一条待传输报文在一个传输时隙t中发送,当有多条待传输报文需要发送时,上述多条待传输报文分别在多个传输时隙t中发送,比如,相邻的三个传输时隙中,在第一个传输时隙中发送待传输报文b1,在第二个传输时隙中发送待传输报文b2,在第三个传输时隙中发送待传输报文b3。由于总线网段中的各个电子控制单元的计时是同步的,所以,各个电子控制单元均可以得知待传输报文发送的传输时隙t的具体时间段,从而能够准确接收到被发送的待传输报文,并且由于将能够用于发送待传输报文的时间段分为多个传输时隙t,且每个传输时隙t中均可以发送一条待传输报文,充分的利用了用于发送待传输报文的时间段,提高了总线网段的负载率。
本发明所述的报文传输的方法,利用待传输报文的数量和传输周期,确定传输时隙t,并使得同一总线网段中的所有电子控制单元在同一时间开启计时,保持计时同步,当计时到传输时隙t时,电子控制单元安排待传输报文在传输时隙t发送,从而在已经确定的传输时隙t中发送待传输报文,接收待传输报文的电子控制单元能够从确定的传输时隙t中接收待传输报文,避免了现有技术 中电子控制单元无法在准确的时段接收待传输报文的情况,与现有技术中的传输报文的方法相比,本发明能够在降低报文丢失率的基础上,将待传输报文合理安排在传输时隙t中发送,提高了总线网段的负载率,从而提高了总线网段的利用率。
实施例二
请参阅图2,进一步的,为了详细说明具体如何确定传输时隙,实施例一中的步骤102能够细化为步骤1021-步骤1023;并且,为了更有规律的在传输时隙发送待传输报文,且便于编程实现,实施例一中的步骤104能够细化为步骤1041和/或步骤1042,下面将详细介绍步骤1021-步骤1023以及步骤1041和步骤1042的具体内容:
步骤1021,网关根据待传输报文的传输周期,将待传输报文划分为多个待传输报文集合;每个待传输报文集合中的待传输报文的传输周期相同,不同待传输报文集合中的待传输报文的传输周期不同;比如,将动力总线网段中的待传输报文按照传输周期划分,得到传输周期为T1的待传输报文集合A,待传输报文集合A中共有待传输报文a1条,传输周期为T2的待传输报文集合B,待传输报文集合B中共有待传输报文a2条,以此类推,直至传输周期为Tn的待传输报文集合X,待传输报文集合X中共有待传输报文an条,其中,T1<T2<…<Tn。
步骤1022,网关获取最小的传输周期T1,以及最小的传输周期T1对应的待传输报文集合;在步骤1021中得到的各个不同的传输周期中,在其中获取最小的传输周期T1,以及该传输周期T1对应的待传输报文集合,以最小的传输周期T1以及该最小的传输周期T1对应的待传输报文集合作为确定传输时隙t的参数。
步骤1023,网关根据最小的传输周期T1对应的待传输报文集合中一条待传输报文完整发送出去所需要的时长,确定传输时隙t;其中,传输时隙t大于最小的传输周期T1对应的待传输报文集合中一条待传输报文完整发送出去所需要的时长,且最小的传输周期T1对应的待传输报文集合中待传输报文的数量a1 与传输时隙t之积小于或等于最小的传输周期T1;任意两条传输周期相同的待传输报文完整发送出去的时间是相同的,为了最大可能的保证总线网段中的各条待传输报文均能够完整的发送出去,选用传输周期T1对应的待传输报文集合中一条待传输报文完整发送出去所需要的时长作为参考标准,传输时隙t至少要大于传输周期T1对应的待传输报文集合中一条待传输报文完整发送出去所需要的时长,同时,也需要保证传输周期相同的待传输报文全部完整发送出去所花费的时间要小于传输周期,因此最小的传输周期T1对应的待传输报文集合中待传输报文的数量a1与传输时隙t之积小于或等于最小的传输周期T1,即t*a1≤T1。比如,传输周期为10ms的待传输报文在动力总线网段中共有20条,且发送每一条待传输报文需要240μs,传输时隙的范围一般为250μs至500μs。
进一步地,由于在发送待传输报文的过程中可能会发生错误,此时需要发送错误帧来告知待传输报文发送出现错误,完整发送错误帧所需要的时长,基本等于或小于最小的传输周期T1对应的待传输报文集合中一条待传输报文完整发送出去所需要的时长,因此,为了在传输时隙中能够预留出足够的时间为错误帧等其他类型的报文使用,传输时隙t大于或等于最小的传输周期T1对应的待传输报文集合中一条所述待传输报文完整发送出去所需要的时长的两倍。
在具体操作中,为了方便计算得到传输时隙t,可以选取传输时隙t≥(1/2)*(T1/a1),T1为最小的传输周期,a1为最小的传输周期T1对应的待传输报文集合中待传输报文的数量。
步骤1041,电子控制单元计时,当计时到传输时隙t的起始时刻时,将传输周期不同的待传输报文在传输时隙间隔t发送;比如,在第一个传输时隙中发送一条传输周期为T1的待传输报文,在第二个传输时隙中发送一条传输周期为T2的待传输报文。下面将通过一个具体的例子来进行说明:请参阅图3,图3中的每一个小方格均为一个传输时隙t,不同传输周期的待传输报文间隔占用传输时隙t发送,每隔一个传输时隙t,发送一条待传输报文集合A中的待传输 报文;每隔三个传输时隙t,发送一条待传输报文集合B中的待传输报文;每隔七个传输时隙t,发送一条待传输报文集合C中的待传输报文;每隔三十九个传输间隙t,发送一条待传输报文集合D中的待传输报文;其余的待传输报文集合中的待传输报文的发送规律与上述内容类似,在此不再赘述。需要说明的是,若在应该发送某个待传输报文集合中的待传输报文的传输时隙t中,但已经没有需要发送的该待传输报文集合中的待传输报文时,设置该传输时隙t空闲。而且,为了能够灵活的安排不同的待传输报文集合中的待传输报文占用的传输时隙t,也可以设置无待传输报文的传输时隙t。
步骤1042,电子控制单元计时,当计时到传输时隙t的起始时刻时,获取传输周期相同的待传输报文的优先级,按照优先级由高到低的优先顺序依次在传输时隙t发送待传输报文;即先发送优先级高的待传输报文,后发送优先级低的待传输报文。比如,请参阅图3,第一个传输时隙、第三个传输时隙和第五个传输时隙均用来发送待传输报文集合A中的待传输报文,其中,第一个传输时隙用来发送待传输报文集合A中优先级第一高的待传输报文,第三个传输时隙用来发送待传输报文集合A中优先级第二高的待传输报文,第五个传输时隙用来发送待传输报文集合A中优先级第三高的待传输报文,以此类推。同理,第二个传输时隙、第六个传输时隙、第十个传输时隙均用来发送待传输报文集合B中的待传输报文,第二个传输时隙用来发送待传输报文集合B中优先级第一高的待传输报文,第六个传输时隙用来发送待传输报文集合B中优先级第二高的待传输报文,第十个传输时隙用来发送待传输报文集合B中优先级第三高的待传输报文,以此类推。
需要说明的是,也可以将步骤1041和步骤1042的内容结合起来,将传输周期不同的待传输报文在传输时隙t间隔发送的基础上,按照优先级由高到低的优先顺序依次在传输时隙t发送传输周期相同的待传输报文。
利用本发明中实施例一和实施例二中的传输报文的方法,能够提升总线网段的负载率,设一条待传输报文的长度为Lf,总线传输速率为Sbus,位速率为Sbit,发送一条待传输报文使用的时长为tf,总线网段的负载率为BL,则总线网 段的负载率计算公式为其中Sbit=Sbus×10-3,m为待传输报文集合的个数,也就是说待传输报文的传输周期有m种,p为与传输周期对应的待传输报文集合中的待传输报文的数量,假设动力总线网段中,传输周期为10ms的待传输报文有20条,传输周期为20ms的待传输报文有20条,传输周期为50ms的待传输报文有10条,传输周期为100ms的待传输报文有10条,传输周期为200ms的待传输报文有10条,传输周期为500ms的待传输报文有10条,利用现有技术中的报文传输的方法,该总线网段的负载率约为80%,且由于80%远远超过了40%,因此待传输报文丢失率较高;而利用本发明的传输报文的方法,该总线网段的负载率约为92%,且待传输报文的丢失率极低;与现有技术相比,本发明大大提高了总线网段的负载率,从而提高了总线网段的利用率。
实施例三
请参阅图4,为了进一步降低待传输报文发送过程中的丢失率以及错误率,在实施例一的基础上,在步骤104之后还可以添加步骤105-步骤109,下面将详细说明步骤105-步骤109的内容:
步骤105,电子控制单元检测待传输报文在传输时隙t发送的过程中是否发生传输错误;待传输报文发送过程中可能会出现传输错误,电子控制单元在传输时隙中已经将与该传输时隙对应的待传输报文发送完毕的时刻,检测与该传输时隙对应的待传输报文是否发生传输错误,若发生传输错误则执行步骤106,若没有发生传输错误,则继续计时,等待下一个传输时隙的到来,在下一个传输时隙中发送下一条待传输报文。
步骤106,若发生传输错误,则检测当前传输时隙t的剩余时长是否能够完整发送错误帧;错误帧用于在总线网段中广播,表示待传输报文发送过程中出现了传输错误。获取完整发送错误帧的时长和当前传输时隙t的时长,当前传输时隙t与发送对应于该传输时隙的待传输报文所耗用的时长之差为当前传输时隙t的剩余时长,若当前传输时隙t的剩余时长能够完整发送错误帧,则执行 步骤107,若当前传输时隙t的剩余时长不能够完整发送错误帧,则结束当前传输时隙t对应的待传输报文的生命周期。
步骤107,若当前传输时隙t的剩余时长能够完整发送错误帧,则发送错误帧。
步骤108,检测当前传输时隙t的剩余时长是否能够完整发送发生传输错误时发送的待传输报文;为了减低待传输报文发送过程中的错误率,在传输时隙t的时长允许的情况下,需要重新发送发生传输错误时发送的待传输报文,即重新发送该传输时隙t对应的待传输报文;当前传输时隙t的时长减去第一次发送对应于该传输时隙的待传输报文所耗用的时长后,再减去发送错误帧所耗用的时长,能够得到当前传输时隙的剩余时长,若当前传输时隙t的剩余时长不能够完整发送发生传输错误时发送的待传输报文,则不再重新发送发生传输错误时发送的待传输报文。
步骤109,若当前传输时隙t的剩余时长能够完整发送发生传输错误时发送的待传输报文,则重新发送发生传输错误时发送的待传输报文。
实施例四
请参阅图5,本发明实施例提供了一种车载网络系统20,车载网络系统20包括网关21和多个总线网段22,每个总线网段22包括多个电子控制单元23;其中,网关21用于获取待传输报文的数量和传输周期;根据待传输报文的数量和传输周期,确定传输时隙t,传输时隙t为使得每条待传输报文能够完整发送出去的时间间隔;向总线网段22中的电子控制单元23发送时钟同步命令,时钟同步命令用于使得总线网段23中的电子控制单元23在同一时间启动计时;电子控制单元23用于计时,并将待传输报文在传输时隙t发送,其中,一条待传输报文在一个传输时隙t中发送。
本发明实施例中的车载网络系统应用上述实施例中的传输报文的方法来发送待传输报文,故所述车载网络系统与上述实施例中的传输报文的方法相对与现有技术所具有的优势相同,在此不再赘述。
实施例五
本发明实施例还提供了一种车辆,所述车辆安装有上述实施例中的车载网络系统,故所述车辆与上述实施例中的车载网络系统相对于现有技术所具有的优势相同,在此不再赘述。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于车载网络系统和车辆的实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。