理论教育 CAN总线Bit-Timing配置寄存器解析

CAN总线Bit-Timing配置寄存器解析

时间:2023-06-15 理论教育 版权反馈
【摘要】:位时间配置寄存器用来为CAN节点配置适当的网络定时参数。寄存器通过设置预分频器进行波特率设置。增加后的值表示为BRP。考虑到CAN协议规范,不能取BRP=1。位9~8,SJWreg:同步跳转宽度。CAN模块访问SJWreg时,该值将增1。SJW的最大值为TSEG2和4TQ两者中的最小值。CAN总线上一个位的长度由参数TSEG1、TTEG2和BRP设定。该参数以TQ为单位指定TSEG1段的长度。TSEG1reg是CANBTC寄存器位3~0的值。TSEG1的值应大于或等于TSEG2和IPT。

CAN总线Bit-Timing配置寄存器解析

位时间配置寄存器用来为CAN节点配置适当的网络定时参数。在使用CAN模块之前必须对该寄存器进行编程。该寄存器受EALLOW写保护,并且只能在初始化模式中写入。注意禁止配置的值:为了避免CAN模块不可预知的行为,CANBTC寄存器不能配置为CAN协议规范和位定时规则所不允许的值。

位31~24、位15~10,保留位。

位23~16,BRPreg:寄存器的位7~0,位速率即波特率分频器位。寄存器通过设置预分频器进行波特率设置。一个量化时间长度TQ(Time Quanta)的定义为

TQ=(BRPreg+1)/(SYSCLKOUT/2)

式中SYSCLKOUT/2是CAN模块的时钟频率;BRPreg代表预分频器的值,即写入到CANBTC寄存器的23~16位的值。当CAN模块访问它时该值自动加1。增加后的值表示为BRP(BRP=BRPreg+1)。BRP可编程为2~256。考虑到CAN协议规范,不能取BRP=1。

位9~8,SJWreg:同步跳转宽度(Synchronization Jump Width)。

SJWreg位指示了当重新同步时,允许一位可以延长或缩短多少个TQ时间单元。该值在1~4(SJW=00b~11b)之间调整。

CAN模块访问SJWreg时,该值将增1。增加后的值表示为SJW(SJW=SJWreg+1)。SJW可以编程为1~4个TQ。SJW的最大值为TSEG2和4TQ两者中的最小值。

SJWmax=min[SEG2,4TQ]

位7,SAM:CAN模块用该参数来设置采样次数,从而决定CAN模块的实际电平值。当SAM位置位时,CAN总线根据最后3次的值,以“多数判别法”的结果来决定电平值。3个采样点分别在采样点处和两次采样点前TQ距离处。

●1:CAN模块将进行3次采样然后选取占多数的值。仅在预分频值大于4时(BRP>4),需要选择3次采样模式。(www.daowen.com)

●0:CAN模块仅在采样点采样一次。

位6~3,TSEG1reg:时间段(Time Segment)1。

CAN总线上一个位的长度由参数TSEG1、TTEG2和BRP设定。所有CAN总线上的控制器都必须有相同的波特率和位时间长度。在各个控制器的不同时钟频率下,波特率需要根据上述参数调节。

该参数以TQ为单位指定TSEG1段的长度。TSEG1段由传播延时时间段PROP_SEG和相位延时时间段PHASE_SEG1段组成:TSEG1=PROP_SEG+PHASE_SEG1。其中PROP_SEG和PHASE_SEG1是这两段的TQ个数。

TSEG1reg是CANBTC寄存器位3~0的值。CAN模块访问它时,该值将增1。增加后的值表示为TSEG1(TSEG1=TSEG1reg+1)。

TSEG1的值应大于或等于TSEG2和IPT(Information Processing Time,信息处理时间)。

位2~0,TSEG2reg:时间段2。

TSEG2以TQ为单位定义了PHASE_SEG1段的长度。TSEG2可编程为1TQ~8TQ的范围,且必须满足以下定时规则:TSEG2必须小于或等于TSEG1,且必须大于或等于IPT。

TSEG2reg是CANBTC寄存器位2~0的值。CAN模块访问它时,该值将增1。增加后的值表示为TSEG2(TSEG2=TSEG2reg+1)。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