eric2013 发表于 2024-1-22 01:10:56

整理了下UDS支持的服务码和否定响应码类型



通过LUA小程序做的列表整理

local listSID =
{
    -- 诊断和通信管理
      {"诊断会话控制", 0x10},
      {"ECU复位", 0x11},
      {"安全访问", 0x27},
      {"通信控制", 0x28},
      {"授权", 0x29},
      {"诊断设备在线", 0x3E},
      {"访问定时参数", 0x83},
      {"安全数据传输", 0x84},
      {"控制DTC设置", 0x85},
      {"事件响应", 0x86},
      {"链路控制", 0x87},

    -- 数据传输
    {"按照标识符读取数据", 0x22},
    {"按照地址读取内存", 0x23},
    {"按照标识符读取缩放数据", 0x24},
    {"按周期标识符读取数据", 0x2A},
    {"动态定义数据标识符", 0x2C},
    {"按标识符写入数据", 0x2E},      
    {"按地址写入内存", 0x3D},
   
    -- DTC
    {"清除诊断信息", 0x14},
    {"读取DTC信息", 0x19},
   
    {"按标识符输入输出控制", 0x2F},
    {"例行控制", 0x31},   

    --上传下载
    {"请求下载", 0x34},
    {"请求上传", 0x35},
    {"传输数据", 0x36},
    {"请求传输退出", 0x37},
    {"请求文件传输", 0x38},   

    {"End", 0xFFFF}, -- 结束标志
}

local listDiagnosricSession =
{
    {"默认会话", 0x01},
    {"编程会话", 0x02},
    {"扩展诊断会话", 0x03},
    {"系统安全诊断会话", 0x04},
}

local listNRC =
{
    -- 诊断和通信管理
      {"通用拒绝", 0x10},
    {"服务不支持", 0x11},
    {"子功能码不支持", 0x12},
    {"无效的消息长度和格式", 0x13},      
    {"响应太长", 0x14},
    {"忙重复请求", 0x21},
    {"条件不正确", 0x22},
    {"请求序列错误", 0x24},
    {"子网组件无响应", 0x25},
    {"阻止请求动作执行失败", 0x26},
    {"请求超范围", 0x31},
    {"安全访问被拒绝", 0x33},
    {"无效密钥", 0x35},
    {"尝试次数已超", 0x36},
    {"所需的延迟时间未到", 0x37},
    {"上传下载未被接受", 0x70},
    {"数据传输挂起", 0x71},
    {"编程失败", 0x72},
    {"错误的块序列计数", 0x73},
    {"请求接受,响应挂起", 0x78},
    {"当前会话不支持子功能", 0x7E},
    {"当前会话不支持此服务", 0x7F},   
    {"转速太高", 0x81},
    {"转速太低", 0x82},
    {"发动机运行中", 0x83},
    {"发动机未运行", 0x84},
   
    {"发动机运行时间太短", 0x85},
    {"温度太高", 0x86},
    {"温度太低", 0x87},
    {"速度太高", 0x88},
    {"速度太低", 0x89},
   
    {"油门踏板太高", 0x8A},
    {"油门踏板太低", 0x8B},
   
    {"变速器不在空档", 0x8C},
    {"变速器不在指定挡位", 0x8D},
    {"制动开关未锁定", 0x8F},
    {"变速杆不在驻车位置", 0x90},
    {"变矩器离合器锁定", 0x91},   
    {"电压太高", 0x92},
    {"电压太低", 0x93},
   
    {"厂商指定条件不正确", 0xF0},
    {"厂商指定条件不正确", 0xF1},   
    {"厂商指定条件不正确", 0xF2},
    {"厂商指定条件不正确", 0xF3},
    {"厂商指定条件不正确", 0xF4},
    {"厂商指定条件不正确", 0xF5},
    {"厂商指定条件不正确", 0xF6},
    {"厂商指定条件不正确", 0xF7},
    {"厂商指定条件不正确", 0xF8},
    {"厂商指定条件不正确", 0xF9},
    {"厂商指定条件不正确", 0xFA},
    {"厂商指定条件不正确", 0xFB},
    {"厂商指定条件不正确", 0xFC},
    {"厂商指定条件不正确", 0xFD},
    {"厂商指定条件不正确", 0xFE},

    {"End", 0xFFFF}, -- 结束标志
}


2360985396 发表于 2024-1-23 10:42:46

硬汉哥做这类协议解析的时候,有实际的工具去测试自己写的解析对不对吗? 因为没有对标的标准很难找出问题把

eric2013 发表于 2024-1-24 08:42:35

2360985396 发表于 2024-1-23 10:42
硬汉哥做这类协议解析的时候,有实际的工具去测试自己写的解析对不对吗? 因为没有对标的标准很难找出问题 ...

这个就跟modbus一样,怎么知道自己写的modbus主从栈可以适配别的设备,测试的兼容的时候根据命令需要微调就行了。

大家都是按照这个标准写的,这个无需担心。

2360985396 发表于 2024-1-24 09:54:21

eric2013 发表于 2024-1-24 08:42
这个就跟modbus一样,怎么知道自己写的modbus主从栈可以适配别的设备,测试的兼容的时候根据命令需要微调 ...

好好谢谢硬汉哥的解答 希望硬汉哥后期有时间可以出一个关于can 的uds bootloader升级的教程

eric2013 发表于 2024-1-25 00:31:26

2360985396 发表于 2024-1-24 09:54
好好谢谢硬汉哥的解答 希望硬汉哥后期有时间可以出一个关于can 的uds bootloader升级的教程

有的。
页: [1]
查看完整版本: 整理了下UDS支持的服务码和否定响应码类型