Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronic 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.

Register Log in

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.
 

marie65

Super Member
Joined
Jan 15, 2002
Messages
198
Helped
19
Reputation
38
Reaction score
8
Trophy points
1,298
Activity points
1,506
485 busy collision

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

cdcll

Full Member level 3
Joined
Feb 15, 2002
Messages
163
Helped
8
Reputation
16
Reaction score
1
Trophy points
1,298
Activity points
1,199
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.
http://www.interfacebus.com/Design_Connector_CAN.html
 

arturt134

Full Member level 2
Joined
Dec 31, 1999
Messages
125
Helped
8
Reputation
16
Reaction score
7
Trophy points
1,298
Location
Poland
Activity points
1,006
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.
 

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
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?
 

beuch

Member level 3
Joined
Jun 6, 2001
Messages
65
Helped
1
Reputation
2
Reaction score
1
Trophy points
1,288
Location
France
Activity points
518
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: slls101b.pdf
 

marie65

Super Member
Joined
Jan 15, 2002
Messages
198
Helped
19
Reputation
38
Reaction score
8
Trophy points
1,298
Activity points
1,506
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).
 

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
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.
 

NikZetaJones

Member level 2
Joined
Mar 31, 2002
Messages
46
Helped
1
Reputation
2
Reaction score
0
Trophy points
1,286
Activity points
299
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
 

GrandAlf

Advanced Member level 2
Joined
Mar 9, 2002
Messages
520
Helped
47
Reputation
92
Reaction score
6
Trophy points
1,298
Location
UK
Activity points
4,730
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.
 

jarmestor

Newbie level 2
Joined
May 30, 2002
Messages
2
Helped
0
Reputation
0
Reaction score
0
Trophy points
1,281
Activity points
22
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)
 

HMaier

Junior Member level 3
Joined
Dec 5, 2001
Messages
30
Helped
0
Reputation
0
Reaction score
0
Trophy points
1,286
Activity points
151
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
 

kekon

Full Member level 3
Joined
Sep 19, 2002
Messages
156
Helped
5
Reputation
10
Reaction score
3
Trophy points
1,298
Location
Poland, Białystok
Activity points
1,493
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.
 

papyaki

Advanced Member level 2
Joined
Apr 13, 2002
Messages
539
Helped
38
Reputation
76
Reaction score
18
Trophy points
1,298
Location
France
Activity points
5,346
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
 

huahua

Member level 2
Joined
Sep 21, 2002
Messages
42
Helped
1
Reputation
2
Reaction score
1
Trophy points
1,288
Activity points
263
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.
Toggle Sidebar

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Top