为了发送消息,应用程序必须在请求发送前,通过将发送邮箱标识符寄存器<CAN_TIxR---CAN TX mailbox identifier register>中的相应发送邮箱请求位<TXRQ---Transmit mailbox request> 置 1,选择一个空发送邮箱,并设置标识符、数据长度代码 (DLC) 和数据。一旦邮箱退出空状态,软件即不再具有对邮箱寄存器的写访问权限。发送邮箱请求位<TXRQ---Transmit mailbox request>置 1 后,邮箱立即进入挂起状态,等待成为优先级最高的邮箱。请参见发送优先级。一旦邮箱拥有最高优先级,即被安排发送。CAN 总线变为空闲后,被安排好的邮箱中的消息即开始发送(进入发送状态)。邮箱一旦发送成功,即恢复空状态。硬件通过将发送状态寄存器<CAN_TSR---CAN transmit status register> 中的邮箱 x(x=0,1,2) 请求完成标志位<RQCPx---Request completed mailbox x> 和 邮箱 x(x=0,1,2) 发送成功标志位<TXOKx---Transmissi 在CAN(Controller Area Network)总线通信中,发送处理是其核心功能之一,尤其是在嵌入式系统和汽车电子设备中广泛应用。"bxCAN发送处理框图"涉及到的关键概念和流程如下: 1. **发送邮箱**:CAN控制器中有三个发送邮箱(TX Mailboxes),每个邮箱都有独立的标识符寄存器(CAN_TIxR)和状态寄存器(CAN_TSR),用于存储待发送的消息。邮箱状态包括空闲、挂起、已安排和发送中。 2. **发送请求位(TXRQ)**:当应用程序想要发送消息时,需通过置位CAN_TIxR中的TXRQ位来选择一个空邮箱,并设置标识符、DLC(Data Length Code)和数据。一旦置位,邮箱即进入挂起状态。 3. **优先级**:多个挂起的邮箱中,优先级由标识符决定,遵循CAN协议的仲裁规则,ID值越小,优先级越高。若ID相同,优先级则由邮箱编号决定,编号小的优先级高。 4. **发送FIFO模式**:通过设置CAN_MCR中的TXFP位,可以将邮箱配置为FIFO模式,这样发送顺序按照发送请求的时间顺序进行,这对于分段发送特别有用。 5. **发送状态寄存器(CAN_TSR)**:该寄存器提供了发送完成的状态信息,如RQCPx(请求完成标志位)、TXOKx(发送成功标志位)、ALSTx(仲裁丢失标志位)和TERRx(发送错误标志位),用于确认发送成功与否及异常情况。 6. **中止发送**:如果需要取消发送请求,可以通过置位CAN_TSR中的ABRQ位来中止。这将在挂起或已安排状态下立即生效,而在发送过程中,中止可能导致成功或失败两种结果。 7. **禁止自动重发送模式(NART)**:当设置CAN_MCR中的NART位,硬件将不会在发送失败后自动重试,而是认为请求完成并提供相应的错误标志。这适用于时间触发通信方案,确保了精确的发送时序。 8. **异常处理**:如果发送过程中发生仲裁丢失(ALSTx标志位置1)或发送错误(TERRx标志位置1),硬件会记录这些错误并允许软件进行故障诊断和恢复。 bxCAN的发送处理涉及邮箱管理、优先级设置、状态监控以及异常处理机制,这些都是实现可靠CAN通信的关键步骤。理解并正确使用这些机制对于优化CAN总线系统性能和稳定性至关重要。
- 粉丝: 1436
- 资源: 49
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 全开源免费AI网址导航网站源码 AigoTools
- image restoration and enhancement HDR2
- 技术资料分享STM32 UCOS移植很好的技术资料.zip
- 【java毕业设计】医院远程诊断系统源码(ssm+jsp+mysql+说明文档+LW).zip
- my-vue-app.zip
- 技术资料分享STM8 32选型手册很好的技术资料.zip
- 技术资料分享SP3485很好的技术资料.zip
- 技术资料分享SP3232很好的技术资料.zip
- 社会科学研究方法课堂数据-Research-Method-of-Social-Science.zip
- 中银消费产品宣讲(1).pptx