ISO15765-2(2004)道路车辆——控制局域网络诊断——第2部分:网络层服务ISO15765协议,定义了“道路车辆——局域网控制 器(CAN)诊断”,包含如下几个部分:——第一部分:总论。——第二部分:网络层服务。——第三部分:统一诊断服务具体的执行——第四部 分:排放相关系统的要求概述ISO15765-2的协议,定义车载诊断系统网络层要求,提供在CAN数据链路层(ISO11898定义)上 运行。虽说它最初设计是用在诊断系统上的,它同样适用于其它需要网络层协议的CAN通信系统上。为了达到诊断通信要求,ISO15765协 议是基于ISO/IEC7498和ISO/IEC10731的开放互联系统基本参考模型建立的。该模型将通信系统分为七层,ISO15 765协议映射到该模型上,分层如下:——统一的诊断服务(第7层),在ISO15765-3中定义。——网络层(第3层),在ISO 15765-2中定义。——CAN服务层(第1,2层),在ISO11898中定义。如表1所示,表1——对应OSI分层,扩展的及法规 要求的OBD诊断规定开放互联系统(OSI)分层汽车生产商扩展的诊断服务法规要求的车载诊断系统(OBD)诊断应用用户定义ISO15 031-5应用层ISO15765-3ISO15031-5表示层N/AN/A会话层ISO15765-3N/A传输层N/AN/A 网络层ISO15765-2ISO15765-4数据链路层ISO11898-1ISO15765-4物理层用户定义ISO15 765-4应用层服务是由ISO15765-3按照ISO14229-1和ISO15031-5建立的诊断服务制定的,但ISO1 5765-3协议不仅适用于上述的诊断服务项,也适用于大多数的国际标准及汽车生产商规定的诊断服务。网络层服务由该部分的ISO157 65协议定义,并独立于物理层上的操作,物理层仅仅是在法规的OBD上有规定。道路车辆——控制器局域网(CAN)的诊断——第二部分:网 络层范围这部分ISO15765协议描述了在ISO11898定义的控制其局域网中裁剪的网络协议,用于满足基于CAN的车载网络系统 。它是按照ISO14229-1和ISO15031-5建立的诊断服务制定的,但该部分协议不仅适用于上述的诊断服务项,还适用于车载 内部其它的网络通信。该协议描述的是未经最后确认的的通信。参考的标准下述的参考文档对于该文档的应用是必不可少的。ISO11898- 1,道路车辆——控制器局域网(CAN)——第一部分——数据链路层及物理信号层ISO/IEC7498(所有部分),技术信息——开放 互联系统——基本参考模型术语,定义和缩略词为编撰该文档目的,这些术语和定义已在ISO7498中给出,以下缩略词术语同样适用。BS 数据块大小CF连续帧confirm确认服务ECU 电子控制单元FC流控制FF 首帧FF_DL首帧数据长度FS流状态indication指示 服务MType信息类型N_AE网络地址扩展N_AI地址信 息N_Ar网络层时间参数:ArN_As网络层时间参数:AsN_Br网络层时间参数:BrN_ Bs网络层时间参数:BsN_ChangeParameter网络层服务项名称N_Cr网络层时 间参数:CrN_Cs网络层时间参数:CsN_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间隔最短时长网络层总 览概述该项主要描述网络层总体的功能。该部分的ISO15765协议定义了未最后确认的网络层通信协议。该协议用于网络节点之间数据交互 ,例如从一个ECU到另一个ECU,或外部诊断设备和一个ECU之间的通信。如果要传送的数据超过了单个的CAN帧长度,则需要提供拆分的 方法。为描述网络层的功能,它提供给高层的服务项及内部操作必须予以研究。网络层提供给高层的服务项该服务项接口定义了一些由网络层提供使 用服务项,例如,数据发送、数据接收及协议参数设置。已定义了两种类型的服务:通信服务项以下定义的服务项,使发送者最多能发送4095个 字节的数据。N_USData.request该服务项用于请求发送数据。如果有必要的话,网络层拆分这些数据。N_USData_FF. indication该服务项用于通知上层被拆分的信息的首帧的接收。N_USData.Indication该服务项用于提供接收的数据 至上层。N_USData.comfirm该服务项用于确认应答给上层,表示请求服务项已经被执行(成功执行或不成功执行)。协议参数设置 服务项以下定义的服务项,使之能够对协议参数动态设置。N_ChangeParamter.request该项服务用于对特定内部参数的动 态设置的请求N_ChangeParameter.comfirm该服务项用于确认应答给上层,表示修改协议特定项的请求已经被执行(成功 执行或不成功执行)。4.3网络层的内部操作网络层的内部操作为实现对等实体间的通信提供了分段、重组、数据传输流控制方法。网络层主 要的任务是传递一帧或大于一帧的数据信息。超过一帧的信息被分成多个部分,每一个部分都以一个CAN帧的形式被发送。图1显示的是未被拆分 的信息的传送的例子。图2显示的是被拆分的信息传送的例子流控制用来使发送端适应接收端网络层的接收能力。该流控制策略同样适用于诊断网关 和通信子网。网络层服务项总览所有的网络层服务项有统一的结构。为了定义这些服务项,三类主要的服务项说明如下:——请求服务,被更高的通 信层或应用层使用,用于向网络层传递控制信息及要发送的数据;——指示服务,被网络层使用,用于向更高通信层或应用层传递状态信息及接收到 的数据;——确认服务,被网络层使用,用于向更高通信层或应用层传递状态信息。这些服务说明没有指定具体的应用程序接口,而只是一些独立于 具体实施的主要服务项。所有的网络层服务项有统一的结构形式,服务项写成如下的形式:service_name.type(param eterA,parameterB,parameterC,…)这里,“service_name”是指服务项名称,例如, N_SDU,“type”指示了服务项的类型,“parameterA,parameterB,parameterC,…”则是N_ SDU服务项传递的值。服务项定义了如何使服务的使用者(例如,诊断应用层)如何与服务的提供者(例如,网络层)协同运行。以下服务项已在 国际标准中说明,请求,指示和确认。——使用请求服务项(service_name.request),服务使用者向服务提供者请求一项服 务。——使用指示服务项(service_name.indication),服务提供者通知服务使用者网络层的一个内部事件或者一个对等 实体的服务使用者的服务请求。——通过确认服务项(service_name.confirm),服务提供者通知服务的使用者,之前服务使 用者请求服务的结果。网络层服务说明N_USData.request该请求服务项是请求传递数据及th>字节数,从发送者到到对等实体接收者,通过在N_SA,N_TA,N_TAtype及N_AE中的地址信息确认。(参看5.3对参数 的定义)。N_USData.request服务项每次被启动,网络层应当通过一条N_USData.confirm服务通知服务使用者信 息传递的完成情况。(成功或失败)N_USData.request(MtypeN_SAN_TAN_TAtypeN_AE( 可选的))N_USData.confirmN_USData.confirm服务项 由网络层发送,该服务项用于确定N_USData.request服务的完成情况,通过在N_SA,N_TA,N_TAtype及N_AE 中的地址信息确认。参数提供请求服务项的状态。(参看5.3对参数的定义)N_USData.confirm(M typeN_SAN_TAN_TAtypeN_AE(可选的))N_USData_FF.indicat ionN_USData_FF.indication服务项由网络层发送。该服务项用于通知相邻上层接收到对等实体首帧数据已经到了。通 过在N_SA,N_TA,N_TAtype及N_AE中的地址信息确认。(参看5.3对参数的定义)这个指示项发生在接收到拆分数据首帧的 时刻。N_USData_FF.indication(MtypeN_SAN_TAN_TAtypeN_AE(可选的)ength>)N_USData_FF.indication指示服务项发送完,网络层应当总是紧跟着发送一个N_UDSData. indication服务项,指示信息接收的完成情况。(成功或失败)N_USData_FF.indication指示服务项应当至友 网络层发送指示信息段的首帧是否被正确接收。如果网络层监测到首帧中任何类型的错误,该信息应当被网络层忽略,并且N_USData_FF .indication指示服务项不应当被发送至相邻的上层。如果网络层接收到首帧中数据长度项的值(FF_DL)大于接收者缓冲区的 数据,这应当被认为是一个错误的条件并且N_USData_FF.indication指示服务项不应当被发送至相邻的上层。N_USD ata.indicationN_USData.indication服务项由网络层发送。该服务项指示事件并传递< Length>字节数的至相邻的上层。这些信息通过同等实体间通过存放于N_SA,N_TA,N_TAtyp e及N_AE中标识的地址信息接收过来的。当值为N_OK时,及参数信息 才有效。N_USData.indication(MtypeN_SAN_TAN_TAtypeN_AE(可选的)sageData>)N_USData.indication服务项是在接收到单帧(SF)信 息或是指示拆分信息接收的完成时发送。如果网络层检查到单帧中任何类型的错误,该条单帧信息应当被忽略并且N_USData_FF.i ndication指示服务项不应当被发送至相邻的上层。N_ChangeParameters.request该服务项用于请求本地实体 内部参数的修改。参数值分配给参数(参看5.3对参数的定义)。对参数总是可以 修改的。特殊情况是在应用层接收到首帧的指示服务项(N_USData_FF.indication)到接收(N_USData.indi cation)服务项之间的时刻。N_ChangeParameters.request(MtypeN_SAN_TAN_TA typeN_AE(可选的))这是一个可选服务项,可被固定的参数值实 施代替。N_ChangeParameters.confirm该服务项用于确认N_ChangeParameter.Confirmat ion运用信息的完成情况,这信息通过在N_SA,N_TA,N_TAtype及N_AE中的地址信息标识。N_ChangeParame ter.confirm(MtypeN_SAN_TAN_TAtypeN_AE(可选的)ult_ChangeParameter>)5.3服务项数据单元说明5.3.1Mtype,Messagetype类型:枚举 类型范围:诊断,远程诊断描述:参数Mtype用于确定服务相中信息参数的类型及范围。该部分的ISO15765协议指定了两个值标识这 个参数。文档使用者可通过指定其它的类型,也可通过文档中网络层使用的其它地址信息参数的组合来扩展这些值的范围。每新定义的一套地址信息 ,Mtype应当赋予新值,标识新的地址信息。——如果Mtype=诊断,N_AI地址信息应当包含参数N_SA,N_TA,和N_T Atype。——如果Mtype=远程诊断,N_AI地址信息应当包含参数N_SA,N_TA,和N_TAtype,和N_AE。5. 3.2N_AI,地址信息5.3.2.1N_AI描述该参数指的是地址信息。总的来说,N_AI参数用于确定信息发送者和接收者的源地 址(N_SA),目标地址(N_TA),也包含确定(N_TAtype)和可选择地址扩展(N_AE)的通信模式。5.3.2.2N_S A网络源地址类型:1字节的无符号整数范围:00-FF16进制描述:N_SA参数代表发送者网络层实体5.3.2.3N_TA,网络 目标地址类型:1字节的无符号整数范围:00-FF16进制描述:N_SA参数代表接收者网络层实体5.3.2.4N_TAtype, 网络目标地址类型类型:枚举类型范围:物理的,功能的描述:N_TAtype参数是对N_TA参数的扩展。它被网络层对等实体使用,代表通 信模式。两种通信模式说明如下:1对1的通信,称为物理地址,1对多的通信称为功能地址。——物理地址(1对1通信)网络层所有类型的信息 都支持。——功能地址(1对多通信)仅仅对单帧的通信支持。5.3.2.5N_AE,网络地址扩展类型:1字节的无符号整数范围:00- FF16进制描述:N_AE参数用于在大的网络上扩展现行的地址范围,用于子网中发送与接收网络层实体而不是本地网的通信。若Mtype 设置为远程诊断时,N_AE仅仅是地址信息的一部分。5.3.3类型:12个bit位范围:1-4095描述:该参数 包含要发送或接收的数据长度。5.3.4类型:字符串范围:不固定描述:该参数包含与上层实体所有交互的数据5 .3.5类型:枚举类型范围:STmin,BS描述:该参数确定网络层的参数5.3.6alue>类型:1字节无符号整数范围:0-255描述:该参数分配给协议参数作为指示服务。5.3.7sult>类型:枚举类型范围:N_OK,N_TIMEOUT_A,N_TIMEOUT_Bs,N_TIMEOUT_Cr,N_W RONG_SN,N_INVALID_FS,N_UNEXP_PDU,N_WFT_OVRN,N_BUFFER_OVFLW,N_ ERROR描述:该参数包含服务项执行的结果状态。如果同时产生了两个或以上的错误,网络层应该使用下列错误指示中首先找到的参数值,发送 给高层。——N_OK该值表示服务执行完全正确;它可同时由发送者和接收者发送至服务的使用者。——N_TIMEOUT_A该值在定时 器N_Ar/N_As超过了定时值N_Asmax/N_Armax,发送给服务的使用者;它可同时由发送者和接收者发送至服务的使用者。— —N_TIMEOUT_Bs该值在定时器N_Bs超过了定时值N_Bsmax,发送给服务的使用者;它仅能由发送者发送至服务的使用者。 ——N_TIMEOUT_Cr该值在定时器N_Bs超过了定时值N_Crmax,发送给服务的使用者;它仅能由接收者发送至服务的使用者 。——N_WRONG_SN该值在接收到意外的连续的数值(PCI.SN)时被发送至服务使用者;它仅能由接收者发送至服务的使用者。—— N_INVALID_FS该值在从流控(FC)N_PDU接收到无效的或未知的流状态值时发送至服务的使用者;它仅能由发送者发送至服务的 使用者。——N_UNEXP_PDU该值在接收到未知协议数据单元时发送给服务使用者,它仅能由接收者发送至服务的使用者。——N_WFT _OVRN该值在接收到流控WAIT帧超过最大计数N_WFTmax时发送至服务使用者。——N_BUFFER_OVFLW该值在接收到流 控(FC)N_PDU状态Flow=OVFLW时发送给服务的使用者。它用于指示接收者缓冲区无法存储首帧中数据长度(FF_DL), 因此,该拆分数据的传递被丢弃。它仅能由发送者发送至服务的使用者。——N_ERROR这是一个默认的错误值。它是当检测到网络层错误并 且没有其它更好的参数描述该项错误时使用发送到服务使用者。它可同时由发送者和接收者发送至服务的使用者。5.3.8hangeParameter>类型:枚举类型范围:N_OK,N_RX_ON,N_WRONG_PARAMETER,N_WRO NG_VALUE描述:该参数包含服务执行的结果状态信息——N_OK该值表示服务执行完全正确;它可同时由发送者和接收者发送至服务的 使用者。——N_RX_ON该值发送给服务使用者指示虽然标识的信息接收到了,但服务没有执行。它仅能由接收者发送至服务的使用者 。——N_WRONG_PARAMETER该值发送给服务的使用者表示由于未定义的,服务没有执行;它可同时由发送 者和接收者发送至服务的使用者。——N_WRONG_VALUE改制发送给服务的使用者表示由于超出 范围,服务没有执行,它可同时由发送者和接收者发送至服务的使用者。网络层协议协议功能网络层协议协议有如下功能:发送/接收最多4095 个字节的数据信息报告发送/接收完成状态。单帧发送(扩展及混合地址情况下)最多发送6字节或(正常地址情况下)7字节数据,按照N_PD U格式发送信息,称为单帧(SF)见图3.最多6或7字节的接收通过N_PDU制式,图3未拆分数据的例子多帧发送长信息的发送通过拆分 信息并通过多个N_PDU发送的形式。长信息的接收通过接受多个N_PDU并通过重组这些接受的数据。这多个N_PDU包括首帧(信息中第 一个N_PDU)及连续帧(剩下的所有N_PDU)。多N_PDU信息接收者有条件按照它自己的接收能力通过使用流控协议数据单元(FC N_PDU)的流控机制调整传输流量。——一个首帧协议数据单元(FFN_PDU),包括(扩展及混合地址情况下)5字节或(正常地址情 况下)6字节数据。——一个多更多连续帧协议数据单元(CFN_PDU),包括6或7字节数据。CFN_PDU包括剩下的字节数据,因 此可以少于6或7字节的长度。图4显示的是发送端拆分及接收端重组信息的例子说明:接收方发送的FCN_PDU用于应答FFN_PDU ,这在图中没有显示。图4—拆分与重组信息的长度在首帧(FFN_PDU)中被发送。所有的连续帧(CFN_PDU)都被发送方编号, 提供接收方以同样的顺序重组这些信息。接收方通过流控机制(见图5)通知发送方接收能力。由于不同的节点有不同的接收能力,发送方发送的流 控通知接收方,接收方才能调整以适应发送方接收能力。该接收能力如下定义:——块大小(BS):在授权继续发送其余的N_PDU之前,接收 方允许发送方最大的N_PDU个数。——间隔最短时长(STmin):发送方在发送两个连续帧间隔等待的最短时间。图5流控机制除了最后 一个所有的块都包含BSN_PDUs。最后一个块包含剩余的N_PDUs(<=BS)。每一个发送者/接收者等待对方的N_PDU时,一 个超时机制可用来检查发送失败。通过FCN_PDUs,接收者有权控制CFN_PDUs,用于延时对方的发送及当拆分数据超过接收者 缓冲区的时候,拒绝接收。——FC.CTS:继续发送,授权继续发送——FC.WAIT:请求继续等待——FC.OVFLW:缓冲溢出,用 于指示拆分数据的首帧中字节个数信息超过了接收者可存储的信息总量。FC.WAIT的值有个最大限值:N_WFTmax。该参数是系统的常 数,且不会在首个FCN_PDU中发送。网络层协议数据单元协议数据单元类型不同节点的网络层实体通过交互N_PDUs实现通讯。该协 议说明了网络层协议数据单元四种类型——单帧(SFN_PDU),首帧(FFN_PDU),连续帧(FCN_PDU)——这些用于建 立网络层对等实体通信,交互通信参数,传递通信数据及释放通信资源。SFN_PDUSFN_PDU通过单帧协议控制信息(SFN_P CI)来标识,SFN_PDU应当由发送网络实体发送至一个或多个接收网络实体。它应当通过单个的服务请求,传递服务数据及未拆分信息。 FFN_PDUFFN_PDU通过首帧协议控制信息(FFN_PCI)来标识,FFN_PDU应当由发送网络实体在拆分数据发送期 间,发送至特定的接收网络实体。它用于标识拆分数据首帧。接收网络实体在接收到FFN_PDU时,需重组这些拆分的信息。CFN_PD UCFN_PDU由连续帧协议控制信息标识(CFN_PCI)。CFN_PDU传递服务数据的每个段(N _Data)。发送实体发送所有的N_PDUs时,FFN_PDU之后编码成CFN_PDUs。接收实体在接收到最后一个CFN_P DU时,重组这些信息并传递至服务的使用者。CFN_PDU应当由发送网络实体在拆分数据发送期间,发送至特定的接收网络实体。FCN _PDUFCN_PDU由流控协议控制信息(FCN_PCI)标识。FCN_PDU指示发送网络实体对CFN_PDUs的开始,停 止或重传。它应当由接收网络层实体在准备好接收更多数据时,发送至发送网络层实体,在接收到如下情况的帧时FFN_PDU,或者一组连续 帧的最后一个FFN_PDU,如果另外的一组连续帧需要被发送的话。FCN_PDU也能在拆分数据发送期间,通知发送网络层实体暂停C FN_PDUs的发送或者在检测到首帧中数据(FF_DL)字长超过接收实体的缓冲区时,中止发送。协议数据单元域描述N_PDU格式 协议数据单元(N_PDU)使数据在两个或多个对等网络节点之间传递。所有的N_PDUs包含了3个域,如下表2所示。表2N_PDU格 式地址信息协议控制信息数据域N_AIN_PCIN_Data地址信息(N_AI)N_AI用于标识对等网络实体间的通信。N_AI信息在 N_SDU—N_SA,N_TA,N_TAtype,N_AE—中接收,应当复制包含在P_PDU中。如果接收到的N_SDU中essageData>及信息很长,需要网络层拆分这些数据以发送完整的信息,N_AI应当被复制并包含在每一个要发送的 N_PDU中。该域包含地址信息标识交互信息类型,数据交互的接收方和发送方。地址信息包含信息地址。注意:更详细的地址信息的描述,看5 .3.2协议控制信息(N_PCI)该域标识交互的N_PDUs的类型。它也用来交互在网络层对等实体通信的其它控制参数。注意:所有 N_PCI参数更详细的说明见6.5数据域(N_Data)N_PDU中的N_Data用于发送在参数中从服务 使用者使用N_USData.request服务接收的数据。如果必要的话,会在网络发送之前拆分为更小的部分,以适应N_PDU数据域。 N_Data的大小依赖N_PDU的类型及地址格式的选取。协议控制信息说明N_PCI所有的N_PDU通过N_PCI来标识,见表3及图 4表3——N_PCI字节概要N_PDU名N_PCI字节字节1字节2字节37–4位3–0位单帧(SF)N_PCItype =0SF_DLN/AN/A首帧(FF)N_PCItype=1FF_DLN/A连续帧(CF)N_PCItype=2SNN/ AN/A流控(FC)N_PCItype=3FSBSSTmin表4—N_PCItype值的定义16进制值描述0单帧对于未拆分的信 息,网络层提供了一个优化的网络协议,即将信息长度值仅放置在PCI字节里。单帧(SF)应当能支持在单个CAN帧中的信息传输。1首帧首 帧只支持一条信息无法在单个CAN帧中发送时使用。例如,拆分的信息。拆分信息的第一帧编码为FF,在接收到FF时,接受网络层实体应重组 这些信息。2连续帧当发送拆分数据时,所有的连续帧跟着FF编码为连续帧(CF)。在接收到一个连续帧,接受网络层实体应当重组接收到的数 据字节直到整个信息被接收到。接收实体在接收最后一帧信息并无接收错误之后,应传递这些信息到相邻的上层。3流控帧流控制的目的是调整CF N_PDUs发送的速率。流控协议数据单元的3种类型用于支持这些功能。这些类型由协议控制信息的流状态(FS)域指示。4-F保留 该范围的值为该协议保留。单帧N_PCI参数定义6.5.2.1SFN_PCI字节表5给出了SFN_PCI字节总览表5SF N_PCI字节总览N_PDU名字SFN_PCIbyteByte176543210单帧0000SF_DL单帧数据长度(SF_D L)参数在SFN_PDU中用于指明服务使用者的字节数。看表6表6SF_DL值的定义16进制值说明0保留该范围的值为该协议保留。 1–6单帧数据长度值(SF_DL)SF_DL应编码在N_PCI字节低位,并分配服务参数的值。7单帧数据长度(S F_DL)中标准地址SF_DL=7时,只允许标准地址8-F无效的该范围值无效6.5.2.2SF_DL出错处理如果网络层接 收到一个SF_DL=0的单帧(SF),网络层应当忽略接收SFN_PDU。如果网络层接收到使用标准地址且一个SF_DL大于7的单帧 ,或大于6且使用扩展或混合地址时,网络层应当忽略该SFN_PDU。6.5.3首帧N_PCI参数定义6.5.3.1FFN_P CI字节表7给出了一个FFN_PCI字节总览表7FFN_PCI字节总览N_PDU名字FFN_PCIbyteByte 1Byte276543210首帧0001FF_DL6.5.3.2首帧数据长度(SF_DL)参数定义FFN_PDU中的参数F F_DL用于说明服务使用者数据字节数。如表8所示,16进制数说明0–6无效的该范围值无效7首帧数据字节(FF_DL)支持扩展地 址及混合地址FF_DL=7只允许扩展地址及混合地址8-FFF首帧数据字节(FF_DL)拆分信息在12个位的长度(FF_D L)上编码,并N_PCI字节2中最低位置位“0”,N_PCI字节1中最高位置为“3”。拆分信息最大数据长度支持4095个用户数据。 该数据当被分配到服务参数中。6.5.3.3FF_DL出错处理如果网络层接收到FF_DL大于接收方缓冲区的首帧时 ,应当被认为是错误情况。网络层应当放弃该信息的接收,并且发送包含参数FlowStatus=Overflow的FCN_PDU。 如果网络层接收到FF_DL小于8并且使用标准地址,或小于7并且使用扩展地址或混合地址时,网络层应当忽略该首帧并且不必发送一个FC N_PDU。6.5.4连续帧N_PCI参数定义6.5.4.1CFN_PCI字节表9给出了一个CFN_PCI字节总览表9 CFN_PCI字节总览N_PDU名字CFN_PCIbyteByte176543210连续帧0010SN6.5.4.2连续 帧参数(SN)定义CFN_PDU中参数SN用以说明连续帧的顺序。——对于所有拆分信息,SN开始于0。FF应当分配值0,它不是明确 地包含在N_PCI域中,但应当按拆分信息顺序号为0。——第一个流控帧编号(SN)后的连续帧设置为1;——在同一个拆分信息上,每一个 新增的连续帧编号(SN)增1;——连续帧编号(SN)的值不受流控帧的影响。——当连续帧编号(SN)到达值15时,它在下一个连续帧中 重置为0;顺序编号如下表10所示表11所示SN值表10——SN定义总结N_PDUFFCFCFCFCFCFCFCFSN(hex)01 …EF01…表11——SN值定义16进制值描述0-F连续号(SN)连续号应当在N_PCI字节1的低字位编码。SN设置值范围在0 到15.6.5.4.3SN出错处理如果接收到一个连续号错误的CFN_PDU信息,网络层则进行出错处理。信息的接收被终止,并且网 络层发送一个参数=N_WRONG_SN的N_USData.indication指示服务至相邻上层。6.5.5 流控参数N_PCI定义6.5.5.1流控参数N_PCI类型表12给出了一个FCN_PCI字节总览表12FCN_PCI 字节总览N_PDU名字FCN_PCIbyteByte1Byte2Byte376543210流控帧0011FSBSSTmi n6.5.5.2流状态参数(FS)定义流状态参数(FS)指示发送网络实体是否继续信息的发送。发送网络层实体应当支持所有FS参数规 定(不是保留的)的值。表13——FS值定义16进制值说明0继续发送(CTS)流控帧继续发送参数,通过编码N_PCI第1字节为“0” ,表示继续发送。它会促使发送方重新发送连续帧,该值意味着接收者准备好接收最大BS个连续帧。1等待(WT)流控帧等待参数通过编码N_ PCI第1字节为“1”。它会促使发送方继续等待新的流控帧(N_PDU)的到来,并重新设置N_BS定时器。2溢出(OVFLW)流控真 溢出参数通过编码N_PCI第1字节为“2”。它会促使发送方中止拆分信息的发送并且做传递参数=N_BUFFER_ OVFLW的N_USData.confirm指示服务。该N_PCI流控参数值仅能在跟在首帧N_PDU的流控帧中使用,并且仅能在首帧 中FF_DL信息的长度超过了接收实体缓冲区大小时使用。3-F保留该范围的值为该协议保留6.5.5.3FS出错处理如果接收到的 FCN_PDU信息参数出错,网络层进行出错处理。信息的发送被中止,并且网络层传递一个参数=N_INVALID _FS的N_USData.confirm指示服务至相邻的上层。6.5.5.4块大小(BS)参数定义BS参数应当编码在FCN_P CI字节2中。BS单元存储了每一块中CFN_PDU的绝对个数。例如如果块大小=20(十进制)该块应当包含20个CFN_ PDU。拆分数据中最后一块连续帧也可能少于BS个帧。表14提供了FCN_PCI字节总览表14BS值定义16进制值说明00块大小 (BS)BS参数为0用于指示发送者在拆分数据的发送期间流控制帧不再发送流控制帧了。发送网络层实体应当不停的发送剩下的连续帧以便接收 网络层实体另外的流控帧。01-FF块大小(BS)该范围的BS参数值用于指示发送方在没有接收网络实体的流控帧期间能发送的最大数目 的连续帧。6.5.5.5间隔时间(STmin)参数定义间隔时间(STmin)参数应当编码在FCN_PCI字节3.该时间在拆分数 据发送过程中,由接收实体指定,并且由发送网络实体遵守。STmin参数值指定了连续帧协议数据单元发送的最小时间间隔。表15所示。表1 5——STmin值定义16进制值说明00-7F间隔时间(STmin)范围:0ms-127ms该STmin单元的范围00- 7F为绝对单位毫秒(ms)80-F0保留该范围值为该协议保留F1-F9间隔时间(STmin)范围100us-900 us该STmin单元的范围F1-F9最小分编为100微秒(us),参数值F1代表100us,参数值F9代表900us。FA- FF保留该范围值为该协议保留STmin的度量是在一个连续帧发送完开始到请求下一个连续帧时的间隔时长。例如如果STmin=1 0(十进制),则连续帧网络协议数据单元最小时间间隔=10ms。6.5.5.6ST出错处理在拆分数据发送期间,如果FCN_PDU 信息接收到ST参数值为保留值,发送网络实体则使用最长的ST值,即(7F-127ms),而不使用从接收网络实体接收到的值。FC. Wait帧传递的最大值(N_WFTmax)该变量用于避免在通信发送方出现潜在错误挂起的时候,后者可能会持续等待。该参数用于对等通信 并不被传递,因此不包含在FC的协议数据单元里。——N_WFTmax参数应当指示一组能有多少个FCN_PDUWT能被接收者接收。 ——N_WFTmax参数的上限由用户根据系统时钟定义。——N_WFTmax参数仅由接收网络实体在接收信息的时候使用。——如果N_W FTmax参数值设置为0,流控应当继续仅使用FCN_PDUCTS。流控等待(FCN_PDUWT)不应再该网络实体中使用。网 络层定时定时参数图6显示了网络层定时参数,表16定义了网络层定时参数值及它们相应的给予数据链路服务的开始及结束时间。运行要求的数值 是是对对等通信的约束,以符合该协议。某个应用应指明规定的运行需求,该范围在表16中定义。定义超时的值应比运行要求的值大保证系统工作 且使克服运行需求值在(高总线负载)时,绝对不会满足。指定的超时的值认为是执行的最低限。实际超时的发生不应长于指定超时值+50%。网 络层在检测到错误的时候应传递合适的服务项至服务的使用者。图6网络层定制参数置位表16——网络层定时参数值定时参数描述数据链路服务 超时(ms)运行需求(ms)StartEndN_As发送方CAN帧发送时间(任何N_PDU)L_Data.requestL_Dat a.confirm1000N/AN_Ar接收方CAN帧发送时间(任何N_PDU)L_Data.requestL_Data.conf irm1000N/AN_Bs直至下一个流控帧接收的时间L_Data.confirm(FF)L_Data.confirm(FC)L_ Data.indicate(FC)L_Data.indicate(FC)1000N/AN_Br直至下一个流控帧发送的时间L_Dat a.indicate(FF)L_Data.confirm(FC)L_Data.request(FC)N/A(N_Br+N_Ar) <(0.9N_Bs)N_Cs直到下一个连续帧发送的时间L_Data.confirm(FC)L_Data.indication (CF)L_Data.request(CF)N/A(N_Cs+N_As)<(0.9N_Cr)N_Cr直到下一个连续帧接收的时 间L_Data.confirm(FC)L_Data.indication(CF)L_Data.indication(CF)10 00——S发送者R接收者网络层超时表17定义了网络层超时的触发和动作表17网络层超时出错处理超时触发动作N_As发送 方没有及时发送N_PDU放弃信息的接收并传递=N_TIMEOUT_A的N_USData.confirm指示N _Ar接收方没有及时发送N_PDU放弃信息的接收并传递=N_TIMEOUT_A的N_USData.confi rm指示N_Bs发送方没有接收到流控帧(丢失,覆盖)或在首帧前收到,或连续帧没有被接收方接收到。放弃信息的发送并传递lt>=N_TIMEOUT_Bs的N_USData.confirm指示N_Cr接收方没有收到连续帧或之前流控帧未被发送方收到。放 弃信息的接收并传递=N_TIMEOUT_Cr的N_USData.confirm指示接收到突如其来的N_PDU 意外的N_PDU定义为接收到一个节点规则之外的N_PDU。它可能是该协议定义的某条帧(N_PDU)(SFN_PUD,FFN_ PDU,CFN_PDU或者FCN_PDU),但它接收的却不是按正常的顺序,或者它是一个在本协议中无法解释未知的N_PDU 。根据网络层支持全双向的或半双向通信的不同,对“意外的”说明也不同:半双向的,两个节点之间点对点通信在同一个时刻只能是一个方向。全 双向的,两个节点之间点对点通信在同一个时刻支持双向的通信。除网络层设计决定,使用同一个地址信息(N_AI)接收或发送到一个节点,认 为意外的N_PDU。作为一个统一规则,从任何节点过来的意外的N_PDU应当被忽略,这意味着网络层对该信息的到来无需通知上层。表18 定义了在接收到意外N_PDU时,网络层动作。考虑到网络层内部状态(NWL状态)及支持半双向或全双向通信。并应知道在N_PDU接收时 候,作为发送者或接收者接收到的N_PDU包含同一个N_AI。表18——意外的N_PDU处理NWL状态接收到。。。SFN_PDU FFN_PDUCFN_PDUFCN_PDUUnknownN_PDU拆分信息发送过程中全双向通信:当接受过程中,看该表中相邻下 面部分,否则将SFN_PDU设为新接收的开始全双向通信:当接受过程中,看该表中相邻下面部分,否则将FFN_PDU设为新接收的开 始全双向通信:当接受过程中,看该表中相邻下面部分如果等待,则处理该帧,否则忽略忽略半双向的:忽略半双向的:忽略半双向的:忽略拆分信 息接收过程中止当前接收,传递=N_UNEXP_PDU的指示信号至上层,并且将SFN_PDU为新的接收开始 中止当前接收,传递=N_UNEXP_PDU的指示信号至上层,并且将FFN_PDU为新的接收开始如果等待, 则处理该帧,并运行必须的检测(例如SN是否顺序正确)否则忽略全双向的如果正在发送过程,看相应表上一单元忽略半双向的:忽略空闲将SF N_PDU为新的接收开始将FFN_PDU为新的接收开始忽略等待帧出错处理当接收者发送了N_WFTmax等待流控制帧网络协议数据 单元(FCN_PDUWT)发送方无法通过发送网络协议数据单元(FCN_PDUCTS)完成流控清除。接收方中止信息的接收,并 发送置位N_WFT_OVRN的N_USData.indication至相邻上层。信息的发送者通过接收到Result>=N_TIMEOUT_Bs的N_USData.confirm确认服务中止信息的接收。(由于丢失了接收方的流控制帧N_ PDU,在发送端产生了一个N_Bs的超时信号)交错的信息网络层应当能够实现映射不在一个地址N_AI的不同信息的传输。这能保证接收者 接收网络协议数据单元能持续的重组信息。该策略使网关具有在同时在不同子网处理不同信息传递的功能。数据链路层的使用7.1数据链路层接 口服务7.1.1L_Data.request该请求服务需要通过标识,将数据映射到指定的数据链路 层单元。标识需提供参照指定的访问格式发送数据:L_Data.request(er>)7.1.2L_Data.confirm该确认服务用于确认L_Data.request请求指定 的服务的完成,参数提供服务请求的状态。L_Data.confirm(dentifier>)7.1.3L_Data.indication该指示服务指示数据链路层到 相邻上层的事件并通过标识发送数据。L_Data.indication(r>)7.2数据链路层服务参数下列所示数据链路层服务参数在ISO11898-1中定义。ifier>:CAN标识:数据长度码: CAN帧数据:发送状态7.3映射到N_PDU域7.3.1地址格式网络层数 据交互有三种地址格式的支持:标准,扩展和混合。不同的地址格式需要不同数据长度的CAN帧对包含数据的地址信息进行打包。因此,选择单个 CAN帧的数据长度依赖于地址格式类型的选取。以下(7.3.2到7.3.5)说明了地址格式的映射机制,基于数据链路层服务及11898 -1定义的服务参数。7.3.2标准地址对于N_SA,N_TA,N_TAtype,一个特定的CAN标识符被分配。N_PCI和N_ Data安置在CAN帧的数据域。如表19.表19——N_PDU参数到CAN帧的映射——标准地址N_PDU类型CAN标识CAN帧 数据域字节1字节2字节3字节4字节5字节6字节7字节8单帧(SF)N_AIN_PCIN_Data首帧(FF)N_AIN_PCIN_ Data连续帧(CF)N_AIN_PCIN_Data流控帧(FC)N_AIN_PCIN/A7.3.3标准混合地址标准混合地址是标准 地址的子格式,也就是映射到CAN标识的地址信息更多一层定义。在上述标准通信,N_AI和CAN标识之间打开。对于标准混合通信只允许有 29bit的CAN标识。表20和21定义了射到CAN标识的目标地址类型(N_TAtype)。N_PCI和N_Data放在CAN帧数 据域。表20——标准混合地址,N_TAtype=物理的N_PDU类型29bitCAN标识,位地址CAN数据域位地址28…262 52423…161587…012345678单帧(SF)110(bin)00218(dec)N_TAN_SAN_PCIN_Data 首帧(FF)110(bin)00218(dec)N_TAN_SAN_Data连续帧(CF)110(bin)00218(dec)N_ TAN_SAN_PCIN_Data流控帧(FC)110(bin)00218(dec)N_TAN_SAN_PCIN/A表21——标 准混合地址,N_TAtype=功能的N_PDU类型29bitCAN标识,位地址CAN数据域位地址28…26252423…161 587…012345678单帧(SF)110(bin)00219(dec)N_TAN_SAN_PCIN_Data首帧(FF)110 (bin)00219(dec)N_TAN_SAN_Data连续帧(CF)110(bin)00219(dec)N_TAN_SAN_P CIN_Data流控帧(FC)110(bin)00219(dec)N_TAN_SAN_PCIN/A7.3.4扩展的地址对于N_S A,N_TA,N_TAtype,一个特定的CAN标识符被分配。N_TA安置在CAN帧数据域第一个字节,N_PCI和N_Data安 置在CAN帧数据域剩下的字节。表22——N_PDU参数到CAN帧的映射——扩展地址N_PDU类型CAN标识CAN帧数据域字节1字 节2字节3字节4字节5字节6字节7字节8单帧(SF)N_AI,无N_TAN_TAN_PCIN_Data首帧(FF)N_AI,无N_ TAN_TAN_PCIN_Data连续帧(CF)N_AI,无N_TAN_TAN_PCIN_Data流控帧(FC)N_AI,无N_T AN_TAN_PCIN/A7.3.5混合地址7.3.5.129位CAN标识混合地址是将Mtype设置为远程诊断的地址格式。表2 3和24定义了地址信息(N_AI)到29位CAN标识符的映射机制。主要是目标地址类型(N_TAtype),N_PCI和N_Data 安置在CAN帧数据域剩余字节。表23——29位CAN标识符的混合地址,N_TAtype=物理的N_PDU类型29bitCAN标识, 位地址CAN数据域位地址28…26252423…161587…012345678单帧(SF)110(bin)00206(dec)N _TAN_SAN_AEN_PCIN_Data首帧(FF)110(bin)00206(dec)N_TAN_SAN_AEN_PCIN_ Data连续帧(CF)110(bin)00206(dec)N_TAN_SAN_AEN_PCIN_Data流控帧(FC)110(bi n)00206(dec)N_TAN_SAN_AEN_PCIN/A表23——29位CAN标识符的混合地址,N_TAtype=功能的N _PDU类型29bitCAN标识,位地址CAN数据域位地址28…26252423…161587…012345678单帧(SF)11 0(bin)00205(dec)N_TAN_SAN_AEN_PCIN_Data首帧(FF)110(bin)00205(dec)N_ TAN_SAN_AEN_PCIN_Data连续帧(CF)110(bin)00205(dec)N_TAN_SAN_AEN_PCIN_ Data流控帧(FC)110(bin)00205(dec)N_TAN_SAN_AEN_PCIN/A7.3.5.211位CAN标识 符混合地址是将Mtype设置为远程诊断的地址格式。表25定义了地址信息(N_AI)到11位CAN标识的映射机制。对于N_SA,N _TA,N_TAtype,一个特定的CAN标识符被分配。N_AE安置在CAN帧数据域的第一个字节。N_PCI和N_Data安置在C AN帧数据域的剩余字节。表25——混合地址(11位CAN标识符)N_PDU类型CAN标识CAN帧数据域字节1字节2字节3字节4字节 5字节6字节7字节8单帧(SF)N_AIN_AEN_PCIN_Data首帧(FF)N_AIN_AEN_PCIN_Data连续帧(C F)N_AIN_AEN_PCIN_Data流控帧(FC)N_AIN_AEN_PCIN/A7.4CAN帧数据长度码(DLC)7.4 .1DLC参数DLC参数指定了某一个CAN帧中数据字节长度。本文档不指明数据域中长度的任何要求,而只是在网络层协议数据单元的大小 给出暗示。应用网络层要么将所有CAN帧打包成完整、全部的长度,要么优化DLC以适合网络协议数据单元。7.4.2CAN帧数据打包D LC总是设置为8.如果发送的N_PDU比8短,那么发送方将DLC设置为最大值为8(打包了一些不使用的数据字节)。这些会在SF,FC 帧或拆分信息的最后一个CF帧中会出现。DLC参数由发送方设置并由接收方决定网络层处理的每一CAN帧的数据字节个数。DLC参数无法用 于决定信息长度;该信息应该在信息的开始从N_PCI的信息中提取。7.4.3CAN帧数据优化DLC不总是为8.如果发送的N_PDU 比8短,那么发送方会通过缩减CAN帧到只包含N_PDU占有的字节数(不对无用的数据字节打包)来优化CAN总线负载。CAN帧的优化 只能针对SF,FC帧或拆分信息的最后一个CF帧。DLC参数由发送方设置并由接收方决定网络层处理的每一CAN帧的数据字节个数。DLC 参数无法用于决定信息长度;该信息应该在信息的开始从N_PCI的信息中提取。7.4.4数据长度码出错处理依赖于N_PCI的值,网络 层可计算一个接收到的CAN帧中CANDLC最小期待的值。接收到的CAN帧中DLC的值比期待的值要小,(使用打包CAN帧时比8要小或者比网络协议数据单元优化后指示的值要小)网络层应该忽略并不做任何更多的操作。附件A(非正式)按照SAEJ1939协议,使用标准与混合地址数据链路层A.1总览该附件描述如何映射地址信息参数,按照SAEJ1939协议,N_AI到CAN帧数据链路层A.2规则A.2.1标准地址表A.1显示了地址信息参数的映射,当网络目标地址类型N_TAtype使用物理地址,N_AI到CAN帧的映射。TableA.1——标准地址,物理地址信息J1939协议PRDPPFPSSA数据域位31188864内容默认110(bin)00218(dec)N_TAN_SAN_PCI,N_DataCAN标识位28–26252423–1615–87–0数据域1–8CAN域标识符Data表A.2显示了地址信息参数的映射,当网络目标地址类型N_TAtype使用功能地址,N_AI到CAN帧的映射。TableA.2——标准地址,功能地址信息J1939协议PRDPPFPSSA数据域位31188864内容默认110(bin)00219(dec)N_TAN_SAN_PCI,N_DataCAN标识位28–26252423–1615–87–0数据域1–8CAN域标识符DataA.2.2混合地址表A.3显示了地址信息参数的映射,当网络目标地址类型N_TAtype使用物理地址,N_AI到CAN帧的映射。TableA.3——混合地址,物理地址信息J1939协议PRDPPFPSSA数据域位311888856内容默认110(bin)00206(dec)N_TAN_SAN_AEN_PCI,N_DataCAN标识位28–26252423–1615–87–0数据域12–8CAN域标识符Data表A.4显示了地址信息参数的映射,当网络目标地址类型N_TAtype使用功能地址,N_AI到CAN帧的映射。TableA.4——混合地址,功能地址信息J1939协议PRDPPFPSSA数据域位311888856内容默认110(bin)00205(dec)N_TAN_SAN_AEN_PCI,N_DataCAN标识位28–26252423–1615–87–0数据域12–8CAN域标识符DataA.2.3优先级(P)优先级由用户自定义,默认为6。三个位优先级域用于优化CAN总线信息等待时间。优先级域应当接收者屏蔽(忽略)。CAN总线优先级可设置为最高0(000bin),到最低7(111bin)。A.2.4保留位(R)应当设置为“0”。A.2.5数据页(DP)应当设置为“0”。A.2.6协议数据单元格式(PF)格式为PDU1格式,“指明目标地址”诊断信息应当使用如下参数组(PGN)——混合地址:52480(dec)即N_TAtype=功能的,PF=205(dec)。——混合地址:52736(dec)即N_TAtype=物理的,PF=206(dec)。——物理地址:55808(dec)即N_TAtype=功能的,PF=218(dec)。——物理地址:56064(dec)即N_TAtype=物理的,PF=219(dec)。A.2.7PDU指定域(PS)PDU特定域应当包含目标地址,N_TAA.2.8源地址(SA)SA域应当包含源地址,N_SAA.2.9更新速率按照用户的需求A.2.10数据长度数据长度应当为8字节。 |
|