11.4.4. 寄存器列表

表 11.14 CAN 寄存器地址映射表

Module Name

Mapping Size

Offset

CAN

4 KB

0x000

表 11.15 CAN 寄存器列表

寄存器名

偏移地址

寄存器功能描述

CAN_MODE

0x000

CAN模式寄存器

CAN_MCR

0x004

CAN控制寄存器

CAN_STAT

0x008

CAN状态寄存器

CAN_INTR

0x00C

CAN中断寄存器

CAN_INTEN

0x010

CAN中断使能寄存器

CAN_BTR0

0x018

CAN总线时序0寄存器

CAN_BTR1

0x01C

CAN总线时序1寄存器

CAN_ARBLOST

0x02C

CAN仲裁丢失捕获寄存器

CAN_ERRCODE

0x030

CAN错误代码捕获寄存器

CAN_ERRWT

0x034

CAN错误报警阈值寄存器

CAN_RXERR

0x038

CAN接收错误计数寄存器

CAN_TXERR

0x03C

CAN发送错误计数寄存器

CAN_BUF0

0x040

CAN缓冲0寄存器

CAN_BUF1

0x044

CAN缓冲1寄存器

CAN_BUF2

0x048

CAN缓冲2寄存器

CAN_BUF3

0x04C

CAN缓冲3寄存器

CAN_BUF4

0x050

CAN缓冲4寄存器

CAN_BUF5

0x054

CAN缓冲5寄存器

CAN_BUF6

0x058

CAN缓冲6寄存器

CAN_BUF7

0x05C

CAN缓冲7寄存器

CAN_BUF8

0x060

CAN缓冲8寄存器

CAN_BUF9

0x064

CAN缓冲9寄存器

CAN_BUF10

0x068

CAN缓冲10寄存器

CAN_BUF11

0x06C

CAN缓冲11寄存器

CAN_BUF12

0x070

CAN缓冲12寄存器

CAN_RXCODE0

0x040

CAN接收代码0寄存器

CAN_RXCODE1

0x044

CAN接收代码1寄存器

CAN_RXCODE2

0x048

CAN接收代码2寄存器

CAN_RXCODE3

0x04C

CAN接收代码3寄存器

CAN_RXMASK0

0x050

CAN接收屏蔽0寄存器

CAN_RXMASK1

0x054

CAN接收屏蔽1寄存器

CAN_RXMASK2

0x058

CAN接收屏蔽2寄存器

CAN_RXMASK3

0x05C

CAN接收屏蔽3寄存器

CAN_RXC

0x074

CAN接收数据计数寄存器

CAN_RSADDR

0x078

CAN接收缓冲起始地址寄存器

CAN_RXFIFO

0x080~17C

CAN接收FIFO

CAN_TXB_RO

0x180~1B0

CAN发送缓冲只读寄存器

CAN_VERSION

0xFFC

版本寄存器

11.4.5. 寄存器描述

11.4.5.1. 0x000 CAN_MODE

默认值:0x00000001

CAN模式寄存器(CAN_MODE)

位域

类型

默认值

描述

31:5

-

-

-

4

R/W

0x0

SLEEP_MOD:Sleep Mode,休眠模式,只在复位模式可写
0x0:正常操作。控制器唤醒。
0x1:休眠模式。CAN无总线活动和无中断发生。

3

R/W

0x0

FILTER_MOD:Acceptance Filter Mode,接收过滤器模式
0x0:双过滤模式。使用两个过滤器。
0x1:单过滤模式。使用一个4字节过滤器。

2

R/W

0x0

SELFTEST_MOD:Self Test Mode,自测模式
0x0:正常操作。发送成功需有应答。
0x1:自测模式。在SELF_REQ自接收请求指令下,无需其它节点
参与也能完成整个节点测试,发送成功无需应答。

1

R/W

0x0

LISTEN_MOD:Listen Only Mode,只听模式
0x0:正常操作。错误计数停止于当前值 。
0x1:只听模式。只接收总线上数据,不产生应答信号,
也不更新接收错误计数。

0

R/W

