S
Ska
Guest
Hi folks!
We are developing a system using the CAN bus to implement the network
connecting different nodes. We have a PC that needs to ask for some
data (the node status) to the nodes that have to answer to the request
immediately.
In order to ask each node for its status we send a "remote frame"
message to the CAN bus with a specific ID. The relevant node has to
answer with the relevant data by using a "data frame" message.
Each node is in a while loop reading a buffer and sending back data
when necessary. Usually everything goes well but sometimes it happens
that one of the nodes does not answer to the PC request, even if the
request is sent to the bus (it is seen by another node and it can be
seen by using an oscilloscope connected to the CAN bus lines). It
seems the node do not see the message, it misses the interrupt for
updating the buffer...
We usually send a sequence of "remote frame" messages waiting every
time for the answer: send ,waiting for answer, send, waiting, ... Even
if we insert a sleep between a send and another, sometimes the
messages are missed by a node...
We modified the baud rate (from 500Kbit to 20Kbit) but the problem is
not solved.
We are using a T89C51CC03 micro-controller by ATMEL.
Have you ever experienced this problem? Any suggestion?
Thank you in advance for any help!
Cheers,
Ska
We are developing a system using the CAN bus to implement the network
connecting different nodes. We have a PC that needs to ask for some
data (the node status) to the nodes that have to answer to the request
immediately.
In order to ask each node for its status we send a "remote frame"
message to the CAN bus with a specific ID. The relevant node has to
answer with the relevant data by using a "data frame" message.
Each node is in a while loop reading a buffer and sending back data
when necessary. Usually everything goes well but sometimes it happens
that one of the nodes does not answer to the PC request, even if the
request is sent to the bus (it is seen by another node and it can be
seen by using an oscilloscope connected to the CAN bus lines). It
seems the node do not see the message, it misses the interrupt for
updating the buffer...
We usually send a sequence of "remote frame" messages waiting every
time for the answer: send ,waiting for answer, send, waiting, ... Even
if we insert a sleep between a send and another, sometimes the
messages are missed by a node...
We modified the baud rate (from 500Kbit to 20Kbit) but the problem is
not solved.
We are using a T89C51CC03 micro-controller by ATMEL.
Have you ever experienced this problem? Any suggestion?
Thank you in advance for any help!
Cheers,
Ska