ISO 15765-2TP传输协议

目录

      • ISO 15765-2标准全解析
        • 一、ISO 15765-2概述
        • 二、传输层基本概念
        • 三、帧格式详解
        • 四、传输参数
        • 五、通信流程示例
        • 六、错误处理机制
        • 七、实现考量
        • 八、应用场景
        • 九、最新发展

ISO 15765-2标准全解析

一、ISO 15765-2概述
  1. 定义与定位

    • ISO 15765-2:道路车辆 - 诊断通信通过控制器局域网(CAN) - 第2部分:传输层协议和服务
    • 核心功能:实现诊断数据的可靠传输,支持大数据量传输
    • 应用场景:汽车ECU与诊断工具之间的通信
  2. 与其他标准的关系

    ISO 14229 (UDS) → 应用层
    ISO 15765-2      → 传输层
    ISO 15765-3      → 网络层
    ISO 11898        → 数据链路层和物理层 (CAN)
    
二、传输层基本概念
  1. 帧类型

    • 单帧(Single Frame, SF):≤7字节数据
    • 首帧(First Frame, FF):开始多帧传输,包含总长度信息
    • 连续帧(Consecutive Frame, CF):传输多帧数据的后续部分
    • 流控帧(Flow Control Frame, FC):控制数据传输速率
  2. 多帧传输机制

    发送方                          接收方
    ──────────────────────────────────────────
    1. 发送首帧 (FF) ────────────────►
    2. 发送流控帧 (FC) ────►
    3. 发送连续帧1 (CF1) ───────────►
    4. 发送连续帧2 (CF2) ───────────►
    ...
    n. 发送连续帧N (CFN) ──────────►
    
三、帧格式详解
  1. 单帧(SF)

    +------+------+----------------------+
    | SID  | DLC  | 数据字节 (1-7字节)    |
    +------+------+----------------------+
    SID: 服务ID (如0x10, 0x22等)
    DLC: 数据长度代码 (0-7)
    
  2. 首帧(FF)

    +------+------+------+----------------------+
    | SID  | FF   | LenH | LenL | 数据字节(1-6)  |
    +------+------+------+----------------------+
    SID: 服务ID
    FF: 首帧标识 (固定值0x10)
    LenH: 总数据长度高字节
    LenL: 总数据长度低字节
    
  3. 连续帧(CF)

    +------+------+----------------------+
    | SID  | SN   | 数据字节 (1-7字节)    |
    +------+------+----------------------+
    SID: 服务ID
    SN: 序列号 (0x01-0x0F循环)
    
  4. 流控帧(FC)

    +------+------+------+------+------+
    | SID  | FC   | FS   | BS   | STmin|
    +------+------+------+------+------+
    SID: 服务ID
    FC: 流控帧标识 (固定值0x30)
    FS: 流状态 (0x00=继续发送, 0x01=等待, 0x02=溢出)
    BS: 块大小 (允许连续发送的CF帧数)
    STmin: 最小帧间隔时间 (ms)
    
四、传输参数
  1. 块大小(Block Size, BS)

    • 接收方允许发送方连续发送的CF帧数
    • 取值范围:0(无限制)~ 255
    • 示例:BS=8表示发送方可以连续发送8个CF帧,然后等待新的FC帧
  2. 最小帧间隔(STmin)

    • 发送方在连续CF帧之间必须等待的最小时间
    • 取值范围:
      • 0x00-0x7F:表示STmin为0-127ms
      • 0x80-0xF9:保留
      • 0xFA-0xFF:表示STmin为100-250μs
五、通信流程示例
  1. 单帧通信(≤7字节数据)

    上位机 → ECU: [22 F1 90]  // 单帧请求 (3字节)
    ECU → 上位机: [62 F1 90 01 02 03]  // 单帧响应 (6字节)
    
  2. 多帧通信(>7字节数据)

    // 假设发送20字节数据
    上位机 → ECU: [22 10 00 14 ... 6字节数据 ...]  // 首帧 (FF)
    ECU → 上位机: [30 00 08 0A]  // 流控帧 (FC), BS=8, STmin=10ms
    上位机 → ECU: [22 01 ... 7字节数据 ...]  // 连续帧1 (CF1)
    上位机 → ECU: [22 02 ... 7字节数据 ...]  // 连续帧2 (CF2)
    上位机 → ECU: [22 03 ... 6字节数据 ...]  // 连续帧3 (CF3)
    
六、错误处理机制
  1. 超时处理

    • T1:发送方发送FF后等待FC的最大时间
    • T2:接收方发送FC后等待第一个CF的最大时间
    • T3:发送方发送CF后等待下一个FC的最大时间
    • T4:接收方处理数据的最大时间
  2. 错误恢复

    • 如果检测到超时或序列错误,发送方应:
      1. 重置传输状态
      2. 发送否定响应 (NRC=0x21, 0x22等)
      3. 等待重新启动传输
      
七、实现考量
  1. 状态机设计

    • 发送状态机:IDLE → FF_SENT → WAIT_FC → SEND_CF → COMPLETED
    • 接收状态机:IDLE → WAIT_FF → WAIT_CF → PROCESS_DATA → COMPLETED
  2. 代码实现示例

    // 伪代码:ISO 15765-2发送处理
    void SendMessage(uint8_t* data, uint16_t length) {
        if (length <= 7) {
            SendSingleFrame(data, length);  // 单帧发送
        } else {
            SendFirstFrame(data, length);  // 首帧发送
            current_state = WAIT_FC;
            start_timeout(T1);
        }
    }
    
    void HandleFlowControl(uint8_t* fc_frame) {
        uint8_t fs = fc_frame[2];  // 流状态
        uint8_t bs = fc_frame[3];  // 块大小
        uint8_t stmin = fc_frame[4];  // 最小间隔
        
        if (fs == 0x00) {  // 继续发送
            block_size = bs;
            st_min = stmin;
            frames_sent = 0;
            current_state = SEND_CF;
            SendNextConsecutiveFrame();
        } else if (fs == 0x01) {  // 等待
            current_state = WAIT_FC;
            start_timeout(T3);
        }
    }
    
八、应用场景
  1. UDS诊断通信

    • 传输大型诊断数据(如故障码列表、ECU日志)
    • 支持Flash刷写时的大数据传输
  2. 远程信息处理

    • 车联网(Telematics)数据上传/下载
    • OTA固件更新
  3. 汽车电子开发

    • 原型车测试中的数据采集
    • ECU与测试设备之间的通信
九、最新发展
  1. 与车载以太网的集成

    • 适应车载网络高带宽需求
    • 支持ISO 15765-2 over Ethernet
  2. AUTOSAR标准支持

    • 标准化的传输层软件组件
    • 支持多ECU系统的统一实现
  3. 安全增强

    • 与ISO 21434网络安全标准集成
    • 数据传输的加密和认证机制

ISO 15765-2为汽车诊断通信提供了可靠的传输层解决方案,确保了大数据量在CAN总线上的高效、稳定传输。随着汽车电子技术的发展,该标准也在不断演进,以适应新的通信需求和安全挑战。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值