历史上的今天
返回首页

历史上的今天

今天是:2025年04月13日(星期日)

正在发生

2020年04月13日 | 基于CAN总线结合射频和USB实现车载故障诊断仪的设计方案

2020-04-13 来源:单片机与嵌入式系统应用

设计一款基于2.4G射频的车载CAN总线故障诊断仪,详细介绍其工作原理及系统硬件电路,最后分别阐述接收端、发射端和PC端的软件模块。


该方案采用自动跳频的2.4G空中协议,经测试统计误码率保持在有效范围之内,在14m内仍能正常工作。采用USB作为接收端和PC接口,保证了系统的即插即用及数据的高速传输。


控制器局域网络CAN(Controller Area Network)为汽车内部各种复杂的电子设备、控制器、测量仪器等提供了统一数据交换渠道,已得到广泛的应用。目前,太多数汽车部件都提供了CAN总线通信接口。


在当今的中高档汽车中,都采用了CAN总线技术。针对车载CAN总线会出现的故障.结合射频和USB的优点,依靠KWP2000应用层规定的故障代码,本文提出了一种基于车载CAN总线故障诊断仪设计方案。本方案成本低廉,携带方便,具有很强的灵活性与适应性。


1 、方案设计


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

基于CAN总线结合射频和USB实现车载故障诊断仪的设计方案

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


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


2、 硬件实现


2.1 系统所用芯片简介


2.1.1 nRF2401芯片


nRF240l是单片射频收发芯片,工作在2.4~2.5GHz ISM频段;内置频率合成器、功率放大器、晶体振荡器、调制器和标准SPI等功能模块;输出功率和通信频道可通过软件进行配置,共有125个频道可使用,而且最高速率可达l Mbps。芯片具有1.9~3.6 V宽工作电压,工作能耗非常低。当以一5 dBm的功率发射时,工作电流只有10.5 mA;接收时,工作电流只有18 mA。

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


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


2.1.2 TMU3100芯片


TMU3100是台湾Tenx公司2005年推出的RISC内核的单片机。它嵌入了完全兼容USBl.1协议的USB控制器,并且提供了低速USB接口和3个端点,其中1个控制输入/输出端点和2个中断输入端点。


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 发射端电路原理


是系统发射端电路原理。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 接收端电路原理


由于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机枚举;枚举成功后就对nRF2401进行配置,并与发射端建立连接。当接收到数据包后,首先判断是CAN数据还是重传数据命令。如果是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无线通信,具有即插即用、不受空间限制、数据传输实时性强的特点。


推荐阅读

史海拾趣

Avery Dennison公司的发展小趣事

Avery Dennison与众多知名企业建立了紧密的合作关系,共同推动行业发展。例如,公司与利郎服饰的合作就是一个典型的例子。通过提供Embelex™系列装饰标、厂内打印解决方案、RFID解决方案以及3D标签打样数字化解决方案等,Avery Dennison助力利郎实现了数字化转型和业务扩张。这种合作模式不仅提升了双方的市场地位,也为整个服装行业带来了创新动力。

Chiplus Semiconductor Corp公司的发展小趣事

随着全球半导体市场的不断扩大,Chiplus也加快了市场拓展的步伐。公司不仅在日本、欧盟、美国和泛太平洋亚洲地区建立了稳定的客户群体,还积极开拓新兴市场,提升品牌知名度和影响力。同时,Chiplus还加强了与全球知名企业的合作,通过技术合作、产业链协同等方式,共同推动半导体行业的发展。

德索五金(dosinconn)公司的发展小趣事

发展历程:2007年,公司率先在业内引入了ERP系统,实现了企业高效智能的生产管理、财务管理、物流管理和决策管理。这一创新举措极大地提升了客户订单的响应速度,使德索五金电子步入了数字化信息时代。

成果与影响:ERP系统的引入使德索五金电子的管理水平迈上了新的台阶,为企业的快速发展提供了有力支持。

EDSYN公司的发展小趣事

2014年,Econais宣布推出新一代IEEE802.11b/g/n Wi-Fi模块——EC19D01。这款模块是物联网领域的一次重大突破,它采用了系统级封装(SiP)技术,实现了世界上最小、最容易集成和最低待机功耗的Wi-Fi模块。EC19D01的推出,进一步巩固了Econais在超低功耗物联网微型Wi-Fi模块领域的领先地位。

