EmbeddedRelated.com
Forums

off the shelf RS485 network card

Started by Shane williams October 12, 2010
On 10/12/2010 7:13 PM, Shane williams wrote:
> On Oct 13, 6:02 am, D Yuniskis<not.going.to...@seen.com> wrote: >> Hi Shane, >> >> Shane williams wrote: >>> We have systems where a bunch of microcontrollers (up to 250) need to >>> communicate with each other in a circular ring. >> >> Your wording implies a *physical* set of point-to-point links. >> This can be accomplished "literally" in that same sense. E.g., >> much like FDDI. >> >> Does a powered down/defective node count as a "break"? >> I.e., can you count on all nodes being "up" at any given time >> (two or more being OFF would be an irrecoverable failure) >> >> For example, a pair of RS232 links -- one clockwise and one >> counterclockwise -- from each node to its two adjacent neighbors >> gives you the physical capabilities you seek (though it forces >> each node to participate actively in every message exchange). >> >> You can also implement a Token Ring network (e.g., ArcNet) >> in which a "communications device" handles much of the >> overhead of moving messages around (years ago, there were >> 8051-ish solutions with ArcNet controllers). >> >> If you have any need for synchronization between nodes >> (e.g., shared timebase), then the easier implementation is >> a bus-oriented one. (Note that the physical topology can >> *force* a ring's "problems" onto a bus topology) This >> allows all nodes to see the same data/event COINCIDENTLY. >> >>> All controllers need >>> to see all messages and if there is a single break in the ring, it >>> needs to continue working and report the fault. It doesn't need to be >> >> If you need the ring to bretain some integrity in the face >> of a break, then you need at least two physical connections >> per node. Note that you need not have both connections *active* >> at all times. Rather, you just need to be able to sense your >> "current" connection is defective and "recover" by switching >> to your "backup" connection. (of course, your protocol must >> be smart enough that the controls don't start oscillating) >> The relative cost of the hardware to do so must be weighed >> against recovery time, protocol complexity, etc. >> >>> high speed, 200 kbps would probably do. Are there any RS485 network >>> cards that can do this and how much do they cost. >> >> Have you considered a wireless solution? (you've not explained >> the physical size of the ring but ~250 would probably NOT all >> be colocated in a 1 meter segment! :> ) ZigBee is an >> attractive, low power solution in your stated bandwidth. >> (you can chose to implement a ring protocol, bus protocol, >> mesh, etc.) > > Sorry, I guess I didn't ask my question very well. The distance > between nodes can be several kilometers or just one or two meters. We > can use fibre for the larger distances. The network cards need to be > standalone with a connection to the host preferably RS232 but maybe > whatever's available. The topology is not a bus but more of a daisy > chain. We were thinking of a scheme where messages propagate in both > directions around the ring, to get the redundancy. All nodes are > powered up all of the time except when there's a fault/ power fail. > >
Google "Rs-485 HUB"
2010-10-13 03:13, Shane williams skrev:
> On Oct 13, 6:02 am, D Yuniskis<not.going.to...@seen.com> wrote: >> Hi Shane, >> >> Shane williams wrote: >>> We have systems where a bunch of microcontrollers (up to 250) need to >>> communicate with each other in a circular ring. >> >> Your wording implies a *physical* set of point-to-point links. >> This can be accomplished "literally" in that same sense. E.g., >> much like FDDI. >> >> Does a powered down/defective node count as a "break"? >> I.e., can you count on all nodes being "up" at any given time >> (two or more being OFF would be an irrecoverable failure) >> >> For example, a pair of RS232 links -- one clockwise and one >> counterclockwise -- from each node to its two adjacent neighbors >> gives you the physical capabilities you seek (though it forces >> each node to participate actively in every message exchange). >> >> You can also implement a Token Ring network (e.g., ArcNet) >> in which a "communications device" handles much of the >> overhead of moving messages around (years ago, there were >> 8051-ish solutions with ArcNet controllers). >> >> If you have any need for synchronization between nodes >> (e.g., shared timebase), then the easier implementation is >> a bus-oriented one. (Note that the physical topology can >> *force* a ring's "problems" onto a bus topology) This >> allows all nodes to see the same data/event COINCIDENTLY. >> >>> All controllers need >>> to see all messages and if there is a single break in the ring, it >>> needs to continue working and report the fault. It doesn't need to be >> >> If you need the ring to bretain some integrity in the face >> of a break, then you need at least two physical connections >> per node. Note that you need not have both connections *active* >> at all times. Rather, you just need to be able to sense your >> "current" connection is defective and "recover" by switching >> to your "backup" connection. (of course, your protocol must >> be smart enough that the controls don't start oscillating) >> The relative cost of the hardware to do so must be weighed >> against recovery time, protocol complexity, etc. >> >>> high speed, 200 kbps would probably do. Are there any RS485 network >>> cards that can do this and how much do they cost. >> >> Have you considered a wireless solution? (you've not explained >> the physical size of the ring but ~250 would probably NOT all >> be colocated in a 1 meter segment! :> ) ZigBee is an >> attractive, low power solution in your stated bandwidth. >> (you can chose to implement a ring protocol, bus protocol, >> mesh, etc.) > > Sorry, I guess I didn't ask my question very well. The distance > between nodes can be several kilometers or just one or two meters. We > can use fibre for the larger distances. The network cards need to be > standalone with a connection to the host preferably RS232 but maybe > whatever's available. The topology is not a bus but more of a daisy > chain. We were thinking of a scheme where messages propagate in both > directions around the ring, to get the redundancy. All nodes are > powered up all of the time except when there's a fault/ power fail. > >
Why don't you implement RS-485 (or maybe RS-422) IN the microcontroller? If you are using point to point, you do not have to even control the enable signal. If you are running for long distance, then you might consider using a more advanced bit encoding like Manchester coding. BR Ulf Samuelsson
On 2010-10-15, Ulf Samuelsson <ulf@notvalid.atmel.com> wrote:

> Why don't you implement RS-485 (or maybe RS-422) IN the microcontroller?
Mixed mode IC designs that include both a microcontroller and something like robust differential analog transceivers like RS-485, RS-422, RS-232, CAN, etc. tend to be pretty tricky (and expensive). I've never seen an off-the-shelf microcontroller with RS-485, RS-422, or RS-485 tranceivers, and I've never met anybody with enough cash to design one and have it fabbed. -- Grant
On Sat, 16 Oct 2010 04:50:31 +0000 (UTC), Grant Edwards
<invalid@invalid.invalid> wrote:

>On 2010-10-15, Ulf Samuelsson <ulf@notvalid.atmel.com> wrote: > >> Why don't you implement RS-485 (or maybe RS-422) IN the microcontroller? > >Mixed mode IC designs that include both a microcontroller and >something like robust differential analog transceivers like RS-485, >RS-422, RS-232, CAN, etc. tend to be pretty tricky (and expensive). > >I've never seen an off-the-shelf microcontroller with RS-485, RS-422, >or RS-485 tranceivers, and I've never met anybody with enough cash to >design one and have it fabbed.
While I can understand that there are no standard compliant RS-232 integrated controllers due to the large +/-6 V voltage swing and the large power dissipation in the fault cases, RS-422/485/CAN will operate from +5 V. However, the OP was talking about distances up to 1 km and speeds up to 250 kbit/s, which is twice what the standard suggest (in distance or speed). At such distances the lame +12/-7 V RS-485 common mode voltage range is not enough, so anyway, you would have to use optoisolators for galvanic isolation.
2010-10-16 06:50, Grant Edwards skrev:
> On 2010-10-15, Ulf Samuelsson<ulf@notvalid.atmel.com> wrote: > >> Why don't you implement RS-485 (or maybe RS-422) IN the microcontroller? > > Mixed mode IC designs that include both a microcontroller and > something like robust differential analog transceivers like RS-485, > RS-422, RS-232, CAN, etc. tend to be pretty tricky (and expensive). > > I've never seen an off-the-shelf microcontroller with RS-485, RS-422, > or RS-485 tranceivers, and I've never met anybody with enough cash to > design one and have it fabbed. >
Maybe I wasn't too clear. Instead of adding a board with RS-232 bridge to RS-485/422, he should consider adding an RS-485/422 transceiver to the Microcontroller board. Best Regards Ulf Samuelsson
On 2010-10-16, Ulf Samuelsson <ulf@notvalid.atmel.com> wrote:
> 2010-10-16 06:50, Grant Edwards skrev: >> On 2010-10-15, Ulf Samuelsson<ulf@notvalid.atmel.com> wrote: >> >>> Why don't you implement RS-485 (or maybe RS-422) IN the microcontroller? >> >> Mixed mode IC designs that include both a microcontroller and >> something like robust differential analog transceivers like RS-485, >> RS-422, RS-232, CAN, etc. tend to be pretty tricky (and expensive). >> >> I've never seen an off-the-shelf microcontroller with RS-485, RS-422, >> or RS-485 tranceivers, and I've never met anybody with enough cash to >> design one and have it fabbed. > > Maybe I wasn't too clear. Instead of adding a board with RS-232 > bridge to RS-485/422, he should consider adding an RS-485/422 > transceiver to the Microcontroller board.
I thought maybe you were hinting about a new AVR part soon to be announced. :) -- Grant