首页 > 其他 > 详细

关于CAN自发自收(全双工)的问题 —— 迁移帖

时间:2020-08-28 13:54:32      阅读:249      评论:0      收藏:0      [点我收藏+]

因为amobbs越来越封闭,所以将早些年上面发的帖子挑选一些,放到这里。

 

初学CAN,昨天一直纠结于是否可以将CTXD和CRXD直接相连,以实现自身收发,实际验证不行,为了找到不行的原因,
今天早上抓了个图,是两个节点的通信,本机接收到数据以后就发送ID = 1 数据场都是0x55的标准数据帧。
CTXD发送的时候,CRXD与其保持一致,这是什么道理?苦于找不到相关资料与这个现象印证,CAN不是全双工的吗?
是不是不同厂家的CAN控制器的做法不一样,我用的是NXP的CAN控制器,求高手指点。
图1:接收数据时CTXD和CRXD的时序
图2:发送数据时CTXD和CRXD的时序

 

接收数据时CTXD和CRXD的时序

技术分享图片

 

发送数据时CTXD和CRXD的时序

技术分享图片
 
 
 
原因是:CAN总线有监听功能,就是在发送一个位时,需要在RXD端产生反馈,以便报文ID仲裁。正常发送时,接收器不储存接受到的报文,只是在发送完毕收到应答位后而进入接收模式;而自发自收,必须在自发自收模式下,发送时会同时打开接收器,这时发送的帧接收器会存储,因此CAN是单双工。
 
详细了解,请参看CANforbeginer.pdf

关于CAN自发自收(全双工)的问题 —— 迁移帖

原文:https://www.cnblogs.com/mic-chen/p/13576841.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!