APP下载

基于CAN总线的汽车诊断系统设计

2021-03-25陶曾杰

自动化与仪表 2021年3期
关键词:诊断系统列表总线

陶曾杰,桂 馨,王 舟,龙 林,李 格

(湖南信息学院 电子科学与工程学院,长沙410151)

随着汽车电子的广泛应用,汽车网络化进程的加快。电子控制单元(ECU)控制的组件数量正在增加,这些电子控制系统的增加极大地改善了现代车辆的动力、经济性和舒适性。然而,在改善车辆的性能和智能的同时,其复杂的控制系统使得诊断车辆故障越来越困难,降低了车辆的可靠性并增加了维修难度。传统维护无法解决时域、时间和效率等各方面的问题[1]。CAN 网络以其良好的性能、独特的设计、高速的通信速率、灵活的通信方式,在车载网络领域得到了广泛的应用。与此同时,基于CAN 总线的汽车故障诊断技术蓬勃发展,其智能化和网络程度的突出优势,使CAN 总线早已被一些著名的汽车制造厂商应用于汽车诊断、控制和通信中[2]。根据目前社会大势所需,本文设计了一套基于CAN 总线的汽车诊断系统。人们可以实时掌握车辆信息,解决传统诊断方式带来的不便,并且满足人们在安全度、舒适度、便捷性和成本低、少污染等方面的要求,对于汽车的维修和保养将起到重大意义。

1 诊断系统总体设计

本项目是针对所有车型CAN 网络平台而设计的故障诊断系统。由微控制器(STM32F103C8T6)、ECU、上位机、CAN 通信模块、液晶显示模块、按键系统、存储模块和其他外围模块等构成了本系统的硬件组成部分。各个控制模块之间的信息通过CAN 进行连接与交互。ECU 作为节点搭建在汽车诊断系统中,其内部存有自诊断模块。当汽车发生故障时,采用诊断设备进行诊断。在诊断的过程中,根据通信协议实现诊断设备与ECU 之间的通信。诊断设备首先需要发出诊断请求,该请求包含一个ID 为服务的请求信息,网关识别该服务请求信息后,传递给整个CAN 网络的ECU 节点。当ECU 自诊断系统中的某个控制器节点接收该信息后,对该请求进行处理,并返回服务器响应,与汽车诊断系统建立通信联接。诊断系统读取到响应的诊断信息后,在后台监控系统上位机中完成物理数值与总线数值之间的转换,结果以物理数值或图形曲线的形式输出,呈现在液晶显示屏上[3]。系统总体框图如图1所示。

图1 系统总体框图Fig.1 Block diagram of system

2 硬件设计

2.1 微处理器模块的设计

采用STM32F103C8T6 作为主控芯片构成本系统的微型处理器。STM32 是基于超低耗的ARM Cortex-M 内核,工作温度在-40 ℃~85 ℃之间,工作频率最高可达72 MHz,工作电压为2 V~3.6 V。拥有多达11 个定时器,13 个通信接口、USB 接口、CAN、内置多达512 KB 的嵌入式Flash[4]。使用STM32F103C8T6作为主控芯片构建高性能的CAN 总线通信系统,能够达到速度更快、更具安全性的要求。

2.2 Flash 存储模块的设计

STM32 通过一路SPI 驱动Flash 从而控制Flash 的读写。并且能够存储声音、文本、数据等。外部Flash 采用W25Q128FB 芯片,该芯片支持SPI 接口,以及更高性能的DUAL/QUAD SPI。25 系列的灵活性和性能比一般的串行Flash 设备要高,该芯片容量为128 Mbit/16 Mbyte,时钟频率小于133 MHz,供电范围为2.7 V~3.6 V,工作温度在-40 ℃~+85 ℃之间,价格便宜,通用性强。硬件电路如图2所示。

图2 Flash 存储模块电路Fig.2 Flash memory module circuit

2.3 液晶显示模块的设计

本设计中,采用TFT 液晶显示屏作为液晶显示模块,该显示屏支持SPI 接口通信,尺寸为2.8 寸,供电电压为3.2 V,最大工作电流为60 mA,分辨率达到240×320,该显示屏亮度好、颜色鲜艳、使用方便灵活、功耗低、寿命长[5]。STM32F103C8T6 通过I/O口与TFT 液晶显示模块相连,实现数据通信。单片机的FSMC_D1~FSMC_D15 端口分别与显示屏的DB1~DB5 端口相连作为数据通信口,STM32F103C8T6其他相应端口连接芯片的RET、RD、WR、RS 和CS端,实现复位、读写、指令数据切换、片选等功能,接口电路如图3所示。

2.4 报警电路的设计

图3 液晶显示模块接口电路Fig.3 Interface circuit of LCD module circuit

发动机出现故障时,显示屏会显示故障灯标志并且发出警报信号。报警电路通常采用无源蜂鸣器作为主器件。由于无源蜂鸣器是流控器件,要使蜂鸣器的响度大,只能设定在规定范围内流进的电流值大。同时电路上的TTL 电平驱动不了蜂鸣器,为了确保流经蜂鸣器的电流要足够大,必须要利用三极管的放大能力使电流放大。该电路设计所用的三极管是S8050 NPN 型三极管,128 倍放大值更加容易实现饱和度。并且电路中使用1 kΩ 电阻R23作为限流电阻来预防三极管烧坏。报警电路如图4所示。

