远程诊断系统设计论文

时间:2022-04-02 11:02:25

远程诊断系统设计论文

1远程故障诊断仪简介

(1)通讯功能类

配置CAN总线接口,支持标准SAEJ1939从数据链路层、网络层到应用层协议;配置无线数据通讯模块,具备远程数据查询、故障诊断功能;支持实时数据流上传功能,支持历史故障信息上传。

(2)诊断功能类

配置NANDFLASH存储器,具有本地存储功能;具有重要数据本地存储和服务器双重备份功能;支持远程监控系统模拟诊断仪对整车CAN网络进行诊断;支持在整车设计过程中对发动机标定数据检测与上传,配合整车设计功能。

2硬件设计

(1)单片机

在该方案设计中使用Cortex-M3内核的单片机STM32F207VCT6。ARM的CORTEX-M3处理器是新一代的嵌入式ARM处理器,它为实现MCU的需要提供了低成本的平台、缩减的管脚数目、降低的系统功耗,同时提供卓越的计算性能和先进的中断系统响应。STM32F207VCT6拥有内置的ARM核心,它与所有的ARM工具和软件兼容。

(2)通信模块

通信模块目前采用SIMCOM公司GPRS模块SIM800A。SIM800A模块单元支持两频GSM900/1800。最大发射功率为EGSM900Class4(2W),DCS1800Class1(1W)。正常上电后,GSM模块基本在20s连上GSM网络,30s连上服务器,连上服务器就能建立与服务器的正常数据链路。模块接口方式简单,使用TTL串口,操作方便。单片机串口与模块串口连接,即可通过发送AT指令控制GSM模块,实现GPRS网络的数据发送。

(3)CAN单元

CAN单元包含两路CAN接口,一路作为标准车身CAN通信接口,波特率125Kbps,另一路预留。CAN收发器选用NXP公司的车载级收发器TJA1042-3,适用于12V和24V系统,工作温度-40~125℃。最大传输速度为1Mbps。支持SAEJ1939标准的CAN数据接口。芯片内部带过压保护,CANH、CANL管脚耐压值范围-27V~40V,抗瞬态脉冲电压范围达到-200V~200V。

3软件设计

系统软件架构为典型的前后台式架构,整体采用模块化的软件设计方法,将系统功能分解为多个子模块,每个模块对应一个状态机,系统在初始化完成之后,即进入主循环,各状态机依据在程序中的前后位置依次获得CPU时间循环运行。系统软件的主要部分分为GSM模块管理,GPS模块,电源管理模块,SAEJ1939协议处理模块。GSM管理模块主要处理的内容包括:GSM模块的电源控制,建立移动网络的链接,与服务器建立数据链接,应用层数据包的打包与发送处理,数据包重发处理机制等。GPS模块主要处理的内容是:GPS模块的电源控制,NMEA2000GPS数据协议解析,获取GPS的位置信息、速度信息与时间信息等。电源管理模块负责管理系统的电源,处理系统不同的工作模式还有各个工作模式之间的切换。SAEJ1939协议处理模块,包含了SAEJ1939的数据链路层、传输层、网络管理层、应用层和故障诊断层的协议的全部内容。

(1)数据链路层

STM32F207VCT6集成的CAN控制器芯片基本实现了数据链路层的全部内容,但是SAEJ1939对数据链路层进行了重新定义,对CAN扩展帧的29位标识符进行了重新编码。数据链路层需要完成29位标识符的编码和解码工作。

(2)传输层

传输层是整个SAEJ1939网络协议最复杂的一层,主要实现分段传输功能。在J1939中要传输大于8个字节的报文时,需要采用分段传输功能,分段传输功能可以拆分为两个主要的功能块:报文的分包、重组以及连接管理。分包、重组用于传输长度大于8的报文,报文必须被拆分为若干个小书架包,然后使用数据帧将报文逐一传送。而接收方必须能够接收这些数据帧,然后解析并且重组成原始的报文。连接管理的功能包括基于连接模式的点对点报文传输和基于未连接模式的广播报文传输。在点对点模式下,连接管理用于处理节点间的虚拟链接的打开、使用和关闭。而基于未连接模式的广播报文传输,则只要处理数据超时,当超时时间到了,而没有收到后续数据包,则直接放弃此连接就可以了。

(3)网络管理层

在本系统中,车辆的各个CAN总线节点的地址已经分配好了,所以未使用网络管理的功能。这样简化了系统的设计与软件复杂度。

4功能设计使用

SAEJ1939的总线应用层协议,在系统中主要实现的功能包括以下几个方面。

(1)远程车辆控制

因为重型卡车价格高昂,客户普遍会选择贷款购车。为了防止客户有欠款不还的情况出现,要保证系统可以实现对客户车辆的远程控制。远程控制的实现要求是要保证发动机要预留有操作接口,要支持各种运行模式,比如跛行模式,此模式可以限制车速,保证基本的行车安全,但是车辆的速度很低,小于30km/h,这样就能在不影响安全的情况下实现对有些不遵守合约的客户的约束。实现的原理是这样的,远程诊断系统定义了一个SAEJ1939的报文,此报文通过车身控制模块从低速车身CAN总线转发到高度的动力CAN总线。在车辆点火的时候,发动机管理系统就检测此报文,如果总线上没有此报文,则发动机点火失败;如果检测到此报文,才允许点火。如果远程诊断系统被恶意破坏了,则发动机管理系统接收不到远程诊断系统的报文,则车辆就不能点火了。在车辆使用中,可以通过从发服务器端发送命令来对车辆进行锁定、解锁、跛行等模式的设定。当设定不同的工作模式时,远程诊断系统把对应的设定模式发送到发动机管理系统,由发动机管理系统实现对车辆的实际控制功能。

(2)诊断信息收集

SAEJ1939应用层诊断协议定义了系统诊断相关的协议,包含:当前活动的诊断故障码(DM1)、历史活动的诊断故障码(DM2)、历史故障码清除(DM3)、停帧参量(DM4)、当前故障码清除(DM11)等。可以通过服务器向远程诊断系统配置诊断的操作模式,可以实时收集各个CAN总线节点的当前活动的诊断故障码,收集到的诊断故障信息可以先存储在系统的NANDFLASH存储器中,当与服务器建立数据链路后就可以发送到后台服务器。这样从服务器端就可以知道当前的车辆实时状态,也可以对车辆的安全状态有个基本了解。

(3)模拟在线诊断仪诊断

各个整车厂一般都在对应的4S店或者是服务网点配有诊断仪对车辆进行诊断,通过诊断可以发现车辆出现的故障情况,以及车辆可能出现的故障。远程诊断系统在正常使用时分配一个固定的网络节点地址(本系统中分配为0x4B),但是如果要实现完全的诊断功能,需要使用诊断仪的网络地址(分配为0xF9),模拟诊断仪设备对各个模块进行诊断。远程诊断设备可以实现SAEJ1939协议定义的所有的诊断相关的协议,实现远程队车辆的完全诊断,掌握车辆的历史故障状态,监控车辆的完整生命周期的全部情况,不但有利于车辆的使用和保养。同时,服务器端搜集大量的车辆诊断信息,通过对大量数据的统计分析与研究,可以改进车辆的设计。

作者:黄强单位:中国电子科技集团公司第三十八研究所汽车电子工程研究中心