« PreviousContinue »
METHOD FOR SELECTIVELY ACTIVATING AND DEACTIVATING DEVICES HAVING SAME FIRST ADDRESS AND DIFFERENT EXTENDED
This is a divisional of application Ser. No. 765,396 filed Aug. 14, 1985 now U.S. Pat. No. 4,910,655.
BACKGROUND OF THE INVENTION 1Q
1. Field of the Invention
This invention relates the field of communications media for transferring data between a source and a plurality of peripheral devices coupled to the source. More particularly, the present invention relates to data 15 transfer along a peripheral device bus between a plurality of peripheral devices and a host computer.
2. Art Background
In the computing industry, it is quite common to transfer data and commands between a plurality of data 20 processing devices, such as for example, computers, printers, memories and the like. The interconnection of computers and other peripheral devices principally developed in the early 1970's with the advent of computer networking systems, which permitted the distri- 25 bution of access to computing resources beyond the immediate proximity of a main frame computer.
Networks, such as the ARPA network, were developed to provide access by various users to large timesharing systems and the transfer of data between such 30 systems. In the case of geographically local networks, so-called "local area networks" (LANs) were developed to connect together a collection of computers, terminals and peripherals located, typically in the same building or adjacent buildings, and permitted each of 35 these devices to communicate among themselves or with devices attached to other networks. Local area networks permit the implementation of distributed computing. In other words, some of the devices coupled to the local area netowrk may be dedicated to perform 40 specific functions, such as file storage, data base management, terminal handling, and so on. By having different machines perform different tasks, distributed computing can make the implementation of the system simplier and more efficient. 45
Presently, networking has only been applied to provide communications between data processing devices, which are machine input devices. However, it would also be useful to provide a networking means to provide communication between a single computer and a plural- 50 ity of peripheral devices such as human input devices, listen only devices, appliances, etc. Human input devices include keyboards, cursor control devices (such as a "mouse"), and sketch pads, etc. Listen only devices include transaction logs, etc. In the prior art, such de- 55 vices are attached to a host computer through a port dedicated to each device. Often, additional "cards" are required to allow a peripheral input device to be added. Further, the addition of cards requires that the host computer be powered down, with no mechanism for 60 adding peripheral devices to a live system. Such prior art systems are inefficient since peripheral devices are not generally operated simultaneously, (for example, someone using a mouse is generally not using the keyboard or sketchpad at the same tine). Thus, the devices 65 could share a common line to the host computer without creating data traffic problems, eliminating the needs for cards.
Prior art networking schemes also include elaborate methods for establishing control of the network to allow a device to transmit. Such systems are not needed for networking of peripheral devices, since only one is generally used at a time. In addition, prior art networking schemes provide for means for attached devices to identify themselves to each other through elaborate "handshaking" schemes. Again, such complexity is not required to connect peripheral devices since there is no need for these devices to identify themselves to other devices, only to the host computer.
Therefore, it is an object of the present invention to provide a communications medium for a plurality of peripheral devices, which provides a simple and efficient means for coupling those devices to a host computer.
It is a further object of the present invention to provide a communications medium by which all such peripheral devices can be coupled to a host computer at a single input
It is still another object of the present invention to provide a communications medium which provides a means for peripheral devices to indicate a need for servicing to the host computer.
It is yet another object of the present invention to provide a communications medium which provides a means for determining if the communications medium is in use.
It is another object of the present invention to provide a communications medium which allows peripheral devices to be added during operation of the system.
SUMMARY OF THE INVENTION
A communications medium is disclosed including apparatus and methods for transferring data between a plurality of peripheral devices and a host computer. In the preferred embodiment, a plurality of peripheral devices such as human input devices (including mice, keyboards, sketchpads, etc.), appliances, listen only devices, etc., are coupled to a common cable for data transmission and reception of commands. A peripheral device coupled to the cable may signal the host computer when it requires servicing. This peripheral device will continue to request service until the host computer commands it to transmit its data. All peripheral devices of the same generic type (e.g., all keyboards), may have an identical hard wired address used as an identification number. In this manner, the host computer can identify the generic type of device communicating on the cable. If more than one of the same type of device is coupled to the cable (e.g., 2 mice), the host computer will assign new addresses in the status registers of the mice so they can be differentiated.
In the preferred embodiment, a return to zero modulation scheme is used to transmit data and commands over the cable. As a result, a peripheral device will assume a collision if it attempts to transmit a high signal on the cable and the cable is pulled low by another device. In order to simplify the protocol of the system, only the computer can initiate communication.
The present invention permits the addition of peripheral devices to a computer while the computer is in use, without the need to power down the computer system. The present invention can be embodied in a narrow band medium, as well as broad band, fiber optic, infrared and other media.
BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 is block diagram illustrating the networking system of the present invention.
FIG. 2 is a timing diagram illustrating the present 5 invention's use of return to zero encoding.
FIG. 3 illustrates a register of a peripheral device of the present invention.
FIG. 4 is a flow chart illustrating the sequence of operations utilized by a peripheral device to request 10 service by the host computer.
FIG. 5 is a flow chart illustrating the sequence the operations ulitized to provide new addresses to devices snaring the same hard-wired address.
FIG. 6 is a timing diagram illustrating a command 15 transaction of the present invention.
FIG. 7 is a flow chart illustrating the sequence of operations utilized to activate a peripheral device.
DETAILED DESCRIPTION OF THE ,Q
A peripheral device bus including apparatus and methods for transferring data between a plurality of peripheral devices coupled to a host computer is disclosed. In the following description numerous specific 25 details are set forth, such as specific numbers, registers, addresses, times, signals, and formats, etc., in order to provide a thorough understanding of the present invention. However, it will be apparent to one skilled in the art that the present invention may be practiced without 30 these specific details. In other instances, well-known circuits and devices are shown in block diagram form in order not to unnecessarily obscure the present invention.
Referring to FIG. 1, the preferred embodiment of the 35 present invention may be seen. A plurality of peripheral devices, generally identified by numbers 11 through 16 are coupled through a single cable 17 to a host computer 10. In the preferred embodiment, all devices communicate with the host computer by a mini-phono jack 40 with the following connector assignments; tip-power, ring-data, sleeve-power return. A "high" signal (1) is 2.4 volts minimum. A "low" signal (0) is 0.8 volts maximum. Although a single cable is contemplated in the preferred embodiment of the present invention, other 45 communications media, such as broad band methods, fiber optic systems, and infrared signals, are contemplated.
The bus of the present invention supports coded devices (for which a keystroke represents a symbol or a 50 function, such as a keyboard 14), relative devices (in which movement of a display cursor in response to a control device, such as a mouse 11 or 12, may be from any starting point), and absolute devices (for which there is a constant and direct relationship between dis- 55 play position and device position, such as sketch pad 13).
The system also permits the networking of extended address devices. Extended address devices share a common hard wired address 35, but further include an ad- 60 dress unique to the individual device which the host computer must recognize before the device can be accessed. As shown in box 201 of the flow chart of FIG. 7, each extended address device is provided with a unique extended address. For example, is it contem- 65 plated that appliances may be coupled to the host computer and controlled by the host computer. In such a situation, all appliances would have an identical hard
wired fixed address. The host computer, on a first level, would simply address the hard wired address for appliances. As shown in box 203 of the flow chart of FIG. 7, a command is transmitted from the host computer to the hardwired fixed address for the extended address devices. At this time, all appliances coupled to that address are inactive. An individual appliance may be activated by the host computer if the host computer sends a signal to that appliance which matches the extended address of the appliance. An extended address is an individual identification number, which, in the preferred embodiment, may be up to 64 bytes long. As shown in box 205 of the flow chart of FIG. 7, an extended address device is activated by transmitting the device's extended address. Once the host computer has provided the extended address, the device having that address is active. Subsequent commands to the appliance address location will be executed by that device without the need for providing the extended address each time. As shown in box 207 of the flow chart of FIG. 7, the hardwired fixed address is transmitted in order to have the extended address device respond. An activated appliance will respond to all commands to the appliance address, while unactivated devices remain passive. To deactivate an active extended address device, the host computer provides the extended address of another extended address device, activating it and deactivating the previously active device. It is contemplated that any device which could be controlled by the host computer is suitable for the present networking scheme, such as lights, ovens, sprinkler systems, phone answering machines, etc. It is contemplated that at least one other hardwired address for extended address devices be provided in the present system. Such an address would be used for system protection schemes or user identification schemes. For example, a device at this location could contain an extended address which must be provided by the system user before the system could be enabled. In other instances, individual operations could require that the extended address of other security devices be provided by the host computer prior to performance. Such security devices could function as "keys" to lock the entire system or certain operations performed on the system.
Also reserved for use on the network of the present invention are soft address locations 16. Soft address locations are reserved for duplicates of peripheral devices coupled to the bus. When more than one mouse is coupled to the bus, for example, the host computer assigns new addresses to each mouse, those addresses being at the soft address locations.
Although specific examples have been given for each type of device coupled to the bus, there may be more than one kind of each type of device with that address. For example, a sketch pad has been given as an absolute device but a touch screen would also be considered an absolute device and be assigned the same fixed command address as the sketch pad. In those situations, the host computer will assign new addresses from the soft address locations to each device.
In the preferred embodiment of the present invention, the various peripheral devices have been assigned addresses as shown below:
Address Device Types Example
0000 (zero) extended address security systems.
device user ID
It will appreciated by one skilled in the art that other addresses may be assigned to these devices containing more or less bits than in the preferred embodiment. Fixed hard-wired addresses 31,32,33 and 34 are shown 20 in FIG. 1 for mouse 11, mouse 12, sketch pad 13, and keyboard 14, respectively.
All peripheral devices have four registers in the preferred embodiment to receive data and send data. For each device, register 3 talk and register 3 listen have 25 status information such as device address and handler information. The remaining registers are data registers which are device specific except register 2 listen which contains the extended addresses for extended address devices or device specific contents for soft addressed 30 devices.
In the preferred embodiment of the present invention, there are three types of communication on the peripheral bus: commands, data and global signals. Commands are sent from the host computer to the peripheral de- 35 vices, data is sent from the host computer to the devices or from the devices to the host computer, and global signals are special messages sent to the entire system.
In the preferred embodiment data is encoded as the ratio of low time to high time of each bit cell. A bit cell 40 boundary is defined by a falling edge on the bus. A "zero" is encoded as a bit cell in which the low time is greater than the high time. This is shown in FIG. 2 by bit cell 20. Therefore, a "1" is defined as a bit cell in which the low time is less than the high time as shown 45 by cell 21 of FIG. 2. In the present preferred embodiment, a start bit is defined as a "1". A stop bit is a "0" which does not have an additional falling edge to define the bit cell time. The stop bit is used to synchronize the stopping of transactions on the bus. 50
The period for each bit cell of command signals and low speed data transmission is approximately 100 microseconds plus or minus 30%. For high speed data transmission, the bit cell is 50 microseconds plus or minus 1%. The format of a data transaction is a start bit 55 (1), followed by up to 256 bits of data and ending with a stop bit. It will be appreciated that when other communications media are utilized, other signaling methods may be utilized.
Commands are sent only by the host. In the preferred 60 embodiment of the present invention, there are three commands; talk, listen, and flush. As shown in FIG. 6, to signal the start of a command, an attention pulse is sent out. An attention pulse is generated by the host computer by transmitting a bus low for a period of 65 "T-attn". In the preferred embodiment, T-attn is approximately 560-1040 microseconds. The attention pulse is followed by a synch pulse to give the initial bus
timing. The following edge of the synch pulse is used as a timing reference for the first bit of the command. The command is followed by a stop bit, (in the preferred embodiment a "0"). After the stop bit, the bus returns to its normally high state unless a device requests service.
The command is an 8 bit value in the preferred embodiment. The command includes a 4 bit device address field which specifies the fixed hardwired address of the desired peripheral device (e.g., 0011 for a mouse). The next 2 bits form the command and the final 2 bits form a register address field which allows a specific register, R0-R3 within an addressed peripheral device to be specified. In the preferred embodiment, the commands have the following bit code:
The talk command orders the addressed device to provide its data to the host computer. The listen command orders the addressed device to accept data from the host computer and place it in one of its registers. The flush command has an effect on each device which is defined by the individual device. It can be used for such functions as clearing a register or resetting all keys on a keyboard so that they will be sent again.
When a peripheral devices is addressed to talk, it must respond within a certain period, called the "time out" period. The time out, "Tit", is approximately 140 to 260 microseconds (2 bit cells). The selected device, if it does not time out, becomes active on the bus and performs its data transaction, and then "untalks" itself and goes inactive on the bus.
Global signals are used for transactions which are neither commands nor data transactions. Global signals include: attention and synch, which is used to signal the start of a command and to give initial bus timing; service request, a transaction that devices use to signal the host that they require service; and reset, used to issue a break on the bus by holding the bus low for a minimum of "Tres", which is approximately 2.8 to 5.2 milliseconds, (40 bit cells). Global signals will be described in more detail in conjunction with other transactions.
Since a peripheral device can only send data when it has been commanded to talk by the host computer, the present system provides a means for a device to notify the host computer that it needs servicing. This is accomplished by having the device send a service request signal to the host computer. In the present invention, a service request is sent by holding the bus low after the stop bit of any command transaction. Each of the peripheral devices coupled to the bus include a number of registers (in the preferred embodiment four registers). FIG. 3 shows one of the registers for a peripheral device. Bit A13 has been identified as the service request enable bit. When this bit is set high by the host computer, the device is enabled to hold the bus low after the stop bit of a command transaction, as shown in FIG. 6, if the device needs service. A device will keep requesting service until it receives a talk command from the host. The flow chart in FIG. 4 shows the steps followed by a device requiring service.
Initially the device determines if it requires servicing, Block 41, that is, if it has data to send to the host. If it