ISO 15765-2(2004)
道路车辆——控制局域网络诊断——
第 2 部分:
网络层服务
ISO 15765 协议,定义了“道路车辆——局域网控制器(CAN)诊断”,包含如下几个
部分:
——第一部分:总论。
——第二部分:网络层服务。
——第三部分:统一诊断服务具体的执行
——第四部分:排放相关系统的要求
概述
ISO15765-2 的协议,定义车载诊断系统网络层要求,提供在 CAN 数据链路层(ISO11898
定义)上运行。虽说它最初设计是用在诊断系统上的,它同样适用于其它需要网络层协议
的 CAN 通信系统上。
为了达到诊断通信要求,ISO15765 协议是基于 ISO/IEC 7498 和 ISO/IEC 10731 的开
放互联系统基本参考模型建立的。该模型将通信系统分为七层,ISO15765 协议映射到该模
型上,分层如下:
——统一的诊断服务(第 7 层),在 ISO 15765-3 中定义。
——网络层(第 3 层),在 ISO 15765-2 中定义。
——CAN 服务层(第 1,2 层),在 ISO 11898 中定义。
如表 1 所示,
开放互联系统
(OSI)分层
诊断应用
应用层
表示层
会话层
传输层
网络层
数据链路层
物理层
表 1——对应 OSI 分层,扩展的及法规要求的 OBD 诊断规定
汽车生产商扩展的诊断服务 法规要求的车载诊断系统
用户定义
ISO 15765-3
N/A
ISO 15765-3
N/A
ISO 15765-2
ISO 11898-1
用户定义
(OBD)
ISO 15031-5
ISO 15031-5
N/A
N/A
N/A
ISO 15765-4
ISO 15765-4
ISO 15765-4
应用层服务是由 ISO 15765-3 按照 ISO 14229-1 和 ISO 15031-5 建立的诊断服务制定
的,但 ISO 15765-3 协议不仅适用于上述的诊断服务项,也适用于大多数的国际标准及汽
车生产商规定的诊断服务。
网络层服务由该部分的 ISO 15765 协议定义,并独立于物理层上的操作,物理层仅仅
是在法规的 OBD 上有规定。
道路车辆——控制器局域网(CAN)的诊断——
第二部分:
网络层
1 范围
这部分 ISO 15765 协议描述了在 ISO 11898 定义的控制其局域网中裁剪的网络协议,
用于满足基于 CAN 的车载网络系统。它是按照 ISO 14229-1 和 ISO 15031-5 建立的诊断服
务制定的,但该部分协议不仅适用于上述的诊断服务项,还适用于车载内部其它的网络通
信。该协议描述的是未经最后确认的的通信。
2 参考的标准
下述的参考文档对于该文档的应用是必不可少的。
ISO 11898-1,道路车辆——控制器局域网(CAN)——第一部分——数据链路层及物理信
号层
ISO/IEC 7498(所有部分),技术信息——开放互联系统——基本参考模型
3 术语,定义和缩略词
为编撰该文档目的,这些术语和定义已在 ISO 7498 中给出,以下缩略词术语同样适用。
BS
CF
confirm
ECU
FC
FF
FF_DL
FS
indication
MType
N_AE
N_AI
N_Ar
N_As
N_Br
N_Bs
数据块大小
连续帧
确认服务
电子控制单元
流控制
首帧
首帧数据长度
流状态
指示服务
信息类型
网络地址扩展
地址信息
网络层时间参数:Ar
网络层时间参数:As
网络层时间参数:Br
网络层时间参数:Bs
N_ChangeParameter
网络层服务项名称
N_Cr
网络层时间参数:Cr
N_Cs
N_Data
N_PCI
网络层时间参数:Cs
网络数据
网络协议控制信息
N_PCItype
网络协议控制信息类型
网络协议数据单元
网络源地址
网络服务数据单元
网络目标地址
网络目标地址类型
网络层无应答的数据段传输服务项名称
网络层
应答服务
接收者
发送者
单帧
单帧数据长度
顺序号
间隔最短时长
N_PDU
N_SA
N_SDU
N_TA
N_TAtype
N_USData
NWL
request
r
s
SF
SF_DL
SN
STmin
4 网络层总览
4.1 概述
该项主要描述网络层总体的功能。该部分的 ISO 15765 协议定义了未最后确认的网络
层通信协议。该协议用于网络节点之间数据交互,例如从一个 ECU 到另一个 ECU,或外部
诊断设备和一个 ECU 之间的通信。如果要传送的数据超过了单个的 CAN 帧长度,则需要提
供拆分的方法。
为描述网络层的功能,它提供给高层的服务项及内部操作必须予以研究。
4.2 网络层提供给高层的服务项
该服务项接口定义了一些由网络层提供使用服务项,例如,数据发送、数据接收及协
议参数设置。
已定义了两种类型的服务:
a) 通信服务项
以下定义的服务项,使发送者最多能发送 4095 个字节的数据。
1)N_USData.request
该服务项用于请求发送数据。如果有必要的话,网络层拆分这些数据。
2)N_USData_FF.indication
该服务项用于通知上层被拆分的信息的首帧的接收。
3)N_USData.Indication
该服务项用于提供接收的数据至上层。
4)N_USData.comfirm
该服务项用于确认应答给上层,表示请求服务项已经被执行(成功执行或不成功执
行)。
b) 协议参数设置服务项
以下定义的服务项,使之能够对协议参数动态设置。
1)N_ChangeParamter.request
该项服务用于对特定内部参数的动态设置的请求
2)N_ChangeParameter.comfirm
3)该服务项用于确认应答给上层,表示修改协议特定项的请求已经被执行(成功执行
或不成功执行)。
4.3 网络层的内部操作
网络层的内部操作为实现对等实体间的通信提供了分段、重组、数据传输流控制方法。
网络层主要的任务是传递一帧或大于一帧的数据信息。超过一帧的信息被分成多个部分,
每一个部分都以一个 CAN 帧的形式被发送。
图 1 显示的是未被拆分的信息的传送的例子。
图 2 显示的是被拆分的信息传送的例子
流控制用来使发送端适应接收端网络层的接收能力。该流控制策略同样适用于诊断网
关和通信子网。
5 网络层服务项
5.1 总览
所有的网络层服务项有统一的结构。为了定义这些服务项,三类主要的服务项说明如
下:
——请求服务,被更高的通信层或应用层使用,用于向网络层传递控制信息及要发送的数
据;
——指示服务,被网络层使用,用于向更高通信层或应用层传递状态信息及接收到的数据;
——确认服务,被网络层使用,用于向更高通信层或应用层传递状态信息。
这些服务说明没有指定具体的应用程序接口,而只是一些独立于具体实施的主要服务
项。
所有的网络层服务项有统一的结构形式,服务项写成如下的形式:
service_name.type (
parameter A,
parameter B,
parameter C,
…
)
这里,“service_name”是指服务项名称,例如,N_SDU,“type”指示了服务项的类型,
“parameter A,parameter B,parameter C,…”则是 N_SDU 服务项传递的值。
服务项定义了如何使服务的使用者(例如,诊断应用层)如何与服务的提供者(例如,网络
层)协同运行。以下服务项已在国际标准中说明,请求,指示和确认。
——使用请求服务项(service_name.request),服务使用者向服务提供者请求一项服务。
——使用指示服务项(service_name.indication),服务提供者通知服务使用者网络层的一
个内部事件或者一个对等实体的服务使用者的服务请求。
——通过确认服务项(service_name.confirm),服务提供者通知服务的使用者,之前服务
使用者请求服务的结果。
5.2 网络层服务说明
5.2.1 N_USData.request
该请求服务项是请求传递数据及字节数,从发送者到到对等实
体接收者,通过在 N_SA,N_TA,N_TAtype 及 N_AE 中的地址信息确认。(参看 5.3 对参数的定
义)。
N_USData.request 服务项每次被启动,网络层应当通过一条 N_USData.confirm 服务
通知服务使用者信息传递的完成情况。(成功或失败)
N_USData.request (
Mtype
N_SA
N_TA
N_TAtype
N_AE(可选的)
)
5.2.2 N_USData.confirm
N_USData.confirm 服务项由网络层发送,该服务项用于确定 N_USData.request 服务
的完成情况,通过在 N_SA,N_TA,N_TAtype 及 N_AE 中的地址信息确认。参数提
供请求服务项的状态。(参看 5.3 对参数的定义)
N_USData. confirm(
Mtype
N_SA
N_TA
N_TAtype
N_AE(可选的)
)
5.2.3 N_USData_FF.indication
N_USData_FF. indication 服务项由网络层发送。该服务项用于通知相邻上层接收到
对等实体首帧数据已经到了。通过在 N_SA,N_TA,N_TAtype 及 N_AE 中的地址信息确认。(参
看 5.3 对参数的定义)这个指示项发生在接收到拆分数据首帧的时刻。
N_USData_FF.indication (
Mtype
N_SA
N_TA
N_TAtype
N_AE(可选的)
)
N_USData_FF. indication 指示 服务项发 送完,网 络层应当 总是紧跟 着发送一 个
N_UDSData.indication 服务项,指示信息接收的完成情况。(成功或失败)
N_USData_FF. indication 指示服务项应当至友网络层发送指示信息段的首帧是否被
正确接收。
如 果 网 络 层 监 测 到 首 帧 中 任 何 类 型 的 错 误 , 该 信 息 应 当 被 网 络 层 忽 略 , 并 且
N_USData_FF. indication 指示服务项不应当被发送至相邻的上层。
如果网络层接收到首帧中数据长度项的值(FF_DL)大于接收者缓冲区的数据,这应当被
认为是一个错误的条件并且 N_USData_FF. indication 指示服务项不应当被发送至相邻的
上层。
5.2.4 N_USData.indication
N_USData.indication 服务项由网络层发送。该服务项指示事件并传递
字节数的至相邻的上层。这些信息通过同等实体间通过存放于
N_SA,N_TA,N_TAtype 及 N_AE 中标识的地址信息接收过来的。
当值为 N_OK 时,及参数信息才有效。
N_USData.indication (
Mtype
N_SA
N_TA
N_TAtype
N_AE(可选的)
)
N_USData.indication 服务项是在接收到单帧(SF)信息或是指示拆分信息接收的完
成时发送。
如果网络层检查到单帧中任何类型的错误,该条单帧信息应当被忽略并且 N_USData_FF.
indication 指示服务项不应当被发送至相邻的上层。
5.2.5 N_ChangeParameters.request
该服 务项 用于 请求本 地实 体内 部参数 的修 改。
参数 值分 配给
参数(参看 5.3 对参数的定义)。
对 参 数 总 是 可 以 修 改 的 。 特 殊 情 况 是 在 应 用 层 接 收 到 首 帧 的 指 示 服 务 项
(N_USData_FF.indication)到接收(N_USData.indication)服务项之间的时刻。
N_ChangeParameters.request (
Mtype
N_SA
N_TA
N_TAtype
N_AE(可选的)
)
这是一个可选服务项,可被固定的参数值实施代替。
5.2.6 N_ChangeParameters.confirm
该服务项用于确认 N_ChangeParameter.Confirmation 运用信息的完成情况,这信息通过在
N_SA,N_TA,N_TAtype 及 N_AE 中的地址信息标识。
N_ChangeParameter.confirm (
Mtype
N_SA
N_TA
N_TAtype
N_AE(可选的)
)
5.3 服务项数据单元说明
5.3.1 Mtype, Message type
类型:枚举类型
范围:诊断,远程诊断
描述:参数 Mtype 用于确定服务相中信息参数的类型及范围。该部分的 ISO 15765 协议指
定了两个值标识这个参数。文档使用者可通过指定其它的类型,也可通过文档中网络层使
用的其它地址信息参数的组合来扩展这些值的范围。每新定义的一套地址信息,Mtype 应
当赋予新值,标识新的地址信息。
——如果 Mtype = 诊断,N_AI 地址信息应当包含参数 N_SA,N_TA,和 N_TAtype。
——如果 Mtype = 远程诊断,N_AI 地址信息应当包含参数 N_SA,N_TA,和 N_TAtype,和 N_AE。