f) 假定P3CAN_Functional定时器此时没有活动,也就是说请求被立即发送。
g) 客户机通过N_USData.con指示(0x3E)请求信息的完成。
h) 服务器通过N_USData.ind指示(0x3E)请求信息得接收。此刻,先前接收到的物理请求仍然在服务
器端挂起(还没有处理)并且S3Server定时器停止。因此,接收到的(0x3E)请求信息会被服务器忽略。 i) 当P3CAN_Physical定时器在客户机超时,客户机会通过发送N_USData.req发送下一条物理地址请求
信息至网络层。
j) 客户机通过N_USData.con指示物理地址请求信息的完成。客户机现在重新开启P3CAN器。由于不需应答信息,因此客户端不启动P2CAN_Client_Physical定时
定时器。
k) 服务器通过N_USData.ind指示请求信息的完成。在任何非默认会话情况下,S3Server定时器此刻停
止。
6.3.5.4 主动提供的应答信息
服务器主动提供的应答信息要么是周期性例程(见服务ReadDataByPeriodicIdentifier in 9.3.4)或者配置引发的,例如DTC状态的变化或者一个日期标识的改变(见服务ResponseOnEvent in 9.2.8)。
所有主动提供的应答信息服务器都不应当重启S3Server定时器。这在周期性信息传输或者时间触发的事件中时间的时间间隔比S3Server短的情况下,有效避免了诊断会话的锁死。
S3Server定时器只应当在处理一条请求信息并发送最后结果应答信息(例如,初始肯定应答指示一个请求成功执行)的时候被重置。
6.3.6 出错的处理
应用层以及客户机和服务器在物理通信、功能通信期间的会话管理出错的处理应当按照表7、表8。假定客户机和服务器都按照该部分15765协议进行应用层及会话层的定时处理。
表7——客户机错误处理
通信阶段 请求发送 客户端错误类型 物理通信 客户机处理 功能通信 网络层的客户机在P3CAN_Physical时间之客户机在P3CAN_Physical时间之后,N_USData.con指示否定结果值 后,有出错指示,应当重发最后有出错指示,应当重发最后的请求 的请求 重启S3Client(由于S3Client在请求发送时停止了) 超时 客户机重新发送最近的请求信息。重启S3Client(由于S3Client在请求发送时停止了) 这里客户机不知道多少服务器应答,这就是指示客户机不再有应答信息了。不用再重复请求信息了。 客户机在进一步请求之前,应当完全接受到所有的应答信息。 这里客户机知道有多少服务器应答,这就是指示客户机不是所有的服务器都应答。 客户机在完全接收到所有应答信息之时发生了超时,应当重新请求信息。 P2CAN*P2CAN_Client _Client应答接收 N_USData.ind网络层否定结果值 客户机重新发送最近的请求信息。重启S3Client(由于S3Client在请求发送时停止了) 客户机在完全接收到所有应答信息之时,出错,应当重新请求发送信息。 客户机出错处理运行最多2次,也就是说,最坏情况下,请求服务的发送只能是3次。 表8——服务器出错处理 通信阶段 请求接收 服务器错误类型 网络层N_USData.ind指示否定结果值 超时 _Server处理 重启S3Server定时器(由于它在接收到先前首帧指示时停止了),服务器应当忽略该请求。 N/A P2CAN 网络层N_USData.ind指示否定结果值 重启S3Server定时器(由于它在接收到先前的请求信息时停止了)。服务器不应当重新发送该应答信息。 P2CAN*P2CAN_Client_Client应答发送
7 网络层接口
7.1概述
该部分的ISO 15765协议使用ISO 1576502定义的网络层服务进行诊断信息的收发。本节定义应用层协议数据单元(A_PDU)到网络层协议数据单元(N_PDU)的映射。 注意:网络层的服务用语应用层及诊断会话管理的定时。(见6.3)
7.2 流控N_PCI参数定义
客户机Stmin参数不应该使用0xF1-0xF9的值。这些Stmin参数值应汽车制造商要求服务器应当支持。
7.3 信息发送的A_PDU到N_PDU的映射
应用层协议数据单元的参数按照下表9所示映射到网络层协议数据单元。它用于定义客户机/服务器诊断服务信息的请求/应答。
网络层向应用层的(N_USData.con)成功发送确认服务。应用层是需要这项服务,因为它需要在请求/应答完成时立即进行另外的动作(例如ECU重启,波特率调整等)。
表9——ServiceName.request/ServiceName.response A_PDU到N_USData.request N_PDU A_PDU参数(应用层协议数据单元) A_SA A_TA A_Tatype A_RA A_PCI.SI 说明 应用层源地址 应用层目标地址 应用层目标地址类型 应用层远程地址 应用层协议控制信息服务代码 N_PDU参数(应用层协议数据单元) N_SA N_TA N_Tatype N_AE N_Data[0] 说明 网络层源址 网络层目标地址 网络层目标地址类型 网络层地址扩展 网络层数据 A_Data[0]-A_Data[n 应用层数据 N_Data[1]N_Data[n+1 网络层数据 7.4 信息接收的N_PDU到A_PDU的映射
网络层协议数据单元的参数按照下表9所示映射到应用层协议数据单元。用于定义接收到的诊断请求/应答的确认/指示。
网络层对接收到首帧N_PDU (N_USDataFirstFrame.ind)时指示不直接到应用层,因为它仅仅用于应用层定时(见6.3)。因此没有N_USDataFirstFrame.in N_PDU到A_PDU的映射的定义。
表10————N_USData.ind N_PDU到ServiceName.conf/ServiceName.ind A_PDU的映射 N_PDU参数(应用层协议数据单元) N_SA N_TA N_Tatype N_AE N_Data[0] 说明 网络层源址 网络层目标地址 网络层目标地址类型 网络层地址扩展 网络层数据 A_PDU参数(应用层协议数据单元) A_SA A_TA A_Tatype A_RA A_PCI.SI A_Data[0]-A_Data[n 说明 应用层源地址 应用层目标地址 应用层目标地址类型 应用层远程地址 应用层协议控制信息服务代码 应用层数据 N_Data[1]N_Data[n+1 网络层数据 8 标准的诊断CAN标识
8.1 法规OBD的11位CAN标识
法规OBD的11位CAN标识也用于扩展的CAN诊断(例如功能请求CAN标识能用于功能地址(0x3E)请求信息保持非默认会话处于激活状态。)
如果ISO 15765-4说明的11位的CAN标识在扩展的诊断中重新使用,适用如下要求: a) ISO 15765-4协议的网络层定时参数同样适用于扩展的诊断;
b) DLC(CAN数据长度码)应当设置为8并且CAN帧应当包含8字节(未使用的字节也应当填充);
注意:ISO 15765-4允许最大8OBD相关服务器,为8个服务器定义了11位CAN标识。
8.2法规29位OBD的CAN标识
法规的29位CAN标识应按照ISO 15765-2说明的标准固定的地址格式,同样能用于扩展的诊断。
如果ISO 15765-4说明的29位的CAN标识在扩展的诊断中重新使用,适用如下要求: a) ISO 15765-4协议的网络层定时参数同样适用于扩展的诊断;
b) DLC(CAN数据长度码)应当设置为8并且CAN帧应当包含8字节(未使用的字节也应当填充);
注意:表中给出的CAN标识符按照ISO 15765-2协议优先级信息使用默认的值。
8.3 扩展的诊断29位CAN标识
8.3.1 概述
本部分说明使用29位CAN标识的标准地址及路由的概念。主要使用了最流行的网络协议(IP)的握手机制。因此地址及路由的算法可用于不同子网位置的节点的通信及路由。 准地址及路由的概念遵循如下的特征: ——网络结构最灵活的设计操作 ——完全定制的网络及节点地址
——CAN控制器硬件过滤特征通过分配合适的网络及节点地址优化。
——网关需要知道与它连接的子网的网络地址,而不需要所有子网成员的地址。
下面描述了CAN标识符结构的技术细节,包括地址,子网掩码。也包括了对路由及广播的算法的详细描述。
8.3.2 29位CAN标识符结构
本文档描述的29位CAN标识符结构与如下协议是兼容的。有ISO 15765-2, ISO 15765-3, ISO 15765-4及SAE J1939-21.因此SAE J1939-21定义的29位CAN标识结构中25位的编码(保留/扩展数据页)和24位编码(数据页)应当确定该CAN标识或CAN帧是J1939的还是ISO 15765的。这对汽车网络设计者根据他的需求及对SAE J1939和ISO 15765协议的使用,定制非诊断的信息及相关CAN标识是重要的。
8.3.2.1 SAE J1939的29位CAN标识符结构
关于SAE J193929位CAN标识符格式见如下表11
表11——SAE J1939的CAN标识符结构
29位CAN标识符 28、27、26 优先级 25 保留/扩展 数据页 24 数据页 23-16 PDU格式 15-18 PDU-特定域(目标地址或PDU格式扩展) 7-0 源地址(独有的源地址) 8.3.2.2 ISO 15765的29位CAN标识符结构
表12显示了ISO 15765的CAN标识符结构与SAE J1939格式的区别。 25位——SAE J1939保留/扩展数据页,ISO 15765使用扩展数据页 24位——SAE J1939数据页 ,ISO 15765数据页
因此,ISO 15765格式与SAE J1939格式的29位CAN标识能在同一个CAN总线上互不影响的共存。
表12——ISO 15765的CAN标识符结构 29位CAN标识 28-26 25 24 23,22 21-11 10-0 优先级 扩展 数据页 服务类型(TOS) 源地址 目标地址 数据页 编码见8.3.2.4 编码见8.3.2.5 源地址(独有的源地目标地址(独有的目址) 标地址) 8.3.2.3 优先级域
SAE J1939定义的优先级域用于CAN总线的仲裁机制。由于CAN标识符不再能自由分配(源地址和目的地址包含在CAN标识符中),CAN信息优先级由发送者分配并间接由接收者分配。存在8种不同的优先级。
优先级6分配至诊断请求信息/帧。
8.3.2.4 扩展的数据页及数据页域
扩展的数据页及数据页位决定了使用哪一种29位的CAN标识。见表13编码的说明
表13——扩展数据页及数据页域 扩展的数据页位25 数据页位24 说明 0 0 SAE J1939定义或厂家定义的“标准通信信息” 0 1 SAE J1939定义或厂家定义的“标准通信信息” 1 0 SAE J1939定义或厂家定义的“标准通信信息” 1 1 ISO 15765定义的 8.3.2.5 服务类型(TOS)域
服务类型域用于表述一个节点不需要分配不同地址的情况下,分配不同项服务。因此,8种不同的服务类型能同时分配给单个的目标地址。不同服务类型的定义见表14