Tri-state function indicator
RELATED APPLICATIONS 
     This application is related to the following applications filed on even date herewith, the disclosure of which is hereby incorporated by reference. These applications contain, at least in part, common disclosure regarding an embodiment of a peripheral repeater box. Each, however, contains claims to a different invention. 
     Peripheral Repeater Box Ser. No. 085,097 
     D.C. Power Monitor Ser. No. 085,095 
     Method of Changing Baud Rates Ser. No. 085,084 
     System Permitting Peripheral 
     Interchangeability Ser. No. 085,105 
     Communications Protocol Ser. No. 085,096 
     Method of Packetizing Data Ser. No. 085,098 
     BACKGROUND OF THE INVENTION 
     This invention relates to computer systems in general and more particularly, to a tri-state function indicator particularly useful in a computer system. 
     In large computer systems, and particularly in systems which provide graphics displays, a plurality of different types of peripheral devices for providing input to the computer system are provided. For example, a single system may have as inputs a keyboard, a mouse, a tablet, a light pen, dial boxes, switch boxes and so forth. In a system with a plurality of such peripherals it is advantageous to have a device which can collect inputs from each of these peripherals and then retransmit the various inputs over a single line to the computer system. Such a device is referred to herein as a peripheral repeater box in that it acts as a repeater for each of the individual peripherals. 
     Preferably, a peripheral repeater box of this nature, which will include its own processor, will be capable of running various levels of self test. Some indication should be given of the status of the peripheral repeater box, i.e. whether it is in a test mode or in an operating mode. Similar requirements for indicating status are found in other systems, particularly computer systems. 
     SUMMARY OF THE INVENTION 
     The present invention provides such a function indicator. The function indicator is disclosed in the setting of a peripheral repeater box. It will be recognized, however, that the tri-state function indicator of the present invention is equally applicable in many other settings. 
     The Peripheral Repeater box (PR Box) of the present invention is, first of all, used to allow the peripherals to be powered at the Monitor site. The PR box collects the various peripheral signals using, a conventional RS-232-C or RS-423 connection, from seven peripheral channels, which are then packetized and sent to a host, e.g. a computer and/or graphics control processor, using RS-232-C signals. Transmissions to the peripherals are handled in a like manner from the host, i.e., receiving packets from the host, unpacking the data and channeling data to an appropriate peripheral serial line unit (SLU). 
     The peripheral repeater box of the present invention is particularly suited for use in a graphics system of the type disclosed in copending Applications Ser. Nos. 084,930 and 085,081, entitled Console Emulation For A Graphics Workstation and High Performance Graphics Workstation, filed on even date herewith, the disclosure of which is hereby incorporated by reference. 
     In addition to providing a multiplexing/data concentration function for the peripherals, the PR box also implements a self-test check on its own logic (performed on power-up and on command request) and an external loopback function for manufacturing testing. The manufacturing test mode, which is an extended version of self-test, operates when the manufacturing jumper is detected in circuit. When in this mode the self-tests run continuously unless an error is detected at which time it will loop on the failing test. This mode requires a special loopback module. 
     A function LED and a group of 8 diagnostic LEDs are located on the back panel of the PR Box. The function LED is utilized to indicate which state the PR box is in, i.e., the function being performed. The current error status, if any, is reflected in the diagnostic LEDs. The diagnostic LEDs are also available to the host to provide additional status information in the case where the graphics system is unable to display messages on its video display. A command is available to the system by which to write an error code to the diagnostic display. In accordance with the present invention, the function LED is a tricolor LED permitting indication of one of three states of conditions of operation. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     FIG. 1 is a block diagram of a computer system in which the PR box of the present invention may be used. 
     FIG. 2 is a basic block diagram of the PR box of the present invention. 
     FIG. 3 is a schematic diagram of the function indicator LED of the present invention. 
     FIGS. 4A-C a flow diagram of the firmware running in the PR box of the present invention. 
    
    
     DETAILED DESCRIPTION 
     System Overview 
     FIG. 1 is a block diagram of a computer system showing where the peripheral repeater box of the present invention fits into the system. The illustrated system is a graphics system. However, the present invention is applicable to other computer systems. Thus, there is illustrated a monitor 11 which receives video input from a RGB coax 13 which is coupled to computing apparatus 14 which does the graphic computations. Included in apparatus 14, as illustrated, is a graphics engine or graphics processor 15, a main computer 17, e.g. a Vax 8250 system, and a computer 19 acting as a control processor, which may be a Microvax computer. Computer 17 is host to computer 19 and computer 19 is host to the PR box 21 described below. Thus, hereinafter, where reference is made to a host, the reference is to computer 19. The operation of this part of the system is more fully described in Applications Ser. Nos. 084,930 and 085,081, entitled Console Emulation For A Graphics Workstation and High Performance Graphics Workstation, filed on even date herewith. The peripheral repeater box 21 is illustrated in FIG. 1 along with the various peripherals which may be plugged into it. These include a keyboard 23, a mouse 25, a tablet 27, knobs 29, i.e. a dial box, buttons 31, a spare RS232 channel 33 and a spare keyboard input 35. 
     The peripheral repeater box is a selfcontained microprocessor system which, in the illustrated embodiment, is located underneath the monitor. It is responsible for handling information flowing between the host and peripheral devices. This is a free running sub-system that performs a self-check of its own internal status at power up. After completing this task it initializes itself and continuously scans for activity from the host or peripherals. 
     Four peripheral channels (for keyboard 23, mouse 25, tablet 27 and knobs 29) and one command channel (for communications with the host) are provided to connect all the supported peripherals. In addition three spare channels for future expansion or special peripherals, e.g. the spare keyboard 35, button box 31, and spare 33 of FIG. 1 have been provided. 
     The sub-system is composed of a minimal system as shown in FIG. 2. Thus, there is illustrated an 8031 microprocessor CPU 41 which, in conventional fashion, has a associated with it a clock/reset unit 43 with a 12 mHz crystal oscillator. Coupled to the 8031 CPU is a conventional control decode block 45 which couples the CPU to a bus 47. Bus 47 couples the CPU to memory 49 which includes 16K of RAM 51 and 8K of ROM 53. The 8031 has no on chip ROM and insufficient on chip RAM. For this reason, the 8031 is used in an expanded bus configuration utilizing three of the four available general purpose ports for address, data and control. These are coupled through block 45 to bus 47. Enabling the external addressing capability for the expanded bus configuration is accomplished by grounding (through a jumper) the EA, external access, pin. 
     The low order address and data are multiplexed on the 8031, the address is latched during address time with a 74LS373 Octal latch strobed via the ALE (address latch enable) signal output from the 8031. 
     Bus 47 is also connected to a diagnostic register 55. Diagnostic register provides an output to a display 57 comprising 8 LEDs. Also coupled to bus 47 is a function register 59 which provides its output to a tricolor LED 61 to be described in more detail below. Also shown in FIG. 2 is the DC power monitor 63 which provides its output to a bicolor LED 64 to indicate under or over voltage conditions as explained in detail below. 
     Bus 47 also connects to Serial Line Units (SLU) 0-7 along with a modem control contained in block 62. Block 62 is what is known as an octal asynchronous receiver/transmitter or Octalart. Such a device is manufactured by Digital Equipment Corporation of Maynard, MA. as a DC 349. Basically, the Octalart comprises eight identical communication channels (eight UARTS, in effect) and two registers which provide summary information on the collective modem control signals and the interrupting channel definition for interrupts. Serial line units 0-6 are coupled to the seven peripherals indicated in FIG. 1. SLU 7 is the host link shown in FIG. 1. The outputs of the SLUs are coupled through transceivers 69, the outputs of which in turn are connected to a distribution panel 71 into which the various connectors are plugged. Block 69 includes EIA Line drivers, 9636 type, operating off a bipolar supply of +/-12 volts which translate the signals from TTL levels to a bipolar RS-232-C compatible signal level of approximately +/-10 volts. 
     The host channel (SLU 7), keyboard channel and spare channel do not have device detection capability. The other five channels have an input line that is connected to the DCD (Data Carrier Detect) pin of the corresponding SLU of the Octalart 62. When the pin is at the channel connector side is grounded the input side of the Octalart is high indicating that a device is present on that channel. 
     A data set change summary register in block 62 will cause an interrupt if the status of one of these pins changes, i.e. high to low, or low to high level change. This indicates a device being added or removed after the system has entered operating mode. On power up the 8031 reads this register to determine which devices that have this capability are connected and enter this information into a configuration byte (a storage area in software) and is sent to the host as part of the self test report. This capability permits knowing which peripherals are connected to which ports and thus allows interchangeability of peripherals. The PR box, each time a peripheral is plugged in or unplugged, sends a message to the host allowing it to interrogate a peripheral and update a table which it maintains. 
     In the free running operational mode the PR box accepts data packets from the host through SLU 7 and verifies the integrity of that data. If the data is good then the PR box sends an ACK to the host, strips out the data or command from the packet and channels it to the designated peripheral through its associated SLU. If the data is bad, i.e. checksum error, the PR box sends a NAK to the host to request a re-transmission and throws away the packet it had received. These communications are described in detail below in connection with FIGS. 5C through 11C. 
     The PR box can also receive commands to test itself and report status/configuration to change the diagnostic LEDs and to change baud rates while in operational mode. 
     Self-test mode verifies the integrity of the microprocessor sub-system. After termination of the internal loopback of the Octalart, the sub-system will re-initialize itself and return to operational mode. Self-test is entered on power-up or by receipt of an executed self-test command from the host. This will check the functionality of the PR box logic. 
     An internal loopback sub-test is provided in the self-test, allowing the system to verify the integrity of the PR box logic under software control. While the self test is in operation there is no logical connection between the host and the PR box. This is true only during self-test. There is no effect on the peripherals when the PR box is running the internal loopback portion of self-test because no data is output at the transmit pins of the UART lines in Octalart 67. Additionally data coming in from the peripherals will have no effect on the PR box during loopback test since all data at the UART receive pins of Octalart 67 is ignored. 
     External loopback testing may be performed on an individual peripheral channel using the appropriate loopback on the channel to be tested. This is done from the host firmware. The peripheral repeater is transparent from this operation. This is the testing, explained further below which allows peripheral interchangeability. 
     A manufacturing test moded is provided by a jumper in the host channel loopback connector. This jumper is sensed on an 8031 on the power-up. In this mode the module runs all tests (as in self-test) on all channels and a device present test, and an external peripheral channel loopback test, continually. Loop on error functionality has been implemented to aid in repair. 
     The eight bit diagnostic register 55 with eight LEDs 57 attached provides the PR box status and some system status, (assuming some basic functionality of the main system). This register is used by the PR box to indicate its dynamic status during self-test or manufacturing test, to indicate, on entry to operational mode, any soft or hard error that may have occurred. The MSB, (bit 7) is used to indicate that a PR box error has occurred, bit 6 is used to indicate that a system error is displayed. If bit 6 is lit then the error code displayed is the system error, regardless of bit 7. This leaves 6 bits for providing encoded error responses. 
     The Function Monitor 
     As shown in FIG. 2, a tristate LED 61 is connected to the output of two bit function register 59. This is used to give visual indication of what mode or function the PR box is performing at that time. 
     
         ______________________________________                                    
