基于CAN分析仪和汽车仪表测试的教学实训平台设计

2020-04-29 05:30周先飞陈万顺
关键词:报文车速分析仪

李 敏,周先飞,陈万顺,汤 恒,张 振

(1.芜湖职业技术学院 信息工程学院,安徽 芜湖 241006;2.江苏新通达电子科技股份有限公司,江苏 丹阳 212300)

0 引言

车载网络应用技术是汽车智能技术专业的核心课程,该课程以车载主流CAN 总线知识为重点内容开展教学实训。根据汽车及零部件企业的技术人才需求,特别是汽车仪表研发和制造企业急需具备基于车载CAN 总线和人机交互界面开发的工程技术人员[1]。因此,从教学实训和人才需求考虑,让学生直观了解车载CAN 总线软硬件设计过程,掌握CAN 总线的工作原理、CAN报文的数据解析以及熟悉C#软件开发流程,以汽车仪表为测试对象设计仪表测试程序。通过设计的界面按钮操控仪表的运行和停止,应用输入框设置测试数据,显示汽车仪表的车速、发动机转速、发动机水温数据及其他灯光信息,使学生深入理解具有CAN 总线的汽车仪表工作原理和测试流程。目前,一些汽车仪表企业都开发了测试平台,硬件架构多数采用PC 通过USB 接口连接CAN 分析仪,再将分析仪的CAN 总线连接汽车仪表,而测试软件根据产品需求设计人机界面和测试项目,虽然能够直观演示仪表各模块的测试过程和相关数据的显示,但测试系统代码不开放,不便于教学实训的开展和学生对专业知识的深入理解。因此,设计用于汽车智能技术专业核心课程教学的CAN 总线仪表测试平台具有一定的应用价值。

1 汽车仪表测试平台架构

汽车仪表测试平台由PC、Kavser CAN 分析仪、仪表接口跳线装置、直流稳压电源、可调电阻箱、汽车仪表等硬件构成,硬件架构如图1 所示。PC 机与Kavser CAN 分析仪通过USB 接口连接,Kavser CAN 分析仪通过CAN 总线连接到汽车仪表,由于测试仪表的油量信号是电阻型,由单独信号源提供,而不是从CAN 总线传输[2-3]。因此,通过可调电阻箱输出的电阻信号提供燃油值的输入。根据AF 仪表的功能规范文件中引脚定义(见表1),信号连接如下:仪表1 脚接蓄电池电源,3 脚接 IG 电源,7 脚和 19 脚接油量信号,15 脚和 16 脚分别接 CANH 和 CANL,17 脚接地线。将直流电源电压调至13.6 V,电源正极连接仪表1、3 脚,负极连接17 脚,可调电阻箱的输出端连接7、19 脚,Kavser CAN 分析仪的CANH 和CANL 连接汽车仪表总线。软件开发平台使用VS2013 编程开发环境,采用C#软件开发测试系统,并加载Kavser CAN 的Driver 和CANLIB软件。根据被测仪表的DBC 文件,解析出发动机转速、车速、发动机水温及汽车灯光的CAN 报文信息,根据仪表测试要求,将测试数据通过界面菜单写入相应的测试框中,通过按键分别控制仪表各模块的测试,并能通过停止按键终止测试,而且各测试节点按照每隔100 ms 循环发送包括ID、DLC 和D0 ~D7 数据的报文信息,以保证仪表正常运行,并在PC 端显示测试数据。

图1 汽车仪表测试平台架构Fig.1 Architecture of automotive instrumentation test platform

表1 汽车仪表引脚定义Tab.1 Definition of automotive instrumentation pins

2 汽车仪表测试平台软件设计

2.1 仪表测试程序设计

仪表测试程序包括CAN 初始化程序、CAN 报文接收发送程序、CAN 报文显示程序、按钮事件程序、标度变换程序、定时控制程序TIME1 和TIME2,其中TIME1 用于定时控制接收数据,TIME2 用于定时控制发送数据。CAN 初始化分为初始化库、建立CAN 通道、CAN 通信参数设置、CAN 通道使能4 个步骤[4]。CAN 报文发送分为CAN 数据发送和判断数据发送成功与否两部分,其中发送函数的参数包括CAN 通道、ID、有效数据、DLC[4]。接收函数分为接收数据的数组定义、CAN 报文参数定义、状态设置、定时接收数据4 个步骤[4]。定时控制程序实现CAN 报文按100 ms 周期循环发送至仪表节点。标度变换程序实现仪表发动机转速、车速、发动机水温的工程量与CAN 报文中的有效数据之间的换算,如在该仪表的CAN 报文中发动机转速0XD2D3转换为十进制数,即为发动机转速值,车速为0XD4D5 和0X1FFF 相与后转换为十进制数,再与偏移量Factor(0.056 25)的乘积即为车速值,发动机水温为0XD0 转换为十进制数再与常量40 的差即为水温值。

