Skip to main content

Full text of "Apple Patent: APPLE_PATENT_4_912_627"

See other formats


Apple Computer Inc. Patent : 4_912_627 



United St4ites^ Patent [i9] 

Ashkin et al. 



[11] Patent Number: 
[45] Date of Patent: 



4,912,627 
Mar. 27, 1990 



[54] 



METHOD FOR STORING A SECOND 
NUMBER AS A COMMAND ADDRESS OF A 
FIRST PERIPHERAL DEVICE AND A THIRD 
NUMBER AS A COMMAND ADDRESS OF A 
SECOND PERIPHERAL DEVICE 



[75] Inventors: 



[73] Assignee: 



Peter B. Ashkin, Gatos; Michael 
Clarlc, Glendaie, both of Calif. 

Apple Computer, Inc., Cupertino, 
CaUf. 



[21] Appl. No.: 132,123 
[22] Filed: Dec. 14, 1987 

Related U.S. Application Data 

[62] Division of Ser. No. 763,396, Aug. 14, 1985. 

[51] Int. a." G06F 13/42 

[52] U.S. a 364/200; 364/229.2; 

364/240.8; 364/261; 364/284.3; 340/825.52 

[58] Field of Search ... 364/200 MS File, 900 MS FUe, 

364/514; 340/825.08, 825.07, 825.50, 825.52, 

825.22; 370/85 

[56] References Cited 

U.S. PATENT DOCUMENTS 

3,221,307 11/1965 Manning et al 364/200 

3.646.534 2/1972 MUler 360/40 

3,715,725 2/1973 Kievit et al 364/900 

3,787,627 1/1974 Abramson et al 370/67 

3,836,888 9/1974 Boenke et al 364/200 

3,863,025 1/1975 Gonsewski et al 375/55 

3.979,723 9/1976 Hughes et al 370/88 X 

4,063,220 12/1977 Metcalfe et al 340/825 5 

4,071.908 1/1978 Brophy et al 364/900 

4,345,250 8/1982 Jacobsthal 340/825.5 

4,360,870 11/1982 McVey 364/200 

4,373,181 2/1983 Chisholm et al 364/200 

4,442,502 4/1984 Friend et al 364/900 

4,498,169 2/1985 Rorumus 370/85 

4.562.535 12/1985 Vincent et al 364/200 

4,568,930 2/1986 Livingston et al 340/825.5 

(List continued on next page.) 

FOREIGN PATENT DOCUMENTS 
0051425 5/1982 European Pat. Off. . 



c 



A^^ 



0104545 
59-52331 
1508854 
1518365 
2035636 
2070826 
0143160 
2167274 
0207313 



4/1984 
3/1984 
4/1978 
7/1978 
6/1980 
5/1984 
6/1985 
5/1986 
1/1987 



European Pat. Off. 
Japan . 

United Kingdom . 
United Kingdom . 
United Kingdom . 
United Kingdom . 
United Kingdom . 
United Kingdom . 
United Kingdom . 



OTHER PUBLICATIONS 
Hill et al„ "Dynamic Device Address Assignment 
Mechanism", IBM TDB vol. 23, No. 8, Jan. 1981, pp. 
3564-3565. 

Search Report, dated May 21, 1986, for British Patent 
Application No. 8607632. 

Primary Examiner— Ttiomas C. Lee 

Attorney, Agent, or F/rm— Blakely, Sokoloff, Taylor & 

Zafman 



[57] 



ABSTRACT 



A method for transferring data on a communication 
medium between a host computer and a plurality of 
peripheral devices coupled to the medium at a plurality 
of first address locations, including first and second 
peripheral devices at a one of the first address locations. 
The host computer transmits a plurality of first signals 
to the one of the first address locations requesting any 
peripheral devices at the one of the first address loca- 
tions to transmit data to the host computer. The first 
peripheral device senses the medium to determine if the 
medium is currently in use. The second peripheral de- 
vice senses the medium to determine if the medium is 
currently in use. The first peripheral device transmit 
data to the host computer when the medium is not in 
use. The second peripheral device discontinues the 
transmission of data wlien the medium is in use and sets 
an internal collision flag. The host computer transmits a 
plurality of second signals, including a second address, 
to the one of the first address locations, the second 
address becoming an address for the first peripheral 
device, and the second address not becoming an address 
for the second peripheral device, given that the internal 
collision flag for the second peripheral device is set. 

11 Claims, 4 Drawing Sheets 



UT COL,lliaN 
ti* '0 '0' 



SET CXLIIIOH 
tl, ,0 '!■ 







MM MICtlVtO 



Page 0001 of 0012 



Apple Computer Inc. Patent : 4_912_627 



4,912,627 

Page 2 



