车载故障诊断仪设计和实现

出处:shijieli 发布于:2011-06-30 08:23:36

  CAN是控制器局域网络(Controller Area Network, CAN)的简称,是由研发和生产汽车电子产品着称的德国BOSCH公司开发了的,并终成为国际标准(ISO118?8)。是国际上应用广泛的现场总线之一。 在北美和西欧,CAN总线协议已经成为汽车计算机控制系统和嵌入式工业控制局域网的标准总线,并且拥有以CAN为底层协议专为大型货车和重工机械车辆设计的J1939协议。近年来,其所具有的高可靠性和良好的错误检测能力受到重视,被广泛应用于汽车计算机控制系统和环境温度恶劣、电磁辐射强和振动大的工业环境

  1 方案设计

  系统总体设计框图如图l所示。系统分为发射端和接收端两部分。

  由于采用射频技术,使汽车CAN总线数据采集部分和CAN总线数据诊断部分得以分离,无需连线,不受空间场地限制,安装携带方便。按照ISO有关标准, CAN总线传输速率可达1 Mbps;但由于汽车内部特殊环境,车载CAN总线速率一般在250 kbps。本系统中射频速率可达l Mbps,可以很好地满足数据传输要求。

  CAN 在当前的汽车产业中,出于对安全性、舒适性、方便性、低公害、低成本的要求,各种各样的电子控制系统被开发了出来。由于这些系统之间通信所用的数据类型及对可靠性的要求不尽相同,由多条总线构成的情况很多,线束的数量也随之增加。为适应“减少线束的数量”、“通过多个LAN,进行大量数据的高速通信”的需要,1986 年德国电气商博世公司开发出面向汽车的CAN 通信协议。此后,CAN 通过ISO11898 及ISO11519 进行了标准化,现在在欧洲已是汽车网络的标准协议。它的出现为分布式控制系统实现各节点之间实时、可靠的数据通信提供了强有力的技术支持。

  发射端采用USB作为接收模块和PC接口。USB与RS232或PCI接口相比,具有用户使用方便,设备自动识别,自动安装驱动程序和配置,支持动态接入和动态配置等优点;其传输速率可达几十Mbps,并且支持同步和异步传输方式,保证带宽,传输失真小。

  PC端应用层软件整合KWP2000的应用层协议。KWP2000是由瑞典制定的一种车载故障诊断协议,已在微机控制的自动变速器、防抱死制动系统、安全气囊、巡航系统中得到广泛应用。其应用层提出了一套完整和标准化的诊断代码,本系统利用KWP2000的应用层协议,对采集到的CAN总线数据进行分析,以实现故障诊断的功能。

  2 硬件实现

  2.1 系统所用芯片简介

  2.1.1 nRF2401芯片

  nRF2401是单片射频收发芯片,工作于2.4~2.5GHz ISM频段,芯片内置频率合成器、功率放大器、晶体振荡器和调制器等功能模块,输出功率和通信频道可通过程序进行配置……其DuoCeiverTM技术使nRF2401可以使用同一天线,同时接收两个不同频道的数据。nRF2401适用于多种无线通信的场合,如无线数据传输系统、无线鼠标、遥控开锁、遥控玩具等。

  nRF2401内置地址解码器、先入先出堆栈区、解调处理器、时钟处理器、GFSK滤波器、低噪声放大器、频率合成器,功率放大器等功能模块,需要很少的外围元件,因此使用起来非常方便。QFN24引脚封装,外形尺寸只有5×5mm。

  nRF240l有4种工作模式:收发模式、配置模式、空闲模式、关机模式。其工作模式由PWR_UP、CE、CS三个引脚和配置字节位TX_EN来决定。

  收发模式分为DirectMode和ShockBurst。前者在片内对信号不加任何处理,与其他射频收发器相同。后者使用片内FIFO堆栈,数据从 MCU低速送入,但高速发射,而且与射频协议相关的所有高速信号处理都在片内进行。例如,nRF240l在ShockBurst收发模式下自动处理字头和 CRC校验码,在接收时自动把包头和CRC校验码移去;在发送数据时自动加上字头和CRC校验码。

  配置模式,15字节的配置字被送到nRF2401,这通过CS、CLK1和DATA三个引脚完成,具体的配置方法请参考本文的器件配置部分。

  空闲模式nRF2401的空闲模式是为了减小平均工作电流而设计,其的优点是,实现节能的同时,缩短芯片的起动时间。在空闲模式下,部分片内晶振仍在工作,此时的工作电流跟外部晶振的频率有关,如外部晶振为4MHz时工作电流为12uA,外部晶振为16MHz时工作电流为32uA。在空闲模式下,配置字的内容保持在nRF2401片内。

    nRF2401通过ShockBurstTM收发模式进行无线数据发送,收发可靠,其外形尺寸小,需要的外围元器件也少,因此,使用方便,在工业控制、消费电子等各个领域都具有广阔的应用前景。

  2.1.2 TMU3100芯片

  TMU3100可以配置为标准的HID类,可以使用Windows操作系统自带的HID类驱动程序。这样可以省去开发设备驱动程序的工作,缩短开发周期。TMU3100芯片结构框罔如图2所示。

  2.1.3 PICl8F2682芯片

  PICl8F2682是Microchip公司新推出的8位低功耗CAN微控制器,主要资源有:内置标准CAN模组、80KB闪存程序存储器、1 KB数据E2PROM、3.3 KBRAM存储器、8通道ADC、1个8位和3个16位T1MER、1个SPI和I2C串行通信端口和可编程欠压复位功能及低电压检测电路。

  PIC18F2682内置增强型的CAN总线模块,该模块包含CAN协议引擎、信息缓冲和信息控制。CAN协议引擎自动处理CAN总线上所有接收和发送的消息,它可以在接收或发送信息时对数据帧进行解析。只需要首先设置适当的寄存器就可以发送信息,通过相关的寄存器即可得到信息传输的状态。

  2.2 硬件电路

  2.2.1 发射端电路原理

  图3是系统发射端电路原理。CAN总线接口使用Microchip公司内置CAN模块的PIC18F2682单片机,并由光耦6N137进行总线隔离;CAN总线收发器采用MCP2551。

  PIC18F2682与射频芯片nRF2401之间通过标准SPI接口SCK、SDI、SDO来完成 ,这样可以大大提高发送速率。对nRF2401配置控制使能CS和接收、发送使能CE分别由RB4和RB5进行控制。当nRF240l接收到数据包时,DRl将被置高电平,因此PICl8F2682通过查询 INT0的状态可以判断是否接收到数据。

  2.2.2 接收端电路原理

  图4是系统接收端电路原理。由于TMU3100由PC供电,而PC机USB接口所提供的电压VDD干扰较大,故对VDD进行了π滤波。

  由于TMU3100没有SPI模块,故可以通过PB[1]、PB[0]按照SPI协议与nRF2401的SPI口来进行通信。对nRF2401配置控制使能CS和接收、发送使能CE分别由KSO[3]和KSO[13]控制。nRF2401接收到数据包后,DRl将被置高电平,因此TMU3100可以通过查询KSl6的状态判断足否接收到数据。

  3 软件设计

  系统的软件设计包括发射端软件设计、接收端软件设计和PC端软件设计。

  3.1 发射端软件设计

  发射端流程如图5所示。软件设计主要实现两项功能:是实现CAN总线上数据的采集;第二是实现将采集后的数据通过射频进行发射。

  上电后,首先对CAN模块进行初始化。然后初始化nRF2101,并与接收端建立连接。当发送完CAN数据后没有收到ACK信号时,就跳频;然后通知发送端准备接收重发的CAN数据,直到接收到ACK信号。

  为了防止空中干扰,采用了自动跳频的空中协议,即无论是否接收到ACK信号都进行跳频,因此可以防止某个频段的强干扰,进而降低误码率。

  3.2 接收端软件设计

  接收端软件流程如图6所示。软件设计主要实现两项功能:是实现枚举;第二是实现将接收到的数据通过USB上传到PC。上电后,首先完成对TMU3100 的配置,并与PC机枚举;如果是 CAN数据包,则向发射端返回ACK信号并跳频,然后将接收到的数据通过USB传至PC;如果是重传命令,则先跳频,然后置重传标志,表示下个数据包是重传的数据包。

  TMU3100被配置为标准HID类,这样就不用为设备开发驱动程序,而是使用Windows提供的标准HID类驱动程序。

  3.3 PC端软件设计

  PC端软件由应用程序和设备驱动程序组成。Windows为标准USB没备提供了完善的内置驱动,本系统采用Windows自带的HID类驱动,只要将 TMU3100配置为HID类,即可完成与PC机的通信。这省去了开发设备的驱动程序,极大地简化了上位机软件的开发。

  上位机的应用程序首要实现的功能是,要实现对TMU3100端点的读写,用VC++语言编写,可以把USB设备当成文件来操作。用CreateFiile ()函数获得USB句柄,为读访问或写访问打开指定端点。用DeviceControl()来进行控制操作,用ReadFile()从指定端点读取数据,用WriteFile()向端点写入数据。

  当CAN总线上的数据被采集到PC后,就可以进行故障诊断了。故障诊断代码是依照KWP2000应用层规定的故障代码设计的,是目前国际上通用的,现将其应用于CAN的应用层,将来可以用全新的CAN上层协议取代。故障诊断代码定义在SSF14230中。SAE J1979中,由车辆制造商或系统供应者定义的服务标志符数值的不同范围,如表1所列。

  此表中以十六进制数表示的服务标志符,同数据链路层中数据字节内的SID服务识别字节对应。不同的SID值代表不同的服务请求,故障诊断程序必须符合此应用层标准,才能识别不同的十六进制代码所代表的不同的故障信息。

  4 结论

  本文设计的2.4G无线车载CAN总线故障诊断仪,由于采用了自动跳频的空中协议,所以误码率几乎接近零,在14 m内仍能进行可靠的工作。系统使用国际上通用的诊断代码,使程序具有通用性和实用性;以PC作为硬件平台,无需专门开发硬件平台,可大大降低开发成本并且易于实现设备的升级和维护;使用USB接口和2.4G无线通信,具有即插即用、不受空间限制、数据传输实时性强的特点。


  
