Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

What happens when two RS485 chips start transmission?

Status
Not open for further replies.

KamW

Advanced Member level 4
Joined
Jul 16, 2001
Messages
113
Helped
2
Reputation
4
Reaction score
2
Trophy points
1,298
Activity points
1,130
Hi
I have to transmit frequency signal over long distance - a few sources. I think that use of RS485 chips it could be good idea (half duplex). My question is what would be happened if two chips start transmision, would it destroy chips? And maybe you have experience how to check if there were no colision.
 

485 busy collision

What mean "to transmit frequency signal"? It means serial data or really some frequency produce by a local oscilator?
 

bus collision in rs485

On 2002-03-18 09:32, KamW wrote:
Hi
I have to transmit frequency signal over long distance - a few sources. I think that use of RS485 chips it could be good idea (half duplex). My question is what would be happened if two chips start transmision, would it destroy chips? And maybe you have experience how to check if there were no colision.
I think you may consider CAN bus which supports multimaster and checking the bus is free for transmision. The link below is for your reference.
**broken link removed**
 

When two transmitters start at the same moment, there will be collision on the line. Both chips will be ok, but they will take more current.
 

I need lenght of about 1000m so I think I have no problem with CAN.
Transmited signal it will be frequency generated by oscillators (without controller) -there is appnote in Linear how to make long distance (RS485) temperature measurement without temperature sensor - but I would like to add a few point measurement so I have to add analog generated driver enable signal (half duplex). I am not sure if is it possible to find if there is proper signal on the bus, or there is collision?
 

Hi,

To avoid collision you should have one master only on the line. Each frame sended must begin with the slave address, so this one only respond.

I use the SN75176 transceiver for my RS485 application.

Bye.

Uploaded file: **broken link removed**
 
Last edited by a moderator:

If you don't want to use a controller on each node, the simplest way will be to use one more wire for each node besides the 2 RS485 wires and 1 gnd wire. This way you can enable each RS485 transmiter one by one and will be no colisions. Use a larger current transmitted on this enable wire (>10 mA) if it's a long distance. If you will have to many nodes than the wire cost will be too big.
One method to minimise this will be to use a serial to paralel shift register on each node and transmit from the receiving node a serial pattern that will enable the RS485 driver from each node separately. The serial shift register (like 74HC595) will be cascaded. So you will have 2 wires RS485, 1 gnd, 3 wire for serial data (data, clk, clear).
 

Hi
Thx for your response.
I do not want to implement RS485 serial interface. I am wondering if I could use RS485 chips as "signal level converter" to increase length in transmision of frequency signal - for one node it is very simple, but I am thinking of using several nodes - every one could transmit. The only I have to make is to check if there is or not collision to be sure that I have pure frequency signal.
Of course I could use one more wire for each node, but there will be complicated wiring. I think the same result I ould get using star method wiring. Serial shift register could be good idea, if there were no solution for colision detection.
 

You have to make the protocol able to Detect when other micro is talking or is busy. You can add another bus line to indicate Busy State and prevent a collition in the Rs 485 bus
 

This is always a problem with communication. The ideal way of course is to use proper handshaking, this of course can use up quite a lot of time when you have a lot of nodes. What I have found out that if you can afford to use a small Pic or something, you can transmit blind the same data several times. You then setup the receiving micro to give an output when 2 successive receptions are identical. For fairly low data rates this works OK. RS485 is tolerant of data conflicts, in any case if you are using a micro, you can disable the chip if it is not actually transmitting.
 

You can send data over the clock signal using NRZI encode. Using async-HDLC chips you can get the clock signal and the binary information. With this information you can know if there were no colision.

binary information: flag(7Eh) + two bytes for trainning PLLs of HDLC chips(00H, 00H) + other information + CRC + flag(7Eh)
 

1. Use RS422 Transmitter.
2. Conect R+ to T+ and R- to T-.
3. Now you have the same RS485 Bus. But you have a transmitter and a receiver. If both signals are the same, there was no collison. You can do the comparison by XOR.

HMaier
 

RS485 Collision

KamW said:
Hi
I have to transmit frequency signal over long distance - a few sources. I think that use of RS485 chips it could be good idea (half duplex). My question is what would be happened if two chips start transmision, would it destroy chips? And maybe you have experience how to check if there were no colision.
These situations (when more than one device try to start transmision simultaneously) sometimes happen in systems with RS485 interface. But RS485 chips are protected against it. If You want to avoid it, your system must work in "master-slave" mode, what means, that only one device can start transmission (called master); all other devices can't send data without command from master device (adressed device send data after receiving valid command and address). It's not so simple to detect collision: for example if several devices transmit frequency of the same value and phase, it may be impossible to detect collision.
 

Hi

National Semiconductors has some good app. notes on this subject.

h**p://w*w.national.com/ads-cgi/viewer.pl/an/AN/AN-1057.pdf
h**p://w*w.national.com/ads-cgi/viewer.pl/an/AN/AN-759.pdf

All app. notes are available at :

h**p://w*w.national.com/apnotes/apnotes_all_1.html
 

1) You can pick up RS485 driver ICs from maxim-ic.com or national .com
2) You need to define a protocal for your network. Get the book "Serial Comm. Complete". It is good reference.
 

Status
Not open for further replies.

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top