Bidirectional programmable I/O driver

Abstract: A current driver (10) is disclosed that includes an array of current buffers (80) and a program control circuit (12). The program control circuit (12) responds to an externally generated programming signal to generate buffer direction control, daisy chain configuration control, and tristate control signals. The buffers of the array of current buffers (80) are individually programmed by the direction control and the daisy chain configuration control signals to transmit data in one of a forward and reverse direction and to daisy chain a buffer (80) to a preceding buffer (80), respectively. The array of current buffers (80) is responsive to the tristate control signal to operate in a tristate mode. The array of current buffers (80) may be reprogrammed in response to a reset signal.

Description: BACKGROUND The present invention relates generally to input/output drivers and more particularly to an input/output driver having multiple input/output buffers individually programmable to function as input or output drivers. US-A-3 979 730 discloses an interface circuit (PIA) coupled to a first register bus and a second bus including control register circuitry coupled to the first and second bus for defining a data transfer function of the interface circuit under program control. The PIA comprises an input logic circuit which receives data from a system data bus and provides temporary storage for the data, the routing of data to and from the input logic is performed under control of the control logic circuit; control logic circuit also transmits and receives data from an output logic circuit which contains interface circuitry and temporary buffer storage. By writing data from a data processing system through the input logic circuit and a control logic circuit to a control register circuit, this data can be used to change the function (programming) of the control logic circuit. EP-A-0 358 501 discloses a programmable input/output circuit for interfacing between an external circuit and an internal logic circuit. The tristate buffers are under control of memory cells, so that the direction of data transfer can be individually controlled via a program. US-A-4,680,487 discloses an input/output port for use in a device such as a central processing unit including a common input/output terminal which serves as an input terminal when the port is set in a data input mode and as an output terminal when the port is set in a data output mode. Input/output drivers are widely used in digital circuits to buffer input and output signals transmitted to and from different parts of a system and external devices. One type of prior art input/output (I/O) driver is a bus transceiver having multiple I/O drivers in a package and a single direction control line for all of the I/O drivers in the package. Individual direction control for the drivers is not provided. A 54AS645 bus transceiver manufactured by Texas Instruments, Inc. is an example of this type of I/O driver. Another type of prior art bus transceiver includes multiple I/O drivers in a single package and includes individual direction controls for each driver in the package. An external programming apparatus is required for programming of direction control. A 54LS449 bus transceiver manufactured by Texas Instruments, Inc. is an example of this type of I/O driver. A programmable array logic device (PAL) such as a PAL16L8 manufactured by Advanced Micro Devices is another type of prior art I/O driver. Multiple drivers are provided and the individual drivers can only programmed prior to installation of the device on a circuit card. Design changes require replacement of the device with a newly programmed PAL. There exists a need for a programmable bidirectional input/output driver which can be used as a generic buffer in digital logic circuits and for a device with this capability that can be used in conjunction with programmable gate arrays to provide a generic connector for use in digital logic circuits. This type of device enables system design modifications to be effected without the need to physically modify the circuitry. An object of the invention is to provide a programmable bidirectional input/output driver. Another object of the invention is to provide a programmable bidirectional I/O driver that performs as a programmable connector between low current drive logic elements and high current drive systems. Yet another of the invention is to provide an I/O driver that can be used in conjunction with programmable gate arrays to provide a generic bidirectional input/output driver to replace existing but out-of-date input/output drivers. Still another object of the invention is to provide a programmable bidirectional I/O driver having multiple drivers that can be individually programmed in a daisy chain configuration. Another object of the invention is to provide a programmable I/O driver that can be logically reconfigured for direction without physical reconfiguration of the device. Yet another object of the invention is to provide a programmable bidirectional I/O driver that can be reconfigured after assembly upon a reset command. SUMMARY OF THE INVENTION The invention is a programmable bidirectional I/O driver as defined in claim 1 that comprises an array of individual bidirectional current drivers each having a direction control signal input. A programming circuit includes an input for receiving coded programming signals and for generating I/O driver direction control signals and daisy chain control signals. Direction control and daisy chain control signal inputs are connected to receive the I/O driver direction control and daisy chain control signals, respectively, and are responsive thereto to condition the individual I/O drivers to transmit data signals in a selected forward or reverse direction and to configure the daisy chain connection of the I/O drivers. Control circuitry is provided to control the sequencing and transfer of programming, direction control, and daisy chain control signals. The I/O drivers may further include a tristate operating capability. The control circuitry includes a tristate control circuit responsive to a tristate program control signal to selectively control this capability. BRIEF DESCRIPTION OF THE DRAWINGS The various features and advantages of the present invention may be more readily understood with reference to the following detailed description taken in conjunction with the accompanying drawing, wherein like reference numerals designate like structural elements, and wherein: Fig. 1 illustrates a programmable bidirectional I/O driver in accordance with the principles of the present invention; and Fig. 2 illustrates daisy chaining of the driver of Fig. 1 in accordance with the invention. DETAILED DESCRIPTION Referring now to the drawing, Fig. 1 illustrates a programmable bidirectional input/output (I/O) driver 10 in accordance with the principles of the present invention. The driver 10 comprises a program control circuit 12, and a shift register and input/output (I/O) buffer circuit 14. The program control circuit 12 includes a twenty-four bit clock counter 16 and a twenty-four bit length count register 18. The counter 16 and the register 18 have clock signal inputs 20, 22, respectively, connected to receive an externally generated clock signal (CLK) provided at clock signal input terminal 24. The counter 16 and the register 18 have twenty-four bit parallel outputs 26, 28, respectively, connected to the parallel inputs 30, 32 of a twenty-four bit comparator 34. The register 18 has a serial data input port 35 connected to a programming signal input terminal 37 that is adapted to receive an externally generated serial binary coded programming signal. An output 36 of the comparator 34 is connected to one input 39 of a three input AND gate 38. Another input 40 of the AND gate 38 is connected to a tristate select input terminal 42 and is adapted to receive an externally generated tristate select control signal. The third input 44 of the AND gate 38 is connected to the start bit detect signal output 46 of a forty-four bit direction control signal shift register 48 that is part of the shift register and input/output (I/O) buffer circuit 14. The shift register 48 includes a serial data input port 47 connected to the output of an OR gate 53. One input of the OR gate 53 is connected to a data input terminal 41. The length count register 18 is provided with internal preamble signal detect logic 50 having an output 52 connected to one input 54 of an EXCLUSIVE OR gate 56 and the other input of the OR gate 53 by way of an inverter 51. Another input 58 of the EXCLUSIVE OR gate 56 is connected to the start bit detect signal output 46 of the shift register 48. An output 60 of the EXCLUSIVE OR gate 56 is connected to the data input (D) 62 of a D-type flip-flop 64. The flip-flop 64 has its clock input 66 connected to the clock input terminal 24 and its Q output 68 connected to one input 70 of a two input OR gate 72. The other input 74 of the two-input OR gate 72 is connected to the serial data input terminal 37. The output of the two-input OR gate 72 is connected to a data output terminal 78. The shift register and input/output (I/O) buffer circuit 14 also comprises an array of forty-four individual bidirectional I/O current drivers or buffers 80. The buffers 80 are bidirectional in that they can transmit data or other signals from low current drive logic elements connected to low level inputs 82 to high current drive elements connected to outputs 84 or, conversely, can transmit high level signals from high current elements connected to output terminals 84 to low level logic elements connected to inputs 82. The individual buffers 80 are conditioned to transmit signals in the selected forward or reverse direction by I/O buffer direction control signals. These signals are applied to individual ones of forty-four parallel I/O driver direction control signal inputs 86 that are connected to individual ones of forty-four parallel conductors of an output bus 88 of the shift register 48. The I/O drivers 80 may also be selectively conditioned to operate in tristate mode by applying an appropriate tristate select control signal to a tristate select control signal input terminal 90. The counter 16, the register 18, the comparator 34, the shift register 48, the flip-flop 64, and the buffers 80 each have a reset input connected to a universal reset signal input terminal 95. The configuration data structure for the driver 10 is presented below. In order to program the driver 10, in sequence, the header data is clocked into the length count register 18. The preamble detect output 52 of the register 18 is low and the output of the inverter 51 is high. This causes all data one's to be loaded into the shift register 48 from the output of the OR gate 53. When the header data is fully loaded into the length count register 18, the internal preamble detect logic 50 generates a preamble detect signal at its output terminal 52. The configuration data length count is locked into the length count register 18. The output of the inverter 51 goes to zero and the direction control data is loaded into the shift register 48 through the serial input port 47. When the programming data "0" start bit reaches the final stage of the shift register 48, a start bit detect signal is generated by internal logic within the shift register 48. The programming signal is applied to the data output terminal 78 of the driver 10 in response to the start bit detect signal and operation of the logic circuit comprised of the EXCLUSIVE OR gate 56, the flip-flop 64, and the OR gate 72. Simultaneously, the clock count and length count become equal and the output of the comparator 36 goes high. This causes the tristate select control signal, previously blocked by AND gate 38 to be applied to tristate select control input terminal 90 of the buffers 80. Selection of tristate operation is controlled by the input to the tristate select input terminal 42. The programming data loaded into the buffers 80 remains fixed until the occurrence of a reset signal. In a working embodiment of the invention, the invention was implemented in a single 1.5 micron CMOS cell-based gate array. Each of the buffers 80 in the shift register and input/output (I/O) buffer circuit 14 provides 24 milliamps of output drive current. All forty-four drivers or buffers 80 were tristated. The package was provided in a 120-pin ceramic pin grid array. Thus there has been described a new and improved programmable, bidirectional input/output driver. It is to be understood that the above described embodiment is merely illustrative of some of the many specific embodiments which represent applications of the principles of the invention. Clearly, numerous and other arrangements can be readily devised by those skilled in the art without departing from the scope of the invention.

