C#中PCAN CAN FD位定时参数设置规则和常用配置
CAN FD位定时参数完整规则
1. 基本概念

2. 参数计算公式
位时间组成:
总位时间 = (Sync_Seg + TSeg1 + TSeg2) × tq
其中 Sync_Seg 固定为 1 tq
所以:总位时间 = (1 + TSeg1 + TSeg2) × tq
波特率计算:
波特率 = 1 / 总位时间
= f_clock / (BRP × (1 + TSeg1 + TSeg2))
采样点计算:
采样点位置 = (1 + TSeg1) / (1 + TSeg1 + TSeg2)
3. 参数约束规则
| 参数 | 最小值 | 最大值 | 推荐范围 |
|---|---|---|---|
| BRP | 1 | 256 | 1-32 |
| TSeg1 | 1 | 255 | 推荐≥4 |
| TSeg2 | 1 | 127 | 推荐≥2 |
| SJW | 1 | min(TSeg2, 128) | 2-4 |
| 总tq数 | 8 | 384 | 标准: 12-80, 数据: 10-40 |
| 采样点 | - | - | 75%-90% |
重要关系:
TSeg1 ≥ TSeg2
TSeg2 ≥ SJW
采样点 ≈ 75%-90% (标准相位)
采样点 ≈ 70%-85% (数据相位)
4.含义解析示例
string BitrateFDUDS = "f_clock_mhz=80, nom_brp=2, nom_tseg1=63, nom_tseg2=16, nom_sjw=1, data_brp=2, data_tseg1=15, data_tseg2=4, data_sjw=4";
时钟基础
-
f_clock_mhz=80:PCAN设备的系统时钟频率 = 80 MHz
标准帧(Nominal Bit Rate)参数
这部分控制仲裁阶段(标准CAN帧)的位定时:
nom_brp=2
-
波特率预分频器 = 2
-
时间量子 tq = (BRP) / f_clock = 2 / 80 MHz = 25 ns
nom_tseg1=63
-
时间段1 = 63 tq
-
包含传播时间段和相位缓冲段1
-
实际时间 = 63 × 25 ns = 1.575 μs
nom_tseg2=16
-
时间段2 = 16 tq
-
相位缓冲段2
-
实际时间 = 16 × 25 ns = 0.4 μs
nom_sjw=1
-
同步跳转宽度 = 1 tq
-
在位同步时允许调整的最大时间量 = 25 ns
数据帧(Data Phase)参数
这部分控制数据阶段(CAN FD高速传输)的位定时:
data_brp=2
-
数据相位波特率预分频器 = 2
-
数据相位时间量子 = 2 / 80 MHz = 25 ns
data_tseg1=15
-
数据相位时间段1 = 15 tq
-
实际时间 = 15 × 25 ns = 0.375 μs
data_tseg2=4
-
数据相位时间段2 = 4 tq
-
实际时间 = 4 × 25 ns = 0.1 μs
data_sjw=4
-
数据相位同步跳转宽度 = 4 tq
-
数据相位允许的最大同步调整 = 4 × 25 ns = 0.1 μs
计算得出的波特率
标准波特率(仲裁阶段)
总位时间 = (nom_tseg1 + nom_tseg2 + 1) tq
= (63 + 16 + 1) = 80 tq
= 80 × 25 ns = 2.0 μs
标准波特率 = 1 / 总位时间 = 1 / 2.0 μs = 500 kbit/s
数据波特率(数据阶段)
数据位时间 = (data_tseg1 + data_tseg2 + 1) tq
= (15 + 4 + 1) = 20 tq
= 20 × 25 ns = 0.5 μs
数据波特率 = 1 / 数据位时间 = 1 / 0.5 μs = 2 Mbit/s
常用CAN FD配置大全
1. 高性能配置 (500k/2M) - 推荐
// 配置1:平衡型 (80%采样点)
string BitrateFD_500K_2M = "f_clock_mhz=80, nom_brp=2, nom_tseg1=63, nom_tseg2=16, nom_sjw=1, data_brp=2, data_tseg1=15, data_tseg2=4, data_sjw=4";
// 配置2:兼容型
string BitrateFD_500K_2M_Compat = "f_clock_mhz=80, nom_brp=5, nom_tseg1=12, nom_tseg2=3, nom_sjw=2, data_brp=2, data_tseg1=7, data_tseg2=2, data_sjw=2";
特性:
- 标准相位:500 kbit/s, 80%采样点
- 数据相位:2 Mbit/s, 80%采样点
- 适用:大多数汽车和工业应用
2. 高速配置 (500k/5M)
// 配置1:5Mbps高速
string BitrateFD_500K_5M = "f_clock_mhz=80, nom_brp=2, nom_tseg1=63, nom_tseg2=16, nom_sjw=1, data_brp=1, data_tseg1=6, data_tseg2=3, data_sjw=2";
// 配置2:5Mbps保守
string BitrateFD_500K_5M_Safe = "f_clock_mhz=80, nom_brp=4, nom_tseg1=31, nom_tseg2=8, nom_sjw=2, data_brp=1, data_tseg1=7, data_tseg2=2, data_sjw=2";
特性:
- 标准相位:500 kbit/s
- 数据相位:5 Mbit/s
- 适用:需要极高数据传输率的应用
- 注意:总线长度必须很短(<10米)
3. 稳健配置 (250k/1M)
// 配置1:高稳定性
string BitrateFD_250K_1M = "f_clock_mhz=80, nom_brp=10, nom_tseg1=31, nom_tseg2=8, nom_sjw=4, data_brp=4, data_tseg1=15, data_tseg2=4, data_sjw=4";
// 配置2:长距离优化
string BitrateFD_250K_1M_Long = "f_clock_mhz=80, nom_brp=20, nom_tseg1=15, nom_tseg2=4, nom_sjw=2, data_brp=10, data_tseg1=7, data_tseg2=2, data_sjw=2";
特性:
- 标准相位:250 kbit/s
- 数据相位:1 Mbit/s
- 适用:长距离、恶劣电磁环境
4. 经典CAN升级配置 (125k/500k)
// 兼容经典CAN网络的FD配置
string BitrateFD_125K_500K = "f_clock_mhz=80, nom_brp=20, nom_tseg1=63, nom_tseg2=16, nom_sjw=4, data_brp=5, data_tseg1=15, data_tseg2=4, data_sjw=4";
特性:
- 标准相位:125 kbit/s (兼容老设备)
- 数据相位:500 kbit/s (性能提升)
- 适用:混合网络升级
配置选择指南
根据应用场景选择:
| 应用场景 | 推荐配置 | 总线长度 | 特点 |
|---|---|---|---|
| 汽车ECU | 500k/2M | < 20m | 高性能,标准兼容 |
| 工业控制 | 250k/1M | < 40m | 稳定性优先 |
| 测试测量 | 500k/5M | < 10m | 极速数据传输 |
| 长距离 | 125k/500k | < 100m | 抗干扰强 |
| 混合网络 | 250k/1M | < 30m | 平衡兼容性 |
根据时钟频率调整:
如果你的PCAN设备时钟不是80MHz,需要重新计算:
// 20MHz时钟的配置示例
string BitrateFD_20Mhz = "f_clock_mhz=20, nom_brp=1, nom_tseg1=31, nom_tseg2=8, nom_sjw=2, data_brp=1, data_tseg1=7, data_tseg2=2, data_sjw=2";
更多推荐


所有评论(0)