0x1

RST_MOD:Reset Mode,复位模式
0x0:正常操作。控制器返回正常操作模式。
0x1:复位模式。发送或接收中止,控制器处于可配置状态。

11.4.5.2. 0x004 CAN_MCR

默认值:0x00000000

CAN控制寄存器(CAN_MCR)

位域

类型

默认值

描述

31:5

-

-

-

4

WO

0x0

SELF_REQ:Self Reception Request,自接收请求
0x0:无动作
0x1:允许发送数据的同时接收总线上的数据

3

WO

0x0

CLR_OVF_FLAG:Clear Overflow Flag,清除溢出标志
0x0:无动作
0x1:清除数据溢出标志位

2

WO

0x0

RXB_REL:Release Receive Buffer,释放接收缓冲器
0x0:无动作
0x1:释放,缓冲器中存放信息的内存空间被释放

1

WO

0x0

ABORT_REQ:Abort Transmission,中止发送
0x0:无动作
0x1:中止当前未开始的发送任务

0

WO

0x0

TX_REQ:Transmission Request,发送请求
0x0:无动作
0x1:信息被发送

11.4.5.3. 0x008 CAN_STAT

默认值:0x0000003C

CAN状态寄存器(CAN_STAT)

位域

类型

默认值

描述

31:8

-

-

-

7

RO

0x0

BUS_STAT:Bus Status,总线状态
0x0:正常状态。控制器参与总线活动。
0x1:Bus Off离线状态。控制器不参与总线活动。

6

RO

0x0

ERR_STAT:Error Status,错误状态
0x0:所有错误计数器低于警报限制值。
0x1:至少一个错误计数器高于警报限制值。

5

RO

0x1

TX_STAT:Transmit Status,发送状态
0x0:无任何发送。
0x1:正在发送数据。

4

RO

0x1

RX_STAT:Receive Status,接收状态
0x0:无任何接收。
0x1:正在接收数据。

3

RO

0x1

TXC_STAT:Transmission Complete Status,发送完成状态
0x0:没有完成发送。
0x1:成功完成发送。

2

RO

0x1

TXB_STAT:Transmit Buffer Status,发送缓冲状态
0x0:发送缓冲不可用。发送缓冲已锁定,不可访问。
0x1:发送缓冲可用。发送缓冲已释放,可写入数据。

1

RO

0x0

OVF_FLAG:Overflow Flag,溢出状态标志
0x0:数据没有溢出。
0x1:数据溢出。

0

RO

0x0

RXB_STAT:Receive Buffer Status,接收缓冲状态
0x0:接收缓冲为空。无数据可读。
0x1:接收缓冲不为空。有数据可读。

11.4.5.4. 0x00C CAN_INTR

默认值:0x00000000

CAN中断寄存器(CAN_INTR)

位域

类型

默认值

描述

31:8

-

-

-

7

R/W1C

0x0

ERRB_INT:Bus Error Interrupt,总线错误中断
节点检测到总线上发生了错误。

6

R/W1C

0x0

ARBLOST_INT:Arbitration Lost Interrupt,仲裁丢失中断
发送节点仲裁丢失。

5

R/W1C

0x0

ERRP_INT:Error Passive Interrupt,被动错误中断
节点在主动错误与被动错误状态间发生了切换,触发。

4

RC

0x0

WAKEUP:Wake-Up Interrupt,唤醒中断

3

R/W1C

0x0

OVF_INT:Overflow Interrupt,溢出中断
当前接收缓冲中存储的报文为溢出失效报文,触发。

2

R/W1C

0x0

ERRW_INT:Error Warning Interrupt,错误报警中断
错误状态和总线状态发生变化,触发。

1

R/W1C

0x0

TX_INT:Transmit Interrupt,发送中断
数据发送任务结束,可以执行新的数据发送任务,触发。

0

R/W1C

0x0

RX_INT:Receive Interrupt,接收中断
RXB_STAT=1接收缓冲不为空时触发,有数据待处理。

11.4.5.5. 0x010 CAN_INTEN

默认值:0x00000000

