目录

4.1 服务的原语

4.2 应用层服务的格式描述

4.3 服务原语的格式描述

4.3.1 一般定义

4.3.2 服务请求和服务指示原语

4.3.3 服务响应和服务确认原语

4.3.4服务请求确认和服务响应确认原语

4.4 服务数据单元(Services data unit)规范

4.4.1 强制性参数

4.4.1.1 A_Mtype, Application layer message type(应用层消息类型)

4.4.1.2 A_SA, Application layer source address(应用层源地址)

4.4.1.3 A_TA, Application layer target address(应用层目的地址)

4.4.1.5 A_TA_Type, Application layer target address type(应用层目的地址类型)

4.4.1.6 A_Result

4.4.1.7 A_Length

4.4.1.8 A_Data

4.4.2 车辆系统要求

4.4.3 可选参数—A_AE, Application layer remote address(应用层远程地址)

结尾


书接上回,上一篇笔记我介绍了一下14229-1的内容、意义、发展以及文档中的一些术语和缩略语,这边文章继续往下阅读,做好心理准备,本章的内容不是很好理解哦,让我们一起走进服务的世界。

应用层服务通常被称为诊断服务,诊断服务应用于基于客户端-服务器的系统中,主要的功能是执行对车载服务器的测试、检查、监控或诊断等功能。客户端又常常被称作外部测试设备,他使用应用层服务来请求在一个或多个服务器上执行诊断功能;而服务器通常是ECU的一部分,他使用应用层服务所请求的诊断服务提供相应数据发回给客户端。

4.1 服务的原语

诊断服务层提供了许多服务,这些服务都具有相同的结构。对于每个服务,都指定了6个服务原语。

--服务请求原语:由诊断测试器应用中的客户端功能使用,用于将关于所请求的诊断服务的数据传递到诊断应用层;

--服务请求确认原语:由诊断测试仪应用程序中的客户端功能使用,用于指示在服务请求原语中传递的数据已在诊断测试仪所连接的车辆通信总线上成功发送;

--服务指示原语:由诊断应用层使用,用于将数据传递给ECU诊断应用的服务器功能;

--服务响应原语:由ECU诊断应用中的服务器功能使用,用于将由所请求的诊断服务提供的响应数据传递到诊断应用层;

--服务响应确认原语:由ECU诊断应用程序中的服务器功能使用,以指示在服务响应原语中传递的数据在ECU接收到诊断请求的车辆通信总线上成功发送;

--服务确认原语:由诊断应用程序层用于将数据传递给诊断测试仪应用程序中的客户端功能。

对于这些原语14229-1中有两张图帮助理解,下面两张图分别描述了应用程序层服务原语--经确认的服务和应用程序层服务原语-未经确认的服务。

4.2 应用层服务的格式描述

根据车辆诊断系统的配置方式,应用层服务可以有两种不同的格式。应用层服务的格式由参数A_MType控制:如果车辆系统配置为客户端可以通过使用A_SA和A_TA地址参数寻址所有服务器,则应使用应用层服务的默认格式。这意味着A_Mtype=diagnostics(诊断);如果车辆系统被配置为客户端除了允许寻址特定服务器的A_SA和A_TA地址参数之外还需要地址信息,则应使用应用层服务的远程格式。这意味着A_Mtype=remote diagnostics(远程诊断)。

4.3 服务原语的格式描述

咳咳,事先说明一下,这个服务原语的格式我也没有理解太好,看了一遍就像看了一遍一样,我也只能做一个简单的翻译,并没有太多自己的理解,各位凭自己的理解能力去理解吧。

4.3.1 一般定义

所有的应用层服务都有相同的通用格式。服务原语都是按照下图的模板来编写的:

看看这个图,比较懵是吧,别慌,14229-1给出了图中各元素的解释:

--“service_name”是诊断服务的名称(例如DiagnosticSessionControl),

--“type”指示服务原语的类型(例如request),

--“parameter A,...”是作为由服务原语(寻址信息)传递的值的列表的A_ SDU(Application layer Service Data Unit),

--“parameter A, parameter B, parameter C”是所有服务调用中都应包含的强制性参数,

--“[,parameter 1, ...]”是取决于特定服务的参数(例如,parameter1可以是DiagnosticSessionControl服务的诊断会话)。括号表示参数列表的这部分可能为空。

4.3.2 服务请求和服务指示原语

对于每个应用层服务,服务请求原语和服务指示原语都用下面的通用格式来指定。

诊断测试器应用程序中的客户端功能使用请求原语来启动服务并将有关请求的诊断服务的数据传递给应用程序层。

