CubeMx-CAN

Mode

  1. 选择是否启用CAN

Parameter Settings

Bit Timings Parameters

CAN通信时钟、速率相关配置

1. Prescaler

  1. 分频系数:对APB1时钟进行分频后成为CAN的时间单元(TQ)
  2. TQ = APB1 / 分频系数

2. Time Quanta in Bit Segment 1

  1. 定义位时间中采样点之前的时间段长度
  2. BS1

3. Time Quanta in Bit Segment 2

  1. 定义位时间中采样点之后的时间段长度
  2. BS2

4. ReSynchronization Jump Width

  1. 重同步时间:定义在位同步过程中,允许一次最多延长或缩短位时间的TQ数量
  2. SJW,必须小于BS1和BS2

配置要求

  1. 波特率 = APB1 / 分频系数 / (1 + BS1 +BS2)
  2. 采样点位 = (1 + BS1) / (1 + BS1 + BS2) * 100%,推荐在75% ~ 85%

Basic Parameters

1. Time Triggered Communication Mode

  1. 是否启用 TTCM(时间触发通信模式)
  2. 启用:TTCAN是CAN协议的扩展,为了满足严格的实时性要求。基于硬件定时器在固定时间窗口发送消息,支持硬件时间戳。启用后需要禁止自动重传
  3. 禁用:普通CAN通信禁用
  4. 项目禁用

2. Automatic Bus-Off Management

  1. 自动Bus-Off管理
  2. 当发送错误计数器 > 255时,节点会进入Bus-Off状态,停止参与总线通信
  3. 启用:硬件自动监控,当满足恢复条件(连续128 * 11个隐性位)时,自动退出Bus-Off并恢复通信
  4. 禁用:进入Bus-Off后,需要手动清除错误计数器并重新初始化CAN才能恢复
  5. 项目启用

3. Automatic Wake-Up Mode

  1. 自动唤醒模式
  2. CAN控制器进入Sleep模式后,需要重新启用才能再进行CAN通信
  3. 启用:检测到总线活动(一个显性位)时,硬件自动退出Sleep模式并产生中断
  4. 禁用:需要软件手动发送唤醒请求才能退出Sleep
  5. 项目启用,但是项目不知道会不会进入Sleep模式

4. Automatic Retransmission

  1. ART:自动重传发送失败的消息
  2. CAN信息发送失败的原因
    1. 仲裁优先级不足
    2. 未收到ACK
  3. 启用:硬件自动无限重传,直到发送成功。标准CAN必须启用
  4. 禁用:只尝试发送一次,失败后放弃
  5. 项目启用

5. Receive Fifo Locked Mode

  1. 是否进行Fifo锁定行为
  2. 禁用:新消息覆盖最旧的信息,Fifo始终存储3条最新信息
  3. 启用:Fifo信息未被接受前一直保存信息
  4. 项目中禁用

6. Transmit Fifo Priority

  1. 发送邮箱是否采用优先级仲裁
  2. 禁用:发送信息按照ID优先级进行仲裁
  3. 启用:发送信息按照先入先发的顺序
  4. 项目中禁用

Advanced Parameters

1. Operating Mode

  1. CAN通信的模式
    1. Normal:正常模式,正常参与总线通信。产品实际应用的模式
    2. Loopback:环回模式,内部发送的信息直接环回到接受输入。用于进行单点自测
    3. Silent:静默模式,只监听不发送。用于总线分析、故障诊断
    4. Loopback conbined with Silent:环回静默模式。用于完全离线的测试,可连接真实总线但需要隔离测试

补充知识

CAN通信波特率计算(项目使用)

  1. 系统配置:APB1 = 40MHz、Pres = 8、SB1 = 7、SB2 = 2、SJW = 1
  2. 波特率 = 40M / 8 / (1 + 2 + 7)= 500kHz
  3. 采样点位 = (1 + 7) / (1 + 2 + 7) = 80%
相关推荐
yyyyy_abc1 小时前
ceph学习笔记
笔记·ceph·学习
晓梦林1 小时前
ximai靶场学习笔记
android·笔记·学习
nashane1 小时前
HarmonyOS 6学习:外接键盘CapsLock与长截图功能的实战调试与完整解决方案
学习·华为·计算机外设·harmonyos
一口吃俩胖子2 小时前
【脉宽调制DCDC功率变换学习笔记021】时域性能准则
笔记·学习
@杰克成4 小时前
Java学习30
java·开发语言·学习
三品吉他手会点灯4 小时前
C语言学习笔记 - 40.数据类型 - scanf函数的编程规范与非法输入处理
c语言·开发语言·笔记·学习
Bechamz5 小时前
大数据开发学习Day36
大数据·学习
smartpi_ai6 小时前
玩具产品从按键控制升级为语音控制:语音模块与MCU串口通信实战
单片机·嵌入式硬件
happymaker06266 小时前
SpringBoot学习日记——DAY02(SpringBoot整合Swagger3)
java·spring boot·学习