没有合适的资源?快使用搜索试试~ 我知道了~
首页Freescale CAN模块用户手册
Freescale CAN模块用户手册
3星 · 超过75%的资源 需积分: 46 55 下载量 187 浏览量
更新于2023-03-16
评论 2
收藏 1.07MB DOC 举报
飞思卡尔MPC处理器CAN手册中文版。 FlexCAN (FC)模块实现控制器局域网络协议(CAN)通信。CAN是一种用于汽车和工业控制系统异步通讯协议,是高速(1Mbit/sec)、短时间间隔、基于优先级的协议,能够使用多种通讯媒介(例如:光缆,非屏蔽线对等)。FlexCAN 模块同时支持CAN协议规范2.0版、B部分所规定的标准帧和扩展帧。 CAN协议主要——但不是仅仅地用于车辆串行总线,面对这样的特殊要求现场:实时处理、车辆电磁干扰环境的可靠操作、成本效率和需要的带宽等。本文档理论上采用CAN协议2.0版的一般应用知识。
资源详情
资源评论
资源推荐
CAN 模块用户手册
1. 引言
FlexCAN (FC)模块实现控制器局域网络协议(CAN)通信。CAN 是一种用于汽车和工
业控制系统异步通讯协议,是高速(1Mbit/sec)、短时间间隔、基于优先级的协议,能够
使用多种通讯媒介(例如:光缆,非屏蔽线对等)。FlexCAN 模块同时支持 CAN 协议规范
2.0 版、B 部分所规定的标准帧和扩展帧。
CAN 协议主要——但不是仅仅地用于车辆串行总线,面对这样的特殊要求现场:实时
处理、车辆电磁干扰环境的可靠操作、成本效率和需要的带宽等。本文档理论上采用 CAN
协议 2.0 版的一般应用知识。更详细的参见 CAN 协议规范 2.0 版。
2. 功能说明
• 基于并包含所有现有的 TouCAN 模块功能。
• IP 接口结构。
• 完全实现 CAN 协议规范 2.0
— 标准数据和远程帧 (直到 109 位长度)
— 扩展数据和远程帧 (直到 127 位长度)
— 0—8 字节数据长度。
— 可编程位速率直到 1Mbit/sec。
• 多达 16 个 0—8 字节长度的弹性信息缓存器,各自可以配置为接收或传输,所有的都
支持标准帧和扩展帧。
• 允许单侦听模式。
• 内容相关的寻址。
• 无读/写信号。
• 三个可编程过滤寄存器:
— 全局过滤 (用于 MBs 0-13)
— MB14 专用
— MB15 专用
• 独立于传输介质(假设使用外部收发器)。
• 开放的网络架构。
• 多主总线。
• 高度抗电磁干扰。
• 高优先级信息短延迟时间。
• 低功耗睡眠模式,可编程
总线活动唤醒。
3. 结构图
图 1:
4. 典型的 CAN 系统图
图 2
每个 CAN 站点物理上通过一个收发器连接到 CAN 总线,收发器提供 CAN 总线上通
讯所需的传输驱动、波形,以及接受/比较等功能,还提供保护以预防不良的总线或站点对
FlexCAN 模块造成损坏。
5. 信息缓存
5.1 信息缓存器结构。
图 3 说明扩展(29-bit) ID 信息缓存器结构;图 4 说明标准(11-bit) ID 信息缓存器
结构。
图 3
图 4
5.2 扩展和标准格式帧的公共字段。如表 1:
表 1:公共字段
字段 描述
TIME
STAMP
时间戳。装载 CAN 总线上本帧 ID 开始时捕捉的自由运行定时器的高字节
值的拷贝。
CODE
参见表 2 和表 3
LENGTH
(接收时)
存储在缓存器地址偏移量$3 到$6 中的接收到的数据长度。该字段由
FlexCAN 模块填写,拷贝自接收数据的 DLC 字段。万一接收到的 DLC 字
段的值超过 8,则只有前 8 个接收到的数据字节被保存。
LENGTH
(发送时)
位于缓存器地址偏移量$3 到$6 中的待发送数据长度。该字段由器件填
写,用于作为 DLC 字段的值。如果远程传送请求(RTR)=1,本帧作为远
程帧,DATA 字段不被传输,从而忽略 LENGTH 的值。
DATA
数据。本字段存储帧数据直到 8 字节。对于接收帧,这些数据作为从总线
上收到的数据存储;对于发送帧,器件提供所需要发送的帧内数据。
Reserved
保留字。该字的整个字段(16Bit)器件不能访问。改字用于内部测试,不
允许以任何方式访问。
表 2:接收缓存器编码
接收新
帧前
描述
新帧收
到后
注释
0000
NOT ACTIVE:信息缓存未激活
—— ——
0100
EMPTY:信息缓存有效且是空的
0010
——
0010
FULL:信息缓存满
0110
如果器件读取发生在新
帧到来之前,新接收码
是: 0010
0110
OVERRUN:在器件读取第一个信息之
前,第二个信息写入填满的缓存。
0101*
BUSY:信息缓冲正在被新接收的帧填
写。这种情形将在 20 周期内清除。
0010
填写了空缓存
0011* 0110
填写了满缓存
0111* 0110
填写了已经溢出的缓存
* 对于发送信息缓存,读的时候应忽略 BUSY 位。
表 3:发送缓存器编码
RTR
初始值 描述
发送
之后
X 1000
信息缓存器没有准备好发送
——
0 1100
数据帧无条件传送一次。
1000
1 1100
远程帧传送一次,并且信息缓冲器转换成数据帧的接收信息
缓存。
0100
0 1010*
数据帧仅作为远程帧的响应传送。
1010
0 1110
数据帧无条件传送一次,然后仅作为远程帧的响应。
1010
* 当检测到匹配的远程请求帧,这样的信息缓冲编码变为 1110。
5.3 仅用于扩展模式帧的字段。
表 4:扩展帧
字段 描述
ID[28:18]/
[17:15]
包含 14 个扩展标识的最高位,位于信息缓冲区的 ID HIGH 字。
置换远程请求
(SRR)
包含一个确定的隐性位,仅用于扩展模式,对于发送缓冲,需将此
位置 1,对于接收帧将按在总线上收到的来保存,该位位于信息缓
冲区(MB)的 ID HIGH 字。如果 FlexCAN 模块发送了一个值,并收
到了匹配的响应,预示着一个成功的 位传送。无论如何,如果
FlexCAN 模块以“1”来传送此位,但却收到它为“0”,预示着失去了
仲裁;并且,如果 FlexCAN 模块以“0”来传送此位,但却收到它为
“1”,意味着发生了 1 个位错误。
ID 扩展
(IDE)
如果使用扩展帧,该字段必须设置为“1”,如为“0”,将使用标准
帧。该位位于信息缓冲区(MB)的 ID HIGH 字。
ID[14:0]
扩展标识符 ID 的位[14:0],位于信息缓冲区(MB)的 ID LOW 字。
远程发送请求
(RTR)
该位是信息缓冲区(MB)的 ID LOW 字的最低位(LSB):
0:数据帧;
1:远程帧。
5.4 仅用于标准模式帧的字段。
表 5:标准帧
字段 描述
ID[28:18]
包含位[28:18],位于信息缓冲区(MB)的 ID HIGH 字。该寄存器的
四个最低位(LSBs)(对应于扩展帧的 IDE 位和 ID[17:15]),必须全
部写为逻辑 0,以确保 FlexCAN 模块的正确操作,图示于第 4 节。
远程发送请求
(RTR)
该位是信息缓冲区(MB)的 ID LOW 字的最低位:
0:数据帧;
1:远程帧。
如果 FlexCAN 模块发送了一个值,并收到了匹配的响应,预示着一
个成功的位传送。无论如何,如果 FlexCAN 模块以“1”来传送此
位,但却收到它为“0”,预示着失去了仲裁;并且,如果 FlexCAN
模块以“0”来传送此位,但却收到它为“1”,意味着发生了 1 个位错
误。
16-Bit Time
Stamp
16 位时间戳,位于信息缓冲(MB)的 ID LOW 字, 标准帧是不需要
的。在标准信息缓存中,它用于保存自由运行定时器的 16 位值,该
定时器值是 ID 字段开始在 CAN 总线上传输时捕捉的。
6. 功能概述
FlexCAN 模块是弹性的,允许它的 16 个信息缓存(MBs)中的各个分配为传输缓冲或
接收缓冲,各 MB 也可以分配中断标志位,指示传输或接收成功完成。
注:对于所有的过程,准备 MB 的第一个动作应当是通过将它的 CODE 字段设为适当的值
将其变成非活动状态。这个要求是强制性的,以确保正确的操作。
6.1 发送过程
器件通过执行以下的步骤准备或转换为发送 MB:
• 写 控 制 / 状 态 字 (Control/Status word) 保 持 发 送 MB 处 于 非 活 动 状 态 (CODE =
1000);
• 写入 ID_HIGH 和 ID_LOW 字;
• 写入数据字节;
• 写控制/状态字(Control/Status word) (激活码 CODE, LENGTH)
注:第一和最后一步是强制性的。
从最后一步开始,该 MB 将参加内部仲裁过程,该过程发生在每次接收,或帧间时隙,
检测到 CAN 总线空闲以及至少一个 MB 准备发送。内部仲裁旨在选择下一个发送的 MB。
当该过程结束传输仲裁胜出的 MB 帧将传送至串行信息缓存(SMB, 参见 6.3.1 节)以发
送(传出)。
发送过程中,FlexCAN 模块传输多达 8 字节的 DATA 字段,即使 LENGTH 字段得值
更大。(当 LENGTH > 8,传输的帧中 DLC = 8)
在成功传输结束后:
• 自 由 运 行 定 时 器 的 值 (ID 字 段 开 始 在 CAN 总 线 上 传 输 时 捕 捉 的 ) 写 入 MB 的
TIME_STAMP 字段。
• MB 控制/状态字(Control/Status word)中的 CODE 字段更新。
• 中断标志寄存器的某状态标志置位(FCIFLAG1,8.12 节)。
6.1.1 传输中断。
如果对应的 FCIMASK1 位置位,每个 MB 都可以成为中断源。对于特定的 MB,接收
和发送中断并没有区别。更多关于 FCIMASK1 和中断的信息参见第 8.11、8.12 和第 9 节。
6.1.2 传输轮询。
如果使用软件轮询来发送,必须读 FCIFLAG1 寄存器来确定发送状态。
警告:不要通过读 MB 的控制状态字来确定发送状态,因为这个程序将导致此 MB 锁
定。更多信息参见 8.12 节 FCIFLAG1 寄存器。
6.2 接收过程。
器件通过执行以下的步骤准备或转换为接收 MB:
• 写 MB 的控制/状态字(Control/Status word)保持接收寄存器为非活动状态(CODE =
0000);
• 写入 ID_HIGH 和 ID_LOW 字;
• 写控制/状态字(Control/Status word)指明该 MB 为活动的和空的(CODE = 0100)。
注:第一步和最后一步是强制性的。
从最后一步开始,该 MB 是一个活动的接收缓冲器,并参加内部的匹配过程,发生在
每次收到无误的帧。在此过程中,所有的活动的接收寄存器将自己的 ID 与更新的接收的
ID 相比较,如果发生了匹配事件,该帧将传送(移进)至第一个(最低入口)匹配的 MB。自
由运行定时器的值(捕捉于 IDENTIFIER 字段开始在 CAN 总线上传输时的时刻),写入 MB
的 TIME_STAMP 字段。ID 字段、DATA 字段(最多 8 字节)、以及 LENGTH 接着被存入,
CODE 字段被更新,以及,中断标志寄存器(FCIFLAG1)中的一个 BUFnnI 标志置位。
器件应当按照以下的方法从 MB 中读取接收的帧:
• 控制/状态字(Control/Status word) (必须的,激活本缓存的内部锁定);
• ID(可选——仅当使用屏蔽时才是必要地);
• DATA 字段的字;
• 自由运行定时器(释放内部锁定——可选)。
对于自由运行定时器的读取不是必须的,如果没有执行,该 MB 将保持锁定,除非器
件开始了读取另一个 MB 的过程。
注:在任何时刻仅有单个 MB 是锁定的。
唯一必须的器件操作是读控制/状态字(Control/Status word),以确保数据的一致性。
如果 BUSY 位置位,器件需要推迟操作直到此位清零。
剩余24页未读,继续阅读
thymes
- 粉丝: 0
- 资源: 1
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- c++校园超市商品信息管理系统课程设计说明书(含源代码) (2).pdf
- 建筑供配电系统相关课件.pptx
- 企业管理规章制度及管理模式.doc
- vb打开摄像头.doc
- 云计算-可信计算中认证协议改进方案.pdf
- [详细完整版]单片机编程4.ppt
- c语言常用算法.pdf
- c++经典程序代码大全.pdf
- 单片机数字时钟资料.doc
- 11项目管理前沿1.0.pptx
- 基于ssm的“魅力”繁峙宣传网站的设计与实现论文.doc
- 智慧交通综合解决方案.pptx
- 建筑防潮设计-PowerPointPresentati.pptx
- SPC统计过程控制程序.pptx
- SPC统计方法基础知识.pptx
- MW全能培训汽轮机调节保安系统PPT教学课件.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论2