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要小或者比网络协议数据单元优化后指示的值要小)网络层应该忽略并不做任何更多的操作。
如需获取更多资料可以关注公众号“Auto笔记”,其分享汽车电子行业的最新资讯,及开发笔记、学习笔记等相关经验。关注公众号,回复“iso15765”,获取相应文档。