指示原语由应用层使用,以指示对ECU诊断应用程序很重要的内部事件,并将有关所请求的诊断服务的数据传递给ECU诊断应用程序的服务器功能。

特定应用层服务的请求和指示原语总是具有相同的参数和参数值。这意味着当数据从客户端传输到服务器时,应用层的通信对等协议实体不应改变各个参数的值。在服务请求调用中由客户端应用中的客户端功能传递给应用层的相同值应由诊断应用的服务器功能从对等应用层的服务指示中接收。

4.3.3 服务响应和服务确认原语

对于每个应用层服务,服务响应原语和服务确认原语都用下面的通用格式来指定。

响应原语由ECU诊断应用程序中的服务器功能使用,以启动服务并将所请求的诊断服务提供的响应数据传递给应用程序层。

应用层使用确认原语来指示对客户端应用程序重要的内部事件,并将相关联的先前服务请求的结果传递给诊断测试器应用程序中的客户端功能。它不一定指示远程对等接口上的任何活动,例如,如果服务器不支持请求的服务或通信中断。

特定应用层服务的响应和确认原语始终具有相同的参数和参数值。这意味着当数据从服务器传输到客户端时,应用层的通信对等协议实体不应改变各个参数的值。ECU诊断应用程序的服务器功能在服务响应调用中传递给应用程序层的相同值应由诊断测试仪应用程序中的客户端功能从对等应用程序层服务确认中接收。

对于每个响应和确认原语,将指定两个不同的服务数据单元(两组参数)。

--如果ECU中的服务器功能能够成功执行所请求的诊断服务,则第一个服务数据单元应使用肯定响应和肯定确认原语。

--如果请求的诊断服务失败或ECU中的服务器功能无法及时完成,则否定响应和确认原语应与第二个服务数据单元一起使用。

4.3.4服务请求确认和服务响应确认原语

对于每个应用层服务,服务请求确认原语和服务响应确认原语都用下面的通用格式来指定。

请求确认原语被应用程序层用于指示对客户端应用程序很重要的内部事件,并将关联的先前服务请求的通信结果传递给诊断测试器应用程序中的客户端函数。

应用层使用响应确认原语来指示对服务器应用程序重要的内部事件,并将相关联的先前服务响应的通信结果传递给ECU应用程序中的服务器功能。

4.4 服务数据单元(Services data unit)规范

4.4.1 强制性参数

应用层服务包含三个强制性参数。

4.4.1.1 A_Mtype, Application layer message type(应用层消息类型)

类型:枚举

范围:诊断,远程诊断

描述:参数Mtype应用于识别4.2中规定的车辆诊断系统的格式。ISO 14229的这部分为这个参数指定了两个值的范围:如果A_Mtype = diagnostics,则service_name原语应由参数A_SA、A_TA和A_TAtype组成;如果A_Mtype = remote diagnostics,则service_name原语应由参数A_SA、A_TA、A_TAtype和A_AE组成。

4.4.1.2 A_SA, Application layer source address(应用层源地址)

类型:2字节无符号整数值

范围:0x0000 - 0xFFFF

描述:参数SA应用于对客户端和服务器标识符进行编码。

对于服务请求(和服务指示),A_SA表示请求诊断服务的客户端功能的地址。请求诊断服务的每个客户端功能应以一个A_SA值表示。如果在同一诊断测试仪中实现了多个客户端功能,则每个客户端功能应具有自己的客户端标识符和相应的A_SA值。

对于服务响应(和服务确认),A_SA表示执行请求的诊断服务的服务器功能的地址。服务器功能可以仅在一个ECU中实现,也可以在多个ECU中分布和实现。如果服务器功能仅在一个ECU中实现,则应仅使用一个A_SA值对其进行编码。如果一个服务器功能在多个ECU中分布和实现,则应使用每个单独服务器功能的一个A_SA值对各个服务器功能地址进行编码。

如果远程客户端或服务器是消息的原始来源,则A_SA代表从远程网络到主网络的门户的本地服务器。

注意:如果请求消息使用物理寻址,则响应消息中的A_SA值将与相应请求消息中的A _TA值相同。

4.4.1.3 A_TA, Application layer target address(应用层目的地址)

类型:2字节无符号整数值

范围:0x0000 - 0xFFFF

描述:参数A_TA应用于对客户端和服务器标识符进行编码。

两种不同的寻址方法:物理寻址和功能寻址,都是诊断特有的。因此,可以为一个车辆系统定义两组独立的目标地址(每个寻址方法一个)。

