基于汽车OBD接口诊断的硬件模块设计与开发
2022-05-19张春
0 引言
随着汽车电子技术的飞速发展,车载电子控制单元数量日益增多,结构和功能也由简单变得复杂,依靠传统的汽车诊断技术,已经很难满足汽车高度电子智能化发展的需求。为了适应汽车对诊断功能的增长需求,车载诊断技术已经逐渐和移动互联网、智能手机联系起来,研究重点转向智能诊断和远程大数据分析。 本文阐述设计的OBD硬件模块安装于汽车OBD诊断接口上,通过BLE4.0低功耗蓝牙模块与智能手机无线连接,硬件模块支持CAN和K线通信接口,实现CAN和K线诊断数据到智能手机端的透明转发。
1 车载诊断总线概述
目前国内外汽车发动机诊断总线主要为K线和CAN总线两种。K线接口简单,在某些低端车或早期的车辆上仍以K线作为诊断总线接口
。CAN总线具有传输距离远,抗电磁干扰能力强,实时性和容错能力强,仲裁功能和优先权等优点,应用于目前主流车辆的总线网络。
文献[4]报道了一种采用紫外/H2O2技术处理化学镀镍废水的方法,处理后的废水中镍仍多达0.43 mg/L,才刚满足“表2”的要求。
1.1 基于K线的KWP2000协议
基于K线的诊断协议一般基于KWP2000(Keyword Protocol 2000)协议,主要包括ISO14230-1~14230-4,ISO14230-1规定了KWP2000协议的物理层规范(K线、L线),ISO14230-2
规定了KWP2000的数据链路层协议,包括报文结构、初始化过程、通讯连接管理、定时参数和错误处理等内容。K线的报文包括报文头、数据域和校验和三部分,其中报文头包含格式字节、目标地址(可选)、源地址(可选)和附加长度信息(可选)。数据域主要承载具体的诊断服务命令,包括诊断服务码和命令数据两部分。最后一个字节是校验和,保证数据传输的准备完整。
1.2 基于CAN总线的ISO15765协议
CAN是Controller Area Network 的缩写,是 ISO国际标准化的串行通信协议。1986年德国汽车零部件公司博世开发出面向CAN汽车总线通信协议。此后,CAN通过ISO11898及ISO11519进行了标准化
,目前已是汽车网络的标准协议。
CAN总线ISO15765协议与OSI开放式互连系统的分层对应关系。OSI应用层由ISO14229-1和ISO15765-3共同定义,网络层是由ISO15765-2定义。总线数据链路层由ISO11898-1定义,主要包括:通信机制;数据帧;错误检测;帧格式;位定时与同步
。CAN总线帧数据按位发送出去,总线共有5种不同类型的帧,分别是数据帧、远程帧、错误帧、过载帧以及帧间隔。
2 OBD硬件模块功能需求分析
当前汽车对外通信接口OBD已经标准化,对汽车的诊断都是基于OBD接口来实现。主流的汽车诊断接口预留标准的CAN线或K线接口实现总线数据与外界的交互。智能手机实现短距离无线通信首选蓝牙,所以需要设计一套硬件系统能接收手机请求的诊断数据,并将数据转换成CAN线或K线协议格式的命令发送到汽车总线上,同时接收汽车总线命令响应数据并转发到手机蓝牙。硬件模块包含CAN和K线通信接口,蓝牙与手机无线通信,预留OBD硬件接口。
基于OBD接口的硬件模块是车载发动机电控与智能手机通信的桥梁,是整个系统实现可靠、易用的关键部件。模块软件需要支持基于K线的KWP2000和基于CAN线的ISO15765诊断通信协议,同时集成蓝牙模块的收发协议栈,实现与智能手机的短距离无线通信。
3 OBD硬件模块硬件设计
3.1 硬件模块系统方案设计
c.诊断命令数据为CAN线或K线诊断协议命令。
透明传输数据报文格式如图4所示。传输报文整体分为两个字段,固定包头及变长包体。固定包头包含协议控制相关信息,同步头用于指示报文开始,长度记录当前传输报文的字节长度,命令字为指示当前报文类型或功能,错误码为响应方返回透明协议控制相关的状态错误码。变长包体为实际传输的诊断数据,长度根据实际诊断命令或数据变化。
使用的载玻片和盖玻片必须无划痕且无灰尘,物镜前透镜也须清洁无尘。载玻片与盖玻片的厚度应符合标准。载玻片太厚,聚光器的焦点将落在载玻片内,达不到被检物体的平面上;使用油镜头时,由于物镜的工作距离很短,甚至无法调焦,从而看不到或看不清被检物体。
3.2 电源控制与CAN控制器模块设计
传统的电源管理与CAN控制器分离设计方案至少需要两块芯片分别实现电源管理和CAN信号的收发,每块芯片都要做外围电路设计,并且要保证可靠的车载EMC和ESD性能。分离设计不仅增加硬件设计成本和复杂度,而且主控MCU软件要分别对电源管理芯片和CAN控制器做监测与管理,增加软件复杂度。为了提高系统的集成度、稳定性和安全性,本文选用MCZ33904C3EKR2系统基础芯片。它集成了电源控制与管理和CAN信号收发器,并具有局部和总线故障诊断、保护功能以及故障安全操作模式。
2008年,汶川地震,死亡人员数量为6.9万人左右。2010年,玉树地震,死亡人数也达0.26万左右。自然灾害、大型事故等仍然对人类具有潜在威胁。公众在突发事件中,如果具备一些自救、互救技能,或许能使更多生命得到救治,将致残致死率降至最低。
MCZ33904C3EKR2启动后稳定输出3.3 V 给主控MCU,同时通过外部PNP扩展电流功能,与MCU共同分担功率损耗;通过SPI接口可以配置辅助电源输出和欠压保护功能;低功耗模式下具有多个唤醒源,如CAN总线,I/O等。并且兼容ISO11898-5高速CAN接口,支持40 Kb/s至1.0 Mb/s的波特率。
青花釉里红是在雍正、乾隆期间,开始研烧出青花釉里红。什么是青花釉里红,就是将青花、釉里红两种釉下颜料,同时彩绘在一件坯体上的装饰形式就是青花釉里红。也是在覆盖一层透明釉,经高温煅烧而成。青花釉里红改变了青花和釉里红单色绘画装饰,开始两色结合。青红两色互为映衬,产生出美丽的颜色混合效果。
为了保证车载电源能稳定输入到模块,VB经过电容滤波输入到MCZ33904C3EKR2芯片,MCZ33904C3EKR2芯片输出稳定电压VMAIN 3.3V供电主控MCU,主控MCU启动过程中会通过SPI与MCZ33904C3EKR2通信,根据系统启动逻辑配置MCZ33904C3EKR2芯片输出VAUX来控制蓝牙和K线通信模块的启动与否,从而保证系统根据实际应用来管理通信模块的上电,进而降低系统功耗。
K线芯片选用MC33660EFR2芯片,提供串行链路总线接口。同时蓝牙选用BLE113低功耗蓝牙模块
,模块预留外部可扩展SRAM存储器,用于数据传输处理缓存。
3.3 蓝牙模块设计
为了降低OBD硬件模块功耗,蓝牙模块采用低功耗蓝牙4.0模块 BLE113。BLE113模块电源3.3V由系统基础芯片MCZ33904C3EKR2引脚VAUX提供,模块的启动受主控制器控制。同时模块通过串口引脚BT_RXD、BT_TXD与主控制器数据交互。BT_RESET用于主控制器复位初始化模块。硬件预留BLE113模块配置文件更新下载接口。
3.4 K线驱动芯片选型与设计
K线芯片选用恩智浦MC33660EFR2芯片
,MC33660EFR2提供串行链路总线接口,在汽车诊断应用中提供双向半双工通信,满足标准的ISO K线物理层及链路层规范,并支持诊断系统 ISO9141标准定义。
K线模块原理图如图1所示。K线模块电源VAUX由系统基础芯片MCZ33904C3EKR2提供,受主控制器控制,同时MC33660EFR2模块通过串口引脚K_RXD、K_TXD与主控制器数据交互。K线数据输出引脚ISO 与车载总线连接。
4 OBD硬件模块软件设计
4.1 软件模块整体方案设计
OBD硬件模块软件整体架构图如图2所示。主要软件模块功能:操作系统调度模块负责各软件功能模块启动,运行和调度,是系统中央调度模块;配置管理实现通信相关参数的可配置相关功能,例如CAN和K线通信速率参数等,最大限度的减少模块软件与外部需求耦合;透明转发管理实现了一种透明转发的策略,即OBD硬件模块收到蓝牙诊断数据,透明转发到CAN或K线接口,硬件模块从CAN或K线接口收到数据透明的转发到蓝牙接口,中间不会增加任何与OBD接口硬件本身相关信息,从而减少硬件模块与智能手机端程序的依赖性;BLE蓝牙传输层负责蓝牙命令数据的打包和解包,同时实现传输层协议的时间控制;UDS ON CAN传输层遵循ISO15765协议,负责CAN线数据的打包和解包,同时实现传输层协议的时间控制;KWP ON K线传输层遵循ISO14230协议,负责K线数据的打包和解包,同时实现传输层协议的时间控制。SRAM内存管理负责系统在大数据处理与传输时SRAM内存的相关管理;最后软件模块还包括底层通信接口相关驱动。
4.2 基于蓝牙的透明传输协议设计
透明转发的协议策略,即智能手机端请求一次诊断命令,APP按照透明传输协议打包诊断命令数据发送给硬件模块,硬件模块收到后根据相关传输控制字,解析成CAN线或K线诊断命令,然后传给模块的通信协议栈发送到汽车总线上。当电控收到诊断请求命令并处理完成,返回诊断响应数据,硬件收到后,按照透明传输协议加入蓝牙传输控制字封装转发到蓝牙接口。APP收到后去掉透明传输协议控制字,解析诊断响应数据,从而实现智能手机APP对汽车电控的无线诊断。透明传输功能数据流原理如图3所示。
4.2.1 数据报文格式
模块采用英飞凌汽车级16位芯片XC2234L作为主控制芯片
,XC2234L是一颗搭载5级流水线的高性能C166SV2中央处理器
。电源管理模块采用恩智浦MCZ33904C3EKR2 SBC芯片,MCZ33904C3EKR2内置增强型CAN接口(ISO11898-2和ISO11898-5),具有局部和总线故障诊断、保护功能以及故障安全操作模式
。
b.长度=N+1+(1+2+2+1)
a.同步头为固定字节0xFD。
4.2.2 协议规则
本系统属于车载应用,硬件模块芯片选型首先满足汽车级的要求。根据成本、功能、性能、安全等因素对主控芯片,蓝牙模块,电源和CAN模块,K线模块进行选型,以确保硬件模块稳定可靠和各方面参数符合汽车级标准。
实验将平均绝对误差(Mean Absolute Error,MAE)作为算法性能评价标准。MAE 通过计算预测的用户评分与实际的用户评分之间的偏差度量预测的准确性,MAE 越小,推荐质量越高。假设预测的用户评分集为{ p1,p 2,…,pn} ,对应 实 际 评分集 为{q 1,q 2,…,qn},则MAE 计算公式如式(19)所示:
微课教学是指利用网络平台进行学习,该教学方法多选择内容丰富且较短的教学视频,可以更好的扩充学生的知识储备,提高学生的学习积极性。微课教学主要依赖于互联网,不仅打破原有教学方法时间与空间上的限制,同时还可以加强教师与学生、学生与学生之间的交流和互动。
4.2.3 命令字
通过学习哈佛课件,我认识到在处理这件事情上,存在以下几点问题:第一,情绪管理存在问题,放任了情绪的发展,无形中增加了沟通者之间的对抗,给沟通造成了巨大的障碍;第二,总是站在自己的立场看问题,忽略沟通对象的需求,使得自己与他人的交集变小,处理问题的方法也变得更少了;第三,在遇到问题时,一味去指责他人,而没认识到自身存在的问题。
根据电控诊断平台的功能及通信协议类型,设计出如表4-1所示的协议控制字。协议控制字在报文中占用2个字节用来指示当前数据报文的命令类型和配置字。
4.2.4 软件流程图
透明传输功能软件流程图如图5所示。系统软件首先查询蓝牙有无接收到数据,如果收到则通过解析传输协议命令控制字来区分是基于CAN线或K线的诊断,然后转发到相应总线传输协议栈发送到待诊断的电控单元。软件查询电控的诊断响应报文,如果在规定的诊断会话时间内接收到响应报文,则在响应报文上添加对应的透明传输协议控制相关信息通过蓝牙发送到手机APP;如果在规定的时间内电控单元没有响应数据,软件则返回超时错误码到APP。
5 小结
本文对OBD硬件模块进行了硬件电路设计和软件设计。硬件模块设计重点阐述了电源控制与CAN控制器模块设计、蓝牙模块设计、K线通信模块设计,并对各个模块的外围硬件电路做了详细设计。同时针对数据传输模块软件,本文设计了一种透明传输协议,在实际车载诊断工程化应用中,该协议能有效的减少OBD蓝牙硬件与应用软件协议的耦合性,提高了硬件的可扩展性。
根据近年来我国建筑工程沉降监测工作实践来看,由于监测点位、监测期数不断增加,相应的监测数据整理分析难度越大,要求越高,主要表现在:(1)沉降现象自身就具有一定的复杂性;(2)沉降监测收集到的数据量巨大;(3)沉降数据序列变更频繁;(4)数据质量较难评定。因此,单纯利用Excel配合人工进行数据整理,不仅效率低,也极易出现误差,后期数据存储、管理、查阅也较为不便。对此,随着现代化计算机技术的发展,可利用相关软件工具、数据库对监测数据进行分析处理与管理,切实提高工作效率和质量,为监测成果调用提供方便。
未来随着汽车的普及和移动互联网技术的发展,围绕汽车的应用服务生态链必将发展壮大。本文设计的OBD硬件模块建立了汽车内部网络到智能手机的数据通信通道,未来稍作扩展可以建立手机与远程服务器的通信,也即建立了汽车、手机到互联网通信通道。伴随着移动手机数据网络的飞速发展,汽车和手机,再到互联网的数据应用必将是一个巨大的产业生态和发展趋势。
[1]董强.车载Telematics系统远程故障诊断模块设计[D]. 广州:华南理工大学,2013.
[2]ISO14230-2, Road vehicle diagnostic systems keyword protocol 2000-Part3: data link layer[S].Switzerland: International Organization for Standardization, 1999.
[3]Salcianu M, Fosalau C. A new CAN diagnostic fault simulator based on UDS protocol[M].//2012 International Conference and Exposition on Electrical and Power Engineering(EPE).Iasi:IEEE,2012:820-824.
[4]任博.基于CAN总线的OBD系统的研究与开发[D].大连:大连交通大学,2008.
[5]程军. 亿恒(西门子)C166系列16位单片机原理与开发[M]. 北京航空航天大学出版社,2010.
[6]王爽.英飞凌XE166/XC2000单片机开发与应用实例[M]. 北京:电子工业出版社, 2014.
[7]NXP Semiconductors. MCZ33904 Datasheet [A],2018.
[8]BlueGiga Technologies.BLE113 Datasheet [A],2013.
[9]NXP Semiconductors. MC33660 Datasheet[A],2016.