IMX6ULL中CAN总线的传输速率设置计算

一.  简介

前面文章学习了 CAN总线的协议,位时序。

本文来学习 IMX6ULL中CAN总线的传输速率设置计算。是通过设置寄存器设置值,通过计算分频公式来计算分频值,通过速率计算公式来计算传输速率。

二.  IMX6ULL中CAN总线的传输速率设置计算

1.  I.MX6ULL的 CAN

I.MX6ULL
带有
CAN
控制器外设,叫做
FlexCAN

FlexCAN
符合
CAN2.0B
协议。
FlexCAN 完全符合
CAN
协议,支持标准格式和扩展格式,支持
64
个消息缓冲。
I.MX6ULL
自带的
FlexCAN
模块特性如下:
①  支持
CAN2.0B
协议,数据帧和遥控帧支持标准和扩展两种格式,数据长度支持
0~8

节,可编程速度,最高
1Mbit/S
②  灵活的消息邮箱,最高支持
8
个字节。
③  每个消息邮箱可以配置为接收或发送,都支持标准和扩展这两种格式的消息。
④  每个消息邮箱都有独立的接收掩码寄存器。
⑤ 强大的接收
FIFO ID
过滤。
⑥ 未使用的空间可以用作通用
RAM
⑦ 可编程的回测模式,用于进行自测。
⑧ 可编程的优先级组合。
……
FlexCAN
支持四种模式:正常模式
(Normal)
、冻结模式
(Freeze)
、仅监听模式
(Listen-Only)

回环模式
(Loop-Back)
,另外还有两种低功耗模式:禁止模式
(Disable)
和停止模式
(Stop)

①  正常模式
(Normal)
在正常模式下,
FlexCAN
正常接收或发送消息帧,所有的
CAN
协议功能都使能。
②  冻结模式
(Freeze)

MCR
寄存器的
FRZ
位置
1
的时候使能此模式,在此模式下无法进行帧的发送或接收,
CAN
总线同步丢失。
③  仅监听模式
(Listen-Onley)

CTRL
寄存器的
LOM
位置
1
的时候使能此模式,在此模式下帧发送被禁止,所有错误
计数器被冻结,
CAN
控制器工作在被动错误模式,此时只会接收其他
CAN
单元发出的
ACK

息。
④  回环模式
(Loop-Back)

CTRL
寄存器的
LPB
位置
1
的时候进入此模式,此模式下
FlexCAN
工作在内部回环模式,一般用来进行自测。从模式下发送出来的数据流直接反馈给内部接收单元。

2.  IMX6ULL中CAN总线的传输速率设置计算

前面在讲解
CAN
协议的时候说过
CAN
位时序,
FlexCAN
支持
CAN
协议的这些位时序,
控制寄存器
CTRL
用于设置这些位时序。
CTRL
寄存器中的
PRESDIV

PROPSEG

PSEG1
PSEG2

RJW

5
个位域用于设置
CAN
位时序。

分频值计算公式

PRESDIV CAN 分频值,也即是设置 CAN 协议中的 Tq 值,公式如下:

 

fCANCLK 为 FlexCAN 模块时钟,这个根据时钟章节设置即可,设置好以后就是一个定值,因此,只需要修改 PRESDIV 即可修改 FlexCAN Tq 频率值。

Tq
定了以后,我们结合时序图
中的 几个段来看一下如何设置
FlexCAN
的速率:
SS

同步段
(Synchronization Segment)
,在
I.MX6ULL
参考手册中叫做
SYNC_SEG
,此段固
定为
1

Tq
长度,因此不需要我们去设置。
PTS

传播时间段
(Propagatin Segment)

FlexCAN

CTRL
寄存器中的
PROPSEG
位域设
置此段,可以设置为
0~7
,对应
1~8

Tq
PBS1

相位缓冲段
1(Phase Buffer Segment 1)

FlexCAN

CRTL
寄存器中的
PSEG1
位域
设置此段,可以设置为
0~7
,对应
1~8

Tq
PBS2
:相位缓冲段
2(Phase Buffer Segment 2)

FlexCAN

CRTL
寄存器中的
PSEG2
位域设置此段,可以设置为
1~7
,对应
2~8

Tq
SJW

再同步补偿宽度
(reSynchronization Jump Width)

FlexCAN

CRTL
寄存器中的
RJW位域设置此段,可以设置
0~3
,对应
1~4

Tq
FlexCAN

CAN
位时序如下图
所示:

根据上图
所示,
SYNC+SEG+(PROP_SEG+PSEG1+2)+(PSEG2+1)
就是总的
Tq
,因此,FlexCAN
的波特率就是:

关于
I.MX6ULL

FlexCAN
控制器就讲解到这里,如果想更加详细的了解
FlexCAN
,请
参考《
I.MX6ULL
参考手册》的“
Chapter 26 Flexible Controller Area Network(FLEXCAN)
”章节。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
THE END
分享
二维码
< <上一篇
下一篇>>