当前位置: 首页 > news >正文

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总线上的高效、稳定传输。随着汽车电子技术的发展,该标准也在不断演进,以适应新的通信需求和安全挑战。

http://www.dtcms.com/a/278532.html

相关文章:

  • 迁移学习之图像预训练理解
  • 【双链表】【数组】
  • ubuntu(22.04)系统上安装 MuJoCo
  • 计算机网络(基础概念)
  • 网络协议和基础通信原理
  • qt-- 编译工具-Cmake的使用
  • 一文读懂循环神经网络(RNN)—语言模型+读取长序列数据(2)
  • Python----NLP自然语言处理(NLP自然语言处理解释,NLP的发展历程)
  • QT——文件操作类 QFile和QTextStream
  • 【同等学力-计算机-真题解析】离散数学-图论(握手定理、欧拉公式)
  • ARMv8.1原子操作指令(ll_sc/lse)
  • #Paper Reading# Apple Intelligence Foundation Language Models
  • 【Linux网络】:HTTP(应用层协议)
  • 深入解析 Transformer:开启自然语言处理新时代的革命性模型
  • uni-app在安卓设备上获取 (WIFI 【和】以太网) ip 和 MAC
  • 游戏框架笔记
  • SAP ERP与微软ERP dynamics对比,两款云ERP产品有什么区别?
  • [个人笔记] WSL 完整使用指南及 Claude Code 配置记录
  • 019_工具集成与外部API调用
  • 【HarmonyOS】元服务概念详解
  • ubuntu系统在线安装postgres
  • 【视频格式转换】.264格式转为mp4格式
  • React Three Fiber 实现 3D 模型视图切换、显隐边框、显隐坐标轴
  • R 语言科研绘图第 64 期 --- 哑铃图
  • Python 基础语法2:组合数据类型、异常
  • Kafka——集群核心参数配置
  • TensorFlow深度学习实战(26)——生成对抗网络详解与实现
  • [Dify]-进阶1- Dify 支持的多种 AI 模型解析与选择建议
  • 排序算法(二):插入排序
  • 数据安全防护技术:筑牢信息安全防线