当前位置: 首页 > news >正文

rt-thread下CAN通信

文章目录

  • CAN 学习笔记
    • 一. 例子说明
    • 二. 实物连接
    • 三. 实验现象
    • 四. can 报文一些关键位
    • 五. can 波特率
    • 六. can 通信流程
      • 6.1 can 发送数据----底层原理
      • 6.2 can 发送数据----rt-thread中发送流程
      • 6.3 can 接收数据----底层原理
      • 6.4 can接收数据----rt-thread中接收流程

CAN 学习笔记

一. 例子说明

使用的是 spark-1\sdk-bsp-stm32f407-spark\projects\03_driver_can下的工程

二. 实物连接

二块星火一号开发板的CAN_L与CAN_L相连,CAN_H与CAN_H相连,如下图所示:

在这里插入图片描述

三. 实验现象

一个开发板在shell中调输入 can_sample_send 开启发送线程

can_sample_send

一个开发板在shell中输入 can_sample_receive 开启接收线程

can_sample_receive 

可以看到开启接收线程那块开发板的串口一直打印接收到的数据,如下图,符合预期。

在这里插入图片描述

四. can 报文一些关键位

标识说明
ID:标准ID :11位,扩展ID : 28 位
RTR:0 : 数据帧,1:遥控帧
IDE :0: 标准帧,1:扩展帧
DLC:表示数据长度 (0~8字节)

五. can 波特率

位时序:

在这里插入图片描述

波特率 = APB1时钟频率 / 分频系数 / (1*tq + tbs1 + tbs2)

六. can 通信流程

6.1 can 发送数据----底层原理

  1. 配置主控制寄存器(CAN_MCR):can 工作模式 和 位时序寄存器(CAN_BTR) : 位时序及波特率

  2. 配置发送邮箱:

    寄存器内容
    标识符寄存器(CAN_TIxR)存储发送的报文ID、拓展ID、IDE位、RTR位
    数据长度控制寄存器(CAN_TDTxR)DLC段
    低位数据寄存器(CAN_TDLxR)存储发送的报文数据段的Data0-Data3 四字节内容
    高位数据寄存器 (CAN_TDHxR)存储发送的Data4-Data7 四字节内容
  3. can控制器将数据传入can收发器→数字信号转为为物理信号→发送

6.2 can 发送数据----rt-thread中发送流程

在这里插入图片描述

6.3 can 接收数据----底层原理

  1. can收发器将收到物理信号转为数字信号→can控制器

  2. 筛选器进行过滤 → FIFO邮箱

    FIFO邮箱:

    寄存器内容
    标识符寄存器(CAN_RIxR)存储收到的报文ID、拓展ID、IDE位、RTR位
    数据长度控制寄存器(CAN_RDTxR)DLC段
    低位数据寄存器(CAN_RDLxR)存储收到的的报文数据段的Data0-Data3 四字节内容
    高位数据寄存器 (CAN_RDHxR)存储收到的的Data4-Data7 四字节内容
  3. 筛选器:
    在这里插入图片描述

    模式说明
    32位掩码模式CAN_FxR1存储ID,CAN_FxR2存储哪个位必须与CAN_FxR1中ID一致,2个寄存器表示一组掩码
    32位标识符模式CAN_FxR1和CAN_FxR2各存储一个ID,2个寄存器表示2个筛选的ID
    16位掩码模式CAN_FxR1高16位存储ID,低16位存储的哪个位必须要与高16位的ID一致;CAN_FxR2高16位存储ID,低16位存储哪个位必须要与高16位ID一致;2个寄存器表示2组掩码
    16位标识符模式CAN_FxR1和CAN_FxR2各存储2个ID,2个寄存器表示4个筛选的ID
  4. 读取数据:app读取FIFO邮箱对应寄存器,获取数据

6.4 can接收数据----rt-thread中接收流程

在这里插入图片描述


http://www.mrgr.cn/news/20346.html

相关文章:

  • 千云物流 -低代码平台MySQL备份数据
  • 上门家政系统小程序开发产品类目分析
  • 嵌入式软件--代码复习
  • python读取excel数据
  • Linux操作系统下的一些常用命令分享(ubuntu16.04)
  • 来聊聊C++中的vector
  • 【Pandas】数据分析预备
  • 怎么将webp格式转换成jpg?这几种图片转换方法超级好用!
  • 华为OD机试真题-导师请吃火锅-2024年OD统一考试(E卷)
  • 如何在算家云搭建ChatGLM3(智能对话)
  • 若依库存管理 ruoyi-wms V2.0发布:升级到jdk17和vue3,支持一物一码
  • 一文带你读懂场外个股期权!什么是场外个股期权?
  • linux splice pip CVE-2022-0847
  • 佳明运动相机SD存储卡被格式化?教你有效恢复数据的方法
  • 2024年【危险化学品生产单位主要负责人】考试及危险化学品生产单位主要负责人证考试
  • List
  • 人工智能帮你支付孩子大学学费的5种方法
  • 2517.礼盒的最大甜蜜度
  • 快速上手yolov8项目
  • 基于SpringBoot的高校BBS在线互动论坛系统