Edit online

寄存器描述

3 Mar 2025
Read time: 29 minute(s)

0x000 CANFD_RBUF0

注: 只能是 32 位访问,不能使用 8 或者 16 位模式访问。

默认值:0x0000_0000

CANFD_RBUF0

位域

类型

默认值

描述

31

RO

0x0

ESI

错误状态指示位

对当前帧的错误状态进行识别

  • 0:CANFD 节点处于主动错误模式
  • 1:CANFD 节点处于被动错误模式

30:29

-

-

-

28:0

RO

0x0

ID[28:0]

  • 对于标准帧格式,ID[10:0] 为 11 位 ID,ID[28:11] 为保留位
  • 对于扩展帧格式,为 29 位 ID

0x004 CANFD_RBUF1

注: 只能是 32 位访问,不能使用 8 或者 16 位模式访问。

默认值:0x0000_0000

CANFD_RBUF1

位域

类型

默认值

描述

31:16

RO

0x0

CYCLE_TIME[15:0]

时间戳循环时间

在 TTCAN 模式下,当前帧的时间戳循环时间将会存储在 RBUF 中。参考消息的循环时间总是 0。

15:13

RO

0x0

KOER

错误种类指示位

当 RBALL = 1 时,与0x0B0 CANFD_EALCAP 的 KOER 同义。

12

RO

0x0

TX

发送状态位

  • 0:正常(非回环)传输模式
  • 1:回环传输模式,且 CANFD 控制器接收自己发送的帧

11:8

-

-

-

7

RO

0x0

IDE

ID 扩展指示位

  • 0:标准帧格式,11 位 ID
  • 1:扩展帧格式,29 位 ID

6

RO

0x0

RTR

远程传输请求位

  • 0:数据帧
  • 1:远程帧
注: 在 CANFD 帧格式下,由于没有远程帧,RTR 位固定为 0。

5

RO

0x0

FDF

CANFD 帧指示位

  • 0:CAN 2.0 帧(数据段最多 8 个字节)
  • 1:CANFD 帧(数据段最多 64 个字节)

4

RO

0x0

BRS

位速率切换

  • 0:整个帧保持正常/ 慢位速率
  • 1:帧数据段和 CRC 段切换到快速率

3:0

RO

0x0

DLC

数据长度

表示当前帧的 DLC 值

对于 CAN 2.0 帧格式

  • 0 ~ 7:表示当前帧包含 0 ~ 7 个数据字节
  • 其它:表示当前帧包含 8 个数据字节

对于 CANFD 帧格式

  • 0 ~ 8:表示当前帧包含 0 ~ 8 个数据字节
  • 9:表示当前帧包含 12 个数据字节
  • 10:表示当前帧包含 16 个数据字节
  • 11:表示当前帧包含 20 个数据字节
  • 12:表示当前帧包含 24 个数据字节
  • 13:表示当前帧包含 32 个数据字节
  • 14:表示当前帧包含 48 个数据字节
  • 15:表示当前帧包含 64 个数据字节

0x008 ~ 0x044 CANFD_RBUF2~17

注: 只能是 32 位访问,不能使用 8 或者 16 位模式访问。

默认值:0x0000_0000

CANFD_RBUF2~17

位域

类型

默认值

描述

511:0

RO

0x0

DATA

接收帧数据

当前接收帧数据,最多 64 个字节数据,按小端模式存储,低位字节偏移地址存储低位字节数据,高位字节偏移地址存储高位字节数据。

0x048 ~ 0x04C CANFD_RBUF18~19

注: 只能是 32 位访问,不能使用 8 或者 16 位模式访问。

默认值:0x00000000

CANFD_RBUF18~19

位域

类型

默认值

描述

63:0

RO

0x0

RTS

接收时间戳

CiA603 模式下,在 RBUF 地址范围尾部存储接收时间戳,按小端模式存储,低位字节偏移地址存储低位字节数据,高位字节偏移地址存储高位字节数据。

0x050 CANFD_TBUF0

注: 只能是 32 位访问,不能使用 8 或者 16 位模式访问。

默认值:0x0000_0000

CANFD_TBUF0

位域

类型

默认值

描述

31

R/W

0x0

TTSEN

发送时间戳使能

对于 CiA603 时间戳,选择是否获取时间戳 (TTS)

  • 0:对帧没有时间戳更新需求
  • 1:TTS 保存最后传输帧时间戳

30:29

-

-

-

28:0

R/W

0x0

ID[28:0]

  • 对于标准帧模式,ID[10:0] 为 11 位 ID,ID[28:11] 为保留位
  • 对于扩展帧模式,为 29 位 ID

0x054 CANFD_TBUF1

注: 只能是 32 位访问,不能使用 8 或者 16 位模式访问。

默认值:0x0000_0000

CANFD_TBUF1

位域

类型

默认值

描述

31:8

-

-

-

7

R/W

0x0

IDE

ID 扩展指示

  • 0:标准格式帧:11 位 ID
  • 1:扩展格式帧:29 位 ID

6

R/W

0x0

RTR

远程传输请求

  • 0:数据帧
  • 1:远程帧
注: 对于 CANFD 模式,由于没有远程帧,RTR 位固定配置 0。

5

R/W

0x0

FDF