U.S. PATENT DOCUMENTS 



4.570,220 


2/1986 


4.589,063 


5/1986 


4,595.921 


6/1986 


4,608.559 


8/1986 


4,608,689 


8/1986 


4,611,274 


9/1986 


4,620,278 


10/1986 


4,626,846 


12/1986 


4,628,478 


12/1986 


4,638,313 


1/1987 



Tetrick et al 364/200 

Shan et al 364/200 

Wang et al 340/825,8 

Friedman et al 340/825.5 

Sato 371/15 

Machine et al 364/200 

Ellsworth et al 364/200 

Parker et al 340/825.5 

Henderson, Jr 364/900 

Sherwood, Jr. et al 340/825.52 



4,660,141 4/1987 Ceccon et al 364/200 

4,667,193 5/1987 Cotie et al 340/825.08 

4,675,813 6/1987 Locke 364/200 

4,677,613 6/1987 Salmond et al 370/85 

4,680,583 7/1987 Grover 340/825.52 

4,701,878 10/1987 Gunket et al 364/900 

4,710,893 12/1987 McCutcheon et al 364/900 

4,716,410 12/1987 Nozaki 340/825.52 

4,727,475 2/1988 Kiremdjian 364/200 

4,760,553 7/1988 Buckley et al 364/900 

4,773,005 9/1988 Sullivan 364/200 

4,775,931 10/1988 Dickie et al 364/200 



Page 0002 of 0012 



Apple Computer Inc. Patent : 4_912_627 



US. Patent Mar, 27, 1990 sheet 1 of 4 4^12,627 



13- 



33 



14- 



34- 



16 




SKETCH 
PAD 



HARD-WIRED 
ADDRESS 



KEY 

BOARD 



HARD-WIRED 
ADDRESS 



MOUSE 



HARD-WIRED 
ADDRESS 



MOUSE 



HARD-WIRED 
ADDRESS 



1 








EXTENDED 

ADDRESS 

DEVICES 








SOFT 
ADDRESS 
LOCATIONS 




HARD-WIRED 
ADDRESS 











II 



•31 



■12 



•32 



35 



Page 0003 of 0012 



Apple Computer Inc. Patent : 4_912_627 



U.S. Patent Mar. 27, 1990 sheet 2 of 4 4^12,627 



TSYNCH 



TATTN 



00 



ATTENTION + SYNCH 




COMMAND 



J 



CELL BOUNDARY 
TINT 



STOP 



SERVICE 
REQUEST 



TO 



TCYC 



Tl 



TCYC 



34- 



7 ^ 

35-> AI2 
37^ 36 \ 
AI5 \ AI3 



A 14 



All 



32 



A8 



r 

A7 



31 



A 



22 



DEVICE HANDLER 



DEVICE ADDRESS 



HIGH SPEED ENABLE 



SERVICE REQUEST ENABLE 



(ZERO) 



Page 0004 of 0012 



Apple Computer Inc. Patent : 4_912_627 



US. Patent Mar. 27, 1990 sheet 3 of 4 4^12,627 




SET INTERNAL 
FLAG TO 



r 



SET INTERNAL 
FLAG BIT TO 



42 



60 



43 



RECEIVE 

COMMAND 

FROM HOST 



£ 



58 



PERFORM 
COMMAND 



HOLD BUS LOW 
AFTER COMMAND 
STOP BIT 



HOLD BUS LOW 
AFTER COMMAND 
STOP BIT 




59 



SEND 
DATA 



Page 0005 Of 0012 



Apple Computer Inc. Patent : 4_912_627 



US. Patent Mar. 27, 1990 sheet 4 of 4 4^12,627 



c 



BEGIN 



J 



RECEIVE TALK R3 

SET COLLISION 

BIT TO "0" 



102 



SEND START 
BIT 



106 

1. 



104 



YES 




STOP SENDING 
SET COLLISION 
BIT TO "I" 



SEND 
NEXT BIT 




CHANGE R3 TO 
DATA RECEIVED 



Page 0006 Of 0012 



Apple Computer Inc. Patent : 4_912_627 



4,912,627 



2 



out creating data traffic problems, eliminating the need 

METHOD FOR STORING A SECOND NUMBER AS for cards. 

A COMMAND ADDRESS OF A FIRST Prior art networking schemes also include elaborate 

PERIPHERAL DEVICE AND A THIRD NUMBER methods for establishing control of the network to 

AS A COMMAND ADDRESS OF A SECOND 5 allow a device to transmit. Such systems are not needed 

PERIPHERAL DEVICE for networking of peripheral devices, since only one is 

generally used at a time. In addition, prior art network- 

This is a (divisional) of application Sen No. 765,396 ing schemes provide for means for attached devices to 