CAN中断使能寄存器(CAN_INTEN)

位域

类型

默认值

描述

31:8

-

-

-

7

R/W

0x0

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

6

R/W

0x0

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

5

R/W

0x0

ERRP_EN:Error Passive Interrupt Enable,被动错误中断使能

4

R/W

0x0

WAKEUP_EN:Wake-Up Interrupt Enable,唤醒中断使能

3

R/W

0x0

OVF_EN:Overflow Interrupt Enable,溢出中断使能

2

R/W

0x0

ERRW_EN:Error Warning Interrupt Enable,错误报警中断使能

1

R/W

0x0

TXI_EN:Transmit Interrupt Enable,发送中断使能

0

R/W

0x0

RXI_EN:Receive Interrupt Enable,接收中断使能

11.4.5.6. 0x018 CAN_BTR0

默认值:0x00000000

CAN总线时序0寄存器(CAN_BTR0)

位域

类型

默认值

描述

31:8

-

-

-

7:6

R/W

0x0

SJW:Synchronization Jump Width,重新同步跳转宽度
只在复位模式可写
0x0:1Tq
0x1:2Tq
0x2:3Tq
0x3:4Tq

5:0

R/W

0x0

BRP:Baud Rate Prescaler,波特率预分频
只在复位模式可写
时间定额Tq = 2*(BRP[5:0]+1)*Tpclk

11.4.5.7. 0x01C CAN_BTR1

默认值:0x00000000

CAN总线时序1寄存器(CAN_BTR1)

位域

类型

默认值

描述

31:8

-

-

-

7

R/W

0x0

SAM:Sample Time,采样次数,只在复位模式可写
0x0:采样1次。用于高速总线。
0x1:采样3次。用于低/中速总线。

6:4

R/W

0x0

TS2:缓冲时间段2的宽度,只在复位模式可写
[0x0~0x7]:1~8Tq

3:0

R/W

0x0

TS1:缓冲时间段1的宽度,只在复位模式可写
[0x0~0xF]:1~16Tq

11.4.5.8. 0x02C CAN_ARBLOST

默认值:0x00000000

CAN仲裁丢失捕获寄存器(CAN_ARBLOST)

位域

类型

默认值

描述

31:5

-

-

-

4:0

RO

0x00

ARBLOST_CAP:Arbitration Lost Capture,仲裁丢失捕获,
记录丢失bit的位置
0x00~0x0A:1~11位标识符仲裁丢失,对应
标准格式(ID10~ ID0)
扩展格式(ID28~ ID18)
0x0B:SRTR仲裁丢失
0x0C:IDE仲裁丢失
0x0D~0x1E:12~29位标识符仲裁丢失,对应
扩展格式(ID17~ ID0)
0x1F:RTR仲裁丢失

11.4.5.9. 0x030 CAN_ERRCODE

默认值:0x00000000

CAN错误代码捕获寄存器(CAN_ERRCODE)

位域

类型

默认值

描述

31:8

-

-

-

7:6

RO

0x0

ERR_TYPE:Error Type,错误类型
0x0:位错误。
0x1:格式错误。
0x2:填充错误。
0x3:其它类型错误。

5

RO

0x0

ERR_DIR:Error Direction,错误发生时数据传输方向
0x0:错误发生于发送。
0x1:错误发生于接收。

4:0

RO

0x00

ERR_CODE:Error Segment Code,错误发生段代码
0x03:SOF,帧起始
0x02:ID28~ID21,标识符
0x06:ID20~ID18,标识符
0x04:SRTR,代替远程发送请求位
0x05:IDE,标识符扩展位
0x07:ID17~ID13,标识符
0x0F:ID12~ID5,标识符
0x0E:ID4~ID0,标识符
0x0C:RTR,远程发送请求位
0x0D:R1,保留位
0x09:R0,保留位
0x0B:DLC,数据长度代码
0x0A:数据场
0x08:CRC,CRC序列
0x18:CRC分界符
0x19:ASK,应答槽
0x1B:ASK分界符
0x1A:EOF,帧结尾
0x12:间隔帧
0x11:主动错误标志
0x16:被动错误标志
0x13:兼容显性位
0x17:错误分界符
0x1C:过载标志

