CAN总线网络监控软件设计
CAN总线网络即控制器局域网络(Controller Area Network,CAN),是由德国BOSCH公司在20世纪80年代为解决现代汽车中众多的控制与测试仪器之间的数据交换而开发的一种串行数据通信协议,可实现点对点、一点对多点及全网广播3种方式的发送和接收数据。传输的数据采用CRC校验,能够有效地降低误码率。CAN总线的通信介质可以是双绞线、同轴电缆或者光导纤维,通信速率可达1 MB/s。由于具有通信速度快、可靠性高、价格便宜等特点,使CAN总线成为应用广泛的现场总线之一。
当前,市面上已有多种CAN总线的分析测试工具,如广州周立功公司的CANalyst,德国Vector公司的CANoe等。这些软件工具具有较强的功能,但对于一些小型CAN网络开发组件来说,其附加费用较大。基于此考虑,本文提出了一种功能完善、操作简洁的CAN网络监控系统设计方案,可达到对CAN总线运行情况监测分析的目的。
1 设计需求
通过对一些通用CAN总线监控软件的分析,并结合设计提出的实现一个较为通用的CAN总线监控软件的要求,可以将此软件的设计需求总结如下:
(1)具有适应CAN控制器各种工作模式的功能,用户只用稍加配置,便可以将此软件用于具体的CAN总线网络的监控中。
(2)具有用户自定义数据帧格式及其解析方式的功能,以使此软件可以满足不同环境下的使用要求,对用户所需要的数据内容进行解析。
(3)具有数据可视化显示功能,如数据表展示数据,图形绘制数据曲线等方式。使用户可以较为直观地对网络数据和状态进行监控。
(4)具有将通信中的数据信息进行分类的功能,方便用户对数据的分析。
(5)具有查看历史数据的功能,将历史数据记录下来,并提供一种方式实现对历史网络状态的重现,方便用户调试。
2 方案设计
2.1 功能
CAN总线监控软件需具备的功能包括:CAN总线通信(数据接收与发送)、数据处理(数据解析与存储)和数据应用(将数据展示为图表,数据回放等)。功能结构如图1所示。
2.2 功能模块关系
CAN总线的监控过程即是对通信数据的处理过程。软件首先通过与CAN总线上的节点通信来接收和发送数据,然后将这些数据记录在文件中,同时对数据进行分析处理,软件根据由用户所设定的数据格式对数据解析,最后是对数据信息的应用,根据用户的设定,可以对数据进行表展示,曲线绘制或者历史回放。各功能模块关系如图2所示。
2.2.1 通信
通信是监控软件获取数据信息的方式,也是软件的基础。它的主要功能是接收和发送CAN总线中节点的数据,是数据解析和应用的来源。监控节点需要连接到CAN总线网络中,如图3所示。
2.2.2 数据记录
数据记录模块是将接收或者发送的数据以一定的形式记录在文件中,用以对数据进行后期分析,或者通过回放功能复现CAN总线状态。为能达到复现的目的,此记录文件需记录的信息包括原始数据包和收发时间,时间信息具体内容为通信数据的时间间隔,基于此回放功能更加真实模拟网络中的状态。记录内容如图4所示。
2.2.3 数据分析
数据分析模块是整个监控软件的核心,它负责按照用户设定的解析模式将收发数据报解析为可以理解的信息值。每一帧数据的解析过程可以分为以下3步:(1)定位。通过数据帧格式来定位每个信息在数据包中的起始位置,将数据包分组。(2)截取。通过起始位置和数据长度,可以截取到所需的数据。(3)转换。由于截取所得到的数据为原始数据,所以需要将其转换为可以理解的信息。数据的分析过程如图5所示。
2.2.4 数据应用
数据应用是指软件对用户所提供的数据服务。本软件实现了以下几个功能来应用数据:(1)数据表。用于向用户提供所需要的信息,展示总线数据。(2)绘图。根据用户需要对某些需要显示数据变化的内容进行曲线绘制。(3)回放。将存储于文件中的历史数据按照收发时间顺序重新播放,以重现网络状态,它为用户提供了一种调试网络的简单方式。
2.3 关键技术
2.3.1 数据解析
鉴于CAN总线的应用广泛,从汽车到工业现场的应用,所需要监测的信息不同,故软件对数据的解析方式也不相同。数据的解析过程需要用到用户所定义的数据格式,这里使用XML文件来描述数据帧的内容。如图6所示,帧ID为0x01的数据内容包:一个16位数据表示的温度值,信息类型为整数;一个16位数据表示的压力值,信息类型为正整数。
2.3.2 数据回放
回放功能是将历史数据及当时的网络状态按照原过程如实演示,使用的数据源是从历史记录文件中获取的。记录文件由记录模块将总线数据按照时间顺序写入文件中生成,使用回放功能是将所记录数据按顺序读入,按照记录时间模拟当时的顺序实现回放功能,用户可通过应用功能再次使用数据表、绘图来呈现数据。
3 测试
在实际应用中,将监控节点接入CAN总线网络中,完成软件设定后,便可开启对总线的监控。使用数据表显示所测得信息的正确性,并验证通信是否正常。所生成的数据表如图7所示,显示信息来自节点1和节点3,以及发自它们的温度和压力值。使用绘图功能将此温度变化绘制为曲线图形,如图8所示。
4 结束语
本文提出了一个CAN总线网络监控软件的方案,并描述了此软件的设计方法和所使用到的关键技术。依据此方案,实现了一个较为通用的CAN总线监控软件,它可通过分析由用户设定传输数据格式的方式,自动对数据进行解析,可满足大多数CAN总线的监控需求。在应用中,它可帮助用户调试和测试网络,有效提高工作效率。通过实际测试,验证了此方案的可行性。
但是,本文提出的设计方案也有局限性和进一步提升的空间。在后续研究和设计中,可以将数据融合技术逐步加入到软件对数据的分析中,并可将此工具演化为一种通用的软件中间件,以便进行更多的应用。
评论