目录
发送缓冲的一般行为
在CanIf范围内,发送过程始于调用CanIf_Transmit()函数,结束于调用上层模块的回调服务函数<User_TxConfirmation>()。在发送过程中,CanIf、CanDrv和CAN邮箱共同将要发送的L-PDU仅存储一次在一个单一位置。根据发送方法,这些位置可以是:
• CAN硬件发送对象或
• 如果启用发送缓冲,则为CanIf内的发送L-PDU缓冲区。
对于触发式传输,CanIf只需要存储给定L-PDU的传输请求,而不是其数据。当HTH(硬件发送缓冲区)再次空闲时,数据将通过触发传输函数及时获取。请求传输的单个Tx L-PDU永远不应被重复存储。这种行为对应于CAN网络上定期通信的通常方式。
如果启用传输缓冲(Tx Bufferring),当CanDrv在传输请求时拒绝一个Tx L-PDU时,CanIf将把它存储在CanIf Transmit L-PDU Buffer(CanIfBufferCfg)中。基本上,用于缓冲Tx L-PDU的CanIf的整个缓冲区由一个或多个CanIfBufferCfg(请参见CanIfBufferCfg