« PreviousContinue »
METHOD AND APPARATUS FACILITATING
COMMUNICATION BETWEEN TWO
KEYBOARDS AND A SINGLE PROCESSOR
FIELD OF THE INVENTION
This inveniion relates to a keyboard arrangement for a computing device and, more particularly, (o an arrangement in which an external key device can be coupled to a computing device having a built-in keyboard.
BACKGROUND OF THE INVENTION
Computing devices of the type commonly called personal computers have been available for over a decade, and typically include a central processing unit which has no alpha-numeric keys but which has a connector, and a keyboard which is physically separate from the central processing unit and which has a cable which can be coupled to the connector of the central processing unit in order to effect an electrical connection therebetween. The keyboard has a plurality of manually operable keys, typically including one set which is similar to a traditional typewriter keyboard, and a further set which controls cursor movement and special functions. This conventional keyboard is relatively lightweight, and many users like to place it in their laps during long computing sessions, while the heavy central processing unit rests on a table or the floor.
More recently, a portable variation of the personal computer has been rapidly gaining popularity and is the so-called "laptop" style, which is relatively compact and lightweight and which typically has a single housing which includes both the central processing unit and a built-in alpha-numeric keyboard. However, the keys for special functions and cursor control are typically not provided as a set of separate keys, but instead are assigned to keys which already serve as keys of the standard typewriter-type set of keys. In order to execute these special control functions, the user must usually use a special control key to tell the system whether the dual function keys are presently being used to control the special functions rather than for their normal purpose, which is relatively cumbersome and inefficient. Further, the weight of a laptop computer is sufficiently large that, despite the "laptop" nickname, it is usually uncomfortable to actually work with it in one's lap for more than a short period of time, and it also becomes uncomfortable if the laptop is placed during extended use on a table or other support surface which is not at a height which is comfortable for using the built-in keyboard.
One commercially available laptop computer, which is shown in FIG. 6 and described in more detail later, has a built-in keyboard, but also has a connector to which can be coupled a custom keypad. A keypad is essentially a portion of a conventional keyboard unit, and typically has only numeric keys and a few keys for special functions and/or cursor control. The custom keypad for this commercially available system has a cable with a plug which can be coupled to the connector on the laptop computer, the connector being intentionally different from that used for conventional keyboards in order to prevent a user from inadvertently plugging in a conventional keyboard unit which this conventional laptop computer is not designed to operate with. Thus, this conventional system solves some but not all of the problems associated with the keys of
the typical laptop computer. Nevertheless, the majority of manual operator functions must still be carried out using the alphabetic keys of the built-in keyboard of the device, with the attendant problems discussed above.
5 Further, the external keypad is coupled by the connector on the laptop computer directly to an internal keyboard processor of the laptop computer, and has to effect all communications with the main processor of the laptop computer through the internal keyboard
It is an object of the invention to provide an improved circuit for facilitating use of a given computing device with two separate input sections which each have a plurality of keys, one of the input sections typi
15 cally being an integral portion of the device and the other being a physically separate unit.
A further object is to provide such an arrangement in which the internal and external input section can include a full typewriter-type set of keys, and in which
*° the external input unit can be either a keyboard having a full typewriter-type set of keys or a keypad having substantially less than a full typewriter-type set of keys, the keys of the keypad augmenting the keys of the inter
25 nal input section.
A further object is to provide such an arrangement in which the external input section can be a conventional and commercially available keyboard unit. The objects and purposes of the invention, including
j0 those set forth above, are met by providing a computing device which includes a processor, an internal input section which is an integral portion of the device and which includes a plurality of manually operable keys, a connector arrangement which can facilitate electrical
35 connection to the device of an external input unit having a plurality of manually operable keys, a selectively actuable switch which can effect and interrupt an electrical connection between the connector arrangement and the processor, and an arrangement for selectively
40 actuating and deactuating the switch.
BRIEF DESCRIPTION OF THE DRAWINGS
A preferred embodiment of the present invention is described hereinafter with reference to the accompany
45 ing drawings, in which:
FIG. 1 is a diagrammatic view of a computing device embodying the present invention, and of an external keyboard unit which can be selectively coupled to the computing device;
50 FIGS. 2-5 are flow charts showing respective portions of a control program executed by a processor which is a component of the computing device of FIG. 1; and
FIG. 6 is a diagrammatic view showing a prior art 55 system.
DESCRIPTION OF THE PREFERRED
Referring to FIG. 1, reference numeral 10 designates 60 a portable computing device of the type commonly referred to as a "laptop" computer. The computer 10 has as an integral portion thereof an internal keyboard 11 which serves as an internal input section and includes a plurality of manually operable keys 12, a plurality of 65 light emitting diodes (LEDs) 13, and internal keyboard processor 14 which detects manual operation of any of the keys 12 and which controls the illumination or nonillumination of each of the LEDs. The keys 12 include
a standard typewriter-type set of keys, some of which can alternatively be used for special functions such as cursor control when a special further key is pressed.
The computer 10 also has a five-pin connector 15 which can be used to connect to the computer 10 an 5 external unit 17 having a plug 18 which can be removably connected to the connector 15 and which is connected through a cable 19 to an external keyboard unit 21. The external unit 17 is preferably a conventional and commercially available unit having 101 or 102 keys, 10 including a full set of typewriter-type keys as well as additional keys for special functions. The keyboard unit
21 has a plurality of manually operable keys 22, a plurality of LEDs 23, and an external processor 24 (EP) which detects manual operation of any one of the keys 15
22 and sends signals representative of the key to the computer 10 through cable 19, and which controls the illumination or non-illumination of each of the LEDs 23 in response to signals from the computer 10.
The computer 10 has a main processor 27 which 20 carries out all of the primary computing functions, and includes a system control processor 28 which facilitates communications between the main processor 27 and the internal keyboard 11 or external unit 17, as described in more detail below. 25
The computer 10 includes an electronic analog switch 36 which has two switch contacts 37 and 38 controlled by a common control line 39 labeled EXTKBD. The control line 39 is the output of a latch 41, the input of the latch 41 being an output line 42 from 30 the internal keyboard processor 14, and the latch control line 43 also being an output of the internal keyboard processor 14. The latch 41 is provided in the preferred embodiment because the output line 42 of the processor 14 is actually used for at least two different purposes 35 within the computer as indicated diagrammatically at 44. Thus, a desired state for the control line 39 is output at 42 and latched into the latch 41 by the line 43, and the latch 41 will thereafter maintain the line 39 in the selected state while the output line 42 is used to carry out 40 other functions. In situations where the output line 42 of the processor 14 can be dedicated exclusively to control of the switch 36, the latch 41 can be omited, and the output line 42 can be connected directly to the switch 36. 45
A bidirectional keyboard data line KBDATA is shown at 46 and is connected to the contact 38 of the switch 36, an input of the processor 14, an input of the processor 28, the outputs of two tri-state buffers 51 and 52, and to one end of a resistor 53 which has its other 50 end connected to a constant d.c. voltage source Vcc. The processor 28 has an output line 47 which is connected to an enable input of the tri-state buffer 51, and the processor 14 has an output line 48 which is connected to an enable input of the tri-state buffer 52, the 55 data input of the buffers 51 and 52 being connected to ground. The keyboard data line 46 is normally maintained at a logic high voltage by the resistor 53, but if either of the buffers 51 or 52 is enabled by the associated processor, the logic low voltage continuously present at 60 its input causes the line 46 to be pulled down to a logic low voltage. Thus, for example, by using the line 47 to alternately enable and disable the buffer 51, the processor 28 can send a string of binary bits serially across the line 46. 65
In a similar manner, a bidirectional keyboard clock line KBCLK shown at 56 is connected to the switch contact 37, an input of the processor 14, an input of the
processor 28, the outputs of two tri-state buffers 61 and 62, and to one end of a resistor 63 which has its other end connected to the constant voltage Vcc. The buffers 61 and 62 also have their data inputs grounded, and their enable inputs connected through respective lines 57 and 58 to the respective processors 28 and 14.
On the opposite side of the switch 36, the contact 38 is connected by a line 71 labeled EXTDATA through an R-L-C network 72 to one pin of the five-pin connector 15. Similarly, the contact 37 of switch 36 is connected by a line 73 through an R-L-C network 74 to another pin of the connector 15, and is also connected to the data input of a tri-state buffer 77 and the data output of a tri-state buffer 78, to one end of a pull-up resistor 81 which has its other end connected to the constant voltage Vcc, and to one end of a capacitor 82 which has its other end connected to ground. The R-L-C networks 72 and 74 filter out radio frequency interference signals (RFI). The enable input of the buffer 77 is connected to ground so as to always enable the buffer 77, and the data input of the buffer 78 is connected to ground. The output of the buffer 77 is connected through a line 83 to an interrupt input of the processor 14, and an output of the processor 14 is connected through a line 84 to the enable input of the buffer 78.
Two further pins of the connector 15 are respectively connected to ground at 86 and to one end of a resistor 87 which has its other end connected to the constant voltage Vcc, to thereby supply electrical power to any external unit 17 which happens to be connected to the connector 15. The remaining pin of the connector 15 is connected through a line 89 labeled SENSE to an interrupt input of the processor 14.
The system control processor 28 controls a requestlo-send line 91 labeled SCPRTS, which is connected to an interrupt input of the processor 14.
As mentioned above, the external unit 17 is preferably one of many off-the-shelf commercially available keyboards, the connector 15 being of the type widely used in the computer industry in association with these keyboards. These commercially available keyboards utilize the four pins of connector 15 corresponding to the lines 71, 73, 86 and 87 in FIG. 1, but have no connection to the pin corresponding to the SENSE line labeled 89 in FIG. 1.
According to the invention, the external unit 17 can alternatively be a keypad, which is similar to a conventional keyboard, except that it has a substantially smaller number of keys, and has an output which is connected to the pin for SENSE line 89 and which is energized whenever a key is pressed in order to indicate that the unit 17 has data to send to the computer 10.
The system control processor 28 and the main processor 27 never really know whether information they receive is coming from the internal keyboard 11 or from the external unit 17. The task of supervising the keyboard 11 and external unit 17 so as to permit each to communicate with the processors 27 and 28 but without interference has been allocated to the internal keyboard processor 14, in a manner described in detail below with reference to FIGS. 2-5. In order to avoid confusion, the following discussion will first explain what happens when there is no external unit 17 connected to the computer 10, will then explain what happens when the external unit 17 which is a keyboard is connected, and will thereafter explain what happens when an external unit which is a keypad is connected.
FIGS. 2-5 are flow charts representing respective portions of the program executed by the processor 14. Referring to FIG. 2, following system power-up at block 101, control proceeds to block 102 where the processor 14 uses the output lines 42 and 43 to set the 5 latch 41 so that line 39 closes both contacts 37 and 38 of the analog switch 36. Further, the processor 14 enables the interrupt input for line 83, which corresponds to the external clock line 71 labeled EXTCLK. Following power-up, any external unit 17 connected to the com- 10 puter 10 will automatically attempt to send an identifying code to the computer 10. (This is inherent in conventional devices of this type). Consequently, at block 103, the processor 14 checks to see whether there is any interrupt on the EXTCLK line 73, which will be the 15 case if an external unit 17 is connected to the computer 10. Assuming for the moment that no external unit 17 is connected, there will be no activity on the line 73, and the processor will thus proceed to block 106, where it will enable interrupts on the SCPRTS request-to-send 20 line 91 from the processor 28. Then, at block 107, the processor 14 will check to see if any keys 12 of the internal keyboard 11 have been pressed. If none have been pressed, it will repeatedly execute the block 107 until one of the keys 12 is pressed. When a key 12 is 25 pressed, the processor 14 proceeds to block 108, where it checks to see whether an external keyboard active flag has been set. As described later, the processor 14 sets this flag when it receives data from an external unit 17 due to one of the keys 22 having been pressed, and 30 clears the flag when one of the keys 12 of the internal keyboard 11 is pressed. Thus, this particular flag essentially indicates whether the key most recently pressed was on the external unit 17 or internal keyboard 11. Since it is being assumed for the moment that there is no 35 external unit 17, the flag will not be set and the processor will therefore proceed to step 111, where it will transmit data representing the particular one of the keys 12 which has been pressed to the system control processor 28 by sending the data through line 48, buffer 52, 40 and line 51, and by sending a clock signal through line 58, buffer 52 and line 56 so that the processor 28 is notified of the incoming data and can accept it in a synchronized manner. Thereafter, the processor 14 returns to block 107, where it waits for another key 12 45 to be manually actuated.
Occasionally, the processors 27 and 28 will need to send data to the keyboard 11 or to the external unit 17, for example to change the state of illumination of one of the LEDs 13 or one of the LEDs 23. Internal processor 50 14 normally accepts this data for use by the internal keyboard 11, except when the last key pressed is on an external unit 17 which is a keyboard. If the external unit is a keypad, the data from the processor 28 is routed to the processor 14 rather than to the external keypad. 55
In particular, when the processor 28 wishes to send such data, it sends a signal on the request line SCPRTS, which interrupts the processor 14 and causes it to execute the interrupt routine shown in FIG. 3. In particular, the routine is entered at block 112, and at block 113 60 the processor checks to see whether it has previously set a keypad flag in order to indicate that an external unit is present and is a keypad. Still assuming there is no external unit, the processor will proceed to block 116 and check to see whether the keyboard active flag is set 65 and thus indicates that there is an external unit 17 which is a keyboard and that the last key pressed was on the external unit 17. Still assuming there is no external unit.
the processor will proceed to block 117, where it uses line 84 to drive the EXTCLK line 73 to a logic low voltage. If there were an external unit, this would cause it to temporarily buffer keystrokes as a result of the inherent design of such conventional units. Then, still in block 117, the processor 14 opens contacts 37 and 38 of the analog switch in order to disconnect any external keyboard which may be present from the data and clock lines 46 and 56 so that it is impossible for the external unit to receive the transmission which the processor 28 is about to output. The processor 28 then carries out its output operation using the lines 47 and 57, and the processor 14 accepts the information and uses it in an appropriate manner, for example to control the LEDs 13. Then, the processor 14 closes the contacts 37 and 38 of the analog switch 36, and releases the EXTCLK line 73 in order to permit an external keyboard 17 (if any) to transmit any keystrokes that it may have buffered. Then, at 118, the processor 14 returns to the point at which it was interrupted, which will be in the loop containing blocks 107, 108 and 111 in FIG. 2.
Turning now to the situation where an external keyboard unit 17 is connected to the connector 15, the processor 14 will proceed following power-up in block 101 of FIG. 2 through block 102 to block 103, where it will find that there is activity on the EXTCLK line 73 because the external keyboard 17 is automatically outputting an identifying code. Therefore, the processor will proceed to block 121 where it accepts this code, and w ill then proceed to block 122 where it checks the code in order to see whether it is identifying a keyboard or keypad. Here, it will identify a keyboard, and the processor 14 will proceed to block 123, where it will set the external keyboard flag in order to indicate that an external keyboard is present, and will set the external keyboard active flag in order to indicate that the external keyboard will be treated as the active or primary keyboard until such time as one of the keys 12 of the internal keyboard 11 is pressed. The processor 14 will then proceed to block 106 and then block 107, where it repeatedly checks to see if any of the keys 12 of the internal keyboard 11 have been pressed. If one of the keys 22 of the external keyboard 21 is pressed at this time, the external keyboard 21 will make an appropriate transmission through the connector 15 to the lines 71 and 73, as a result of which the line 73 will, through buffer 77 and line 83, interrupt the processor 14 and cause it to execute the routine shown in FIG. 4.
More specifically, referring to FIG. 4, processing begins at block 125, and at block 126 the processor waits for any transmission it may be making to the processor 28 to reach completion. Then, at block 127 the processor 14 checks to see if the external keypad flag is set to indicate that there is an external unit which is a keypad. Here, since the external unit is assumed to be a keyboard rather than keypad, the processor proceeds to block 128 and checks to see if the external keyboard flag is set to indicate there is an external keyboard. If the external keyboard flag is not set at this point, that means that the external unit 17 was not present when the computer 10 was powered up and has just been plugged in, and the processor 14 will proceed to block 131 where it sets the external keyboard flag, and will then return at block 132 to the point at which it was interrupted in the routine of FIG. 2. On the other hand, the usual situation at block 128 is a determination that the external keyboard flag is already set, and the processor 14 will thus proceed to block 133 where it sets the external keyboard active flag