CUI公司的发展小趣事

在全球化的背景下,电子行业中的CUI技术也呈现出国际合作与竞争并存的局面。一些国内企业通过与国际知名企业的技术合作,引进先进的CUI生产线和工艺,提高了自身的技术水平和市场竞争力。同时,国际市场的竞争也促使国内企业不断创新,寻求差异化的发展道路。

FTCAP Fischer & Tausche Capacitor Group公司的发展小趣事

随着环保意识的逐渐提升,电子行业开始寻求更加环保的CUI材料和生产工艺。一些公司投入大量研发资金,成功开发出低挥发性有机化合物(VOC)含量的CUI涂料,不仅降低了生产过程中的环境污染,还提高了产品的环保性能。

问答坊 | AI 解惑

Cadence工具简介

1,逻辑设计与验证 工具 * 逻辑仿真工具: Cadence NC-Verilog, Verilog-XL, NCSim, Simvision Waveform Viewer* 综合工具: Cadence BuildGates* 形式验证工具: VerplexLEC 2.综合布局布线 工具SoC Encounter—可应用于如90nm及其以下的SOC设计;△ ...…

查看全部问答>

如何给ORCAD中的电容赋初值阿?

:( 刚学用orcad的capture画一个简单的chua电路,可是电路中没有激励,只能给电容和电感赋电压和电流的初值,哪位大虾知道怎么给电容和电感赋初值? 十分感谢啦,我是刚刚学习orcad,很多都不太明白。哪位高手帮忙解决一下呗?…

查看全部问答>

最大功率点跟踪

本帖最后由 paulhyde 于 2014-9-15 09:28 编辑 A组的同学注意了 分享点资料  …

查看全部问答>

一个测试工程师的反思

我一个刚刚出道不长的助理测试工程师,嘿嘿,暂时是这个职位。但我关注东西,却不仅限这个职务本身。作为一个刚刚应届毕业大学本科生,确实我没什么经验,虽然我可能曾经做过很多职业。大学最后2年多时间中我自己先后开过公司,做过研发,做过UI, ...…

查看全部问答>

利用Wi-Fi网状网部署无线IP语音传输

对无线数据网络来说,语音就是“杀手级应用”。而高性能的Wi-Fi网状网系统是杀手级IP无线网络。不过,不是所有的网状网都是一模一样的。随着无线网状网越来越流行—几乎每天都会有人宣布新部署的公共和专用网络,添加语音应用的商业需求就需要网络 ...…

查看全部问答>

申请一片LPC1114做驱动器实验

申请一片LPC1114做驱动器实验, ,预备做三闭环驱动器~带SCI,PWM,步进控制模式     资源规划及实现:资源需求:ENCODER编码器接口   一路PWM输出      一路PWM信号输入(步进信号输入)  一 ...…

查看全部问答>

rt73模块占用率

加载好了rt73模块后,一直ping无线路由,开始能够ping通,然后关闭无线路由器。过10~20分钟后,重新启动无线路由器,但是此时已经不能ping通无线路由器,并且rt73 模块占用cpu 50%左右。然后必须重启。 另外,从3G切换到无线,当电脑和无线路由 ...…

查看全部问答>

VC2005嵌入式利用cximage库打开jpg图象,在exe里面可以,完全相同的代码移植到ocx里面,这个ocx在wm5的pda里面注册不了,有人遇到类似的问

VC2005嵌入式利用cximage库打开jpg图象,在exe里面可以,完全相同的代码移植到ocx里面,这个ocx在wm5的pda里面注册不了,有人遇到类似的问题吗?…

查看全部问答>

ARM嵌入式开发板求教

本人想学习ARM嵌入式开发,想买一个开发板。 求达人推荐, 我希望 1:最重要的参考资料多,开发工具软件方便,多,免费。 2:开发板功能强大的。 另外新手学什么操作系统好?…

查看全部问答>

我想用单片机做个定时测温控制系统,请高手指导一下

我想用单片机做个定时测温控制系统,请高手指导一下…

查看全部问答>