`McAlear
`
`USOO6389029B1
`(10) Patent No.:
`US 6,389,029 B1
`(45) Date of Patent:
`May 14, 2002
`
`(54) LOCAL AREA NETWORK INCORPORATING
`UNIVERSAL SERIAL BUS PROTOCOL
`(75) Inventor: James Allan McAlear, Ottawa (CA)
`
`GB
`WO
`
`(73) Assignee: Nortel Networks Limited, St. Laurent
`(CA)
`Subject to any disclaimer, the term of this
`patent is extended or adjusted under 35
`U.S.C. 154(b) by 0 days.
`
`(*) Notice:
`
`FOREIGN PATENT DOCUMENTS
`2325,997
`4/1998
`... GO6F/5/06
`9834.174
`2/1998 ........... GO6F/13/00
`OTHER PUBLICATIONS
`
`W. Schulte, “Das Usb Protokoll', FunkSchau, DE, Franzis
`Verlag K.G. Munchen, vol. 71, No. 11, May 15, 1998, pp.
`42-44 XP000784778 ISSN: 0016–2841 the whole docu
`ment.
`Universal Serial Bus Specification 1.0, published on Jan. 15,
`1996, authorized by Compaq, Digital Equipment Corpora
`tion, IBM PC Company, Intel, Microsoft, NEC, Northern
`Telecom.
`cited by examiner
`Primary Examiner Ricky Ngo
`
`(56)
`
`(21) Appl. No.: 09/188,297
`(22) Filed:
`Nov. 10, 1998
`(51) Int. Cl." ................................................ H04L 1266
`(52) U.S. Cl. ........................................ 370/402; 370/465
`(58) Field of Search ................................. 370/254, 255,
`ABSTRACT
`(57)
`370/257, 401, 400, 465, 666, 352, 353,
`354, 355, 356, 389, 395, 402, 403, 404,
`The invention relates to local area networks typically CO
`407, 411; 709/249, 250, 253
`prising a LAN hub, a plurality of Outer hub devices con
`nected to the LAN hub via a respective plurality of LAN
`References Cited
`links and a plurality of USB devices and/or LAN computers
`connected to the plurality of Outer hub devices via a respec
`U.S. PATENT DOCUMENTS
`tive plurality of USB links. The outer end hubs communicate
`4,493,021 A 1/1985 Agrawal et al. ............ 364/200
`with the USB devices and LAN computers using USB
`5,299,314 A 3/1994 Gates ..................
`... 305,200
`protocol having time Sensitive aspects. To Satisfy the
`5.436902 A 7/1995 McNamara et al. ....... 370/85.3
`requirements of the USB protocol, the outer hub devices
`5,537,558 A
`7/1996 Fletcher et al. ......
`... 395/309
`perform the time sensitive aspects of the USB protocol. The
`5,581,556. A 12/1996 Ohie ............
`... 370/431
`outer end hubs communicate with the LAN hub using a LAN
`5,655,138 A 8/1997 Kikinis...........
`... 395/808
`protocol which permits the outer hub device to be further
`5,659,684 A 8/1997 Giovannoni et al.
`395/2008
`i. A : ly E. Elah tal... - - - - R than 5 meters from the LAN hub. The LAN protocol is
`6,108,314 A
`8/2000 Jones ......................... A typically a variant of the USB protocol.
`6,167,043 A 12/2000 Frantz ........................ 370/356
`6.249,527 B1 * 6/2001 Verthein et al. ............ 370/466
`57 Claims, 31 Drawing Sheets
`
`2Y-- 12
`
`ea e a
`
`- - -
`
`5 - a
`
`NETWORKS)
`
`NETWORK
`DEVICE
`
`
`
`
`
`30
`
`1O
`
`LANUB
`
`OPIONAL
`UN-NTERUPTABLE
`POWERSUPPLY
`
`
`
`
`
`
`
`LAN
`- 260
`COMPUTERV
`28O
`d in 11
`
`LANCOMPUTER
`
`USBHUB
`
`152
`
`240 275
`
`ENHANCED
`ATACHMENUNT
`
`110
`
`270
`
`COMPOSITE
`END HUB
`
`AN
`COMPUTER USBDEVICE
`
`USBDEVICE
`
`END HUB
`
`
`
`
`
`
`
`
`
`215
`LAN
`COMPUTER
`
`84. 5330
`
`5340
`
`SAMSUNG
`EX 1007, PAGE 1
`
`
`
`U.S. Patent
`
`May 14, 2002
`
`Sheet 1 of 31
`
`US 6,389,029 B1
`
`
`
`
`
`
`
`PERSONAL
`COMPUTER (HOST)
`
`
`
`NETWORK CONNECTION
`
`
`
`
`
`
`
`USB ROOT HUB
`A A A
`
`USB HUB DEVICE
`
`FIG. 1
`PRIOR ART
`
`TOKENS
`PID
`8 bits
`
`ADDR
`7
`
`ENDP CRC5
`4.
`5
`FIG. 2A
`PRIOR ART
`
`PIDs: Out, In, Setup
`
`SOF
`
`PID
`8 bits
`
`FRAME #
`11
`
`PIDs: SOF
`
`CRC5
`5
`FIG. 2B
`PRIOR ART
`
`SAMSUNG
`EX 1007, PAGE 2
`
`
`
`U.S. Patent
`
`May 14, 2002
`
`Sheet 2 of 31
`
`US 6,389,029 B1
`
`DATA
`PID
`8 bits
`
`CRC16
`DATA
`0-1023 BYTES 16
`FIG. 2C
`PRIOR ART
`
`PIDs: DATAO, DATA1
`
`HANDSHAKE
`
`8 bits
`
`PIDs: ACK, NAK, STALL
`
`FIG. 2D
`PRIOR ART
`
`SPECIAL - LOW SPEED PREAMBLE
`
`8 bits
`
`PIDs. PRE
`
`FIG. 2E
`PRIOR ART
`
`SAMSUNG
`EX 1007, PAGE 3
`
`
`
`U.S. Patent
`
`May 14, 2002
`
`Sheet 3 of 31
`
`US 6,389,029 B1
`
`
`
`
`
`
`
`BUSIDLE
`
`DEVICEPACKET
`
`HOSTPACKET
`
`FG. 3
`PRIOR ART
`
`BUSIDLE
`
`
`
`TOKEN
`OR DATA
`
`DEVICEPACKET
`
`HOSTPACKET
`
`FIG. 4
`PRIOR ART
`
`SAMSUNG
`EX 1007, PAGE 4
`
`
`
`U.S. Patent
`
`May 14, 2002
`
`Sheet 4 of 31
`
`US 6,389,029 B1
`
`BUSIDLE
`
`
`
`TOKEN
`
`HANDSHAKE
`
`BUSIDLE
`HOSTPACKET
`
`DEVICEPACKET
`
`FIG. 5
`PRIOR ART
`
`BUSIDLE
`
`
`
`TOKEN OR
`DATA
`ERROR
`
`DEVICEPACKET
`
`BUS DLE
`HOSTPACKET
`
`FIG. 6
`PRIOR ART
`
`SAMSUNG
`EX 1007, PAGE 5
`
`
`
`S.U
`
`3
`
`2
`
`m
`
`
`tanE3Nn555825lwa:5:528553
`on”8m25éesmz8.S
`
`.lm,8.8E.orIm55.5_|L\aEM8—onc:53525::BC2:ms:mm:
`m.SBEE-m.x:a:
`SEES
`
`
`
`
`
`
`
`
`
`
`MDeNEa2:2:2.:asmmusmamm:$25.28Emomsau
`
`1x:
`
`
`
`2:5:2mm:
`
`93mm8?.g
`
`0,5:3289Exw23EN6,gmS83El.U8_
`
`ow
`
`on
`
`max25
`
`c
`_
`
`.Ezo—Eo
`
`5m<E2me2+22
`
`>._n_n_=mEgon
`
`53?.
`
`amon
`
`N.wE
`
`SAMSUNG
`
`EX 1007, PAGE 6
`
`SAMSUNG
`EX 1007, PAGE 6
`
`
`
`
`
`
`US. Patent
`
`May 14, 2002
`
`Sheet 6 0f 31
`
`US 6,389,029 B1
`
`<5.w:
`
`2:
`
`om
`
`mm
`
`g
`
`2:
`
`mm:
`
`muSm—a
`
`cm
`
`mm:mm:
`
`$58$58
`
`mm8all
`
`g
`
`8J
`
`53cm
`
`8
`
`S
`
`8
`
`éoamz
`
`mean
`
`—am
`
`am
`
`m2:5:
`
`o—
`
`Visas:
`
`£58
`
`cm
`
`
`
`omm
`
`SAMSUNG
`
`EX 1007, PAGE 7
`
`SAMSUNG
`EX 1007, PAGE 7
`
`
`
`U.S. Patent
`
`May 14, 2002
`
`Sheet 7 of 31
`
`US 6,389,029 B1
`
`08
`
`
`
`06HELÎld W00
`
`8TH NWT
`
`HEMOd
`
`09
`
`
`
`SAMSUNG
`EX 1007, PAGE 8
`
`
`
`U.S. Patent
`
`May 14, 2002
`
`Sheet 8 of 31
`
`US 6,389,029 B1
`
`
`
`HLÍS0d W00
`8ÍTH CINE
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`08
`
`SAMSUNG
`EX 1007, PAGE 9
`
`
`
`U.S. Patent
`
`May 14, 2002
`
`Sheet 9 of 31
`
`US 6,389,029 B1
`
`1O y
`
`MICROPROCESSOR
`
`310
`
`345
`
`L
`
`315
`
`300 - 350
`... I
`
`L
`
`370
`
`365
`
`2O
`
`380 330
`
`LINK C
`= T.
`CTRL
`
`in
`
`is: Links, but
`
`322
`
`SWITCH
`
`CTRL m
`
`r
`sank in But
`322
`
`400
`
`8O
`
`LINK C
`
`I
`
`CTRL, H H
`GBUFunks
`90
`
`I
`
`|LINK C
`CTRL
`LINKS
`
`330
`
`32O
`
`315
`240
`
`-
`250
`
`480 490 330
`460
`L EUF- 32O
`CTRL.
`He
`
`12O
`
`Tere
`A.
`
`47O
`
`500 450
`
`315
`
`160
`LINK C
`CTRL FH
`rx BUFLNKS
`170
`
`410
`
`420
`
`FIG. 8
`
`315
`
`SAMSUNG
`EX 1007, PAGE 10
`
`
`
`U.S. Patent
`
`May 14, 2002
`
`Sheet 10 of 31
`
`US 6,389,029 B1
`
`62O
`
`T8D BUFFER
`
`B
`CONTROLL
`
`
`
`A
`
`670
`
`FC
`
`650
`
`HB
`
`CTRL
`
`
`
`
`
`90
`
`LAN
`Tx/Rx
`
`
`
`FIG. 9
`
`SAMSUNG
`EX 1007, PAGE 11
`
`
`
`U.S. Patent
`
`May 14, 2002
`
`Sheet 11 of 31
`
`US 6,389,029 B1
`
`
`
`*Q_08/
`
`
`
`SAMSUNG
`EX 1007, PAGE 12
`
`
`
`U.S. Patent
`US. Patent
`
`May 14, 2002
`
`Sheet 12 0f 31
`
`US 6,389,029 B1
`
`
`
`
`
`o:All”53:3EEIEHEI
`
`
`
`Ema-ME-Iv
`
`
`
`giga-.lv
`
`
`
`28/;“z:.2”—
`
`
`
`\vEma-MEIlvEEOEa:
`
`871
`
`E:.w:
`
`a:a:a:
`
`E:.w:
`
`All5::5%:EE-
`
`
`|v4/E\VEma-HalIVE
`\vUS$23llama-
`
`
`a:AlSEE-HB-
`
`(~zu
`
`omNmmN
`4/3“
`
`a:
`
`
`
`\«AI|25::MEI-HB-
`
`4/88
`*Q 0006
`
`
`SAMSUNG
`
`EX 1007, PAGE 13
`
`«/2;
`
`
`
`SAMSUNG
`EX 1007, PAGE 13
`
`
`
`
`U.S. Patent
`
`May 14, 2002
`
`Sheet 13 of 31
`
`US 6,389,029 B1
`08/
`
`G8/
`
`
`
`SAMSUNG
`EX 1007, PAGE 14
`
`
`
`US. Patent
`
`m0
`
`MMM
`
`0,
`
`1
`
`
`
`
`
`05.w<._.<E._._Emc_<z:_z55:2”EH.9IV\EE\EIv
`
`ER25—2.55.5.
`
`‘ll
`
`
`
`a:2:(/2:
`
`2,Maj»Es_”Emu:5EE-M4/MW9:mm:=22:Ema-@IVs:
`
`8—w:
`
`Blw<2w:
`
`2K
`
`
`|.v4/ wEEEm,All:EmHEE-mQEQEEEEEElsa-
`
`\«9:
`
`SAMSUNG
`
`EX 1007, PAGE 15
`
`SAMSUNG
`EX 1007, PAGE 15
`
`
`
`
`
`U.S. Patent
`
`May 14, 2002
`
`Sheet 15 0f 31
`
`US 6,389,029 B1
`
`SAMSUNG
`EX 1007, PAGE 16
`
`
`
`U.S. Patent
`
`May 14, 2002
`
`Sheet 16 of 31
`
`US 6,389,029 B1
`
`97/
`
`
`
`99/
`
`
`
`
`
`SAMSUNG
`EX 1007, PAGE 17
`
`
`
`U.S. Patent
`US. Patent
`
`May 14, 2002
`
`Sheet 17 0f 31
`
`US 6,389,029 B1
`US 6,389,029 B1
`
`EVE:A:
`
`v2iii:'8/IEE35%_‘IV‘IIIV‘IIV‘IVAIVI‘IIIV
`
`fife:
`
`\28
`
`
`
`‘I'AI'VI‘IIIVIAIAI3:55iEEEEEEEEgg
`
`88k
`
`\IEEIEIE
`
`555.n:
`
`3_.w:
`
`SAMSUNG
`
`EX 1007, PAGE 18
`
`SAMSUNG
`EX 1007, PAGE 18
`
`
`
`U.S. Patent
`
`May 14, 2002
`
`Sheet 18 of 31
`
`US 6,389,029 B1
`
`NETWORK
`TION
`2
`CONNECTION VIRTUAL MODEM d
`
`INPACKET (BULKTRANSFER 64 BYTES MAX.)
`OUTPACKET (BULK TRANSFER 64 BYTES MAX
`.)>152
`CONTROL ENDPOINTO
`
`110
`
`FIG. 12
`
`110 N
`
`
`
`900
`
`810
`
`ENDPOINTO, 2
`BUFFERS
`
`TX
`
`840
`
`
`
`ATTACHMENTH
`CONTROL
`UNIT
`
`890
`
`
`
`ADDRESS REG
`
`RX
`
`870.JCRC CHECK TOKEN CHECK
`
`154
`
`TO HOST
`USBPORT
`
`
`
`ENDPOINTO, 1
`BUFFERS
`
`830
`
`FIG. 13
`
`SAMSUNG
`EX 1007, PAGE 19
`
`
`
`U.S. Patent
`
`May 14, 2002
`
`Sheet 19 of 31
`
`US 6,389,029 B1
`
`
`
`260
`
`
`
`LAN
`CM
`SW COMPUTER
`
`USB HUB
`
`282
`
`28O
`
`FIG. 14
`
`SAMSUNG
`EX 1007, PAGE 20
`
`
`
`U.S. Patent
`
`May 14, 2002
`
`Sheet 20 Of 31
`
`US 6,389,029 B1
`
`98/
``A
`
`
`
`*Q_07/
`
`SAMSUNG
`EX 1007, PAGE 21
`
`
`
`US. Patent
`
`May 14, 2002
`
`Sheet 21 0f 31
`
`US 6,389,029 B1
`
`m:EEE2:
`
`
`
`
`
`\v3.3::EEEI-Ha-|v(/9:
`
`E
`
`EEHHEI
`
`IV\V4/9:
`
`E:.w:
`
`
`
`momma523.2:M:EB;E:v_m<AllEEm.55..
`
`
`
`DEMEmommav_z_:;E.HEmaxfiAl:Emgal/NE
`
`
`
`
`
`WE.w:
`
`
`
`AllvzzafimamuwfiéHEE-
`
`Ea:
`
`SAMSUNG
`
`EX 1007, PAGE 22
`
`SAMSUNG
`EX 1007, PAGE 22
`
`
`
`
`US. Patent
`
`Mnmmm.m,WM
`
`US 6,389,029 B1
`
`m:
`
`
`
`a2mm888mm8mm8%
`\VV222325::Sagina-luv/
`
`
`
`
`
`
`
`EEEé:2EE:8x2AlEm:Haul/28
`
`a:
`
`SAMSUNG
`
`EX 1007, PAGE 23
`
`
`
`Eammufi23mE2:8.ES:EEmmE.moEamuwmm_
`
`mm:d:
`
`
`
`
`
`
`
`vac.Smmwmuzm<._:.22EEEmmmd;.5qu255...m=.:.Algaug-
`
`SAMSUNG
`EX 1007, PAGE 23
`
`
`
`U.S. Patent
`
`May 14, 2002
`
`Sheet 23 of 31
`
`US 6,389,029 B1
`
`0986
`
`/* ENTÈNI ----
`
`
`
`XWN|080 (8 VIVO INEXIOIDINIRJIETTAXINT*Q_
`
`*Q_07/
`
`0986
`
`
`
`
`
`
`
`1996 9986 #986 Z986
`
`
`
`
`
`SAMSUNG
`EX 1007, PAGE 24
`
`
`
`U.S. Patent
`
`May 14, 2002
`
`Sheet 24 of 31
`
`US 6,389,029 B1
`
`
`
`5
`2 3-1
`
`O
`SS
`g
`n
`5-1
`
`Ca
`l
`
`CN
`
`O
`
`CN
`
`O
`CY
`N
`
`O
`CN
`
`N
`
`O
`
`N
`
`O
`Vima
`O
`O
`
`\ 6 te
`
`u
`O
`
`V
`
`C
`L
`
`SAMSUNG
`EX 1007, PAGE 25
`
`
`
`US. Patent
`
`May 14, 2002
`
`Sheet 25 0f 31
`
`US 6,389,029 B1
`
`
`
`3mmommmommmoEN¢/././,
`
`
`
`Al%22$:25::Ems-Ea-
`
`4/83
`
`28K
`
`
`
`glam-Iv
`
`
`
`2.:.wE
`
`SAMSUNG
`
`EX 1007, PAGE 26
`
`SAMSUNG
`EX 1007, PAGE 26
`
`
`
`
`U.S. Patent
`
`May 14, 2002
`
`Sheet 26 of 31
`
`US 6,389,029 B1
`
`240 y
`
`1110
`
`1130
`
`TO LAN
`HUB
`
`
`
`l
`
`112O
`
`MICRO
`
`CONTROLLER
`
`270
`
`11 OO
`FIG. 16
`
`1160
`
`SAMSUNG
`EX 1007, PAGE 27
`
`
`
`U.S. Patent
`
`May 14, 2002
`
`Sheet 27 of 31
`
`US 6,389,029 B1
`
`200 N
`
`527O
`
`BUFFERS A
`
`5290
`
`CRC CHECK ATOKEN CHECK A
`
`TO
`ADDRESS REGA YRTAH
`S.
`PORTUSB
`MODEMBRIDGE
`H CONTROL
`ADDRESS REGB
`CRC CHECKB | TOKEN CHECKB
`
`5330
`
`
`
`TO HOST
`USBPORT
`
`BUFFERS B
`
`528O
`
`FIG. 17
`
`SAMSUNG
`EX 1007, PAGE 28
`
`
`
`U.S. Patent
`
`May 14, 2002
`
`Sheet 28 of 31
`
`US 6,389,029 B1
`
`TO LAN
`HUB
`
`
`
`
`
`5750
`
`
`
`
`
`
`
`
`
`MICRO
`CONTROLLER
`5710
`
`TO HOST
`
`HUB
`REPEATER
`58OO
`
`
`
`HUBCTRL
`5780
`
`FIG. 18
`
`SAMSUNG
`EX 1007, PAGE 29
`
`
`
`US. Patent
`
`May 14, 2002
`
`Sheet 29 0f 31
`
`US 6,389,029 B1
`
`=._b=snz<m
`32mac:EN$291252.3.m32moo:EN2:5525..26N22moo:manwon229..
`
`.2anF225.com:29:52::m2...
`
`WEE.zc_._.<=._.m_2=2=<a22:33.:
`
`
`222.5a552:mm: Ed:
`
`
`
` 9:822.“quN52:3N82:22ch—omwmmmngFmam—manw=h<hmaway—=22.55..:2
`
`
`
`mwmmu22.222:2x22<mm
`
`22.72293:
`
`mini.
`
`
`
`$332mzozmmdh>2253
`
`
`
`8332mzozmmdh>2255
`
`cm6:
`
`SAMSUNG
`
`EX 1007, PAGE 30
`
`SAMSUNG
`EX 1007, PAGE 30
`
`
`
`U.S. Patent
`
`May 14, 2002
`
`Sheet 30 0f 31
`
`US 6,389,029 B1
`
`
`
`
`
`
`
`HT0A0X0010 WW8908'd H0 %
`
`
`
`
`
`318|WI TWAHHINI HOIMHHS 8 N011d.180SEU INI0d0INE HOIABIO
`
`
`
`
`
`SAMSUNG
`EX 1007, PAGE 31
`
`
`
`U.S. Patent
`
`May 14, 2002
`
`Sheet 31 of 31
`
`US 6,389,029 B1
`
`
`
`
`
`ET8W 1 NOISSES
`
`SAMSUNG
`EX 1007, PAGE 32
`
`
`
`1
`LOCALAREANETWORK INCORPORATING
`UNIVERSAL SERIAL BUS PROTOCOL
`
`US 6,389,029 B1
`
`2
`Solution has drawbacks. The host computer used to mediate
`the connection between the communications network and
`the Universal Serial Bus can suffer from common reliability
`problems caused by the host computer being crashed, the
`host computer being infected by a virus, the host computer
`being powered off or even the host computer being removed
`(e.g. a notebook PC being used as the host computer).
`Furthermore, for USB devices placed in conference rooms,
`reception areas, hotel rooms, etc., deploying at least one host
`computer (Such as a PC) in every Such room is usually not
`practical nor cost efficient. Furthermore, many devices, Such
`as a telephone, do not inherently need or use the function
`ality of the host computer beyond the network connectivity
`it provides. The invention disclosed herein will address these
`drawbackS.
`Each USB hub device (including the root hub interface or
`root hub device) has a hub controller for controlling the USB
`ports (also called Sub-tending ports). The hub controller can
`be accessed via data transfers on the Universal Serial Bus
`between the host computer and the USB hub device.
`The host computer runs Operating System software (OS)
`that includes USB host Software, client Software and device
`drivers. The USB host software manages the Universal
`Serial Bus. The client software is typically one or more
`Software programs for one or more applications Such as
`word processing, communications, spreadsheets or Software
`programs (including device drivers) designed to interact
`with external devices Such as printers, Scanners, modems,
`etc. The client Software and the USB host Software interact
`with each other. (Discussed in more detail later).
`Once a USB device (including a hub device) is first
`connected to a USB port, the USB host software assigns a
`unique USB device address to the USB device. A given USB
`device typically has a plurality of Sub-functions contained
`within it. The host computer interacts with each sub-function
`by exchanging data with a corresponding unique end point
`within the USB device. Each end point has a unique end
`point number.
`Every USB device has at least one end point, end point 0
`(Sometimes called control end point 0), which is a control
`end point for the device (e.g. the hub controller for a hub
`device is addressed through end point 0). Through interac
`tion with the control end point 0, the USB host software in
`the host computer can determine what other end points are
`available on the USB device for interactions with client
`Software as well as configure these end points or reset the
`USB device. All the other end points (i.e. all the end points
`other than the control end point 0) are sometimes called
`functional end points. A functional end point can either
`receive data from the host computer or transmit data to the
`host computer but not both. Only the control end point 0 can
`both receive data from the host computer and transmit data
`to the host computer.
`Each USB port uses four wires, two data wires for data
`transmission and reception and two wires for carriage of
`power (one 5 volt Source power wire and one ground wire).
`Each USB hub device detects the connection or discon
`nection of USB devices from the USB hub device by sensing
`the amount of current flowing through each USB port. As
`mentioned earlier, two general types of USB devices can be
`connected to a USB hub device, low speed USB devices
`which operate at the low speed (1.5 Mbs) and full speed
`USB devices which operate at the full speed (12 Mbs). These
`different USB devices cause different current draw charac
`teristics when attached to a USB port in order that a full
`speed USB device can be distinguished from a low speed
`USB device. When a low speed USB device is connected to
`
`15
`
`35
`
`40
`
`25
`
`FIELD OF INVENTION
`The invention relates in general to local area networks and
`in particular to local area networks incorporating Universal
`Serial Bus (USB) capabilities.
`BACKGROUND OF THE INVENTION
`The computer industry has recently formulated a new
`Serial bus Standard for interfacing peripherals and devices to
`computers. The new Serial bus Standard is known as a
`Universal Serial Bus (USB). The USB is a four wire bus
`which SupportS is ochronous and asynchronous
`communications, multiple Sub-channels of varied payload
`sizes for fan out of up to 127 USB devices (including low
`power USB devices), integrated powering for low power
`USB devices, simple connectors and hot plug and play for
`easy addition and removal of USB devices by a user. The
`Universal Serial Bus has its own protocol, the USB protocol,
`which Supports two transmission speeds, full speed (12
`Mbs) for full speed USB devices and low speed (1.5 Mbs)
`for low speed USB devices.
`FIG. 1 shows a computer network comprising a host
`computer, a Universal Serial Bus, and a plurality of USB
`devices. In particular, a USB interface (typically called a
`root hub interface or root hub device) from the host com
`puter offers at least one USB port but typically offers a
`plurality of USB ports (e.g. 2 which share a specified
`bandwidth of the USB interface) to which the USB devices
`may connect over cables not exceeding 5 meters. Additional
`USB devices can be Supported in the bandwidth through the
`use of a special type of USB device, a USB hub device. Up
`to five USB hub devices may be daisy chained. That is, a first
`USB hub device may be connected, to one of the USB ports
`of the USB interface with a cable not exceeding 5 meters.
`The first USB hub device typically provides a number of
`additional USB ports (e.g. 4) to which additional USB
`devices may be connected over cables not exceeding 5
`meters. A second USB hub device may be connected to one
`of the USB ports of the first USB hub device by a cable not
`exceeding 5 meters. Up to 5 USB hub devices may be daisy
`chained in this way. The length of each cable Segment cannot
`exceed 5 meters (i.e. the reach limitation of each cable
`segment is 5 meters). Only USB devices, other than a USB
`hub device, may be connected to the fifth USB hub device.
`Consequently, the furthest a USB device can be from the
`host computer is 30 meters (six 5 m cables). i.e. the total
`reach limitation is 30 meters according to the USB protocol.
`There are a variety of USB devices that can be connected to
`a Universal Serial Bus ranging from: printers, Scanners,
`Video cameras, keyboards, monitors, telephones, label
`printers, bar code readers, modems, disk drives, etc. Many
`of the new computers Sold today, (Such as personal com
`55
`puters (PCs) and the new iMac), have at least one USB
`port.
`* Trade-mark
`Many of the USB devices which can be connected to the
`host computer via the Universal Serial Bus can also be
`60
`advantageously used for applications running over a com
`munications network (such as a local area network (LAN) or
`a wide area network (WAN)), to allow remote computers,
`Servers or even telephone Switches to exploit their function
`ality. Communication software and hardware within the host
`computer can mediate the connection between the commu
`nications network and the Universal Serial Bus, but this
`
`45
`
`50
`
`65
`
`SAMSUNG
`EX 1007, PAGE 33
`
`
`
`3
`a USB port, the USB port is sometimes called a low speed
`port. Similarly, when a full speed USB device is connected
`to a USB port, the USB port is sometimes called a full speed
`port.
`Every USB hub device manages the status of each of its
`USB ports. When a USB device is first connected to one of
`the USB ports of a USB hub device, the USB hub device
`changes the Status of the USB port from a disconnected State
`to an attached State. In the attached State, regular bus
`communication does not flow through the USB port to the
`USB device. When a USB device is disconnected from one
`of the USB ports of a USB hub device, the USB hub device
`changes the Status of the USB port to the disconnected State.
`The USB host software polls each hub device periodically
`and the USB hub device indicates whether the status has
`changed for any of its USB ports. Once the USB host
`Software has received indication of a Status change for one
`or more USB ports, the USB host software will issue
`commands to the hub controller of the USB hub device (via
`its control end point 0) to determine the nature of the status
`change and react accordingly for each changed USB port in
`turn. For instance, the USB host software will respond to a
`new USB device connected to a USB port by sending a reset
`command, directed to the USB port of the USB hub device
`connected to the newly attached USB device. The USB
`device sends the reset command via the USB port to the
`newly attached USB device. The USB device will respond
`by placing itself in a default State. In the default State, the
`USB device responds to a USB device address 0. After the
`reset command has been completed, the USB hub device
`changes the status of the USB port from the attached state to
`a default State. Once a USB port is in the default State,
`regular bus communications can flow through the USB port
`to the USB device using USB device address 0. Next, the
`USB host Software will issue a command to the USB device
`(using the USB device address 0) to assign a new, unique
`USB device address to the USB device. Once assigned, the
`host can now enable another recently connected USB device
`at another USB port with the USB device address 0. Once
`a USB device has been given a device address, the USB
`device Still requires a configuration command before it can
`be used. When a USB device has a device address but is not
`configured, the USB device and the respective USB port are
`in an addressed State. In the addressed State, only the control
`end point 0 of the USB device can be addressed by the USB
`host software. The USB host software typically issues
`commands to the control end point 0 of the USB device
`requesting a description of the USB device's end points
`(buffer sizes, direction and Service rates), a description of the
`USB device's manufacturer, model and serial number and
`even a description of the USB device (e.g. a brand X USB
`colour printer). These descriptions are made available to the
`client software by the USB host software. Once the client
`Software needs to use a USB device, the configuration
`command is issued to the USB device by the USB host
`Software, whereupon the USB device and the respective
`USB port will be placed in a configured state. A user
`typically interacts with the USB device through the media
`tion of client Software. In the configured State, the device's
`functional end points become operational in addition to its
`control end point. (The only exception relates to USB hub
`devices which cannot be accessed by client software. Only
`the USB host Software can access hub devices. Conse
`quently, the USB host Software issues the configuration
`command to each USB hub device independently of the
`client Software).
`
`15
`
`25
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`US 6,389,029 B1
`
`4
`Closing communication with a USB device, other than a
`USB hub device, in the configured state can be initiated by
`the client Software. Any Such request from the client Soft
`ware is intercepted by the USB host software. The USB host
`Software Sends a de-configuration command to the USB
`device. Upon receipt, the USB device and the respective
`USB port are placed in the addressed state. If the USB
`device is physically disconnected from the USB hub device
`(including the root hub device), the USB hub device changes
`the status of the USB port to the disconnected State. As
`mentioned earlier, the USB host software polls each USB
`hub device periodically. During these periodic polls, the
`USB device will indicate to the USB host Software that the
`USB device has been disconnected from the USB port.
`Information is carried on the Universal Serial Bus in
`packets (“USB packets”). Packets sent at the low speed are
`called low Speed transmissions. Similarly, packets Sent at the
`full speed are called full speed transmissions. Each USB
`packet transmitted on the Universal Serial Bus is delineated
`by sync fields (for clock recovery) at the start of each USB
`packet, followed by the USB packet, and ending with a
`Special end of USB packet Signalling on the Bus. Referring
`to FIGS. 2A, 2B, 2C, 2D and 2E, the USB protocol supports
`five different main types of USB packets: a token packet, a
`Start of frame packet, a data packet, a handshake packet and
`a special low Speed preamble packet. At the beginning of
`each USB packet is a packet identifier or PID. According to
`the USB protocol, there are ten different types of PIDs.
`USB packets are Sent within a plurality of transmission
`frames. Each frame is one millisecond long. Referring to
`FIG.2B, start of frame packets are issued from the USB host
`Software according to a precise one millisecond Schedule.
`Each start of frame packet consists of a start of frame PID,
`a frame number and a CRC for error checking.
`Data is carried on the Universal Serial Bus through the use
`of USB transactions. A USB transaction involves transmis
`sion of up to three USB packets for full speed transmissions
`and four packets for low speed transmissions. The USB host
`Software formats the data destined to the USB devices into
`USB packets according to the USB protocol. (Described in
`more detail below). Similarly, each USB device formats data
`destined to the host computer into USB packets according to
`the USB protocol. (Described in more detail below).
`Data is either transferred (“a data transfer”) from the host
`computer to a USB device (an “Out transaction” or an “USB
`Control Setup transaction”) or from a USB device to the host
`computer (an "In transaction”). There are three types of
`token packets: an In token packet for In transactions, an Out
`token packet for Out transactions and a Setup-token packet
`for USB Control Setup transactions. Referring in particular
`to FIG. 2A, the PID of the token packet identifies the type
`of the token packet. (i.e. there are three different PID's for
`token packets: one for Out token packets, one for In token
`packets and one for Setup token packets). Each token packet
`also contains a field for the USB device address and a field
`for the end point number of the USB device to which the
`USB transaction is addressed. Finally, each token packet
`contains a field for a CRC check used for error checking.
`Information in the token packet (i.e. the type of token
`packet, the USB device address, the end point number and
`the CRC) is sometimes called a token.
`Each USB transaction typically begins when the USB
`host Software in the host computer, on a Scheduled basis,
`sends a token packet. The USB device that is addressed
`selects itself by decoding the USB device address contained
`in the token packet.
`Following the token packet, a data packet is typically Sent
`either from the USB host Software or the USB device
`
`SAMSUNG
`EX 1007, PAGE 34
`
`
`
`S
`depending on the type of the token packet. Referring to FIG.
`2C, each data packet consists of a PID, data and a CRC for
`error checking. There are two PID's used for data packets:
`a Data 0 PID and a Data 1 PID. These two PID's provide for
`alternating 0,1 labelling of data packets for Sequence error
`checking. (Isochronous transactions are not checked for
`Sequence errors since all data packets use data 0 PID). A
`proper Sequence of data packets occurs when no two con
`secutive data packets to or from the same end point number
`of the same USB device have the same PID. i.e. The first
`data packet sent to or from a USB device will use the data
`0 PID, the second data packet sent to or from the same USB
`device will use the data 1 PID, the third data packet sent to
`or from same USB device will use data 0 PID, etc. If a USB
`device or the USB host Software receives two consecutive
`data packets addressed to the same end point number with
`the same PID, a Sequence error has occurred.
`The data can be up to 1024 bytes for isochronous com
`munications and up to 64 bytes for asynchronous commu
`nications. A data payload size is the number of bytes in the
`data. Specific data payload sizes are associated with each
`endpoint.
`Referring to FIG. 2D, for asynchronous communications,
`the USB host Software or the USB device that received the
`data packet responds with a handshake packet. There are
`three types of handshake packets: an acknowledgement
`handshake packet (or ACK handshake packet), a negative
`acknowledgment handshake packet (or NAK handshake
`packet) or a Stall handshake packet. The type of handshake
`packet is indicated by the PID in the handshake packet. (i.e.
`there are three different PID's for handshake packets: one for
`acknowledgement handshake packets, one for NAK hand
`shake packets and one for Stall handshake packets).
`As mentioned earlier, there are low speed USB devices
`and full speed USB devices which can be connected to the
`Universal Serial Bus. The hub controller in each USB hub
`device disables transmission on the low speed USB ports
`during full speed transmissions on the Universal Serial Bus
`and Vice-versa for low Speed transmissions on the Universal
`Serial Bus. Low Speed transmissions are preceded by a
`special low speed preamble packet which informs the USB
`hub devices that a low speed transmission follows; upon
`receipt of this packet, the USB hub devices disable the full
`speed USB ports and enable the low speed USB ports until
`the USB hub devices detect the end of the low speed
`transmission upon which the USB hub devices disable the
`low speed USB ports and enable the full speed USB ports.
`Referring to FIG. 2E, the Special low Speed preamble packet
`consists of a special low speed preamble PID which iden
`tifies the packet as a low speed preamble packet.
`Referring to FIGS. 3, 4, 5 and 6, there are four types of
`USB transactions: USB isochronous transactions, USB bulk
`or control data transactions, USB interrupt transactions and
`USB control setup transactions. Each functional endpoint of
`a USB device is associated with one of the above types of
`transactions. These figures illustrate the three different types
`of token packets: the In token packet (for In transactions),
`the Out token packet (for Out transactions), and the Setup
`token packet (for USB Control Setup transactions). It should
`be noted that interrupt and USB control setup transactions
`are just special instances of USB bulk or control data
`transactions. USB isochronous transactions are used for
`isochronous communications. USB bulk or control transac
`tions, USB interrupt transactions and USB control Setup
`transactions (collectively called “USB asynchronous trans
`actions”) are used for asynchronous communications.
`Data is transmitted from a transmit data buffer in the USB
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`US 6,389,029 B1
`
`15
`
`25
`
`6
`device (corresponding to an end point number) to a receive
`data buffer in the USB host software. Similarly, data is
`transmitted from a transmit data buffer in the USB host
`Software to a receive data buffer (corresponding to an end
`point number) in the USB device. The USB host software
`Schedules the transmission of the data between the transmit
`data buffers and the receive data buffers in the USB devices
`and the USB host Software.
`For each frame, the USB host software typically sched
`ules the USB isochronous transactions first followed by the
`USB asynchronous transactions. In other words, the sched
`uling for the USB isochronous transactions is typically
`fixed. Other schedules are possible.
`As shown in FIG. 3, USB isochronous transactions
`attempt to guarantee a data rate. When the USB host
`software wishes to send data to a USB device (an Out
`isochronous transaction), it issues an Out token packet and
`transmits a data packet within a USB time limit as prescribed
`by the USB protocol. Similarly, when the USB host software
`wishes to receive data from a USB device (an In isochronous
`transaction) it issues an In token packet to the USB device
`and waits for a data packet to be transmitted from the USB
`device to the host computer. If the In token packet was never
`received correctly by the USB device (i.e. a token error), the
`USB device never sends a data packet. The USB host
`Software does not typically retry USB isochronous transac
`tions containing errors. AS shown in FIG. 3, with isochro
`nous transactions, handshake packets are not involved.
`In contrast, USB bulk or control data transactions are not
`Sent at a guaranteed data rate but attempt to guarantee
`delivery by the use of handshake packets. A USB bulk
`transaction is used to transfer data Such as data in a file
`transfer. A USB control transaction is used to Send data to
`control end point Zero of a USB device. Referring to FIG. 4,
`when the USB host Software wishes to send data to a USB
`device (an Out bulk/control transaction), it issues an Out
`token packet and it sends a data packet within the USB time
`limit as prescribed by the USB protocol. If the data packet
`was received properly by the USB device, the USB device
`issues the acknowledgement handshake packet (an ACK
`handshake packet) within the strict USB time limit after
`receiving the data packet. If the USB device is not ready to
`accept data on the bus, the USB device issues the NAK
`handshake packet. It should be noted that the NAK hand
`shake packet does not represent an error. If the USB device
`is in a condition that prevents normal operation of the USB
`device, the USB device issues the Stall handshake packet. If
`the USB host Software does not receive the ACK ha