被测仪表CAN 总线报文采用标准帧格式,包括11 位标识符ID、数据字节数DLC 和有效数据D0 ~D7,且需通过工具软件对车载仪表的报文数据解析[5]。以某一车型仪表为例,分别对车速表、发动机转速表、发动机水温表以及灯光信息的CAN 报文进行解析,从DBC 文件中获得节点的ID、DLC、有效数据位数Length、D0 ~ D7、偏移量Factor 等参数。其中,车速表的ID 是0X345,有效数据占用D4 和D5 两个字节,D4 的第5 位是控制车速表的运行位,该位置1 表示车速表工作,其偏移量Factor 为0.056 25;发动机转速表的ID 为0X336,有效数据占用D2 和D3 两个字节,发动机转速有效控制信号是D1 的第7 位,该位必须置1,则发动机转速表工作;发动机水温表的ID 为0X336,有效数据占用D0 一个字节,D1 的第6 位为发动机水温表工作的控制位;左右方向灯、远光灯、近光灯、前后雾灯的ID 为0X318,有效数据占用D2 一个字节,通过设置D2 的相应位0 或1 从而控制各类型灯光的亮灭,数据设置如表2 所示。燃油表的测试数据通过可变电阻箱调节给定。

2.2 仪表界面程序设计

仪表测试系统界面主要包括汽车仪表测试主菜单、汽车仪表参数设置及测试界面、仪表CAN 总线数据监测界面3 个窗体,界面如图2 ~ 图4 所示。图2 包含测试数据记录子菜单,图3中利用操作界面的按钮设置仪表型号、CAN 分析仪运行参数,根据Kavser CAN 分析仪型号,可以选择通道号0 或1;按照仪表通信波特率不同,可通过下拉菜单选择100 kbps 至1 Mbps 不同通信波特率,该被测仪表选择125 kbps 通信波特率。图4 的CAN 报文数据监测界面上显示仪表接收的报文信息和测试仪表发送到PC 的数据,当按下接收数据按钮,则接收仪表发送的报文,该界面接收和发送报文均显示节点ID、DLC 长度、8 个字节的有效数据,以及数据传输方向等信息。如图4 所示,发动机转速设定为1 000 转/min,对应的D2、D3 的有效数据0X03E8;车速设定为100 km/h,对应的D4、D5 的有效数据0X26F2;发动机水温设定为100 ℃,对应的D0 的有效数据0X8C;左方向灯设定为点亮状态,对应的D2 有效数据0X01,前雾灯设定为点亮状态,对应的D2 有效数据0X40,远光灯设定为点亮状态,对应的D2 有效数据0X20。当按下接收数据按钮,则在图4 的数据接收框中显示3 组CAN 报文,分别是仪表发送的ID1 = 0X353,ID2 =0X34B,ID3 = 0X428,通过上述数据可获得CAN 分析仪与PC 端通信测试正常的判断条件。图3 界面上设有车速、发动机转速、发动机水温的数值输入窗口和常用灯光的运行停止按键,当设置好上述值后,选择仪表运行按钮,执行CAN 数据发送程序,将设置好的被测仪表数据发送至节点,并记录仪表测试模块的起始时间,当按下停止按钮,则记录结束时间,将上述数据保存至文本文档中,便于查询测试记录。

表2 仪表报文数据设置(X 表示二进制数据的任意状态)Tab.2 Instrument message data setting(X represents any state of binary data)

图2 仪表测试主菜单Fig.2 Main menu of instrument test

图3 仪表参数设置及测试界面Fig.3 Interface of instrument parameter setting and test

图4 仪表CAN 总线数据监测界面Fig.4 Interface of data monitoring of instrument CAN bus

3 实训平台测试分析和评价

在实验室搭建了汽车仪表测试平台,根据仪表行业标准、测试需求[6],PC 机通过CAN 分析仪对汽车仪表各模块包括车速、发动机转速、水温、燃油以及信号、报警灯发送数据,验证仪表信号灯、报警灯亮灭和颜色是否正常,蜂鸣器是否发出声响,仪表指针指示是否准确,是否存在抖动等,为保证平台运行可靠性,开展了仪表教学平台的耐久测试。根据上述文中给出的数据发至仪表模块,测试结果表明平台发送数据准确可靠,由于测试参数较多,表3 只对车速表、发动机转速表、水温表的数据进行分析,误差值在行业标准范围内。

表3 仪表测试数据分析Tab.3 Analysis of instrument test data

该系统作为车载网络应用技术课程的实训平台能辅助分析CAN 总线的数据结构,让学生通过计算机界面直观理解CAN 通道、通信波特率等参数的设置,以及CAN 报文的帧格式、帧类型、总线仲裁、节点优先级判断,深刻领会CAN 总线中的各节点ID、DLC、DATA 的数据含义[7],并结合汽车仪表具体对象,让学生掌握如何使用CAN 诊断工具和CAN 波特率计算工具,以及如何解析仪表DBC 文件的操作方法。因此,该实训平台在汽车智能技术专业课程教学实训和毕业设计中起着重要作用。

4 结语

该测试系统采用Kavser CAN 分析仪作为汽车仪表测试的主要硬件平台,基于C#编程软件设计仪表测试程序,将仪表测试数据以CAN 报文的形式通过平台CAN 总线传输至汽车仪表,驱动仪表各模块运行,实现汽车仪表的发动机转速、车速、发动机水温以及灯光测试,并通过可调电阻箱测试油量表。设计的平台可用于开展汽车智能技术专业核心课程的教学实训。

猜你喜欢
报文车速分析仪
基于J1939 协议多包报文的时序研究及应用
Sievers分析仪(苏伊士)
低轨星座短报文通信中的扩频信号二维快捕优化与实现
一种用于深空探测的Chirp变换频谱分析仪设计与实现
CTCS-2级报文数据管理需求分析和实现
浅析反驳类报文要点
轮速信号在定速巡航控制中的应用
2012款奔驰R300车修改最高车速限制
跑跑卡丁车
全血细胞分析仪配套操作台使用体会