论文部分内容阅读
摘 要:为了实现在线的CAN总线诊断分析,并且能够直观有效检测人为带来的总线标识编码错误,本文给出了一种基于J1939协议的CAN总线诊断系统设计,首先介绍了J1939的参数组PGN、推荐参数编码SPN,然后重点介绍了基于J1939协议的CAN总线诊断系统的软硬件实现方法,选择参数组编码PGN标识位作为诊断的唯一分类标准,经验证所设计的诊断系统能够进行现场CAN总线在线诊断,诊断效果直观有效。
关键词:J1939协议 CAN总线 诊断系统
现有技术中,工程机械电控系统本身的复杂的线束和关联控制增加了故障诊断及维修的难度,各系统(动力、传动、制动等)信息共享效率较低,无法形成有效的数据处理以获得持续工况下的综合诊断。现有技术是安排专业人员选择CAN总线分析设备与软件在电脑上进行操作,现场采集数据,同时连接电脑或将数据转存至电脑载体通过特定软件进行总线分析,操作人员和分析周期都存在一定的不可控因素。为此设计了一款简易直接的基于J1939的CAN总线诊断系统,在装机状态进行在线分析,操作简单,具备独立电源,整个诊断过程通过控制系统的CAN总线预留接口实现,可以灵活选择公有协议部分诊断或私有部分诊断,也可以通过上位机选择特殊信号对某一PGN(参数组编号Parameter Group Number)监测与参数诊断,能够更好地满足不同总线的需求,并且简化了总线的诊断过程,方便及时处理总线故障。
1 J1939协议简介
J1939协议是美国汽车工程师协会SAE发布的以CAN总线为基础的车辆网络串行通信和控制协议,是基于PGN(Parameter Group Number)标识的CAN2.0B的应用层协议。SAE J1939以PGN和SPN的方式具体规定了车辆使用的每个参数的数据长度,数据类型,分辨率和数据范围等。
PGN是一个24位的标识符,包括保留位(R)、数据页位(DP)、PF(PDU格式场)和PS(群扩展场)等要素的。SPN(Suspect Parameter Number)是PG(参数组)中的具体参数的一个编号,而PGN是参数组编号,一个PGN包含了按一定方法分类的一组参数,而每个具体参数又有各自的编号(就是SPN)。
CAN总线网络中的PDU有着不同的来源,它们可以分为PDU1和PDU2两大类,且有着各自的PGN标识,其中指定目的地址类480个,PDU2为全局目的地址8192个,地址范围61440~65535,126976~131071。
下面以发动机部分性能参数为例,举例说明在J1939协议下的PGN与SPN定义与详细参数计算方法表1所示。
发动机的转速:发动机实际转速=原始数*分辨率+偏移量;当转速字节为1F40H时,1FH=31D,40H=64D。若设转速为n,n=32*31+64*0.125+0=1000,则n=1000rpm。其他参数的计算方法与发动机转速的计算方法是相同的,测量值=原始数*分辨率+偏移量。
2 系统硬件设计
根据CAN总线诊断系统的功能要求,选择ARM系列M4内核的32位单片机STM32F407VGT作为控制器,工作频率最大可达168MHz,同时配合选择了满足工程机械相关标准的迪文高清工业串口屏来开发人机界面[1]。CAN总线诊断系统硬件设计框图如图1所示,主要包括:MCU控制单元、电源单元、CAN通信单元、按键输入单元、数据存储单元和LCD显示单元。其中MCU控制单元由以STM32F407VGT为核心的复位电路、时钟电路、电源电路、JTAG调试电路组成的,电源单元由电源充放电转换电路以及电源转换芯片组成。
电源单元包含9V标准供电锂电池组、电源充放电转换电路以及电源转换芯片。数据存储单元为SDIO(安全数字输入输出 Secure Digital Input and Output )接口存储卡,主要用于存储私有协议DBC文件,以及现场诊断总线数据文件。LCD液晶显示单元与按键输入单元组合实现总线参数设置及诊断类型的选择。按键输入单元包含五个按键,分别为上/下设置按键、左/右设置按键、确认键。
3 系统软件设计
本系统按照J1939协议的PGN编碼规则进行诊断,分为CAN总线基本性能诊断以及协议诊断,其中协议诊断包括公有协议和私有协议诊断。公有协议为完全按照SAEJ1939规定的应用层规定直接分析和诊断,私有协议则是按照读入提前写入的DBC协议存储文件后进行分析和诊断[2-3]。
主要显示内容有:诊断类型、详细PGN参数值、故障SPN编码以及故障类型。图2、3、4、5所示,为本系统诊断过程界面示意图,其中,通过按键结合显示屏实现诊断过程;图6所示的为本系统诊断过程软件流程图,依以下步骤执行。
(1)装置上电启动检测诊断指令,进入诊断选择界面,如图2所示。(2)选择CAN-Test基本性能检测,进入基本性能检测界面,主要采集端口电压、总线利用率、错误率、错误帧以及全部PGN编码判定,上传数据、存储并显示。在本实例中,对不符合J1939标准的PGN信息帧,直接显示并报警。(3)选择公有协议诊断,进入公有协议诊断界面,具体如图3所示,采用只听模式侦听总线数据,结合J1939规定协议进行发动机转速、油温、油位、水温等参数的数据上传存储与显示,并对参数进行分析诊断,数据异常则故障报警并显示。(4)选择私有协议诊断,进入私有协议诊断界面,具体如图4所示,可选只听或是应答模式进行总线数据监听,可选单纯编码规范性检测、读存储文件进行全部PGN诊断或是结合按键实现特定PGN诊断图5所示,数据上传存储与显示,并对参数进行分析诊断,数据异常则故障报警并显示。
4 结语
本系统公开的一种可在装机状态进行在线CAN总线诊断的系统,以PGN作为唯一诊断标识,适用于整车使用J1939协议的CAN总线系统,集数据存储、显示、诊断与一体,不仅能够方便快捷地诊断总线基本性能及基本数据故障,还结合协议简化了诊断的过程,现场测试证明效果良好。
参考文献
[1] 饶运涛,邹继军,郑勇芸.现场总线CAN原理与应用技术[M].北京:北京航空航天大学出版社,2003.
[2] 刘胜,李刚炎,胡剑,等.SAE J1939协议在客车车灯控制系统中的应用研究[J].微计算机信息,2007(1):26-28.
[3] 徐建军.基于SAE J1939的发动机监控系统研究[D].江苏大学,2008.
关键词:J1939协议 CAN总线 诊断系统
现有技术中,工程机械电控系统本身的复杂的线束和关联控制增加了故障诊断及维修的难度,各系统(动力、传动、制动等)信息共享效率较低,无法形成有效的数据处理以获得持续工况下的综合诊断。现有技术是安排专业人员选择CAN总线分析设备与软件在电脑上进行操作,现场采集数据,同时连接电脑或将数据转存至电脑载体通过特定软件进行总线分析,操作人员和分析周期都存在一定的不可控因素。为此设计了一款简易直接的基于J1939的CAN总线诊断系统,在装机状态进行在线分析,操作简单,具备独立电源,整个诊断过程通过控制系统的CAN总线预留接口实现,可以灵活选择公有协议部分诊断或私有部分诊断,也可以通过上位机选择特殊信号对某一PGN(参数组编号Parameter Group Number)监测与参数诊断,能够更好地满足不同总线的需求,并且简化了总线的诊断过程,方便及时处理总线故障。
1 J1939协议简介
J1939协议是美国汽车工程师协会SAE发布的以CAN总线为基础的车辆网络串行通信和控制协议,是基于PGN(Parameter Group Number)标识的CAN2.0B的应用层协议。SAE J1939以PGN和SPN的方式具体规定了车辆使用的每个参数的数据长度,数据类型,分辨率和数据范围等。
PGN是一个24位的标识符,包括保留位(R)、数据页位(DP)、PF(PDU格式场)和PS(群扩展场)等要素的。SPN(Suspect Parameter Number)是PG(参数组)中的具体参数的一个编号,而PGN是参数组编号,一个PGN包含了按一定方法分类的一组参数,而每个具体参数又有各自的编号(就是SPN)。
CAN总线网络中的PDU有着不同的来源,它们可以分为PDU1和PDU2两大类,且有着各自的PGN标识,其中指定目的地址类480个,PDU2为全局目的地址8192个,地址范围61440~65535,126976~131071。
下面以发动机部分性能参数为例,举例说明在J1939协议下的PGN与SPN定义与详细参数计算方法表1所示。
发动机的转速:发动机实际转速=原始数*分辨率+偏移量;当转速字节为1F40H时,1FH=31D,40H=64D。若设转速为n,n=32*31+64*0.125+0=1000,则n=1000rpm。其他参数的计算方法与发动机转速的计算方法是相同的,测量值=原始数*分辨率+偏移量。
2 系统硬件设计
根据CAN总线诊断系统的功能要求,选择ARM系列M4内核的32位单片机STM32F407VGT作为控制器,工作频率最大可达168MHz,同时配合选择了满足工程机械相关标准的迪文高清工业串口屏来开发人机界面[1]。CAN总线诊断系统硬件设计框图如图1所示,主要包括:MCU控制单元、电源单元、CAN通信单元、按键输入单元、数据存储单元和LCD显示单元。其中MCU控制单元由以STM32F407VGT为核心的复位电路、时钟电路、电源电路、JTAG调试电路组成的,电源单元由电源充放电转换电路以及电源转换芯片组成。
电源单元包含9V标准供电锂电池组、电源充放电转换电路以及电源转换芯片。数据存储单元为SDIO(安全数字输入输出 Secure Digital Input and Output )接口存储卡,主要用于存储私有协议DBC文件,以及现场诊断总线数据文件。LCD液晶显示单元与按键输入单元组合实现总线参数设置及诊断类型的选择。按键输入单元包含五个按键,分别为上/下设置按键、左/右设置按键、确认键。
3 系统软件设计
本系统按照J1939协议的PGN编碼规则进行诊断,分为CAN总线基本性能诊断以及协议诊断,其中协议诊断包括公有协议和私有协议诊断。公有协议为完全按照SAEJ1939规定的应用层规定直接分析和诊断,私有协议则是按照读入提前写入的DBC协议存储文件后进行分析和诊断[2-3]。
主要显示内容有:诊断类型、详细PGN参数值、故障SPN编码以及故障类型。图2、3、4、5所示,为本系统诊断过程界面示意图,其中,通过按键结合显示屏实现诊断过程;图6所示的为本系统诊断过程软件流程图,依以下步骤执行。
(1)装置上电启动检测诊断指令,进入诊断选择界面,如图2所示。(2)选择CAN-Test基本性能检测,进入基本性能检测界面,主要采集端口电压、总线利用率、错误率、错误帧以及全部PGN编码判定,上传数据、存储并显示。在本实例中,对不符合J1939标准的PGN信息帧,直接显示并报警。(3)选择公有协议诊断,进入公有协议诊断界面,具体如图3所示,采用只听模式侦听总线数据,结合J1939规定协议进行发动机转速、油温、油位、水温等参数的数据上传存储与显示,并对参数进行分析诊断,数据异常则故障报警并显示。(4)选择私有协议诊断,进入私有协议诊断界面,具体如图4所示,可选只听或是应答模式进行总线数据监听,可选单纯编码规范性检测、读存储文件进行全部PGN诊断或是结合按键实现特定PGN诊断图5所示,数据上传存储与显示,并对参数进行分析诊断,数据异常则故障报警并显示。
4 结语
本系统公开的一种可在装机状态进行在线CAN总线诊断的系统,以PGN作为唯一诊断标识,适用于整车使用J1939协议的CAN总线系统,集数据存储、显示、诊断与一体,不仅能够方便快捷地诊断总线基本性能及基本数据故障,还结合协议简化了诊断的过程,现场测试证明效果良好。
参考文献
[1] 饶运涛,邹继军,郑勇芸.现场总线CAN原理与应用技术[M].北京:北京航空航天大学出版社,2003.
[2] 刘胜,李刚炎,胡剑,等.SAE J1939协议在客车车灯控制系统中的应用研究[J].微计算机信息,2007(1):26-28.
[3] 徐建军.基于SAE J1939的发动机监控系统研究[D].江苏大学,2008.