can总线发送数据的问题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了can总线发送数据的问题相关的知识,希望对你有一定的参考价值。
发送数据时,如果没有节点接收会怎样?
会产生一个错误中断么?
我吧错误中断关掉了,没有节点接收为什么还会发送成功?
一次发送失败不会产生错误中断,只是发送错误计数器值增加,can控制器重发还发不出去,发送错误计数器累加达到一定的值后才会产生相应的中断。
检测是否发送成功要么是通过发送中断或者发送状态位来的,不是检测是否有错误中断,所以关掉对于发送成功与否不起任何作用。
另:单节点检测can驱动和硬件是否正常,其实是可以通过设置“自检测模式”(自发收发模式)完成的,这样能发送成功,并能收到数据。
参考资料:www.adawin.com CAN总线系统全面产品提供商
参考技术A 数据发出后得不到应答,检查出错误并重复发送,直到系统中出现其他中断。发送数据的节点变为错误认可节点,总线不会关闭。 参考技术B 没有其他节点,发送没有应答会自动重发,直到错误技术器溢出产生错误中断。 参考技术C 上网站查找 参考技术D 自然现象详解CAN总线:CAN总线通信优先级机制
目录
在详解CAN总线:CAN总线报文格式—数据帧文章中,讲解到仲裁段。仲裁段用于写明需要发送到目的CAN节点的地址、确定发送的帧类型(当前发送的是数据帧还是遥控帧),并确定发送的帧格式是标准帧还是扩展帧。
本篇文章将讲解仲裁段的另一个重要功能:通信优先级。
在CAN总线空闲态,最先开始发送消息的单元获得发送权。多个单元同时开始发送时,各发送单元从仲裁段的第一位开始进行仲裁,连续输出显性电平最多的单元可继续发送。所以,帧ID值越小,优先级越高。
仲裁的过程如下图所示:
1、数据帧和遥控帧的优先级
具有相同 ID 的数据帧和遥控帧在总线上竞争时,数据帧优先级高,因为数据帧仲裁段的最后一位(RTR)为显性位具有优先权,可继续发送。
数据帧和遥控帧的仲裁过程如下图所示:
2、标准格式和扩展格式的优先级
标准格式 ID 与具有相同 ID 的遥控帧或者扩展格式的数据帧在总线上竞争时,标准格式的 RTR 位为显性位优先级更高,优先发送。
标准格式和扩展格式的仲裁过程如下图所示:
以上是关于can总线发送数据的问题的主要内容,如果未能解决你的问题,请参考以下文章