目录
文章目录
前言
一、OBD II 与UDS的区别/p>
1.OperationCycle
二、开发步骤
1、制作CDD
2、DaVinci 配置
总结
前言
一、OBD II 与UDS的区别/h1>
这里主要介绍在诊断开发上面OBD II 与UDS的区别,此外为了方便描述,下文中用OBD 指代OBD II协议。
1.OperationCycle
Operationcycle是我们在开发诊断时关键的配置项,不同于UDS一般采用的PowerCycle,即上下电为一个周期,OBD有自己专有的Operationcycle—-DrivingCycle简称为DCY。它由法规定义,基于Ignition,开启条件是Ignition ON,但是对于PrimaryEcu来说,还必须接受到来自Master OBD Ecu的DCY qualified信 ,PrimaryECU的DCY才真正开启,而且一旦开始无法停止,只能被同样的触发条件restarted。
简而化之,DCY无需我们判断,只需要接受来自BUS上的Master OBD Ecu的DCY qualified信 就行,通过调用API Rte_Call_opCycle_OBDDrivingCycle_SetOperationCycleState()控制本ECU的DrvingCycle。详情参照Vector 文档MICROSAR DEM_OBD。
2.DTC不同
UDS DTC有3个字节,OBD DTC只有UDS DTC的前2个字节,所以1个event可以对于1UDS DTC和1个OBD DTC,例如 B120500(UDS)和 B1205(OBD)对应同一个诊断event;同时可以多个evnet可以对于1个OBD DTC,例如B120500(UDS)和B120568(UDS)的event对应的OBD DTC就都是B1205(OBD)。
3.服务不同
OBD II 服务一共有10个,从$01-$0A。
1) $01
01服务的功能就是读取PID的值,类似UDS的22服务,PID类似DID,区别在于PID在J1979中详细定义其具体含义,数据长度,数据范围等。
2)$02
02服务的功能是读取冻结帧,类似UDS的19 04读取快照。
3)$03
03服务功能是读取确认故障,类似于UDS读取confirmed DTC
4)$04
04服务用于清除排放相关的DTC,类似UDS 的14服务
5)$05
05服务用于请求氧传感器的检测结果
6)$06
06服务用于请求监控系统的测试结果
7)$07
07服务用于请求当前或者上个周期检测到的排放相关故障码,类似UDS19 02 04读取pending DTC
8)$08
08服务请求控制在线系统或者组件
9)$09
09服务用于读取整车信息,比如VIN码,ECU名字,版本 等信息
10)$0A
0A服务用于读取永久故障码(PDTC)。PDTC是OBD专有的DTC,需要单独存储,它的存储条件是MIL等被点亮,但是必须要等到下一个DCY才能被0A服务读取到
二、开发步骤
开发工具对应CANdelaStudio,Vector DaVinci
1、制作CDD
1.将UDS DTC中支持OBD 的DTC的OperationCycle设置为DEM_OBD_DCY,AgingCycle设置为DEM_WARMUP,WarningIndicatorBit at Fault设置为supported。
2.在使用的Variant中勾选所需要的OBD服务,并且在服务下面创建所需要的PID,然后在Fault memory中创建OBD DTC并且关联相应的UDS DTC,然后copy到使用的Variant。
3.将制作好的CDD文件导入DaVinci
2、DaVinci 配置
导入CDD文件后,DCM会自动生成相应的服务,无需做什么修改,同时还会生成DCY,WARMUP和IndicatorLamp以及配置的PID接口,把它们map到用于实现OBD功能的SWC即可。
1.在DemGeneral中设置 OBD freezeFrame number和evnet entry permanent number。然后在DemNvRamBlockIds中创建相应的block,选择对应的NV block type,这时会缺少NvRam BlockId ref需要到NVM模块去创建。
2.DemGeneral中创建DemGeneralOBD子项,按照需求选择合适的PDTC和FreezeFrame Behavior
3.创建子项DemPidConfiguraation选择由代码包实现的PID
总结
由于不方便对软件配置截图,所以配置方面介绍的比较粗略,如果配置过程中有疑问可以私信我。
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!