【ISO14229

您所在的位置:网站首页 UDS否定响应码37 【ISO14229

【ISO14229

#【ISO14229| 来源: 网络整理| 查看: 265

目录 1、0x38服务(RequestFileTransfer,请求文件传输服务)2、请求报文格式2.1 请求报文定义2.2 请求报文中子函数参数定义2.3 请求报文中数据参数定义 3、肯定应答报文3.1 肯定应答报文格式定义3.2 肯定应答报文数据参数定义 4、支持的否定应答码(NRC_)5、0x38服务(RequestFileTransfer,请求文件传输服务)案例说明

1、0x38服务(RequestFileTransfer,请求文件传输服务)

  Service description:   0x38服务(RequestFileTransfer,请求文件传输服务)被客户端用于初始化从客户端到服务端或者服务端到客户端的文件数据传输(下载或者上传)。另外,该服务有能力去获取文件系统的一些信息。   如果服务端实现了数据存储的文件系统,则该服务可以作为RequestDownload 和 RequestUpload服务的可替代的解决方案来支持数据上传或者下载功能。当配置文件系统的下载或者上传过程时,则应该使用RequestFileTransfer服务来替代。在服务端的文件系统中,该服务应该包含删除文件或者目录的功能。对于这个案例,TransferData 和 RequestTransferExit服务不适用。   在服务端已经接收到 RequestFileTransfer的请求报文之后,服务端在其发送肯定应答报文之前,应该采取必要的行为去接收或者传送数据。

2、请求报文格式 2.1 请求报文定义

  下表定义了请求报文的格式:

字节序号参数值约定字节值#1RequestFileTransfer Request SIDM0x38#2modeOfOperationM0x01 - 0x05#3#4filePathAndNameLength [           byte#1 (MSB)           byte#2] (LSB)MM0x00 - 0xFF0x00 - 0xFF#5..#5+n-1filePathAndName = [               byte#1 (MSB)               .               .               byte#n ]M..C10x00 - 0xFF..0x00 - 0xFF#5+ndataFormatIdentifierC20x00 - 0xFF#5+n+1fileSizeParameterLengthC20x00 - 0xFF#5+n+2..#5+n+2+k-1fileSizeUnCompressed= [               byte#1 (MSB)               .               .               byte#k ]C2..C2,30x00 - 0xFF..0x00 - 0xFF#5+n+2+k..#5+n+1+2kfileSizeCompressed= [               byte#1 (MSB)               .               .               byte#k ]C2..C2,30x00 - 0xFF..0x00 - 0xFF

  C1:这个消息参数的长度(字节数)由 filePathAndNameLength 来定义。   C2:这些参数是否存在取决于 modeOfOperation 参数。   C3:这个消息参数的长度(字节数)由 fileSizeParameterLength 来定义。

2.2 请求报文中子函数参数定义

  该服务未使用子函数参数。

2.3 请求报文中数据参数定义

  该服务在请求报文中的数据参数定义如下表所示:

定义modeOfOperation 这个数据参数定义了文件或目录的操作类型,其在filePathAndName参数显示。这个参数值的定义如下表所示。filePathAndNameLength 定义了参数 filePath的字节长度。filePathAndName 定义了服务端中文件系统的位置,是增加,删除,替代或者是读取,取决于参数modeOfOperation。另外,该参数包含了文件名,名字可以作为文件路径中的部分可以被增加,删除,替代或者是读取。如果 modeOfOperation 参数值 = 0x05(ReadDir),该参数表示读取目录。该参数的每个字节都应该按照ASCII格式来编码。dataFormatIdentifier 该数据参数是单字节值,其每一位都可以单独编码。高位指定了压缩方法,低位指定了加密方法。0x00值表示既没有使用压缩方法,也没有使用加密方法。除了0x00之外的值都由汽车制造厂商指定。如果 modeOfOperation 参数值等于0x02(删除文件) 和 0x05(读取目录),该参数则不应该出现在请求报文中。fileSizeParameterLength 定义参数 fileSizeUncompressed 和 fileSizeCompressed 的字节长度。如果 modeOfOperation 参数值等于0x02(删除文件),0x04(读取文件) 和 0x05(读取目录),该参数则不应该出现在请求报文中。fileSizeUncompressed 定义未压缩文件的字节长度。如果 modeOfOperation 参数值等于0x02(删除文件),0x04(读取文件) 和 0x05(读取目录),该参数则不应该出现在请求报文中。fileSizeCompressed 定义压缩文件的字节长度。如果传输未压缩的文件,则该参数的所有字节都应设置为参数fileSizeUncompressed中使用的大小信息。如果 modeOfOperation 参数值等于0x02(删除文件),0x04(读取文件) 和 0x05(读取目录),该参数则不应该出现在请求报文中。

  RequestFileTransfer服务请求报文中包含了 modeOfOperation 参数。该值定义如下表:

