《AUTOSAR 传输层协议 ISO 15765》

本文内容是查看有关15765协议的文章外加自己的理解整理出来的,感兴趣的可以浏览学习。

1 目的

为解决IOS 11898和IOS 14229协议彼此之间数据长度不统一的问题。即对I-PDU进行分段和重组,使得I-PDU长度不大于8个字节,对CAN FD而言,I-PDU不大于64个字节,数据转换成了能适应CAN总线规范的单一数据帧。
ISO 14229协议—4095个字节
ISO 11898协议—8个字节

2 名词

名词解释
CanTp(CAN Transport Layer)CAN传输模块
OBD(On-board diagnostics)车载诊断系统
UDS(Unified diagnostic services)统一诊断服务
CAN(controller area network)CAN总线
CTS(continue to send)继续发送
DoCAN(diagnostic communication over CAN)基于CAN的诊断通信
SN(sequence number)序号
BS(block size)块大小
FS(flow state)流状态
payload有效载荷,数据包中的有效数据

3 原理

3.1 引用ISO 15765协议

诊断服务是基于CAN总线实现,而当诊断数据大于8字节时(CAN帧数据段8字节),无法适应CAN总线传输,因此在传输层(CANTP)引入ISO 15765协议,该协议规定了寻址格式、帧类型、流控以及数据传输的时间管理。

3.1.1 寻址格式

传输层的数据包N_PDU格式:N_AI + N_PCI + N_Data
而将N_PDU映射到CAN数据帧的不同位置,可以形成4种寻址格式,根据在数据段的占位又划分为2组(常规 扩展/混合),其区别在于数据长度不同,如下:

在这里插入图片描述
关于CANID占位情况
常规寻址–11 bit
常规固定寻址–29 bit
应用于远程诊断,不常用:
扩展寻址–11 bit
混合寻址–11或29 bit

3.1.2 帧类型

重点N_PCI(唯一)可用于区分其他CAN总线抽象协议,将TP层报文分为单帧(SF)和多帧:首帧(FF)、流控帧(FC)、连续帧(CF)。CAN总线上的数据帧每帧数据段占8个字节,由于PCI的位置与构成,接收数据端可以分析出数据帧类型。
下面以常规寻址举例说明帧类型构成:
在这里插入图片描述

3.1.3流控

主要看流控帧FC,当接收方收到并解析FF时,会根据自身条件判断(如:接收数据缓存大小、接收数据快慢能力、当前是否可以接收数据等),向发送方回复一帧FC以达到对后续数据传输的控制。
备注:
FC只有3个字节的控制信息,无数据字节(即剩余5个字节填无效数据)
FS有:
在这里插入图片描述
BS用来设置最大连续帧数目:(体现了接收方的接收能力)
0 -> 接收方向发送端告知:接收端后续将不会再发送流控帧响应,发送端也不需要等待FC,发送端直接发送余下的连续帧数据;
01~FF -> 接收方向发送端告知:接收端能接收的连续帧的数量,之后要等待接收端的FC,单位:数据帧。
STmin表示发送方发送的2个CF之间需要的最小时间间隔。体现了接收方的处理能力,处理CAN接收的速度。
在这里插入图片描述

3.1.4网络层传输时间控制分析

三种服务原语:请求服务(request) 指示服务(indication) 确认服务(confirm)

网络层时间管理是为了保证S和R不会因为等待而永久挂起从而失去通信能力,因此设定时间参数(N_As \ N_Ar \ N_Bs \ N_Br \ N_Cs \ N_Cr),具体如下:
在这里插入图片描述

在这里插入图片描述

根据这个传输流程可以得到诊断报文的传输延迟公式:
T = N_As + N_Bs + N_Cr - Tan + (Ttan + STmin)N - STmin

3.1.5 网络层错误处理

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

网络层检测到错误时:
在这里插入图片描述

①SF_DL错误:SF_DL = 0 / SF_DL > 7(常规寻址)

接收方网络层会忽略接收到的单帧,且接收方无indication,即接收方不会向上层上报任何内容,双方均无报错。
区别:
以发送10 01举例,正常应该发送02 10 01 ***
发送08 10 01 ***:接收方检查出错误,直接忽略这帧;
发送04 10 01 ***:接收方将数据传输到应用层,但对于10服务只能是10 01两个字节,所以会在应用层报错,给出7F响应。
在这里插入图片描述

②FF_DL错误

1)FF_DL>接收方缓存,那么接收方网络层应中断报文接收,接收方发送FC,其中FS = overflow,接收方无indication;
在这里插入图片描述

2)FF_DL < 8,网络层忽略FF,接收方无indication,且不发送FC;
在这里插入图片描述

③SN错误

CF N_PDU中的SN错误,报文接收应被中断,接收方网络层应指示上层
Result= N_WRONG_SN;
在这里插入图片描述

④N_WFTmax

是接收方最多连续发送多少个等待FC帧个数,本地变量,仅可以在多包报文发送过程中接收方网络实体中定义,系统初始化时应设置正确,使用这个变量用于避免发送方节点一直处于等待FC状态。
当连续发送的FC个数达到N_WFTmax,发送方将不认可发送过来的FC,再等待一个超时之后报错并跳出等待FC状态。
在这里插入图片描述

⑤ST错误

发送方接收到的STmin设置的是保留值时,CF之间的间隔将被设置为协议最大值(7F-127ms),发送方和接收方也不会向各自上层报告错误。

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值