物理寻址应始终是指向在一个ECU中实现的服务器的专用消息。当使用物理寻址时,该通信是客户端和服务器之间的点对点通信。

如果客户端不知道应响应诊断服务请求的服务器功能的物理地址,或者如果服务器功能在多个ECU中实现为分布式功能,则客户端使用功能寻址。当使用功能寻址时,通信是从客户端到在一个或多个ECU中实现的服务器的广播通信。

对于服务请求(和服务指示),A_TA表示应执行请求的诊断服务的服务器的服务器标识符。如果正在寻址远程服务器,则A_TA代表从主网络到远程网络的本地服务器。

对于服务响应(和服务确认),A_TA表示最初请求诊断服务的客户端功能的地址,并且将接收所请求的数据(即请求的A_SA)。 服务响应(和服务确认)应始终使用物理寻址。 如果远程客户端正在寻址,则A_TA代表从主网络到远程网络的本地服务器。

注意:响应消息的A_TA值将始终与相应的请求消息的A_SA值相同。

4.4.1.5 A_TA_Type, Application layer target address type(应用层目的地址类型)

类型:枚举

范围:物理,功能

描述:参数A_TA_type是A_TA参数的扩展。它用于表示为消息传输选择的寻址方法。

4.4.1.6 A_Result

类型:枚举

范围:ok,error

描述:req_confirm和rsp_confirm原语使用参数“A_Result”来指示消息是否已正确传输(ok)或消息传输是否未成功(error)。

4.4.1.7 A_Length

类型:4字节无符号整数值

范围:

描述:此参数包括要传输/接收的数据的长度。

4.4.1.8 A_Data

类型:字节字符串

范围:不适用

描述:此参数包括上层实体要交换的所有数据。

4.4.2 车辆系统要求

车辆制造商应确保系统中的每个服务器具有唯一的服务器标识符。车辆制造商还应确保系统中的每个客户端都具有唯一的客户端标识符。

车辆系统中诊断网络的所有客户端和服务器地址应编码为相同范围的源地址。这意味着在给定的车辆系统中,客户端和服务器不应使用相同的A_SA值表示。

服务器的物理目标地址应始终与服务器的源地址相同。

远程服务器标识符可以独立于主网络上的客户端和服务器标识符进行分配。

一般来说,只有被寻址的服务器才能响应客户端请求消息。

4.4.3 可选参数—A_AE, Application layer remote address(应用层远程地址)

类型:2字节无符号整数值

范围:0x0000-0xFFFF

描述:A_AE用于扩展可用地址范围,以对客户端和服务器标识符进行编码。A_AE只能用于实现本地服务器和远程服务器概念的车辆。远程地址表示其自己的地址范围,并且独立于主网络上的地址。

参数A_AE应用于编码远程客户端和服务器标识符。A_ AE可以表示远程目标地址或远程源地址。

对于主网络上客户端发送的服务请求(和服务指示),A_AE表示应执行请求的诊断服务的服务器的远程服务器标识符(远程目标地址)。

A_AE可以用作物理地址和功能地址。对于A_AE的每个值,系统建设者应指定该值是否代表物理地址或功能地址。

注意:A_TA_type指定A_TA的寻址方法的方式没有特殊参数来表示物理或功能远程地址。 物理和功能远程地址共享1个字节范围内的值,每个值的含义由系统构建者定义。

对于远程服务器发送的服务响应(和服务确认),A_AE表示执行所请求的诊断服务的远程服务器的物理位置(远程源地址)。

远程服务器可以仅在一个ECU中实现,也可以在多个ECU中分布和实现。如果远程服务器仅在一个ECU中实现,则应仅使用一个A_AE值对其进行编码。如果远程服务器分布在多个ECU中并实现,则远程服务器标识符应使用远程服务器的每个物理位置的一个A_AE值进行编码。

结尾

那么到这里,新的一章也就结束了,这一张主要介绍了几个应用层的服务原语和服务的格式介绍,介绍了其中的几个参数,这一章读起来有点晦涩难懂,本人也没有理解太好,所以大多数都是在搬运,那么没关系,相信到后面用到这里知识点的时候,结合实际应用的情况来理解这些参数会更好理解一些。

感谢阅读,让我们一起向前,加油吧!

