【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 

你可能感兴趣的:(AUTOSAR精进之路,AUTOSAR,CAN,Busy,Tx,Interrupt,TxNotification,TxConfirmation)