基于LABVIEW汽车CAN总线数据采集系统
2018-10-26韩震初洪超
韩震,初洪超
基于LABVIEW汽车CAN总线数据采集系统
韩震,初洪超
(江淮汽车技术中心新技术研究院预研技术规划部,安徽 合肥 230601)
为了对汽车CAN总线数据传输进行有效的测试和监控,设计采用USB-CAN适配器采集总线数据。该适配器接收CAN总线上的数据经过缓冲后转化为USB数据发送到计算机,通过计算机上的LABVIEW虚拟仪器软件接收并加以处理,实现与下位机通信、显示数据、诊断。
CAN总线;LABVIEW;数据采集
引言
随着汽车CAN网络普及,各个电控单元之间的交互信息通过CAN总线组成的网络来实现。因而对整车CAN信号的测试和监控尤为重要,不仅可以了解整车各电控单元的状态同时可以根据相关的信号查找车辆故障的原因。目前市面上的CAN总线测试设备分为两种,一种是Vector开发的CANCase与华东汽电开发的Tellus工具,另一种是周立功的USB-CAN转换器,前一种工具功能齐全,可以采集分析整车信号并实时记录,但价格在十万左右难以普及;后一种工具可以采集整车信号但是无法对信号进行解析,使用很不方便,价格在一千元以下。本系统所使用的USB-CAN适配器价格为三百元,通过labview软件接收CAN数据并进行信号解析显示。
1 Labvew前面板设计
1.1 车型选择面板
图1 通讯面板
运行软件后弹出车型选择面板,选择车型并确定。软件会读取该车型的DBC数据库并进行信号的解析。同时在DBC数据库中提取该车型CAN通道的波特率用于硬件波特率配置。
1.2 通讯面板
通讯面板用于显示接收的报文和信号,如图2所示,界面中显示了从车辆中接收的报文信息并对信号进行了解析显示。
图2 信号面板
面板中的按键作用如下:
“开始”“停止”:
控制软件运行与停止;
“开始记录”:
点击后打开或创建文本文件用来记录通讯报文;
“结束记录”:
点击结束报文记录;
“打开记录”:
点击后记录的通讯报文会在报文记录界面显示;
“发送统计”“接收统计”:
统计发送和接收的报文数量;
“报文显示”:
显示接收到的报文和解析的信号;
“模块选择”:
点击选择要显示的模块,如接收该模块的报文则该模块显示为红色。
ALL_2:选择CAN通道2所有报文
Others_2:显示接收到的非DBC数据库中的报文
“报文刷新时间”:
所有报文屏幕刷新一次的时间,当报文有10帧时的刷新时间为200ms。为快速刷新可使用“模块选择”只显示一个模块的报文。
“CAN通道波特率”:
默认为从DBC数据库中读取的波特率,如无DBC数据库可手动配置。
1.3 诊断面板
诊断面板用于整车诊断,作用类似于诊断仪,界面如图3所示:
面板中的按键作用如下:
“选择节点”:
选择当前要诊断的模块,如EMS(发动机)、ESC(转向)、BCM(车身控制)
“诊断数据输入”:
输入需要发送的诊断数据然后点击“发送”将输入的数据发送到总线上。比如需要将模块转为扩展模式则输入“10 03”,读取VIN码则输入“22 F1 90”。
“诊断数据发送/接收”:
显示发送和接收的诊断数据,如需保存诊断数据则点击“保存”至文本文件。
图3 诊断面板
“故障码”:
显示当前模块读取的故障,故障读取可点击“读故障码”,并配合选择“故障类型”中的当前故障、历史故障、历史+当前故障、所有故障。如读取的故障非以上四种故障类型则可在“其他”中输入需要读取的故障掩码。
“扩展模式按键”:
点击自动发送10 03报文将模块转为扩展模式,一般模块选择时会自动发送该报文,如有需求可自行点击。
“安全访问”:
点击则对当前模块进行安全访问服务,如安全访问通过则后面指示灯为绿色,如不通过则为灰色。
注意:在点击“写配置码”按键前需先点击此按键。
“MT车型自诊断”:
点击后则对S-II MT车型的所有节点进行故障诊断,并对读取的故障进行显示。
“读ECU信息”:
点击后会以1秒为间隔依次读取以下信息:VIN码、配置码、零部件号、ECU序列号、ECU硬件号、ECU硬件版本、ECU软件号、ECU软件版本、ECU安装日期。
注意:如模块不支持某个信息则不进行相关显示。
“钥匙学习”:
学习流程为:
(1)点击“BCM安全访问”
(2)点击“开始学习”
(3)操作钥匙
(4)点击“结束学习”
“方向盘标定”:
标定流程为:
(1)点击“EPS安全访问”
(2)点击“开始标定”
(3)操作方向盘
(4)点击“结束学习”
(5)点击“清除故障码”(可选)
“ESC标定”:
标定流程为:
(1)点击“ESC安全访问”
(2)根据标定需求选择下面的四个按键
“读配置码”:
点击后可在选择的模块中读取配置码,读取的配置码会显示在下面配置码显示区。该按键与写“配置码”按键结合使用
注意:选择的模块需与当前诊断的模块在同一CAN总线上,如正在对动力CAN上的模块进行诊断则需选择动力CAN上的模块读取配置码
“写配置码”(先安全访问):
点击可将上面显示区中的配置码写入到当前诊断的模块中,显示区中的配置码可以根据需求手动改动或输入。
注意:点击该按键前需先点击“安全访问”按键,因为写服务需要通过安全访问验证后方可执行
“配置码计算”:
点击可调出配置码计算界面,可以自行配置生成配置码或选择相应的车型自动生成该车型的配置码,点击“配置码输出”则“配置码计算”界面关闭,生成的配置码自动输出到配置码显示区中。
配置码计算界面如下:
图4
2 Labview程序框图设计
2.1 程序框图
程序设计采用生产者/消费者模式,生产者/消费者模式分为两个while循环,生产者while循环产生数据并入队列,消费者while循环读取入队列的数据。Labview提供的队列模块可以起到数据缓存的作用以避免数据得不到及时处理而被覆盖掉。
图5 程序主结构
2.2 数据发送模块
数据发送模块将前面板输入的通讯数据、ID、发送时间等数据写入队列。
图6 发送数据程序
2.3 数据接收模块
数据接收模块从队列中读取数据,按照从DBC库中解析得到的信号属性对该帧信号进行解析。
图7 接收数据程序
3 总结
本文设计了汽车总线数据采集系统,并成功地进行了对轿车的数据采集。通过试验,实现上下位机通信、实时信号显示、模块故障诊断,具有很高的性价比和实用性。
[1] 赵方庚,龙理华,等.现代汽车总线技术的发展[J].汽车运用,2005 (12):30-31.
[2] 邬宽明.CAN总线原理和应用系统设计[M].北京:北京航空航天大学出版社,1996:18-49.
[3]付伟,秦树人,等.基于CAN总线的车载数据采集器的设计[J].重庆大学学报:自然科学版,2006,29(3).
[4] 寸良耀,宋健.汽车总线数据采集模块设计[J].计算机测量与控制, 2007,15(2):268-270.
CAN bus data acquisition system of automotive base on Labview
Han Zhen, Chu Hongchao
(Jianghuai Automobile Technical Center, Anhui Hefei 230601)
In order to test and monitor the can bus data transfer on the vehicle,Design uses a USB-CAN adapter bus data acquisition.The adapter receives data on the CAN bus are buffered and converted into USB data is sent to the computer,Through labview virtual instrument software on the computer to receive and deal with them,Achieved communication with device, display data and diagnostics.
CAN bus; LABVIEW; data collection
B
1671-7988(2018)20-148-03
U407.471
B
1671-7988(2018)20-148-03
U407.471
初洪超,就职于江淮汽车技术中心新技术研究院预研技术规划部。
10.16638/j.cnki.1671-7988.2018.20.054