CANFD 帧指示

  • 0:CAN 2.0 帧(数据段最多 8 个字节)
  • 1:CANFD 帧(数据段最多 64 个字节)

4

R/W

0x0

BRS

位速率切换

  • 0:整个帧保持正常/慢位速率
  • 1:帧数据段和 CRC 段切换到快速率

3:0

R/W

0x0

DLC

数据长度

表示当前帧的 DLC 值

对于 CAN 2.0 帧格式

  • 0 ~ 7:表示当前帧包含 0 ~ 7 个数据字节
  • 其它:表示当前帧包含 8 个数据字节

对于 CANFD 帧格式

  • 0 ~ 8:表示当前帧包含 0 ~ 8 个数据字节
  • 9:表示当前帧包含 12 个数据字节
  • 10:表示当前帧包含 16 个数据字节
  • 11:表示当前帧包含 20 个数据字节
  • 12:表示当前帧包含 24 个数据字节
  • 13:表示当前帧包含 32 个数据字节
  • 14:表示当前帧包含 48 个数据字节
  • 15:表示当前帧包含 64 个数据字节

0x058 ~ 0x094 CANFD_TBUF2~17

注: 只能是 32 位访问,不能使用 8 或者 16 位模式访问。

默认值:0x0000_0000

CANFD_TBUF2~17

位域

类型

默认值

描述

511:0

R/W

0x0

DATA

发送帧数据

当前发送帧数据,最多 64 个字节数据,按小端模式存储,低位字节偏移地址存储低位字节数据,高位字节偏移地址存储高位字节数据。

0x098 ~ 0x09F CANFD_TTS

默认值:0x00

CANFD_TTS

位域

类型

默认值

描述

63:0

RO

0x0

TTS

传输时间戳

TTS 用来保存 CiA 603 的最后传输帧的时间戳。

注: 如果 TTSEN = 1,每个新帧都会覆盖 TTS。

0x0A0 CANFD_CFG_STAT

默认值:0x80

CANFD_CFG_STAT

位域

类型

默认值

描述

7

R/W

0x1

RESET

复位控制

  • 0:CANFD 控制器无本地复位
  • 1:执行 CANFD 控制器的本地复位
注: 如果 RESET 设置为 1 并立即设置为 0,则需要一些时间才能将 RESET 读取为 0 并释放复位状态。

6

R/W

0x0

LBME

Loop Back Mode External,外部回环

  • 0:禁用
  • 1:启用

当处于传输活动状态时,不能启用 LBME。

5

R/W

0x0

LBMI

Loop Back Mode Internal,内部回环

  • 0:禁用
  • 1:启用

当处于传输活动状态时,不能启用 LBMI。

4

R/W

0x0

TPSS

Transmission Primary Single Shot mode for PTB,PTB 单发模式功能

  • 0:禁用
  • 1:启用

3

R/W

0x0

TSSS

Transmission Primary Single Shot mode for STB,STB 单发模式功能

  • 0:禁用
  • 1:启用

2

R

0x0

RACTIVE

Reception ACTIVE,接收状态位

  • 0:控制器当前没有接收活动
  • 1:控制器当前正在接收帧

1

R

0x0

TACTIVE

Transmission ACTIVE,发送状态位

  • 0:控制器当前无传输活动
  • 1:控制器当前正在发送一个帧

0

R/W

0x0

BUSOFF

Bus Off,总线断开

  • 0:控制器总线状态连接
  • 1:控制器总线状态断开
注: BUSOFF 置位将会清零 TECNT 和 RECNT 。

0x0A1 CANFD_TCMD

注: 同时置位 TSONE 和 TSALL 是没有意义的,若同时置位 TSONE 和 TSALL ,则 TSALL 获胜并且 TSONE 被自动清零。

默认值:0x00

CANFD_TCMD

位域

类型

默认值

描述

7

R/W

0x0

TBSEL

Transmit Buffer Select,发送缓冲区选择

  • 0:选择 PTB (高优先级缓冲区)
  • 1:选择 STB

如果(TTEN = 1 且 TTTBM = 1),该位将重置为 0。

6

R/W

0x0

LOM

Listen Only Mode,监听模式

  • 0:禁用
  • 1:启用
注:
  • 若已置位 TPE、TSONE 或 TSALL,则无法置位 LOM。
  • LOM = 1 和 LBME = 0 禁用所有传输。
  • LOM = 1 和 LBME = 1 禁用响应其它接收帧和错误帧的 ACK,但允许 ACK 响应传输自己的帧。

5

R/W

0x0

STBY

Transceiver Standby Mode,收发器休眠模式

  • 0:禁用
  • 1:启用

当 STBY 模式启用时,外部 CANFD_STB 引脚输出高电平。

当 STBY 模式禁用时, 外部 STB 引脚输出低电平。

注: 若 TPE = 1,TSONE = 1 或者 TSALL = 1 的时候不能置位 STBY。

4

R/ WAC

0x0

TPE

Transmit Primary Enable,使能 PTB 发送

  • 0:PTB 无传输
  • 1:PTB 传输使能

如果置位 TPE,则 PTB 将在当前传输完成后的下一个空闲时间点开始传输。

置位后,TPE 会等到消息已成功传输或使用 TPA 中止后才自动清零,控制器无法通过写 0 让其重置为 0。

