本发明专利技术公开了一种车载CAN网络消息的共享ID序列方法,在车载CAN网络通信中,CAN协议根据消息的优先级竞争总线的机制,使得多个消息在同一时刻发送时,会造成消息接收的不确定和低优先级消息排队等待时间过长。本发明专利技术提供一种共享ID序列方法,使得CAN网络节点消息能按照预设好的ID序列发送,并且当节点消息在传输过程出错,不能按时发送给接收节点时,会按照设置的阈值来删除它,以提高通信网络的实时性和稳定性。
【技术实现步骤摘要】
一种车载CAN网络消息的共享ID序列方法
本专利技术涉及汽车制造领域,具体是一种车载CAN网络消息的共享ID序列方法。
技术介绍
CAN总线是由博世公司开发出的一种串行总线,由于该总线有较高的可靠性和较低的价格优势,使其成为目前汽车上应用最多的总线。然而在车载CAN总线的通信中,由于协议自身仲裁机制的原因,会使得消息接收是不确定的及低优先级消息的等待时延过长,严重影响了通信的稳定性和实时性。针对此问题,国外研究人员提出了TTCAN协议,此协议采用时分复用的原理来离线分配好各种消息的时间窗,达到有序发送消息的目的,增强了消息的实时性。但此方法的缺陷是无法和CAN节点设备很好的兼容,并且如果要新增消息的话,不得不重新离线设计时间窗,灵活性太差。国外研究人员还提出了共享时钟方法,该方法是通过在软件层面上实现时间触发的CAN通信,但主节点需频繁的发送时标消息来对从节点时钟同步,对时标消息的抗干扰性要求很高并且额外增加了通信成本。国内研究人员提出的动态ID序列的方法虽然能增强消息的确定性,但是此方法需要每个节点接收总线上的全部消息,这对节点中CPU的负担是很大的。因此,需要一种更优的CAN消息发送方法来增强在CAN通信网络的稳定性和实时性。
技术实现思路
为实现上述目的,本专利技术提供一种车载CAN网络消息的共享ID序列方法,以增强CAN网络的稳定性,本专利技术所用的技术方案为:一种车载CAN网络消息的共享ID序列方法,具体包括以下步骤:S1.主节点控制器ID序列的预设与出错阈值的设置;S2.主节点控制器把ID序列发给各从节点控制器,各从节点控制器根据得到的ID序列发送消息;S3.从节点控制器消息发送条件的判断;S4.从节点控制器发送消息的出错次数达到阈值,主节点控制器检索并删除出错的ID,随后重新排列ID序列。步骤S1中所述主节点控制器ID序列的预设,其排列方法具体为:所有消息的ID序列按照优先级大小从左至右升序排列。步骤S3中所述从节点控制器消息发送条件的判断,其内容具体为:从节点控制器判断接收的消息是否为本节点下一个需要发送的消息,如果是,则继续判断是否到了本节点消息的发送周期,如果这两个条件都满足,则本节点发送该消息,否则不发送该消息。步骤S4中所述从节点控制器发送消息的出错次数达到阈值,主节点控制器检索并删除出错的ID,随后重新排列ID序列;其具体过程为:从节点控制器发送消息给接收节点控制器的同时,也把该消息发送给主节点控制器,如果主节点控制器在下一个发送周期前没收到该消息,则主节点控制器判断该消息数据包丢失,相应接收节点控制器的消息数据包同样丢失,主节点控制器报错计数,并记录该出错消息的ID;根据消息的重要程度,在主节点控制器中设置不同消息出错的阈值,当有消息的出错次数达到其对应的阈值时,主节点控制器检索出相应出错的消息ID进行删除,并重新排列ID序列。本专利技术的有益效果在于:本专利技术提供了一种车载CAN网络消息的共享ID序列方法,该方法能使CAN网络节点消息能按照预设好的ID序列发送,并且当节点消息在传输过程出错,不能按时发送给接收节点时,会按照设置的阈值来删除它,提高通信网络的实时性和稳定性。附图说明图1为本专利技术一种车载CAN网络消息的共享ID序列方法的流程图;图2为本专利技术一种车载CAN网络消息的共享ID序列方法的从节点消息通信示意图。具体实施方式下面结合附图和实施例对本专利技术作进一步的说明。一种车载CAN网络消息的共享ID序列方法,具体包括以下步骤:S1.主节点控制器ID序列的预设与出错阈值的设置;S2.主节点控制器把ID序列发给各从节点控制器,各从节点控制器根据得到的ID序列发送消息;S3.从节点控制器消息发送条件的判断;S4.从节点控制器发送消息的出错次数达到阈值,主节点控制器检索并删除出错的ID,随后重新排列ID序列。步骤S1中所述主节点控制器ID序列的预设,其排列方法具体为:所有消息的ID序列按照优先级大小从左至右升序排列。步骤S3中所述从节点控制器消息发送条件的判断,其内容具体为:从节点控制器判断接收的消息是否为本节点下一个需要发送的消息,如果是,则继续判断是否到了本节点消息的发送周期,如果这两个条件都满足,则本节点发送该消息,否则不发送该消息。步骤S4中所述从节点控制器发送消息的出错次数达到阈值,主节点控制器检索并删除出错的ID,随后重新排列ID序列;其具体过程为:从节点控制器发送消息给接收节点控制器的同时,也把该消息发送给主节点控制器,如果主节点控制器在下一个发送周期前没收到该消息,则主节点控制器判断该消息数据包丢失,相应接收节点控制器的消息数据包同样丢失,主节点控制器报错计数,并记录该出错消息的ID;根据消息的重要程度,在主节点控制器中设置不同消息出错的阈值,当有消息的出错次数达到其对应的阈值时,主节点控制器检索出相应出错的消息ID进行删除,并重新排列ID序列。实施例:参见图1-2。假设有A、B、C、D、E、F节点,接收节点和主节点。A~F节点分别有消息m1~m6,主节点中有预设好的ID序列,m1的优先级最高,m1~m6的优先级依次降低,A、B节点消息的发送周期为10ms,C、D节点消息的发送周期为20ms,E、F节点消息的发送周期为30ms。消息m4的错误阈值设为2,消息m6的错误阈值设为1。各节点消息通信如图2所示。根据图1所示的共享ID序列方法流程图,主节点在0时刻把预设好的ID序列发送给A、B、C、D、E、F节点,经过一段时间后,由于A节点消息m1的优先级最高,因此在t1时刻发送消息m1给接收节点和主节点,等总线空闲后,B节点消息m2优先级是剩下消息中最高的,获得总线访问权,发送消息m2,以此类推,C节点发送消息m3,D节点发送消息m4,E节点发送消息m5,F节点发送消息m6。在10ms时刻,是消息m1、m2的发送周期,A、B节点分别发送消息m1、m2给接收节点和主节点,在t2时刻发送完毕。到了20ms时刻,是消息m3、m4的发送周期,A、B、C、D节点分别发送消息m1、m2、m3、m4给接收节点和主节点,然而在t3时刻,消息m4被电磁干扰或者其他原因造成数据丢失,主节点没有收到D节点发送的消息m4,主节点报错计数,并记录此时消息的ID,由于消息m4的错误阈值为2,所以要看下个周期主节点是否接到该消息,来判断是否要删除此消息的ID。到了30ms时刻,是消息m1、m2、m5、m6的发送周期,A、B、E、F节点分别发送消息m1、m2、m5、m6给接收节点和主节点。然而在t4时刻,主节点没收到消息m6,主节点报错计数并记录消息m6的ID,由于消息m6的阈值为1,主节点此时在ID序列中检索出消息m6的ID并删除它,重新排列ID序列后,发送个各个从节点A、B、C、D、E、F。到了40ms时刻,是消息m1、m2、本文档来自技高网...
【技术保护点】
1.一种车载CAN网络消息的共享ID序列方法,其特征在于,具体包括以下步骤:/nS1.主节点控制器ID序列的预设与出错阈值的设置;/nS2.主节点控制器把ID序列发给各从节点控制器,各从节点控制器根据得到的ID序列发送消息;/nS3.从节点控制器消息发送条件的判断;/nS4.从节点控制器发送消息的出错次数达到阈值,主节点控制器检索并删除出错的ID,随后重新排列ID序列。/n
【技术特征摘要】
1.一种车载CAN网络消息的共享ID序列方法,其特征在于,具体包括以下步骤:
S1.主节点控制器ID序列的预设与出错阈值的设置;
S2.主节点控制器把ID序列发给各从节点控制器,各从节点控制器根据得到的ID序列发送消息;
S3.从节点控制器消息发送条件的判断;
S4.从节点控制器发送消息的出错次数达到阈值,主节点控制器检索并删除出错的ID,随后重新排列ID序列。
2.根据权利要求1中所述的一种车载CAN网络消息的共享ID序列方法,其特征在于,步骤S1中所述主节点控制器ID序列的预设,其排列方法具体为:所有消息的ID序列按照优先级大小从左至右升序排列。
3.根据权利要求1中所述的一种车载CAN网络消息的共享ID序列方法,其特征在于,步骤S3中所述从节点控制器消息发送条件的判断,其内容具体为:
从节点控制器判断接收的...
【专利技术属性】
技术研发人员:张庭芳,黄海林,曹铭,郭劲林,常江,王旭东,
申请(专利权)人:南昌大学,
类型:发明
国别省市:江西;36
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。