关键词:车载

版权与免责声明

凡本网注明“出处:维库电子市场网”的所有作品,版权均属于维库电子市场网,转载请必须注明维库电子市场网,https://www.dzsc.com,违反者本网将追究相关法律责任。

本网转载并注明自其它出处的作品,目的在于传递更多信息,并不代表本网赞同其观点或证实其内容的真实性,不承担此类作品侵权行为的直接责任及连带责任。其他媒体、网站或个人从本网转载时,必须保留本网注明的作品出处,并自负版权等法律责任。

如涉及作品内容、版权等问题,请在作品发表之日起一周内与本网联系,否则视为放弃相关权利。

上传BOM文件: BOM文件
*公司名:
*联系人:
*手机号码:
QQ:
应用领域:

有效期:
OEM清单文件: OEM清单文件
*公司名:
*联系人:
*手机号码:
QQ:
有效期:

扫码下载APP,
一键连接广大的电子世界。

在线人工客服

买家服务:
卖家服务:

0571-85317607

客服在线时间周一至周五
9:00-17:30

关注官方微信号,
第一时间获取资讯。

建议反馈

联系人:

联系方式:

按住滑块,拖拽到最右边
>>
感谢您向阿库提出的宝贵意见,您的参与是维库提升服务的动力!意见一经采纳,将有感恩红包奉上哦!