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 应用层服务)的更多相关文章

  1. UDS(ISO14229-2006) 汉译(No.7 应用层协议)【未完,待续】

    7.1定义 应用层协议通常作为确认消息的传输,意味着从客户端发送的每一个请求都将有由服务器端产生的与之相对的响应. 唯一的例外在于:例如使用了功能寻址方式,或者该请求/指示没有指定生成响应/确定的少数 ...

  2. UDS(ISO14229-2006) 汉译(No.7 应用层协议)

    标签:cte   amp   通信   pac   condition   man   没有   参数错误   family 7.1定义 应用层协议通常作为确认消息的传输,意味着从客户端发送的每一个请 ...

  3. SOA面向服务架构

    SOA面向服务架构 风尘浪子 只要肯努力,梦想总有一天会实现 随笔分类 - SOA面向服务架构 结合领域驱动设计的SOA分布式软件架构 摘要: 领域驱动设计DDD的总体结构,Repository层使用 ...

  4. ABP入门系列(18)—— 使用领域服务

    ABP入门系列目录--学习Abp框架之实操演练 源码路径:Github-LearningMpaAbp 1.引言 自上次更新有一个多月了,发现越往下写,越不知如何去写.特别是当遇到DDD中一些概念术语的 ...

  5. NLayerAppV3-Infrastructure(基础结构层)的Data部分和Application(应用层)

    回顾:NLayerAppV3是一个使用.net 2.1实现的经典DDD的分层架构的项目. NLayerAppV3是在NLayerAppV2的基础上,使用.net core2.1进行重新构建的:它包含了 ...

  6. kali linux之应用层Dos

    应用层服务漏洞: 服务代码存在漏洞,遇异常提交数据时程序崩溃 应用处理大量并发请求能力有限,被拒绝的是应用或OS 缓冲区溢出漏洞: 向目标函数随机提交数据,特定情况下数据覆盖临近寄存器或内存 影响:远 ...

  7. 保持WCF服务端与客户端的长连接

    背景 客户端与服务端使用WCF建立连接后:1.可能长时间不对话(调用服务操作):2.客户端的网络不稳定. 为服务端与客户端两边都写“心跳检测”代码?不愿意. 解决 设置inactivityTimeou ...

  8. FTP服务搭建配置笔记

    1.什么是文件共享服务? 简单来说就是文件域存储块设备可以共享给他人使用. 1.1 实现文件共享服务的三种方式 FTP:属于应用层服务,可以跨平台使用 NFS:属于内核模式,不可以跨平台使用 Samb ...

  9. CentOS6.7搭建部署FTP服务 (详解主配置文件)

    FTP传输 三种解析: username -->UID  :/etc/passwd    将用户名转换成UID的库. hostname--->        IP   :DNS服务,/et ...

随机推荐

  1. ASP.NET MVC学前篇之Lambda表达式、依赖倒置

    ASP.NET MVC学前篇之Lambda表达式.依赖倒置 前言 随着上篇文章的阅读,可能有的朋友会有疑问,比如(A.Method(xxx=>xx>yy);)类似于这样的函数调用语句,里面 ...

  2. 新人入职100天,聊聊自己的经验&教训

    这篇文章讲了什么? 如题,本屌入职100天之后的经验和教训,具体包含: 对开发的一点感悟. 对如何提问的一点见解. 对Google开发流程的吐槽. 如果你 打算去国外工作. 对Google的开发流程感 ...

  3. 小型单文件NoSQL数据库SharpFileDB初步实现

    小型单文件NoSQL数据库SharpFileDB初步实现 我不是数据库方面的专家,不过还是想做一个小型的数据库,算是一种通过mission impossible进行学习锻炼的方式.我知道这是自不量力, ...

  4. 小型文件数据库 (a file database for small apps) SharpFileDB

    小型文件数据库 (a file database for small apps) SharpFileDB For english version of this article, please cli ...

  5. C语言 · 图形显示

    问题描述 编写一个程序,首先输入一个整数,例如5,然后在屏幕上显示如下的图形(5表示行数): * * * * * * * * * * * * * * *     #include "stdi ...

  6. 《Entity Framework 6 Recipes》中文翻译系列 (14) -----第三章 查询之查询中设置默认值和存储过程返回多结果集

    翻译的初衷以及为什么选择<Entity Framework 6 Recipes>来学习,请看本系列开篇 3-6在查询中设置默认值 问题 你有这样一个用例,当查询返回null值时,给相应属性 ...

  7. EF6 Power Tools的妙用和问题

    环境:vs2013+EF:6.1.3.0+Power Tools:Beta 4 power tools:是一个反向工程,在已有数据库的情况下,可以利用它生成Code Frist模式的代码. 问题: 它 ...

  8. DDN - Digital Data Network

    DDN(Digital Data Network,数字数据网)是一种利用光纤.数字微波或卫星等数字传输通道和数字交叉复用设备组成的数字数据传输网.它可以为用户提供各种速率的高质量数字专用电 数字数据网 ...

  9. spring快速入门(三)

    一.在spring快速入门(二)的基础上,原先我们是采用构造方法完成对象的注入.这里还有其他的方法可以完成注入,通过set方法来完成. 修改UserActionImpl package com.mur ...

  10. <canvas>设置宽高遇到的问题

    在使用<canvas>元素时必须设置宽度和高度,指定可以绘画的区域大小.但是这里设置宽度和高度的时候有一个小问题. 样例代码: <!DOCTYPE html> <html ...