UDS(ISO14229-2006) 汉译(No.6 应用层服务)
6.1总览
应用层服务通常被当作诊断服务。应用层服务用于在基于客户端-服务器的系统(Client-Server base System)中执行一些功能,例如针对车载服务器(ECU)的检测、检查、监控和诊断。客户端通常指外部测试设备。应用层服务向若干ECU发出诊断功能的请求。ECU的部分功能在诊断服务被请求时,通过应用层服务将诊断数据反馈给客户端。客户端一般是接入CAN总线的非车载测试仪,在某些系统中也会由车载测试仪担任该角色。应用层服务用例独立于作为客户端的车载或非车载诊断仪。可能有超过一个的诊断仪同时存在于同一车辆系统中。
诊断应用层接入点规定了规定量的、具有相似整体结构的服务,又针对每个服务定义了六个服务原语:
——服务请求原语(a service request primitive),被用于客户端诊断程序,传递诊断服务的请求数据到诊断应用层的功能。
——服务请求确认原语(a service request-confirmation primitive),被用于客户端诊断程序,用于指示请求服务原语数据被完整的传送至服务器。
——服务指示原语(a service indication primitive),用于诊断应用层传递数据到服务器的ECU诊断应用的功能。
——服务响应原语(a service response primitive),用于服务器中ECU诊断应用传递从请求诊断服务到诊断应用层的数据。
——服务响应确认原语(a service response-confirmation primitive),用于服务器的ECU诊断应用功能,该功能指明响应服务原语发出的数据完好的传输到客户端。
——服务确认原语(a service confirmation primitive),用于诊断应用层发送数据到诊断仪。

Figure 4--Application layer service primitives--confirm service(应用层服务原语——确认服务)

