基于多路can总线捆绑进行数据传输的方法

文档序号:7551065阅读:125来源:国知局
专利名称:基于多路can总线捆绑进行数据传输的方法
技术领域
本发明涉及一种基于多路CAN总线捆绑进行数据传输的方法。
背景技术
CAN 总线CAN 是 Controller Area Network 的缩写(以下称为 CAN),是 ISO 国际标准化的串行通信协议。在当前的汽车产业中,出于对安全性、舒适性、方便性、低公害、低成本的要求,各种各样的电子控制系统被开发了出来。由于这些系统之间通信所用的数据类型及对可靠性的要求不尽相同,由多条总线构成的情况很多,线束的数量也随之增加。为适应“减少线束的数量”、“通过多个LAN进行大量数据的高速通信”的需要,1986年德国电气商博世公司开发出面向汽车的CAN通信协议。此后,CAN通过IS011898及IS011519进行了标准化,已是汽车网络的标准协议。
MultiCAN即一个微控制器上支持多个CAN总线。自二十世纪八十年代中期问世以来,控制器区域网络(CAN)便成为了面向汽车应用的标准网络协议。如今的汽车制造商纷纷采用CAN实现动力总成系统网络,电子稳定控制系统、诊断以实现各种不同的舒适、便捷特性。MultiCAN在以往的CAN实现(包括英飞凌的TwinCAN,支持两个CAN节点)的基础上有所改进,添加了诸如额外的CAN节点,并且支持TTCAN节点以及CAN节点和TTCAN节点之间的桥接。MultiCAN可以支持更多消息对象、消息对象的链表管理以及支持TTCAN等特性。为实现后向兼容,也可将MultiCAN配置为提供类似于TwinCAN的特性和功能。
ISO对低速和高速CAN总线进行了定义。高速CAN总线标准为ISOl 1898,通信速度最高1Mbps,总线最大长度40米,连接单元数最大30个。低速CAN总线标准ISOl 1519-2 中定义,通信速度最高125kbps,总线最大长度lKm,连接单元数,最大20个。图1是SAE组织区分的低速CAN和高速CAN的分类,其中Class A和B可以使用低速CAN,用于车身、电子仪表等领域。ClassC可以使用高速CAN,用于发动机控制、变速器控制和刹车控制等领域。 在Class C领域,高可靠强实时的数据对于车辆安全显得非常 重要。图2是传输距离和通信速率之间的关系曲线。随着通信速率的增加,传输距离越来越短。因此,车辆总线的传输距离限制了 CAN的速率,这将会影响车辆的安全控制。
此外,CAN总线由于在物理层和链路层开销比较大,理论上带宽利用率只有30%左右。随着汽车电子化程度的日益提高,ECU总数在不断增长,通过总线交换的数据流量也在日£fL提闻,CAN总线吞吐量逐步饱和。
FlexRay总线是FlexRay联盟(FlexRay Consortium)推进的车载网络标准,将在未来很多年内,引导整个汽车电子产品控制结构的发展方向。FlexRay是继CAN和LIN之后的最新研发成果,可以有效管理多重安全和舒适功能譬如,FlexRay适用于线控操作 (X-by-ffire)。FlexRay关注的是当今汽车行业的一些核心需求,包括更快的数据速率,更灵活的数据通信,更全面的拓扑选择和容错运算。因此,FlexRay可以为下一代的车内控制系统提供所需的速度和可靠性。CAN网络最高性能极限为1Mbps,而FlexRay两个信道上的每个数据速率最大可达到10Mbps,总数据速率可达到20Mbps秒,因此,应用在车辆网络,FlexRay的网络带宽可以达到CAN的20倍之多。
但是FlexRay总线的标准协议比较复杂,价格也比较昂贵,还没有在车辆上大规模使用,是未来的发展方向。并且FlexRay总线与CAN总线带宽有一个量级的差距,应用范围更适用于高可靠强实时数据的领域,其和CAN总线之间还存在带宽空白区域,不能满足车辆总线的某些设计需求。
有鉴于此,特提出本发明。发明内容
本发明要解决的技术问题在于针对现有技术的一些不足,提供一种能提高CAN总线使用带宽,能满足车辆更多控制需求,成本低,并能加强可靠性和提高实时性的基于多路 CAN总线捆绑进行数据传输的方法。
为解决上述技术问题,本发明采用技术方案的基本构思是
一种基于多路CAN总线捆绑进行数据传输的方法,依次包括以下步骤
S1、静态配置CAN GROUP CAN GROUP两端加入相等数目的CAN节点,CAN节点两两物理连接形成CAN总线,并配置相互连接的两个CAN节点一个为接收节点,另一个为发送节占.
S2、配置链路请求CAN GROUP中加入CAN链路,并验证加入链路的的CAN节点参数是否匹配,若匹配,进入S3 ;若不匹配,则报警;
S3、收发报文CAN GROUP在链路上轮流收发报文,发送时,链路上顺序发送,并以同样的顺序接收报文。
进一步地,步骤S2中在CAN GROUP中加入CAN链路的具体步骤是
从保留的16个CAN ID中取一个作为控制帧的ID,控制帧数据域的第一个字节作为控制帧的类型;首先,向对端CAN节点发送加入CAN GROUP请求控制帧,控制帧类型设置为加入CAN GROUP请求;然后,在数据域的后续字节上设置协商类型,此后,对端节点返回响应控制帧,控制帧类型设置为请求加入CAN GROUP响应,在数据域的后续字节上表示协商成功或者失败。
CAN GROUP中加入的CAN链路总数为N,,N为大于I的整数,包括K条正向链路和 L条反向链路,N=K+L;
进一步地,步骤S3中收发报文的顺序规则为对于正向CAN报文,在CAN控制帧数据域中取前M个bit,当Iog2K为整数时,M=Iog2K, M取值在0-K-1之间循环;当Iog2K不是整数时,M=Iog2K取整+1,M取值在O-K-1之间循环;对于反向CAN报文,在CAN控制帧数据域中取前W个bit,当Iog2L为整数时,W=Iog2L, W取值在O-L-1之间循环;当Iog2L不是整数时,M=Iog2L取整+1,W取值在O-L-1之间循环;对于CAN报文静荷不满足8字节的,需要填充为8字节,组内的CAN帧在标准帧和扩展帧中二选一,在同一方向的CAN帧是扩展帧或者基本帧。
在步骤S3中CAN GROUP收发报文过程中,如果CAN GROUP的某节点发现链路损坏, 则将该链路从CAN GROUP自动删除,所有报文都在该方向 的剩余链路上轮流发送,如果受损的CAN链路恢复后自动加入所在的CANGR0UP,报文在该方向上所有工作状态正常的CAN链路上轮流发送。
进一步地,将链路从CAN GROUP中删除的具体步骤是由一端CAN节点发送删除链路控制帧,控制帧类型设置为从CAN GROUP中删除一个链路请求,数据域的后续字节表示删除的链路号等信息,此后,对端CAN节点返回响应控制帧,控制帧类型设置为从CAN GROUP 中删除一个链路响应,在数据域的后续字节上表示删除链路成果或者失败。
删除全部链路后才能删除CAN GROUP, CAN GROUP删除后,恢复为CAN总线默认的收发方式。
优选的,N=4,K=2,L=2。
采用上述技术方案后,本发明与现有技术相比具有以下有益效果本发明采用多路CAN总线捆绑,使得两个控制器间CAN总线流量可以达到N*单个CAN总线带宽(N为CAN 链路数),提高了 CAN总线的使用带宽,填补了 CAN总线传输和FlexRay总线传输的带宽空白区域,从而能满足车辆总线设计的更多需求。由于把CAN总线型连接改为点到点连接,一个方向的故障不会影响到另外一个方向的故障,提高了可靠性,同时,取消了 CAN报文传输过程中由于CAN优先级仲裁产生的延时,实时性也得到了提高。此外,当一个方向的CAN总线故障后,同一方向的剩余CAN总线可以继续完成报文传输作用,进一步提高了可靠性。对于N=4,K=2, L=2的情况,本发明最多只增加Ibit的序列号,占整个CAN帧长的不到1%,所以基本帧和扩展带宽利用率下降的非常少,几乎没有影响,因此具有较高的使用价值。目前 CAN总线价格已经较低,所以采用CAN总线的方式较FlexRay总线成本低。
下面结合附图对于本发明的具体实施方式
作进一步详细的描述。