11.4.5.10. 0x034 CAN_ERRWT

默认值:0x00000060

CAN错误报警阈值寄存器(CAN_ERRWT)

位域

类型

默认值

描述

31:8

-

-

-

7:0

R/W

0x60

ERRWT:Error Warning Threshold,错误报警阈值,
默认值0x60(即96),正常模式只读,复位模式时R/W
任一错误计数值超过该阈值,触发错误报警中断(使能信号有效情况下)

11.4.5.11. 0x038 CAN_RXERR

默认值:0x00000000

CAN接收错误计数寄存器(CAN_RXERR)

位域

类型

默认值

描述

31:8

-

-

-

7:0

R/W

0x0

REC:Receive Error Counter,接收错误计数
正常模式只读,复位模式时R/W

11.4.5.12. 0x03C CAN_TXERR

默认值:0x00000000

CAN发送错误计数寄存器(CAN_TXERR)

位域

类型

默认值

描述

31:8

-

-

-

7:0

R/W

0x0

TEC:Transmit Error Counter,发送错误计数
正常模式只读,复位模式时R/W

11.4.5.13. 0x040 CAN_BUF0

默认值:0x00000000

CAN缓冲0寄存器(CAN_BUF0)

位域

类型

默认值

描述

31:8

-

-

-

7

R/W

0x0

IDE:Identifier Extended,标识符扩展位,用于明确报文格式
0x0:标准格式,SFF
0x1:扩展格式,EFF
RX缓冲时只读,TX缓冲时只写,复位模式时R/W

6

R/W

0x0

RTR:Remote Transmit Request,远程发送请求位
0x0:数据帧
0x1:远程帧
RX缓冲时只读,TX缓冲时只写,复位模式时R/W

5:4

-

-

-

3:0

R/W

0x0

DLC:Data Length Code,数据长度代码
0x0:无数据字节
0x1~0x8:数据帧对应包含1~8byte数据
RX缓冲时只读,TX缓冲时只写,复位模式时R/W

11.4.5.14. 0x044 CAN_BUF1

默认值:0x00000000

CAN缓冲1寄存器(CAN_BUF1)

位域

类型

默认值

描述

31:8

-

-

-

7:0

R/W

0x0

ID:
标准格式标识符[10:3]
扩展格式标识符[28:21]
RX缓冲时只读,TX缓冲时只写,复位模式时R/W

11.4.5.15. 0x048 CAN_BUF2

默认值:0x00000000

CAN缓冲2寄存器(CAN_BUF2)

位域

类型

默认值

描述

31:8

-

-

-

7:5

R/W

0x0

STID_EXID:
标准格式标识符[2:0]
扩展格式标识符[20:18]
RX缓冲时只读,TX缓冲时只写,复位模式时R/W

4:0

R/W

0x0

EXID:扩展格式标识符[17:13]
RX缓冲时只读,TX缓冲时只写,复位模式时R/W

11.4.5.16. 0x04C CAN_BUF3

默认值:0x00000000

CAN缓冲3寄存器(CAN_BUF3)

位域

类型

默认值

描述

31:8

-

-

-

7:0

R/W

0x0

STDATA1_EXID:
EXID[12:5],扩展格式标识符[12:5]
STDATA1[7:0],标准格式数据字节1
RX缓冲时只读,TX缓冲时只写,复位模式时R/W

11.4.5.17. 0x050 CAN_BUF4

默认值:0x00000000

CAN缓冲4寄存器(CAN_BUF4)

位域

类型

默认值

描述

31:8

-

-

-

7:3

R/W

0x0

STDATA2_EXID:
EXID[4:0],扩展格式标识符[4:0]
STDATA2[7:3] ,标准格式数据字节2[7:3]
RX缓冲时只读,TX缓冲时只写,复位模式时R/W

2:0

R/W

0x0

STDATA2:
STDATA2[2:0],标准格式数据字节2[2:0]
RX缓冲时只读,TX缓冲时只写,复位模式时R/W

