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

S32K144入门笔记(二十四):FlexCAN传输、接收简述

文章目录

  • 1. 传输过程简述
  • 2. 仲裁过程简述
    • 2.1 本地优先级禁用
    • 2.2 本地优先级使能
  • 3 接收过程简述

1. 传输过程简述

当传输一个报文帧时,CPU必须准备一个邮箱并执行以下程序:

  • 检查相关的中断位是否置位并且清除
  • 如果邮箱处于激活状态,则需要使用打断请求以打断传输
  • 通过轮询相关的标志位寄存器等待相关标志位有效或者在使能相关中断时判断中断请求
  • 判断传输是否被打断或传输完成
  • 清除相关中断标志位
  • 写报文标识符寄存器
  • 写负载数据
  • 配置控制与状态的相关信息

2. 仲裁过程简述

仲裁过程会扫描邮箱,寻找在下一个要发送消息的 Tx 邮箱。这个邮箱被称为仲裁获胜者。扫描从编号最低的邮箱开始,并向编号更高的邮箱进行。
如果仲裁过程在 CAN 总线到达间歇字段的第一位之前未能评估所有邮箱,则临时仲裁获胜者将无效,并且 FlexCAN 在下一个机会中将不会竞争 CAN 总线。
仲裁过程在扫描结束时根据 CTRL1[LBUF] 和 MCR[LPRIOEN] 的设置从活动的 Tx 邮箱中选择获胜者。
如果 CTRL1[LBUF] 被断言,找到的第一个(编号最低)活动 Tx 邮箱即为仲裁获胜者。当 CTRL1[LBUF] 被断言时,MCR[LPRIOEN] 不起作用。
如果 CTRL1[LBUF] 被否定,那么仲裁过程会搜索具有最高优先级的活动 Tx 邮箱,这意味着当多个外部节点同时竞争 CAN 总线时,该邮箱的帧将有更高的概率在 CAN 总线上赢得仲裁。
如果有多个报文邮箱优先级相同,那么编号最细的邮箱仲裁获胜。
仲裁值的组成取决于 MCR[LPRIOEN] 的设置。

2.1 本地优先级禁用

如果 MCR[LPRIOEN]

相关文章:

  • SAP系统年终结算出错
  • MacOS中的鼠标、触控板的设置研究
  • C#基础类型系统-接口
  • Java代码块详解:分类、作用与最佳实践
  • p2p的发展
  • MySQL快速入门
  • 财务管理域——管理会计系统
  • Kotlin 学习-方法和参数类型
  • 「The Road to Web3 Cloud」香港活动回顾|波卡的 Web3 Cloud 愿景
  • winserver2022备份
  • MFC案例:用鼠标移动窗口图像的实验
  • HAL TIM PWM产生 蓝桥杯
  • Java 定时器的全面解析(Timer)
  • Swift Programming All in One苹果程序开发自学之路
  • 【Dify 本地 tools 集成指南】MCP 和 OpenAPI
  • sentinel熔断降级
  • 用Python和OpenCV开启图像处理魔法之旅
  • SmolVLM2: The Smollest Video Model Ever(二)
  • 五种常用的web加密算法
  • 1559 分解质因数