Figure 5 -- Application layer service primitive -- unconfirmed service(应用层服务原语——非确认服务)
对给定的服务,请求原语和指示原语通常拥有相同的服务数据单元(Service Data Unit)。ISO 14229仅列举了特隶属于每个请求原语的服务数据单元的参数。用户应假设相同的参数确切地对应每个相应的服务指示原语。
对于给定的服务,响应原语和确认原语通常拥有相同的服务数据单元。ISO 14229仅列举了特隶属于每个响应原语的服务数据单元SDU的参数。用户应假设相同的参数确切地对应每个相应的指示服务原语。
对于每个响应服务原语(和响应的服务确认原语)制订了两个不同的SDU(两个服务数据单元,即两组不同的参数)。当诊断服务请求被ECU的诊断程序成功执行,一组参数被该服务原语的正响应所使用;如果诊断服务请求未被ECU的诊断程序及时且成功执行,另一组用于否定响应的参数则会被使用到。
对于给定的服务,请求-服务确认原语和响应-服务确认原语一般都有相同的SDU。这些服务原语的目的在于表明完成了之前的请求/响应服务原语的调用。ISO14229所描述的服务不使用这些服务原语,但数据链路的具体实现文档可能会用到这些服务原语来定义,例如服务执行的基准点(比如ECUReset服务会在ECU响应完全送达客户端后才执行ECU重置,那么ECUReset就是在服务器中被响应-确认服务声明了)。
6.2应用层服务格式定义
应用层服务拥有两种不同的格式,这取决于配置了车辆诊断系统。
如果各服务器和客户端直接相连于一个已配置好的车辆系统诊断网络,那么默认(普通、标准)的应用层诊断服务格式就会派上用场。此格式兼容于运行于K或L线的诊断系统格式。默认的应用层服务格式将在6.3种介绍。
应用层服务远程格式适用于车辆系统落实本地和远程服务器概念。远程格式带有一个附加的地址参数,称为远程地址。远程格式用于访问那些不直接连入主诊断网的服务器。在6.4中定介绍了应用层服务远程格式。
6.3标准服务原语的格式描述
6.3.1一般定义
所有的应用层服务都具有相同的一般格式,服务原语按写成如下形式:
service_name.type(
parameter A, parameter B, parameter C
[,parameter 1, ...]
)
解释:
——"service_name"是指诊断服务的名字(如:诊断回话控制DiagnosticSessionControl)
——"type"指示服务原语类型(如:请求)
——"parameter
A, parameter B, parameter C"服务调用所包含的必要参数
——"[parameter
1, ...]"依赖于特定服务的一些参数(例如:parameter1作为DiagnosticSessionControl服务的diagnosticSession小项)。括号说明该部分参数为可选参数。
6.3.2服务请求和服务指示原语
针对每一个应用层服务,服务请求和服务指示原语是根据以下一般格式指定:
service_name.request(
SA,
TA,
TA_type,
[,parameter 1, ...],
)
请求原语用于诊断仪应用功能,说明请求诊断服务到应用层的服务和数据发送。
service_name.indication(
SA,
TA,
TA_TYPE,
[,parameter 1, ...]
)
指示原语被用于应用层指定一个从应用层到ECU诊断应用程序的内部事件,并传输请求诊断功能到ECU诊断应用程序的服务器功能的数据。
具体的应用层服务的请求和指示原语通常具有相同的参数和参数值,这意味着当数据从客户端传输到服务器时,各个各个参数的值不应被应用层的通信对等端协议实体所改变。相同的值在服务请求中被客户端应用程序的客户端功能传输到应用层,并将被诊断应用程序的服务器功能所接收,(诊断应用程序隶属于诊断应用程序端的服务确认。)
6.3.3服务响应和服务确认原语
针对每一个确定的应用层服务,服务响应原语和服务确认原语根据以下格式指定:
service_name.response(
SA,
TA,
TA_type
Result
[,parameter 1, ...]
)
响应原语被用于ECU诊断应用程序的服务器功能,以启动该服务并传送请求诊断服务到应用层的响应数据。
service_name.confirm(
SA,
TA,
TA_type,
Result,
[,parameter 1, ...]
)
确认原语用于应用层指定一个从应用层到客户端应用的内部事件,并且该事件传送有关上一个服务请求诊断仪中客户端功能的结果。它不一定指示任何活动的远程接口,例如:请求服务不被服务器支持,或者通信中断。
对于一个特定的应用层,响应原语和确认原语常具有相同的参数和参数值。这意味着当数据从服务器传输到客户端时,各个参数的值不应被应用层的通信对等端协议实体所改变。相同的值在服务请求中被客户端应用程序的客户端功能传输到应用层,并将被诊断应用程序的服务器功能所接收,(诊断应用程序隶属于诊断应用程序端的服务确认。)
针对每一个响应和确认原语两个不同的服务数据单元[SDU](两组参数)被定义:
——如果ECU的服务器功能正确执行了请求诊断服务,肯定的响应和确认原语应被用于第一个服务数据单元。
——如果请求诊断服务失败或者没有在规定的时间没有被ECU的服务器功能完成,一个负响应原语和确认原语将被用于第二个服务数据单元。
6.3.4服务请求确认原语和服务响应确认原语
对于每一个应用层服务,服务请求确认原语和服务响应确认原语根据以下一般格式指定。
service_name.req_confirm(
SA,
TA,
TA_Type,
Result
)
请求确认原语是应用层定义的一个应用层到客户端的内部事件,该事件传送有关上一次服务请求到诊断仪——客户端功能的结果。
service_name.rsp_confirm(
SA,
TA,
TA_Tpye,
Result
)
响应确认原语用于应用层指定一个由应用层到客户端、并传输关于上一个服务响应到ECU应用程序——服务器功能的结果的内部事件,
6.4远程服务原语的格式说明
6.4.1一般定义
如果使用应用层远服务的程格式,就可以诊断本地客户端和远程服务器之间的通信。所有定义的作为应用层服务的默认格式都适用。
UDS(ISO14229-2006) 汉译(No.6 应用层服务)的更多相关文章
- UDS(ISO14229-2006) 汉译(No.7 应用层协议)【未完,待续】
7.1定义 应用层协议通常作为确认消息的传输,意味着从客户端发送的每一个请求都将有由服务器端产生的与之相对的响应. 唯一的例外在于:例如使用了功能寻址方式,或者该请求/指示没有指定生成响应/确定的少数 ...
- UDS(ISO14229-2006) 汉译(No.7 应用层协议)
标签:cte amp 通信 pac condition man 没有 参数错误 family 7.1定义 应用层协议通常作为确认消息的传输,意味着从客户端发送的每一个请 ...
- SOA面向服务架构
SOA面向服务架构 风尘浪子 只要肯努力,梦想总有一天会实现 随笔分类 - SOA面向服务架构 结合领域驱动设计的SOA分布式软件架构 摘要: 领域驱动设计DDD的总体结构,Repository层使用 ...
- ABP入门系列(18)—— 使用领域服务
ABP入门系列目录--学习Abp框架之实操演练 源码路径:Github-LearningMpaAbp 1.引言 自上次更新有一个多月了,发现越往下写,越不知如何去写.特别是当遇到DDD中一些概念术语的 ...
- NLayerAppV3-Infrastructure(基础结构层)的Data部分和Application(应用层)
回顾:NLayerAppV3是一个使用.net 2.1实现的经典DDD的分层架构的项目. NLayerAppV3是在NLayerAppV2的基础上,使用.net core2.1进行重新构建的:它包含了 ...
- kali linux之应用层Dos
应用层服务漏洞: 服务代码存在漏洞,遇异常提交数据时程序崩溃 应用处理大量并发请求能力有限,被拒绝的是应用或OS 缓冲区溢出漏洞: 向目标函数随机提交数据,特定情况下数据覆盖临近寄存器或内存 影响:远 ...
- 保持WCF服务端与客户端的长连接
背景 客户端与服务端使用WCF建立连接后:1.可能长时间不对话(调用服务操作):2.客户端的网络不稳定. 为服务端与客户端两边都写“心跳检测”代码?不愿意. 解决 设置inactivityTimeou ...
- FTP服务搭建配置笔记
1.什么是文件共享服务? 简单来说就是文件域存储块设备可以共享给他人使用. 1.1 实现文件共享服务的三种方式 FTP:属于应用层服务,可以跨平台使用 NFS:属于内核模式,不可以跨平台使用 Samb ...
- CentOS6.7搭建部署FTP服务 (详解主配置文件)
FTP传输 三种解析: username -->UID :/etc/passwd 将用户名转换成UID的库. hostname---> IP :DNS服务,/et ...
随机推荐
- 《Entity Framework 6 Recipes》中文翻译系列 (44) ------ 第八章 POCO之POCO中使用值对象和对象变更通知
翻译的初衷以及为什么选择<Entity Framework 6 Recipes>来学习,请看本系列开篇 8-4 POCO中使用值对象(Complex Type--也叫复合类型)属性 问题 ...
- edit
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- java IO流 之 字节流
一.file类的常用操作 File file=new File("E:\\test\\javaIo"); System.out.println(file.isDirectory() ...
- java继承、抽象和接口
package zdbExtends;public class Grandparent { public Grandparent(){ System.out ...
- 动态加载JS 和 CSS
<script type="text/javascript"> $(function () { var filename = '/assets/css/main.css ...
- CSS系列:CSS表格样式
1. 设置单元格的边框 border-collapse: collapse; 2. 边框的分离 对table使用CSS实现cellspacing的属性border-spacing. border-sp ...
- WPF如何仿制QQ2013登录窗口的关闭效果
昨天,有位朋友问我,WPF能做出像QQ2013窗口在关闭时那个貌似透明过渡的动画吗?我就歪着脸跟他说:"只有你想不到的,没有WPF做不到的". 他又接着说:"我知道肯定会 ...
- 前端MVVM框架avalon揭秘 - HTML编译器
MVVM试图更加清晰的讲用户界面(UI)开发从应用程序的业务逻辑与行为中心分离,因为,很多这样的模式的实现都需要利用声明式数据绑定来实现讲View(视图)工作从其他层分离 所以出现了一大堆自定义的声明 ...
- c语言表白程序代码
双十一要到了,好激动啊!!! 是时候准备出手了! 花了一天的时间写的表白代码. 表示自己弱弱的..... 看了网上好多都是js写的,感觉碉堡了!js用的不熟,前端不好,java,Python写起来 ...
- Web APi之HttpClient注意事项以及建议(四)
前言 之前对于用SelfHost来手动实现Web API的宿主模式,似乎不是太深入,所以本篇文章我们一起来讨论关于利用HttpClient来访问Web API上的资源来进行探讨以及注意相关事项,希望此 ...