图4 报警电路Fig.4 Alarm circuit

2.5 CAN 总线的硬件设计

CAN 总线的硬件电路主要是完成CAN 通信控制器与微处理器之间和CAN 收发器与物理总线之间的信息通信[6]。在该电路中,MCU 采用功能强大、性能好、存储空间大的STM32F103C8T6 作为CAN总线收发模块,主要用于对MCU 自带的CAN 控制器串口的初始化,控制CAN 控制器执行通信任务,实现数据的接收和发送,以及实现CAN 总线的数据协议与PC 的数据交换[7]。

CAN 控制器采用STM32F103C8T6 自带的bx Can,该CAN 控制器的波特率最高可达1 Mbps,支持时间触发通信。CAN 控制器能够实现CAN 总线的协议底层以及数据链路层所有功能,是CAN 总线接口电路的关键器件。CAN 控制器从微处理器中接收数据,处理数据并将其传递给CAN 收发器。同时实现微处理器与上位机之间的数据通信。

CAN 收发器采用TJA1050,TJA1050 是CAN 高速收发器,它具有速率高、低功耗、安全性高、抗干扰能力强等特点[6]。TJA1050 主要用来连接CAN 控制器和物理总线,发送节点通过TXD 引脚发送数据,RXD 引脚监视总线状态。TJA1050 的RXD 和TXD 引脚与CAN 控制器的信号接收端RX 和发送端TX 相连,实现多路CAN 采集功能,CAN 接口电路如图5所示。

图5 CAN 接口电路Fig.5 CAN interface circuit

3 软件设计

远程服务器端采用JAVA 技术开发,综合运用消息队列、线程、Socket 等相关技术来实现。远程服务器端对车载终端和远程故障诊断客户端进行监控。车载终端上传的数据,通过处理打包成含有头部信息(头部信息:含有车型的基本信息和客户信息)的数据包,用户可以将数据包上传至服务器,同时由专门线程负责数据的存储;再将客户上传数据通过大数据进行对比分析,将分析的结果提供对外接口供Web 端调用,呈现在远程诊断客户端上。主流程如图6所示。

4 监控与操作平台设计

监控平台主要由上位机实现后台监控,液晶显示屏进行显示。按键模块通过蓝牙连接诊断接头实现诊断系统的操作。

4.1 总体功能说明

(1)选择车型列表,车型主要有宝马、路虎、捷豹、奔驰等。

(2)选择添加系统,系统主要有发动机系统、冷却系统、悬挂系统、转向系统等。

(3)选择功能列表:数据流信息、故障码信息、清除故障码、版本信息。

(4)监视动态数据流,数据流是发动机运转时的各项参数值,如车辆的位置、开车的速度、油耗等行程情况。

图6 主流程Fig.6 Main flow chart

(5)可以查看发动机转速和冷却液温度波形,并且可以自行设置发动机转速和冷却液温度。

(6)数据流可以以文件的形式储存和记录,便于查看。

(7)当发动机出现故障时,显示屏会显示故障灯标志并且发出警报。

(8)读取故障码信息和清除故障码。

(9)可以自行查询故障码的记录,更清楚的了解车辆具体的故障信息。

4.2 液晶屏界面设计与功能展示

液晶显示模块和按键模块的配合使用能实现操作系统的人机相互,用户可根据自己的选择与要求,通过按键进行液晶屏界面的操作。

(1)进入诊断页面,如图7所示。

图7 诊断页面Fig.7 Diagnostic page

(2)选择车型列表,如图8所示。

图8 车型列表Fig.8 List of vehicle types

(3)选择系统列表,如图9所示。

图9 系统列表Fig.9 System list

(4)选择功能列表,如图10所示。

图10 功能列表Fig.10 Feature list

(5)查看数据流信息,如图11所示。

图11 数据流信息Fig.11 Data flow information

(6)检测故障码信息并清除故障码,如图12所示。

图12 故障码信息Fig.12 Trouble code information

5 结语

本文介绍CAN 总线的基本工作原理、技术特点及在汽车上的应用。设计了基于CAN 总线的汽车控制系统,开发了汽车诊断系统的软件,实行了软件功能的调试,并完成了该系统硬件电路的设计。通过测试,液晶显示模块和按键模块能实现对该诊断系统的显示和操作,能够显示汽车运行的状态数据与故障信息,选择车型、系统、功能等列表,查看和调节发动机转速、温度冷却液以及读取和清除故障码。该系统具有结构紧密、置信度高、功能完善和成本低等优点,能够较好地满足汽车诊断系统的工作要求。

猜你喜欢

诊断系统列表总线
学习运用列表法
扩列吧
区间轨道电路智能诊断系统的探讨
基于PCI Express总线的xHC与FPGA的直接通信
基于云服务器的旋转机械在线监测诊断系统设计
机载飞控1553B总线转以太网总线设计
连铸板坯质量在线诊断系统的应用
列表画树状图各有所长
CAN总线并发通信时下位机应用软件设计
基于OPC跨平台通信的电机监测与诊断系统