Re: Networking Technology

On Sun, 06 Dec 2009 13:25:40 -0700, D Yuniskis
<> wrote:

rowan.bradley wrote:
I'm looking for a networking technology with the following
- multi-drop, i.e. you can daisy-chain from one node to the next off a
single cable

Picking nits... do you want each node to *straddle* the
"cable" -- or, do you expect the node to sit *in* the
signal path? I.e., do you expect all nodes to be powered
up and functional at all times?

- preferably single twisted pair cabling. If really necessary I could go
to two twisted pairs.
- able to deal with at least 64 slaves and one master per bus segment.
There could be up to 10,000 slaves in a particular system. These could all
be slaves off one bus, but if, as I suspect, this is not technically
feasible, then having to have a repeater or hub or decoder or similar for
each group of 64 nodes would be OK

Why not EIA485? (I think it stresses at your 64 per segment, though)

1/2 or 1/4 unit load slaves would allow more than the one master and
31 slaves allowed with standard 1 Unit Load transceivers.

CANbus would also be a viable option.

- I may get away with no return path - just outgoing signals from the
master to the slaves.

Broadcast all the data periodically and let each slave pick the data
of interest.

Better would be a system that could have some kind of
handshake and some kind of status information coming back.

This complicates the situation considerably, since the master must
either poll each slave sequentially or use CANbus and let the CAN
hardware at each slave do the arbitration of spontaneous responses.

- The information going to the slaves is very simple - often just "on" or
"off", sometimes a bit more than this, but only a few bytes of data max.
- preferably able to update all slaves in 2ms.

With up to 64 slaves in a segment, one could use all the available 64
data bits in CAN frame to control specific digital outputs. At 1
Mbit/s, the frame takes about 150 us. If there are multiple digital
outputs, separate CAN-IDs can be used to set the state for all DO1,
DO2 etc. digital outputs on the segment.

If RS-485 at 115k2 are used, still 128 specific digital outputs could
be set in the specified 2 ms.

If this is not possible I
might be able to get away with a system in which I can turn say 256 slaves
individually "on" or "off" in 2ms, plus a "general off" command that turns
them all off quickly.

How large must the packet be to "update a particular slave"?
Are there other characteristics of your protocol that slaves
can observe/track? Or, must each message be completely
free standing?

- if I have 64 slaves per network segment, and I just send all the data
for each update, and there is just one bit per slave (on/off) then I need
to send 8 bytes of data plus framing, error detection etc. In this case the
data rate required on the slave network is obviously very modest - maybe
50-100kb/s. If I try to update the whole of a 10,000 slave system in the
same way in 2ms, then the data rate is much more demanding, maybe

If you are using Ethernet as the high level system and CANbus as the
low level system with up to 64 nodes on each segment, you can put the
data for 128 Ethernet/CAN gateways into a single frame, thus 8192
digital outputs could be controlled simultaneous by a single raw
Ethernet or UDP frame. The Ethernet would have to be 100 Mbit/s or
more, if the individual CAN segments are at 1 Mbit/s. In order to
command 8192 digital outputs within 0,3 ms. The gateway controller
should have one 100 Mbit/s Ethernet port and one or more CANbus
controller on the chip.

- very low cost hardware in the slave. This implies that either the
protocol is very simple so I can implement it in a low cost microprocessor,
or that there is a low cost mass-produced chip that implements a more
complex protocol. The slave is very simple. It just needs to decode
commands sent to its address, or to the "general" address, and implement
them (usually just "on" or "off").

Define "very low cost". 10,000 nodes will use a significant amount
of *wire*, plus the costs of stringing it, configuration management,
etc. (or, do you not care about "installation costs"?)

- cost of the master is somewhat less important, since there are 64x fewer
of these, but cost is still important (what matters in the end, of course,
is the overall cost of the system).
- A 64 slave node bus could be distributed over a distance of 10m.

This should not be a problem for RS-485 nor to CANbus.

The total network could be 500m long.

Is this the total combined cable length or the maximum distance
between segments.

M being meters? That puts the 64 node segment at ~6 inches
between nodes (assuming they are evenly distributed). And, the
10,000 node "network" at an average node spacing of about *2*
inches! (assuming I've done the math properly) Are you sure
you're not just chasing an arbitrary (marketing) spec?

Connecting 64-256 nodes into a single segment can be problematic at
speeds of 1 Mbit/s and above, since all interconnections must work
reliably as a transmission line over the system life time. The cable
harness can become quite expensive, especially if it is required that
a slave can be replaced without disturbing the traffic to other nodes.
Just remember the problems of maintaining 10base2 ThinWire Ethernet
networks :-).