会话层服务
ISO 14229-2 是通用的会话层协议,从ISO文档划分OSI 模型来看,目前 会话层协议 只包含了 ISO 14229;但是其实在实际的汽车开发过程中 应用层是包含 会话层和表示层的,也就是说 OSI 七层模型,实际是5层。
会话层有对应的服务接口用来和服务使用方进行交互;
–服务请求原语:更高一层通过传送控制信息或者请求的数据到会话层;简单点理解就是应用层需要请求一个数据,这个请求就会先发送到会话层;
–服务指示原语:会话层向更高层传递状态信合和接收数据; 简单理解是服务端向上层告知现在的状态
–服务确认原语:会话层传送状态信息到应用层;可以理解为服务端告知客户端之前请求的结果。
service_name.Type
(
参数A
参数B
参数C
…
)
这是简单的单帧报文的原语传递,在多帧报文传递过程中 ,对于首帧也会有处理的, 这是因为首帧往往会告知接收端将要接收报文的关键信息。
对于每个原语,所使用的数据单元是不相同的;
S_data.Request
(
s_Mtypt;
S_SA
S_TA
S_TAType
[S_AE]
S_Data[data1,data2,data3…]
S_Length
)
S_data.Confirm
(
s_Mtypt;
S_SA
S_TA
S_TAType
[S_AE]
S_Result
)
S_data.Request
(
s_Mtypt;
S_SA
S_TA
S_TAType
[S_AE]
S_Data[data1,data2,data3…]
S_Length
S_Result
)
S_Mtype: 报文类型,枚举类型: 诊断, 或者远程诊断
S_SA: 2 byte,源地址,可以理解位发送端地址
S_TA: 2byte 目标地址,可以理解位接受端地址
S_TAtype: 枚举类型, 物理地址:一对一通信;功能地址:一对多通信。
S_AE: 2 byte ,地址扩展; 目前暂时没遇到过这种类型。
S_Length: 4 byte, 发送或者数据的长度
S_Data:携带的数据
S_Result:枚举 ,S_OK,S_NOK
每个OSI 模型都会有自己PDU ,从上层传递到下层的数据都会根据对应的数据格式进行报文的拆包组包。同理,从下层传递到上层的数据也会进行对应的拆组。一般用工具读取的基本都是应用层的数据 例如CANOE, 示波器我们可以读取到底层的报文数据 ;
时间参数
时间参数 | 定义 | 类型 |
---|---|---|
ΔP2 | 最恶劣情况下的延时,比如网关路由,总线负载。这个时间分为 请求发送到对应服务端的时间和T_Data.indi到开始传输响应T_DataSOM.ind | 性能要求 |
ΔP6 | 最恶劣情况下的延时,比如网关路由,总线负载.这个时间分为请求发送到对应服务端的时间和发送完整响应到客户端或者服务端的时间 | 性能要求 |
P2server | 接收到请求消息后开始响应请求时间 | 性能要求 |
P2client | 客户端成功发送请求报文到等到响应报文的时间 | ?? |
P6client | 客户端成功发送请求后到接受到完整响应的时间 | ?? |
P2*server | 接收到NRC 0x78 后的等待时间 | 性能要求 |
P2*client | 接收到NRC 0x78 后的等待时间 | ?? |
P6*server | 接收到NRC 0x78 后的等待完整响应的时间 | ?? |
P3client_Phys | 发送物理寻址消息且不需要响应后,可以传输下一个物理请求消息的时间 | ?? |
P3client_Func | 发送下一个功能响应的时间 | ?? |
P4server | 接收到请求到开始发送最后响应的时间 性能要求 |
上面这些图是从ISO 14229 中截取的部分,对着图理解时间参数可能更简单明了一些; 主要是我还不太会在这个上面话些复杂的图。
时间参数 | 定义 |
---|---|
S3client | 保持服务器在默认会话之外的时间,或者物理寻址请求的最大时间 |
S3server | 服务器在不接收请求的情况下保持非默认会话时间 |
码字有点累了 下次继续!!