filed Aug. 14, 1985. identify themselves to each other through elaborate 

BACKGROUND OF THF TNVFNTTON '° "handshaking" schemes. Again, such complexity is not 

BACK.OROUND OF THE INVENTION required to connect peripheral devices since there is no 

1. Field of the Invention need for these devices to identify themselves to other 
This invention relates the field of communications devices, only to the host computer. 

media for transferring data between a source and a Therefore, it is an object of the present invention to 
plurality of peripheral devices coupled to the source. '^ provide a communications medium for a plurality of 
More particularly, the present invention relates to data peripheral devices, which provides a simple and effi- 
transfer along a peripheral device bus between a plural- '^i^"' means for coupling those devices to a host com- 
ity of peripheral devices and a host computer. puter. 

2. Art Background '' '* * further object of the present invention to pro- 
In the computing industry, it is quite common to ^ ^.''** * communications medium by which all such pe- 

transfer data and commands between a plurality of data npheral devices can be coupled to a host computer at a 

processing devices, such as for example, computers, smgle input. 

printers, memories and the like. The interconnection of ^^ .'* '*'" another object of the present invention to 

computers and other peripheral devices principally provide a communications medium which provides a 

developed in the early 1970's with the advent of com- " "*^* ^°'^ peripheral devices to indicate a need for ser- 

puter networking systems, which permitted the distri- "'""? *° *^ ^°^^ computer. 

bution of access to computing resources beyond the " .'* ^^^ another object of the present invention to 

immediate proximity of a main frame computer. provide a communications medium which provides a 

Networks, such as the ARPA network, were devel- "leans for determmmg if the communications medium is 

oped to provide access by various users to large time- '" !^' . . ,. , 

sharing systems and the transfer of data between such . !* *" ^°''**' °''J"=* °^ '^'. P""^"*. '"^ent'on t° P^o- 

systems. In the case of geographically local networks, ^''^f.* '^^TT'^^h!! ^ ""^ ^ r ^ "^"P*"" 

so-called "local area networkr" a A NO were Hi^vel eral devices to be added dunng operation of the system. 

^ to .«^!it^f networks (LANs) were devel- SUMMARY OF THE INVENTION 

oped to connect together a collection of computers, „ » ;„»»•„ _ j- • j i j > . 

terminals and peripherals located, typically in the same " ^ ? T '^Z T f ""T"^ mcludmg 

h„iMi„„ „, oHil^il* u \A- i v-oujr III uic MUlc apparatus and methods for transfemng data between a 

?h^^Lv«1r T' ".t f P'"f^'ty °f peripheral devices and a host computer. In 

these devices to communicate among themselves or wit .^e preferred embodiment, a plurality of peripheral 

devices attached to o her networks. Loca^ area net- devices such as human input devices (including^mice, 

works permit the implementation of duitributed com- ^ keyboards, sketchpads, etc.), appliances, listen onl^ 

putmg. In other words some of the devices coupled to devices, etc., are coupled to a common cable for data 

the local area network may be dedicated to perform transmission and reception of commands. A peripheral 

specific functions such as file storage data base man- device coupled to the cable may signal the host com- 

agement terminal handlmg, and so on. By havmg differ- pu^r when it requires servicing. This peripheral device 

ent machmes perform different tasks, distnbuted com- 45 ^iu continue to request service until the host computer 

putmg can make the implementation of the system sim- commands it to transmit its data. All peripheral devices 

pier and more efficient. of the same generic type (e.g., ail keyboards), may have 

Presently, nctworkmg has only been applied to pro- an identical hard wired address used as an identification 

vide commumcations between data processing devices, number. In this manner, the host computer can identify 

which are machine mput devices. However, it would 50 the generic type of device communicating on the cable, 

also be useful to provide a networking means to provide if nore than one of the same type of device is coupled 

commumcation between a smgle computer and a plural- to the cable (e.g., 2 mice), the host computer will assign 

ity of peripheral devices such as human mput devices, new addresses in the status registers of the mice so they 

listen only devices, appliances, etc. Human input de- can be differentiated. 

vices include keyboards, cursor control devices (such as 55 In the preferred embodiment, a return to zero modu- 
a "mouse"), and sketch pads, etc. Listen only devices lation scheme is used to transmit data and commands 
include transaction logs, etc. In the prior art, such de- over the cable. As a resuh, a peripheral device will 
vices are attached to a host computer through a port assume a collision if it attempts to transmit a high signal 
dedicated to each device. Often, additional "cards" are on the cable and the cable is pulled low by another 
required to allow a peripheral input device to be added. 60 device. In order to simplify the protocol of the system. 
Further, the addition of cards requires that the host only the computer can initiate communication, 
computer be powered down, with o mechanism for The present invention permits the addition of periph- 
adding peripheral devices to a live system. Such prior eral devices to a computer while the computer is in use, 
art systems are inefficient since peripheral devices are without the need to power down the computer system, 
not generally operated simultaneously, (for example, 65 The present invention can be embodied in a narrow 
someone using a mouse is generally not using the key- band medium, as well as broad band, fiber optic, infra- 
board or sketchpad at the same time). Thus, the devices red and other media, 
could share a common line to the host computer with- BRIEF DESCRIPTION OF THE DRAWINGS 



