参考书籍:iso15675协议中文版,合工大谢梦如学姐的笔记
控制局域网络诊断
第二部分:网络层服务
1.通信服务
N_USdata.request 分割数据传输服务请求
由发送端上层使用,用于向网络层传递控制信息和诊断服务数据
N_USData.FFindication 分割数据传输服务首帧服务说明
向上层传递的信息开头部分的说明
N_USData.indication 分割数据传输服务说明
由接收端网络层使用,用于向上层指示数据接收的执行结果
N_UAData.confirm 确认服务
由发送端网络层使用,用于向上层确认所要求服务的执行结果
2.协议参数定义服务
N_changeparameter.request 网络层更改参数服务要求
N_changeparameter.confirm 网络层更改参数服务确认
3.网络层内部操作
单帧报文传输(下图的上半部分)
多帧报文传输(下图的下半部分)
其中 Flow control 流控制帧是接收方向发送方通知自己的网络层容量,以通知发送方下次发送数据的大小。
附一些缩写词:
mtype 消息类型
N-AE 网络地址扩展
N-AI 地址信息
N-AR 网络层定时参数ar 接收方
N-AS 网络层定时参数as 发送方
N-BR 网络层定时参数br 直到接收下一个流控制的时间
N-BS 网络层定时参数bs 直到传输下一个流控制的时间
N-Changeparameter 网络层服务名称
N-CR 网络层定时参数cr 直到接收下一个连续框架的时间
N-CS 网络层定时参数cs 直到传输下一个连续框架的时间
N-Data 网络数据
N-PCI 网络协议控制信息
N-PCItype网络协议控制信息类型
N-PDU 网络数据控制单元
N-SA 网络资源地址
N-SDU 网络服务数据单元
N-TA 网络目标地址
N-TAtype网络目标地址类型
N-USData 网络层未被承认的分割数据传输服务名称
NWL 网络层
request 原始服务需求
r 接收器
s 发送器
SF 单一框架
SF-DL 单一框架数据长度
SN 序列号
STmin 两个数据包之间最小等待时间
BS 块大小
CF 连贯结构
confirm 确认
ECU 电子控制单元
FC 流动控制
FF 第一框架
FF-DL 第一框架数据长度
FS 流动状态
indication 指示
1.网络层服务
所有的网络层服务大体结构都是相同的 格式如下:
Sevice_name.type {
Parameter A;
Parameter B;
Patameter C:
……
}
“Sevice_name”是服务的名称,如: N_USData, "type"表明服务原语类型"Parameter A,B,C"是N_SDU服务原语传送的一系列的值。
"Sevice primitives"定义了服务使用者(如:诊断应用)和服务提供者(如:网络层)之间是如何合作的。
1) N_USData.request
通过请求服务原语发送方向在地址信息中定义的接收方的同等实体传输<Message Data> 和 <Length> 信息。由发送方上层发送到发送方网络层。
N-USData.request{
mtype 消息类型
N-SA网络资源地址
N-TA 网络目标地址
N-TAtype网络目标地址类型
N-AE 网络地址扩展
<MessageData>
<length>
}
每一次N_USData.request服务被调用,网络层会发信号表明向服务使用者传输的报文是否成功,这个信号就是调用N_USData.confirm 服务。
2) N-USData.confirm
该服务有网络层发出的,这个服务原语用来确认在地址信息中标识的N_USData.request 服务是否完成。参数<N_Result>提供了请求服务的状态。
N-USData.confirm{
mtype
N-SA网络资源地址
N-TA 网络目标地址
N-TAtype网络目标地址类型
N-AE 网络地址扩展
<N-Result>
}
3) N_USData_FF.indication
该服务是由网络层发出,这个服务原语向相邻的上层表示收到了来自同等协议实体发来的分段报文的首帧。
N-USData.FFindication{
mtype
N-SA网络资源地址
N-TA 网络目标地址
N-TAtype网络目标地址类型
N-AE 网络地址扩展
<length>
}
此服务后一般会接着一个来自网络层的N_USData.indication服务,用来表明报文接收是否成功。
注意:只有接收到了一个正确的首帧以及报文段,网络层才会调用此服务;如果网络层监测到首帧的任何错误,此报文将会被网络层忽略,也不会向相邻上层发N_USData_FF.indication。如果网络层接收到的首帧,它的首帧数据长度(FF_DL)大于接收方的最大缓冲容量,这也会被视为错误,也不会向上层发送N_USData_FFindication。
4) N_USData.indication
由网络层发出。此服务原语表明<N-Result>事件并传送<length>个字节的<MessageData>,这些信息来自地址信息中表明的同等协议实体,并传送给相邻的上层。
N-USData.indication{
mtype
N-SA网络资源地址
N-TA 网络目标地址
N-TAtype网络目标地址类型
N-AE 网络地址扩展
<MessageData>
<length>
<N-Result>
}
其中<N-Result>为N-OK时,<length> <MessageData>才有效。
注意:此服务调用是在收到一个单帧报文之后或是作为一个分段报文接收完成的标志。如果网络层监测到单帧中有任何错误,则此报文将会被网络层忽略,也不会向上层发送此服务。
5) N_ChangeParameters.request
网络层请求更改参数,更改参数是可以的,但是接收了首帧N_USData_FF.indication之后和接收通信报文(N_USData_indication)之前是不可以的。
N-Changeparameter.request{
mtype
N-SA网络资源地址
N-TA 网络目标地址
N-TAtype网络目标地址类型
N-AE 网络地址扩展
<parameter>
<parameter-Value>
}
6) N_Changepatameters.confirm
N-Changeparameter.confirm{
mtype
N-SA网络资源地址
N-TA 网络目标地址
N-TAtype网络目标地址类型
N-AE 网络地址扩展
<parameter>
<result-Changeparameter>
}
未完待续~~