The PC sends a command out to the first PIC. The PIC checks if this command is meant for it. If not, it passes it on to the next PIC in line.
The PC serial port is connected to a 2 line bus. Any PIC on this bus reads the PC Tx line but keeps the PC Rx line floating. The PC sends out a command on this bus. All PICs receive it but only the PIC with the correct address responds to the command. If the command is a poll command, that PIC drives the PC Rx line, sends data back to the host and goes back to the floating state after transmission.
Bus Daisy Chain
------------------------------ -------------------------------
Pro Only 2 I/O lines used Con 4 I/O lines used
Pro Handle 1 serial port Con Handle 2 serial ports
Con Pre-assigned addresses Pro Dynamic address setting
Pro In high traffic, active Con In high traffic, all
units lose data units downstream lose data
Pro No transmission delay Con 1 char delay per unit
Con Polled Input Pro Vectored input
Pro Bus simpler to wire Con Chain harder to wire
Pro One bad unit may just Con One bad unit will cut
leave the bus alone off all units downstream
Con With large no. of units Pro Time and traffic kept
lot of time and bandwidth to minimum
is spent polling
The polling approach was adopted. The simpler wiring can allow
controllers to be scattered around the layout. Adding and removing
controllers will not disturb the wiring. I/O pins on a PIC are
a scarce resource and the bus uses only 2 instead of 4 I/O pins.
The system will be a little less responsive to controllers sending
information back to the host but output functions seem to predominate
in a layout. Most controllers don't have much to say.