Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.arch.embedded > #27450
| From | upsidedown@downunder.com |
|---|---|
| Newsgroups | comp.arch.embedded |
| Subject | Re: What is the best communication mechanism with collision detection/avoidance for my topology? |
| Message-ID | <0obf2d11ohvhj009anedjdaadh0feplgqi@4ax.com> (permalink) |
| References | <73413cab-f8f3-4a23-a89d-5996fc23f917@googlegroups.com> <956d06da-01ba-47e8-be4a-479e740a61b7@googlegroups.com> <f8odigFff45U1@mid.dfncis.de> |
| Date | 2017-12-06 11:14 +0200 |
| Organization | Elisa Customer |
On Tue, 5 Dec 2017 21:23:41 +0100, Hans-Bernhard Bröker <HBBroeker@t-online.de> wrote: >Am 03.12.2017 um 08:06 schrieb T Obulesu: > > >> _____________ _____________ >> | | | >> | Tx |------------|--------->| Rx | >> | | | | | >> |ATMEGA128 | | | ATMEGA8 | >> | | | | | >> | Rx |------------|------|-->| Tx | >> |____________| | | |____________| >> | | >> | | _____________ >> | | | | >> | |---------->| Rx | >> | | | | >> | | | ATMEGA8 | >> | | | | >> |------|---------->| Tx | >> | | |____________| >[...] > >That topology, as shown, it broken. You've connected your master Tx to >one slave Rx, but also several slave Tx'es. And vice versa. I'll >assume you really meant > >+------------+ +------------+ >| Tx |>------------------*---->| Rx | >| | | | | >|ATMEGA128 | | | ATMEGA8 | >| | | | | >| Rx |<-----------*------|----<| Tx | >|____________| | | +------------+ > | | > | | +------------+ > | *---->| Rx | > | | | | > | | | ATMEGA8 | > | | | | > *------|----<| Tx | > | | +------------+ > . . >[etc.] > >> Here, the atmega128 is the main controller and all other atmega8 are connected to the main controller using rs485 cable. This corrected form is essentially 4 wire RS-485 style communication, in which all Rxs are always active, the master Tx is always active, but one slave Tx only is active, all others are in three state. >The type of cable is much less relevant than you probably think. The >real question is what kind of line interfaces (a.k.a. transceivers) >you're using on those lines. Let's assume they're RS485 transceivers. > >> What is the best communication protocol for this to detect and avoid collision.? > >None, because with this kind of topology, there really shouldn't be any >collisions in the first place, so nothing to detect or avoid. You have >a master controller, so how about letting it actually be the controlling >master of the bus? > >The topology you described practically begs for a query-response >protocol: master tells all slaves who is to talk next, and optionally >what it's to talk about. The addressed device (master itself, or one >slave) then talks; all others only listen. Repeat until the cows come home. > >Collisions are what you get if there's not one master, but many of them. > That's when you really need collision mitigation techniques. Or use a "master" token, passing token from one master to the next master when the first has done its job. > If >that's where you really want to go, fell free to google CSMA/CA and >CSMA/CR and the protocols mentioned in connection with those. One good >choice might then be CAN --- and it would save you half the wiring, too. Was 3 m the total network size or the distance between each node ? In the first case, even open collector TTL could be used, but the power should be delivered from the master in the same cable. There should be no ground connections at the slaves to avoid TTL ground potential problems. To save in wiring, use a similar topology as 2 wire RS-485. Just add an NPN transistor at each Tx pin in the network, connect collectors together and a common pull-up to +5 V. Connect each Rx pin to the collector of the corresponding collector (i.e. the low end of the pull-up resistor. Make sure you have a echo-cancel routine to avoid hearing your own transmissions. It is also a good idea to use a protocol, in which the request and response messages are different so tat the inactive slaves know, if there is a master request or a reply from an other slave on the line.
Back to comp.arch.embedded | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
What is the best communication mechanism with collision detection/avoidance for my topology? obulesu.t@gmail.com - 2017-12-02 23:05 -0800
Re: What is the best communication mechanism with collision detection/avoidance for my topology? T Obulesu <obulesu.t@gmail.com> - 2017-12-02 23:06 -0800
Re: What is the best communication mechanism with collision detection/avoidance for my topology? Robert Wessel <robertwessel2@yahoo.com> - 2017-12-03 09:03 -0600
Re: What is the best communication mechanism with collision detection/avoidance for my topology? pozz <pozzugno@gmail.com> - 2017-12-04 11:57 +0100
Re: What is the best communication mechanism with collision detection/avoidance for my topology? Jack <jack4747@gmail.com> - 2017-12-04 03:11 -0800
Re: What is the best communication mechanism with collision detection/avoidance for my topology? Hans-Bernhard Bröker <HBBroeker@t-online.de> - 2017-12-05 21:23 +0100
Re: What is the best communication mechanism with collision detection/avoidance for my topology? upsidedown@downunder.com - 2017-12-06 11:14 +0200
Re: What is the best communication mechanism with collision detection/avoidance for my topology? Dave Nadler <drn@nadler.com> - 2017-12-07 05:09 -0800
csiph-web