[A83] Re: calculator networking - good idea?
[Prev][Next][Index][Thread]
[A83] Re: calculator networking - good idea?
> Unfortunately it's impossible on the 83. The only way to synchronise the
> two sides is using hand-shake signals, as there is no timer available.
> (Let's forget about the timer interrupt for now, it's neither precise nor
> fast enough for such purposes...)
>
> PG
Could someone critique my logic and tell me if there is anything wrong with
my plan?
>From my concept design in progress, a calculator that wishes to send data to
one other calculator would first send an 'initiate' packet:
[ Both lines would be held low for a predetermined delay, then the handshake
line brought high for a predetermined delay. Subsequently, falling edges of
the handshake signal would indicate a valid bit on the data line, and the
bit will remain valid until the handshake line goes high. The speed of the
handshake pulses is required to be less than 4000? bps, but the speed loss
is justified considering all calculators must be able to keep up with the
handshake signal and that the initiate packet will be only 5-6 bytes long.]
After the 'initiate' packet:
[Sending calculator brings handshake line low, and waits for data line to be
brought low by receiving calculator. If the data line isn't brought low
after a predetermined timeout, abort: receiver is not responding. If
receiver responds, continue transfer using TI's link protocol which offers
highest possible speed.]
Collision detection:
[When the sending calculator is in any delay loop in its sending routine, it
samples the link port to verify that signals are as they should be. If a
line controlled by the sending calculator is low when the calculator is
outputting a high on that line, then abort (the other calculator that is
trying to send cannot detect the collision). According to open-collector
hardware, a calculator can output a high on a line, but the line can still
be logically low if at least one other calculator pulls that line low.]
I think that this solves problems related to synchronization, wiring, etc
that we have discussed. We cannot wire in a circle because any calc on the
circle busy at the time of a transmission will bring the network to a halt.
We cannot use timing to determine when to sample the data lines, because the
83 contains no reliable timing device. And collision detection is provided
by making use of open-collector hardware.
Jeff
Follow-Ups:
References: