UDS诊断-2A服务讲解及配置实战

1.读取数据(周期标识符)2A服务

此服务允许诊断工具请求读取ECU中由一个或多个周期数据标识符(periodic Data Identifier)标识 的周期发送的数据记录值。

客户端请求报文中包含了一个或者多个 1 字节型的周期标识符(periodicDataIdentifier)的值,其标识了在服务端所维护的数据记录。周期标识符(periodicDataIdentifier)是数据标识符(DID)的低字节,0xF200 - 0xF2FF 范围的 DID,被用来表示周期标识符,比如数据标识符(DID) 0xF2E3 中周期标识符(periodicDataIdentifier) 为 0xE3。

服务请求报文格式:

参数 periodicDataIdentifier (#1 to #m)标识了客户端正在请求服务端的数据记录,单个请求报文中可以请求多个 periodicdataidentifier。该参数 仅包含 DID 的低字节即可。例如请求 0xF2E3 的数据,该参数为 0xE3。

参数 transmissionMode 标识了服务端要使用的请求 periodicDataIdentifiers 的传输速率,其传输速率详见下表。

服务响应包括初始响应、周期性数据发送: 初始响应:

 周期性数据发送:

2.配置实战

例如 2A 服务的需求如下:支持 2A 服务,2A 服务不需要安全解锁访问,也不需要在会话下访问;DID 0xF2F4 属于 2A 服务,其数据长度为 2,不需要安全解锁访问,也不需要在会话下访问;2A 服务一次能够 读取的最多的 DID 个数为 2;可以同时调度的周期 DID 最大个数为 5;0x2A 服务 transmissionMode 为 0x03(“sendAtFastRate”) 的 传 输 速 率 为0.1, 0x02(“sendAtMediumRate”) 时 的 传 输 速 率 为 0.2 , 0x01 (“sendAtSlowRate”)时的传输速率为 0.25。配置如下:

2.1DcmDsdServiceTables 的配置

DcmDsdSidTabServiceId 为 0x2A,配置 2A 服务;

DcmDsdSidTabSubfuncAvail 不勾选,不支持抑制响应(没有子服务);

DcmDsdSidTabSecurityLevelRef 不配置,2A 服务不需要安全访问等级;

2.2DcmDspDatas 的配置

DID 的配置如下:

1. DcmDspDataConditionCheckReadFnc,2A 服务条件的判断回调函数,如果该 DID 在 2A 服务需要判断某些条件时,需要配置该回调函数,并在该回调函数填写响应的条件判断,这个目前用不到先不配置。

2. DcmDspDataConditionCheckReadFncUsed ,生成条件判断回调函数,目前用不到配置为false。

3. DcmDspDataReadDataLengthFnc 读取 DID的长度的回调函数,项目目前用不到未配置,

4. DcmDspDataReadFnc 配置读取 DID 信息的回调函数,未配置,目前项目采用RTE方式读取,后续22服务会讲到。

5. DcmDspDataSize 为 2,该 DID 的数据长度为 2 字节;

6. DcmDspDataType 为 UINT8,目前只支持 UINT8 数据类型;

7.DcmDspDataUsePort:目前未把DID存储到NVM中,因此配为USE_DATA_SENDER_RECEIVER

其余未用到的可不配置。

2.3DcmDspDids 的配置

1. DcmDspDidIdentifier:就是 DID 号。

2. DcmDspDidUsePort:目前的版本好像只支持 USE_DATA_ELEMENT_SPECIFIC_INTERFACES 类型。

3. DcmDspDidInfoRef:选择2.4中新建的 DcmDspDidInfo。

2.4DcmDspDidInfos 的配置

这个配置就比较简单,主要是配置DID是否支持读写,以及配置安全等级和支持的会话模式。

2.5DcmDspPeriodicTransmission 的配置

1. DcmDspPeriodicTransmissionFastRate 为 0.1,0x2A 服务 transmissionMode 为 0x03(“sendAtFastRate”) 时的传输速率为 0.1。

2. DcmDspPeriodicTransmissionMediumRate 为 0.2,0x2A 服务 transmissionMode 为 0x02(“sendAtMediumRate”)时的传输速率为 0.2。

3. DcmDspPeriodicTransmissionSlowRate 为 0.25,0x2A 服务 transmissionMode 为 0x01 (“sendAtSlowRate”) 时的传输速率为 0.25

 

2.6DcmDslProtocolRow的配置

配置 DcmDslProtocolRow,注意 DcmDslProtocolTransType 必须选择 Type2,这个是依据14229协议中当选择2A服务时,必须选择type2,数据发送必须使用独立的pdu。

到此,2a服务的配置就基本结束了,本服务引入did概念,后续也会讲到,大家快关注我吧,持续给大家带来高质量的文章,谢谢各位,欢迎大家和我交流哟!

  • 15
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值