一种CAN总线通信质量优化方法和存储介质转让专利

申请号 : CN202210158518.2

文献号 : CN114422293B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 王真黄杰何文王敏

申请人 : 重庆长安汽车股份有限公司

摘要 :

本发明涉及一种CAN总线通信质量优化方法和存储介质,方法包括如下步骤:S1:对CAN总线上每个定义了周期进行报文的控制器,定义一个通信质量控制报文,在时间阈值H内,该报文只能被唤醒事件或同类型报文触发一次,该报文中包含报文信息;S2:根据CAN总线参数和各报文信息,计算得出不同周期内报文占用总线时间;计算得出错位定时器的定时时间;完成总线上所有已唤醒控制器的相同周期报文发送时钟错位,以避免报文蜂拥发送;S3:当总线上有新唤醒的控制器加入总线通信时,该控制器会发出通信质量控制报文,从而触发网段上其他控制器发送通信质量控制报文,重复步骤S2,实现总线通信质量实时优化。本发明能够快速实时地优化CAN总线通信质量,保证通信能力。

权利要求 :

1.一种CAN总线通信质量优化方法,其特征在于:包括如下步骤:

S1:对CAN总线上每个定义了周期进行报文的控制器,定义一个事件型报文并形成为通信质量控制报文,在时间阈值H内,通信质量控制报文只能被唤醒事件或同类型报文触发一次,通信质量控制报文中包含报文信息并采用一帧发送或多帧发送;

S2:根据CAN总线参数和各报文信息,计算得出不同周期内报文占用总线时间;

计算得出错位定时器的定时时间;

完成CAN总线上所有已唤醒控制器的相同周期报文发送时钟错位,以避免任意两个或多个控制器的相同周期报文在相近时刻发送;

S3:当CAN总线上有新唤醒的控制器加入总线通信时,新唤醒的控制器会发出通信质量控制报文,从而触发网段上其他控制器发送通信质量控制报文,重复步骤S2,实现总线通信质量实时优化;

所述报文信息包括控制器地址、控制器定义不同周期的数量和控制器定义的每个周期中周期报文数量;

步骤S2包括如下子步骤:

S2.1:总线唤醒时,获取总线波特率b、统计网段上控制器数量n以及所有控制器定义的周期报文中的不同周期数量P;第i个控制器在第j个周期中定义了mij个周期报文,第i个控制器在第j个周期中定义的第r个报文的数据场长度DLC为lr,第j个周期的具体周期值为Cj;

S2.2:根据标准CAN格式,考虑位填充,估算除数据场之外,一帧报文有50bit,通过单个控制器具体周期占用总线时间公式计算得出第i个控制器在第j个周期中定义的周期报文占用总线时间为Tij,进一步通过具体周期占用总线时间公式计算得出第j个周期中定义的所有周期报文占用总线时间为Sj;

所述单个控制器具体周期占用总线时间公式满足:

所述具体周期占用总线时间公式满足:

S2.3:若Tij>0,则判定第i个控制器在第j个周期中定义了周期报文,进一步计算出第j个周期中共有k个控制器定义了周期报文,对应得出k个控制器中第x个控制器在第j个周期中定义的周期报文占用总线时间为Txj,k个控制器中第x个控制器通过错位定时器计算公式得出错位定时器F的定时时间Fxj;同时启动定时器Fxj,当定时器Fxj超时时,第x个控制器重置第j个周期中定义的周期报文发送时钟;

所述错位定时器计算公式满足:

2.一种计算机可读存储介质,其上存储有计算机程序代码,所述计算机程序代码在被运行时执行如权利要求1中所述的一种CAN总线通信质量优化方法。

说明书 :

一种CAN总线通信质量优化方法和存储介质

技术领域

[0001] 本发明属于车载通信技术领域,具体涉及一种CAN总线通信质量优化方法和存储介质。

背景技术

