CAN发送和接收的一个问题 (第一次发帖)
初学CAN,昨天一直纠结于是否可以将CTXD和CRXD直接相连,以实现自身收发,实际验证不行,为了找到不行的原因,
今天早上抓了个图,是两个节点的通信,本机接收到数据以后就发送ID = 1 数据场都是0x55的标准数据帧。
CTXD发送的时候,CRXD与其保持一致,这是什么道理?苦于找不到相关资料与这个现象印证,CAN不是全双工的吗?
是不是不同厂家的CAN控制器的做法不一样,我用的是NXP的CAN控制器,求高手指点。
图1:接收数据时CTXD和CRXD的时序
图2:发送数据时CTXD和CRXD的时序
看看这个文档是否有用 ?
CANforbeginer
有个LOOP模式,你仔细看看datasheet试试 CAN 有全双工模式?
CAN是有两根线,不过是差分线吧,不是和串口一样,一个发送,一个接受的 x11223y 发表于 2013-4-29 14:29 static/image/common/back.gif
CAN 有全双工模式?
CAN是有两根线,不过是差分线吧,不是和串口一样,一个发送,一个接受的 ...
收发器出来的信号才是差分信号,只能是半双工,这是毋庸置疑了,但控制器到收发器之间是CTXD和CRXD,仅从总线电气特性看,是完全可以实现全双工的(CTXD只管发,CRXD只管收,当然就CAN来说,两者还要能监控总线),但我测试不是这样的,结果如图2所示,苦于找不到资料说明,纠结于此呀。 lnskngdc 发表于 2013-4-29 14:24 static/image/common/back.gif
有个LOOP模式,你仔细看看datasheet试试
恩,是有回环模式,我是想了解CAN的收发时序,故测试到图二所示的现象,发送的时候,接收端出现和发送端相似的时序,所以CTXD和CRXD短接的话是不可以滴,但我不知道原因,是控制器明确规定,发送时,RXD要监听总线吗?可怎么个监听法呢? shangdawei 发表于 2013-4-29 13:17 static/image/common/back.gif
看看这个文档是否有用 ?
CANforbeginer
谢谢,我先看看,搞懂了,就发上来。 原因是:CAN总线监听,就是在发送一个位时,需要在RXD端产生反馈,以便报文ID仲裁。正常发送时,接收器不储存接受到的报文,只是在发送完毕收到应答位后而进入接收模式;而自发自收,必须在自发自收模式下,发送时会同时打开接收器,这时发送的帧接收器会存储。 用的哪款单片机? NXP的LPC1700 但应该是所有符合CAN2.0规范的都要满足这种特性。 mark……
顶一个… 所有符合2.0的都这样?有时间要测试一下
页:
[1]