ISO14229-1专栏--(2)应用层服务介绍相关推荐

  1. ISO14229-1专栏(5)--诊断与通信管理功能单元服务介绍

    从这篇文章开始就要接触14229-1的核心内容--诊断服务的介绍了,在之后的文章中我们会接触到26个服务以及若干个他们的子服务. 我们介绍的顺序也是和14229-1中的顺序相同,不是按照SID从小到大 ...

  2. 京东云专业安全服务介绍 | 京东云技术团队

    根据LogicMonitor发布的未来云服务趋势研究报告显示,到2020年,企业在各类云产品上的支出将高于其在一般IT服务成本六倍以上,与此同时,所有企业的工作量将有83%都在云上实现,各企业将继续加 ...

  3. mavros的常用服务介绍(怪不得普罗米修斯解锁和切offboard是通过调用服务实现的,PX4官方的offboard示例代码也是通过调用服务切offboard的,原来服务是在MAVROS里写的!)

    怪不得普罗米修斯解锁和切offboard是通过调用服务实现的(输入999的方式),PX4官方的offboard示例代码也是通过调用服务切offboard的,我之前还好奇服务是写在哪里的,原来是MAVR ...

  4. Bluetooth应用层框架介绍

    .Bluetooth应用层框架介绍 Bluetooth应用框架 1)Applications:Android蓝牙应用程序,就是使用蓝牙的API的程序: 2)Java FW:提供给应用使用的API,我们 ...

  5. 2.1 DNS服务介绍和安装

    DNS服务介绍和安装 一 DNS概述 通过为每台主机建立IP地址与域名之间的映射关系,用户可以避开难记的IP地址,而是用域名就可以访问网络中的站点:即平常我们上网输入的都是域名,www.baidu.c ...

  6. Linux系统Logrotate服务介绍

    Linux系统Logrotate服务介绍 本文转自 民工哥 51CTO博客,原文链接:http://blog.51cto.com/mingongge/1957688

  7. OpenStack精华问答 | OpenStack服务介绍

    关于OpenStack的争议,从未停止,每每关于它的消息,都会一石激起千层浪.今天就让我们看看关于OpenStack的问答吧. 1 Q : OpenStack服务介绍 A : MySQL为各个服务器提 ...

  8. 11g Rac 服务介绍

    一.服务介绍 安装结束后,会产生一些后台进程来确保集群正常工作并能够与外部通讯.其中的一些有序linux平台的要求需要以root用户权限来启动.比如,网络配 置的改动就需要更高的权限.其他后台进程将以 ...

  9. 聊聊ADAMoracle去中心化预言机网络服务介绍

    聊聊ADAMoracle去中心化预言机网络服务介绍. 去中心化的预言机将让开发者有能力使用任意数量的预言机为智能合约提供服务,可以避免单点故障,以及降低中心化预言机作恶带来的损失.因此,可靠的去中心化 ...

最新文章

  1. 鸿蒙系统今日发布 中国人自己的操作系统,中国人自己的操作系统,有望取代谷歌安卓的地位,但面临一个难题...
  2. 既然都说外企香,给你准备一波外企面经!
  3. KMP算法的动态规划解说
  4. Python 【搜狐号】短视频的自动上传与发布实例演示,同时支持抖音、快手、哔哩哔哩、小红书、微视、西瓜视频、微信视频号等平台的视频自动化同步发布
  5. [C#]关于override和new在重写方法时的区别
  6. 在线浏览器摄像头软件!妈妈再也不用担心我的windows摄像头驱动没更新啦!
  7. iOS学习系列 - 标签Tag列表的实现
  8. ExtJs之ExtJs.Model验证
  9. [转载] python3安装superset踩坑解决过程
  10. js实现动态数字时钟
  11. Java Web开发实战经典(基础篇)
  12. 抖音敏感词归类,抖音都有哪些违规词,违规行为。
  13. Delphi FastReport组件下载,包含多个版本,自己选择
  14. java连接FTP下载文件
  15. 【Word】编号与文字间距过大
  16. CCS6.0新建DSP_2833x工程文件详解
  17. Export file created by EXPORT:V10.01.00 via conventional path
  18. 【最终省二】全国大学生数学建模大赛-参赛经历
  19. 少儿编程培养孩子逻辑思维
  20. Linux如何安装rpm文件

热门文章

  1. 京东sign 算法app
  2. 【优化求解】基于matlab求解能谱效率优化问题【含Matlab源码 1836期】
  3. jenkins配置钉钉机器人推送job构建信息
  4. 使用中遇到阿里云网站备案的基本概念类问题怎么解决?
  5. 好好编程-物流项目06【Spring整合】
  6. chatgpt赋能python:Python图片加密:加强图片保密性的利器
  7. 借“疫”上位的虚拟观众
  8. 【大数据】解决kafka内网连接正常,外网无法连接的问题
  9. python自动化脚本-一 个 Python 自动化脚本引发的惨案!把公司搞死了?
  10. 抖音运营技巧分享(全程干货无废话)