Page 0007 of 0012 



Apple Computer Inc. Patent : 4_912_627 



4,912,627 



FIG. 1 is block diagram illustrating the networicing 
system of the present .invention. 

FIG. 2 is a timing diagram illustrating the present 
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 
service by the host computer. 



ance. An extended address i an individual identification 
number, which, in the preferred embodiment, may be 
up to 64 bytes long. Once the host computer has pro- 
vided the extended address, the device having that ad- 
dress is active. Subsequent commands to the appliance 
address location will be executed by that device with- 
out the need for providing the extended address each 
time. An activated appliance will respond to all com- 
mands to the appliance address, while unactivated de- 



FIG. 5 is a flow chart illustrating the sequence the 10 vices remain passive. To deactivate an active extended 



operations utilized to provide new addresses to devices 
sharing the same hard-wired address. 

FIG. 6 is a timing diagram illustrating a command 
transaction of the present invention. 

DETAILED DESCRIPTION OF THE 
INVENTION 

A peripheral device bus including apparatus and 
methods for transferring data between a plurality of 



address device, the host computer provides the ex- 
tended address of another extended address device, 
activating it and deactivating the previously active de- 
vice. It is contemplated that any device which could be 
15 controlled by the host computer is suitable for the pres- 
ent networking scheme, such as lights, ovens, sprinkler 
systems, phone answering machines, etc. It is contem- 
plated that at leas one other hardwired address for ex- 
tended address devices be provided in the present sys- 
peripheral devices coupled to a host computer is dis- 20 tem. Such an address would be used for system protec- 



closed. In the following description numerous specific 
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 inven- 



tion schemes or user identification schemes. For exam- 
ple, 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, 



tion. However, it will be apparent to one skilled in the 25 individual operations could require that the extended 



art that the present invention may be practiced without 
these specific details. In other instances, well-known 
circuits and devices are shown in block diagram form in 
order not to uimecessarily obscure the present inven- 
tion. 

Referring to FIG. 1, the preferred embodiment of the 
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 com- 



address of other security devjces be provided by the 
host computer prior to performance. Such security 
devices could function as "keys" to lock the entire sys- 
tem or certain operations performed on the system. 
30 Also reserved for use on the network of the present 
invention a^e soft address locations 16. Soft address 
locations ar reserved for duplicates of peripheral de- 
vices coupled to the bus. When more than one mouse is 
coupled to the bus, for example, the host computer 



puter 10. In the preferred embodiment, all devices com- 35 assigns new addresses to each mouse, those addresses 
municate with the host computer by a mini-phono jack being at tee soft address locations, 
with the following connecter assignments; tip-power. Although specific examples have been given for each 

ring-data, sleeve-power return. A "high" signal (1) is type of device coupled to the bus, there may be more 
2.4 volts minimum. A "low" signal (0) is 0.8 volts maxi- than one kind of each type of device with that address, 
mum. Although a single cable is contemplated in the 40 For example, a sketch pad has been given as an absolute 
preferred embodiment of the present invention, other device but a touch screen would also be considered an 
communications media, such as broad band methods, absolute device and be assigned the same fixed corn- 
fiber optic systems, and infrared signals, are contem- mand address as the sketch pad. In those situations, the 
plated. host computer will assign new addresses from the soft 