Byte ValueDescription约定0x00ISO/SAE reservedISO保留M0x01AddFile该值被用来添加文件M0x02DeleteFile该值被用来删除文件M0x03ReplaceFile该值被用来替代文件。如果文件未储存,那么该文件应该被添加。M0x04ReadFile该值被用来读取文件。如果文件未储存,那么该文件应该被添加。M0x05ReadDir该值被用来读取目录。此值表示请求中不包含faileName。M0x06 - 0xFFISO/SAE reservedISO保留。M 3、肯定应答报文 3.1 肯定应答报文格式定义 字节序号参数值约定字节值#1RequestFileTransfer Response SIDS0x78#2modeOfOperationM0x01 - 0x05#3lengthFormatIdentifierC10x00 - 0xFF#4..#4+(m-1)maxNumberOfBlockLength = [             byte#1 (MSB)             .             .             byte#m ]C1,2..C1,20x00 - 0xFF..0x00 - 0xFF#4+mdataFormatIdentifierC10x00 - 0xFF#4+m+1#4+m+2fileSizeOrDirInfoParameterLength [           byte#1 (MSB)           byte#2 (LSB)]C1C10x00 - 0xFF0x00 - 0xFF#4+m+3..#4+m+3+k-1fileSizeUncompressedOrDirInfoLength= [             byte#1 (MSB)             .             .             byte#k ]C1,3..C1,30x00 - 0xFF..0x00 - 0xFF#4+m+3+k..#4+m+3+2k-1fileSizeUncompressedOrDirInfoLength= [             byte#1 (MSB)             .             .             byte#k ]C1,3..C1,30x00 - 0xFF..0x00 - 0xFF

  C1:这些参数是否存在取决于 modeOfOperation 参数。   C2:这个消息参数的长度(字节数)由 fileSizeOrDirInfoParameterLength 参数的定义。   C3:这个消息参数的长度(字节数)由 lengthFormatIdentifier 来定义。

3.2 肯定应答报文数据参数定义

  下表定义了肯定应答报文中的数据参数:

定义modeOfOperation 此参数是请求值。lengthFormatIdentifier 定义了 maxNumberOfBlockLength 参数的长度(字节数量)。如果 modeOfOperation 参数值为0x02 (删除文件) ,那么该参数值不该包含在应答报文中。maxNumberOfBlockLength 该参数被 requestFileTransfer 肯定应答报文用来通知客户端有多少的数据字节量(maxNumberOfBlockLength)包含在 TransferData 的请求报文中,或者去通知服务端有多少的数据字节量包含在 TransferData 肯定应答报文中,当上传数据时。这个长度反映了完整的消息长度,包含了服务标识符和出现在 TransferData 请求报文或者是肯定应答报文中的数据参数。该参数允许客户端在开始向服务端传输数据之前去适应服务端的接收缓冲区的大小,或者在上传的事件中显示出每个 TransferData 肯定应答报文中将包含多少个数据字节。服务端要求接收 transferData 的请求在长度上等于它汇报的 maxNumberOfBlockLength。服务端指定 transferData 请求长度应该小于接收的 maxNumberOfBlockLength 。dataFormatIdentifier 该参数是请求值。如果 modeOfOperation 的值等于0x02(删除文件),则响应报文中不包括此参数。如果 modeOfOperation 的值等于0x05(读取目录),该参数值应该等于0x00。fileSizeOrDirInfoParameterLength 以字节为单位,定义了待上传文件压缩文件的大小,或者待读取的目录信息的长度。如果 modeOfOperation 的值等于0x01(添加文件),0x02(删除文件) 或者 0x03 (取代文件),则应答报文中不包含此参数。fileSizeUncompressedOrDirInfoLength 以字节为单位,定义了参数 fileSizeUncompressedOrDirInfoLength 和 fileSizeCompressed的长度。如果 modeOfOperation 的值等于0x01(添加文件),0x02(删除文件) 或者 0x03 (取代文件),则应答报文中不包含此参数。fileSizeCompressed 以字节为单位,定义了压缩文件的长度。如果 modeOfOperation 的值等于0x01(添加文件),0x02(删除文件) 或者 0x03 (取代文件) 或者 0x05 (读取目录) ,则应答报文中不包含此参数。 4、支持的否定应答码(NRC_)

  本服务实施了如下否定响应代码,下表记录了每个否定应答码发生的情况,如果服务端在错误场景使用了该服务,则应使用如下列出的否定响应码。

