Re: question about can bus
Simon Byholm <[email protected]>
| Newsgroups | gmane.comp.hardware.bus.can |
|---|---|
| Message-ID | <[email protected]> |
Hello Jean-Francois This is not according to CAN, but if you have no other choice you could always have the PC send out requests Slave 1 please report your status wait 5ms Slave 2 please report your status -> Slave 2 reports back a status change Slave 3 please report your status wait 5ms Slave n please report your status wait 5ms Go back and ask everyone again This was the salves would only talk when asked to, but of course if you need quick response this will not work. The above does not need any hw change on the PC side Simon Simon Byholm Software Manager TK Engineering Oy P.O. Box 810, FI-65101 Vaasa, Finland Visiting address: Yrittäjänkatu 15 Phone: +358 6 357 6306 Fax: +358 6 357 6320 email: [email protected] web: www.tke.fi TK Engineering solves your CAN, CANopen and J1939 problems by providing the hardware, software and know-how you need to design, manufacture and troubleshoot your industrial and heavy machine CAN networks. Call +358 6 357 6300 or email [email protected] to learn how we can help you solve your CAN related problems. On 8.4.2013 13:36, Heinz-Jürgen Oertel wrote: > Am Montag 08 April 2013, 12:28:42 schrieb Lacassaigne Jean-Francois: >> 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" > The 'real' CAN controller does this by supervising the CAN bus > and sends (using TX) only if the bus is free - some bit times recessive. > If more than one node sends at the same time, > the CAN controller starts with its CAN specific arbitration phase > to determine if it can use the bus after the arbitration was won. > > >> 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 >> > That is the first time I heard about using the CAN transceivers > without a CAN controller. > The CAN controller manages the bus access and it is the protocol > which manages the multi-master access. > You have to organize i similar process. > > Regards > Heinz > >> >> -----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]> > -- > Archives and useful links: http://groups.yahoo.com/group/CANbus > Subscribe and unsubscribe at www.vector.com/canlist/ > Report any problems to <[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]>