SJA1000中CAN总线同步跳转宽度+波特率控制寄存器的设置.doc_第1页
SJA1000中CAN总线同步跳转宽度+波特率控制寄存器的设置.doc_第2页
SJA1000中CAN总线同步跳转宽度+波特率控制寄存器的设置.doc_第3页
SJA1000中CAN总线同步跳转宽度+波特率控制寄存器的设置.doc_第4页
SJA1000中CAN总线同步跳转宽度+波特率控制寄存器的设置.doc_第5页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

转:SJA1000中CAN总线同步跳转宽度+波特率控制寄存器的设置SJA1000 CAN控制器对时序的设置真的一点也不马虎,到底是怎么样的不马虎法呢?这一篇笔记就让我们听听他的故事。在总线时序寄存器0和1中,除了对总线的波特率可编程以外,还加了对采样位与同步跳转宽度位域的设置,我们一一的来探索吧:采样位,也就是对采样动作进行设置的标志位,在总线时序寄存器1的最高位,也就是SAM位。当SAM为逻辑1时,采样的次数为3次,反之SAM为逻辑0,采样次数为1次。这里就存在一个问题,那么什么时候才需要将SAM位置1呢?网络中有这样一个定义,当总线的波特率为中,低等级时,建议将SAM位置1,则当总线波特率为高时SAM位置为0,那么说得比较具体一点的,当总线波特率从100k起为高波特率,波特率从10k99k之间为中波特率,波特率10k以下为低波特率。(以上的波特率区分等级是从网络中得知的,见笑了)接下来要探索的就是同步跳转宽度位域,这个专业词听起来很像很可怖似的,但实际上只要明白后会发现到很容易理解的。在CAN 2.0 协议里,CAN使用了同步跳转宽度位域来兼容不同波特率的总线,视觉化的说法就是说,除了本身设定的波特率以外,该波特率还有上限下界的容差值这些波特率的上限与下界容差换傻瓜的话来说,假设有一个节点将总线时序设置为10kbps,该节点除了支持目前与该它拥有同样总线时序的节点以外,该节点还支持接近总线时序容差值的节点,那么10kbps可以容差值可以假设为10.9kbps,11.2kbps, 9.2kbps , 8.5kbps .等等,换另一句话来说就是,只要总线时序为10kbps的节点一设置(启动)同步跳转宽度位域,那么如果其他节点拥有总线时序为9.X kbps的话,都会被节点一相互兼容。那么控制同步跳转宽度位域的寄存器就是总线时序寄存器0的最高两位 ,SJW.0与SJW.1同步跳转宽度位域的公式如下:Tsjw的值是系统时钟Tscl乘于SJW.01的设置。(至于求出系统时钟Tscl的方法请参考学习笔记1,这里就不重复了,毕竟笔记文章有限。)这样说出来很陌生,那么还是假设一个例题吧.例题:假设我SJA1000 CAN控制器所拥有的晶体频率为16MHz,系统时钟Tscl为6.25微妙,SJW.1同SJW.0都被置一,请求出同步跳转宽度位域的时间是?Tsjw = Tscl * ( 2*SJW.1 + SJW.0 + 1 )= 6.25微妙 * (2+1+1)= 6.25微妙 * 4= 25微妙问题来了,同步跳转宽度位域的时间又与总线波特率的上限下界的容差值有什么关系呢?它们之间的关系基本是这样的。总线下界容差 总线波特率 总线上限容差1/(Tbit + Tsjw) 1/(Tbit) 1/(Tbit-Tsjw)至于如何求出Tbit(CAN控制位时间),自己回顾学习笔记1吧这里就不作出重复了。在现实里,如果我们一一的计算不同的总线容差值,这样的工作是很猥琐的,所以呢,我稍微整理了更容易计算的方式:假设我们以BRP0=0x31,BRP1=0x1c,晶振平率为16MHz作为参考值,我们得到的Tscl=6.25微妙Tbit=100微妙后继续推算;当SJW.0=0,SJW.1=0;Tsjw = Tscl * ( 2*SJW.1 + SJW.0 + 1 )= 6.25微妙 * (1)= 6.25微妙容差下界 = 1/( Tbit + Tsjw ) = 1/(100微妙 + 6.25微妙)= 1/106.25微妙 = 9.411kbps容差上限 = 1/( Tbit - Tsjw )= 1/(100微妙 - 6.25微妙) = 1/93.75微妙 = 10.666 kbps结果: 9.411kbps 10kbps 10.666kbps近似结果: 9.400kbps 10kbps 10.600kbps容差比率:6%后继续推算;当SJW.0=1,SJW.1=0;Tsjw = Tscl * ( 2*SJW.1 + SJW.0 + 1 )= 6.25微妙 * (1+1)= 6.25微妙 * 2= 12.5微妙容差下界 = 1/( Tbit + Tsjw )= 1/(100微妙 + 12.5微妙)= 1/112.5微妙= 8.888kbps容差上限 = 1/( Tbit - Tsjw )= 1/(100微妙 - 12.5微妙)= 1/87.5微妙= 11.428 kbps结果: 8.888kbps 10kbps 11.428kbps近似结果: 8.900kbps 10kbps 11.4kbps容差比率: 下界 -11% ,上限 +14%后继续推算;当SJW.0=1,SJW.1=0;Tsjw = Tscl * ( 2*SJW.1 + SJW.0 + 1 )= 6.25微妙 * (2+1)= 6.25微妙 * 3= 18.75微妙容差下界 = 1/( Tbit + Tsjw )= 1/(100微妙 + 18.75微妙)= 1/118.75微妙= 8.421kbps容差上限 = 1/( Tbit - Tsjw )= 1/(100微妙 - 18.75微妙)= 1/81.25微妙= 12.307 kbps结果: 8.421kbps 10kbps 12.307kbps近似结果: 8.400kbps 10kbps 12.300kbps容差比率: 下界 -16% ,上限 +23%后继续推算;当SJW.0=1,SJW.1=1;Tsjw = Tscl * ( 2*SJW.1 + SJW.0 + 1 )= 6.25微妙 * (3+1)= 6.25微妙 * 4= 25微妙容差下界 = 1/( Tbit + Tsjw )= 1/(100微妙 + 25微妙)= 1/125微妙= 8.000kbps容差上限 = 1/( Tbit - Tsjw )= 1/(100微妙 - 25微妙)= 1/75微妙= 13.333 kbps结果: 8.000kbps 10kbps 13.333kbps近似结果: 8.000kbps 10kbps 13.300kbps容差比率: 下界 -20% ,上限 +33%经过上面的计算后,我们得知以下的列表:SJW位下界容差比率下界容差波特率公式上限容差比率上限容差波特率公式SJW.0=0,SJW.1=0-6%总线波特率*0.94+6%总线波特率*1.06SJW.0=1,SJW.1=0-11%总线波特率*0.89+14%总线波特率*1.14SJW.0=0,SJW.1

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论