`US007433991B2
`
`lI2~ United States Patent
`Fujita et al.
`
`(10) Patent No. :
`(45) Date of Patent:
`
`US 7, 433, 991 B2
`Oct. 7, 2008
`
`(54) SELECTOR, SELECTION METHOD, AND
`PROGRAMPRODUCT
`
`(75)
`
`Inventors: Kenichi Fujita, Shinagawa (JP);
`Masanobu Hayama, Shinagawa (JP);
`Katsuji Ideura, Shinagawa (JP);
`Kazuhiro Yasuno, Shinagawa (JP);
`Masayuki Kuribayashi, Shinagawa (JP)
`
`(73) Assignee: Fujitsu Component Limited, Tokyo
`(JP)
`
`6, 708, 231 Bl *
`6, 934, 793 B2 *
`2003/0110328 Al *
`2003/0131127 Al *
`2003/0191878 Al *
`2003/0222801 Al *
`2003/0226137 Al *
`2004/0075638 Al *
`2005/0273312 Al *
`
`3/2004
`8/2005
`6/2003
`7/2003
`10/2003
`12/2003
`12/2003
`4/2004
`12/2005
`
`. . . . . . . . .
`
`Kitagawa
`Ying et al.
`Seki et al. . . . . . . . .
`King et al.
`. . . . . . . . . . . .
`Shirley
`Ying et al.
`. . . . . . . . . . . . .
`Nagao
`Han
`Sandulescu et al.
`
`710/10
`. . . 710/316
`. . . . . 710/36
`. . . 709/238
`. . . 710/100
`. . . . . 341/26
`. . . 717/168
`. . . 345/156
`. . . . . 703/25
`
`FOREIGN PATENT DOCUMENTS
`
`( * ) Notice:
`
`the term of this
`Subject to any disclaimer,
`is extended or adjusted under 35
`patent
`U. S. C. 154(b) by 141 days.
`
`EP
`JP
`JP
`JP
`
`0860771
`2000-353145
`2001-43178
`3194082
`
`8/1998
`12/2000
`2/2001
`6/2001
`
`(21) Appl. No. : 11/260, 294
`
`(22) Filed:
`
`Oct. 28, 2005
`
`(65)
`
`Prior Publication Data
`US 2006/0095644 Al
`May 4, 2006
`
`(30)
`Oct. 29, 2004
`
`Foreign Application Priority Data
`. . . 2004-316319
`
`(JP)
`
`(51) Int. Cl.
`(2006. 01)
`GO6F 13/2O
`(2006. 01)
`GO6F 13/OO
`G06F /3/40
`(2006. 01)
`(52) U. S. Cl. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 710/316; 710/313
`(58) Field of ClassiTication Search
`. . . . . . . . . . . . . . . . . 710/313,
`710/316
`file for complete search history.
`
`See application
`
`OTHER PUBLICATIONS
`
`Compaq et al. ; "Universal Serial Bus Specification"; Apr. 27, 2000;
`Revision 2. 0; pp. 264-265 and 275-437. *
`* cited by examiner
`Paul R. Myers
`Primary Examiner
`Assistant Examiner
`Ryan M Stiglic
`Staas & Halsey LLP
`(74) Attorney, Agent, or Firm
`
`(57)
`
`ABSTRACT
`
`A selector that selectively makes connections between USB
`to a console side thereof and electronics
`devices attached
`devices connected to a host side thereof. The selector includes
`a USB host circuit controlling
`the USB devices, and USB
`device emulation circuits being respectively provided for the
`electronics devices and maintaining
`the connections with the
`the USB devices are selec-
`electronics devices even while
`tively being changed, and a control circuit coupling the USB
`host circuit and USB device emulation circuits.
`
`(56)
`
`References Cited
`
`U. S. PATENT DOCUMENTS
`6, 622, 195 B2 * 9/2003 Osakada et al.
`
`. . . 710/316
`
`22 Claims, 23 Drawing Sheets
`
`USB I/F
`10
`
`VGA I/F
`11
`
`SERVER SID
`
`VGA I/F
`11
`
`USB DEVICE
`EMULATION
`CIRCUIT 3
`
`USB I/F10
`VGA I/F11
`
`USB DEVICE
`EMULATIO
`CIRCUIT 3
`
`CPU
`
`VIDEO
`SIGNAL
`SELECT
`CIRCUIT 4
`
`2
`
`USB HC
`CIRCUIT
`
`OSD
`CIRCUIT
`
`SELEC
`SW
`
`LED
`
`RESET
`CIRCUIT
`
`SELECTOR I
`
`5
`
`9
`
`USBI/F 10
`
`9
`
`VGAI/F 11
`
`1
`
`DELPHI Exhibit 1020
`
`
`
`U. S. Patent
`
`Oct. 7, 2008
`
`Sheet 1 of 23
`
`US 7, 433, 991 B2
`
`o )
`
`U
`
`Q&o
`
`U
`
`T
`
`C9 )
`
`U
`
`CO ~ 1
`
`C/I
`
`&o~
`Qg~o
`+crmB o
`
`0
`o
`
`4 P
`
`rid o OM o
`
`o+ x5
`ca o
`cn N + O
`
`cn
`
`0
`z 0 o
`
`2
`
`
`
`U. S. Patent
`
`Oct. 7, 2008
`
`Sheet 2 of 23
`
`IJS 7, 433, 991 B2
`
`FIG. 2
`
`CPU
`
`NGU
`
`24
`
`FLASH
`RON
`
`22
`
`21
`
`USB HC
`
`USBI/F 10
`
`3
`
`
`
`U. S. Patent
`
`Oct. 7, 2008
`
`Sheet 3 of 23
`
`US 7, 433, 991 B2
`
`FIG. 3
`
`SERVER
`A
`
`SERVE
`B
`
`SERVER
`N
`
`USB I/F
`10
`
`VGA I/F
`11
`
`USBI/F 10
`
`USB I/F
`10
`
`USB I/F
`10
`
`VGA I/F
`11
`
`SELECTOR
`
`VGA I/F 11
`
`USB
`KEYBOARD
`
`31
`
`DISPLAY
`
`USB
`MOUSE
`
`33
`
`4
`
`
`
`U. S. Patent
`
`Oct. 7, 2008
`
`Sheet 4 of 23
`
`US 7, 433, 991 B2
`
`0
`
`o z
`
`o
`
`0
`o
`~o O~
`
`o
`
`CV
`
`0
`
`««I
`
`Z R)U
`) A QOO
`I -v
`
`~ ra
`Ooa+
`
`a
`
`«C O~
`
`0~ ~ OPz. '
`ma,
`M a
`a
`
`a
`
`F
`
`««l O ~
`0 +rn
`0I ~ Oa M ~
`a
`
`M
`
`a
`5 0
`
`~M~~
`ohio &ohio
`@IO+O
`a~ +a~~
`
`a
`
`O pa
`
`z 0
`
`&0
`0~««
`
`M
`
`0
`
`«N
`o M
`
`xg OC 40 D~ cn
`f o
`
`o~&
`~pa
`CI3 ~ (g
`
`a
`
`0
`
`0
`x
`O
`
`a
`
`« -v
`goo
`Pnla
`
`5
`
`
`
`U. S. Patent
`U.S. Patent
`
`Oct. 7, 2008
`
`32f05LI.
`Sheet 5 of 23
`
`US 7, 433, 991 B2
`US 7,433,991 B2
`
`mo_>momm:mo_>momm:
`
`
`
`
`
`zoifipzmzofifiazme20NE295ommm:3om<om>mmmm:m>6Smzmm
`
`
`
`mm::o~=o<mEDOEO
`
`a&
`
`mmmmimmH.oe<mmimmHS_<55>5.29:moz<:o_HWmHuNUzoifiizzzm
`
`
`
`
`
`zoFS_ms5zm"7,WHa.MwfimfimwwwmwUNOHH9_<om>m§:05?H_.._W
`
`mmmooya
`
`mofimoI-H
`
`
`
`9_<om>mv_EO<,_.mD
`
`<._.<Q>5.
`
`6
`
`
`
`
`
`
`
`U. S. Patent
`
`Oct. 7, 2008
`
`Sheet 6 of 23
`
`US 7, 433, 991 B2
`
`FIG. 6
`
`USB KEYBOARD 31 USB HC CIRCUIT 2
`
`CPU 6
`
`USB DEVICE
`EMULATION
`CIRCUIT 3A
`
`USB DEVKE
`EMULATION
`CIRCUIT 3B
`
`OVER CURRENT
`
`DETACH
`KEYBOARD
`
`OVER
`CURRENT
`PROCESS
`
`DETACH
`PROCESS
`
`FIG. 7
`
`Vcc
`
`92
`
`93
`
`COUNTER
`CIRCUIT
`
`700ms
`
`RESET
`IC
`
`RESET TERMINAL
`OF CPU
`
`RESET
`IC
`
`100ms
`
`RESET TERMINAL
`OF USB HC CIRCUIT
`
`GND
`
`9 g
`
`94
`
`7
`
`
`
`U. S. Patent
`
`Oct. 7, 2008
`
`Sheet 7 of 23
`
`US 7, 433, 991 B2
`
`FIG. 8
`
`SERVE
`A
`
`SERVE
`B
`
`SERVER
`N
`
`USB I/F
`10
`
`VGA I/F
`11
`
`USB I / F 10
`
`USB I/F
`10
`
`USB I/F
`10
`
`VGA I/F
`11
`
`SELECTOR
`
`VGA I / F 11
`
`34
`
`USB HUB
`
`31
`
`USB
`KEYBOARD
`
`DISPLAY
`
`USB
`MOUSE
`
`33
`
`32B
`
`MOUSE
`
`8
`
`
`
`U. S. Patent
`
`Oct. 7, 2008
`
`Sheet 8 of 23
`
`US 7, 433, 991 B2
`
`FIG. 9
`
`SERVE
`A
`
`SERVE
`B
`
`SERVE
`N
`
`USB I/F
`10
`
`USB I/F
`10
`
`SELECTOR
`
`USB I/F
`10
`
`VGA I/F
`11
`
`USBI/F 10
`
`VGA I/F
`11
`
`1B
`
`VGA I/F 11
`
`USB I/F
`10
`
`VGA I/F
`11
`
`USB I/F 10
`
`USB I/F
`10
`
`USB I/F
`10
`
`SELECTOR
`
`VGA I/F
`11
`
`1A
`
`VGA I/F 11
`
`USB
`KEYBOARD
`
`DISPLAY
`
`32
`
`USB
`MOUSE
`
`31
`
`33
`
`9
`
`
`
`U. S. Patent
`
`Oct. 7, 2008
`
`Sheet 9 of 23
`
`US 7, 433, 991 B2
`
`FIG. 10
`
`START
`
`S 1
`
`DETECT
`CONNECTION?
`YES
`
`NO
`
`S2
`
`CHECK VID AND PID OF USB
`DEVICE BEING ATTACHED
`
`S3
`
`CASCADE
`CONNECTION?
`YES
`
`NO
`
`S5
`
`TRANSMIT CASCADE CONNECTION
`NOTIFICATION COMMAND TO
`SELECTOR 1A BY VENDOR REQUEST
`
`END
`
`10
`
`S4
`
`IMPLEMENT A
`GIVEN PROCESS
`
`
`
`U. S. Patent
`
`Oct. 7, 2008
`
`Sheet 10 of 23
`
`US 7, 433, 991 B2
`
`FIG. 11
`
`START SELECT
`CONTROL MODE
`
`STOP TRANSMITTING KEY
`DATA AND MOUSE DATA
`
`S6
`
`S7
`
`TRANSMIT SELECTOR
`CONNECTION CHECK COMMAND
`S8
`
`RECEIVE COM~
`RESPONSE
`
`S9
`
`NNECT SELECTO
`
`Yes
`
`No
`
`S10
`
`TRANSMIT SELECT CONTROL
`MODE COMMAND TO
`SELECTOR IB
`
`S1 1
`
`CONFIGURE SELECTOR IA
`IN CASCADE MODE
`
`S12
`
`SELEC
`CONTROL MODE
`OMPLETE ~
`
`Yes
`
`S13
`
`No
`
`CASCADE MODE ~
`
`Yes
`
`S1 4
`
`TRANSMIT SELECT
`CONTROL MODE
`COMPLETE COMMAND
`
`END SELECT
`CONTROL MODE
`
`S18
`
`SELECT PORT OF
`SELECTOR I A
`
`S15
`
`No
`
`SELECT
`PERATION ~
`
`Yes
`
`S16
`CASCADE MODE "
`
`No
`
`Yes
`
`S17
`TRANSMIT SELECT
`CONTROL SIGNAL TO
`SELECTOR I B
`
`11
`
`
`
`U. S. Patent
`
`Oct. 7, 2008
`
`Sheet 11 of 23
`
`US 7, 433, 991 B2
`
`FIG. 12
`
`START RECEIVING
`
`SELECT CONTROL MODE
`
`S21
`
`S22
`
`RECEIVE SELECT
`CONTROL SIGNAL?
`
`Yes
`
`RECEIVE SELECT
`CONTROL MODE
`COMPLETE
`COMMAND?
`
`Yes
`
`END SELECT
`CONTROL MODE
`
`12
`
`No
`
`
`
`U. S. Patent
`U.S. Patent
`
`Oct. 7, 2008
`Oct. 7, 2008
`
`Sheet 12 of 23
`Sheet 12 of 23
`
`US 7, 433, 991 B2
`US 7,433,991 B2
`
`z o
`
`IO<.hmQ
`
`mmmoozm
`
`~+o
`
`~o
`m>_momE
`
`mofiiommo
`
`a
`
`ra
`
`meaamm
`
`DZ<
`
`5%:
`
`o
`U
`
`SmzzoomaI-,
`
`a
`
`o
`
`xoemiommo
`
`a
`
` .
`
`o
`
`moemiommo
`
`M
`a
`
`o
`
`zoE<zms5zm
`
`—
`
`
`
`-nE<om>mzIU<H.H<
`
`<mm>xmw<mE2050e:8
`mEDUMHU01mm:3Qm<om>m§mm:
`
`V
`
`U
`U
`
`D
`
`mo_>mQmm:
`
`zoifizzm
`
`2CE
`
`zoE§m_>5zm
`
`g o&o
`
`goo
`
`z:mzazmmemzazoo2O<MZO_._.<MmS_DzmZO:.<MmDzm
`
`
`
`<59Ex529hiI,<e<o>5.I<53:2III
`
`ZOE,<Ur=._.OZ
`
`C4 oo
`Cl ~
`g O
`v o
`a
`
`9_<om>mv_EO.<.._.mD
`
`
`mmmoommIO<HmQ
`
`U o
`
`a
`
`ZO:.<U7:HOZ
`
`
`
`om<om>mv_IO<._.mQ
`
`oo
`gO
`g K
`v o
`a
`
`o
`
`
`
`QM<Om>mMIO<HmD
`
`a
`
`E,<BF2zoE<o:FozzAmu:.md_w_,~o%
`
`IIZ_Esbflfi
`
`0+o
`
`~o~
`
`13
`
`
`
`
`
`
`
`
`
`
`
`U. S. Patent
`
`Oct. 7, 2008
`
`Sheet 13 of 23
`
`US 7, 433, 991 B2
`
`U )
`o 5
`
`a
`
`U
`
`CQ )
`
`U
`
`CQ )
`
`0gof
`BQ~o
`M o
`
`0
`o
`
`4 D
`r/) 08
`0
`
`o+
`O
`cn A
`
`0
`
`4
`
`0
`0 o
`
`~MM
`M 0~
`
`~0~
`~ CQ A
`
`o0
`a~o
`
`M
`
`14
`
`
`
`U. S. Patent
`
`Oct. 7, 2008
`
`Sheet 14 of 23
`
`US 7, 433, 991 B2
`
`FIG. 15
`
`USB HC CIRCUIT
`
`CPU
`
`ATTACH USB MOUSE
`
`USB DEVICE ATTACH
`NOTIFICATION
`
`ENUMERATION
`
`USB MOUSE ATTACH
`NOTIFICATION
`
`DISABLE
`Psi2
`MOUSE
`
`15
`
`
`
`U. S. Patent
`
`Oct. 7, 2008
`
`Sheet 15 of 23
`
`US 7, 433, 991 B2
`
`START
`
`FIG. 16
`S 3 1
`USB DEVICE ENUMERATION S32
`S3 3
`
`MASS STORAGE?
`Yes
`
`No
`
`SEARCH FIRMWARE FILE NAME
`
`S3 4
`
`FIRMWARE FOR CPU?
`
`No
`
`Yes
`
`S35
`READ SIGNATURE S36
`IGNATURE 0
`Yes S37
`
`No
`
`REWRITE CPU FIRMWARE
`
`S3 8
`
`FIRMWARE FOR
`USB HC CIRCUIT 'P
`No
`
`Yes
`
`READ SIGNATURE
`
`S3 9
`S40
`S4 i
`
`No
`
`IGNATURE OK ~
`Yes
`REWRITE USB HC CIRCUIT
`FIRMWARE
`
`S42
`
`FIRMWARE FOR USB
`DEVICE EMULATION
`CIRCUIT?
`No
`
`Yes
`
`S4 3
`
`READ SIGNATURE
`
`S44
`
`IGNATURE OK ~
`Yes
`REWRITE USB DEVICE
`EMULATION CIRCUIT
`RE
`
`RESET SELECTOR
`
`END
`
`S46
`
`16
`
`
`
`U. S. Patent
`
`Oct. 7, 2008
`
`Sheet 16 of 23
`
`US 7, 433, 991 B2
`
`FIG. 17
`
`USB HC CIRCUIT 2
`
`TRANSMIT CPU
`REWRITE COMMAND
`
`READ FIRMWARE
`
`CPU 6
`
`RECEIVE CPU
`REWRITE
`COMMAND
`
`CONFIGURE
`FIRMWARE
`REWRITE MODE
`
`TRANSFER TO CPU
`
`RECEIVE FIRMWARE
`
`COMPLETE READING
`
`TRANSMIT TRANSMISSION
`COMPLETE COMMAND
`
`WRITE INTO
`FLASH ROM
`
`COMPLETE
`RECEIVING
`
`RECEI VE CHECKSUM
`
`TRANSMIT CHECKSUM
`
`TRANSMIT FIRMWARE
`RESTORE COMMAND
`
`TRANSMIT REWRITING
`COMPLETE COMMAND
`
`' RECEIVE FIRMWARE
`, RESTORE COMMAND
`I
`
`&
`
`'
`,
`I
`
`RECEIVE REWRITING
`COMPLETE COMMAN
`
`COMPLETE
`FIRMWARE
`REWRITING
`
`COMPLETE
`FIRMWARE
`REWRITING
`
`17
`
`
`
`U. S. Patent
`
`Oct. 7, 2008
`
`Sheet 17 of 23
`
`US 7, 433, 991 B2
`
`FIG. 18
`
`START REWRITING
`CPU FIRMWARE
`
`TRANSMIT CPU
`REWRITE COMMAND
`
`READ FIRMWARE
`
`TRANSFER TO CPU
`
`S51
`
`S52
`
`S53
`
`No
`
`S54
`
`COMPLETE READ1NG ~
`
`Yes
`
`TRANSMIT TRANSMISSION
`COMPLETE COMMAND
`S5 6
`
`RECEIVE CHECKSUM
`S5 7
`
`CHECKSUM OK?
`Yes
`
`No
`
`S59
`
`TRANSMIT REWRITING
`COMPLETE COMMAND
`
`END REWRITING
`CPU FIRMWARE
`
`18
`
`S5 8
`
`TRANSMIT FIRMWARE
`RESTORE COMMAND
`
`
`
`U. S. Patent
`
`Oct. 7, 2008
`
`Sheet 18 of 23
`
`US 7, 433, 991 B2
`
`FIG. 19
`
`START REWRITING
`FIRMWARE
`
`RECEIVE CPU
`REWRITE COMMAND
`
`CONFIGURE FIRMWARE
`REWRITE MODE
`
`S6 I
`
`S62
`
`No
`
`No
`
`S63
`
`RECEIVE FIRMWARE .
`Yes
`
`S 6 4
`WRITE INTO FLASH ROM
`
`S65
`
`OMPLETE RECEIVIN
`Yes
`
`S66
`
`TRANSMIT CHECKSUM
`
`S67
`
`Yes
`S6 8
`FIRMWARE RESTORE
`PROCESS
`
`RECEIVE FIRMWARE
`STORE COMMAND ~
`
`No
`
`S6 9
`
`No
`
`RECEIVE REWRITIN
`COMPLETE COMMAND
`
`Yes
`
`END REWRITING
`FIRMWARE
`
`19
`
`
`
`U. S. Patent
`
`Oct. 7, 2008
`
`Sheet 19 of 23
`
`IJS 7, 433, 991 B2
`
`FIG. 20
`
`START REWRITING
`FIRMWARE
`
`COPY FIRMWARE ONTO RAM
`
`S71
`
`S72
`
`S74
`
`FIRMWARE RESTORE
`PROCESS
`
`WRITE FIRMWARE
`ONTO FLASH ROM
`
`S73
`CHECKSUM OK?
`
`No
`
`Yes
`
`END REWRITING
`FIRMWARE
`
`20
`
`
`
`U. S. Patent
`
`Oct. 7, 2008
`
`Sheet 20 of 23
`
`US 7, 433, 991 B2
`
`FIG. 21
`USB HC CIRCUIT 2
`
`TRANSMIT USB DEVICE
`EMULATION CIRCUIT FIRMWARE
`REWRITE COMMAND
`
`CPU 6
`TRANSFER USB DEVICE
`EMULATION CIRCUIT
`
`USB DEVICE
`EMULATION
`CIRCUIT 3
`
`RECEIVE USB DEVICE
`EMULATION CIRCUIT
`FIRMWARE REWRITE
`
`TRANSMIT
`NUMBER OF
`PORTS
`
`NUMBER OF
`
`RECEIVE
`FIRMW
`
`CONFIGURE
`FIRMWARE
`TRANSFER
`MODE
`
`TRANSFER
`FIRMWARE TO CPU
`
`TRANSFER TO USB DEVICE
`EMULATION CIRCUIT
`
`TRANSMIT TRANSMISSION
`COMPLETE COMMAND
`
`COMPLETE
`RECEIVING
`
`TRANSMIT TRANSMISSION
`COMPLETE COMMAND
`
`RECEIVE
`CHECKSUM
`
`TRANSFER
`CHECKSUM
`
`TRANSMIT
`CHECKSUM
`
`TRANSMIT FIRMWARE
`RESTORE COMMAND
`
`TRANSFER FIRMWARE
`R ESTORE COMMAND
`
`TRANSMIT REWRITING
`COMPLETE COMMAND
`
`TRANSMIT REWRITING
`COMPLETE COMMAND
`
`COMPLETE
`REWRITING
`FIRMWARE
`
`COMPLETE
`REWRITING
`FIRMWARE
`
`21
`
`CONFIGURE
`FIRMWARE
`REWRITE
`MODE
`
`RECFIVE
`FIRMWARE
`
`WRITE INTO
`FLASH ROM
`
`RECEIVING
`
`„
`
`RECEIVE
`
`"RESTORE
`COIvMAND
`
`FIRMWARE
`RESTORE
`PROCESS
`
`COMPLETE
`COMMAND
`
`COMPLETE
`REWRITING
`FIRMWARE
`
`
`
`U. S. Patent
`
`Oct. 7, 2008
`
`Sheet 21 of 23
`
`US 7, 433, 991 B2
`
`FIG. 22
`
`START REWRITING
`CPU FIRMWARE
`
`RECEIVE USB DEVICE EMULATION
`CIRCUIT FIRMWARE REWRITE
`COMMAND
`
`RECEIVE NUMBER OF PORTS
`
`S8 1
`
`S82
`
`No
`
`No
`
`No
`
`No
`
`S83
`
`RECEIVE FIRMWARE .
`Yes
`
`TRANSFER TO CPU
`
`S8 4
`
`S85
`
`COMPLETE RECEIVING .
`Yes
`
`S 8 6
`
`TRANSMIT TRANSMISSION
`COMPLETE COMMAND
`
`S87
`
`RECEIVE CHECKSUM .
`Yes
`
`S 8 8
`
`CHECKSUM OK?
`Yes
`
`S89
`
`TRANSMIT FIRMWARE
`RESTORE COMMAND
`
`S90
`
`ALL PORTS OK?
`Yes
`
`No
`
`S91
`
`TRANSMIT REWRITING COMPLETE
`COM~
`
`END REWRITING
`CPU FIRMWARE
`
`22
`
`
`
`U. S. Patent
`
`Oct. 7, 2008
`
`Sheet 22 of 23
`
`US 7, 433, 991 B2
`
`FIG. 23
`
`START REWRITING
`FIRMWARE
`
`S 1 0 1
`
`TRANSFER USB DEVICE EMULATION
`CIRCUIT FIRMWARE REWRITE COMMAND
`S 1 0 2
`
`TRANSFER NUMBER OF PORTS
`
`S 1 0 3
`CONFIGURE FIRMWARE TRANSFER MODE
`S 1 0 4
`CEIVE FIRMWA
`Yes
`
`No
`
`No
`
`S 1 0 5
`TRANSFER TO CPU DEVICE
`EMULATION CIRCUIT
`S 1 0 6
`S1 07
`
`COMPLETE RECEIVING?
`
`TRANSMIT TRANSMISSION COMPLETE COMMAND
`S 1 0 8
`TRANSFER CHECKSUM
`S 1 09
`
`No
`
`No
`
`S 1 1 1
`TRANSFER FIRMWARE RESTORE COMMAND
`
`COMPLETE TRANSFERRIN
`0 ALL PORTS ~
`Yes
`
`S 1 1 0
`RECEIVE FIRMWARE
`STORE COMMAN
`Yes
`
`S 1 1 2
`
`RECEIVE REWRITING
`OMPLETE COMMAN
`Yes
`
`S 1 1 3
`TRANSFER REWRITING COMPLETE COMMAND
`
`END REWRITING
`FIRMWARE
`
`23
`
`
`
`U. S. Patent
`
`Oct. 7, 2008
`
`Sheet 23 of 23
`
`US 7, 433, 991 B2
`
`FIG. 24
`
`START REWRITING
`FIRMWARE
`
`RECEIVE USB DEVICE
`EMULATION CIRCUIT
`FIRMWARE REWRITE
`COMMAND
`
`S1 21
`
`S1 22
`
`CONFIGURE TO FIRMWARE
`REWRITE MODE
`S1 23
`
`No
`
`RECEIVE FIRMWARE
`
`Yes
`
`WRITE INTO
`FLASH ROM
`
`S1 24
`
`S1 25
`
`No
`
`OMPLETE RECEIVIN
`
`Yes
`
`S1 26
`TRANSMIT CHECKSUM
`
`Yes
`
`S1 28
`FIRMWARE RESTORE
`PROCESS
`
`RECEIVE
`FIRMWARE
`RESTORE
`
`OM~ ~
`
`No
`
`S1 27
`
`S1 29
`
`No
`
`RECEIVE
`REWRITING
`COMPLETE
`COMMAND?
`
`Yes
`
`END REWRITING
`FIRMWARE
`
`24
`
`
`
`US 7, 433, 991 B2
`
`According to another aspect of the present invention, pref-
`erably, there is provided a selector that selectively changes
`USB devices attached to a console side thereof and changes
`electronics devices connected to a host side thereof, the selec-
`the USB devices; and maintaining
`tor including controlling
`the connections with the electronics devices even while the
`USB devices are selectively being changed; and coupling the
`USB host circuit and USB device emulation circuits.
`According to still another aspect of the present invention,
`that selec-
`there is provided a program product
`preferably,
`tively changes USB devices attached to a console side thereof
`and changes electronics devices connected
`to a host side
`the USB devices;
`thereof, the selector including controlling
`the connections with the electronics devices
`and maintaining
`even while the USB devices are selectively being changed;
`and coupling the USB host circuit and USB device emulation
`circuits.
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`Preferred embodiments of the present
`invention will be
`described in detail with reference to the following drawings,
`wherein:
`FIG. 1 is a block diagram of a configuration of a selector;
`FIG. 2 is a block diagram of a configuration of a USB HC
`circuit;
`FIG. 3 is a connection diagram between the selector, mul-
`tiple servers, and console devices;
`FIG. 4 is a signal sequence diagram between a server A and
`a server B and a selector 1, a USB keyboard 31 and a USB
`mouse 32 and the selector 1, and the selector 1 and peripheral
`devices when the selector 1 changes from the server A to the
`server B;
`FIG. 5 is a signal sequence diagram between a select SW 5,
`a USB HC circuit 2, a CPU 6, a USB device emulation circuit
`3A coupled to the server A, a USB device emulation circuit
`3B coupled to the server B, the USB keyboard 31 attached to
`the selector 1;
`FIG. 6 shows signals when "Over Current" occurs;
`FIG. 7 is a diagram showing a reset circuit 9;
`FIG. S is a block diagram in which the USB keyboard and
`the USB mouse are coupled to the selector 1 via a USB hub
`34;
`FIG. 9 shows a cascade connection of selectors 1A and 1B;
`FIG. 10 is a flowchart showing a procedure
`to detect the
`cascade connection of the selectors;
`FIG. 11 is a flowchart
`in select control mode;
`FIG. 12 is a flowchart of the selector 1B in select control
`mode;
`FIG. 13 is a signal sequence diagram between
`keyboard 31, the selector 1, and the server A;
`FIG. 14 is a diagram of the selector having PS/2 mouse I/F
`and PS/2 keyboard I/F;
`FIG. 15 shows a procedure
`software;
`FIG. 16 is a flowchart of firmware rewrite control by the
`USB HC circuit 2;
`FIG. 17 shows a procedure of CPU firmware rewriting;
`FIG. 1S is a flowchart of a procedure of the USB HC circuit
`2 for rewriting
`the CPU firmware;
`FIG. 19 is a flowchart of the CPU 6 for rewriting
`firmware;
`FIG. 20 is a flowchart o f the firmware rewrite control by the
`USB HC circuit 2;
`FIG. 21 shows a procedure of rewriting
`USB device emulation circuit 3;
`
`the USB
`
`to disable the PS/2 mouse by
`
`the CPU
`
`the firmware of a
`
`1
`SELECTOR, SELECTION METHOD, AND
`PROGRAMPRODUCT
`
`BACKGROUND OF THE INVENTION
`
`1. Field of the Invention
`to selectors, selection
`relates
`This
`invention generally
`methods, and program products that enable sharing of input/
`output devices by selectively changing a connection between
`a selector and multiple computers.
`2. Description of the Related Art
`These days, USB (Universal Serial Bus) becomes
`the
`interface of the input/output
`mainstream computer peripheral
`devices such as keyboard, mouse, or the like to be connected
`to a server or PC (Personal Computers). The USB is so widely
`that the keyboard or mouse having another periph-
`available
`eral interface is becoming difficult to purchase.
`there has been proposed
`the circumstances,
`Under
`the
`devices having the USB keyboard and USB mouse for selec-
`tively connecting one or more computers. The afore-men-
`tioned devices function as selectors provided for sharing the
`the connection
`devices by selectively changing
`input/output
`between the selector and one or more computers, as described
`in Japanese Patent Application Publication No. 2001-43178
`referred to as Document I) and Japanese Patent
`(hereinafter,
`Publication No. 2000-353145 (hereinafter,
`Application
`referred to as Document 2).
`Japanese Patent No. 3, 194, 082 (hereinafter,
`referred to as
`Document 3) has proposed the select operation circuit having
`the main control circuit and the select circuit, the main control
`circuit connecting a set of data input devices, the select circuit
`input data input via the afore-men-
`selectively
`transmitting
`tioned set of data input devices to multiple computers.
`selectors to operate with USB, how-
`The above-mentioned
`ever, simply mechanically change USB signal lines in order
`to be coupled. In such configuration,
`attach/detach process
`the USB signal line is selec-
`has to be implemented whenever
`tively changed. Such process further produces
`load/unload
`to the server and
`process on a server, causing
`the burden
`leading to the generation of a wait time during the load/unload
`process on the server. In addition, depending on the load
`applied on the server or the system configuration,
`it will take
`time to load/unload
`the driver. Otherwise, a select operation
`the unload process of the driver to implement
`will interrupt
`the load process. Consequently,
`the system operates unstably
`or the system comes to a halt and cannot be controlled. Fur-
`ther, Document 3 does not disclose a selector corresponding
`to the USB devices.
`
`SUMMARY OF THE INVENTION
`
`The present invention has been made in view of the above
`circumstances and provides a selector, selection method, and
`program product that can selectively change devices without
`burdening a server.
`to one aspect of the present
`According
`invention, prefer-
`ably, there is provided a selector that selectively makes con-
`nections between USB devices attached
`to a console side
`thereof and electronics devices connected
`to a host side
`thereof, the selector including a USB host circuit controlling
`the USB devices; and USB device emulation circuits being
`respectively provided for the electronics devices and main-
`the connections with the electronics devices even
`taining
`while the USB devices are selectively being changed; and a
`control circuit coupling the USB host circuit and USB device
`emulation circuits.
`
`10
`
`16
`
`20
`
`26
`
`30
`
`36
`
`40
`
`46
`
`60
`
`66
`
`60
`
`66
`
`25
`
`
`
`US 7, 433, 991 B2
`
`FIG. 22 is a flowchart of a procedure of the USB HC circuit
`the firmware of the USB device emulation
`2 for rewriting
`circuit 3;
`FIG. 23 is a flowchart of a procedure of the CPU 6 for
`the firmware of the USB device emulation circuit 3;
`rewriting
`and
`FIG. 24 is a flowchart of a procedure of the USB device
`the firmware of the USB
`emulation circuit 3 for rewriting
`device emulation circuit 3.
`
`DESCRIPTION OF THE PREFERRED
`EMBODIMENTS
`
`6
`
`10
`
`A description will now be given, with reference
`to the
`drawings, of embodiments of the present
`accompanying
`invention.
`
`16
`
`First Embodiment
`
`FIG. 1 shows a configuration of a selector 1 in accordance
`with the present embodiment of the present invention. Refer-
`ring to FIG. 1, the selector 1 includes a USB host controller
`simply referred to as USB HC circuit) 2,
`circuit (hereinafter,
`a USB device emulation circuit 3, a video signal select circuit
`to as select
`4, a select switch (hereinafter,
`simply referred
`SW) 5, a CPU 6, an OSD (On Screen Display) circuit 7, an
`LED S, a reset circuit 9, a USB I/F 10, and a VGA (Video
`Graphics Array) I/F 11.
`The USB HC circuit 2 is coupled to a USB keyboard 31 and
`a USB mouse 32, and implements an enumeration process on
`the USB devices. The enumeration process is a device iden-
`tification process. Then, the USB HC circuit 2 extracts key-
`board data (key data) and mouse data and converts the data
`to PS/2 or UART (Universal Asyn-
`into signals corresponding
`to transmit to the CPU 6.
`chronous Receiver Transmitter)
`The USB device emulation circuit 3 is provided for each
`PC or server to be connected, so as to emulate the operation of
`the USB keyboard 31 or the USB mouse 32, receives the key
`data and mouse data from the CPU 6, and transmits
`the data to
`a server being connected. The USB device emulation circuit
`3 being connected to a selected server (the server with which
`the data of
`a connection
`is electrically established) outputs
`keyboard or mouse to the selected server. The USB device
`emulation circuit 3 being connected to an unselected server
`outputs emulation signals, which are obtained by emulating
`the operation of the keyboard or the mouse, to the unselected
`server, and operates as if the keyboard or the mouse were
`coupled to the unselected server.
`The video signal select circuit 4 selectively changes mul-
`tiple video signals input from the PC or server. The select SW
`5 selects the PC or server being connected to the selector 1.
`select control operations of the
`The CPU 6 implements
`USB device emulation circuit 3, the video signal select circuit
`4, and the select SW 5, and relays the key data and the mouse
`data to the USB device emulation circuit 3 being selected by
`the USB HC circuit 2.
`The OSD circuit 7 performs the configuration of the selec-
`tor 1 and displays the select control operations on the selector
`1. The LED S indicates the selected PC or server. The reset
`circuit 9 resets the selector 1 and USB HC circuit 2.
`Next, referring to FIG. 2, a description will be given of the
`USB HC circuit 2. The USB HC circuit 2 includes a USB host
`controller (USB HC) 21 and a MCU (Micro Controller Unit)
`22. The USB HC 21 is connected to an external bus of the
`type and is capable of
`MCU 22. The MCU 22 is a standard
`either internally or externally coupling to a ROM and a RAM
`23. ROM is, for example, a rewritable
`flash ROM 24. The
`
`20
`
`26
`
`30
`
`36
`
`40
`
`46
`
`60
`
`66
`
`60
`
`66
`
`USB HC 21 is, for example, ISP116x series (the product
`name of Philip s) or SL811HS (the product name of Cypress).
`The USB HC circuit 2 may be composed of the MCU 22 and
`a USB transceiver.
`As a configuration example of the USB device emulation
`circuit 3, the USB device may be emulated by an MCU. (This
`is not shown, because the USB device emulation circuit 3
`shown in FIG. 1 is simply replaced by the MCU. ) For refer-
`ence, the MCU is a standard
`includes a
`type and internally
`ROM and RAM, and the ROM is, for example, a rewritable
`flash ROM.
`The MCU 22 in the USB HC circuit 2, the MCU in the USB
`device emulation circuit 3, and the CPU 6 read a program
`the
`from the memory storing
`the program, and implement
`control operations according to the program and the proce-
`dure shown in a sequence or flowchart described below.
`FIG. 3 is a connection diagram between the selector 1 and
`the USB keyboard 31, the USB mouse 32, and a
`servers,
`display 33. The USBs and VGAs of the servers are connected
`to interfaces of the selector 1 on a server side of the selector 1
`for the USBs and
`by cables. The cables may be provided
`VGAs respectively, or the cables for the USB and VGA may
`together into, for example, an RJ-45 cable (Reg-
`be bundled
`istered Jack 45: 8-pin modular connector). Accordingly,
`the
`interfaces on the selector 1 are configured
`to have shapes
`to the cables (USB and VGA cables or RJ-45
`corresponding
`cable). In FIG. 1 and FIG. 3, both USB and VGA interfaces
`are shown to facilitate better understanding of flows of the
`USB and VGA signals, whereas the USB and VGA cables are
`together and shown as composite cables.
`bundled
`The display 33 is connected to the VGA interface (VGA
`I/F) 11 on a console side of the selector 1. The USB keyboard
`31 and the USB mouse 32 are respectively attached to the
`USB interface (USB I/F) 10 provided on the console side of
`the selector 1. Moreover, The USB keyboard 31, the UBS
`mouse 32, and the display 33 coupled on the console side are
`coupled to the server to be selected by the selector 1.
`Here, the signal flows in the selector described below. On
`the server side, when the server is connected to the selector 1,
`the USB device emulation circuit 3 is coupled to a USB host
`controller, not shown, of the server. Then, the enumeration
`process begins. The USB device emulation circuit 3 is con-
`figured to be a composite device having basic functions of the
`USB keyboard 31 and the USB mouse 32. Configure/con-
`figuration denotes settings of the functions of the device. In
`this manner, a communication path is established between the
`server and the USB device emulation circuit 3. Subsequently,
`the USB device emulation circuit 3 transmits
`the key data and
`mouse data received from the CPU 6 on the selector 1 to the
`server, receives information on LED indication or the like to
`to the USB keyboard 31, and then transmits
`such
`transmit
`to the CPU 6 on the selector 1.
`information
`The VGA signal output from the server is transmitted
`to the
`video signal select circuit 4 via the VGA I/F 11 on the selector
`1. The CPU 6 controls the video signal select circuit 4 and the
`VGA signal of the server selected by the select SW 5 is
`to the VGA I/F 11 on the on the console side.
`transmitted
`On the other hand, on the console side of the selector 1,
`when the USB keyboard 31 is attached to the selector 1, the
`enumeration process begins between the USB HC circuit 2
`and the USB keyboard 31. When the enumeration process
`completes, the USB HC circuit 2 transmits "Interrupt" to the
`USB keyboard 31 to request the USB keyboard 31 for the key
`data. The key data received from the USB keyboard 31 is
`to the CPU 6 of the selector 1. In this case, the
`transmitted
`is used. The USB HC
`PS/2 or serial (UART, IIC) interface
`to the afore-
`the key data to correspond
`circuit 2 converts
`
`26
`
`
`
`US 7, 433, 991 B2
`
`interface and transmits
`the converted data. With
`mentioned
`respect to the USB mouse 32, the same process is imple-
`mented as in the USB keyboard 31.
`The select SW 5 provides a mechanism
`that selectively
`changes the connection between the server connected to the
`selector 1 and the keyboard, mouse, and the display 33 pro-
`vided on the console side. The CPU 6 detects
`the server
`selected by the select SW 5, and changes a transmission path
`for transmitting
`and receiving data and the video signals
`between the USB HC circuit 2 and the USB device emulation
`circuit 3 so that the selected server may be coupled to the
`console side. The LED S indicates the selected server.
`The reset circuit 9 is coupled to reset terminals on the CPU
`6 and on the MCU 22 in the USB HC circuit 2, and includes
`a reset switch to provide a reset mechanism. The reset circuit
`9 will be described later in detail.
`The OSD circuit 7 is provided between
`the video signal
`select circuit 4 and the VGA I/F 11 on the console side to
`the video signals of the video signal select cir-
`superimpose
`select information, or the
`cuit 4 and connection information,
`like. When a port of the selector 1 not connected by a server
`is selected, a clock is separately supplied to the OSD circuit 7
`select information, or
`to display the connection information,
`the like.
`to include the USB host con-
`The selector 1 is configured
`troller circuit between the server and the USB devices such as
`keyboard, mouse, or hub, and the USB device is coupled to
`the USB controller circuit 2, in accordance with the first
`embodiment of the present invention. The USB HC circuit 2
`is configured to operate all processes generated by attaching
`the USB device such as the enumeration pro-
`and detaching
`cess, so that the server needs not operate such processes. The
`USB HC circuit 2 maintains connection with the USB device
`the USB
`the select operation period, unless
`even during
`device is detached physically.
`On the server side, the USB device emulation circuit 3 with
`the USB device capabilities
`connection
`always maintains
`with the servers, and does not generate the enumeration and
`detach processes even when the USB device is attached and
`detached. The CPU 6 controls and changes the destination of
`in order to transmit
`the data from the
`the data transmission
`USB device to the selected server and transmit
`the video
`signals from the server to transmit to the display 33 provided
`on the console side. This enables the servers to recognize that
`the keyboard and mouse are always connected. Therefore, it is
`possible to make a connection electrically without burdening
`the USB device.
`the servers or attaching or detaching
`Next, referring to FIGS. 4 and 5, a description will be given
`of a method of selectively changing
`the USB device, so that
`the attach or detach process of
`the server need not implement
`the USB device. FIG. 4 is a sequence diagram corresponding
`shown in FIG. 3. With respect to
`to the system configuration
`a server A, a server B, the selector 1, the USB keyboard 31,
`and the USB mouse 32, FIG. 4 shows the connection between
`the servers A and B and the selector 1, the connection between
`the USB keyboard 31 and the USB mouse 32 and the selector
`1, and the signal
`flows with peripheral devices when
`the
`from the server A to the
`selector changes
`the connection
`server B.
`Firstly, the server A and the server B are connected to the
`selector 1. At this point, the selector 1 selects the server A in
`the initial state. The display 33 receives the video signals from
`the server A. Simultaneously,
`the enumeration process begins
`between the USB device emulation circuit 3 and the USB HC
`circuit on the server, and the USB device emulation circuit 3
`on the selector 1 is configured to be a composite device of the
`USB keyboard 31 and the USB mouse 32.
`
`6
`
`10
`
`16
`
`20
`
`26
`
`30
`
`36
`
`40
`
`46
`
`60
`
`66
`
`60
`
`66
`
`Next, when the USB keyboard 31 is attached to the selector
`1, the enumeration process begins between the USB keyboard
`31 and the selector 1 to carry out the configuration. The
`selector 1 does not notify
`the enumeration process to the
`the enumeration process is not imple-
`server, and accordingly,
`mented on the server. The selector 1 transmits
`the key data to
`the selected server, namely, the server A only. With respect to
`the USB mouse 32, the same process is implemented,
`and the
`mouse data is transmitted only to the selected server.
`When the selected server (electric connection)
`is changed
`from the server A to the server B, the display 33 starts to
`receive the video signals from the server B, and the transmis-
`sion destination of the key data and mouse data is changed to
`the server B, with the UBS keyboard 31 and the USB mouse
`32 maintaining connection with the selector 1. With the USB
`HC circuit 2, the UB S keyboard 31 and the USB mouse 32 can