CAN
来源:互联网 发布:价格表设计软件 编辑:程序博客网 时间:2024/06/04 18:58
寄存器
主要寄存器
控制寄存器0
CANCTL0
控制寄存器1
CANCTL1
总线计时寄存器0
CANBTR0
6-7同步跳转宽度 0-5分频器系数
总线计时寄存器1
CANBTR1
7采样数 4-6Seg2 0-3Seg1
发送器标志寄存器
CANTFLG
其中012位分别表示三个发送缓冲器的状态
发送缓冲器选择寄存器
CANTBSEL
读取此寄存器时有逻辑规律
接收器标志寄存器
CANRFLG
其中0位上0表示RxFG中无报文1表示RxFG有报文
标识符验收控制寄存器
CANIDAC
设置标识符的接收模式和标识符接收有效标志
标识符接收寄存器0-3
CANIDAR0-3
接收的报文写入后台接收缓冲器。只有当报文通过了标识符接收寄存器和标识符掩码寄存器中的滤波,CPU读取报文,否则报文会被下一报文覆盖。
标识符掩码寄存器0-3
CANIDMR0-3
0 匹配标识符接受寄存器和报文标识寄存器中的相应位相同,只有所有为0的位都相同时,报文被接受。
1 标识符接受寄存器中对应位的状态对接受无影响
标识符接受寄存器4-7
CANIDAR4-7
标识符掩码寄存器4-7
CANIDMR4-7
标识符寄存器0
CANRIDR0
标识符寄存器1
CANRIDR1
标识符寄存器2
CANRIDR2
标识符寄存器3
CANRIDR3
CANRDSR0-7
CANDLR
只有0-3位有效,数据帧的字节长度为0-8的范围
发送缓冲器优先寄存器
CANTBPR
时间标签寄存器
CANRTSRH
时间标签寄存器
CANRTSRL
标准标识符映射
IDR0
ID10
ID9
ID8
ID7
ID6
ID5
ID4
ID3
IDR1
ID2
ID1
ID0
RTR
IDE
x
x
x
IDR2
x
x
x
x
x
x
x
x
IDR3
x
x
x
x
x
x
x
x
(IDE为0,IDE的0为标准格式1为扩展格式,RTR的0为数据帧1为远程帧)
扩展标识符映射
IDR0
ID28
ID20
ID26
ID25
ID24
ID23
ID22
ID21
IDR1
ID20
ID14
ID18
SRR
IDE
ID17
ID16
ID15
IDR2
ID14
ID6
ID12
ID11
ID10
ID9
ID8
ID7
IDR3
ID6
ID5
ID4
ID3
ID2
ID1
ID0
RTR
(SRR和IDE都为1,IDE的0为标准格式1为扩展格式,RTR的0为数据帧1为远程帧)
SRR不论写入什么,在计算ID时都会被视为1,RTR不论写入什么,在计算ID时都会被视为0。
报文缓冲器结构
报文缓冲器结构
寄
存
器
I
D
R
0
I
D
R
1
I
D
R
2
I
D
R
3
D
S
R
0
D
S
R
1
D
S
R
2
D
S
R
3
D
S
R
4
D
S
R
5
D
S
R
6
D
S
R
7
D
L
R
T
B
P
R
T
S
R
H
T
S
R
L
标识符寄存器滤波过程:
首先设置相关的寄存器:CANIDAC CANIDARx CANIDMRx
滤波器是CANIDARx和CANIDMRx的组合意义(因为CANIDMR的某一位设置了,那么CANIDAR的对应为就毫无意义了):例如
滤波器的值为0001x1001x0
那么CANIDMR0/1/2/3的设置是00001000010
CANIDAR0/1/2/3的设置是00010100100
对于报文1:00011100110和报文2:00110100110
此滤波器接收报文1而不接收报文2.
关于滤波器:CANIDMR0/1/2/3和CANIDAR0/1/2/3组成一个滤波页,CANIDMR4/5/6/7和CANIDAR4/5/6/7组成一个滤波页面,每个滤波页面可建立一个(32位)两个(16位)四个(8位)滤波器。
发送报文
CPU首先确定可用的发送缓冲器(CANTFLG的TXEx标示来确定),然后把CANTFLG读入CANTBSEL,读取CANTBSEL时会自动从地位读出一个可用的发送缓冲器,
当设置了TXEx时会触发发送成功的中断,以使得应用软件重新安排缓冲器进行发送任务。
滤波器关闭时不接收任何报文。
msg_send.id = ID_TX;
msg_send.data[0] = potentiometer_value;
msg_send.len = 1;
msg_send.prty = 0;
unsigned char n_tx_buf, i;
{
}
{
}
- Can
- CAN
- CAN
- CAN
- CAN
- 高速CAN、低速CAN、单线CAN 基础知识
- CAN简述
- CAN总线技术
- I can
- CAN总线
- CAN协议
- CAN-BUS
- can总线
- CAN通讯
- STM32 CAN
- CAN数据格式
- CAN 基础知识
- CAN总线
- eclipse juno maven插件安装不成功
- 该存多少
- Linux 简介
- 一个web应用的诞生(7)--结构调整
- Unity3D之Mecanim动画系统学习笔记(十):Mecanim动画的资源加载相关
- CAN
- java 调用存储过程案列分析
- opencv findContours家族全集
- 堆和栈的区别(转过无数次的文章)
- bzoj 2707: [SDOI2012]走迷宫 (高斯消元+概率期望+tarjan缩点+拓扑序)
- 如何判断直线之间和直线与平面之间的关系
- java -- 集合
- xcode编译报错duplicate symbols for architecture arm64
- C++三大特性----"多态"