ISO15765协议
ISO 15765 网络层协议分析
ISO 15765 网络层的功能主要有:
(1)为上层的应用层提供接口服务。
(2)进行内部操作。为上层服务提供接口从而实现数据交流;主要有为对等实体间的通信提供分段、重组和流控制这几种方法方法。
(3)网络层中的时间控制。
网络层原语服务分析
对于为上层提供服务,网络层一共定义了以下 3 个原语服务
通过这三种原语服务可以与上层服务的建立起简单通信,对于这些网络层的原语服务都遵循如下结构:
Server_name:是指具体的服务(在应用层中的规定)
Type:三种原语服务中的一种
N_AI(Address Information)包含了原语服务的地址信息,一般包含:是否是远程帧(Mtype)、原语的发出地址(N_SA)、原语的目的地址(N_TA)
N_PCI(Protocol Control Information)则包含了原语帧的具体信息如:此消息帧属于何种帧类型(单帧、首帧、连续帧)、帧的长度(Length)等
N_Data(Data Field)为该原语所包含的具体的数据
网络层内部传输服务
在内部传输操作中,由于CAN 总线上的数据帧每帧只能传输8 个字节,ISO15765 为了适应CAN 总线上的数据传输,根据诊断报文数据长度的不同规定了单帧传输和多帧传输这两种方式。
1.单帧传输
当应用层的诊断服务数据可以利用单帧 CAN 数据传送时,可以采用单帧传送方式
2.多帧传输
当所需传输的数据无法利用单帧 CAN 报文传送时,则使用多帧传送方式进行。在多帧传送方式中,网络层根据需要,将诊断数据进行拆分成一个首帧和多个连续帧。首帧包含了分段数据的总长度信息以及一些数据帧;每个连续帧的第一个字节都包含拆分的顺序编号,后面的七个字节用于存放诊断数据。接收端在接收到连续帧后根据接收数据帧的编号重组服务数据。
发送端和接收端通过N_PCI 确认发送或者接收的帧为首帧、流控制帧还是连续帧
接收端通过对接收到数据帧的第一个字节进行分析就可以得出所接收到的数据帧为何种数据帧,以及所需要接收的数据长度。
接收的数据第一个字节的高四位为 0 则表示所接收的数据帧为单帧,再通过读取低四位以确定单帧数据中的有效数据字节长度。
接收的数据第一个字节的高四位为 1 则表示所接收的数据帧为多帧的首帧。再读取第四位和第二个字节后确认所要接收的字节数后,根据接收的能力和双方通信速率发送流控制帧,然后等待多帧连续帧的到来。
接收的数据第一个字节的高四位为 2 则表示所接收的数据帧为多帧的连续帧。然后在比对SN(连续帧编号)之后将数据放入接收缓冲区。
接收的数据第一个字节的高四位为 3 则表示所接收的数据帧为流控制帧。低四位的FS 表示发送端所需要进行的动作。BS 为能够连续发送连续帧的数量、STmin 为每两帧之间的时间间隔。
接收的数据第一个字节的高四位为 4-F 则保留。
网络层时间控制分析
网络层的时间管理是为了保证发送端和接收端不会因为等待而永久的挂起,从而失去了通信的能力。因此在每次通话的过程中设置了超时的时间参数。
N_As:发送端将数据传送到接收端的最大时间。
N_Bs:发送端在成功发送首帧后到收到流控制帧的最大时间。
N_Br:接收端在接收到首帧后到发送流控制的最大时间。
N_Ar:接收端将流控制传送到发送端的最大时间。
N_Cr:接收端在成功发送流控制后到收到连续帧的最大时间。
Ttan:每帧传输的时间。
STmin:连续帧两帧之间的最小发送间隔。
根据整个的传输流程我们可以得到诊断报文的传输延迟的公式:
N_As、N_Bs、N_Cr、Ttan 在实际应用中均为固定值,由此可知在多帧传输中,STmin 参数对于多帧传输的时间有着重要的影响。
发送接收流程
ISO15765协议相关推荐
- 一种基于 ISO15765 协议的获取车辆信息的方法
一,背景 随着家用轿车的越来越普及,汽车保有量也越来越大,随之而产生的车联网产品也越来 越多.所有的车联网产品几乎都需要获取原车的数据,简单到车速,转速,节气门开度,剩 余油量等等.专车专用的车联网产 ...
- 对于UDS协议的传输控制协议ISO15765的学习记录
参考:UDS网络层/TP层(ISO 15765-2)的解读 讲的很非常好. can报文一帧只能最多传输8个字节,但是UDS协议要求最多能传输4095字节,因此就产生了ISO15765协议. 数据单元( ...
- 汽车诊断协议ISO15765
CAN ISO15765 协议格式 一 需要知道的缩写 DoCAN diagnostic communication over controller area network 诊断通信控制器区域网络 ...
- UDS,ISO14229,ISO15765,ISO15031,J1939车辆诊断协议入门系列
(图片来源于网络) 目录 摘要 1. 基础概念 1.1 诊断的概念 1.2 诊断的目标 1.3 诊断的实现 1.4 诊断是分层的 2. 项目应用 3. 协议栈开发 摘要 回想当年刚进去汽车行业,做新能 ...
- 【车载开发系列】UDS诊断---常见的ISO标准集合
[车载开发系列]UDS诊断-常见的ISO标准集合 常见的ISO标准集合 [车载开发系列]UDS诊断---常见的ISO标准集合 一.前言 二.基于CAN总线ISO 1)ISO11898 2)ISO115 ...
- 7层OSI模型学习指南
1. OSI模型是什么 1.1 OSI模型的定义 OSI参考模型是由7层或7个步骤构成系统模型,具体是指开放系统互连参考模型(Open System Interconnection,OSI),用于各种 ...
- 【车载开发系列】CAN总线通信---总线报文格式
[车载开发系列]CAN总线通信-总线报文格式 CAN总线通信---总线报文格式 [车载开发系列]CAN总线通信---总线报文格式 一.什么是ISO15765 二.ISO15765的目的 三.单帧传输的 ...
- 【STM32-CAN】基于STM32的OBD监测车速系统设计
1.前言 本文利用CAN总线源码,进行车速数据的逆向破解. 本文亦在通过OBD技术获取汽车实时车速,OBD技术涉及的内容繁多,如何在如此繁多的内容中提炼出一个行之有效的方法去实现我们的目的是本文的创作 ...
- 汽车诊断系统相关知识
一.车载诊断系统概述 汽车诊断是指在汽车整车不解体的条件下,运用科学的手段,确定汽车的状态,查明故障部位及原因的技术.包括汽车发送机的检测和诊断,汽车底盘的检测和诊断,汽车本身和附件的检测与诊断,以及 ...
最新文章
- 内置装饰器一:@classmethod、@staticmathod
- 【WPF】如何使用wpf实现屏幕最前端的绘图?
- 使用STM32的USB模块中后对USB缓冲区的认识
- Sharepoint页面里添加.net托管代码
- 论文审稿人可以下岗了?CMU都做出论文审稿机器人了!
- CharacterEncodingFilter作用
- mfc gridctrl 设置某列自动伸长_三明桥梁智能张拉设备数控智能张拉系统全自动智能张拉系统...
- PHP可以通过什么组件上传大文件
- 【点宽专栏】Dual Thrust 交易策略
- Your application has presented a UIAlertController的解决方法
- 华硕fl5600l装固态并重装系统到固态
- 全排列回溯算法C语言,回溯算法(以全排列为例)
- kindle特性和硬件介绍(不介绍操作和使用方法)
- 【数据科学】05 数据合并(merge、concat、combine)与数据清洗(缺失值、重复值、内容和格式)
- OpenCVSharp异常--OpenCVSharp.NativeMethods的初始值异常
- javascript短路运算
- linux 删除网卡配置文件,linux-如何通过命令行/ shell脚本从etc / wpa_supplicant / wpa_supplicant.conf中删除网络配置文件...
- 【音视频数据数据处理 1】【YUV篇】分离YUV420P像素数据中的Y、U、V分量
- NET Framework平台
- Labview表达式节点的应用——以一个计算式为例
热门文章
- A study finds nearly half of jobs are vulnerable to automation
- 利用Python实现scissors-rock-paper-lizard-Spock小游戏
- Excel打造翻译神器(自定义函数)
- Netbeans 7.1 add android plugin
- docker-compose部署单机版nacos(自定义数据库)
- HTTP 错误 404.3 - Not Found 由于扩展配置问题而无法提供您请求的页面。
- ListNode的理解
- python需要多久才能学会_大家觉得自学python多久能学会?
- 2019迅雷校园招聘!后端工程师岗位两次技术面题目总结和解析
- matlab绘制布尔运算图,最强干货——PPT布尔运算最全攻略