[0002] 随着汽车科技的发展,人们对汽车提出了多样化的功能需求,相应对车载网络的通信能力有了更高要求。CAN总线通信方式作为车载网络中重要通信技术,由于较高负载,存在多个控制器可能在某些时刻蜂拥发送报文的现象,导致CAN总线某一时间段内负载过高,甚至出现丢帧的情况。如何在功能需求日益复杂、总线负载逐渐提高的环境中保证通信能力,保证CAN总线通信质量是关键之一。如果能实时优化CAN总线通信质量,将会给整车提供更可靠、稳定的通信保障,更好地满足人们对汽车的功能需求,提高用户使用感受,促进汽车行业发展。
[0003] 目前针对CAN总线通信方面的研究较多,大多都是对CAN总线负载率进行计算、检测等,此外,随着人们对汽车通信安全的重视程度提高,CAN总线的安全防护方法也越来越多地出现,针对不同报文类型的总线负载,专利号CN201710150546.9提供的计算方法既包含CAN报文数据流传输占用的总线负载,又包含填充位传输所占用的总线负载,拥有较高的准确性;专利号CN202110727654.4和CN201610064343.3也提供了节点报文是否有效和报文发送延迟的解决方法。但在实时优化CAN总线通信质量方面,还有待进一步创新优化。

发明内容

[0004] 针对现有技术的上述不足,本发明要解决的技术问题是提供一种CAN总线通信质量优化方法和存储介质,避免多个控制器可能在某些时刻蜂拥发送报文导致CAN总线在对应时间段内负载过高的问题,取得实时优化CAN总线通信质量、保障通信能力的效果。
[0005] 为解决上述技术问题,本发明采用如下技术方案:
[0006] 一种CAN总线通信质量优化方法,包括如下步骤:
[0007] S1:对CAN总线上每个定义了周期进行报文的控制器(也称节点),定义一个事件型报文并形成为通信质量控制报文,在时间阈值H内,通信质量控制报文只能被唤醒事件或同类型报文触发一次,通信质量控制报文中包含报文信息并采用一帧发送或多帧发送;
[0008] S2:根据CAN总线参数和各报文信息,计算得出不同周期内报文占用总线时间;
[0009] 计算得出错位定时器的定时时间;
[0010] 完成CAN总线上所有唤醒控制器的相同周期报文发送时钟错位,以避免任意两个或多个控制器的相同周期报文在相近时刻发送;
[0011] S3:当CAN总线上有新被唤醒的控制器加入总线通信时,新被唤醒的控制器发出通信质量控制报文,从而触发网段上其他已唤醒控制器发送通信质量控制报文,重复步骤S2,实现总线通信质量实时优化。
[0012] 进一步完善上述技术方案,所述报文信息包括控制器地址、控制器定义不同周期的数量和控制器定义的每个周期中周期报文数量。
[0013] 进一步地,步骤S2包括如下子步骤:
[0014] S2.1:总线唤醒时,获取总线波特率b、统计网段上控制器数量n以及所有控制器定义的周期报文中的不同周期数量P;第i个控制器在第j个周期中定义了mij个周期报文,第i个控制器在第j个周期中定义的第r个报文的DLC为lr,第j个周期的具体周期值为Cj;
[0015] S2.2:根据标准CAN格式,考虑位填充,估算除数据场之外,一帧报文有50bit,通过单个控制器具体周期占用总线时间公式计算得出第i个控制器在第j个周期中定义的周期报文占用总线时间为Tij,进一步通过具体周期占用总线时间公式计算得出第j个周期中定义的所有周期报文占用总线时间为Sj;
[0016] 所述单个控制器具体周期占用总线时间公式满足:
[0017]
[0018] 所述具体周期占用总线时间公式满足:
[0019]
[0020] S2.3:若Tij>0,则判定第i个控制器在第j个周期中定义了周期报文,进一步计算出第j个周期中共有k个控制器定义了周期报文,对应得出k个控制器中第x个控制器在第j个周期中定义的周期报文占用总线时间为Txj,k个控制器中第x个控制器通过错位定时器计算公式得出错位定时器F的定时时间Fxj;同时启动定时器Fxj,当定时器Fxj超时时,第x个控制器重置第j个周期中定义的周期报文发送时钟;
[0021] 所述错位定时器计算公式满足:
[0022]
[0023] 本发明还涉及一种计算机可读存储介质,其上存储有计算机程序代码,所述计算机程序代码在被运行时执行上述的CAN总线通信质量优化方法。
[0024] 相比现有技术,本发明具有如下有益效果:
[0025] 本发明的CAN总线通信质量优化方法,通过对CAN总线上每个控制器定义一个通信质量控制报文,根据CAN总线参数和各报文信息,计算得出不同周期内报文占用总线时间,进一步计算得出错位定时器的定时时间,完成总线上所有唤醒控制器的相同周期报文发送时钟错位后,可避免任意两个或多个控制器的相同周期报文在相近时刻发送;当总线上有新唤醒的节点加入总线通信时,新的节点会发出通信质量控制报文,从而触发网段上其他节点发送通信质量控制报文,实现总线通信质量实时优化,本发明能够快速实时地优化CAN总线通信质量,保证较高负载下的CAN总线通信能力。

