网站大量收购独家精品文档,联系QQ:2885784924

CAN波特率设置时的参数计算.pdf

  1. 1、本文档共3页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
CAN波特率设置时的参数计算

CAN 波特率设置时的参数计算 CAN (Controller Area Network )总线最早由德国 BOSCH 公司提出,主要用于汽车内部测量与控制中心 之间的数据通信。由于其良好的性能,在世界范围内广泛应用于其他领域当中,如工业自动化、汽车电子、 楼宇建筑、电梯网络、电力通讯和安防消防等诸多领域,并取逐渐成为这些行业的主要通讯手段。 Can 控制器器只需要进行少量的设置就可以进行通信,其中较难设置的部分就是通信波特率的计算。CAN 总线能 够在一定的范围内容忍总线上CAN 节点的通信波特率的偏差,这种机能使得CAN 总线有很强的容错性, 同时也降低了对每个节点的振荡器精度。实际上,CAN 总线的波特率是一个范围。假设定义的波特率是 250KB/S,但是实际上根据对寄存器的设置,实际的波特率可能为200~300KB/S (具体值取决于寄存器的 设置)。 CAN 波特率设置时需要计算几个参数,这些参数共同决定波特率大小,由于计算比较复杂,希望有一个简 易步骤,本人经过研究,找到一个简易办法,现贴出来分享,不对的地方请留言指正。需要说明的是,本 人使用的can 控制器是AT89C51CC03 单片机中的can 首先,确定一下各项参数的取值范围: 参数 范围 编程值 说明 BRP [1..64] 0-63 定义时间量子(时间份额)的长度tq Sync_Seg 1 tq 固定长度,总线输入与系统时钟同步 Prog_Seg [1..8]tq 0-7 补偿物理延时时间 Phase_Seg1 [1..8]tq 0-7 可通过同步暂时延长 Phase_Seg2 [1..8]tq 0-7 可通过同步暂时缩短 TSJW [1..4]tq 0-3 不能比任何一相位缓冲段长 以上是参数的取值范围,编程值是实际往寄存器里写的值,为实际取值减1。下面说一下步骤: 1、首先计算CAN 时钟和波特率的比值; 2、根据比值确定预分频器的分频值BRP,计算时间量子的数目,这个数值范围是8-25; 3、将时间量子数减1 (去掉Sync_Seg )后在Prog_Seg Phase_Seg1 Phase_Seg2 三个参数中分配; 4 、Prog_Seg 和整个线路的时延有关,一般不太好确定,可以按下面的原则进行分配: Prog_Seg=Phase_Seg1=Phase_Seg2 ; Phase_Seg1=Phase_Seg2 或者 Phase_Seg1+1=Phase_Seg2 ; 5、SJW 取Phase_Seg1 和4 中小的那个。 估计上面叙说不太好理解,下面举例说明: 假定晶振是12M,CAN 时钟为6M (不同单面机,CAN 时钟和晶振的关系不一样,BRP 的取值范围不同 单单片机也不一定相同,参看单片机说明) 1、500K 波特率 FCAN/CAN baudrate = 6 MHz/500 kHz = 12,在8-25 范围,所以BRP=1,TQ 数目=12/1=12 Prog_Seg Phase_Seg1 Phase_Seg2 分别等于3、4 、4 寄存器编程值为(上述值减1): BRP=0,SJW=3,PRS=2,PHS1=3,PHS2=3 2、100K 波特率 FCAN/CAN baudrate = 6 MHz/100 kHz = 60,取BRP=6,TQ 数目=60/6=10 Prog_Seg Phase_Seg1 Phase_Seg2 分别等于2、3、4 寄存器编程值为(上述值减1): BRP=5,SJW=2,PRS=1,PHS1=2,PHS2=2 3、10K 波特率 FCAN/CAN baudrate = 6 MHz/100 kHz = 600,取BRP=60,TQ 数目=600/60=10 Prog_Seg Phase_Seg1 Phase_Seg2 分别等于2、3、4 寄存器编程值为(上述值减1): BRP=59,SJW=2,PRS=1,PHS1=2,PHS2=2 4 、5K 波特率 FCAN/CAN baudrate = 6 MHz/5 kHz = 1200,取BRP=60,TQ 数目=1200/60=20 Prog_Seg Phase_Seg1 Phase_Seg2 分别等于6、6、7 寄存器编程值为(上述值减1): BRP=59,SJW=3,PRS=5,PHS1=5,PHS2=6

您可能关注的文档

文档评论(0)

xxj1658888 + 关注
实名认证
内容提供者

教师资格证持证人

该用户很懒,什么也没介绍

领域认证该用户于2024年04月12日上传了教师资格证

1亿VIP精品文档

相关文档