The bus of the present invention supports coded de- 45 address locations to each device, 
vices, (for which a keystroke represents a symbol or a In the preferred embodiment of the present invention, 

function, such as a keyboard 14), relative devices, (in the various peripheral devices have been assigned ad- 
which movement of a display cursor in response to a dresses as shown below: 
control device, such as a mouse 11 or 12, may be from 
any starting point), and absolute devices (for which 50 
there is a constant and direct relationship between dis- 
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 com- 55 
mon hard wired address 35, but further include an ad- 
dress unique to the individual device which the host 
computer must recognize before the device can be ac- 
cessed. For example, it is contemplated that appliances 
may be coupled to the host computer and controlled by 60 
the host computer. In such a situation, all appliances 
would have an identical hardwired fixed address. The 
host computer, on a first level, would simply address 
the hard wired address for appliances. At this time, all 
appliances coupled to that address are inactive. An 65 
individual appliance may be activated by the host com- 
puter if the host computer sends a signal to that appli- It will be appreciated by one skilled in the art that 
ance which matches the extended address of the appli- other addresses may be assigned to these devices con- 



Address 


Device Types 


Example 


0000 (zero) 


extended address 


security systems. 




device 


user ID 


0001 (one) 


extended address 
device 


appliances 


0010 (two) 


coded devices 


keyboard 


0011 (three) 


relative devices 


mouse, track ball 


0100 (four) 


absolute devices 


sketchpad, 
touch screen 


0101 (five) 


reserved 


none 


0110 (six) 


reserved 


none 


0111 (seven) 


reserved 


none 


1000 (eight) 


soft addressed 


duplicate peripheral 
devices 


1111 (15) 


soft addressed 


duplicate peripheral 
devices 



Page 0008 of 0012 



Apple Computer Inc. Patent : 4_912_627 



4,912,627 



taining more or less bits than in the preferred embodi- 
ment. Fixed hard-wired addresses 31, 32, ^ and 34 are 
shown in FIG. 1 for mouse 11, mouse 12, sketch pad 13, 
and keyboard 14, respectively. 

All peripheral devices have four registers in the pre- 5 
ferred embodiment to receive data and send data. For 
each device, register 3 talk and register 3 listen have 
status information such as device address and handler 
information. The remaining registers are data registers 
which are device specific except register 2 listen which 10 
contains the extended addresses for extended address 
devices or device specific contents for soft addressed 
devices. 

In the preferred embodiment of the present invention, 
there are three types of communication on the pcriph- 15 
eral bus: commands, data and global signals. Commands 
are sent from the host computer to the peripheral de- 
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. ^0 

In the preferred embodiment data is encoded as the 
ratio of low time to high time of each bit cell A bit cell 
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 25 
bit cell 20. Therefore, a "1" is defmed as a bit cell in 
which the low time is less than the high time as shown 
by cell 21 of FIG. 2. In the present preferred embodi- 
ment, a start bit is defined as a "1". A stop bit is a "0" 
which does not have an additional falling edge to define ^0 
the bit cell time. The stop bit is used to synchronize the 
stopping of transactions on the bus. 

The period for each bit cell of command signals and 
low speed data transmission is approximately 100 mi- 
croseconds plus or minus 30%. For high speed data ^5 
transmission, the bit cell is 50 microseconds plus or 
minus 1%. The format of a data transaction is a start bit 
(1), followed by up to 256 bits of data and ending with 
a stop bit. It will be appreciated that when other com- 
munications media are utilized, other signaling methods ^ 
may be utilized. 

Commands are sent only by the host. In the preferred 
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 '*5 
sent out. An attention pulse is generated by the host 
computer by transmitting a bus low for a period of 
"T-attn". In the preferred embodiment, T-attn is ap- 
proximately 560-1040 microseconds. The attention 
pulse is followed by a synch pulse to give the initial bus 50 
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. 55 

The conmiand is an 8 bit value in the preferred em- 
bodiment. 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: 

65 

Command Code 



6 

-continued 



Command 



Code 



Listen 
Talk 



Hush 



01 



The talk command orders the addressed device to 
provide its data to the host computer. The listen com- 
mand 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; ser- 
vice 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 millisec- 
onds, (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 accom- 
plished 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 pe- 
ripheral 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 de- 
vice. Bit A13 has been identified as the service request 
enable bit. When this bit is set high by the host com- 
puter, the device is enabled to hold the bus low after the 
stop bit of a command transaction, as shbwn in FIG. 6, 
if the device needs service. A device will keep request- 
ing 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 
does, it sets an internal flag bit Block 42. When the next 
command is se!it out from the host Block 42, the device 
checks to see if the command is addressed to the device 
Block 44. If the command was not addressed to the 
device Branch 45, the device checks to see if its service 
request enable bit, (bit A13 of register 3), is set high 
Block 47. If so Branch 48, it holds the bus low after the 
command stop bit Block 50. (See FIG. 6) The device 
then waits until the next command is received from the 
host to see if it will be addressed to talk Block 43. If the 
command is addressed to the device Branch 46, the 
device determines if it is a command to talk Block 51. If 
it is not a command to talk Branch 52 the device sends 
a service request Block 57, performs whatever com- 
mand is instructed Block 58, and awaits the next com- 
mand Block 43. If the command is to talk Branch 53, the 



Page 0009 of 0012 



Apple Computer Inc. Patent : 4_912_627 



4,912,627 
^ . 7 8 

device sends its data Block 59 and considers its service request transaction. Bit A1436 and A1537 are reserved 

request to be satisfied Block 60. The device continues to for future use and are set to 0. 

monitor itself to determine when it needs service Block When a device receives a talk R3 command the de- 
41. By allowing the host computer to control the ser- vice provides its status (handler and address) to the host 
vice request enable bit, more efficient operation of the 5 computer. If there are two devices of the same type 
bus is realized. When a service request is received, the coupled to the bus, only one can respond since the other 
host computer need only ask those devices whose ser- will detect a collision. FIG. 5 shows the method of 
vice request bit was enabled whether they need servic- assigning new addresses on the bus. 
ing. Additionally, the host computer can disable certain After receiving a talk R3 signal Block 101 the device 
devices that are not required for particular applications. 10 sends its status from Register 3. If the line goes low, the 
When sending data, the device is able to detect colli- device determines that there has been a collision Branch 
sions. If a peripheral device tries to output a 1 and the ***' " stops sending (untalks itself) and sete an internal 
data line is or goes to a 0, the device assumes it has lost ^^S bit to indicate a collision Block 106. The host sends 
a collision to another device. This means that another * listen R3 to tee mouse address Block 107. Each com- 
device is also sending on the bus. When this happens the '' ™™'* "■***** *•** internal collision flag of the device. The 
losing device untalks itself from the bus and preserves device checks to see if its collision bit is set Block 108. 
the data which was being sent for retransmission. The ^^ *® collision bit is not set Branch 109 the device 
device sets an internal flag bit if it loses a collision. Prior changes A8 through All to the soft address provided 
art peripheral devices were unable to detect collisions. ^^ '^* listen R3 command Block 111. In this manner the 
This novel feature of the present invention permits ^^ address of the winning device is changed with the host 
more efficient operation of the communications me- computer keeping track of the new address of the de- 
dium. By having the device sense a collision, it can V^^' ^^ ^ collision bit is detected by the device after a 
preserve the data that is transmitted and indicate to the ''***" ^ command Branch 110, the device does no 
host computer that it requires serving. Additionally, the change the soft address bits, but may change other fields 
collision detection scheme of the present invention does ^^ '" ^ '^^ *'°*' computer sends out another talk R3 
not require a waiting period before a collision is as- command Branch 101 to see if any devices remain at the 
sumed. A device will end its transmission if the line is '^°'^ address. In this situation the remaining mouse 
modulated by another device or simply not begin its „ T^ '1^ *^ ""^ ^^°^^ ^"2, not detect a collision 
transmission if he line is already in use. Further, this ,„ ^IV"^ "*' ^'^ ^°'' "* '**^^ ^^°^ ''^Bister 3 Block 
collision detection scheme is useful in locating multiple ^° "^- J^' ?°** co-nP^er will ^nd back a listen R3 corn- 
devices at a single hardwired address location, such as °^'' *° ''j^ '°°'f* address Block 107. The remaining 
mouse 11 and mouse 12 of FIG 1 ™°"^ "^^ "°^ '^^^^" * collision bit being set in this 
In such a situation, the host will change the address of ~" Branch 109 so it will change bits A8 through 
the devices by forcing a collision of devices sharing the ,, Jl" °'''^^ bTJv%U ^ T T'""" ^'°'".''' 
same address. The host achieves this by issuing a talk R3 " *'°'! computer Block 111. The host computer then 
commandaddressedtothosedevices. AsshowninFIG Tef,' r,"' Hni 'Vl . °°"™""'' '° '""^ "°"'-' *''■ 
3, Register 322 (one of the registers of the device) con- fu? .. T" J^'" ™^^'"== "° "^°^ '^^^^"^ " 
tarns the following information. Bits AO through A731 itwflnt, ."' '' H °'''^'' '^' *"''* 'TT^' 
contam a device handler which tells the host cLputer , ^^S tt m ^1"^^ '^"^ " "'^' °' ''' 

,„k;^k ^»„ u« u J u u """=»» "='" eral devices have a device on them to indicate activity 

r,v,n. Z ^ '^'h ". j"°'' '**"" °f /«^>=^' called the activator. The activator can be a special ke? 

tus In h!, r,!.!;°'"'" fl'''''^ "r"P'f •°-"'" °" ^ "^^y^"^" °^ ^ b""°" °" ^ "O"^- when more than 

are assigned ^Jt Xk^hr.^llh In« . T,^°''''°"' *' °"^ °f ^ ''^^'^ '^ '=°"P'«'i '° *« ""«' ^^e host computer 
are a!.signed to bits A8 through A1132 which then serve can display a message requesting one of the devices to 

^ot'H??n?T "^ °' that device. Until that time, use the activator. TTie host can%hen issue a listen R3 

hose bit ocations contom a random number which aids command which will change the address of the device 

in the detect on of collisions. For example if two mice which is activated. In this mamier individual devices 

received a talk R3 talk command and both bega^ talkuig 50 can be located and assigned new addresses in muhiuser 

at the same, neither would detect a collision. However, applications 

by having random numbers in the address field 32 of Thus, a peripheral device bus has been described 
register 322 the output of the two devices will eventu- which allows a plurality of peripheral devices 10 be 
ally differ. When that occurs, one of the devices will coupled to a host computer through a single port 
detect a collision and stop talking. Bit A1234 is a high 55 What is claimed is- = e k 
speed enable bit which if set, provides for data transmis- 1. a method for transferring signals and data, 
sion at the higher modulation rate (50 microseconds per wherein the signals and data are transferred under the 
bit frame). The high speed enable bit is set by the host control of a host computer between the host computer 
computer. If the host computer is unable to receive data and first and second peripheral devices, wherein the 
at the higher modulation rate, it sets the high speed 60 signals and data are transferred over a bus coupling the 
enable bit low in each of the devices. If the host com- first and second peripheral devices to the host com- 
puter is able to accept data at the higher modulation puter, wherein the bus is normally in a logical first state 
rate, and the device is able to transmit at the higher rate, and wherein the first and second peripheral devices 
(that information being contained in the handler bits 31 each initially contain an identical first number as a com- 
of register 3). the host computer sets the high speed 65 mand address for both the first and second peripheral 
enable bit 34 high for the device. As previously men- devices, comprising the steps of: 
tioned. bit A 13 35 is service request enable which is set the host computer transmitting a plurality of first 
by the host to enable the device to perform a service signals over the bus, wherein the plurality of first 



Page 0010 of 0012 



Apple Computer Inc. Patent : 4_912_627 



4,912,627 



10 



15 



20 



25 



30 



signals include a first talk command requesting any 
peripheral device with the first number as its com- 
mand address to (1) transmit data to the host com- 
puter and (2) reset a collision detect bit of that 
peripheral device to a logical second state; 
given that the first number is the command address of 
the first peripheral device, the first peripheral de- 
vice responding to the first talk command by at- 
tempting to transmit data over the bus to the host 
computer and, at the same time, the first peripheral 
device looking for a collision that indicates that the 
bus is currently in use, wherein a collision is de- 
tected if the first peripheral device attempts to 
transmit data in the logical first state on the bus but 
the bus is in or goes to the logical second state; 
given that the first number is the command address of 
the second peripheral device, the second peripheral 
device responding to the first talk command by 
attempting to transmit data over the bus to the host 
computer and, at the same time, the second periph- 
eral device looking for a collision that indicates 
that the bus is currently in use, wherein a collision 
is detected if the second peripheral device attempts 
to transmit data in the logical first state on the bus 
but the bus is in or goes to the logical second state; 
the first peripheral device not detecting a collision, 
and the first peripheral device transmitting its data 
to the host computer over the bus; 
the second peripheral device detecting a collision 
and, as a result, (1) the second peripheral device 
setting the collision detect bit to the logical first 
state from the logical second state and (2) stopping 
the transmitting of data to the host computer from 
the second peripheral device over the bus; 
the host computer transmitting a plurality of second 35 
signals over the bus, wherein the plurality of sec- 
ond signals include a first listen command request- 
ing any peripheral device with the first number as 
its command address to accept data sent by the host 
computer; 
the host computer sending a second number stored at 

a first soft address location as data over the bus; 
given that the first number is the command address of 
the first peripheral device, the first peripheral de- 
vice responding to the first listen command by 45 
storing the second number as the command address 
of the first peripheral device; 
the second peripheral device not accepting the sec- 
ond number from the bus because the collision 
detect bit of the second peripheral device is set to 
the logical first state; 
the host computer transmitting a plurality of third 
signals over the bus, wherein the plurality of third 
signals include a second talk command requesting 
any peripheral device with the first number as its 
command address to (1) transmit data to the host 
computer and (2) reset the collision detect bit of 
that peripheral device to the logical second state; 
the first peripheral device not responding to the sec- 
ond talk command, given that the first number is no 60 
longer the command address of the first peripheral 
device; 
given that the first number is the command address of 
the second peripheral device, the second peripheral 
device responding to the second talk command by 65 
attempting to transmit data over the bus to the host 
computer and, at the same time, the second periph- 
eral device looking for a collision that indicates 



10 



40 



50 



55 



that the bus is currently in use, wherein a collision 
is detected if the second peripheral device attempts 
to transmit data in the logical first state on the bus 
but the bus is in or goes to the logical second state; 

the second peripheral device not detecting a collision, 
and the second peripheral device transmitting its 
data to the host computer over the bus; 

the host computer transmitting a pluraUty of fourth 
signals over the bus; wherein the plurality of fourth 
signals include a second listen command requesting 
any peripheral device with the first number as its 
command address to accept data sent by the host 
computer; 

the host computer sending a third number stored at a 
second soft address location as data over the bus; 

the first peripheral device not responding to the sec- 
ond listen command, given that the first number is 
not longer the command address of the first periph- 
eral device; 

given that the first number is the command address of 
the second peripheral device, the second peripheral 
device responding to the second listen command 
by storing the third number as the command ad- 
dress of the second peripheral device. 

2. The method of claim 1 for transferring signals and 
data, further comprising the steps of: 

the host computer transmitting a plurality of fifth 
signals on the bus, wherein the pluraUty of fifth 
signals include a third talk command requesting 
any peripheral device with the first number as its 
command address to (1) transmit data to the host 
computer and (2) reset the collision detected bit of 
that peripheral device to the logical second state; 

the first peripheral device not responding to the third 
talk command given that the first number is no 
longer the command address of the first peripheral 
device; 

the second peripheral device not responding to the 
third talk command given that the first number is 
no longer the command address of the first periph- 
eral device; 

a time out period elapsing without the first and sec- 
ond peripheral devices responding, which indicates 
to the host computer that the host computer has 
completed assigning new command addresses to 
the first and second peripheral devices. 

3. The method of claim 2 for transferring signals and 
data, wherein 

the plurality of first signals comprise an attention 
signal, a synchronization signal, the first talk com- 
mand, and a stop signal; 

the plurality of second signals comprise an attention 
signal, a synchronization signal, the first listen com- 
mand, and a stop signal; 

the plurality of third signals comprise an attention 
signal, a synchronization signal, the second talk 
command, and a stop signal; 

the plurality of fourth signals comprise an attention 
signal, a synchronization signal, the second listen 
command, and a stop signal; and 

the plurality of fifth signals comprise an attention 
signal, a synclironization signal, the third talk com- 
mand, and a stop signal. 

4. The method of claim 3 for transferring signals and 
data, further comprising the step of any of the first and 
second peripheral devices requiring service generating 
a service request signal by holding the bus at a logical 
second state for a period of time after transmission of a 



Page 0011 of 0012 



Apple Computer Inc. Patent : 4_912_627 



11 



4,912,627 



plurality of signals from the host computer on the bus, 
wherein the service request signal indicates to the host 
computer that at least one of the peripheral devices has 
data to send to the host computer and requests a com- 
mand from the host computer that would permit the 
peripheral device to transmit the data to the host com- 
puter, and wherein transmission of the service request 
signal is selectively enabled or disabled by the host 
computer. 

5. The method of claim 4 for transferring signals and 
data, wherein at least one of the first and second periph- 
eral devices comprises a mouse. 

6. The method of claim 4 for transferring signals and 
data, wherein at least one of the first and second periph- 
eral devices comprises a sketch pad. 

7. The method of claim 4 for transferring signals and 
data, wherein at least one of the first and second periph- 
eral devices comprises a keyboard. 

8. The method of claim 4 for transferring signals and 
data, wherein the data is transferred on the bus in a 
retum-to-zero encoding scheme. 

9. The method of claim 4 for transferring signals and 
data, wherein the logical first state is a logical high state 
and the logical second state is a logical low state. 

10. The method of claim 9 for transferring signals and 25 
data wherein a third peripheral device is coupled to the 
host computer by the bus, wherein when the host com- 



12 



10 



15 



20 



puter sends over the bus a first address of the third 
peripheral device and a signal that matches an extended 
address of the third peripheral device, the third periph- 
eral device is initially activated, and wherein when the 
host computer then sends over the bus a subsequent 
command to the first address of the third peripheral 
device, the command is executed by the third peripheral 
device without the host computer sending the extended 
address of the third peripheral device. 

11. The method of claim 10 for transferring signals 
and data, wherein a fourth peripheral device is coupled 
to the host computer by the bus, wherein the fourth 
peripheral device has the same first address as the third 
peripheral device, wherein the fourth peripheral device 
has an extended address different from the extended 
address of the third peripheral device, wherein when 
the host computer sends over the bus the extended 
address of the fourth peripheral device after the third 
peripheral device has been activated, the fourth periph- 
eral device is initially activated and the third peripheral 
device is deactivated, and wherein when the host com- 
puter then sends over the bus a subsequent command to 
the first address of the fourth peripheral device, the 
command is executed by the fourth peripheral device 
without the host computer sending the extended ad- 
dress of the fourth peripheral device. 



30 



35 



40 



45 



50 



55 



60 



65 



Page 0012 of 0012