您的位置 首页 新品

LPC11Cx系列CAN总线位守时参数计算方法校对

引言LPC11Cx系列是NXP公司的高性价比Cortex—M0构架ARM微控制器产品,内嵌CAN总线控制器。CAN总线位定时参数决定CAN总线能否按给定速率正常通信及其稳定性,但在实践中发

导言
LPC11Cx系列是NXP公司的高性价比Cortex—M0构架ARM微操控器产品,内嵌CAN总线操控器。CAN总线位守时参数决议CAN总线能否按给定速率正常通讯及其稳定性,但在实践中发现,原版用户手册及国内译著在CAN总线位守时参数装备寄存器的表述上有误,导致用户CAN总线无法正常通讯。下面将校对过错,并给出CAN总线位守时参数详细核算实例。

1 位守时时序及参数
依据CAN总线规范,LPC11Cx系列的位时刻被分红4个段:同步段、时刻传达段、相位缓冲区段1和相位缓冲区段2,位时序如图1所示。

a.JPG

图1中,每一个段包括有一个指定的、可编程的时刻量子数,如表1所列。

b.JPG

表1中,时刻量子tq是位时刻长度的根本时刻单元,tq与CAN总线操控器的体系时钟fsys可确认参数BRP,即tq=BRP/fsys。同步段SYNC_SEG是位时刻的榜首部分,CAN总线的边缘电平会在这儿产生。传达时刻段PROP_SEG用于对CAN总线网络内的物理延迟时刻进行补偿。
相位缓冲区段TSEG1和TSEG2包围着采样点。(从头)同步跳转宽度SJW完成对边缘相位差错作出补偿。

2 位守时寄存器描绘校对
LPC11Cx系列CAN总线的位时刻参数通过其内部的32位操控寄存器CANBT来界说及编程。CANBT寄存器的详细描绘如表2所列。

c.JPG

请注意,表2中上标示*标明硬件把写入这些位的值理解为位值+1。NXP公司原版用户手册及国内译著还一起标示了SJW、TSEG2,阐明这两项也需进行位值+1处理,但这么做得出的位守时参数无法使CAN总线正常通讯

3 位守时参数核算
依据表1各守时位段界说,设方针体系晶振频率为12 MHz,通过LPC11Cx内部PLL锁相环电路倍频后,体系时钟频率fsys为48 MHz。现要求CAN总线速率fc为500 kHz,则CAN总线时钟周期tc=1/fc=1/500 kHz=2μs,位守时参数核算如下。
首要,将体系时钟频率fsys进行6分频,即fsys/(BRP+1)=fsys/6=48 MHz/6=8 MHz,由此确认参数BRP=0x000101,而时刻量子tq=1/8 MHz=0.125μs,CAN总线时钟周期tc包括的时刻量子tq的个数为:tc/tq=2 μs/0.125 μs=16。
然后,依据CAN总线传输介质及使用场合的电磁搅扰情况,恰当确认CAN总线位守时寄存器CANBT的SJW、TSEG1、TSEG2的值,使这3项位值之和等于16。这儿对3项位值取值为:SJW=0x11,TSEG1=0x0110,TSEG2=0x111,并满意:SJW+(TSEG1+1)+TSEG2=16。
最终,将上述位值组合,确认位守时参数值为0x76C5,这个值将被装备写入到位守时寄存器CANBT中。在Cortex—M0的CMSIS软件开发规范框架下,可很方便地调用LPC11Cx片上CAN API函数集来编程,如下句子即可完成寄存器CANBT的位守时参数装备:
/*CAN总线波特率与时钟初始化*/
INT32U CanApiClkInitTable[2]={
0x00000000UL,
/*CAN时钟分频寄存器CANCLKDIV分频值为1*/
0x000076C5UL/*装备守时寄存器CANBTR值为0x76C5*/
};

结语
实践标明,在改动体系时钟频率、CAN总线通讯速率及CANBT寄存器的各项位值的情况下,校对之后的位守时参数核算方法所取得的参数值均能满意CAN总线正常通讯的要求,消除了用户手册误导。怎么进步CAN总线通讯的可靠性,在位守时方面还需要依据CAN总线的详细工作情况不断进行试验,并对CANBT寄存器的各项位值细心调整而得到最佳值。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/xinpin/295736.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部