Since it's a C64, I assume that the ports are polled rather than
interrupt driven I/O? Flow control might be a problem if these
machines are doing other things at the same time.
I see two potential architectures....
The easiest is a ring with packet forwardings. Each machine has its
output connected to one machine and its input connected to another.
This is probably the simplest hardware wise and software wise. It's
also the slowest. When a packet comes in, its destination address is
checked against the current machines address. If it doesn't match, it
is forwarded to the next machine. No collision detection is
necessary. One potential problem is that a packet with a bad address
can circulate forever unless you have a way of detecting it.
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.
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.
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.
On Jan 28, 2008 7:30 PM, Jim Brain <brain at jbrain.com> wrote:
Sellam wants to finish the 64 c64 cluster for the next
VCF. I've been
researching ideas for communicating among the machines, and the best
ideas point to using the two synchronous serial ports on the user port
(low wire count, transfers at 250kbps).
But, I have grawn a complete blank on plans for a true peer to peer
(token based or otherwise) networking protocol. Everything I see is
master/slave. RS485 material talks about the hardware layer, but there
is no detail on the protocol layer.
I would think this would be a well researched and innovated area, low
speed communication without a master node. Anyone have any pointers for
things to look into?
Jim