UDS——ISO15765

目录

一、前言

二、术语

三、网络层报文

四、网络传输

五、网络层地址格式

六、错误识别和处理


一、前言

ISO15765-2定义了诊断模型中TP网络传输层对于不同CAN报文格式单帧和多帧的处理方式。ISO15765目的是为了解决ISO 11898协议中定义的经典CAN数据链路层与ISO 14229协议中定义的应用层,彼此之间数据长度不统一的问题,比如:经典CAN数据链路层最大能够支持8个字节,但ISO 14229并不仅仅是为了CAN总线设计的,最大容量达到4095个字节。

二、术语

物理通信:使用物理寻址的方式进行通信场景,客户端与服务器之间一对一的诊断通信方式,属于单播方式。

功能通信:使用功能寻址的方式进行通信场景,客户端向多个服务器发出同一功能的诊断请求,一对多的通信方式,属于广播方式;比如禁止/允许所有ECU发送诊断报文。

SA(源地址):发送节点地址(网络层节点地址)

TA(目标地址):接收节点地址(网络层节点地址)

注:在11位CANID中不使用源地址和目标地址

PDU(协议数据单元):是一组信息和数据的集合,表示发送方和接收方对等实体之间传递的信息和数据,包括PCI(协议控制信息)和Data(数据)。

SF(单帧传输):数据长度<6/7字节(第一个字节一般表示数据字节个数)

多帧传输:数据长度>6/7字节,最多允许0xFFF=4095字节,报文类型包括首帧(FF):描述数据传输的起始;流控帧(FC):传输过程中,报文流控制;CF(连续帧):传输数据

三、网络层报文

3.1PDU

PDU是协议数据单元,不同类型的报文的PDU不同。

N_PDU:{N_AI,  N_PCI,  N_Data}

N_AI:表示寻址信息(address information),隐含源地址,目标地址,寻址方式信息。网络层的地址映射到CANID上

N_PCI:协议控制单元,用于标示N_PDU类型:单帧、第一帧、连续帧和流控制帧

N_Data:数据,包含应用层协议控制信息A_PCI和数据A_Data

3.2N_PCI

N_PCI表示协议控制信息,PCI的第一个字节会标示出是什么类型。需要注意的是连续帧第一个是21-2F,然后是20-2F,20-2F。

注:上述的顺序是MSB在前,LSB在后

流控帧的含义:

FS:

0表示继续发送。让发送方继续发送接下来的连续帧,表示接收方已经做好准备接受最大BS数量的连续帧。

1表示等待。发送方等待下一帧流控帧并重置自己的计时。用于接收方没有处理完上一帧接收到的连续帧

2表示过载。发送方打算发送的数据长度超过了接收方的存储能力。

BS:1-FF表示发送方在发送BS数值的连续帧之后,需要等待接收方的流控帧。0表示不需要任何流控帧,直接发送全部的数据。

STmin:表示发送方发送的两个连续帧之间,最小需要的时间间隔。00~7F单位ms;F1~F9表示0.1~0.9ms;0表示按照发送方最快的速度发送。假如STmin设置为1ms,那么发送方可以以1ms发送也可以1.2ms间隔发送

总的来说流控帧控制发送方以多少大小,多少速度的方式发来数据,太大了或者太快了受不了。

示例:

单帧:

0表示单帧,2表示有两个字节10 01

连续帧:

1表示首帧,00F表示有15个字节长度,从


 

 

四、网络传输

4.1单帧报文

示例:

4.2多帧报文传输

发送方首先发送第一帧(首帧),接收方回复流控制帧表示后面的数据以什么格式发送。

示例:

4.3网络层时间参数

S:send发送方

R:receive接收方

N_As:发送方发送完首帧的时间,主要取决CAN速率

N_Br:接收方接收到首帧,发出流控制帧的时间(Developer设计)

N_Cs:发送方接收到流控制帧,发出连续帧的时间(Developer设计)

 

五、网络层地址格式

将N_PDU映射到CAN数据帧的不同位置,构成了4种地址格式:

常规寻址:对于11位CANID,N_AI映射到CANID,但没有规定N_AI与CANID的具体映射关系

常规固定寻址:对于29位CANID,与混合寻址编排方式类似,完整定义了N_AI如何映射到29位CANID上

扩展寻址:对于11位CANID,N_AI中的N_TA映射到CAN数据帧的第一个字节,N_AI中的其它域映射到CANID

混合寻址:11位或者29位CANID,仅用于远程寻址

常规寻址模式:仅用于11位CANID,寻址方式定义到CANID中,比如物理寻址,功能寻址和回复地址(ECU->Tester)

常规固定寻址:用于29位CANID,分为物理寻址18hDAh和功能寻址18hDBh,需要分解出来CANID后填充N_TA,N_SA

物理寻址:

功能寻址:

扩展寻址:仅用于11位ID,在CAN网络中不常见;在LIN网络中可以见到,N_TA在LIN中为NAD(从节点)

混合寻址:仅用于远程诊断,在第一个字节加入扩展地址

11位CANID:

物理寻址:

功能寻址:

六、错误识别和处理

错误识别和处理包括数据格式错误识别和处理超时识别与处理非预期帧识别与处理

(1)第2-4表示网络传输超时,对应多帧传输序列

(2)SN错误:连续帧CF N_PDU的SN不对错误

网络层处理:报文接收被中断,接收方网络层指示上层<Result>=N_WRONG_SN(4),触发发送方超时错误

(3)FS错误:流控制帧只支持30(继续发送),31(等待),32(过载),若发送方网络层接收FC的N_PDU的FS不是这几种

网络层处理:报文发送被中断,发送方网络层应指示上层<Result>=N_INVALID_FS,接收方触发超时错误

(4)非预期帧处理:在多包(非诊断帧)报文传输过程中,任何一方接收到非期望报文(同一个N_AI);网络设计者确定网络采用全双工或半双工,根据节点处于接收状态发送状态空闲状态网络层处理方法不同

半双工状态:当网络层处于发送状态,收到任何报文均忽略

全双工状态:除SF和物理寻址的FF外,其他包括功能寻址的FF均忽略且不向上层报告

注:全双工允许数据在两个方向上同时传输;半双工允许数据在两个方向上传输,但是同一时间数据只能在一个方向上传输,实际上是切换的单工。

(5)N_WFTmax错误:接收方最多连续发送多少个等待FC帧个数,本地变量,尽可以在多包报文发送过程中接收方网络实体中定义,系统初始化时应设置正确,使用该变量用于避免发送方一直处于等待FC状态;接收方发送流控制帧达到MAX时还没有处理完本地数据触发该错误

网络层处理:发送方触发超时错误,接收方指示上层<Result>=N_WFT_OVRN

 

(6)FF_DL错误:发送方发送连续帧首帧长度大于接收方的缓存

网络层处理:接收方网络层中断报文接收,接收方发送FC=Overflow(8),接收方无indication

(7)SF_DL错误:表示常规寻址数据长度=0或者大于7

网络层处理:接收方网络层应忽略接收到的单帧,且接收方无indication

应用层处理:如果出现长度不满足,应该给予负响应7F+错误码

(8) FF_DL<8/7(常规寻址模式为8,扩展或者混合寻址为7)多帧数据长度小

网络层处理:忽略FF,接收方无indication,且不发送FC;(触发发送方超时错误)

 

(9)ST处理,流控制帧的设置参数STmin;发送方接收到FC中的STmin设置为保留值时,发送方继续发送CF,只是各个CF的间隔时间为协议最大值(7F-127ms),发送方和接收方没有错误向上层报告

 

 

 

参考:

UDS网络层/TP层(ISO 15765-2)的解读:https://zhuanlan.zhihu.com/p/44857562

UDS学习笔记(四)——ISO15765:https://blog.csdn.net/zengqz123/article/details/100584687

UDS诊断基础:https://www.bilibili.com/video/BV1wt4y1D71K/?spm_id_from=333.788.recommend_more_video.0

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值