对一般的开发者来说,CAN总线的位定时概念并不常见。不过,如果给整车厂做过零部件,经受过他们的CAN通信测试考验,您可能就知道,这也是比较重要的一个知识点。
CAN报文由七个不同的场/段组成。
一个位,由同步段+传播段+相位缓冲段1+相位缓冲段2组成。
这四个段的时间均为基本时间单位“时间份额”的若干倍,时间份额Tq派生于振荡器周期,可以由振荡器进行分频。
由这张图可以看出,在相位缓冲段1和相位缓冲段2的交接处,藏着一个“采样点”,或者说“采样时刻”,这也是CAN通信测试中比较重要的一个测试项。
下面这张图,是一个CAN通信需求规范中的位定时要求。
在实际的编程开发工作中,需要根据这个位定时规范,对照MCU中CAN模块的寄存器特点,对寄存器进行针对性设置。
比如飞思卡尔微控制器中的MSCAN模块,其位定时寄存器如下所示:
在这款CAN控制器中,把CAN的位分成了三段,同步段、段1和段2。跟CAN2.0协议中定义的“同步段+传播段+相位缓冲段1+相位缓冲段2”进行对比,便可以发现,MSCAN中的段1即CAN2.0协议中的“传播段+相位缓冲段1”。
根据规范要求,一个8us的CAN比特位包含16个Tq,采样位置在该bit位75%的时刻,所以,可以将Time Segment1 设为 11,Time Segment2 设为 4,这样,既能保证包含16个Tq(1 + Time Segment1 + Time Segment2 = 16),又可以保证采样时刻=(1 + Time Segment1)/16=75%。
审核编辑:汤梓红
免责声明:文章内容来自互联网,本站不对其真实性负责,也不承担任何法律责任,如有侵权等情况,请与本站联系删除。
转载请注明出处:CAN总线的位定时-can总线 csdn https://www.yhzz.com.cn/a/8092.html