基于CAN总线的汽车诊断协议UDS(ECU底层模块移植开发)

本文档详细介绍了如何基于CAN总线的UDS标准开发汽车诊断模块,包括模块设计思路、接口配置、安全算法及诊断服务配置等,旨在指导开发人员快速构建满足车厂需求的诊断功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、意义
为了指导开发工程师,正确的使用诊断模块,快速开发出满足车厂要求的诊断功能。

二、诊断模块介绍

此诊断模块根据ISO-14229-1文档,并结合部分车厂的文档进行开发,使用面向对象的思路进行设计,将模块需要处理的所有事情封装在模块内部,留出模块处理过程接口和配置接口供调用接口的工程师使用。通过调用配置接口,可以配置我们想要的功能。通过调用处理过程接口,诊断模块便能提供诊断服务,无需其他操作,便能实现诊断功能,开发起来方便快捷。

使用过程中的复杂之处在于配置,需要根据具体项目的诊断需求进行具体配置。以下详细介绍。

三、接口与配置说明

1类型定义

1)、安全等级定义

typedef enum{

       LEVEL_ZERO= 7,//安全等级0,当一个服务不需要安全解锁时,使用此安全等级。

       LEVEL_ONE= 1,//安全等级1,当一个服务可以在安全等级1时,使用此安全等级。

       LEVEL_TWO= 2,//安全等级2,当一个服务可以在安全等级2时,使用此安全等级。

       LEVEL_THREE= 4,//安全等级3,当一个服务可以在安全等级3时,使用此安全等级。

LEVEL_FOUR = 8,//安全等级4,工厂模式会话使用此安全等级,用户零部件商下线配置。

       LEVEL_UNSUPPORT= 0,//不支持,当一个服务在某个会话模式不支持时,使用此等级。

}SecurityLevel;

2)、复位类型,参考ISO-14229-111服务复位类型的定义。

typedef enum{

       HARD_RESET= 1,//硬件复位

       KEY_OFF_ON_RESET= 2,//关开钥匙复位

       SOFT_RESET= 3,//软件复位

       ENABLE_RAPID_POWER_SHUTDOWN= 4,//预留,一般不使用

       DISABLE_RAPID_POWER_SHUTDOWN= 5,//预留,一般不使用

}EcuResetType;

3)、DTC类型定义。

typedef enum{

       ISO15031_6DTCFORMAT=1,

       ISO14229_1DTCFORMAT= 2,

       SAEJ1939_73DTCFORMAT= 3,

}DTCFormatIdentifier;

 

 

 

4)、诊断故障状态定义

typedef enum{

       PASSED,//测试通过

       IN_TESTING,//测试未完成

       FAILED,//测试失败

}DTCTestResult;

5)DID类型定义

typedef enum{

       EEPROM_DID,//静态存储器DID,存储在EEPROM中的DID使用此类型

       REALTIME_DID,//实时DID,存储在RAM中,会实时改变的数据使用此类型

       IO_DID,//输入输出控制DID,需要通过2F服务控制的DID使用此类型

}DIDType;

6)、DID的读写属性

typedef enum{

       READONLY= 1,//只读

       WRITEONLY= 2,//只写

       READWRITE= 3,//可读写

}ReadWriteAttr;

7)、通信控制参数

typedef enum{

       ERXTX,//enableRxAndTx

       ERXDTX,//enableRxAndDisableTx

       DRXETX,//disableRxAndEnableTx

       DRXTX,//disableRxAndTx

       //ERXDTXWEAI,//enableRxAndDisableTxWithEnhancedAddressInformation

       //ERXTXWEAI,//enableRxAndTxWithEnhancedAddressInformation

}CommulicationType;

8)、通信控制的控制对象参数

typedef enum{

       NCM= 1,//application message

       NWMCM,//networkmanage message

       NWMCM_NCM,//applicationand netwrok manage message

}communicationParam;

9)、子功能在会话的支持情况

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值