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 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> CubeMx笔记 --CAN通讯 -> 正文阅读

[嵌入式]CubeMx笔记 --CAN通讯

1、can简介

1.1、显性电平和隐性电平

  • 概念图(低速)
    在这里插入图片描述
  • 显性电平:逻辑0 CAN_H和CAN_L电压差大
  • 隐性电平:逻辑1 CAN_H和CAN_L电压差小
  • 在总线上显性电平具有优先权,只要有一个单元输出显性电平,总线上即为显性电平
  • 出现连续的11位隐性电平,那么总线就处于空闲状态
    在这里插入图片描述

1.2、报文(帧)的类型

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

1.3、数据帧

在这里插入图片描述

0:显性 — 1:隐性
MSB:最高位 — LSB:最低位

  • 帧起始
    SOF(1位0 )
  • 仲裁段
    ID:数据的id ,决定优先级 禁止高 7 位都为1(禁止设定: ID=1111111XXXX)
    RTR:是否是远程帧(0:数据帧;1:远程帧)
    SRR:代替远程请求位,为1,它代替了标准帧中的 RTR 位
  • 控制段
    IDE:标识符选择位( 0:标准标识符; 1:扩展标识符)
    r0/r1:保留位,发送必须是0,接收可以是0或1
    DLC:长度表示段,MSB在前,有效值为 0~8,但是接收方接收到 9~15 的时候并不认为是错误。
  • 数据段
    该段可包含 0~8 个字节的数据。从MSB开始输出,标准帧和扩展帧在这个段的定义都是一样的
  • CRC段
    计算范围: 帧起始、仲裁段、控制段、数据段。
    接收方以同样的算法计算 CRC 值并比较,不一致时会报错
  • ACK段
    发送方的 ACK,发送 2 个位的1
    接收方确认后发送 1位的0

1.4、位时序

由发送单元在非同步的情况下发送的每秒钟的位数称为位速率,一个位可分为 4 段
每个段又由若干个 Time Quantum(以下称为 Tq) 构成,这称为位时序

  • 同步段( SS)
  • 传播时间段( PTS)
  • 相位缓冲段 1( PBS1)
  • 相位缓冲段 2( PBS2)

在这里插入图片描述

  • 对应cubemx
    1tq = (16/45M) * (10^9) ns
    波特率:45/(1+2+1)/16
    时钟/(bs1+bs2+sjw)/分频

在这里插入图片描述
在这里插入图片描述

  • 采样点
    在这里插入图片描述

1.5、工作模式

  • 静默模式
    在这里插入图片描述
    节点的输出端的逻辑0数据会直接传输到自己的输入端
    逻辑1可以被发送到总线
    所以它不能向总线发送显性位(0), 只能发送隐性位(1)。
    输入端可以从总线接收内容。

  • 环回模式
    在这里插入图片描述
    节点输出端的所有内容都直接传输到自己的输入端
    输出端的内容同时也会被传输到总线上
    输入端只接收自己发送端的内容,不接收来自总线上的内容。
    使用回环模式可以进行自检。

  • 环回与静默组合模式
    在这里插入图片描述
    节点的输出端的所有内容都直接传输到自己的输入端
    输入端不接收来自总线上的内容
    不会向总线发送显性位影响总线

对应cubemx
在这里插入图片描述

2、can寄存器

2.1、主控制寄存器

主控制寄存器 (CAN_MCR)
CAN master control register
在这里插入图片描述

  • 位 7 TTCM:时间触发通信模式
    (Time triggered communication mode)
    0:禁止时间触发通信模式。
    1:使能时间触发通信模式。
  • 位 6 ABOM: 自动的总线关闭管理
    (Automatic bus-off management)
    此位控制 CAN 硬件在退出总线关闭状态时的行为。
    0:在软件发出请求后,一旦监测到 128 次连续 11 个隐性位
    软件将 CAN_MCR 寄存器的 INRQ 位先置 1 再清零,即退出总线关闭状态。
    1:一旦监测到 128 次连续 11 个隐性位,即通过硬件自动退出总线关闭状态。
  • 位 5 AWUM: 自动唤醒模式
    (Automatic wakeup mode)
    此位控制 CAN 硬件在睡眠模式下接收到消息时的行为。
    0:在软件通过将 CAN_MCR 寄存器的 SLEEP 位清零发出请求后,退出睡眠模式。
    1:一旦监测到 CAN 消息,即通过硬件自动退出睡眠模式。
    CAN_MCR 寄存器的 SLEEP 位和 CAN_MCR 寄存器的 SLAK 位由硬件清零。
  • 位 4 NART: 禁止自动重发送
    (No automatic retransmission)
    0: CAN 硬件将自动重发送消息,直到根据 CAN 标准消息发送成功。
    1:无论发送结果如何(成功、错误或仲裁丢失),消息均只发送一次。
  • 位 3 RFLM: 接收 FIFO 锁定模式
    (Receive FIFO locked mode)
    0:接收 FIFO 上溢后不锁定。接收 FIFO 装满后,下一条传入消息将覆盖前一条消息。
    1:接收 FIFO 上溢后锁定。接收 FIFO 装满后,下一条传入消息将被丢弃。
  • 位 2 TXFP: 发送 FIFO 优先级
    (Transmit FIFO priority)
    此位用于控制在几个邮箱同时挂起时的发送顺序。
    0:优先级由消息标识符确定
    1:优先级由请求顺序(时间顺序)确定

对应cubemx
在这里插入图片描述

2.2、位时序寄存器

位时序寄存器 (CAN_BTR)
CAN bit timing register
在这里插入图片描述

  • 位 31 SILM: 静默模式(调试)
    (Silent mode (debug))
    0:正常工作
    1:静默模式
  • 位 30 LBKM: 环回模式(调试)
    (Loop back mode (debug))
    0:禁止环回模式
    1:使能环回模式
  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2022-09-24 21:12:15  更:2022-09-24 21:14:59 
 
开发: 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年12日历 -2024/12/28 1:26:29-

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