附图说明

[0026] 图1为实施例的一种CAN总线通信质量优化方法的流程图。

具体实施方式

[0027] 下面结合附图对本发明的具体实施方式作进一步的详细说明。
[0028] 针对CAN总线上多个控制器在某些时刻蜂拥发送报文的问题,基于总线负载率低于95%的标准CAN总线通信,其中标准CAN定义了7个位场,分别为帧起始位、仲裁场、控制场、数据场、校验场、应答场和帧结束;具体实施例提供一种CAN总线通信质量优化方法,应用于CAN控制器,请参见图1,包含以下步骤:
[0029] 步骤(1)、对CAN总线上每个定义了周期的报文的控制器,定义一个事件型报文,名为通信质量控制报文,在时间阈值H内,该报文只能被唤醒事件或同类型报文触发一次,报文中包含控制器地址、控制器定义不同周期的数量、控制器定义的每个周期中周期报文数量信息,一帧发送,如果一帧发送不完相关信息,则采用多帧发送;
[0030] 步骤(2)、总线唤醒时,获取总线波特率为b,统计网段上控制器节点数量为n,以及所有控制器定义的周期报文一共有P个不同周期,第i个控制器在第j个周期中定义了mij个周期报文,第i个控制器在第j个周期中定义的第r个报文的数据场长度DLC(Date Length Code)为lr,第j个周期的具体周期值为Cj;
[0031] 步骤(3)、根据标准CAN格式,考虑位填充,估算除数据场之外,一帧报文有50bit,通过单个控制器具体周期占用总线时间公式计算得出第i个控制器在第j个周期中定义的周期报文占用总线时间为Tij,进一步通过具体周期占用总线时间公式计算得出第j个周期中定义的所有周期报文占用总线时间为Sj;
[0032] 所述单个控制器具体周期占用总线时间公式满足:
[0033]
[0034] 所述具体周期占用总线时间公式满足:
[0035]
[0036] 步骤(4)、若Tij>0,则第i个控制器在第j个周期中定义了周期报文,依此计算出第j个周期中工有k个控制器定义了周期报文,对应得出k个控制器中第x个控制器在第j个周期中定义的周期报文占用总线时间为Txj,k个控制器中第x个控制器通过错位定时器计算公式得出错位定时器F的定时时间Fxj,同时启动定时器Fxj,当定时器Fxj超时时,x控制器重置第j个周期中定义的周期报文发送时钟;
[0037] 所述错位定时器计算公式满足:
[0038]
[0039] 步骤(5)、根据步骤(3)至步骤(4),完成总线上所有已唤醒控制器的相同周期报文发送时钟错位,避免任意两个或多个控制器的相同周期报文在相近时刻蜂拥发送。
[0040] 步骤(6)、当总线上有新唤醒的控制器节点加入总线通信时,该控制器节点会发出通信质量控制报文,从而触发网段上其他控制器节点发送通信质量控制报文,再经过步骤(2)至步骤(5),完成总线通信质量实时优化。可以理解的,新唤醒的控制器,也是步骤1)中定义了通信质量控制报文的控制器。
[0041] 本发明还提供一种计算机可读存储介质,其上存储有计算机程序代码,所述计算机程序代码在被运行时执行上述的方法。
[0042] 最后说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明技术方案的宗旨和范围,其均应涵盖在本发明的权利要求范围当中。