Patent Publication Number: US-5291609-A

Title: Computer interface circuit

Description:
This is a continuation of co-pending application Ser. No. 07/714,650 filed on Jun. 13, 1991. 
    
    
     BACKGROUND OF THE INVENTION 
     1. Field of the Invention 
     The present invention relates to computer interface circuits, and in particular, to computer interface circuits operating in a control environment and providing asynchronous interrupt service to multiple peripheral devices. 
     2. Description of the Related Art 
     The types of computer interface circuit designs available, as well as their applications, are virtually unlimited in number. As computers have become more prevalent and their applications more varied, more interface circuit designs have become necessary for providing the appropriate interface between the computers and their operating environments. 
     A common type of computer interface circuit is designed for operating in a control environment in which interrupt service must be provided for multiple peripheral devices. For example, referring to FIG. 1, a typical design for such an interface circuit 10 includes: read 12 and write 14 buffers; a decoder 16; a parallel input-output controller (&#34;PIO&#34;) 18; a dual universal asynchronous receiver-transmitter (&#34;UART&#34;) 20; a microprocessor (&#34;μP&#34;) 22; a read-only memory (&#34;ROM&#34;) 24; and a random-access memory (&#34;RAM&#34;) 26, substantially as shown. 
     Incoming data from the data bus of a host computer (not shown) is captured and held by the write buffer 14. This data is then transferred via the PIO 18, under control of the μP 22, to the RAM 26 for temporary storage before subsequently being transferred to a peripheral device (not shown) via the dual UART 20. Data coming from a peripheral device via the dual UART 20 is stored in the RAM 26, and then, under control of the μP 22, is transferred to the data bus of the host computer via the PIO 18 and read buffer 12. The read 12 and write 14 buffers are appropriately enabled or disabled by the decoder 16, which is controlled by the host computer via its address bus. 
     A problem with this conventional interface circuit design involves the need for and use of the read 12 and write 14 buffers, the PIO 18 and RAM 26. This configuration produces a data bottleneck which excessively &#34;loads down&#34; the host computer, i.e. with respect to the host computer&#39;s involvement time with the operation of the interface circuit 10. Particularly where the interface circuit 10 is used for servicing interrupts for the peripheral devices, this configuration results in the host computer standing by in a wait, or idle, mode while the μP 22 transfers data for servicing the interrupt. Virtually all data communication between the host computer and the interface circuit 10 (e.g. the μP 22) uses the PIO 18. Thus, while the μP 22 is retrieving data from the write buffer 14 via the PIO 18 and storing it in the RAM 26, or retrieving data from the RAM 26 for transfer to the read buffer 12 via the PIO 18, the host computer must wait. 
     Therefore, it would be desirable to have a computer interface circuit for operating in a control environment for servicing interrupts for peripheral devices, wherein such interface functions can be performed asynchronously with respect to the operation of the host computer, and with minimal interaction time required on the part of the host computer. 
     SUMMARY OF THE INVENTION 
     A computer interface circuit in accordance with the present invention provides asynchronous communication and control between a host computer and a plurality of peripheral devices. The present invention includes a transceiver for selectively reading input data from and writing output data to at least one peripheral device. The present invention further includes a memory for selectively reading input data from and writing output data to a host computer, and for selectively reading the peripheral device input data from and writing the peripheral device output data to the transceiver in accordance with internal memory addresses. The present invention still further includes a computer for providing the internal memory addresses to control the selective reading of peripheral device input data from and writing of peripheral device output data to the transceiver by the memory. The computer further controls the selective reading of peripheral device input data and writing of peripheral device output data by the transceiver. 
     These and other features and advantages of the present invention will be understood upon consideration of the following detailed description of the invention and the accompanying drawings. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     FIG. 1 is an exemplary functional block diagram of a conventional computer interface circuit. 
     FIG. 2 is a functional block diagram of a computer interface circuit in accordance with the present invention. 
     FIG. 3 illustrates an exemplary circuit card configuration for the interface circuit of FIG. 2. 
    
    
     DETAILED DESCRIPTION OF THE INVENTION 
     Referring to FIG. 2, a computer interface circuit 100 in accordance with the present invention includes: a dual port RAM 102; two dual UARTs 104, 106; a μP 108; and an electrically programmable read-only memory (&#34;EPROM&#34;) 110, substantially as shown. An internal data bus 112 couples the foregoing elements for transferring data internally within the interface circuit 100. An address bus 114 also couples the foregoing elements for transferring addresses 116 from the μP 108. 
     The μP 108 exchanges control data 118 with a host computer (not shown). The dual port RAM 102 exchanges data 120 with the host computer in accordance with addresses 122 received from the host computer. These data 120 and addresses 122 are exchanged or received via the data and address buses of the host computer (not shown). 
     The first dual UART 104 provides two output data signals 124, 126 to and receives two associated input data signals 128, 130, respectively, from two peripheral devices (not shown). Similarly, the second dual UART 106 provides two output data signals 132, 134 to and receives two associated input data signals 136, 138, respectively, from two more peripheral devices (not shown). The dual UARTs 104, 106 receive the data for their output signals 124, 126, 132, 134 from the internal data port 146 of the dual port RAM 102 via the internal data bus 112. Similarly, the dual UARTs 104, 106 transfer the data received via their input signals 128, 130, 136, 138 to the internal data port 146 of the dual port RAM 102 via the internal data bus 112. The μP 108 controls the outputting of data from the data bus 112 via the dual UARTs 104, 106 by providing appropriate addresses to the dual UARTs 104, 106 via the internal address bus 114. Similarly, the μP 108 controls the transfer of input data received by the dual UARTs 104, 106 onto the internal data bus 112 by providing appropriate addresses to each of the dual UARTs 104, 106 via the address bus 114. 
     The μP 108 also controls the reading of data from and writing of data to the internal data port 146 of the dual port RAM 102 via the internal data bus 112 by providing appropriate addresses to the internal address port 140 of the dual port RAM 102 via the internal address bus 114. The EPROM 110 selectively contains program data for the μP 108, which can be made available thereto when addressed by the μP 108 via the internal address bus 114. 
     The dual port RAM 102 reads data 120 from or writes data 120 to the data bus of the host computer (not shown) via its external data port 144 in accordance with addresses 122 received via the host computer address bus (not shown) at its external address port 142. As is known in the art, the dual port RAM 102 can read or write data at its external data port 144 in accordance with addresses received at its external address port 142 while asynchronously reading or writing data at its internal data port 146 in accordance with addresses received at its internal address port 140. 
     The computer interface circuit 100 of the present invention can provide interrupt service for multiple peripheral devices with minimal interaction time required on the part of its host computer The necessary data (or instructions) 120 for servicing a peripheral device, or devices, can be inputted to the dual port RAM 102 via its external data port 144 in accordance with addresses 122 from the host computer (not shown). When finished inputting the data (or instructions), the host computer is free for other processing activity Meanwhile, the μP 108 can asynchronously address the data (or instructions) within the dual port RAM 102 and transfer it via the internal data bus 112 to the appropriate dual UART 104, 106. Any instructions needed by the μP 108 and stored as part of the data within the dual port RAM 102 can be retrieved by the μP 108 via the internal data bus 112. The instructions or data needed for servicing the peripheral device, or devices, can then be outputted by the appropriate dual UART 104, 106 as one of its output signals 124, 126, 132, 134. As should be recognized from the foregoing discussion, the dual port RAM 102 eliminates a data bottleneck by allowing data to be selectively and asynchronously read or written at either or both of its data ports 144, 146. 
     Referring to FIG. 3, a preferred embodiment of a computer interface circuit assembly in accordance with the present invention includes a printed circuit board assembly 200 upon which the interface circuit 100 of FIG. 2 is mounted. This printed circuit board assembly 200 includes a printed circuit board 202 with two protruding flanges 204, 206 which serve as support members for printed edge connectors 208, 210. These flanges 204, 206 with their printed edge connectors 208, 210 are inserted into edge connector receptacles mounted on a main circuit board within the host computer (not shown). For example, in a preferred embodiment of the present invention, the printed circuit board assembly 200 and its flanges 204, 206 with printed edge connectors 208, 210 is fabricated for installation in an IBM® AT personal computer In this embodiment, a surface-mounted multi-contact connector 212 is included at one end of the printed circuit board assembly 200 for interfacing with external (e.g. peripheral) devices. 
     It should be understood that various alternatives to the embodiments of the present invention described herein can be employed in practicing the present invention. It is intended that the following claims define the scope of the present invention, and that structures and methods within the scope of these claims and their equivalents be covered thereby.