IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> CAN总线 -> 正文阅读

[嵌入式]CAN总线

目录

CAN的特点:

CAN协议

数据帧

遥控帧

错误帧

过载帧

帧间隔


CAN 控制器根据两根线上的电位差来判断总线电平。总线电平分为显性电平隐性电平,二者必居其一。发送方通过使总线电平发生变化,将消息发送给接收方。“汽车上CAN总线隐性状态CAN-H和CAN-l都是2.5V,显性时CAN-H为2.5~3.5V,CAN-l为1.5~2.5V

CAN的特点:

(1) 多主控制:多主控制在总线空闲时,所有的单元都可开始发送消息(多主控制)。最先访问总线的单元可获得发送权(CSMA/CA 方式*1)。多个单元同时开始发送时,发送高优先级 ID 消息的单元可获得发送权
(2) 消息的发送:在 CAN 协议中,所有的消息都以固定的格式发送。总线空闲时,所有与总线相连的单元都可以开始发送新消息。两个以上的单元同时开始发送消息时,根据标识符(Identifier 以下称为 ID)决定优先级。 ID 并不是表示发送的目的地址,而是表示访问总线的消息的优先级。两个以上的单元同时开始发送消息时,对各消息 ID 的每个位进行逐个仲裁比较。仲裁获胜(被判定为优先级最高)的单元可继续发送消息,仲裁失利的单元则立刻停止发送而进行接收工作。
(3) 系统的柔软性:与总线相连的单元没有类似于“地址”的信息。因此在总线上增加单元时,连接在总线上的其它单元的软硬件及应用层都不需要改变。
(4) 通信速度:根据整个网络的规模,可设定适合的通信速度。在同一网络中,所有单元必须设定成统一的通信速度。即使有一个单元的通信速度与其它的不一样,此单元也会输出错误信号,妨碍整个网络的通信。不同网络间则可以有不同的通信速度。
(5) 远程数据请求:可通过发送“遥控帧” 请求其他单元发送数据。
(6) 错误检测功能:错误通知功能·错误恢复功能,所有的单元都可以检测错误(错误检测功能)。检测出错误的单元会立即同时通知其他所有单元(错误通知功能)。正在发送消息的单元一旦检测出错误,会强制结束当前的发送。强制结束发送的单元会不断反复地重新发送
此消息直到成功发送为止(错误恢复功能)。
(7) 故障封闭:CAN 可以判断出错误的类型是总线上暂时的数据错误(如外部噪声等)还是持续的数据错误(如单元内部故障、驱动器故障、断线等)。由此功能,当总线上发生持续数据错误时,可将引起此故障的单元从总线上隔离出去。
(8) 连接:CAN 总线是可同时连接多个单元的总线。可连接的单元总数理论上是没有限制的。但实际上可连接的单元数受总线上的时间延迟及电气负载的限制。降低通信速度,可连接的单元数增加;提高通信速度,则可连接的单元数减少。

CAN协议

????????通信是通过5 种类型的帧进行的:数据帧、遥控帧、错误帧、过载帧、帧间隔。另外, 数据帧和遥控帧有标准格式扩展格式两种格式。标准格式有 11 个位的标识符(Identifier: 以下称 ID),扩展格式有 29 个位的 ID。

数据帧用于发送单元向接收单元传送数据的帧。
遥控帧用于接收单元向具有相同 ID 的发送单元请求数据的帧。
错误帧用于当检测出错误时向其它单元通知错误的帧。
过载帧用于接收单元通知其尚未做好接收准备的帧
帧间隔用于将数据帧及遥控帧与前面的帧分离开来的帧。

数据帧

????????数据帧由 7 个段(帧起始、冲裁段、控制段、数据段、CRC段、ACK段、帧结束)构成,如下图

1 帧起始:表示帧开始的段,1个位的显性位。注:总线上的电平有显性电平和隐性电平两种。总线上执行逻辑上的线“与”时,显性电平的逻辑值为“0”,隐性电平为“1”。“显性”具有“优先”的意味,只要有一个单元输出显性电平,总线上即为显性电平。并且,“隐性”具有“包容”的意味,只有所有的单元都输出隐性电平,总线上才为隐性电平。(显性电平比隐性电平更强。)

2 冲裁段:表示数据优先级的段。ID标准格式的 ID 有 11 个位。从 ID28 到 ID18 被依次发送。禁止高 7 位都为隐性。(禁止设定: ID=1111111XXXX)扩展格式的 ID 有 29 个位。基本 ID 从 ID28 到 ID18,扩展 ID 由 ID17 到 ID0 表示。基本 ID 和标准格式的 ID 相同。禁止高 7 位都为隐性。(禁止设定:基本 ID=1111111XXXX)

