Re: question about can bus
"Lacassaigne Jean-Francois" <[email protected]>
| Newsgroups | gmane.comp.hardware.bus.can |
|---|---|
| Message-ID | <944752380F3E4846AF5F5D6B314C33E9@JFLPC> |
Hi, thanks for your reply. while reading it, i realize that i was not really clear in my question. I'm using only the physical layer of the can bus (not the protocol). the protocol is a custom made protocol. so there is no ack message (right now) when a command is received. All work fine as long as i've only the PC sending command like "Device XX put your Output #YY to ON" Device XX could even reply to the PC without trouble as no one else is going to talk Problem is that now, i need to add some devices who need to send messages to the PC like "I'm device ZZ, my Input #WW just changed to On state" I know that one solution would be to use a can controller between my microcontroller and the can transceiver, but it's not an option as i've already hundreds of Output device produced and in service. Jean-Francois -----Message d'origine----- From: Kees Zagers Sent: Monday, April 08, 2013 11:44 AM To: [email protected] Subject: Re: [CANLIST] question about can bus Hello Jean-Francois, Greetings from the Netherlands. First of all it should be clear what you understand with "Listen only". If you mean: a node which has a standard CAN controller, but it is listening only to what other nodes are doing, it is still an active CAN node. This means it gives an Acknowledge when it receives a correct message and sends an Errorframe when it is not correct. If you mean: a node which has a CAN controller which can be switched to a "Listen Only" or "Passive" state (e.g. SJA1000), you can only read out the messages with such a node. This is not active on the bus and will not send Acknowledges nor Errorframes. Rule 1: You should have at least two active nodes on a CANbus to let it work anyway. The transmitting node is expecting an ACK at the end of the message and if it does not see this, it sends the same information continously. The second node can be an "active listen-only" node, not a passive one. Rule 2: The ACK and errorframes are generated by the CAN controller; not the CAN transceiver. So a CAN node with just a CAN transceiver is not a CAN node at all; it is just a physical interface to the bus, converting the dominant and recessive levels of the CANbus to logical levels for the receive input of the CAN controller and on the other side it converts the logical levels of the transmit output of the CAN controller to dominant/recessive levels on the CANbus. So your statement: "* listen only devices having only can bus transceiver." is NOT TRUE. Hope to have clarified the situation by this. Kees Zagers SI-Kwadraat B.V. [email protected] -- Archives and useful links: http://groups.yahoo.com/group/CANbus Subscribe and unsubscribe at www.vector.com/canlist/ Report any problems to <[email protected]>