CAN 网络的分组合并策略研究及实现

发布时间:2012-10-30 17:55:56 论文编辑:shanshang
        针对节点数量较多、功能类型多样的控制器局域网( controller area network,CAN) 中存在的管理问题,基于其协议技术标准和 OSEK/VDX 规范,提出并实现了一种网络管理的改进策略。该策略可实现直接网络管理中 CAN 节点的分组管理和合并。实验工程师职称论文发表结果表明,这种网络管理机制能够快速构建网络管理的逻辑结构,提高了 CAN 网络管理效率。汽车电子的广泛发展和用户需求的普遍扩大促使汽车电子化程度日益提高,也使得汽车上的电子控制单元( elec-tronic control unit,ECU) 数目日趋增多,这些电控单元组成了庞大且复杂的车载网络。OSEK / VDX 规范[1]是由欧洲主要的汽车制造商和供应商、研究机构以及软件开发商共同研发的应用在模块和静态实时操作系统上的标准规范。OSEK/VDX 规范给出的直接网络管理机制提供可靠的通信保障,涉及多种网络管理报文和网络状态,并广泛应用于 CAN 网络的故障诊断和设备管理等方面。国内外关于 CAN 协议和 OSEK 网络管理的研究涉及范围较工程师职称论文格式广,但很少有对于直接网络管理构建逻辑结构的具体研究。本文将节点初始阶段的上线方式及快速构建逻辑结构的策略作为主要研究重点,实现一种基于 OSEK 标准规范的管理机制
 
        将构建逻辑环的节点按需要进行分工程师职称论文范文组,每组包含合适数量的节点。初始状态,各节点随机上线,各分组按照分组标识和组内节点标识建立分组的局部逻辑环。由于分组序号的区分,各组逻辑环的建立可以同时进行且互不影响。待各分组的局部逻辑环构建完成后再逐次按既定顺序对各分组的局部逻辑环进行合并,最终构建为一个完整的全局逻辑结构。这一过程结合了随机上线和顺序上线 2 种构建逻辑环的思路,对于每个分组采用随机上线的方式构建局部逻辑环,在逻辑环的合并上采用顺序合并的思路,每一次合并在前一次合并完成的基础上进行。为实现节点的分组管理,在每个节点的信息域中须增加分组信息。新加入 2 个变量用于标识当前的分组序号( source_group_id) 和后继分组序号( successor_group_id) 。分组序号在构建局部逻辑环时用于识别本组节点和区分 NM 报文; 后继分组序号用于标识与本组临近的下一组的序号,目的是在逻辑环合并时诱导合并顺序。该格式中,节点 id 分配的4-bit 可支持最多 16 个节点,已可以满足本文实验的要求。可以通过对数据域的扩展来支持更多的节点,扩展一个字节即可支持最多 4 096 个节点,足以满足节点数增加的需求。可通过数据长度寄存器 DLC 控制数据域长度来实现扩展。分组信息作为中级工程师职称论文节点的固定信息与节点 id 共同保存于节点内,可以按节点功能类型分组或按节点 id 的范围进行分组。以 4 个节点一组为例,依据节点的全局标识,按照确定的标识范围,如: 1 ~ 4,5 ~ 8 等进行分组,并确定一个事先分配的分组序号。若某范围内的某节点失效,也无需补齐节点数量,由范围内其余节点构成该组。节点 id 最小的组分配一个最大的组序号 MaxID,与之相邻的分组分配一个最小的组序号 MinID,之后的分组序号依次增加,但不能超过最大组序号 MaxID。其中,后继组序号初始默认为与本组序号相同,节点上线后,将收到的报文中第 1 个与本组序号不同的组作为初始后继组序号,此步为后继组序号的初始化步骤。后继组序号的更新随局部逻辑环的构建同时进行,更新策略与节点逻辑后继的更新策略类似,即在初始后继序号基础上寻找与之最邻近的下一组序号并进行更新。在每个逻辑环中,逻辑节点按其 ID 大小依次连接,一般情况下,ID 较大的节点是 ID 较小节点的逻辑后继,只有 ID 最大的节点的逻辑后继是 ID 最小的节点。分属不同组的各个节点仍共同存在于同一个总线上,由于分组信息包含于网络管理报文之中,于是同属一组的报文仅在组内可以被收到,而被其他组屏蔽,便形成了分组各自构建逻辑环的状态。对节点进行分组便于对不同功能类型且数量较多的节点网络进行有效管理,同时可以降低构建逻辑环的耗时。但构建局部逻辑环和合并逻辑环同样需要一定时间,分组粒度过粗,每组节点数会增多,构建局部逻辑环的时间会增大; 分组粒度过细,会增加逻辑环合并的时间开销,同时对总线通信频率也会产生较大影响。所以需要对分组数目和每组节点数量的选取进行研究,使建环时间在可容忍范围内,同时对总线通信频率影响最小。
 
        局部逻辑环的合并策略依赖该后继组序号来进行。当各分组的局部逻辑环运行稳定后,由一个统一的策略选出一个合并的发起组,这个分组的后继组即为合并的响应组。合并形成的分组应不破坏之前组序号间的顺序关系,同时能够依照相同的策略选出下次合并的发起组和被合并组。重复上述步骤,按照分组序号间的顺序关系依次合并,直至所有的分组被合并为一个统一的全局结构。当各分组的局部逻辑环都已构建成功时,依据之前的分组策略,相邻的 2 个局部逻辑环 i 和 j 具有这样的特性: 将 i 中尾节点的逻辑后继改为 j 中的首节点,将 j 中尾节点的逻辑后继改为i 中的首节点,则两个逻辑环构成一个新的合并后的逻辑环,且不会出现节点被跳过的现象。故为了实现快速合并,避免节点乱序而引起的节点跳过现象频发,应从第 1 个组开始( 序号最大的组) 按照后继组序号依次合并直至最后合并为一个统一的逻辑结构。增加一种用于合并的管理报文类型 Merge,报文结构包括: 本组尾节点、本组首节点( 尾节点的当前后继) 、发起组序号、目的组序号。对于合并发起方而言,发起组序号即为本组序号,目的组序号即为后继组序号,尾节点即为发起节点,首节点即为该发起节点的后继结点。对于一个指向本组的合并报文,需判断本组的成员标识以确定本组在合并中的身份,从而确定该报文为合并发起报文还是合并反馈报文以及接下来应进行的操作处理。