张向文,张帆,李向阳
(北京航天发射技术研究所,北京 100076)
摘要:基于控制系统智能化水平日益增长的背景,快速自动识别出CAN总线网络拓扑关系的需求日益突出 ,采用在CAN总线传统网络架构中增加中间层的措施,结合CAN总线网络链路动态分离的机制,设计了详细的切换电路,介绍了电路的工作原理及整个系统的工作原理,明确了总线数据的处理流程、方法,实现了CAN总线网络拓扑关系的快速自动识别,为后续相关技术的应用奠定了基础。
中图分类号:TN710文献标识码:ADOI: 10.19358/j.issn.1674-7720.2017.10.021
引用格式:张向文,张帆,李向阳.一种自动获取CAN网络拓扑关系方法的研究[J].微型机与应用,2017,36(10):74-76,80.
0引言
控制器局域网络(Controller Area Net,CAN)是Robert Bosch公司在20世纪80年代初为汽车业开发的一种串行数据通信总线,其通信速率可达到1 Mb/s,并且通信距离在1 Mb/s下可达到40 m。CAN已有国际标准,即用于高速场合的ISO 11898和用于低速场合的ISO 115193[12]。由于其具备可靠性和良好的性能价格比,在军民领域均已得到广泛应用。近些年随着信息化技术的快速发展,智能化的应用如雨后春笋般不断涌现,同样基于CAN总线网络的智能化应用也在不断地发展与进步,对CAN总线网络的相关基础技术提出的新的要求。在新的轨道交通的环节中,由于存在列车的编组需要,导致整个CAN总线网络并不是固定的、稳定的,它是根据不同的任务需求进行临时、快速组合的[34]。因此产生了对CAN总线网络拓扑关系自动进行快速识别的需求,以便用户、设计人员能够快速掌握当前控制系统网络的网络拓扑关系,为后续网络管理以及相关智能化应用奠定基础。本文基于此需求,设计了一种快速CAN总线网络拓扑关系自动获取的方法。
1传统CAN网络的组成介绍
传统的CAN总线网络如图1所示,主要包括单机、CAN总线电缆、终端电阻。单机内部主要包括处理器、CAN总线协议芯片、隔离器件、CAN总线驱动芯片等[57]。各个单机的驱动芯片的CANH、CANL与总线电缆的CANH、CANL直接连接。各个CAN总线单机通过CAN总线电缆实现单机的互联互通,从而实现一个设备发送全部设备均可接收的效果。CAN总线终端电阻挂于CAN总线电缆的两端。
在传统架构下,单机2发送的CAN总线信号可以同时传输给单机1、单机3、单机n,各设备均可以进行应答,从而在传统的网络架构中任何单机均可以无差别地实现与网络中所有单机的通信,满足了一对多的高效通信,有效提高了系统的通信效率[89]。但是在这种网络架构下,网络中的单机无法实现对其他单机设备处于本设备的那个方向的识别,从而无法构建出各单机的网络逻辑关系,不能支持轨道交通编组条件下的快速网络拓扑关系的自动识别。
因此在传统网络架构中,要识别动态编组网络中的逻辑拓扑关系,为用户、应用设计人员提供基础的网络架构信息是无法完成的。
2自动网络拓扑关系识别网络架构设计
为解决传统网络的不足,本文提出了一种新型的CAN总线网络拓扑架构,以满足CAN总线网络拓扑关系自动识别的目的。
2.1总体设计
如图2所示,在新的网络架构中与传统网络架构的区别主要有三点:(1)在单机的CAN驱动芯片与CAN总线电缆之间串入切换电路,切换电路用于完成总线网络的前后向通信切换以及CAN总线电气网路的补偿;(2)每个单机的总线CANH、CANL均有两对接口,与切换电路对应的接口相连,系统中终端电阻仍在CAN总线电缆的两头挂接;(3)系统中设置网络管理单机,用于实现整个网络拓扑架构的识别与输出,其可以使用任意单机设备来执行相应的功能。另外为了方便后续描述,本文规定了前向、后向网络的方向,由图2可以看出,单机左侧为单机的后向网络,单机右侧为单机的前向网络。
2.2切换电路设计
切换电路的接口示意图如图3所示,其中CANH1、CANL2用于与CAN总线驱动芯片的CANH、CANL相连,IO接口用于实现单机设备对切换电路内部继电器的控制。CANH2、CANL2用于连接前向通信CAN总线设备,CANH3、CANL3用于连接后向通信CAN总线设备。单机根据CAN总线指令控制IO端口实现各个CAN端口的连接与断开,从而实现前向、后向通信的侦测。
切换电路内部原理如图4所示,由图4可以看出,整个电路主要包括K1、K2、K3、K4、K5 五个继电器,R1A、R2A两个CAN总线终端匹配电阻。电路工作原理为:在单元初始上电状态下,K1继电器闭合,K2、K3继电器断开,K4、K5 继电器通电分别与各自的1端进行闭合。在此种状态下,构成的CAN总线网络架构与传统的网络架构完成相同,整个系统可按照传统模式进行工作。当需要进行网络拓扑关系识别时,单机通过CAN总线接收到了网络主机发送的要求本机进行自动识别的指令时,单机通过IO控制,断开K1继电器,并同时接通K2、K3继电器,从而使原来完整的一条CAN总线网络形成了两条独立的CAN总线网络,其中R1A、R2A分别用于补充前向网络、后向网络中的终端匹配电阻,以便两个独立的CAN总线网络均可以进行独立工作。然后控制K4、K5继电器通电使CANH1、CANL1先与对应继电器的1端联通,使本单机与后向网络相连,单机向后向CAN总线网络发送网络架构帧测帧,获取后向各个单机的网络编号,然后单机控制K4、K5继电器通电使CANH1、CANL1与对应继电器的2端联通,使单机与前向网络相联通,单机向前向CAN总线网络发送网络架构帧测帧,获取后向各个单机的网络编号,最后单机恢复K2、K3断电,K4、K5继电器与1端闭合,K1通电导通恢复整个网络的传统架构,本单机发送所获取的单机前后向设备编号数据给网络管理单机。
2.3系统工作过程设计
整个网络连接后关系如图5所示,系统设定单机4为管理单机。整个系统的工作原理如下。
首先上电后,各个单机均为上电初始状态,即整个系统的网络架构与传统的网络架构相同,各个单机之间可按照传统的模式进行通信。然后系统根据用户指令或预定的计划由网络管理单机(单机4)获取单机前向、后向单机的ID号(参见切换电路工作原理)并记录,再依据所获取的设备ID号,依次给所有的单机发送获取其前、后向网络单机的指令,获取相关的获取单机前向、后向单机的ID号并记录。当网络中所有的设备信息获取完成后,网络管理单机对数据进行处理,获得系统各单机的连接关系,输出给设计人员或用户平台。
2.4数据处理方法设计
如图5所示,在管理单机完成数据提取工作后,其所获数据如表1所示。
通过对数据的分析可以看出,每个设备的后向设备ID号的信息对于设备在网络中的关系有一定的反映关系。通过初步分析总结归纳如下:首先通过查表获取后向(或前向)为空的设备ID,将其作为整个网络端首设备,如表1所示,单机1为网络端首设备,然后查表获取其他后向设备ID号只含有单机1的设备ID号,如表所示为单机2 ,之后通过查表方式查找其他后向设备ID只包含单机1、单机2的设备ID,依次查找,即可确定整个网络的网络拓扑关系。
为验证方法的正确性,模拟各单机设备进行重新编组,编组后的关系如图6所示。
假设单机4为管理节点,其自动获取到的各单机的前后向网络ID号如表2所示。
按照上述方法,首先查表获取后向设备ID为空的设备为单机2,然后查表获取后向设备ID仅含单机2的设备为单机1,然后查表获取后向设别ID仅包含单机1、2的设备为单机5,然后获取单机设备中仅含有单机1、2、5的设备为单机4,依次类推便可以自动获取后向的关系,设备的顺序依次为单机2、单机1、单机5、单机4、单机3、…、单机n。通过以上对数据的分析,证明是可以获取系统设备的网络逻辑关系的。
为了提高效率,对数据进行进一步分析,通过表1、表2内的数据可以看出,设备节点所处的位置与后向设备的ID数量有关,即其所处的位置为后向设备ID数量+1的位置。另外前向设备ID中的数据规律与后向设备ID中的数据相同,可仅处理后向数据或前向数据即可。
在现实CAN总线系统中,设备的ID号不一定是连续的,并且可能分成多个区段,为了解决这一问题,缩短系统比对时间,提高效率,对数据表进行规定,要求所有的设备ID排列顺序为从小到大顺序排列,并且依次放入对应的数组中,单机ID作为数据表中的一个属性项。系统设定数组来进行数据表管理,包含数组X[n][n]与设备ID号数组DVEID[n],X[n][n]用来存储对应单机ID设备的后向设备ID,
DVE-ID[i]用于存储对应的单机设备ID号,n为系统中的设备数。设定Y[n]为设备最终序列存储数组,设备逻辑序列的具体流程图如图7所示。即通过判断对应设备ID的后向设备数量直接将对应的本设备的ID号赋予最终数组的位置。通过一次处理即可获取到设备逻辑序列,并输出到Y[n]数组中。
3结论
随着控制系统中对信息化、智能化水平的要求越来越高,对于更多地、更智能地掌握整个控制系统中信息的要求越来越突出,控制系统中的总线网络逻辑拓扑关系则是其中关键的一环,顺利掌握其信息,可以为全网络提供更加智能的解决方案,同时为用户提供更加直观的系统架构信息。本文针对CAN总线网络架构逻辑拓扑关系的自动识别,提出了通过增加切换电路的方法,改变了传统的CAN总线网络架构,根据网络反馈数据提出了数据处理方法,并给出了整个系统的工作原理,圆满地实现了基于CAN总线网络架构下逻辑拓扑关系识别的问题,同时可以为其他网络的识别提供借鉴。
参考文献
[1] 尚明玲. 基于SJA1000的CAN总线智能网桥设计[J]. 现代制造技术与装备, 2015(4):8687.