11.4.5.18. 0x054 CAN_BUF5

默认值:0x00000000

CAN缓冲5寄存器(CAN_BUF5)

位域

类型

默认值

描述

31:8

-

-

-

7:0

R/W

0x0

STDATA3_EXDATA1:
STDATA3[7:0],标准格式数据字节3
EXDATA1[7:0],扩展格式数据字节1
RX缓冲时只读,TX缓冲时只写,复位模式时R/W

11.4.5.19. 0x058 CAN_BUF6

默认值:0x00000000

CAN缓冲6寄存器(CAN_BUF6)

位域

类型

默认值

描述

31:8

-

-

-

7:0

R/W

0x0

STDATA4_EXDATA2:
STDATA4[7:0],标准格式数据字节4
EXDATA2[7:0],扩展格式数据字节2
RX缓冲时只读,TX缓冲时只写,复位模式时R/W

11.4.5.20. 0x05C CAN_BUF7

默认值:0x00000000

CAN缓冲7寄存器(CAN_BUF7)

位域

类型

默认值

描述

31:8

-

-

-

7:0

R/W

0x0

STDATA5_EXDATA3:
STDATA5[7:0],标准格式数据字节5
EXDATA3[7:0],扩展格式数据字节3
RX缓冲时只读,TX缓冲时只写,复位模式时R/W

11.4.5.21. 0x060 CAN_BUF8

默认值:0x00000000

CAN缓冲8寄存器(CAN_BUF8)

位域

类型

默认值

描述

31:8

-

-

-

7:0

R/W

0x0

STDATA6_EXDATA4:
STDATA6[7:0],标准格式数据字节6
EXDATA4[7:0],扩展格式数据字节4
RX缓冲时只读,TX缓冲时只写,复位模式时R/W

11.4.5.22. 0x064 CAN_BUF9

默认值:0x00000000

CAN缓冲9寄存器(CAN_BUF9)

位域

类型

默认值

描述

31:8

-

-

-

7:0

R/W

0x0

STDATA7_EXDATA5:
STDATA7[7:0],标准格式数据字节7
EXDATA5[7:0],扩展格式数据字节5
RX缓冲时只读,TX缓冲时只写,复位模式时R/W

11.4.5.23. 0x068 CAN_BUF10

默认值:0x00000000

CAN缓冲10寄存器(CAN_BUF10)

位域

类型

默认值

描述

31:8

-

-

-

7:0

R/W

0x0

STDATA8_EXDATA6:
STDATA8[7:0],标准格式数据字节8
EXDATA6[7:0],扩展格式数据字节6
RX缓冲时只读,TX缓冲时只写,复位模式时R/W

11.4.5.24. 0x06C CAN_BUF11

默认值:0x00000000

CAN缓冲11寄存器(CAN_BUF11)

位域

类型

默认值

描述

31:8

-

-

-

7:0

R/W

0x0

EXDATA7:EXDATA7[7:0],扩展格式数据字节7
RX缓冲时只读,TX缓冲时只写,复位模式时R/W

11.4.5.25. 0x070 CAN_BUF12

默认值:0x00000000

CAN缓冲12寄存器(CAN_BUF12)

位域

类型

默认值

描述

31:8

-

-

-

7:0

R/W

0x0

EXDATA8:EXDATA8[7:0],扩展格式数据字节8
RX缓冲时只读,TX缓冲时只写,复位模式时R/W

11.4.5.26. 0x040 CAN_RXCODE0

默认值:0x00000000

CAN接收代码0寄存器(CAN_RXCODE0)

位域

类型

默认值

描述

31:8

-

-

-

7:0

R/W

0x0

RXCODE0:Acceptance Code0,接收过滤代码0
详细描述见 接收过滤器,正常模式只读,复位模式时R/W

11.4.5.27. 0x044 CAN_RXCODE1

默认值:0x00000000

CAN接收代码1寄存器(CAN_RXCODE1)

位域

类型

默认值

描述

31:8

-

-

-

7:0

