I'm in the process of implementing some simple control nodes (just
switches) and looking for the simplest (cheapest) network protocol to
use. To date, LIN bus seems to be the best candidate. I need very
low speed, high reliability and low off-board distance (a few up to
10s of feet).
Ideally, something that could be two wire with power and data combined
would be ideal, so that the power could be distributed to power the
slave nodes. LIN is good, but it requires a 4 wire (or 3 I suppose)
I looked at ASI (Acuator Sensor Interface), but not sure how practical
Anything else on the radar screen?
You want cheap:
DC source ----))))))))----------------------- To others
or load ! !
\ R1 --- C1
! R4 / R2
! -/\/\/--- \
!--------------! ! ! ! / R3
! Micro TXD!---!!- ! /+!------/\/\/-- Vcc/2
! ! C2 ! / !
! RXD!------------ ! U1
!--------------! \ !
C2, R1 and L1 turn the RS232 output of the micro into positive and
negitive going glitches.
L1 blocks the AC from going into the supply or load. It is in parallel
with all the others. The total inductance interacts with C2 to define the
width of the glitches.
R1 damps the L1 C2 combination to make the responce not overshoot.
C1 picks the glitches off the power line and applies them to U1. U1 is
configured to have enough positive feedback that it doesn't chatter.
Now all you need is software.
This method has been done over 1000 foot cables.
You could always go analog.
Each switch has a series LC network, and the control circuit
just imposes a small AC frequency over the network, and looks at
The plusses of this are of course you only need one real circuit,
the others can practically be built onto a chocolate block.
I looked there, but couldn't see anything related
to multi-channel control over the DC supply wires.
I have a pal who (in later life) is resurrecting
his interest in model railways. Apparently there
is now some reasonably standardised method of
multi-device control via the DC supply through
the rails. Trains, points and signals can all be
controlled via one DC supply. It is supposed to
be popular in the US model engineering market,
but he hasn't been able to find out any technical
I thought someone would mention this eventually. It's called
Digital Command Control (DCC) and is maintained by the
National Model Railroad Association. The NMRA standards are at
are a lot of manufacturers world-wide that make the
various mobile and staionary decoders, booster/command stations,
hand-held throttles, computer interfaces, etc. Note that the
standard only applies to the booster to decoder side, while the
booster / throttle / computer network tends to be proprietary
to each manufacturer. Most of the modelers I know use Digitrax
what would be the disadvantage of removing U1 and all connected parts on
receiving side and connecting C1 directly to RXD grounded through input
impedance resistor ? Now that's inexpensive :)
As for the protection of RXD from spikes, I would consider the built-in
clamp diodes (some microcontrollers have them) together with R2.
I don't think that DCC is suitable because it looks they reverse the
polarity on the rails or some crazy thing. The Siemens ASI seems to be
it. It uses a simple unshielded two wire data+power cable and the
network can be up to 64 slaves each of which can be multiple I/O. Noise
immunity is achieved by superimposing a narrowband sinewave that is
modulated by something called APM= Alternate Pulse Modulation- of just
exactly what-phase, amplitude, or something else-I don't know, but the
slave receivers require crystal timebases. The ASI has been around for
10 years now so that it is well-developed and supported- you can tie it
into almost any other industrial control bus, or PCI, or VME, or
whatever- and there are plenty of chipsets available for building a
product from scratch too. It has quite a bit of protocol overhead so
that custom development would not make sense unless you're building a
compatible product for market- an in-house actuator control bus should
use readily available off-the-shelf modules from any one of dozens of
Yes, I was quite surprised to see that. I had
imagined some sort of dc rail, modulated with
an mf two-tone (or something). Using a full
bipolar switching scheme seems a hard way to
go about it.
However it seems that the model railway market
is all going DCC, so that's the way my pal will
have to go as well.
If you do that, the micro gets something like this on its input:
---- ------- ------------------------
U1 turns that into:
Which is very like the other unit's TXD signal.
If the micro has an ADC you could perhaps do without the U1.
Yes and sold it to someone. The circuit was a little different because we
used an LT1081 to make the signal from the micro bigger and stronger and
attempted to cancel the self signal (the micro hearing its self).
It was about 100% for one side only transmitting. The self signal
cancelation was a bad idea. It is better, if you can, just to only have
one side talk.
How about the following circuit
DC source ----))))))))----------o-------------- To others
or load !
! Micro TXD!---! !
! ! ! ! R3
! RXD!---o------------o----/\/\/----! GND
The high pass filter R2,R3,C should work with reasonable (R2+R3)*C time
constant, i.e. should carry over everything from first harmonic, which
is BR/N, where N = databits+stopbits+startbits.
Let's consider 2 extreme cases, one with all bits ones and one with all bits
zeroes for 8N1.
In case of all zeroes (8N1):
!-! !-! !-!
! ! ! ! ! !
-!-! !-!-!-!-!-!-!-!-!-! !-!-!-!-!-!-!-!-!-! !-
x S x S x S
S = Start Bit
x = Stop Bit
DC component of 1/10th signallig voltage will be stripped
1st harmonic of BR/10 and everything above will be carried over.
Microcontroller will receive correct data. The recessive state will be
In case of all ones:
!-!-!-!-!-!-!-!-!-! !-!-!-!-!-!-!-!-!-! !-!-
! ! ! ! !
-!-! !-! !-!
x S x S x S
DC component of 9/10th signallig voltage will be stripped (too bad)
1st harmonic of BR/10 and everything above will be carried over.
The recessive state will be negative, the dominant state will be slightly
over ground. Microcontroller would not receive correct data unless DC
component is restored.
As for restoring DC component, one example I can think of is if R2
I used a pre-packaged interface card for Fisher Delta-V and field
hardware from peperyl-fuchs. The valves didn't cost any more with ASI
vs solenoids and limit switches. The other expense was the repeater
for long distance ~$500
A reasonable line code is to try injecting frequency division
multiplexed signals over 2 MHz to 10 MHz - transmitting at a quiet
part of the spectrum. At base level: 1 is a sinewave on, 0 is a
sinewave off. A reasonable self-clocking constant rate line code is to
use 1011 as 0 and 1010 as 1. Error correction would be performed by
repeating packets larger and larger number of times in succession
until a successful acknowledgement came back. The baud rate would
depend again on the channel capacity - i.e. the SNR and could vary
from 1 Mb/s down to 100 b/s. Just scan through the frequencies with a
mixer suppressing image response by the phasing method and a suitable
IF strip, followed by the final mixer and ADC. Just scan through the
frequencies for activity. A packet would be bit reversed and be
preceded by a framing preamble and would have a MD5 (or SHA1)
checksum. There would be a 64 bit packet sequence number and a 64 bit
packet type. Acknowledgement packets would give a list of packet
sequence numbers. Acknowledgement packets would be acknowledged. There
would be sliding windows.
That's all you need for a reliable point-to-point link over power -
DEC or AC connections.
"Buses are bosons."