throbber
(12) United States Patent
`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

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket