On Jan 29, 2008, at 12:57 PM, Eric J Korpela wrote:
Next, there's a token ring where all of the
outputs are connected to
all of the inputs, except perhaps not the input on the same machine.
For 64 machines you're going to need external electronics to clean up
the signals, since I doubt that a single output can drive 64 inputs.
There are various chips available these days which are intended
for clock distribution applications that may help to address this
problem.
The other potential problem is connecting inputs
together. You are
going to need to prevent non-transmitting inputs from frying
themselves probably by tristating any input on a machine that doesn't
have the token. Even if you have them tristated you are going to want
current limiting protection so you don't blow out the ports when a
problem happens. I doubt that the C64 serial ports are specified to
survive having multiple transmitters on the same line.
...or use open-drain drivers with pullup resistors to achieve a
"wired-OR" configuration. Since each driver will only be able to
force a low, there will be no contention at that level. That'd be
trivial to do with a 2N7000 MOSFET or similar. The only thing to
watch out for (that I can think of) is that the gate capacitance of
the MOSFET will limit your switching speed. (Tony taught me that
many years ago, in the context of driving IR LEDs for comm
applications...thanks Tony!)
That circuit would amount to one (cheap, available by the bagful
on eBay) transistor for each node, and one pullup resistor for the
whole ring.
For protocol, I'd go with a modified SLIP, since
it's well specified,
small enough to implement on an 8 bit processor, includes appropriate
escape characters, the code is everywhere and it's easily modified.
We've used it for serial buses on spacecraft.
I like this idea. It also brings with it the possibility of
attaching another (non-C64) computer as a "test node" to access the
network.
-Dave
--
Dave McGuire
Port Charlotte, FL