如果 RESET = 1、STBY = 1、(LOM = 1 且 LBME = 0)或(TTEN = 1 且 TTTBM = 1),该位将重置为 0。

3

R/ WAC

0x0

TPA

Transmit Primary Abort,中止当前 PTB 进行发送

  • 0:不中止
  • 1:中止来自 PTB 的传输,该传输已由 TPE = 1 请求但尚未开始发送。(消息仍保留在 PTB 中)
注:
  • 置位 TPA 会自动使 TPE 无效。
  • 可以将 TPA 置位,但无法通过写 0 让其重置为 0。
  • 若 RESET = 1 或(TTEN = 1 且 TTTBM = 1),该位将重置为 0。
  • TPA 不应与 TPE 同时置位。

2

R/ WAC

0x0

TSONE

Transmit Secondary ONE frame,使能 STB 发送单帧消息

  • 0:STB 无传输
  • 1:STB 中单帧传输使能。
    • 在 FIFO 模式下,发送最早的消息。
    • 在优先级模式下,发送具有最高优先级的消息。

置位后,TSONE 会等到消息成功传输或使用 TSA 中止后才自动清零。

控制器可以将 TSONE 置位,但不能将其重置为 0。

出现以下任意情况,该位将重置为 0:
  • RESET = 1
  • STBY = 1
  • LOM = 1 且 LBME = 0
  • TTEN = 1 且 TTTBM = 1

1

R/ WAC

0x0

TSALL

Transmit Secondary ALL frame,使能 STB 发送所有帧消息

  • 0:STB 无传输
  • 1:STB 中所有消息的传输使能

置位后,TSALL 会等直到所有消息都已成功传输或使用 TSA 中止后才自动清零。

控制器可以将 TSALL 置位,但不能将其重置为 0。canfd-register-m7600_m7300.html#register__p_kcy_dmx_dbc

注: 如果在传输期间 STB 加载了新帧,则新帧也将被传输,表示当 STB 变空时,由 TSALL 发起的传输结束。

0

R/ WAC

0x0

TSA

Transmit Secondary Abort,中止 STB 发送操作

  • 0:不中止
  • 1:中止已请求但尚未开始的 STB 的传输

    对于 TSONE 传输,只有一帧被中止。而对于 TSALL 传输,所有帧都被中止,并且所有中止的消息都将丢失,TSSTAT 也会相应更新状态。

控制器可以将 TSA 置位,但不能将其重置为 0,置位 TSA 自动分别使 TSONE 或 TSALL 无效。

如果 RESET = 1,该位将被重置为 0。

0x0A2 CANFD_TCTRL

默认值:0x90

CANFD_TCTRL

位域

类型

默认值

描述

7

R/W

0x1

FD_ISO

CAN FD ISO mode CANFD 模式选择

  • 0:选择 Bosch CAN FD (非 ISO)模式
  • 1:选择 ISO CAN FD ( ISO 11898-1:2015 ) 模式

ISO CANFD 模式具有不同的 CRC 初始化值和额外的填充位计数。

注:
  • 两种模式不兼容,不得在一个 CAN 网络中混合使用。
  • 该位对 CAN2.0 帧格式没有影响。
  • 该位仅在 RESET = 1 时可写。

6

R/ WAC

0x0

TSNEXT

Transmit buffer Secondary NEXT,STB 下一个时隙选择

  • 0:无动作
  • 1:STB 时隙已满,选择下一个时隙
在帧的所有信息都写入 TBUF 寄存器后,控制器必须置位 TSNEXT 以发出该时隙已满的信号。由 CANFD 控制器内核将 TBUF 寄存器连接到下一个时隙。一旦一个时隙被标记为已满,就可以使用 TSONE 或 TSALL 开始传输。
  • 若 TBSEL = 0,则置位 TSNEXT 不起任何作用,该位被自动清零。
  • 若 TBSEL = 1,且 STB 的所有时隙都已满,则 TSNEXT 保持置位直到有时隙空闲。
  • TSNEXT 在 TTCAN 模式下没有意义,固定为 0。

5

R/W

0x0

TSMODE

Transmit buff Secondary operation mode,STB 操作模式

仅当 STB 为空时才能切换 TSMODE。

  • 0:FIFO 模式,帧按照写入 STB 的顺序传输。
  • 1:优先级模式,STB 中具有最高优先级的帧自动首先传输。

4

R/W

0x1

TTTBM

TTCAN Transmit Buffer Mode,TTCAN 发送缓存模式

0:分离 PTB 和 STB,行为由 TSMODE 定义。

1:完整的 TTCAN 支持。缓冲时隙可由 TBPTR 和 TTPTR 选择。

  • 当 TTEN = 0 时,为非 TTCAN 场景,此时 TTTBM 无效,系统提供 PTB 和 STB , STB 的行为由 TSMODE 定义。
  • 当 TTEN = 1,且需要完全支持包括时间触发传输在内的所有功能的 TTCAN 场景,则需要置位 TTTBM,此时所有 TB 时隙都可以使用 TTPTR 和 TBPTR 寻址。
  • 当 TTEN = 1,且只支持接收时间戳的 TTCAN 场景,则可以清零 TTTBM,此时发送缓冲区就像在事件驱动模式下一样工作,并且可以通过 TSMODE 选择行为。
  • 仅当 TBUF 为空时才切换 TTTBM 。

