Go Down

Topic: RS485 bus clash detecting (Read 556 times) previous topic - next topic

Graynomad

OK not really an Arduino issue but I don't know where else to ask.

The question is, can you detect a bus clash with RS485?

Every data sheet I've read shows that the drivers are push-pull or pull-push, ie they never release the bus unless disabled.

So if one was to be designing a serial protocol that depended on determining if the 1 you think you're transmitting is being overridden by a 0 from another transmitter can this be done with 485?

With CAN, LIN, open collector, diode mixing etc you can do this but not with 485 it seems.
Rob Gray aka the GRAYnomad www.robgray.com

Arnonh

i dont think that the detection is possible or needed
in most cases the receiver is in receive mode/disabled all the its not sending
and the protocol should handle the changing of modes

Graynomad

#2
Sep 03, 2010, 11:54 am Last Edit: Sep 03, 2010, 02:24 pm by graynomad Reason: 1
Quote
protocol should handle the changing of modes

True as most (all?) 485 protocols are master/slave, but what if you are designing a peer-to-peer protocol whereby anyone can talk whenever they like. In this case you need to detect clashes.

It's possible I can't do this and I'm happy to use the other options I mentioned, it would be nice to include 485 as a physical level as well though.
Rob Gray aka the GRAYnomad www.robgray.com

pwillard

I think you might want to read about SAEJ1708

http://www.national.com/an/AN/AN-915.pdf

I believe that this is how a lot of automobile based device buses are designed.


Graynomad

Of course, use the data to enable the transmitter with input tied low and appropriate line biasing to give a recessive state.

Thanks for that.
Rob Gray aka the GRAYnomad www.robgray.com

Go Up