图1是SAE组织区分的低速CAN和高速CAN的分类表;
图2是车辆总线的传输距离和现有CAN总线速率的关系图3是本发明由4条CAN BUS组成的CAN GROUP的示意图4是本发明CAN总线捆绑的帧格式图。
具体实施方式
本发明是一种基于多路CAN总线捆绑进行数据传输的方法,下面以图3中N=4, K=2, L=2为例对本发明进行详细说明,其中N为CAN GROUP中的CAN链路总数,K为正向链路条数,L为反向链路条数,本发明依次包括以下步骤
S1、静态配置 CAN GROUP CAN GROUP —端加入 CAN No del, CANNode 2, CAN Node3 和 CAN Node4,CAN GROUP 对端加入 CAN NodeA、CANNodeB、CAN NodeC和 CAN NodeD ;CAN Nodel 和CAN NodeA物理连接形成CAN BUS I, CAN Node2和CAN NodeB物理连接形成CAN BUS2, CANNode3 和 CAN NodeC 物理连接形成 CAN BUS3,CAN Node4 和 CAN NodeD 物理连接形成 CAN BUS4,并配置相互连接的两个CAN节点为一个接收节点和一个发送节点;
S2、配置链路请求CAN GROUP 中加入 CAN 链路使 CAN Nodel 和 CAN NodeA, CAN Node2 和 CAN NodeB, CAN Node3 和 CAN No`deC, CANNode4 和 CAN NodeD 逻辑连接形成 4 条链路,并验证加入链路的的CAN节点参数是否匹配,若匹配,进入S3 ;若不匹配,则报警;
S3、收发报文CAN GROUP在链路上轮流收发报文,发送时,链路上顺序发送,并以同样的顺序接收报文。
本发明使得两个控制器间CAN总线流量可以达到4*单个CAN总线带宽,提高了 CAN总线的使用带宽,而只增加Ibit的序列号(见图4),占整个CAN帧长的不到1%,所以基本帧和扩展带宽利用率下降的非常少,几乎没有影响,因此具有更高的使用价值。目前CAN 总线价格已经较低,所以采用CAN总线的方式较FlexRay总线成本低。
优选的,步骤S2中在CAN GROUP中加入CAN链路的具体步骤是
从保留的16个CAN ID中取一个作为控制帧的ID,控制帧数据域的第一个字节作为控制帧的类型;首先,向对端CAN节点发送加入CAN GROUP请求控制帧,控制帧类型设置为加入CAN GROUP请求;然后,在数据域的后续字节上设置协商类型,此后,对端节点返回响应控制帧,控制帧类型设置为请求加入CAN GROUP响应,在数据域的后续字节上表示协商成功或者失败。本方案参数相互协商,保证CAN链路能够收发正常。
上述步骤S3中收发报文的顺序规则可为对于正向CAN报文,在CAN控制帧数据域中取前I个bit,M取值在O和I之间循环;对于反向CAN报文,在CAN控制帧数据域中取前I个bit,W取值为O和I之间循环;对于CAN报文静荷不满足8字节的,需要填充为 8字节,组内的CAN帧在标准帧和扩展帧中二选一,在同一方向的CAN帧是扩展帧或者基本中贞。事实上,报文收发顺序规则是当Iog2K为整数时,M=Iog2K, M取值在0-1K-1之间循环; 当Iog2K不是整数时,M=Iog2K取整+1,M取值在O-K-1之间循环;对于反向CAN报文,在CAN 控制帧数据域中取前W个bit,当Iog2L为整数时,W=Iog2L, W取值在O-L-1之间循环;当 Iog2L不是整数时,M=Iog2L取整+1,W取值在O-L-1之间循环;对于CAN报文静荷不满足8 字节的,需要填充为8字节,组内的CAN帧在标准帧和扩展帧中二选一,在同一方向的CAN 帧是扩展帧或者基本帧。如此取值,是防止顺序号(M或W)占用太多的bit,影响数据传输效率。
在步骤S3中CAN GROUP收发报文过程中,如果CAN GROUP的某节点发现链路损坏, 则将该链路从CAN GROUP自动删除,所有报文都在该方向的剩余链路上轮流发送,有冗余的作用,保证数据顺利传输,如果受损的CAN链路恢复后自动加入所在的CAN GROUP,报文在该方向上所有工作状态正常的CAN链路上轮流发送。
优选的,将链路从CAN GROUP中删除的具体步骤是由一端CAN节点发送删除链路控制帧,控制帧类型设置为从CAN GROUP中删除一个链路请求,数据域的后续字节表示删除的链路号等信息,此后,对端CAN节点返回响应控制帧,控制帧类型设置为从CAN GROUP中删除一个链路响应,在数据域的后续字节上表示删除链路成果或者失败。本方案参数相互协商,保证收发CAN节点都删除链路。
删除全部链路后才能删除CAN GROUP, CAN GROUP删除后,恢复为CAN总线默认的收发方式。
本发明中N只要为>1的整数,且满足N=K+L即可,不限于上述具体实施例中的取值。
以上所述仅是本发明的典型实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰, 这些改进和润饰也应视为本发明的保护范围。
权利要求
1.一种基于多路CAN总线捆绑进行数据传输的方法,其特征在于依次包括以下步骤51、静态配置CANGROUP CAN GROUP两端加入相等数目的CAN节点,CAN节点两两物理连接形成CAN总线,并配置相互连接的两个CAN节点一个为接收节点,另一个为发送节点;52、配置链路请求CANGROUP中加入CAN链路,并验证加入链路的的CAN节点参数是否匹配,若匹配,进入S3 ;若不匹配,则报警;53、收发报文CANGROUP在链路上轮流收发报文,发送时,链路上顺序发送,并以同样的顺序接收报文。
2.根据权利要求1所述的基于多路CAN总线捆绑进行数据传输的方法,其特征在于 步骤S2中在CAN GROUP中加入CAN链路的具体步骤是从保留的16个CAN ID中取一个作为控制帧的ID,控制帧数据域的第一个字节作为控制帧的类型;首先,向对端CAN节点发送加入CAN GROUP请求控制帧,控制帧类型设置为加 ACAN GROUP请求;然后,在数据域的后续字节上设置协商类型,此后,对端节点返回响应控制帧,控制帧类型设置为请求加入CAN GROUP响应,在数据域的后续字节上表示协商成功或者失败。
3.根据权利要求2所述的基于多路CAN总线捆绑进行数据传输的方法,其特征在于, CAN GROUP中加入的CAN链路总数为N,,N为大于I的整数,包括K条正向链路和L条反向链路,N=K+L ;步骤S3中收发报文的顺序规则为对于正向CAN报文,在CAN控制帧数据域中取前M个 bit,当Iog2K为整数时,M=Iog2K,M取值在0-K-1之间循环Slog2K不是整数时,M=Iog2K取整+1,M取值在O-K-1之间循环;对于反向CAN报文,在CAN控制帧数据域中取前W个bit, 当Iog2L为整数时,W=Iog2L, W取值在O-L-1之间循环;当Iog2L不是整数时,M=Iog2L取整 +1,W取值在O-L-1之间循环;对于CAN报文静荷不满足8字节的,需要填充为8字节,组内的CAN帧在标准帧和扩展帧中二选一,在同一方向的CAN帧是扩展帧或者基本帧。
4.根据权利要求1-3中任一项所述的基于多路CAN总线捆绑进行数据传输的方法,其特征在于在步骤S3中CAN GROUP收发报文过程中,如果CANGR0UP的某节点发现链路损坏,则将该链路从CAN GROUP自动删除,所有报文都在该方向的剩余链路上轮流发送,如果受损的CAN链路恢复后自动加入所在的CAN GROUP,报文在该方向上所有工作状态正常的 CAN链路上轮流发送。
5.根据权利要求4所述的基于多路CAN总线捆绑进行数据传输的方法,其特征在于 将链路从CAN GROUP中删除的具体步骤是由一端CAN节点发送删除链路控制帧,控制帧类型设置为从CAN GROUP中删除一个链路请求,数据域的后续字节表示删除的链路号等信息,此后,对端CAN节点返回响应控制帧,控制帧类型设置为从CAN GROUP中删除一个链路响应,在数据域的后续字节上表示删除链路成果或者失败。
6.根据权利要求4所述的基于多路CAN总线捆绑进行数据传输的方法,其特征在于 删除全部链路后才能删除CAN GROUP,CAN GROUP删除后,恢复为CAN总线默认的收发方式。
7.根据权利要求3所述的基于多路CAN总线捆绑进行数据传输的方法,其特征在于 N=4, K=2, L=2。
全文摘要
一种基于多路CAN总线捆绑进行数据传输的方法,依次包括以下步骤S1、静态配置CAN GROUPCAN GROUP两端加入相等数目的CAN节点,CAN节点两两物理连接形成CAN总线,并配置相互连接的两个CAN节点一个为接收节点,另一个为发送节点;S2、配置链路请求CAN GROUP中加入CAN链路,并验证加入链路的CAN节点参数是否匹配,若匹配,进入S3;若不匹配,则报警;S3、收发报文CAN GROUP在链路上轮流收发报文,发送时,链路上顺序发送,并以同样的顺序接收报文。本发明多路CAN总线捆绑,CAN总线流量达到N*单个CAN总线带宽(N为CAN链路数),提高了CAN总线使用带宽,填补了CAN总线和FlexRay总线传输的带宽空白区域。CAN总线点到点连接,一个CAN总线故障不会影响报文传输,可靠性高,实时性好。
文档编号H04L12/40GK103051507SQ201310027298
公开日2013年4月17日 申请日期2013年1月21日 优先权日2013年1月21日
发明者张道杰, 华明 申请人:普华基础软件股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1