本文提出了一种根据车载CAN总线毛病确诊仪规划方案。本方案本钱低价,携带方便,具有很强的灵活性与适应性。
1 方案规划
体系总体规划框图如图l所示。体系分为发射端和接纳端两部分。
因为选用射频技能,使轿车CAN总线数据收集部分和CAN总线数据确诊部分得以别离,无需连线,不受空间场所约束,装置携带方便。按照ISO有关规范, CAN总线传输速率最高可达1 Mbps;但因为轿车内部特别环境,车载CAN总线速率一般在250 kbps。本体系中射频速率最高可达l Mbps,能够很好地满意数据传输要求。
发射端选用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 发射端电路原理
图3是体系发射端电路原理。CAN总线接口运用Microchip公司内置CAN模块的PIC18F2682单片机,并由光耦6N137进行总线阻隔;CAN总线收发器选用MCP2551。
PIC18F2682与射频芯片nRF2401之间经过规范SPI接口SCK、SDI、SDO来完结 ,这样能够大大提高发送速率。对nRF2401装备操控使能CS和接纳、发送使能CE分别由RB4和RB5进行操控。当nRF240l接纳到数据包时,DRl将被置高电平,因而P%&&&&&%l8F2682经过查询 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机枚举;枚举成功后就对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无线通讯,具有即插即用、不受空间约束、数据传输实时性强的特色。