NRC描述0x13incorrectMessageLengthOrInvalidFormat请求报文长度不正确时,会发送该NRC。0x22conditionsNotCorrect服务端接收到该服务的请求时,下载或者上传数据正在进行中,或者其他的条件不满足时执行该服务时,会发送该NRC。0x31requestOutOfRange以下情况会返回该NRC:— 指定的 dataFormatIdentifier 无效;— 指定的 modeOfOperation 无效;— 指定的 fileSizeParameterLength 无效;— 指定的 filePathAndNameLength 无效;— 指定的 fileSizeUncompressed 无效;— 指定的 fileSizeCompressed 无效;— 指定的 filePathAndName 无效;0x33securityAccessDenied当该服务请求被接收时,服务端是保密的,会发送该NRC。0x70uploadDownloadNotAccepted由于某种错误,下载到服务端内存中的尝试无法完成,则返回该NRC。

  0x38服务(RequestFileTransfer,请求文件传输服务)的否定应答码(NRC)具体处理过程如下。 在这里插入图片描述

5、0x38服务(RequestFileTransfer,请求文件传输服务)案例说明

  Assumptions:   以下条款为该案例指定了如下条件。   下表定义了报文中的数据参数值:

NameValuesDescriptionmodeOfOperation0x01AddFilefilePathAndNameLength0x001EfilePathAndName参数的长度为30filePathAndName“D:\mapdata\europe\germany1.yxz”路径包括了文件名称dataFormatIdentifier0x11compressionMethod = 0x1X; encryptingMethod = 0xX1fileSizeParameterLength0x02文件长度和大小都是2个字节fileSizeUncompressed0xC35050KBytefileSizeCompressed0x753030KByte

  下表定义了 RequestFileTransfer 服务请求报文的案例,报文从客户端到服务端:

字节序号描述字节值#1RequestFileTransfer Request SID0x38#2modeOfOperation0x01#3#4filePathAndNameLength [           byte#1 (MSB)           byte#2] (LSB)0x000x1E#5#6#7#8#9#10#11#12#13#14#15#16#17#18#19#20#21#22#23#24#25#26#27#28#29#30#31#32#33#34filePathAndName = [           byte#1 (MSB)           byte#2           byte#3           byte#4           byte#5           byte#6           byte#7           byte#8           byte#9           byte#10           byte#11           byte#12           byte#13           byte#14           byte#15           byte#16           byte#17           byte#18           byte#19           byte#20           byte#21           byte#22           byte#23           byte#24           byte#25           byte#26           byte#27           byte#28           byte#29           byte#30 ]0x440x3A0x5C0x6D0x610x700x640x610x740x610x5C0x650x750x720x6F0x700x650x5C0x670x650x720x6D0x610x6E0x790x310x2E0x790x780x7A#35dataFormatIdentifier0x11#36fileSizeParameterLength0x02#37#38fileSizeUnCompressed= [           byte#1 (MSB)           byte#2]0xC30x50#39#40fileSizeCompressed= [           byte#1 (MSB)           byte#2]0x750x30

下表定义了 RequestFileTransfer 肯定应答报文的案例,报文从服务端到客户端:

字节序号描述字节值#1RequestDownload Response SID0x78#2modeOfOperation0x01#3lengthFormatIdentifier0x02#4#5maxNumberOfBlockLength = [            byte#1 (MSB)            byte#m ]0xC30x50#6dataFormatIdentifier0x11

返回UDS诊断服务功能单元介绍目录



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3