3:2

-

-

-

1:0

RO

0x0

TSSTAT

Transmission Secondary STATUS bits,辅发送缓存器状态

如果 TTEN = 0 或者 TTTBM = 0:

  • 0x0:STB 为空
  • 0x1:STB 少于或等于一半缓存空间
  • 0x2:STB 大于一半缓存空间
  • 0x3:STB 已满

如果 TTEN = 1 或者 TTTBM = 1:

  • 0x0:PTB 和 STB 为空
  • 0x1:PTB 和 STB 非空也非满
  • 0x3:PTB 和 STB 已满

0x0A3 CANFD_RCTRL

默认值:0x00

CANFD_RCTRL

位域

类型

默认值

描述

7

R/W

0x0

SACK

Self-ACKnowledge,自我应答

  • 0:无自我应答
  • 1:当 LBME = 1 时产生自我应答

6

R/W

0x0

ROM

Receive buff Overflow Mode,接收缓冲器溢出模式

若收到新消息时接收缓冲器已满,则接收缓冲器选择:

  • 0:最早的消息将被覆盖
  • 1:新消息将被丢弃

5

R

0x0

ROV

Receive buffer Overflow,接收缓冲器溢出状态

  • 0:未溢出
  • 1:已溢出
注: RREL 写 1 清零 ROV。

4

R/W

0x0

RREL

Receive buffer Release,接收缓冲器释放

  • 0:释放当前接收缓冲器的时隙
  • 1:不释放当前接收缓冲器的时隙

主机读取接收缓冲器某时隙的帧消息后,置位 RREL 使控制器指向下一时隙帧消息,同时 RSTAT 更新状态。

3

R/W

0x0

RBALL

Receive Buffer stores ALL data frames,接收缓冲器接收所有帧

  • 0:正常接收(不包含有错误的帧消息)
  • 1:接收所有(包括有错误)的帧消息

2

-

-

-

1:0

R

0x0

RSTAT

Receive buffer STATUS,接收缓冲器状态

  • 0x0:空
  • 0x1:非空,但是未达到 AFWL 设置的触发阈值
  • 0x2:大于等于 AFWL 设置的阈值,但还没满
  • 0x3:已满

0x0A4 CANFD_RTIE

默认值:0xFE

CANFD_RTIE

位域

类型

默认值

描述

7

R/W

0x1

RIE

Receive Interrupt Enable,接收中断使能

  • 0:禁用
  • 1:启能

6

R/W

0x1

ROIE

RB Overrun Interrupt Enable,接收缓冲器溢出中断使能

  • 0:禁用
  • 1:启能

5

R/W

0x1

RFIE

RB Full Interrupt Enable,接收缓冲器已满中断使能

  • 0:禁用
  • 1:启能

4

R/W

0x1

RAFIE

RB Almost Full Interrupt Enable,接收缓冲器快满中断使能

  • 0:禁用
  • 1:启能

3

R/W

0x1

TPIE

Transmission Primary Interrupt Enable,PTB 传输中断使能

  • 0:禁用
  • 1:启能

2

R/W

0x1

TSIE

Transmission Secondary Interrupt Enable,STB 传输中断使能

  • 0:禁用
  • 1:启能

1

R/W

0x1

EIE

Error Interrupt Enable,错误中断使能

  • 0:禁用
  • 1:启能

0

R

0x0

TSFF

  • 当 TTEN = 0 和 TTTBM = 0:Transmit Secondary buffer Full Flag,STB 满标志位
    • 0:STB 中未填充到最大数量的消息
    • 1:STB 中已填充最大数量的消息
  • 当 TTEN = 1 和 TTTBM = 1:Transmit buffer Slot Full Flag,发送缓冲器时隙已满标志位
    • 0:TBPTR 指向的缓存时隙是空的
    • 1:TBPTR 指向的缓存时隙已填充满

0x0A5 CANFD_RTIF

注: 标志位只有在对应的使能位开启后才能被写 1 清零。

默认值:0x00

CANFD_RTIF

位域

类型

默认值

描述

7

R/W1C

0x0

RIF

Receive Interrupt Flag,接收缓冲器接收中断标志位

  • 0:未收到帧消息
  • 1:收到可用帧消息并已存在接收缓冲器中

6

R/W1C

0x0

ROIF

RB Overrun Interrupt Flag,接收缓冲器溢出中断标志位

  • 0:接收缓冲器未溢出,没有帧消息被覆盖
  • 1:接收缓冲器已溢出,至少有一条接收到的帧消息被覆盖
注: 当 ROIF = 1 时,RFIF 也会置位

5

R/W1C

0x0

RFIF

RB Full Interrupt Flag,接收缓冲器接收满中断标志位

  • 0:接收缓冲器未满
  • 1:接收缓冲器所有时隙都已满

4

R/W1C

0x0

RAFIF

RB Almost Full Interrupt Flag,接收缓冲器接收阈值中断标志位

  • 0:未超过 AFWL 设置的阈值
  • 1:超过或等于 AFWL 设置的阈值

3

R/W1C

0x0

TPIF

Transmission Primary Interrupt Flag,PTB 发送完成中断标志位

  • 0:PTB 请求的发送未完成
  • 1:PTB 请求的发送已完成
