UDS诊断(ISO14229-1) 28服务

功能简介

28服务,即 CommunicationControl(通信控制)服务,用来开启/关闭 ECU 报文的传输和/或接收

应用场景

常见场景:

  • 存在某些特殊的测试场景,比如只希望接收或者发送对应的网络管理与应用报文;
  • 绝大多数情况下应用在刷写ECU的过程中,即在预编程条件下执行28服务功能寻址便可以抑制总线应用报文与网络管理报文的发送与接收,以便减少网络总线负载,提高ECU下载效率,同时刷写结束后也要执行28服务使能对应控制报文的发送与接收,在此过程中一般会配合85服务一起使用

通信控制基本原理

28服务的通信控制过程会经过如下几个AUTOSAR BSW模块进行处理,然后完成最终的通信控制,具体步骤如下:

  • Tester发送28通信控制服务请求给到Server,Server会将该诊断报文请求传递至DCM模块;
  • DCM模块调用28服务对应的上层应用函数首先进行输入参数的基本校验,校验无误之后然后传递相关控制模式请求至BswM模块;
  • BswM模块根据静态配置的规则来实现对应请求中的通道通信状态控制;(常见的模式控制为3X4 = 12种)

常见的12种的通信控制模式:

应用报文 enableRxAndTx enableRxAndDisableTx disableRxAndEnableTx disableRxAndTx
应用报文 28 00 01 28 01 01 28 02 01 28 03 01
网络管理报文 28 00 02 28 01 02 28 02 02 28 03 02
应用报文 + 网络管理报文 28 00 03 28 01 03 28 02 03 28 03 03

在这里插入图片描述

可以看到28诊断服务经过DCM,BswM,Com,NM完成整个上述12种通信模式的控制。其中蓝色表示的部分为最终完成通信控制的函数体。

请求和响应

1、请求

基本格式

归纳起来,诊断的request格式无非以下两种:

<SID> + <Sub-function> + <Parameter>

<SID> + <Parameter>

即有无sub-function的区别。Parameter可以是DID,可以是输入参数,可以是自定义的值,字节数视具体要求而定。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2、子功能

子功能参数定义(1字节数据):

  • Bit7:抑制肯定响应消息指示位suppressPosRspMsgIndicationBit
    • 0=False:需要肯定响应
    • 1=True:禁止肯定响应
  • Bit6-0:子功能参数值(0x00~0x7F)

在这里插入图片描述
在这里插入图片描述

3、肯定响应

基本格式:

<SID + 0x40> + <Sub-function> + <Parameter>

<SID + 0x40> + <Parameter>

要注意,第一个字节是由SID和0x40的和构成。这里的Parameter项是optional的,具体要看协议规定。
在这里插入图片描述

在这里插入图片描述

4、否定响应

基本格式:

<0x7F> + <SID> + <NRC>

看起来比较简单,格式比较固定,只要是Negative Response,第一字节就是0x7F,第二字节照抄原来的SID,第三个字节是错误响应码,指示具体错误响应的原因
在这里插入图片描述

报文示例

在这里插入图片描述
在这里插入图片描述

UDS中常用 NRC

在这里插入图片描述

参考

  • https://zhuanlan.zhihu.com/p/454809936

最近更新

  1. TCP协议是安全的吗?

    2024-01-02 18:12:01       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-01-02 18:12:01       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-01-02 18:12:01       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-01-02 18:12:01       18 阅读

热门阅读

  1. git环境配置

    2024-01-02 18:12:01       39 阅读
  2. Docker镜像制作之ZLMediakit镜像制作

    2024-01-02 18:12:01       42 阅读
  3. border设置小于1px,在ios上面不显示的问题

    2024-01-02 18:12:01       37 阅读
  4. 常见的排序算法解析实现

    2024-01-02 18:12:01       29 阅读
  5. 利用进制转换(轻松过期末考试)

    2024-01-02 18:12:01       39 阅读
  6. 三维重建 3D Gaussian Splatting:实时的神经场渲染

    2024-01-02 18:12:01       43 阅读
  7. C++递归/递归函数(详细讲解)

    2024-01-02 18:12:01       39 阅读
  8. C++拷贝构造函数介绍

    2024-01-02 18:12:01       34 阅读
  9. hive多分隔符外表支持

    2024-01-02 18:12:01       33 阅读
  10. vue解决执行打包之后打开页面空白问题

    2024-01-02 18:12:01       38 阅读
  11. 如何用GPT制作技术路线图?

    2024-01-02 18:12:01       35 阅读