![](https://csdnimg.cn/release/download_crawler_static/2916508/bg4.jpg)
广州周立功单片机发展有限公司 Tel: (020)38730976 38730977 Fax:38730925 http://www.zlgmcu.com
第 4 页 共 4 页
控制寄存器不同位的含义如下 见[2] [3] [4] [5]
BRP
波特率预设值 寄存器 BTR0 范围 1 64
BRP=32 BRP.5+16 BRP.4+8 BRP.3+4 BRP.2+2 BRP+1 BRP.0+1 (4)
SAM
采样模式 寄存器 BTR1
SAM =0: 单次采样模式 (5)
SAM =1: 3 次采样模式 (6)
SJW
同步跳转宽度 寄存器 BTR0 范围 1 4
1012
++== .SJW.SJW
t
t
SJW
SCL
SJW
(7)
SYNC_SEG
同步段 固定 值 1
1
==
SCL
SEG_SYNC
t
t
SEG_SYNC (8)
TSEG1
位定时段 1 寄存器 BTR1 范围 1 16
==
SCL
TSEG
t
t
TSEG
1
1
8 TSEG1.3 + 4 TSEG1.2 + 2TSEG1.1 + TSEG1.0+1 (9)
TSEG2
位定时段 2 寄存器 BTR1 范围 1 8
==
SCL
TSEG
t
t
TSEG
2
2
4 TSEG2.2 + 2TSEG2.1 + TSEG2.0+1 (10)
注意
TSEG2 必须选择 2 单次采样模式 和
3 3 次采样模式
规定的段值和额定位定时
NBT 之间的关系如下
NBT
额定位定时 范围 3 25
==
SCL
Bit
t
t
NBT SYNC_SEG + TSEG1 + TSEG2 (11)
尽管 NBT 的可变范围在 3
25 个 TQ 之间 但在单次采样模式中可以使用的最小值是 4TQ 在 3 次
采样模式中最小值是 5TQ
2.2
振荡器容差
上面已经解释过
CAN 网络中的每个节点都从振荡器基准取得位定时 在实际系统中 振荡器基准频
率 f
CLK
会由于初始的容差偏移 老化和环境温度的变化而偏离了它的额定值 最后这些偏离量之和就形成
了振荡器容差
f 振荡器容差是一个相对的容差 表示和振荡器基准频率的偏离 标准化成额定的频率是
nom.CLK
nom.CLKminmax/.CLK
f
ff
f
−
=∆ (12)
由于 CAN 系统时钟直接从振荡器基准频率取得
f 也表示系统时钟的相对容差 因此 系统时钟的
最小值和最大值大约如下
)f(t
f
t
t
nom.SCL
nom.SCL
min.SCL
∆−⋅≈
∆+
=
1
1
(13)
)f(t
f
t
t
nom.SCL
nom.SCL
max.SCL
∆+⋅≈
∆−
=
1
1
(14)
只有假设
f<<1 时 方程 13 和 14 的近似算法才成立 在实际系统中使用的时钟基准 像石英
振荡器
f<0.1% 锁相环取得的频率 f<0.5% 和陶瓷谐振器 f<1.2% 都能满足这个假设的要
求