CAN波特率设置及寄存器设置
更新时间:2023-04-07 19:21:01 阅读量: 教育文库 文档下载
- 波特率寄存器计算推荐度:
- 相关推荐
CAN总线能够在一定的范围内容忍总线上CAN节点的通信波特率的偏差,这种机能使得CAN总线有很强的容错性,同时也降低了对每个节点的振荡器精度。
实际上,CAN总线的波特率是一个范围。假设定义的波特率是250KB/S,但是实际上根据对寄存器的设置,实际的波特率可能为200~300KB/S(具体值取决于寄存器的设置)。
在CAN的底层协议里将CAN数据的每一位时间(TBit)分为许多的时间段(Tscl),这些时间段包括:
A.位同步时间(Tsync)
B.时间段1(Tseg1)
C.时间段2(Tseg2)
其中位同步时间占用1个Tscl;时间段2占用(Tseg1+1)个Tscl;时间段2占用(Tseg2+1)个Tscl,所以CAN控制器的位时间(TBit)就是:
TBit=Tseg1+Tseg2+Tsync=(TSEG1+TSEG2+3)*Tscl
CAN的波特率(CANbps)就是1/TBit。Tsync=1Tscl
但是这样计算出的值是一个理论值。在实际的网络通信中由于存在传输的延时、不同节点的晶体的误差等因素,使得网络CAN的波特率的计算变得复杂起来。CAN在技术上便引入了重同步的概念,以更好的解决这些问题。
这样重同步带来的结果就是要么时间段1(Tseg1)增加TSJW(同步跳转宽度SJW+1),要么时间段减少TSJW,因此CAN的波特率实际上有一个范围:
1/(Tbit+Tsjw) ≤CANbps≤1/(Tbit-Tsjw)
CAN有波特率的值四以下几个元素决定:
A.最小时间段Tscl;
B.时间段1 TSEG1;
C.时间段2 TSEG2;
D.同步跳转宽度SJW
SJW(重同步跳转宽度)决定了一次重同步期间一个位时间被延长或缩短的时间量子Tscl是通过总线时序寄存器设置计算的。
Tscl=(BRP+1)/FVBP。FVBP为微处理器的外设时钟。
而TSEG1与TSEG2又是怎么划分的呢?TSEG1与TSEG2的长度决定了CAN数据的采样点,这种方式允许宽范围的数据传输延迟和晶体的误差。其中TSEG1用来调整数据传输延迟时间造成的误差,而TSEG2则用来调整不同点节点晶体频率的误差。
TSEG1与TSEG2的是分大体遵循以下规则:
Tseg1≥Tseg2≥2TSJW;Tseg2≥2Tscl
总的来说,对于CAN的波特率计算问题,把握一个大的方向就行了,其计算公式可了规结为:
BitRate = Fpclk/( (BRP+1) * ((Tseg1+1)+(Tseg2+1)+1))
对于AT90CAN128的波特率:
BRP(0~63);SEG1(0~7); SEG2(0~7); SYNC(0~7);SJW(0~3)
Tbit(1) = Tsyns + Tprs + Tphs1 + Tphs2
1.Tsyns = 1 x Tscl = (BRP[5..0]+ 1)/clkIO (= 1TQ)
2.Tprs = (1 to 8) x Tscl = (PRS[2..0]+ 1) x Tscl
3.Tphs1 = (1 to 8) x Tscl = (PHS1[2..0]+ 1) x Tscl
4.Tphs2 = (1 to 8) x Tscl = (PHS2[2..0](2)+ 1) x Tscl
5.Tsjw = (1 to 4) x Tscl = (SJW[1..0]+ 1) x Tscl
Notes: 1. The total number of Tscl (Time Quanta) in a bit time must be between 8 to 25.
在一个BIT时间内Tscl的总数必须在8到25之间;
2. PHS2[2..0] 2 is programmable to be maximum of PHS1[2..0] and 1.
第二时间段是可控制在第一时间段的最大值和一个BIT时间之间。
AT90CAN128设置
CAN时序寄存器1 CANBT1
BRP5:0 :波特率预定标器
CAN控制器系统时钟Tscl周期可传播和确定单个位定时。
Tscl=(BRP[5:0]+1)/clk frequency 这里是频率的形式,也可化为周期CAN时序寄存器2 CANBT2
SJW1:0 :重复同步跳转宽度
为了比较不同总线控制器时钟振荡器间的移相,控制器必须重复同步跳转宽度来定义时钟周期的最大数。一个位周期可由一个重复同步来缩短或者延长。
Tsjw=Tscl x (SJW[1:0]+1)
PRS2:0 :传播时间段
这部分位时间用于补偿网络中的物理延时。它是总线上单个传播时间总和的两倍,输入比较器延时或者输出驱动器延时。
Tprs=Tscl x (PRS[2:0]+1)
CAN时序寄存器3 CANBT3
位6:4——PHS22:0 :段2
该段用于补偿段界限错误。该段可由重复同步跳转宽度来缩短。
Tphs2=Tscl x (PHS2[2:0]+1)
位3:1——PHS12:0 :段1
该段用于补偿段界限错误。该段可由重复同步跳转宽度来延长。
Tphs1=Tscl x (PHS1[2:0]+1)
SMP:采样点
0:一次,在采样点
1:三次,总线的“三次采样”是采样点和“两次超过Tscl周期1/2的长度”。该结果为三个值的主要判定的响应。
晶振:4M PRS=4,PHS1=PHS2=3,BRP=59,SJW=0 CANBT1=0X76;CANBT2=0X04;CANBT3=0X36
CANGCON|=(1〈〈SWRES〉;//设置为复位模式CANBT1=0X7E; //设置波特率5k, 8MHz,25TQ, BRP=63 CANBT2=0X2E; //SJW=1,PRS=7
CANBT3=0X7F; //PH2=7,PH1=7






正在阅读:
CAN波特率设置及寄存器设置04-07
生产与经济制度教案09-25
关于我的烦恼作文500字范文5篇04-04
C语言实验报告(五)03-21
平均数与条形统计图207-02
东北大学 水文地质学基础答案05-27
逛街作文1500字07-06
FANUC伺服报警12-17
(股票大讲堂 )第49节 三死叉见顶308-15
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 波特率
- 设置
- 寄存器
- 全站仪试卷答案 (8页)
- 【完整新编】XX小区建筑装饰工程施工组织设计可行性研究方案
- 教师个人课题开题报告例文
- 最新家居门窗清洗器的设计
- 2022年上海市高中生物一模专题汇编:免疫及植物激素调节(学生版)
- 2022年监理工程师《概论》考试真题(同名11357)
- 《鸦片战争》说课稿
- 叶蕾-浙江工业大学计算机学院
- 浅谈零售行业的风险控制
- 电子商务纠纷解决方案分析
- 2022企业办公室文秘个人工作总结与2022企业员工工作总结合集
- 《学生手册》学习心得_1
- 三层交换机IP Source Guard典型配置举例
- 墙面起沙怎么办,解决墙面起砂的好办法
- 七年级英语辅导计划
- (建议下载)大学学科门类、一级学科、二级学科目录
- 清迈地道美食攻略·洋葱旅途
- 中国石油大学(北京)英语 在线作业第
- 谈英语词汇教学法—On_Teaching_English_Vocabulary
- 乐清市第一生活(蛎灰窑)垃圾无害化填埋场生态修复工程答