Claims: A programmable bidirectional input/output driver (10) comprising: an array of bidirectional current buffers (80) having each a direction control signal input (86); a direction control signal register means (48) connected to receive and store direction control data for generating direction control signals in response thereto, said bidirectional current buffers (80) being individually responsive to individual ones of the direction control signals to transmit data signals in one of a forward and reverse direction, said direction control signal register means (48) including means for generating a start bit detect signal in response to completed loading of the direction signal data; a program control circuit means (12) comprising (i) a data input terminal (37) connected to receive a binary coded programming signal, said binary coded programming signal including a preamble data portion, program length data and direction control data; (ii) a length count register means (18) for receiving and storing the binary coded programming signal, the length count register means (18) including means (50) for generating a preamble detect signal in response to reception of the preamble data portion; (iii) a clock signal counter means (16) connected to receive an externally generated clock signal for counting clock signal increments; (iv) a comparator circuit means (34) connected to the length count register means (18) and the clock signal counter means (16) for generating a comparator output signal when the program length data and clock signal increment count are equal; (v) a tristate control signal input (42) for receiving an externally generated tristate control signal; and (vi) a logic circuit means (53, 38) which is responsive to the preamble detect signal (52, 41) for loading the direction control data into the direction control signal register means (48), and which is responsive to the comparator output signal (36, 39) start bit detect signal (44), and tristate control (40, 42) signal for applying the tristate control signal to a tristate control signal input (90) of the array of bidirectional current buffers (80); wherein the array of bidirectional current buffers (80) includes said tristate control input (90) connected to the tristate control signal input (42) through the logic circuit means (38, 53) to selectively receive the tristate control signal, and wherein the current buffers (80) are operable in a tristate mode in response to the tristate control signal. The driver of claim 1, characterized in that the program control circuit means (12) further includes: logic circuit means (38, 53) connected to the length count register means (18), the comparator circuit means (34), the direction control signal register means (48) and the programming signal input terminal (24) for controlling the loading of the direction control data into the direction control signal register means (48) and the transmitting of the direction control signals from the direction control signal register means (48) to the buffer direction control signal inputs (86). The driver of claim 2, characterized in that: the programming signal is a serial binary coded signal; the direction control signal register means (48) includes a serial input parallel output shift register having a serial data input port (47) connected to the programming signal input terminal (37) through the logic circuit means (53) to receive the direction control data; and individual ones of the direction control signal inputs (86) are connected to predetermined ones of the parallel outputs (88) of the shift register to receive the direction control signals. The driver of any of claims 1 - 3, characterized in that: the programming signal further includes daisy chain configuration data specifying the daisy chain configuration of the current buffers (80) in the array of current buffers (80); and each current buffer (80) includes a daisy chain control input terminal (87) and being responsive to a daisy chain control signal thereon to daisy chain the buffer (80) to a preceding buffer (80) in the array. The driver of any of claims 2 - 4, characterized in that: the logic circuit means (53, 56, 38) is responsive to the preamble detect (54) and the start bit detect (58) signals for loading a daisy chain configuration data.

Inventors: KEECH KIMBERLY W, ROTHUS ROBERT J, KEECH, KIMBERLY W., ROTHUS, ROBERT J.
Applicants: HUGHES ELECTRONICS CORP, HUGHES ELECTRONICS CORPORATION
Application year: 1992
Main classification: G06F1
IPC codes: G06F3, G06F13, G06F1