perm filename SERIAL.DOC[KBD,ROB]2 blob sn#448062 filedate 1979-06-05 generic text, type C, neo UTF8
COMMENT āŠ—   VALID 00007 PAGES
C REC  PAGE   DESCRIPTION
C00001 00001
C00002 00002	Writeup on the Micro Switch Keyboard Serialzers
C00003 00003	Functional description
C00005 00004	Physical characteristics
C00007 00005	Electrical characteristics
C00008 00006	Signal definitions
C00011 00007	prototype notes:
C00015 ENDMK
CāŠ—;
Writeup on the Micro Switch Keyboard Serialzers

	**** WARNING ****

As of 27-May-79, the prototype is still being built, and the information
contained herein does not neccessarily reflect the way the Keyboard
Serializers will end up.

Functional description

The Keyboard Serialzers take the 9 bits of parallel data from the Stanford
Micro Switch keyboards (10 bits if you count the keyboard strobe), and
transmits this data as two 8-bit bytes on a serial line.  Whenever a key
is pressed that generates "KBDSTROBE", a sequence starts which transmits
first a byte containing the "Bucky bits" (Control, Meta, Shift, and Top
keys), followed by a byte that has the actual key data.  This data goes
out over a two-wire, electrically floating, passive current loop.

In addition, the device can receive data from the host computer.  Whenever
a chararacter (ANY character, in fact) is received, the serializer
transmits the state of the keyboard, just as if "KBDSTROBE" had been
generated.  Thus, the computer can find out what keys are pressed at any
time (called "Spacewar Mode" for reasons which date back to the game of
the same name).  Note that if more than one key is pressed, the logical OR
of the bits are read in.

Physical characteristics

The Keyboard Serializers are built on a printed circuit board and mounted
inside of the Micro Switch keyboards.  They ride "piggyback" on the
existing circuit boards, and connect to them via a short edge-card
connector jumper cable.  The serializer provides power to the Micro Switch
keyboard circtuitry through this jumper.

Another edge connector on the serializer board connects to the I/O cable.
This cable provides power (5 volts) and ground, and two pairs of current
loop signal (on transmit and one receive).

A serialzer consists of a PC board, 6 packages of SSI TTL, one UART, 2
opto-isolators, a handful of diodes and resistors, and a short jumper
cable to interconnect the existing Micro Switch keyboard circuitry and the
serializer.

Electrical characteristics

Signal definitions

Here is a list of the signals used in the keyboard serializers:

BHI	  Logical HIGH signal used whenever a TTL signal needs to be tied to HIGH.
BYTESEL	  Low means first byte selected (bucky bits), high means second byte
	  selected (data bits).
CHRRCVD	  A character has been received from the host (send a character in 
	  spacewar mode).
CLRCVA,B  Current Loop ReCeiVe, lines A and B.  These are floating (optically
	  isolated), and passive (need to be driven from an active driver).
CLXMTA,B  Current Loop XMiT, lines A and B.  These are floating (optically
	  isolated), and passice (need to talk to an active receiver).
CTRL	  "Control" key from keyboard.
DONE	  Come true when the second byte has been loaded in the UART for 
	  tranmission.
GND	  Logical LOW.
KBO0-KBO5 Data bits direct from the keyboard.
KBSTROBE  Comes high when any key is pressed, and valid data appears on KBO0-5.
META	  "Meta" key from keyboard.
MRCLOCK	  MasteR CLOCK, runs at 16 times the baud rate.
PWR	  Illogical HIGH, +5V, used to power the chips and current loop converter.
SHIFT	  "Shift" key from keyboard.
THREMPTY  Transmitter Holding Register EMPTY, the UART is ready to have a character
	  loaded into it for transmission.
THRLOAD	  When true, data is latched into the Transmitter Holding Register.  On
	  the transition from true to false, the data is strobed into the
	  Register (if no character is currently being transmitted).
TOP	  "Top" key from the keyboard.
WAITER	  When true, we have just loaded a character into the Transmitter
	  Holding Register, and better not switch the Byte Select or anything
	  silly like that.
XMTRQST	  Means that there is a request to transmit a character, either due
	  to a keyboard strobe or character received from the host.

prototype notes:

This is where some signals are found

name	PC board loc	BURNDY loc	Prototype
	(note 1)	(note 2)	(note 3)
PWR	 2		A		AA1		(+5V, .9A)
GND	 1		B,U		AT1		( 0 V)
STROBE	12		b		AB1		(note 4)
META	 J		N		AC1		(note 5)
CTRL	 L		M		AD1		(note 5)
TOP	 K		L		AE1		(note 5)
SHIFT	 N		K		AF1		(note 5)
B5(msb)	 9		J		AH1		(note 6)
B4	10		H		AJ1		(note 6)
B3	11		G		AK1		(note 6)
B2	 5		F		AL1		(note 6)
B1	 6		E		AM1		(note 6)
B0(lsb)	 7		D		AN1		(note 6)
MRCLOCK	 -		-		AF2		(note 7)
CLXMTA	 -		-		AB2
CLXMTB	 -		-		AC2
CLRCVA	 -		-		AD2
CLRCVB	 -		-		AE2


note 1:	 The PC board loc refers to the PC edge connector inside the
	 Micro Switch keyboard AND the serializer.  The serializer
	 board will be mounted inside the Micro Switch keyboard
	 enclosure, and a jumper cable will interconnect the two PC
	 boards.  Fingers A:N are on the component side of the boards,
	 fingers 01:12 are on the solder side.

note 2:	 The BURNDY loc refers to the pin on the 38 pin Burndy
	 connectors currently in use (5-Jun-79).  Their function will
	 be replaced by the serializer, and thus they will be replaced.
	 This info is really only for hooking up the prototype.

note 3:	 The Prototype loc refers to the location on the DEC-style
	 wire-wrap panel on which the prototype serializer is (was)
	 built.  It will be flushed even sooner than the BURNDY
	 connectors (I hope).

note 4:	 Notice that I really mean lower-case "b" for STROBE on the
	 BURNDY connector.

note 5:	 These signals need a 380 ohm pull-up resistor to +5.  They
	 are LOW-TRUE signals as originally implemented, and will
	 probably remain that way (ie, META of 0V means the META key is
	 pushed).

note 6:	 Throughout this documentation, the data bits are numbered B0
	 to B5 (B0 is the least-signigicant bit).  The Micro Switch
	 documentation numbers them B1 through B6.  Beware when looking
	 at their documentation.

note 7:	This signal appears only on the prototype - it will eventually
	be generated by the serializer.