注: TTCAN 模式下,该位无效。

2

R/W1C

0x0

TSIF

Transmission Secondary Interrupt Flag,STB 发送完成中断标志位

  • 0:STB 请求的发送未完成
  • 1:STB 请求的发送已完成
注: TTCAN 模式下,无论消息存储在什么位置,TSIF 都表示所有成功的传输。

1

R/W1C

0x0

EIF

ERROR Interrupt Flag,错误中断标志位

  • 0:未发生变化
  • 1:超过错误警告阈值或者 BUSOFF 发生变化

0

R/W1C

0x0

AIF

Abort Interrupt Flag,中止中断标志位

  • 0:没有执行任何中止
  • 1:发生 TPA 或者 TSA 中止
注:
  • AIF 没有对应的使能位。
  • 不推荐同时置位 TPA 和 TSA,因为他们都使能 AIF。

0x0A6 CANFD_ERRINT

注: 标志位只有在对应的使能位开启后才能被写 1 清零。

默认值:0x00

CANFD_ERRINT

位域

类型

默认值

描述

7

R

0x0

EWARN

Error WARNING limit reached,错误警告达到门限

  • 0:RECNT 或者 TECNT 未达到 EWL 门限。
  • 1:RECNT 或者 TECNT 等于或超过 EWL。

6

R

0x0

EPASS

Error Passive mode active,被动错误模式

  • 0:未激活,主动错误模式
  • 1:激活,被动错误模式

5

R/W

0x0

EPIE

Error Passive Interrupt Enable,错误被动模式中断使能

  • 0:禁用
  • 1:启用

4

R/W1C

0x0

EPIF

Error Passive Interrupt Flag,被动错误中断标志位

  • 0:未发生中断
  • 1:从主动错误变为被动错误或者从被动错误变为主动错误

3

R/W

0x0

ALIE

Arbitration Lost Interrupt Enable,仲裁丢失中断使能

  • 0:禁用
  • 1:启用

2

R/W1C

0x0

ALIF

Arbitration Lost Interrupt Flag,仲裁丢失中断标志位

  • 0:未丢失
  • 1:丢失

1

R/W

0x0

BEIE

Bus Error Interrupt Enable,总线错误中断使能

  • 0:禁用
  • 1:启用

0

R/W1C

0x0

BEIF

Bus Error Interrupt Flag,总线错误中断标志位

  • 0:未发生错误
  • 1:发生错误

0x0A7 CANFD_LIMIT

默认值:0x1B

CANFD_LIMIT

位域

类型

默认值

描述

7:4

R/W

0x01

AFWL

receive buffer Almost Full Warning Limit,接收缓冲器快满警告门限阈值

当接收缓冲器中的数据层数大于等于 AFWL 后会触发 RAFIF 中断。

  • 0~1:AFWL = 1
  • 2~7:AFWL = 2 ~ 7
  • ≥8:AFWL = 8
注: 当 AFWL 设置为 8 的时候,实际上会触发 RFIF 中断。

3:0

R/W

0x0B

EWL

Programmable Error Warning Limit,可编程错误警告门限

  • 错误警告门限 = (EWL + 1) × 8

0x0A8 CANFD_SSEG1

默认值:0x03

CANFD_SSEG1

位域

类型

默认值

描述

7:0

R/W

0x3

S_Seg_1

Bit Timing Segment 1 慢速模式位时序段 1

实际采样时间点设置在帧开始后 Tseg1 = (S_Seg_1 + 2) × TQ (Time Quanta)

注: 当 RESET = 1 时可写。
注: TQ=Prescaler/system_clock

0x0A9 CANFD_ SSEG2

默认值:0x02

CANFD_ SSEG2

位域

类型

默认值

描述

7

-

-

-

6:0

R/W

0x02

S_Seg_2

Bit Timing Segment 2 慢速模式位时序段 2

采样点后 Tseg2 = (S_Seg_2 + 1) × TQ (Time Quanta)

注: 当 RESET = 1 时可写。

0x0AA CANFD_SSJW

默认值:0x02

CANFD_SSJW

位域

类型

默认值

描述

7

-

-

-

6:0

R/W

0x2

S_SJW

Synchronization Jump Width,慢速模式重新同步调整宽度

Tsjw = (S_SJW + 1) × TQ (Time Quanta) 该时间表示用于重新同步的最大的加长或者缩短位时序时间

注: 当 RESET = 1 时可写。

0x0AB CANFD_SPRESC

默认值:0x01

CANFD_SPRESC

位域

类型

默认值

描述

7:0

R/W

0x1

S_PRESC

Prescaler ,慢速模式下时钟预分频因子

实际分频因子 = S_PRESC + 1

注: 当 RESET = 1 时可写。

0x0AC CANFD_FSEG1

默认值:0x03

CANFD_FSEG1

位域

类型

默认值

描述

7:5

-

-

-

4:0

R/W

0x3

F_Seg_1

Bit Timing Segment 1 快速模式位时序段 1

实际采样时间点设置在帧开始后 Tseg1 = (F_Seg_1 + 2) × TQ (Time Quanta)

注: 当 RESET = 1 时可写。

0x0AD CANFD_ FSEG2

默认值:0x02

CANFD_ FSEG2

位域

类型

默认值

描述

7:4

-

-

-

3:0

R/W

0x02

F_Seg_2

Bit Timing Segment 2 快速模式位时序段 2

采样点后 Tseg2 = (F_Seg_2 + 1) × TQ (Time Quanta)

注: 当 RESET = 1 时可写。

0x0AE CANFD_FSJW

默认值:0x02

CANFD_FSJW

位域

类型

默认值

描述

7:4

-

-

-

3:0

R/W

0x2

F_SJW

Synchronization Jump Width 快速模式重新同步调整宽度

Tsjw = (F_SJW + 1) × TQ (Time Quanta) 该时间表示用于重新同步的最大的加长或者缩短位时序时间

注: 当 RESET = 1 时可写。

0x0AF CANFD_FPRESC

默认值:0x01

CANFD_FPRESC

位域

类型

默认值

描述

7:0

R/W

0x1

F_PRESC

Prescaler 快速模式下时钟预分频因子

实际分频因子 = F_PRESC + 1

注: 当 RESET = 1 时可写。

0x0B0 CANFD_EALCAP

默认值:0x00

CANFD_EALCAP

位域

类型

默认值

描述

7:5

R

0x0

KOER

Kind of Error 错误类型

  • 0x0:无错误
  • 0x1:BIT ERROR 位错误
  • 0x2:FORM ERROR 格式错误
  • 0x3:STUFF ERROR 填充位错误
  • 0x4:ACKNOWLEDGEMENT ERROR ACK 应答错误
  • 0x5:CRC ERROR CRC 冗余校验位错误
  • 0x6:其它错误
  • 0x7:未使用
注: KOER 随每个新错误而更新。因此,当帧被成功传输或接收时,它保持不变。

4:0

R

0x0

ALC

Arbitration Lost Capture 仲裁丢失捕捉位位置

  • 0x00~0x0A:1~11 位标识符仲裁丢失,对应标准格式(ID10~ ID0)扩展格式(ID28~ ID18)
  • 0x0B:SRTR 仲裁丢失
  • 0x0C:IDE 仲裁丢失
  • 0x0D~0x1E:12~29 位标识符仲裁丢失,对应扩展格式(ID17~ ID0)
  • 0x1F:RTR 仲裁丢失

0x0B1 CANFD_TDC

注: 0x0B1 CANFD_TDC当 RESET = 1 时可写。

默认值:0x00

CANFD_TDC

位域

类型

默认值

描述

7

R/W

0x0

TDCEN

Transmitter Delay Compensation Enable 发送延迟补偿使能

当在 CANFD 帧中 TDCEN = 1,BRS 处于活动状态后,则 TDC 功能将在数据阶段被激活。

6:0

R/W

0x0

SSPOFF

Secondary Sample Point Offset 第二采样点偏移

传输器延迟加上 SSPOFF 后定义了第二采样点的时间。SSPOFF 以 TQ 的数量给出。

0x0B2 CANFD_RECNT

默认值:0x00

CANFD_RECNT

位域

类型

默认值

描述

7:0

R

0x0

RECNT

Receive Error Count,接收错误计数器

RECNT 按照 CAN 规范中的定义递增和递减。

0x0B3 CANFD_TECNT

默认值:0x00

CANFD_TECNT

位域

类型

默认值

描述

7:0

R

0x0

TECNT

Transmit Error Count,发送错误计数器

TECNT 按照 CAN 规范中的定义递增和递减。

0x0B4 CANFD_ACFCTRL

默认值:0x00

CANFD_ACFCTRL

位域

类型

默认值

描述

7:6

-

-

-

5

R/W

0x0

SELMASK

Select acceptance MASK 选择接收掩码

4

-

-

-

3:0

R/W

0x0

ACFADR

Acceptance filter address,接收过滤器地址

  • 0 ~ 15 表示 0 ~ 15 一共 16 个通道接收过滤器

0x0B5 CANFD_TIMECFG

默认值:0x02

CANFD_TIMECFG

位域

类型

默认值

描述

7:2

-

-

-

1

R/W

0x1

TIMEPOS

TIME-stamping Position,CiA 603 时间戳位置

  • 0:SOF
  • 1:EOF

TIMEPOS 只能当 TIMEEN = 0 时可被更改。

注: 可以在同一个寄存器写操作时间点同时设置 TIMEEN = 1 和修改 TIMEPOS。

0

R/W

0x0

TIMEEN

TIME-stamping enable,CiA 603 时间戳使能

  • 0:禁止
  • 1:使能

0x0B6 CANFD_EN0

默认值:0x01

CANFD_EN0

位域

类型

默认值

描述

7:0

R/W

0x01

AE_x

Acceptance Filter Enable0,接收过滤器通道使能低 8 位

  • 0:未使能
  • 1:使能

每一位代表每一个接收过滤器通道,位 0 ~ 7 分别代表通道 0 ~ 7。

0x0B7 CANFD_EN1

默认值:0x00

CANFD_EN1

位域

类型

默认值

描述

7:0

R/W

0x00

AE_x

Acceptance Filter Enable0,接收过滤器通道使能高 8 位

  • 0:未使能
  • 1:使能

每一位代表每一个接收过滤器通道,位 0 ~ 7 分别代表通道 8 ~ 15。

0x0B8 CANFD_ACODEx