3 控制段:控制段由 6 个位构成,表示数据段的字节数。

*1 保留位(r0、 r1)保留位必须全部以显性电平发送。但接收方可以接收显性、隐性及其任意组合的电平*2 数据长度码(DLC)数据长度码与数据的字节数的对应关系如下表所示。数据的字节数必须为 0~8 字节。但接收方对 DLC = 9~15 的情况并不视为错误

4 数据段:数据段可包含 0~8 个字节的数据。从 MSB(最高位)开始输出。
5 CRC段 :CRC 段是检查帧传输错误的帧。由 15 个位的 CRC 顺序*1 和 1 个位的 CRC 界定符(用于分隔的位)构成。CRC 顺序
CRC 顺序是根据多项式生成的 CRC 值, CRC 的计算范围包括帧起始、仲裁段、控制段、数据段。接收方以同样的算法计算 CRC 值并进行比较,不一致时会通报错误。
?

6 ACK段:ACK 段用来确认是否正常接收。由 ACK 槽(ACK Slot)和 ACK 界定符 2 个位构成。

????????*1 发送单元的 ACK 段发送单元在 ACK 段发送 2 个位的隐性位。*2 接收单元的 ACK 段接收到正确消息的单元在 ACK 槽(ACK Slot)发送显性位, 通知发送单元正常接收结束。这称作“发送 ACK”或者“返回 ACK”。
?????????发送 ACK 的是在既不处于总线关闭态也不处于休眠态的所有接收单元中,接收到正常消息的单元(发送单元不发送 ACK)。所谓正常消息是指不含填充错误、格式错误、 CRC 错误的消息。

7 帧结束:帧结束是表示该该帧的结束的段。由 7 个位的隐性位构成。

遥控帧

????????接收单元向发送单元请求发送数据所用的帧。遥控帧由 6 个段(?帧起始:表示帧开始、仲裁段:表示帧的优先级的段,可请求具有相同ID的数据帧、控制段:表示数据的字节数及保留位的段、CRC段:检查帧的传输错误的段、ACK段:表示确认正常接收的段、帧结束:表示遥控帧结束的段。)组成。遥控帧没有数据帧的数据段。

?1 数据帧和遥控帧的不同
????????遥控帧的 RTR 位为隐性位,没有数据段。没有数据段的数据帧和遥控帧可通过 RTR 位区别开来。
2 遥控帧没有数据段,数据长度码该如何表示?
????????遥控帧的数据长度码以所请求数据帧的数据长度码表示。
3 没有数据段的数据帧有何用途?
????????例如,可用于各单元的定期连接确认/应答、或仲裁段本身带有实质性信息的情况下。

错误帧

????????用于在接收和发送消息时检测出错误通知错误的帧。错误帧由错误标志和错误界定符构成。

(1) 错误标志:错误标志包括主动错误标志和被动错误标志两种。主动错误标志: 6 个位的显性位。被动错误标志: 6 个位的隐性位。
(2) 错误界定符:错误界定符由 8 个位的隐性位构成。

:主动错误标志:处于主动错误状态的单元检测出错误时输出的错误标志。?被动错误标志:处于被动错误状态的单元检测出错误时输出的错误标志。


过载帧

????????过载帧是用于接收单元通知其尚未完成接收准备的帧。过载帧由过载标志和过载界定符构成。(1) 过载标志:6 个位的显性位。过载标志的构成与主动错误标志的构成相同。(2) 过载界定符:8 个位的隐性位。过载界定符的构成与错误界定符的构成相同。

帧间隔

????????帧间隔是用于分隔数据帧和遥控帧的帧。数据帧和遥控帧可通过插入帧间隔将本帧与前面的任何帧(数据帧、遥控帧、错误帧、过载帧)分开。过载帧和错误帧前不能插入帧间隔。

?(1) 间隔:3 个位的隐性位。(2) 总线空闲:隐性电平,无长度限制(0 亦可)。本状态下,可视为总线空闲,要发送的单元可开始访问总线。(3) 延迟传送(发送暂时停止):8 个位的隐性位。只在处于被动错误状态的单元刚发送一个消息后的帧间隔中包含的段。

  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2022-01-28 12:04:46  更:2022-01-28 12:04:58 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 10:33:43-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码