“说明一个CAN节点是如何在刚刚发出数据后防止数据马上接收的呢?”<br /><br />节点为什么要“防止”数据马上接收?不!我告诉你了,节点发送一位,“同时”接收一位,当发送完一帧数据时,这一帧数据已经回到了本节点由RBSA指向的FIFO接收缓存区。不需要任何“防止电路”,发送/返回是“同时”的。从82C250内部电路看更明显了:在TXD通过2个驱动晶体管拉动总线的时候,<br />CANH/CANL随发送数据的变化通过“RECEIVER”回到了RXD,这与外部总线驱动CANH/CANL作用效果一样!为了证实这一点,你可以单节点做实验,没有总线,不挂总线,启动发送,之后看看你的FIFO里是不是有了你发送的数据,具体地址是:(SJA1000)<br />发送缓冲器数据地址:10H (假定发送数据08,55,e0,01,02,03,04,05,06,07,08)<br />FIFO接收缓冲器地址:20H (发送之后与上同)<br /><br />这组与发送数据相同的接收器数据,是MAC层用来监测/仲裁/...,与用户无关,为什么要当作接收数据?更不会触发接收中断!如果与发送数据不同,会触发错误中断,(如果你开放了相应中断了的话)。
|