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

【CAN通信】AUTOSAR架构下TC3xx芯片是如何将一帧CAN报文发送出去的

目录

前言

正文

1.背景介绍

2.CAN Driver发送报文的底层实现

2.1. vCan_30_Mcan_TxStart实现

2.2 vCan_30_Mcan_CopyToTxBuffer复制报文内容

2.3 TXBAR请求报文发送

2.4 vCan_30_Mcan_Interrupt产生发送中断

2.5. vCan_30_Mcan_TxConfirmation

2.6. vCan_30_Mcan_TxNotification

2.7. Can_30_Core_Confirmation

2.8. Can_30_Core_SetBufferStatus

3.总结


前言

以前在调试CAN通信协议栈时只要CAN报文能到CAN Driver模块的Can_Write且Can_Write返回CAN_OK,就认为报文一定能发出去不再关注Can Driver内部的实现细节了。但是最近在调试CAN报文发送时发现还必须关注下Can Driver的内部实现细节才能证明一些猜想,所以本文就来捋一捋Can Driver内部的报文发送细节。同时回答以下几个问题:

问题1:Can_Write返回Busy, 这个Busy是硬件上的报文发送Busy, 还是软件逻辑busy?

问题2:Can_Write中涉及的Busy状态什么时候被清掉?

问题3:Can_Write返回E_OK,报文一定已经发送到CAN总线上了吗?

AUTOSAR BSW: Vector Davinci

MCAL: EB Infineon

HW Platform: TC3xx 

http://www.dtcms.com/a/287470.html

相关文章:

  • NX二次开发常用函数坐标转化UF_MTX4_csys_to_csys和UF_MTX4_vec3_multipl
  • Linux基础命令(第二期)
  • 地图定位与导航
  • Go-Redis × RediSearch 全流程实践
  • Node.js:Stream、模块系统
  • KANO模型分类,以扫地机功能为例子
  • 实验-华为综合
  • 论文略读: RASA: RANK-SHARING LOW-RANK ADAPTATION
  • 《Linux系统配置实战:NTP时间同步与SSH免密登录全流程指南》​​
  • 【洛谷】询问学号、寄包柜、移动零、颜色分类(vector相关算法题p1)
  • LVS(Linux virual server)基础概念详解
  • 网络通信原理:分层协作与协议解析
  • Matplotlib 30分钟精通
  • 免费收听广播
  • C++类和对象(一)基础内容讲解
  • 使用uvx运行和安装Python应用程序
  • GEO营销:AI时代的搜索优化新赛道——从DeepSeek爆火看生成式引擎优化的崛起
  • 边界条件汇总
  • 初等数论Ⅱ
  • Spring监听器
  • (LeetCode 面试经典 150 题) 49. 字母异位词分组 (哈希表)
  • 开疆智能Profinet转ModbusTCP网关连接康耐视InSight相机案例
  • [故障诊断方向]SNNs:针对小样本轴承故障诊断的孪生神经网络模型
  • ICT测试原理之shorts(短路)测试原理
  • 【2025最新】 .NET FrameWork微软离线运行库合集,一键安装版
  • 【数据类型与变量】
  • python爬虫之获取渲染代码
  • SAP的数据转换和处理
  • RabbitMQ01——基础概念、docker配置rabbitmq、内部执行流程、五种消息类型、测试第一种消息类型
  • 西门子 S7-1500 PLC 电源选型指南:系统电源与负载电源的核心区别