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

[嵌入式系统-152]:CAN总线最大数据只有8个字节,CAN FD最大才64个字节,这么小的数据量,如何进行稍大一点的数据传输?

  • 经典 CAN:单帧最大 8 字节
  • CAN FD:单帧最大 64 字节

虽然 CAN FD 提升了 8 倍,但对于传输固件升级包、传感器配置、诊断数据、状态日志等稍大一点的数据(如几 KB 到几 MB),仍然远远不够。

那么,如何在 CAN/CAN FD 总线上实现“大”数据传输?

答案是:通过分包传输协议(Segmented Transfer Protocol),将大数据“拆成小包”,在总线上一帧一帧发送,接收端再“重新组装”。


一、核心解决方案:分包传输协议

1. ISO 15765-2:传输协议与网络层(TP)

这是最主流、最标准的解决方案,常被称为 CAN TPDoCAN(Diagnostic communication over CAN)

✅ 它是 ISO 14229 UDS(统一诊断服务)和 ISO 15031(车载排放诊断)的基础。

🔧 工作原理
帧类型说明
单帧(Single Frame, SF)数据 ≤ 7 字节(CAN)或 ≤ 62 字节(CAN FD),一帧发完
首帧(First Frame, FF)数据 > 7/62 字节时,发送首帧,包含总长度(0–4095 字节)
连续帧(Consecutive Frame, CF)后续数据帧,按序发送,带序列号(0–15 循环)
流控帧(Flow Control, FC)接收方控制发送节奏(避免溢出)
🔄 传输流程(以 CAN 为例,传输 200 字节)
发送方(Tester)                          接收方(ECU)│                                      ││  FF: [0x10][0xC8][data_0..5]         ││─────────────────────────────────────▶│  ← 首帧:总长 200 字节,发前 6 字节│                                      ││  FC: [0x30][0x03][0xFF]              ││◀─────────────────────────────────────│  ← 流控:允许发3帧,间隔≥1ms│                                      ││  CF: [0x21][data_6..13]              ││─────────────────────────────────────▶││  CF: [0x22][data_14..21]             ││─────────────────────────────────────▶││  CF: [0x23][data_22..29]             ││─────────────────────────────────────▶│  ← 连续帧,每帧8字节│                                      ││  FC: [0x30][0x03][0xFF]              ││◀─────────────────────────────────────│  ← 再次流控│                                      ││  ...(继续发送 CF)...               ││                                      ││  CF: [0x18][...][data_199]           ││─────────────────────────────────────▶│  ← 最后一帧│                                      ││  ← ECU 处理完成,返回响应           │

总数据量:200 字节,通过 1 FF + 25 CF = 26 帧完成。


2. CAN FD 下的 UDS TP(ISO 15765-2 扩展)

CAN FD 支持最大 64 字节数据,因此分包效率更高:

帧类型CAN FD 可用数据字节数
SF最多 62 字节(2 字节控制信息)
FF最多 61 字节(3 字节控制信息)
CF最多 61 字节(3 字节控制信息)

📈 效率对比

  • 传输 1000 字节:
    • CAN:需 ~125 帧(每帧 8 字节有效数据)
    • CAN FD:仅需 ~17 帧(每帧 61 字节有效数据) → 效率提升 7 倍!

二、其他大数传方案(非 UDS)

1. 基于应用层的自定义分包协议

适用于非诊断场景,如:

  • 固件升级(Bootloader)
  • 参数批量写入
  • 日志上传
示例:自定义分包格式
// 首帧
[0x01] [总长度低8] [总长度高8] [数据...]
// 连续帧
[0x02] [序号] [数据...]
// 结束帧(可选)
[0x03] [校验和]

优点:灵活、轻量
缺点:需自定义,无标准工具支持


2. 使用 CANopen 协议栈(工业领域)

  • SDO(Service Data Object):支持分段上传/下载对象字典数据
  • PDO(Process Data Object):用于实时小数据,不适用大数传

3. 网关 + 其他高速总线(混合架构)

当数据量极大(如摄像头、地图更新),不依赖 CAN 总线

