JS实现CAN报文发送:功能、优先级与发送流程详解

需积分: 50 6 下载量 89 浏览量 更新于2024-08-06 收藏 4.21MB PDF 举报
在本章节中,我们将深入探讨如何使用DSPIC30F系列的数字信号控制器,如dsPIC30F6010A/6015,来实现CAN总线报文的发送功能。CAN(Controller Area Network)是一种工业通信协议,用于在汽车电子系统和其他设备间进行可靠的消息传递。 首先,CAN模块在硬件层面具备三个发送缓冲器,每个能容纳14字节数据,其中8字节用于存储实际报文数据,其余5字节用于标识符和仲裁信息。发送优先级是一个关键概念,通过设置TXnPRI字段(CiTXnCON寄存器的1:0位),可以定义报文的发送优先级,分为高、中等和低三级。当设置为高优先级(11)时,报文将优先发送。 发送过程涉及触发发送请求(TXREQ位置1),这时CAN模块会自动清除错误标志,如TXABT、TXLARB和TXERR。模块会在检测到总线空闲后,按照优先级顺序发送高优先级报文。若发送成功,TXREQ位清零并可能产生中断;若发送失败,相关错误标志会被激活,TXREQ保持置1,直到问题解决。 中止报文发送可以通过清零每个报文缓冲器的TXREQ位来实现,使用ABAT位(CiCTRL寄存器的12位)。若报文发送过程中遇到仲裁失败或错误,可以通过检查TXABT位以及TXnIF标志位是否自动置1来判断是否需要中止。 发送过程中可能会遇到各种错误,如应答错误、格式错误和位错误。这些错误会被CAN模块检测到,但不一定导致中断。错误计数器在错误发生时会增加,累计达到96次时,ERRIF和TXWAR标志会被置1,此时会产生中断。因此,监测和管理这些错误是确保通信可靠性的关键。 最后,本章提供的信息强调了使用Microchip产品时的注意事项,包括可能存在的翻译误差、产品的更新性和用户的责任。在涉及生命安全相关应用时,用户需自行确保产品的正确使用,并明确Microchip对于产品性能和特定用途的声明和担保责任。任何未经许可的复制或使用Microchip知识产权内容都必须遵守相关规定。