注: 对于寄存器0x0B8 CANFD_ACODEx
  • 当 RESET = 1 时可写。
  • 只能是 32 位访问,不能使用 8 或者 16 位模式访问。

默认值:0x0000_0000

CANFD_ACODEx

位域

类型

默认值

描述

31:29

-

-

-

28:0

R/W

0x0

ACODE_x

Acceptance CODE,接收过滤 ID 值

  • 将接收到的帧 ID 值与对应位的 ID 值进行对比

ACODE_x[10:0] 用于标准帧。

ACODE_x[28:0] 用于扩展帧。

0x0B8 CANFD_MASKx

注: 对于寄存器 0x0B8 CANFD_MASKx
  • 当 RESET = 1 时可写。
  • 只能是 32 位访问,不能使用 8 或者 16 位模式访问。

默认值:0x0000_0000

CANFD_MASKx

位域

类型

默认值

描述

31

-

-

-

30

R/W

0x0

AIDEE

Acceptance mask IDE bit check enable,IDE 检查使能

  • 0:接收过滤器接收两种类型帧
  • 1:接收过滤器接收 AIDE 指定的类型帧

29

R/W

0x0

AIDE

Acceptance mask IDE bit value,IDE 掩码值

  • 0:接收过滤器只接收标准帧
  • 1:接收过滤器只接收扩展帧

28:0

R/W

0x0

AMASK_x

Acceptance MASK,接收过滤器掩码值

  • 0:该比特位需要与 ACODE_x 对应位对比
  • 1:该比特位不需要与 ACODE_x 对应位对比

AMASK_x[10:0] 用于标准帧。

AMASK_x[28:0] 用于扩展帧。

0x0BC~0x0BD CANFD_VERSION

默认值:0x0001

CANFD_VERSION

位域

类型

默认值

描述

15:8

R

0x01

MAJOR VERSION

主版本号

7:0

R

0x01

MINOR VERSION

次版本号

0x0BE CANFD_TBSLOT

默认值:0x00

CANFD_TBSLOT

位域

类型

默认值

描述

7

R/W

0x0

TBE

set TB slot to Empty,选择发送缓冲器时隙设置为空状态

  • 0:无操作
  • 1:选择发送缓冲器时隙标记为空状态
注:
  • 置位 TPE 后,若 TSFF = 0,则 TPE 位会自清零。
  • 置位 TPE 后,若此时发送还在进行中,则控制器会等到发送完毕后,或者传输错误,或者仲裁丢失才自动清零。
  • 如果 TBF 和 TBE 同时置位,则 TBE 生效而 TPF 无效。

6

R/W

0x0

TBF

set TB slot to Filled,选择发送缓冲器时隙设置为满状态

  • 0:无操作
  • 1:选择发送缓冲器时隙标记为满状态
注:
  • 置位 TPF 后,若 TSFF = 1,则 TPF 位会自清零。
  • 如果 TBF 和 TBE 同时置位,则 TBE 生效而 TPF 无效。

5:0

R/W

0x0

TBPTR

Pointer to a TB message slot,指向发送缓冲器的缓冲区时隙指针

  • 0:指向 PTB 中的时隙的指针
  • 1 ~ 4:指向 STB 的时隙的指针

TBPTR 指向的消息时隙可以使用 TBUF 进行读写,可以通过 TBF 或 TBE 标记满或者空状态。

注: 若 TBPTR 大于等于 5,则 TPF 和 TPE 同时清零,并且不会发生任何动作。

0x0BF CANFD_TTCFG

默认值:0x90

CANFD_TTCFG

位域

类型

默认值

描述

7

R/W

0x1

WTIE

Watch Trigger Interrupt Enable,观测触发中断使能

  • 0:未使能
  • 1:使能

6

R/W1C

0x0

WTIF

Watch Trigger Interrupt Flag,观测触发中断标志位

当周期计数到达 TT_WTRIG 定义的阈值以及 WTIE 置位时 WTIF 会置位。

5

R/W1C

0x0

TEIF

Trigger Error Interrupt Flag,触发错误中断标志位。

注: TEIF 没有对应的使能或者禁用的中断使能位。

4

R/W

0x1

TTIE

Time Trigger Interrupt Enable,时间触发中断使能

  • 0:未使能
  • 1:使能

3

R/W1C

0x0

TTIF

Time Trigger Interrupt Flag,时间触发中断标志位

当 TTIE = 1 时,若 cycle time 循环时间等于 TT_TRIG ,则将置位 TTIF。

注: TTIF 只会被置位 1 次,如果 TT_TRIG 没有更新,则在下一个基础周期内 TTIF 不会被再次置位。

2:1

R/W

0x0

T_PRESC

TTCAN Time Prescaler,定时器预分频器

  • 0:1
  • 1:2
  • 2:4
  • 3:8
注: T_PRESC 只能在 TTEN = 0 时被修改,但可以在同一个写操作时间点同时修改 T_PRESC 和设置 TTEN = 1。

0

R/W

0x0

TTEN

Time Trigger Enable,时间触发功能使能

  • 0:未使能
  • 1:TTCAN 使能,计时器运行

0xC0 ~ 0xC3 CANFD_REFMSG[3:0]

默认值:0x0000_0000

CANFD_REFMSG[3:0]