R/W

0x0

RXCODE1:Acceptance Code1,接收过滤代码1
详细描述见 接收过滤器,正常模式只读,复位模式时R/W

11.4.5.28. 0x048 CAN_RXCODE2

默认值:0x00000000

CAN接收代码2寄存器(CAN_RXCODE2)

位域

类型

默认值

描述

31:8

-

-

-

7:0

R/W

0x0

RXCODE2:Acceptance Code2,接收过滤代码2
详细描述见 接收过滤器,正常模式只读,复位模式时R/W

11.4.5.29. 0x04C CAN_RXCODE3

默认值:0x00000000

CAN接收代码3寄存器(CAN_RXCODE3)

位域

类型

默认值

描述

31:8

-

-

-

7:0

R/W

0x0

RXCODE3:Acceptance Code3,接收过滤代码3
详细描述见 接收过滤器,正常模式只读,复位模式时R/W

11.4.5.30. 0x050 CAN_RXMASK0

默认值:0x00000000

CAN接收屏蔽0寄存器(CAN_RXMASK0)

位域

类型

默认值

描述

31:8

-

-

-

7:0

R/W

0x0

RXMASK0:Acceptance Mask3,接收屏蔽0
详细描述见 接收过滤器,正常模式只读,复位模式时R/W

11.4.5.31. 0x054 CAN_RXMASK1

默认值:0x00000000

CAN接收屏蔽1寄存器(CAN_RXMASK1)

位域

类型

默认值

描述

31:8

-

-

-

7:0

R/W

0x0

RXMASK1:Acceptance Mask1,接收屏蔽1
详细描述见 接收过滤器,正常模式只读,复位模式时R/W

11.4.5.32. 0x058 CAN_RXMASK2

默认值:0x00000000

CAN接收屏蔽2寄存器(CAN_RXMASK2)

位域

类型

默认值

描述

31:8

-

-

-

7:0

R/W

0x0

RXMASK2:Acceptance Mask2,接收屏蔽2
详细描述见 接收过滤器,正常模式只读,复位模式时R/W

11.4.5.33. 0x05C CAN_RXMASK3

默认值:0x00000000

CAN接收屏蔽3寄存器(CAN_RXMASK3)

位域

类型

默认值

描述

31:8

-

-

-

7:0

R/W

0x0

RXMASK3:Acceptance Mask3,接收屏蔽3
详细描述见 接收过滤器,正常模式只读,复位模式时R/W

11.4.5.34. 0x074 CAN_RXC

默认值:0x00000000

CAN接收数据计数寄存器(CAN_RXC)

位域

类型

默认值

描述

31:8

-

-

-

7:0

RO

0x0

RXC:Receive Message Counter,
接收数据计数,存储接收缓冲中数据包个数

11.4.5.35. 0x078 CAN_RSADDR

默认值:0x00000000

CAN接收缓冲起始地址寄存器(CAN_RSADDR)

位域

类型

默认值

描述

31:6

-

-

-

5:0

R/W

0x0

RSADDR:Receive Buffer Start Address,
接收缓冲器起始地址,正常模式只读,复位模式时R/W

11.4.5.36. 0x080 CAN_RXFIFO

默认值:0x00000000

CAN接收FIFO寄存器(RX FIFO)

位域

类型

默认值

描述

31:8

-

-

-

7:0

RO

0x0

RXFIFO:Receive FIFO,0x80~17C共 64bytes
正常模式只读,复位模式时R/W

11.4.5.37. 0x180 CAN_TXB_RO

默认值:0x00000000

CAN发送缓冲只读寄存器(TX Buffer Read Only)

位域

类型

默认值

描述

31:8

-

-

-

7:0

RO

0x0

TXB_RO:Transmit Buffer Read Only
每个寄存器只有低8位可有效访问,其余高位被读时返回0

11.4.5.38. 0xFFC CAN_VERSION

默认值:0x00000100

CAN版本寄存器(VERSION)

位域

类型

默认值

描述

31:0

RO

0x00000100

Version (版本号),采用BCD码显示,V1.00