[主控 SoC] │├── CAN FD ───→ [电机控制器](实时控制)├── Ethernet ──→ [激光雷达](点云数据)├── USB ───────→ [固态硬盘](日志存储)└── Wi-Fi/5G ──→ [云端](OTA 升级包下载)

现代智能汽车/机器人采用“多总线融合”架构

  • CAN FD:实时控制、状态同步
  • Ethernet:高带宽传感器
  • 5G/Wi-Fi:大文件传输、远程诊断

三、实际应用案例

场景数据量传输方式
UDS 诊断读取 DTC< 100 字节单帧或少量连续帧
读取电池单体电压(100节)~200 字节UDS TP 分包
写入电机控制参数(50个)~300 字节UDS TP 或自定义协议
OTA 固件升级(1MB)1,048,576 字节❌ 不走 CAN
✅ 通过以太网/5G 下载,再通过 CAN FD 分块写入 Flash
机器人关节校准数据上传5 KBCAN FD + 自定义分包协议

四、性能估算(CAN FD)

假设:

  • 波特率:仲裁段 500 kbps,数据段 2 Mbps
  • 每帧有效数据:61 字节
  • 帧间隔:1 μs

传输 1 KB(1024 字节)所需时间:

  • 帧数:ceil(1024 / 61) = 17 帧
  • 每帧时间 ≈ 400 μs(含传输+间隔)
  • 总时间 ≈ 6.8 ms

✅ 完全满足大多数非实时大数传需求(如诊断、配置)。


五、总结

问题解决方案
CAN/CAN FD 单帧数据小✅ 使用 分包协议(如 ISO 15765-2 / UDS TP)
如何保证可靠性✅ 流控(FC)、序列号、超时重传
大数据(>100KB)怎么办✅ 采用 多总线架构:CAN FD 用于控制,Ethernet/5G 用于大文件
如何提升效率✅ 优先使用 CAN FD,减少分包数量

🔑 核心思想
CAN/CAN FD 不是“高速公路”,而是“高可靠的小型快递网络”
它通过“分拆包裹 + 编号投递 + 签收确认”的机制,安全、可靠、标准化地传输任意大小的数据,是汽车和机器人系统中不可或缺的“神经末梢通信方式”。

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

相关文章:

  • 个人网站做论坛还是博客好广州网站备案公司
  • 仓颉 Markdown 解析库在 HarmonyOS 应用中的实践
  • 肇庆 网站建设ci设计
  • 小九源码-springboot089-在线学习平台
  • 申请域名就可以做网站了吗网站如何做的有气质
  • 乐陵市住房和城乡建设局网站济南建立网站
  • 旅游网页设计模板网站保定网站制作网页
  • C++类和对象(中):构造函数与析构函数的核心逻辑
  • 数据结构--顺序表的测试
  • Intel HD Graphics 2000可以在window 11 中使用openGL
  • 昆明网站建设网站一建论坛建工教育网
  • 建站宝盒设置wordpress 跳转到首页
  • PySide6 文本编辑(QTextEdit)查找功能进阶 读取并记录上一次状态
  • Vivado 增量综合检查点错误的排查与解决
  • 学院的网站怎么做自己怎么制作网页游戏
  • 哪家企业的网站做的好榆林微网站建设
  • 【嵌入式】环形缓冲区缓和读写速度差的原因分析
  • 聊城开发区建设局网站郑州聚商网络科技有限公司
  • 上海网站设计制作报价门头沟高端网站建设
  • 随州网站推广哪家权威织梦导航网站模板
  • Docker安装Elasticsearch、kibana、IK分词器
  • 银河麒麟V10 Docker安装
  • 聊城开发区建设局网站国家建设部官方网站赵宏彦
  • 十堰英文网站建设网站的空间域名
  • 【SpringCloud(6)】Gateway路由网关;zuul路由;gateway实现原理和架构概念;gateway工作流程;静态转发配置
  • 什么网站做简历模板网站开发用哪些技术
  • 电商网站主题html国庆节网页制作代码
  • 聊城网站制作公司wordpress通过标签获取文章
  • 备案添加网站网络服务提供商
  • 操作系统:进程的短程调度