星期二, 01 12月 2020 11:20

ISO15765-4协议解读协议之应用层数据流定义(源自C300开发板教程)

所解读的应用层协议主要是ISO15031这几个协议,ISO15031有7个协议


1. 应用层如何定义
接下来所解读的应用层协议主要是ISO15031这几个协议,ISO15031有7个协议,如下图所示。

它们分别定义什么内容很清晰,按照我们的学习风格只看对我们项目有用的协议,其它可以暂时不用看。其中红色框第五部分和第六部分是我们必须要研究的。第五部分是ISO15031-5定义排放相关的诊断服务,第六部分是ISO15031-6是定义诊断故障码的。功能性描述的协议主要还是看ISO15031-5协议,如下图所示ISO15031-5目录。
  
当前我们解读的ISO15765-4协议应用层主要是看目录第七章内容,其中我们的C300开发板第一版软件使用到的协议主要是小红色框圈起来部分内容,分别是Service$01当前动力总成诊断数据,Service$03排放相关故障码,Service$09 车辆信息中的车架号,所以小红色框圈起来的内容C300开发板也没完全使用完,比如车量信息中只使用了车架号这个协议。第一版软件用到什么内容我们先讲解什么内容。其它协议我们会在后续版本软件中继续解读。
Service$01当前动力总成诊断数据(以下简称“当前数据流”),在具体讲解当前数据流的定义前,先了解下什么是Supported PID。

上图所示,前面讲解中我们提到过ISO15765-4协议初始化命令采用SID(服务字节)是0x01,PID(参数识别号)是0x00。这里的PID=0x00是作为Supported PIDs来使用。Supported PIDs顾名思义就是识别支持的数据流参数。Supported PIDs在C300开发板第一版软件中并没有具体实现代码,它被定于第二版本软件中使用。这里提前解读,对大家自行阅读协议有比较大的帮助。对比初始化命令EntCmd15765和数据流命令DSCmd15765的值是完全一样的,其实DSCmd15765命令的PID就是第三个字节0x00,是随着请求具体数据流的不同,程序自动对其赋值,所以它的PID并不是0x00。但是这两个命令使用相同的SID=0x01,请求的是相同的服务,即当前数据流。下面我们看下当前数据流是如何请求和响应的。
 请求Supported PIDs,如下图所示。

读当前数据流之前,可以先读Supported PIDs,这是诊断仪最标准做法。表格中列出了请求命令的应用层数据。第一字节 0x01 是当前数据流的SID。第二字节是PID,但是这个PID是用于请求Supported PIDs 。这些PID的值有哪些呢?表中告诉我们可以看Annex A 这个列表。从协议截图出来如下图所示。...

继续阅读完整内容

请查看下方广告以解锁文章剩余内容

广告加载中...
查看 10282 最后修改日期 星期二, 01 12月 2020 11:38
 

瑞驰车友会微信公众号

qrcode for gh 673928177533 258

Please support our site by viewing this advertisement.

Please support our site by viewing this advertisement

Free Content