🚗 CAN抖动实战
30章
📊 测量 · 分析 · 消除 · 硬核
⚡ 周期抖动
< 50μs
挑战
1
抖动概述
概念
什么是CAN报文周期抖动?产生原因与系统影响
→
2
测量基础
时间戳
硬件vs软件时间戳,时间同步的重要性
→
3
测量工具
CANalyzer
CANalyzer & PCAN-View 测量抖动
→
4
测量工具
Python
python-can库搭建简易抖动测量工具
→
5
测量指标
统计
最大/最小/平均抖动、标准差、峰峰值
→
6
测量方法
策略
连续测量法,触发测量法,窗口测量法
→
7
测量实践
10ms
测量10ms周期报文,记录并分析抖动数据
→
8
抖动分类
溯源
发送、接收、总线仲裁、时钟漂移抖动
→
9
发送抖动
MCU
任务调度、发送缓冲、中断响应延迟
→
10
接收抖动
中断/DMA
中断处理、DMA传输、协议栈处理延迟
→
11
时钟漂移
晶振
晶振精度、温漂、老化,计算漂移抖动
→
12
总线负载
仲裁
负载率对抖动的影响,高负载仲裁延迟
→
13
抖动消除策略
软硬
软件策略 vs 硬件策略,优缺点对比
→
14
软件策略1
高精度定时器
硬件定时器触发发送,减少抖动
→
15
软件策略2
RTOS优先级
CAN发送任务设为最高优先级
→
16
软件策略3
TTCAN
时间触发CAN协议
→
17
软件策略4
预填充
发送缓冲预填充,避免动态组包
→
18
软件策略5
DMA
DMA数据搬运,减少CPU干预
→
19
硬件策略1
硬件时间戳
NXP S32K、TI TMS570 时间戳控制器
→
20
硬件策略2
时钟同步
GPS PPS、IEEE 1588 PTP 外部同步
→
21
硬件策略3
CAN FD
灵活数据速率,缩短报文传输时间
→
22
硬件策略4
隔离
独立收发器与隔离器,减少电气噪声
→
23
实践案例1
STM32+FreeRTOS
抖动测量与优化实现
→
24
实践案例2
AURIX TC3xx
抖动测量与优化
→
25
实践案例3
Zynq FPGA
硬实时CAN发送实现
→
26
抖动测量标准
ISO
ISO 11898-1定义,OEM典型要求<100μs
→
27
抖动测试流程
规范
测试计划、环境搭建、执行、分析报告
→
28
抖动分析工具
Matlab/Python
Matlab分析,Python绘制直方图/时间序列
→
29
综合实战
<50μs
设计抖动<50μs的10ms周期发送系统
→
30
课程总结
未来趋势
核心要点、关键路径、TSN/CAN XL展望
→