LED Indication Description                                                
______________________________________                                    
Yellow         Self-test mode being executed                              
Red            Manufacturing test being                                   
               performed                                                  
Green          Operational mode active                                    
______________________________________                                    
 
    
     The circuit for driving, function indicator LED 61, is illustrated in FIG. 3. Register 59 indicates which function the PR box is currently performing, i.e. self-test, operation or manufacturing modes. It is a two bit register made up of a 74LS74 dual D type flip flop using 2 bits of a 74LS244 driver for read back. Each flip flop in the register has both a noninverted and an inverted output. Thus, the bit 0 flip flop provides a mode 00L signal and a mode 00H signal and the bit 1 flip flop a mode 01L signal and a mode 01H signal. The read back function has been added so that correct operation of the register hardware, exclusive of the LED can be checked automatically by the self-test software. The function is indicated by a single bicolor LED 61 operated in a tristate mode to produce three discrete colors. 
     A clock signal is provided as an input to a four-bit binary counter 201 to provide a divide by 16 clock output on output line 203. The output on line 203 is provided as an input to a second four-bit binary counter 205 where the signal is again divided by 16 to obtain a clock of approximately 19 KHz. Both counters 201 and 205 are cleared by a power up signal on line 207. 
     Signals mode 00 low and mode 01 low from function register 59 are provided as inputs to a Nand gate 209. Mode 00 corresponds to bit 1 and mode 01 to bit 2 of two bit register 59. Similarly, signals mode 01 low and mode 00 high are provided into a Nand gate 211. Mode 01 high is provided as an input to a Nand gate 213 which has as its second input the output of the binary counter 205. The output of this gate is the clock input to a D-type flip-flop 215. The &#34;1&#34; output of flip-flop 215 on line 217 is coupled as one input to Nand gate 219. The &#34;0&#34; output on line 220 is coupled as one input to Nand gate 221. These gate comprise a 75452 dual peripheral driver. The second input to Nand gates 219 and 221 is a three volt signal. The output of Nand gate 219 on line 223 is coupled to the red cathode of a bicolor LED 225. Similarly, the output on line 227 is coupled to its green cathode. Each of the cathodes is powered by plus 5 volts through resistors 229 and 231 respectively. These are open collector devices and thus the power for the LED is provided through the two resistors 229 and 231 tailored to operate the two LED sections at the same optical luminescence. Note that the heavier peripheral driver is required since, regardless of which LED is enabled, current flows through both resistors at all times. 
     In operation, if both modes 00 and mode 01 are low, the output of gate 209 will be a logic &#34;1&#34; and the flip-flop 215 will be preset thereby providing an output on line 217 which is coupled through Nand gate 219 to energize the red cathode of diode 225. If mode 01 is low and mode 00 is high an output from gate 211 will cause flip-flop 215 to be cleared and an output on line 221 will result causing the green cathode to be energized. If mode 01 is high then the clocking signal will be provided at the output of gate 213. Because mode 01 is high, neither Nand gate 209 or 211 will provide an output to cause the flip-flop 215 to be preset or cleared. In a D-type flip-flop, the clock signal will cause whatever is at the D input to be transferred to the &#34;1&#34; output. The D-input is tied to the &#34;0&#34; output on line 221. Thus, if, for example, line 221 is &#34;0&#34;  then the &#34;0&#34; will be transferred to the &#34;1&#34; output on line 217 at which point line 221 will come to a logic &#34;1&#34; level. On the next clock cycle this logic &#34;1&#34; will be transferred to the &#34;1&#34; output on line 217. As a result, the red and green cathodes will be alternately energized and, because of the clock rate, it will appear to the observer to be the color yellow. 
     PE Box Operation Overview 
     The PR box ROM 53 contains self-test and operational firmware. This firmware is contained in 4K bytes of ROM, though there is 8K bytes reserved for it. A listing of the firmware is set out in Appendix A. A flow diagram for the firmware is set out in FIGS. 4 and 4 A-C. 
     On power-up indicated by block 301, the on board diagnostics will have control of the PR box as indicated in block 303. The diagnostics will perform tests on the PR box logic and do an external loopback and test if pin 7 on the 8031 port 1 is grounded (signifying manufacturing mode). In manufacturing mode the diagnostics will loop forever via loop 305 and not go into operational mode. This is done via detection of the loopback connector (pin 7) on power up. If an error is encountered during manufacturing mode, the diagnostics will loop forever on the test that encountered the error. 
     Registers 55 and 59 with LEDs 57 and 61 (see FIG. 2) attached can be viewed from the outside of the system box. Diagnostic register 55 as noted above is 8 bits wide with Red LEDs. These LEDs report errors for the PR box and/or the system. As also described, the function register 59 is two bits wide with a single red/yellow/green LED. When in manufacturing mode, the function LED is red as indicated in block 303. On power-up, during other than manufacturing mode, the function LED will be yellow. In operational mode it will be green. 
     The various tests performed on power up are indicated by blocks 307-314. If in manufacturing mode, as checked in block 315 of FIG. 5B, the test of blocks 316 and 317 are also performed before entering block 318 to loop 305. 
     If, on power up, the PR box has an error that will make the PR system unusable, i.e. interrupt, 8031 errors, the function LED will stay yellow, an attempt to put the error code in the diagnostic register will be made, and the PR box will not go into operational mode. 
     If there are no errors or errors that will not make the system unuseable, and the system is not in manufacturing mode, path 320 will be followed to block 401 of FIG. 4C and the function LED will turn green and wait for the host to ACK/NAK, the diagnostic report to establish the link between the host and the PR box. If the link is never established, the error code for NO host is placed into the diagnostic LEDs, and the PR box will go into operational mode. If the communications link is later established, the error code will be cleared. 
     If there are soft errors (diagnostic register or function register) the PR box will go into operational mode of FIG. 4C and carryout the background process. However, any LED indication may be incorrect. Except for a dead system, i.e. 8031 failures, the PR box will attempt to go operational mode, displaying , if possible, the point at which it failed the self-test, (test number). 
     After the power-up diagnostics have been completed, control is passed to the operational firmware. In this mode, the firmware will keep the link between the host and the PR box active, and mux/demux commands/data between the peripherals and the host. This operation is described in detail below. 
     The diagnostics/operating system of this system are ROM based and run out of the 8031 microprocessor. The PR box firmware is compatible with the existing peripherals, and adheres to a communications protocol developed for the host PR box link discussed below. 
     The diagnostics are the first part of the firmware to run on power-up of the PR box. The diagnostics leave the system in a known state before passing control to the operating firmware. Upon completion of testing the PR box, the system RAM 51 is initialized, queues are cleared, the UARTs in Octalart 67 are set to the default speeds and data formats, the diagnostic and mode registers 55 and 57 are set with the appropriate values, and a system status area is set up that contains the status of the PR box. 
     Once the diagnostics are complete, the diagnostic report is sent to the host, and the PR box goes into operational mode. If there are no other messages to send, the PR box will wait 10 seconds for an ACK/NAK before placing an error code for &#34;No communications link&#34; into the diagnostic register 55. An ACK/NAK timer is provided for all other packets and times out at 20 mSec. Once operational, the UARTS are enabled to allow communications between the peripherals and the host. A keep-alive timer is also enabled in order to keep the host link active. ##SPC1##