汽车UDS诊断教程 ISO15765(六)
ISO15765-2是什么?包含哪些内容?
接上一节了解具体数据链路层的使用
数据链路层接口服务
L_Data.request
该请求服务需要通过<Idetifier>标识,将<Data>数据映射到指定的数据链路层单元。
<Idetifier>标识需提供参照指定的访问格式发送<Data>数据:
L_Data.request(
<Identifier>
<DLC>
<Data>
)
L_Data.confirm
该确认服务用于确认L_Data.request请求指定的<Identifier>服务的完成,参数<TransferStatus>提供服务请求的状态。
L_Data.confirm(
<Identifier>
<TransferStatus>
)
L_Data.indication
该指示服务指示数据链路层到相邻上层的事件并通过<Identifier>标识发送<Data>数据。
L_Data.indication (
<Identifier>
<DLC>
<Data>
)
数据链路层服务参数
下列所示数据链路层服务参数在ISO 11898-1中定义。
<Identifier>: CAN 标识
<DLC>: 数据长度码
<Data>: CAN帧数据
<TransferStatus>: 发送状态
映射到N_PDU域
地址格式
网络层数据交互有三种地址格式的支持:标准,扩展和混合。不同的地址格式需要不同数据长度的CAN帧对包含数据的地址信息进行打包。因此,选择单个CAN帧的数据长度依赖于地址格式类型的选取。
标准地址
对于N_SA, N_TA,N_TAtype,一个特定的CAN标识符被分配。N_PCI和N_Data安置在CAN帧的数据域。如表。
N_PDU类型 |
CAN标识 |
CAN帧数据域 |
|||||||
字节1 |
字节2 |
字节3 |
字节4 |
字节5 |
字节6 |
字节7 |
字节8 |
||
单帧(SF) |
N_AI |
N_PCI |
N_Data |
||||||
首帧(FF) |
N_AI |
N_PCI |
N_Data |
||||||
连续帧(CF) |
N_AI |
N_PCI |
N_Data |
||||||
流控帧(FC) |
N_AI |
N_PCI |
N/A |
标准混合地址
标准混合地址是标准地址的子格式,也就是映射到CAN标识的地址信息更多一层定义。在上述标准通信,N_AI和CAN标识之间打开。
对于标准混合通信只允许有29bit的CAN标识。N_PCI和N_Data放在CAN帧数据域。
表标准混合地址,N_TAtype = 物理的
N_PDU类型 |
29bitCAN标识,位地址 |
CAN数据域位地址 |
|||||||||||||
28…26 |
25 |
24 |
23…16 |
15 |
8 |
7…0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
|
单帧(SF) |
110(bin) |
0 |
0 |
218(dec) |
N_TA |
N_SA |
N_PCI |
N_Data |
|||||||
首帧(FF) |
110(bin) |
0 |
0 |
218(dec) |
N_TA |
N_SA |
N_Data |
||||||||
连续帧(CF) |
110(bin) |
0 |
0 |
218(dec) |
N_TA |
N_SA |
N_PCI |
N_Data |
|||||||
流控帧(FC) |
110(bin) |
0 |
0 |
218(dec) |
N_TA |
N_SA |
N_PCI |
N/A |
表 标准混合地址,N_TAtype = 功能的
N_PDU类型 |
29bitCAN标识,位地址 |
CAN数据域位地址 |
|||||||||||||
28…26 |
25 |
24 |
23…16 |
15 |
8 |
7…0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
|
单帧(SF) |
110(bin) |
0 |
0 |
219(dec) |
N_TA |
N_SA |
N_PCI |
N_Data |
|||||||
首帧(FF) |
110(bin) |
0 |
0 |
219(dec) |
N_TA |
N_SA |
N_Data |
||||||||
连续帧(CF) |
110(bin) |
0 |
0 |
219(dec) |
N_TA |
N_SA |
N_PCI |
N_Data |
|||||||
流控帧(FC) |
110(bin) |
0 |
0 |
219(dec) |
N_TA |
N_SA |
N_PCI |
N/A |
扩展的地址
对于N_SA, N_TA,N_TAtype,一个特定的CAN标识符被分配。N_TA安置在CAN帧数据域第一个字节,N_PCI和N_Data安置在CAN帧数据域剩下的字节。
表 N_PDU参数到CAN帧的映射——扩展地址
N_PDU类型 |
CAN标识 |
CAN帧数据域 |
|||||||
字节1 |
字节2 |
字节3 |
字节4 |
字节5 |
字节6 |
字节7 |
字节8 |
||
单帧(SF) |
N_AI,无N_TA |
N_TA |
N_PCI |
N_Data |
|||||
首帧(FF) |
N_AI,无N_TA |
N_TA |
N_PCI |
N_Data |
|||||
连续帧(CF) |
N_AI,无N_TA |
N_TA |
N_PCI |
N_Data |
|||||
流控帧(FC) |
N_AI,无N_TA |
N_TA |
N_PCI |
N/A |
混合地址
29位CAN标识
混合地址是将Mtype设置为远程诊断的地址格式。
下表定义了地址信息(N_AI)到29位CAN标识符的映射机制。主要是目标地址类型(N_TAtype),N_PCI和N_Data安置在CAN帧数据域剩余字节。
表29位CAN标识符的混合地址,N_TAtype=物理的
N_PDU类型 |
29bitCAN标识,位地址 |
CAN数据域位地址 |
||||||||||||||
28…26 |
25 |
24 |
23…16 |
15 |
8 |
7…0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
||
单帧(SF) |
110(bin) |
0 |
0 |
206(dec) |
N_TA |
N_SA |
N_AE |
N_PCI |
N_Data |
|||||||
首帧(FF) |
110(bin) |
0 |
0 |
206(dec) |
N_TA |
N_SA |
N_AE |
N_PCI |
N_Data |
|||||||
连续帧(CF) |
110(bin) |
0 |
0 |
206(dec) |
N_TA |
N_SA |
N_AE |
N_PCI |
N_Data |
|||||||
流控帧(FC) |
110(bin) |
0 |
0 |
206(dec) |
N_TA |
N_SA |
N_AE |
N_PCI |
N/A |
|||||||
表29位CAN标识符的混合地址,N_TAtype=功能的
N_PDU类型 |
29bitCAN标识,位地址 |
CAN数据域位地址 |
||||||||||||||
28…26 |
25 |
24 |
23…16 |
15 |
8 |
7…0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
||
单帧(SF) |
110(bin) |
0 |
0 |
205(dec) |
N_TA |
N_SA |
N_AE |
N_PCI |
N_Data |
|||||||
首帧(FF) |
110(bin) |
0 |
0 |
205(dec) |
N_TA |
N_SA |
N_AE |
N_PCI |
N_Data |
|||||||
连续帧(CF) |
110(bin) |
0 |
0 |
205(dec) |
N_TA |
N_SA |
N_AE |
N_PCI |
N_Data |
|||||||
流控帧(FC) |
110(bin) |
0 |
0 |
205(dec) |
N_TA |
N_SA |
N_AE |
N_PCI |
N/A |
|||||||
11位CAN标识符
混合地址是将Mtype设置为远程诊断的地址格式。
下表定义了地址信息(N_AI)到11位CAN标识的映射机制。对于N_SA, N_TA,N_TAtype,一个特定的CAN标识符被分配。N_AE安置在CAN帧数据域的第一个字节。N_PCI和N_Data安置在CAN帧数据域的剩余字节。
表混合地址(11位CAN标识符)
N_PDU类型 |
CAN标识 |
CAN帧数据域 |
|||||||
字节1 |
字节2 |
字节3 |
字节4 |
字节5 |
字节6 |
字节7 |
字节8 |
||
单帧(SF) |
N_AI |
N_AE |
N_PCI |
N_Data |
|||||
首帧(FF) |
N_AI |
N_AE |
N_PCI |
N_Data |
|||||
连续帧(CF) |
N_AI |
N_AE |
N_PCI |
N_Data |
|||||
流控帧(FC) |
N_AI |
N_AE |
N_PCI |
N/A |
CAN帧数据长度码(DLC)
DLC参数指定了某一个CAN帧中数据字节长度。本文档不指明数据域中长度的任何要求,而只是在网络层协议数据单元的大小给出暗示。
应用网络层要么将所有CAN帧打包成完整、全部的长度,要么优化DLC以适合网络协议数据单元。
CAN帧数据打包
DLC总是设置为8.如果发送的N_PDU比8短,那么发送方将DLC设置为最大值为8(打包了一些不使用的数据字节)。这些会在SF,FC帧或拆分信息的最后一个CF帧中会出现。
DLC参数由发送方设置并由接收方决定网络层处理的每一CAN帧的数据字节个数。DLC参数无法用于决定信息长度;该信息应该在信息的开始从N_PCI的信息中提取。
CAN帧数据优化
DLC不总是为8.如果发送的N_PDU比8 短,那么发送方会通过缩减CAN帧到只包含N_PDU占有的字节数(不对无用的数据字节打包)来优化CAN总线负载。CAN帧的优化只能针对SF,FC帧或拆分信息的最后一个CF帧。
DLC参数由发送方设置并由接收方决定网络层处理的每一CAN帧的数据字节个数。DLC参数无法用于决定信息长度;该信息应该在信息的开始从N_PCI的信息中提取。
数据长度码出错处理
依赖于N_PCI的值,网络层可计算一个接收到的CAN帧中CAN DLC最小期待的值。
接收到的CAN帧中DLC的值比期待的值要小,(使用打包CAN帧时比8要小或者比网络协议数据单元优化后指示的值要小)网络层应该忽略并不做任何更多的操作。
汽车UDS诊断教程 ISO15765(一)
汽车UDS诊断教程 ISO15765(二)
汽车UDS诊断教程 ISO15765(三)
汽车UDS诊断教程 ISO15765(四)
汽车UDS诊断教程 ISO15765(五)
如需获取更多资料可以关注公众号“Auto笔记”,其分享汽车电子行业的最新资讯,及开发笔记、学习笔记等相关经验。关注公众号,回复“iso15765”,获取相应文档。
汽车UDS诊断教程 ISO15765(六)相关推荐
- 汽车UDS诊断教程 ISO15765(十)
地址结构 概述 目标地址及源地址都编码在 29 位 CAN 标识符中,并且每个长度为 11 位. 地址的定义 一个地址包含两个部分 a) 网络地址 网络地址部分包含第一个连续的位"X&quo ...
- 汽车UDS诊断详解及Vector相关工具链使用说明——2.3.1 故障码(DTC)格式详解
1. 概述 存储数据传输功能单元其实就是读取故障码信息和清除故障码两个服务.我们本文先来看一下我们一直在说的故障码的格式是怎样的. 我们通常把诊断分成两种,我们之前一直在讲的UDS诊断属于增强型诊断, ...
- 汽车UDS诊断之通过标识符写入数据服务(0x2E)深度剖析
WriteDataByIdentifier就是通过标识符写入数据服务,这里的标识符(ID)指的是数据标识符,也就是我们经常说的DID. 目录 1.英文术语 2.缩写表 3.服务描述 4.请求消息定义 ...
- 汽车UDS诊断详解及Vector相关工具链使用说明——2.1.1 诊断和通讯管理功能单元概述
从本章开始,会为大家详细讲解UDS中常用的诊断服务. 标准中把UDS所有诊断服务分为了以下几个部分: 诊断和通信管理功能单元 数据传输功能单元 传输储存的数据功能单元 输入输出控制功能单元 远程激活例 ...
- UDS 诊断教程 (二)
UDS 定义的诊断服务从逻辑来说分为以下几类: 1. Diagnostic and Communication Management (诊断和通信管理) 2. Data Transmission (数 ...
- UDS 诊断教程(一)
UDS 由 ISO-14229系列标准定义,ISO 14229-1 定义了诊断服务,不涉及网络及实 现,只有应用层的内容.而 ISO 14229-3则定义了 UDS 在 CAN总线上的实现. 诊断通信 ...
- 汽车UDS诊断之诊断设备在线服务(0x3E)深度剖析
TesterPresent就是诊断设备在线服务,它是最简单的一个诊断服务. 诊断设备在线 服务 描述 TesterPresent 客户端向某服务端请求来确认此服务端是否在线,客户端有没有跟服务端连接上 ...
- 汽车UDS诊断详解及Vector相关工具链使用说明——6.1 使用DiVa进行诊断自动化测试
1. Diva软件简介 Diva是一个诊断测试脚本自动生成工具,输入是CANdelaStudio制作的CDD或ODX文件,经过Diva配置,自动生成诊断测试工程和脚本,可以导入CANoe软件进行诊断自 ...
- 汽车UDS诊断详解及Vector相关工具链使用说明——2.1.3 初步了解CDD(以10服务为例)
我们前一篇文章详细讲了诊断会话控制服务10服务,这篇文章来讲一下如何在CDD文件中配置这个服务和相关的诊断会话状态等内容. 具体包括: 服务属性设置 服务请求和响应格式设置 参数设置 否定响应码设置 ...
最新文章
- 蓝凌ekp开发_蓝凌EKP8.0产品白皮书(简).doc
- 如何改变UITableViewCell的选中样式(颜色)?storyboard上cell的selection不可用?
- aop简介-aop的底层实现
- gruntjs开发实例
- Linux下CMAKE编译jsoncpp,使用CMake引入jsoncpp
- tda7294参数引脚功能_电容在电路中的几种功能
- Python标准库--time模块的详解
- Anbox之源码编译(一)
- 暴汗~莫明其妙收到一张汇款单......
- 《模拟电子技术》清华大学华成英教授主讲
- 超图 三维 GIS 技术白皮书
- 互动3D网站已触手可及
- 蜂鸣器干扰通讯_提高蜂鸣器响度和降低蜂鸣器及驱动电路干扰电源的电路的制作方法...
- QGraphicsItem绘制重叠区域
- mysql笔试题18道
- eMMC Partition
- 左右两侧浮动广告代码
- 领域驱动设计理论实践
- 毫秒和微秒分别和秒怎么换算?
- 微信公众号客服功能如何开通?