CAN网络负载均衡方法、装置、设备及介质.pdf
《CAN网络负载均衡方法、装置、设备及介质.pdf》由会员分享,可在线阅读,更多相关《CAN网络负载均衡方法、装置、设备及介质.pdf(19页完成版)》请在专利查询网上搜索。
1、(19)国家知识产权局(12)发明专利申请(10)申请公布号 (43)申请公布日 (21)申请号 202310797080.7(22)申请日 2023.06.30(71)申请人 知行汽车科技(苏州)股份有限公司地址 215124 江苏省苏州市苏州工业园区金鸡湖大道88号G2-190119022002(72)发明人 韩乐乐陶晓荣卢玉坤(74)专利代理机构 北京信远达知识产权代理有限公司 11304专利代理师 李兆轩(51)Int.Cl.H04J 3/06(2006.01)H04L 12/40(2006.01)H04L 67/1004(2022.01)(54)发明名称一种CAN网络负载均衡方法、装。
2、置、设备及介质(57)摘要本申请公开了一种CAN网络负载均衡方法、装置、设备及介质,涉及通信技术领域,应用于主ECU节点,包括:在上电后,每隔预设时间间隔将本地时钟的时间戳发送至各从ECU节点,以便每一从ECU节点基于时间戳对本地时钟进行同步;获取各从ECU节点在同步本地时钟后上报的发送负载,并基于发送负载对各从ECU节点的发送时间点进行规划,以得到时间调度表;将时间调度表发送至各从ECU节点,以便各从ECU节点根据本地时钟在时间调度表规定的目标时间点发送CAN报文。本申请中,主ECU节点能够根据从ECU节点的发送负载统一调度从ECU节点发送CAN报文的时间,降低了CAN总线的负载峰值,保证了。
3、信号传输的稳定性和实时性。权利要求书2页 说明书12页 附图4页CN 116614198 A2023.08.18CN 116614198 A1.一种CAN网络负载均衡方法,其特征在于,应用于主ECU节点,包括:在上电后,每隔预设时间间隔将本地时钟的时间戳发送至各从ECU节点,以便每一所述从ECU节点基于所述时间戳对本地时钟进行同步;获取各所述从ECU节点在同步本地时钟后上报的发送负载,并基于所述发送负载对各所述从ECU节点的发送时间点进行规划,以得到时间调度表;将所述时间调度表发送至各所述从ECU节点,以便各所述从ECU节点根据本地时钟在所述时间调度表规定的目标时间点发送CAN报文;其中,所述。
4、基于所述发送负载对各所述从ECU节点的发送时间点进行规划,以得到时间调度表,包括:基于所述预设时间间隔确定出当前可分配的第一时间窗口和待保留的第二时间窗口;基于所述发送负载并利用预设均衡算法在所述第一时间窗口内对各所述从ECU节点的发送时间点进行规划,以得到时间调度表。2.根据权利要求1所述的CAN网络负载均衡方法,其特征在于,所述每隔预设时间间隔将本地时钟的时间戳发送至各所述从ECU节点,以便各所述从ECU节点基于所述时间戳对本地时钟进行同步,包括:每隔预设时间间隔将本地时钟的时间戳发送至各所述从ECU节点,以便各所述从ECU节点基于所述时间戳和时间戳传播时间对本地时钟进行同步。3.根据权利。
5、要求1所述的CAN网络负载均衡方法,其特征在于,所述获取各所述从ECU节点在同步本地时钟后上报的发送负载,包括:通过各所述从ECU节点在同步本地时钟后,根据自身发送CAN报文的周期频次、CAN报文的数据长度和传输速率确定出发送负载;获取各所述从ECU节点上报的所述发送负载。4.根据权利要求1所述的CAN网络负载均衡方法,其特征在于,还包括:判断当前是否满足预设负载均衡条件,若满足,则更新所述预设时间间隔,并按照更新后时间间隔将本地时钟的时间戳发送至各从ECU节点;其中,所述更新后时间间隔大于所述预设时间间隔。5.根据权利要求1至4任一项所述的CAN网络负载均衡方法,其特征在于,所述将所述时间调。
6、度表发送至各所述从ECU节点,以便各所述从ECU节点根据本地时钟在所述时间调度表规定的目标时间点发送CAN报文之后,还包括:在获取到任一所述从ECU节点发送的负载再均衡请求时,基于所述负载再均衡请求中携带的当前发送负载,利用所述预设均衡算法在所述第二时间窗口内对所述从ECU节点的发送时间点重新进行规划,以得到更新后时间调度表;将所述更新后时间调度表发送至所述从ECU节点,以便所述从ECU节点根据本地时钟在所述更新后时间调度表规定的时间点发送CAN报文。6.一种CAN网络负载均衡方法,其特征在于,应用于任意一个从ECU节点,包括:在上电后,获取主ECU节点每隔预设时间间隔发送的时间戳,并基于所述。
7、时间戳对本地时钟进行同步;在同步本地时钟后将本地的发送负载上报至所述主ECU节点,以便所述主ECU节点基于所述发送负载对每一所述从ECU节点的发送时间点进行规划,以得到时间调度表;权利要求书1/2 页2CN 116614198 A2获取所述主ECU节点发送的所述时间调度表,并根据本地时钟在所述时间调度表规定的目标时间点发送CAN报文;其中,所述主ECU节点基于所述发送负载对每一所述从ECU节点的发送时间点进行规划,以得到时间调度表,包括:通过所述主ECU节点基于所述预设时间间隔确定出当前可分配的第一时间窗口和待保留的第二时间窗口,以及基于所述发送负载并利用预设均衡算法在所述第一时间窗口内对各所。
8、述从ECU节点的发送时间点进行规划,以得到时间调度表。7.根据权利要求6所述的CAN网络负载均衡方法,其特征在于,所述根据本地时钟在所述时间调度表规定的目标时间点发送CAN报文之后,还包括:检测本地发送CAN报文的实际发送时间点,并获取所述实际发送时间点与所述目标时间点之间的时间偏差;判断所述时间偏差是否超过预设偏差阈值,若超过,则向所述主ECU节点发送携带有本地当前发送负载的负载再均衡请求,以便所述主ECU节点基于所述负载再均衡请求对发送时间点重新进行规划。8.一种CAN网络负载均衡装置,其特征在于,应用于主ECU节点,包括:时间同步模块,用于在上电后,每隔预设时间间隔将本地时钟的时间戳发送。
9、至各从ECU节点,以便每一所述从ECU节点基于所述时间戳对本地时钟进行同步;调度表获取模块,用于获取各所述从ECU节点在同步本地时钟后上报的发送负载,并基于所述发送负载对各所述从ECU节点的发送时间点进行规划,以得到时间调度表;报文发送模块,用于将所述时间调度表发送至各所述从ECU节点,以便各所述从ECU节点根据本地时钟在所述时间调度表规定的目标时间点发送CAN报文;其中,所述调度表获取模块,具体用于:基于所述预设时间间隔确定出当前可分配的第一时间窗口和待保留的第二时间窗口;基于所述发送负载并利用预设均衡算法在所述第一时间窗口内对各所述从ECU节点的发送时间点进行规划,以得到时间调度表。9.一。
10、种电子设备,其特征在于,包括:存储器,用于保存计算机程序;处理器,用于执行所述计算机程序,以实现如权利要求1至5任一项所述的CAN网络负载均衡方法的步骤。10.一种计算机可读存储介质,其特征在于,用于存储计算机程序;其中,所述计算机程序被处理器执行时实现如权利要求1至5任一项所述的CAN网络负载均衡方法的步骤。权利要求书2/2 页3CN 116614198 A3一种CAN网络负载均衡方法、装置、设备及介质技术领域0001本发明涉及通信技术领域,特别涉及一种CAN网络负载均衡方法、装置、设备及介质。背景技术0002CAN(Controller Area Network,即控制器域网)是当前应用最。
11、广泛的现场总线之一。目前的CAN NM(Network Management,即网格管理)可以实现CAN有序的睡眠唤醒,在没有通信需求的时候,可以保持总线的静默。0003CAN总线是多个节点共享的,当总线上的节点数量增加或节点发送的数据量增加时,总线负载将增加,可能导致数据传输的延迟增加。此外,当多个节点同时发送数据时,可能会发生碰撞,即多个节点同时访问总线导致数据冲突,虽然CAN总线采用了冲突检测和重发机制,但碰撞仍可能引起传输延迟增加。CAN总线使用基于标识符的优先级机制来处理多个节点同时发送数据的情况,较高优先级的帧将在总线上获得更早的访问权,而较低优先级的帧需要等待。如果设计中的优先级。
12、设置不合理,当CAN网络在运行过程中出现发送峰值时,低优先级的CAN报文可能由于仲裁失败,会出现严重的周期波动,导致实时性要求较高的帧受到较大延迟,从而影响信号传输的实时性。0004综上,如何实现CAN总线上的负载均衡,以保证信号传输的实时性和稳定性是目前有待解决的问题。发明内容0005有鉴于此,本发明的目的在于提供一种CAN网络负载均衡方法、装置、设备及介质,能够实现CAN总线上的负载均衡,以保证信号传输的实时性和稳定性。其具体方案如下:0006第一方面,本申请公开了一种CAN网络负载均衡方法,应用于主ECU节点,包括:0007在上电后,每隔预设时间间隔将本地时钟的时间戳发送至各从ECU节点。
13、,以便每一所述从ECU节点基于所述时间戳对本地时钟进行同步;0008获取各所述从ECU节点在同步本地时钟后上报的发送负载,并基于所述发送负载对各所述从ECU节点的发送时间点进行规划,以得到时间调度表;0009将所述时间调度表发送至各所述从ECU节点,以便各所述从ECU节点根据本地时钟在所述时间调度表规定的目标时间点发送CAN报文;0010其中,所述基于所述发送负载对各所述从ECU节点的发送时间点进行规划,以得到时间调度表,包括:0011基于所述预设时间间隔确定出当前可分配的第一时间窗口和待保留的第二时间窗口;0012基于所述发送负载并利用预设均衡算法在所述第一时间窗口内对各所述从ECU节点的发。
14、送时间点进行规划,以得到时间调度表。0013可选的,所述每隔预设时间间隔将本地时钟的时间戳发送至各所述从ECU节点,以说明书1/12 页4CN 116614198 A4便各所述从ECU节点基于所述时间戳对本地时钟进行同步,包括:0014每隔预设时间间隔将本地时钟的时间戳发送至各所述从ECU节点,以便各所述从ECU节点基于所述时间戳和时间戳传播时间对本地时钟进行同步。0015可选的,所述获取各所述从ECU节点在同步本地时钟后上报的发送负载,包括:0016通过各所述从ECU节点在同步本地时钟后,根据自身发送CAN报文的周期频次、CAN报文的数据长度和传输速率确定出发送负载;0017获取各所述从EC。
15、U节点上报的所述发送负载。0018可选的,所述CAN网络负载均衡方法,还包括:0019判断当前是否满足预设负载均衡条件,若满足,则更新所述预设时间间隔,并按照更新后时间间隔将本地时钟的时间戳发送至各从ECU节点;其中,所述更新后时间间隔大于所述预设时间间隔。0020可选的,所述将所述时间调度表发送至各所述从ECU节点,以便各所述从ECU节点根据本地时钟在所述时间调度表规定的目标时间点发送CAN报文之后,还包括:0021在获取到任一所述从ECU节点发送的负载再均衡请求时,基于所述负载再均衡请求中携带的当前发送负载,利用所述预设均衡算法在所述第二时间窗口内对所述从ECU节点的发送时间点重新进行规划。
16、,以得到更新后时间调度表;0022将所述更新后时间调度表发送至所述从ECU节点,以便所述从ECU节点根据本地时钟在所述更新后时间调度表规定的时间点发送CAN报文。0023第二方面,本申请公开了一种CAN网络负载均衡方法,应用于任意一个从ECU节点,包括:0024在上电后,获取主ECU节点每隔预设时间间隔发送的时间戳,并基于所述时间戳对本地时钟进行同步;0025在同步本地时钟后将本地的发送负载上报至所述主ECU节点,以便所述主ECU节点基于所述发送负载对每一所述从ECU节点的发送时间点进行规划,以得到时间调度表;0026获取所述主ECU节点发送的所述时间调度表,并根据本地时钟在所述时间调度表规定。
17、的目标时间点发送CAN报文;0027其中,所述主ECU节点基于所述发送负载对每一所述从ECU节点的发送时间点进行规划,以得到时间调度表,包括:0028通过所述主ECU节点基于所述预设时间间隔确定出当前可分配的第一时间窗口和待保留的第二时间窗口,以及基于所述发送负载并利用预设均衡算法在所述第一时间窗口内对各所述从ECU节点的发送时间点进行规划,以得到时间调度表。0029可选的,所述根据本地时钟在所述时间调度表规定的目标时间点发送CAN报文之后,还包括:0030检测本地发送CAN报文的实际发送时间点,并获取所述实际发送时间点与所述目标时间点之间的时间偏差;0031判断所述时间偏差是否超过预设偏差阈。
18、值,若超过,则向所述主ECU节点发送携带有本地当前发送负载的负载再均衡请求,以便所述主ECU节点基于所述负载再均衡请求对发送时间点重新进行规划。0032第三方面,本申请公开了一种CAN网络负载均衡装置,应用于主ECU节点,包括:说明书2/12 页5CN 116614198 A50033时间同步模块,用于在上电后,每隔预设时间间隔将本地时钟的时间戳发送至各从ECU节点,以便每一所述从ECU节点基于所述时间戳对本地时钟进行同步;0034调度表获取模块,用于获取各所述从ECU节点在同步本地时钟后上报的发送负载,并基于所述发送负载对各所述从ECU节点的发送时间点进行规划,以得到时间调度表;0035报文。
19、发送模块,用于将所述时间调度表发送至各所述从ECU节点,以便各所述从ECU节点根据本地时钟在所述时间调度表规定的目标时间点发送CAN报文;0036其中,所述调度表获取模块,具体用于:0037基于所述预设时间间隔确定出当前可分配的第一时间窗口和待保留的第二时间窗口;0038基于所述发送负载并利用预设均衡算法在所述第一时间窗口内对各所述从ECU节点的发送时间点进行规划,以得到时间调度表。0039第四方面,本申请公开了一种电子设备,包括:0040存储器,用于保存计算机程序;0041处理器,用于执行所述计算机程序,以实现前述公开的CAN网络负载均衡方法的步骤。0042第五方面,本申请公开了一种计算机可。
20、读存储介质,用于存储计算机程序;其中,所述计算机程序被处理器执行时实现前述公开的CAN网络负载均衡方法的步骤。0043可见,本申请中的主ECU节点在上电后,每隔预设时间间隔将本地时钟的时间戳发送至各从ECU节点,以便每一所述从ECU节点基于所述时间戳对本地时钟进行同步;获取各所述从ECU节点在同步本地时钟后上报的发送负载,并基于所述发送负载对各所述从ECU节点的发送时间点进行规划,以得到时间调度表;将所述时间调度表发送至各所述从ECU节点,以便各所述从ECU节点根据本地时钟在所述时间调度表规定的目标时间点发送CAN报文;其中,所述基于所述发送负载对各所述从ECU节点的发送时间点进行规划,以得到。
21、时间调度表,包括:基于所述预设时间间隔确定出当前可分配的第一时间窗口和待保留的第二时间窗口;基于所述发送负载并利用预设均衡算法在所述第一时间窗口内对各所述从ECU节点的发送时间点进行规划,以得到时间调度表。由此可见,主ECU节点会周期性的将本地时钟的时间戳发送至各从ECU节点,以便每一从ECU节点基于时间戳对其本地时钟进行同步,周期间隔为预设时间间隔;各从ECU节点在获取到时间戳并对本地时钟进行同步后,会将本地的发送负载上报至主ECU节点,然后主ECU节点基于这些发送负载对各从ECU节点的发送时间点进行规划,以得到时间调度表,再将时间调度表发送至各从ECU节点,以便各从ECU节点根据本地时钟在。
22、时间调度表规定的目标时间点发送CAN报文。并且,主ECU节点在根据发送负载规划各从ECU节点的发送时间点时,需要基于预设时间间隔确定出当前可分配的第一时间窗口和待保留的第二时间窗口,首先利用预设均衡算法在第一时间窗口内对各从ECU节点的发送时间点进行规划,以得到时间调度表,并将时间调度表发送至各从ECU节点。也即,本申请在初次规划发送时间点时,并非是在整个周期间隔内进行划分,还需要保留一部分时间窗口,以便用于后续规划。如此一来,本申请中主ECU节点通过根据从ECU节点的发送负载统一调度从ECU节点发送CAN报文的时间,以保证各从ECU节点CAN报文的稳定发送,从而降低了CAN总线的负载峰值,也。
23、保证了信号传输的稳定性和实时性。说明书3/12 页6CN 116614198 A6附图说明0044为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。0045图1为本申请公开的一种CAN网络负载均衡方法流程图;0046图2为本申请公开的一种具体的CAN网络负载均衡方法流程图;0047图3为本申请公开的一种具体的CAN网络负载均衡流程示意图;0048图4为本申请公开的一种具体的时间调度表示意图;0。
24、049图5为本申请公开的另一种CAN网络负载均衡方法流程图;0050图6为本申请公开的一种CAN网络负载均衡装置结构示意图;0051图7为本申请公开的一种电子设备结构图。具体实施方式0052下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。0053当前,CAN总线是多个节点共享的,当总线上的节点数量增加或节点发送的数据量增加时,总线负载将增加,可能导致数据传输的延迟增加。此外,当多个节点。
25、同时发送数据时,可能会发生碰撞,即多个节点同时访问总线导致数据冲突,虽然CAN总线采用了冲突检测和重发机制,但碰撞仍可能引起传输延迟增加。CAN总线使用基于标识符的优先级机制来处理多个节点同时发送数据的情况,较高优先级的帧将在总线上获得更早的访问权,而较低优先级的帧需要等待。如果设计中的优先级设置不合理,当CAN网络在运行过程中出现发送峰值时,低优先级的CAN报文可能由于仲裁失败,会出现严重的周期波动,导致实时性要求较高的帧受到较大延迟,从而影响信号传输的实时性。为此,本申请实施例公开了一种CAN网络负载均衡方法、装置、设备及介质,能够实现CAN总线上的负载均衡,以保证信号传输的实时性和稳定性。
26、。0054参见图1所示,本申请实施例公开了一种CAN网络负载均衡方法,应用于主ECU节点,该方法包括:0055步骤S11:在上电后,每隔预设时间间隔将本地时钟的时间戳发送至各从ECU节点,以便每一所述从ECU节点基于所述时间戳对本地时钟进行同步。0056本实施例中,主ECU节点在上电后,会每隔预设时间间隔将本地时钟的时间戳发送至各从ECU节点,以便每一从ECU节点基于时间戳对其本地时钟进行同步。通常情况下,预设时间间隔会设置为10ms,因为10ms是最小报文周期,为了尽快的进行时间同步,所以一般会选取10ms,但在具体情况中,也可以设置为其他的时间,例如设置为15ms、20ms等等。假设预设时。
27、间间隔为10ms,那么主ECU节点则按照10ms周期发送时间戳,其他从ECU节点接收到时间戳后同步本地时钟。需要指出的是,本申请实施例中的网格管理阶段使用OSEK NM标准,所有ECU节点的上电过程遵循OSEK NM网络管理规范。在所有ECU节点逻辑环建立以后,由负说明书4/12 页7CN 116614198 A7载均衡主ECU节点接管网络通信控制,其中,主ECU节点一般选择网关节点,并且,本申请实施例在实施过程中,会采取一定的安全保护机制以提高主节点的稳定性。0057步骤S12:获取各所述从ECU节点在同步本地时钟后上报的发送负载,并基于所述发送负载对各所述从ECU节点的发送时间点进行规划,。
28、以得到时间调度表。0058本实施例中,各从ECU节点在获取到时间戳并对本地时钟进行同步后,会将本地的发送负载上报至主ECU节点,然后主ECU节点基于收到的所有从ECU节点的发送负载对各从ECU节点的发送时间点进行规划,以得到时间调度表。需要指出的是,此处的发送负载可以指的是从ECU节点的最大发送负载。0059在具体实施方式中,上述获取各所述从ECU节点在同步本地时钟后上报的发送负载,具体包括:通过各所述从ECU节点在同步本地时钟后,根据自身发送CAN报文的周期频次、CAN报文的数据长度和传输速率确定出发送负载;获取各所述从ECU节点上报的所述发送负载。也即,从ECU节点通过统计自身发送CAN报。
29、文的周期频次,并根据CAN报文的数据长度以及传输速率共同计算出最大发送负载,具体公式为:最大发送负载数据长度传输速率/周期时间;然后各从ECU节点将本地的最大发送负载上报给主ECU节点。0060进一步的,需要指出的是,上述基于所述发送负载对各所述从ECU节点的发送时间点进行规划,以得到时间调度表,包括:基于所述预设时间间隔确定出当前可分配的第一时间窗口和待保留的第二时间窗口;基于所述发送负载并利用预设均衡算法在所述第一时间窗口内对各所述从ECU节点的发送时间点进行规划,以得到时间调度表。也即,本实施例中,主ECU节点在根据发送负载规划各从ECU节点的发送时间点时,需要基于预设时间间隔确定出当前。
30、可分配的第一时间窗口和待保留的第二时间窗口,首先利用预设均衡算法在第一时间窗口内对各从ECU节点的发送时间点进行规划,以得到时间调度表,并将时间调度表发送至各从ECU节点。也即,本申请中主ECU节点在初次规划发送时间点时,并非是在整个周期间隔内进行划分,而是仅在第一时间窗口内进行规划,还需要保留一部分时间窗口,以便用于后续规划。0061步骤S13:将所述时间调度表发送至各所述从ECU节点,以便各所述从ECU节点根据本地时钟在所述时间调度表规定的目标时间点发送CAN报文。0062本实施例中,主ECU节点将时间调度表发送给各从ECU节点,各从ECU节点收到时间调度表后,根据其本地时钟以在时间调度表。
31、规定的目标时间点发送CAN报文。可以理解的是,时间调度表中规定了每一个从ECU节点发送CAN报文的时间点,那么从ECU节点在获取到时间调度表后,则从中获取本节点的发送时间点信息,然后在其本地时钟到达对应的发送时间点后,进行CAN报文的发送。如此一来,本申请中的主ECU节点通过根据从ECU节点的发送负载统一调度从ECU节点发送CAN报文的时间,以保证各从ECU节点CAN报文的稳定发送,从而降低了CAN总线的负载峰值,也保证了信号传输的稳定性和实时性。0063另外,还需要指出的是,上述方法还包括:判断当前是否满足预设负载均衡条件,若满足,则更新所述预设时间间隔,并按照更新后时间间隔将本地时钟的时间。
32、戳发送至各从ECU节点;其中,所述更新后时间间隔大于所述预设时间间隔。根据前述内容可知,主ECU节点上电后,会周期性的向各从ECU节点发送同步时间戳,周期间隔为预设时间间隔,例如为10ms,然而周期间隔并非是一直保持为10ms。本实施例中,在网络启动时,主ECU节点会按照10ms的周期发送同步时间戳,然而当时间调度表在一段时间内不再变化或者持续时间达说明书5/12 页8CN 116614198 A8到1000ms(即发送100次)之后,可以认为当前满足预设负载均衡条件,则会更新预设时间间隔,并按照更新后时间间隔发送时间戳进行同步,其中需要满足更新后时间间隔大于预设时间间隔。也即,在满足预设负载。
33、均衡条件后,则会按照更大的周期间隔进行时间戳同步,例如可以使用30000ms的周期发送时间戳,其中30000ms周期只是本申请实施例给出的一个具体示例,本申请对此不做限制。可以理解的是,若时间调度表在一段时间内不再发生变化,可以认为此时各从ECU节点报文的发送已经趋于稳定,在实际情况或者试验中,通常在持续100次按照10ms的周期发送时间戳进行同步并规划时间调度表后,此时各从ECU节点报文的发送通常已经趋于稳定,CAN网络上的总线负载已经均衡,那么无需再频繁的进行小周期同步,也能达到节省计算机资源的目的。而在之后并非是不再进行时间戳同步,而是进行较大周期,如每隔30000ms进行一次时间戳的同。
34、步,以便从ECU节点再基于时间戳校准本地时钟,以此调整CAN报文的发送窗口,可以有效的避免发送误差的累计。0064可见,本申请中的主ECU节点在上电后,每隔预设时间间隔将本地时钟的时间戳发送至各从ECU节点,以便每一所述从ECU节点基于所述时间戳对本地时钟进行同步;获取各所述从ECU节点在同步本地时钟后上报的发送负载,并基于所述发送负载对各所述从ECU节点的发送时间点进行规划,以得到时间调度表;将所述时间调度表发送至各所述从ECU节点,以便各所述从ECU节点根据本地时钟在所述时间调度表规定的目标时间点发送CAN报文;其中,所述基于所述发送负载对各所述从ECU节点的发送时间点进行规划,以得到时间。
35、调度表,包括:基于所述预设时间间隔确定出当前可分配的第一时间窗口和待保留的第二时间窗口;基于所述发送负载并利用预设均衡算法在所述第一时间窗口内对各所述从ECU节点的发送时间点进行规划,以得到时间调度表。由此可见,主ECU节点会周期性的将本地时钟的时间戳发送至各从ECU节点,以便每一从ECU节点基于时间戳对其本地时钟进行同步,周期间隔为预设时间间隔;各从ECU节点在获取到时间戳并对本地时钟进行同步后,会将本地的发送负载上报至主ECU节点,然后主ECU节点基于这些发送负载对各从ECU节点的发送时间点进行规划,以得到时间调度表,再将时间调度表发送至各从ECU节点,以便各从ECU节点根据本地时钟在时间。
36、调度表规定的目标时间点发送CAN报文。并且,主ECU节点在根据发送负载规划各从ECU节点的发送时间点时,需要基于预设时间间隔确定出当前可分配的第一时间窗口和待保留的第二时间窗口,首先利用预设均衡算法在第一时间窗口内对各从ECU节点的发送时间点进行规划,以得到时间调度表,并将时间调度表发送至各从ECU节点。也即,本申请在初次规划发送时间点时,并非是在整个周期间隔内进行划分,还需要保留一部分时间窗口,以便用于后续规划。如此一来,本申请中主ECU节点通过根据从ECU节点的发送负载统一调度从ECU节点发送CAN报文的时间,以保证各从ECU节点CAN报文的稳定发送,从而降低了CAN总线的负载峰值,也保证。
37、了信号传输的稳定性和实时性。0065参见图2和图3所示,本申请实施例公开了一种具体的CAN网络负载均衡方法,相对于上一实施例,本实施例对技术方案作了进一步的说明和优化。具体包括:0066步骤S21:在上电后,每隔预设时间间隔将本地时钟的时间戳发送至各所述从ECU节点,以便各所述从ECU节点基于所述时间戳和时间戳传播时间对本地时钟进行同步。0067本实施例中,在时钟同步阶段,总线处于空闲状态,所以从主ECU节点发送时间戳,到从ECU节点接收到该时间戳之间的时钟偏差可以认为是一个固定参数Ta,时钟偏差可认为是时间戳传播时间。那么假设时间戳为T0,时间戳传播时间为Ta,从节点在接收到主节点说明书6/。
38、12 页9CN 116614198 A9的时间戳T0,并设置自身本地时钟T时,TT0+Ta。其中,时间戳传播时间主要受到总线波特率以及从ECU节点内部数据链路的影响。0068步骤S22:获取各所述从ECU节点在同步本地时钟后上报的发送负载,并基于所述预设时间间隔确定出当前可分配的第一时间窗口和待保留的第二时间窗口。0069本实施例中,获取各从ECU节点在同步本地时钟后上报的发送负载,假设从ECU节点的数量为N个,发送负载则记为L1,L2,LN。进一步的,主ECU节点需要基于预设时间间隔确定出当前可分配的第一时间窗口和待保留的第二时间窗口,假设预设时间间隔为10ms,也即主ECU节点以10ms为。
39、一个调度周期,并以1ms为最小调度单元,则一共可分为10个时间窗口,进一步的,需要将这10个时间窗口分为当前可分配的第一时间窗口和待保留的第二时间窗口。本实施例中,将这10个时间窗口记为T1,T1,T10,那么在一种具体实施方式中,可以将T1至TM(M10)个时间窗口作为当前可分配的第一时间窗口,并保留剩余的10M个时间窗口作为第二时间窗口。在通常情况下,根据技术人员的经验值,一般将第一时间窗口和第二时间窗口的按照7:3的占比进行划分,即第一时间窗口占整个调度周期的70,第二时间窗口占整个调度周期的30,在具体情况下也可以进行调整,如按照8:2或者6:4的占比。0070步骤S23:基于所述发送。
40、负载并利用预设均衡算法在所述第一时间窗口内对各所述从ECU节点的发送时间点进行规划,以得到时间调度表。0071本实施例中,主ECU节点基于获取到的发送负载并利用预设均衡算法在第一时间窗口内对各从ECU节点的发送时间点进行规划,以得到时间调度表,其目的是尽量保证一个周期内各时间点的峰值负载均衡,并在该周期内全部开始CAN报文的发送。0072通过前述内容可知,发送负载为L1,L2,LN,第一时间窗口为T1至TM,因此该问题可以抽象为将N个数据分成M组,每组的数据和记为S,求解S数列方差最小的分配方案。在预设均衡算法中可使用动态规划来解决此问题:00731.将N个数字按非递增顺序排序。00742.创。
41、建一个大小为(N+1)x(M+1)的二维数组dp,其中dpij表示将前i个数字分成j组时的最小方差。00753.初始化dp数组的边界条件,即当i0或j0时,dpij的值都为0。00764.从i1到N,依次遍历排序后的N个数字。00775.从j1到M,依次遍历分成的组数。00786.对于每个dpij,计算所有可能的划分方案,并选择使得方差最小的划分。具体步骤如下:0079对于当前数字numsi,将其加入第j组,更新第j组的和为S;0080计算第j组数据的方差:variance(sumj/jnumsi)2/j;0081更新dpij的值为dpi1j1+variance,表示前i个数字分成j组时的最小。
42、方差;0082将第j组的和sumj更新为sumj+numsi;0083在j组中选择使得dpij最小的方案。00847.最终的最小方差为dpNM。0085根据上述算法,所有的从ECU节点都被分配在T1,T2,TM的时间窗口中,主节点说明书7/12 页10CN 116614198 A10使用CANID_T0CAN ID_T10的发布信息。如图4中所示,图4为本申请实施例公开的一种具体的时间调度表示意图,图4中,M取值为7,N取值为18,第一时间窗口为T1至T7,从ECU节点的数量为18,各从ECU节点在每个时间窗口的调度使能使用位域0和1表示,若为1则表示对应的ECU节点需要在与该时间窗口相应的时。
43、间点发送CAN报文。例如,ECU4对应的时间窗口为CANID_T4,则ECU4需要在T4进行CAN报文的发送。0086步骤S24:将所述时间调度表发送至各所述从ECU节点,以便各所述从ECU节点根据本地时钟在所述时间调度表规定的目标时间点发送CAN报文。0087本实施例中,上述将所述时间调度表发送至各所述从ECU节点,以便各所述从ECU节点根据本地时钟在所述时间调度表规定的目标时间点发送CAN报文之后,还包括:在获取到任一所述从ECU节点发送的负载再均衡请求时,基于所述负载再均衡请求中携带的当前发送负载,利用所述预设均衡算法在所述第二时间窗口内对所述从ECU节点的发送时间点重新进行规划,以得到。
44、更新后时间调度表;将所述更新后时间调度表发送至所述从ECU节点,以便所述从ECU节点根据本地时钟在所述更新后时间调度表规定的时间点发送CAN报文。需要指出的是,从ECU节点在开启CAN报文发送后,会动态检测本地负载,并判断是否需要进行发送时间点的重分配,若需要,则会向主ECU节点发送负载再均衡请求。主ECU节点在收到任一从ECU节点发送的负载再均衡请求后,则基于负载再均衡请求中携带的当前发送负载,利用前述提到的预设均衡算法在第二时间窗口内对从ECU节点的发送时间点重新进行规划,以得到更新后时间调度表;然后将更新后时间调度表发送至从ECU节点,以便从ECU节点根据本地时钟在更新后时间调度表规定的。
45、时间点发送CAN报文。也即,此时主ECU节点分配保留的M到10之间的时间段给申请重分配的从ECU节点,例如假设此时有Q个从ECU节点均向主ECU节点发送了负载再均衡请,则问题抽象为需要将Q个数据分成10M组,并保证每组的数据和方差最小。如此一来,本申请通过预先保留第二时间窗口的方式,能在任意一个从ECU节点申请发送时间点重分配的情况下,也能保证网络中所有ECU节点在一个调度周期内全部开始应用报文发送。0088其中,关于上述步骤S24更加具体的处理过程可以参考前述实施例中公开的相应内容,在此不再进行赘述。0089可见,本申请实施例中,从ECU节点在基于时间戳同步本地时钟时,还需考虑到时间戳传播时。
46、间。主ECU节点在根据发送负载规划各从ECU节点的发送时间点时,需要基于预设时间间隔确定出当前可分配的第一时间窗口和待保留的第二时间窗口,首先利用预设均衡算法在第一时间窗口内对各从ECU节点的发送时间点进行规划,以得到时间调度表,并将时间调度表发送至各从ECU节点。从ECU节点开启报文发送后,若判定自身需要进行发送时间点的重分配,则向主ECU节点发送负载再均衡请求,此时主ECU节点再根据负载再均衡请求中携带的当前发送负载,利用预设均衡算法在之前保留的第二时间窗口内对从ECU节点的发送时间点重新进行规划。如此一来,本申请通过预先保留第二时间窗口的方式,能在任意一个从ECU节点申请发送时间点重分配。
47、的情况下,也能保证网络中所有ECU节点在一个调度周期内全部开始应用报文发送,从而实现一个调度周期内各时间点的峰值负载均衡。0090参见图5所示,本申请实施例公开了一种CAN网络负载均衡方法,应用于任意一个从ECU节点,该方法包括:0091步骤S31:在上电后,获取主ECU节点每隔预设时间间隔发送的时间戳,并基于所述说明书8/12 页11CN 116614198 A11时间戳对本地时钟进行同步。0092本实施例中,从ECU节点上电后,获取主ECU节点每隔预设时间间隔发送的时间戳,并基于该时间戳对本地时钟进行同步。例如,主ECU节点可以按照10ms周期发送时间戳,那么从ECU节点则每隔10ms周期。
48、对本地时钟进行一次同步。此外,在同步时,还需要考虑到时间戳在总线上的传播时间。0093步骤S32:在同步本地时钟后将本地的发送负载上报至所述主ECU节点,以便所述主ECU节点基于所述发送负载对每一所述从ECU节点的发送时间点进行规划,以得到时间调度表。0094本实施例中,从ECU节点完成时钟同步后,会上报本ECU节点的最大发送负载给主ECU节点,主ECU节点在收到各个从ECU节点的最大发送负载后,基于发送负载信息对每一从ECU节点的发送时间点进行规划,以得到时间调度表。也即,主ECU节点通过根据从ECU节点的发送负载统一调度从ECU节点发送CAN报文的时间,以保证各从ECU节点CAN报文的稳定。
49、发送,从而降低了CAN总线的负载峰值,也保证了信号传输的稳定性和实时性。0095需要指出的是,所述主ECU节点基于所述发送负载对每一所述从ECU节点的发送时间点进行规划,以得到时间调度表,包括:通过所述主ECU节点基于所述预设时间间隔确定出当前可分配的第一时间窗口和待保留的第二时间窗口,以及基于所述发送负载并利用预设均衡算法在所述第一时间窗口内对各所述从ECU节点的发送时间点进行规划,以得到时间调度表。也即,主ECU节点需要将预设时间间隔分为两个时间窗口,在初次规划发送时间点时,并非是在整个周期间隔内进行划分,而是仅在第一时间窗口内进行规划,还需要保留一部分时间窗口,以便用于后续规划。0096。
50、步骤S33:获取所述主ECU节点发送的所述时间调度表,并根据本地时钟在所述时间调度表规定的目标时间点发送CAN报文。0097本实施例中,获取主ECU节点发送的时间调度表,并根据本地时钟在时间调度表规定的目标时间点发送CAN报文。0098进一步的,上述根据本地时钟在所述时间调度表规定的目标时间点发送CAN报文之后,还包括:检测本地发送CAN报文的实际发送时间点,并获取所述实际发送时间点与所述目标时间点之间的时间偏差;判断所述时间偏差是否超过预设偏差阈值,若超过,则向所述主ECU节点发送携带有本地当前发送负载的负载再均衡请求,以便所述主ECU节点基于所述负载再均衡请求对发送时间点重新进行规划。可以。
- 内容关键字: CAN 网络 负载 均衡 方法 装置 设备 介质
链接地址:https://www.zhuanlichaxun.net/pdf/14332388.html