位域

类型

默认值

描述

31

R/W

0x0

REF_IDE

Reference message IDE bit,参考消息 IDE 位

30:29

-

-

-

28:0

R/W

0x0

REF_ID

Reference message Identifier,参考消息 ID 值

  • 当 REF_IDE = 0,则 REF_ID[10:0] 有效(标准 ID )
  • 当 REF_IDE = 1,则 REF_ID[28:0] 有效(扩展 ID )

REF_ID 用于在 TTCAN 模式下检测接收或者发送的参考消息。如果参考消息被检测到,并且没有错误,则该帧的 Sync_Mark 同步标记就会变成 Ref_Mark 参考标记。

REF_ID[2:0] 会被强制清零,表示可以支持 8 个时间主机。

0xC4 CANFD_TRIG_CFG0

默认值:0x00

CANFD_TRIG_CFG0

位域

类型

默认值

描述

7:6

-

-

-

5:0

R/W

0x0

TTPTR

Transmit Trigger TB Slot Pointer,发送触发 TB 时隙指针

  • 0:指向 PTB 中的时隙的指针
  • 1 ~ 4:指向 STB 的时隙的指针
注:
  • 如果 TTPTR 大于等于 5,则 TEIF 会被置位,并且 0xC5 CANFD_TRIG_CFG1写访问后无法激活新触发器。
  • 若 TTPTR 指向一个空时隙,则当触发时间到达的那一刻,TEIF 也会置位。

0xC5 CANFD_TRIG_CFG1

默认值:0x00

CANFD_TRIG_CFG1

位域

类型

默认值

描述

7:4

R/W

0x0

TEW

Transmit Enable Window,发送使能窗口

对于单次发送触发器,允许帧开始的周期时间最多为 16 个节拍。 TEW + 1 定义了节拍数。

注: TEW = 0 表示发送使能窗口缩短为 一个节拍。

3

-

-

-

2:0

R/W

0x0

TTYPE

Trigger Type,触发器类型

  • 0:立即触发器,用于立即发送
  • 1:时间触发器,用于接收触发
  • 2:单次发送触发器,用于独享时间窗口
  • 3:发送开始触发器,用于合并仲裁时间窗口
  • 4:发送停止触发器,用于合并仲裁时间窗口
  • 其它:无操作

触发时间由 TT_TRIG 定义。 TTPTR 为发送触发器选择 TB 时隙。

0xC6 ~ 0xC7 CANFD_TT_TRIG [1:0]

默认值:0x0000

CANFD_TT_TRIG [1:0]

位域

类型

默认值

描述

15:0

R/W

0x0

TT_TRIG

Trigger Time,触发时间

TT_TRIG[15:0] 定义了触发器的循环时间。对于发送触发,最早的 SOF 发送时间点将在 TT_TRIG + 1。

对 0xC7 CANFD_TT_TRIG1 的写操作将会激活发送。激活后,下列寄存器将会被写锁住,直到 TT_TRIG 触发时间到达或者检测到错误。

0xC8~ 0xC9 CANFD_TT_WTRIG[1:0]

默认值:0xFFFF

CANFD_TT_WTRIG[1:0]

位域

类型

默认值

描述

15:0

R/W

0x0

TT_WTRIG[15:0]

Watch Trigger Time,观测触发时间

TT_WTRIG[15:0] 定义了观测触发的循环时间。

0xD4 CANFD_DMAC

默认值:0x02

CANFD_DMAC

位域

类型

默认值

描述

7:6

-

-

-

4

R/W

0x0

ONE_BUF_EN

只使用一个 TBUF,仅适用 TTCAN 模式,使能后 TBUF 指针不再变化。

  • 0:未使能
  • 1:使能

3

-

-

-

2

R/W

0x0

TS SEL

tsone/tsall 信号选择

  • 0:tsone
  • 1:tsall
2 - - -

1

R/W

0x1

TS AUTO

tsone 信号自动控制使能

  • 0:未使能
  • 1:使能

0

R/W

0x0

DMA DST EN

DMA Destination Enable,发送 DMA 使能

  • 0:未使能
  • 1:使能

0xD5 CANFD_DST_THR

默认值:0x0

CANFD_DST_THR

位域

类型

默认值

描述

7

-

-

-

6:0

R/W

0x0

DMA_DST_THR

DMA destination threshold,触发水位,单位为 byte。

当 DMA DST EN 为 1 及 TX buffer 可以存入 1 帧数据,则发起 DMA 请求。如果可写数据量大于等于水位值,那么发起的请求为 burst 类型。

0xD6 CANFD_SCR_EN

默认值:0x0

CANFD_SCR_EN

位域

类型

默认值

描述

7:1

-

-

-

0

R/W

0x0

DMA_SCR_EN

DMA source en,source DMA 使能
  • 0:未使能
  • 1:使能

0xD7 CANFD_SRC_THR

默认值:0x0

CANFD_SRC_THR

位域

类型

默认值

描述

7

-

-

-

6:0

R/W

0x0

DMA_SRC_THR

DMA source threshold,触发水位,单位为 byte。

当 DMA SRC EN 为 1 及 RX buffer 可以读取 1 帧数据,则发起 DMA 请求。如果可写数据量大于等于水位值,那么发起的请求为 burst 类型。