`Moroz et al.
`
`19
`
`USOO594.1965A
`Patent Number:
`11
`(45) Date of Patent:
`
`5,941,965
`Aug. 24, 1999
`
`UNIVERSAL DOCKING STATION
`
`OTHER PUBLICATIONS
`
`54
`(75)
`
`60
`
`51
`
`52)
`
`58
`
`56)
`
`Inventors: John A. Moroz, Plymouth; Gary A.
`Altenberg, Buffalo; James Ternus,
`Maple Grove, all of Minn.
`Assignee: Electronics Accessory Specialists
`International, Inc., Scottsdale, Ariz.
`
`Appl. No.: 08/679,131
`Filed:
`Jul. 12, 1996
`Related U.S. Application Data
`Provisional application No. 60/017,725, May 16, 1996.
`
`Int. Cl." ............................................... G06F 13/00
`
`U.S. Cl. ............................................. 710/101; 361/683
`
`Field of Search ..................................... 395/281, 552,
`395/555; 364/708.1; 361/683–686
`
`References Cited
`
`U.S. PATENT DOCUMENTS
`4.941,845 7/1990 Eppley et al. .
`4,969,830 11/1990 Daly et al..
`5,187,645 2/1993 Spalding et al. .
`5,373,149 12/1994 Rasmussen,
`5,452,180 9/1995 Register et al. .
`5,477,415 12/1995 Mitcham et al..
`5,632,020 5/1997 Gephardt et al. ....................... 395/283
`5,634,080 5/1997 Kikinis et al. ...
`... 395/893
`5,724,529 3/1998 Smith et al. ............................ 395/309
`
`Don Anderson et al., CardBus System Architecture,
`150–153, 194–201, 228–231; 322–325 (1995).
`Don Anderson, PCMCIA System Architecture, 16-Bit PC
`Cards, 2nd Edition, 146-167, 214-215, 218–225, 296–297
`(1995).
`Brochure entitled “Card Station Expanding Your Portable
`World”, Axonix Corporation (1994).
`
`Primary Examiner-Glenn A. Auve
`Attorney, Agent, or Firm Merchant, Gould, Smith, Edell,
`Welter & Schmidt, PA.
`57
`ABSTRACT
`A universal docking Station for coupling a portable computer
`to a plurality of peripheral devices via a PCMCIA interface
`is provided, wherein at least one of the peripheral devices is
`a user input device. The docking Station comprises a PCM
`CIA interface adapted to be coupled to the portable
`computer, peripheral control units adapted to be coupled to
`the plurality of peripheral devices, and a docking Station
`control unit coupled to the PCMCIA interface and the
`peripheral control units, wherein the docking Station control
`unit selectively transfers data between the PCMCIA inter
`face and one of the peripheral control units, and wherein the
`docking Station control unit extends the period of time data
`written by the computer remains stable on the PCMCIA
`interface. A computer System including the universal dock
`ing station is also provided. A method for interfacing a
`standard peripheral device to a computer via a PCMCIA bus
`is also provided.
`
`5 Claims, 6 Drawing Sheets
`
`O Redd with Woit Stote
`
`T1->
`
`T2-
`
`-- T4 -->
`
`T3
`
`--T1 6->
`
`15
`
`T1
`
`703 REG#
`
`705 CE1:Ol
`
`707 IORD
`
`709 INPACK
`
`711 IOIS16#
`
`
`
`713 WAIT
`
`715 Oout
`
`WESTERN DIGITAL CORPORATION, EXHIBIT 1009
`Page 1 of 14
`
`
`
`U.S. Patent
`
`Aug. 24, 1999
`
`Sheet 1 of 6
`
`5,941,965
`
`FIG. 1
`
`125
`
`127
`
`113
`
`/
`
`PRINTER
`
`MONITOR
`
`MODEM
`
`107 N.
`KEYBOARD
`
`
`
`
`
`109 N
`JOYSTICK H
`
`
`
`
`
`
`MOUSE
`
`
`
`129
`DOCKING
`STATION
`
`
`
`
`
`
`
`
`
`
`
`1 O3
`
`131
`
`PCMCIA
`CARD
`
`PORTABLE
`COMPUTER
`
`-115
`
`HARD 11 117
`
`----
`
`DSK
`DRIVE
`
`-119
`
`-121
`
`- 123
`
`FLOPPY
`DRIVE
`
`— CD-ROM
`
`TAPE
`BACK-UP
`
`WESTERN DIGITAL CORPORATION, EXHIBIT 1009
`Page 2 of 14
`
`
`
`U.S. Patent
`
`Aug. 24, 1999
`
`Sheet 2 of 6
`
`5,941,965
`
`K.
`
`K
`
`K
`
`Gy?
`
`177
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`WESTERN DIGITAL CORPORATION, EXHIBIT 1009
`Page 3 of 14
`
`
`
`U.S. Patent
`
`Aug. 24, 1999
`
`Sheet 3 of 6
`
`5,941,965
`
`FIG. 3
`
`
`
`
`
`
`
`DEVICE
`DRIVER
`
`
`
`
`
`IS
`CARD SERVICES
`INSTALLED
`p
`
`
`
`
`
`YES
`
`REGISTER WITH
`CARD SERVICES
`
`
`
`SETUP INTERRUPT
`HANDLERS
`
`
`
`311
`
`313
`
`317
`
`
`
`
`
`
`
`WAIT FOR
`CARD TO BE
`INSERTED
`
`3O7
`
`REPORT
`ERROR 8
`RETURN
`
`WESTERN DIGITAL CORPORATION, EXHIBIT 1009
`Page 4 of 14
`
`
`
`U.S. Patent
`
`Aug. 24, 1999
`
`Sheet 4 of 6
`
`5,941,965
`
`
`
`
`
`
`
`
`
`
`
`CARD INSERTED
`
`401
`
`FIG. 4
`
`GET MANUFACTURES ID
`
`403
`
`405
`
`407
`
`NO -- GNORE CARD
`
`YES
`
`GET FIRST
`CONFIGURATION ENTRY
`
`
`
`409
`
`YES
`
`REQUEST I/O
`
`
`
`
`
`SUCCESS
`
`YES
`
`
`
`415
`
`REQUEST IRQ H FAIL
`SUCCESS
`
`
`
`e
`
`YES
`419
`
`
`
`
`
`DOES
`CONFIGURATION
`SUPPORT OTHER
`I/O's ?
`
`
`
`DOES
`CONFIGURATION
`SUPPORT OTHER
`'C
`IRQS
`
`
`
`DOES
`CONFIGURATION
`
`SUCCESS
`
`DMA'S 2
`
`421
`REASE/9,
`/ FAL
`REQUEST MEMORY FAL -
`SUCCESS
`427
`
`
`
`
`
`429
`
`431
`
`CONFIGURE HARDWARE
`ON PCB
`
`CARD CONFIGURATION
`COMPLETE
`
`413
`
`417
`
`NO
`
`418
`
`HA
`NO -- RELEASE I/O H
`
`421
`
`422
`
`RELEASE I/O
`
`423
`
`THERE OTHER
`CONFIGURATION'S
`
`NO
`
`433
`
`REPORT ERROR
`
`GET NEXT
`CONFIGURATION
`ENTRY
`
`WESTERN DIGITAL CORPORATION, EXHIBIT 1009
`Page 5 of 14
`
`
`
`U.S. Patent
`
`Aug. 24, 1999
`
`Sheet S of 6
`
`5,941,965
`
`INTERRUPT SERVICE ROUTINE
`
`FIG. 5
`
`READ NTERRUPT STATUS REGISTER
`
`505
`
`523
`
`BRANCH TO DE ISR
`
`mu
`
`YES --
`
`st N O
`507 > - NO
`
`525
`
`527
`A
`
`529
`
`A
`YES -- BRANCH TO VGA SR H
`
`509
`Y floppy c. YES - BRANCH TO FLOPPY ISR
`
`NO
`
`511
`
`Y SERA, 2d YES - BRANCH TO SERIAL ISR H
`
`513
`
`NO
`
`NO
`
`531
`
`YES -- BRANCH TO PARALLEL ISR
`
`533
`
`515
`
`Y Network > YES - BRANCH To NETWORK ISR
`535
`517
`-l
`is - GETMOUSE EVEN ANDPUT
`IN MOUSE INPUT BUFFER
`
`NO
`
`YES
`
`GET KEYCODE AND PUT
`N KEY INPUT BUFFER
`
`537
`
`NO
`
`NO
`
`519
`
`521
`
`
`
`CLEANUP AND RETURN
`FROM INTERRUPT
`
`WESTERN DIGITAL CORPORATION, EXHIBIT 1009
`Page 6 of 14
`
`
`
`U.S. Patent
`
`Aug. 24, 1999
`
`Sheet 6 of 6
`
`5,941,965
`
`FIG. 6
`
`6O1 Addr
`
`603 REG#
`
`605 EC1:0)
`#
`6O7 OWR
`#
`609 EARLY
`IOWR
`611 OIS 1
`6#
`613 WAT
`#
`
`615 Din
`
`FIG. 7
`
`703 REGi.
`
`705 CE1:0)
`
`707 IORD;
`
`709 INPACK#
`
`IO Write with Early Write Termination
`
`T8. -->T9
`
`O
`
`(1:12 T13
`
`T11
`
`O Redd with Woit Stote
`
`T1->
`
`T2-
`
`- T4 -->
`
`T3
`
`-T16
`
`15
`
`->T14
`
`711 " . .
`
`713 WAIT
`
`
`
`T6
`
`715
`
`Oout
`
`- T5
`
`.
`
`H-T7
`
`.
`
`.
`
`-T13
`
`T12->
`
`.
`
`.
`
`.
`
`.
`
`WESTERN DIGITAL CORPORATION, EXHIBIT 1009
`Page 7 of 14
`
`
`
`5,941,965
`
`1
`UNIVERSAL DOCKING STATION
`
`This application claims benefit of Provisional Applica
`tion 60/017,725 filed May 16, 1996.
`
`FIELD OF THE INVENTION
`The present invention relates generally to computers ind
`more particularly to docking Stations used to interface
`portable computer to multiple peripheral devices.
`
`2
`receiving a write command, and the portable computer is
`capable of writing data. The docking Station comprises a
`PCMCIA interface adapted to be coupled to the portable
`computer, peripheral control units adapted to be coupled to
`the plurality of peripheral devices, and a docking Station
`control unit coupled to the PCMCIA interface and the
`peripheral control units, wherein the docking Station control
`unit selectively transfers data between the PCMCIA inter
`face and one of the peripheral control units, and wherein the
`docking Station control unit extends the period of time data
`written by the computer remains stable on the PCMCIA
`interface.
`A computer System is also provided comprising a portable
`computer having a PCMCIA interface, the portable com
`puter capable of generating output Signals for designated
`peripheral devices, a control unit having a PCMCIA inter
`face for interfacing with the portable computer PCMCIA
`interface, a plurality of peripheral devices coupled to the
`control unit, with at least one of the peripheral devices being
`a user input device capable of generating input signals, and
`at least one of the peripheral devices being a display device,
`the control unit comprising means for converting the output
`Signals from the portable computer into a form compatible
`with the designated peripheral device, means for routing the
`converted Signal to the designated peripheral device, means
`for converting the input Signal into a form compatible with
`the portable computer, and means for prioritizing access to
`the PCMCIA bus by the input signals. In one embodiment,
`the means for converting the output Signal into a form
`compatible with the designated peripheral comprises
`extending the period of time the output Signal remains
`stable.
`A method for interfacing a standard peripheral device to
`a computer via a PCMCIAbus is also provided. The method
`comprises the Steps of driving data to be written to the
`peripheral device on the PCMCIA bus, extending the time
`the data is available to the peripheral device on the PCMCIA
`buS for a period Sufficient to Satisfy the timing requirements
`of the peripheral device, and writing the data to the periph
`eral device. In one embodiment, the extending Step is
`accomplished by activating the write signal a period before
`a Standard write Signal.
`BRIEF DESCRIPTION OF THE DRAWINGS
`For a more complete understanding of this invention
`reference should now be made to the embodiment(s) illus
`trated in greater detail in the accompanying drawings and
`described below by way of examples of the invention.
`FIG. 1 is a block diagram showing a docking Station in
`accordance with one embodiment of the invention connected
`to various peripheral devices and connected to a computer
`via a Standard universal interface.
`FIG. 2 is a more detailed block diagram of the docking
`station represented in FIG. 1.
`FIG. 3 is a flow chart showing a method of initializing a
`device driver into an operating System.
`FIG. 4 is a flow chart of steps that occur in handling
`insertion of a PCMCIA card into a PCMCIA port of a
`computer.
`FIG. 5 is a flow chart of steps that occur when the docking
`Station shown in FIG. 1 causes an interrupt on the computer
`requesting Service for one of the peripheral devices.
`FIG. 6 is a timing diagram showing the write timing used
`to interface multiple peripheral devices to the PCMCIA port.
`FIG. 7 is a timing diagram showing the read timing used
`to interface multiple peripherals to the PCMCIA port.
`
`15
`
`25
`
`35
`
`BACKGROUND OF THE INVENTION
`Though popular, portable computers, Such as notebook,
`laptop or palmtop computers have Several Shortcomings
`when compared to conventional desktop computers. They
`typically include a keyboard that is Smaller and more
`difficult to use than a conventional keyboard, and a Smaller,
`lower resolution Screen than a conventional desktop moni
`tor. In addition, portable computers rarely include Such
`peripherals as CD ROMS, tape backups, secondary hard
`drives, modems, and network connectors.
`A portable computer user Seeking these features has
`limited options. The user can purchase Separate portable and
`desktop computers. However, given that the user can only
`use one computer at a time, this option is costly and requires
`frequent data transferS between the two computers. A Second
`option is to plug the various peripherals into their designated
`ports on the portable computer. Unfortunately, most portable
`computers do not have connectors for many of the periph
`erals desired. Moreover, Separately connecting and uncon
`necting the various peripherals is time consuming and
`burdensome.
`A third option for the portable computer user Seeking to
`expand the capabilities of their portable computer is to
`purchase a docking Station or expansion base into which the
`particular portable computer may easily be docked during
`desktop use. Thus, only one computer is necessary, and data
`transfer is not required. The docking Station typically sits on
`the user's desk and provides connections to various periph
`40
`eral devices, Such as full-size keyboards and monitors,
`modems, network connectors, etc. Once the portable com
`puter is docked in the docking Station, the portable computer
`has access to all of the various peripherals attached to the
`docking Station. When travel is necessary, the user can
`Simply remove the portable computer from the docking
`Station and carry it with him on the road.
`A major shortcoming of current docking Stations is their
`reliance on proprietary connectors to connect the portable
`computer to the docking Station. Consequently, one must
`purchase the docking Station that corresponds to the make
`and model of the portable computer they currently own, and
`is most likely precluded from using docking Stations manu
`factured by different companies. This severely limits the
`usefulness of the docking Station concept because a portable
`computer user is confined to a Small number of Stations into
`which he can dock his computer. A Strong need exists for a
`universal docking Station that provides the added advantages
`and capabilities of a desktop computer, particularly a full
`Size keyboard and monitor, but does not require a proprietary
`connection to the portable computer.
`
`45
`
`50
`
`55
`
`60
`
`SUMMARY OF THE INVENTION
`A universal docking Station for connecting a portable
`computer to a plurality of peripheral devices is provided,
`wherein at least one of the peripheral devices is a user input
`device, at least one of the user input devices is capable of
`
`65
`
`WESTERN DIGITAL CORPORATION, EXHIBIT 1009
`Page 8 of 14
`
`
`
`5,941,965
`
`15
`
`25
`
`3
`DETAILED DESCRIPTION OF THE
`PREFERRED EMBODIMENT
`The universal docking Station or expansion base of the
`present invention allows a portable computer user to inter
`face a portable computer to Several different peripheral
`devices, such as CD-ROMs, Hard Disk Drives, Floppy Disk
`Drives, Tape Backups, Standard Size keyboards and mice,
`standard size VGA/Super VGA monitors, networks, and
`other peripherals that typically utilize Serial and/or parallel
`ports.
`Rather than using proprietary connectors to connect the
`computer to the docking Station, the present invention
`accomplishes this task using a Standard universal interface.
`One such interface is the Personal Computer Memory Card
`International Association (“PCMCIA) slot, port or socket
`provided on most portable computers. To interface with the
`PCMCIA slot, the docking station uses a PCMCIA card
`(“PC Card”) as the connection between the portable com
`puter and the docking Station. With this arrangement, por
`table computer users can connect their portable computers to
`multiple peripherals with one PCMCIA card. Because PCM
`CIA ports on portable computers are almost identical physi
`cally and electrically from computer to computer, the
`present docking Station will work with almost any portable
`computer having Such a port. With this arrangement, the
`docking Station of the present invention can be positioned
`not only at a users office and home, but at airports, libraries,
`business associates" offices, and Virtually anywhere else
`computers are used. Portable computer users would no
`longer be limited by the make and model of computer they
`carry.
`Background on 16-Bit PCMCIA cards can be found in
`Mindshare, Inc. & Don Anderson, PCMCIA System Archi
`tecture 16 Bit PC Cards, Second Edition (Addison-Wesley
`Publishing Company 1995), which is hereby incorporated
`by reference. Background on 32-bit PCMCIA standard
`known as “card bus” can be found in Mind Share, Inc., Card
`Bus System Architecture (Addison-Wesley Publishing Com
`pany 1995), which is hereby incorporated by reference.
`40
`Referring to the drawings, particularly FIG. 1, a portable
`computer 101 having a PCMCIA port 102 is connected to a
`PCMCIA card 105 which interfaces to a docking station 103.
`The PCMCIA card 105 completes the interface between the
`portable computer 101 and the docking station 103. Several
`peripheral devices 106 are coupled to the docking Station
`103. Possible peripheral devices include: keyboard 107, joy
`Stick 109, mouse 111, modem 113, network interface 115,
`hard disk 117, floppy disk 119, CD ROM 121, tape backup
`123, printer 125, and monitor 127.
`In one embodiment, the docking station 103 contains two
`standard expansion slots 129 and 131 configured and
`arranged to receive any combination of two of the following
`standard internal peripheral devices: hard disk 117, floppy
`drive 119, CD ROM 121 and tape backup 123. Other
`embodiments of the present invention may provide for
`additional expansion slots for receiving additional internal
`peripheral devices.
`As indicated above, the portable computer 101 contains at
`least one PCMCIA slot. The portable computer 101 also
`includes a central processing unit (CPU) coupled to a Read
`Only Memory (ROM) and Random Access Memory
`(RAM). The computer communicates with the PCMCIA slot
`and other internal and external components through an
`internal or input/output (I/O) bus. A controller or Host Bus
`Adaptor (HBA) links signals coming from the PCMCIA slot
`(or from a PCMCIA card installed in the slot) to the I/O bus
`
`4
`of the portable computer. The computer may also include
`one or more data Storage devices, Such as a hard disk drive,
`a floppy disk drive, and CD-ROM drive. In one
`embodiment, Software used in connection with the present
`invention may be stored and distributed on a CD-ROM,
`which may be inserted into and read by the CD-ROM drive.
`The computer is also coupled to a display, and a user input
`device Such as a mouse or keyboard.
`A memory window can be created in the portable com
`puter's address Space into which memory and configuration
`registers of the PCMCIA card can be individually mapped.
`This memory window can be set up by a device driver of the
`PCMCIA card, and typically remains the same size and
`keeps the Same memory location on the portable computer.
`Referring to FIG. 2, the docking station 103 interfaces to
`the computer 101 via a PCMCIA bus 201 on the computer
`101. The computer 101 includes a PCMCIA slot or socket
`connected to the PCMCIA bus 201, into which a PCMCIA
`card can be inserted to connect the PCMCIA card to the
`PCMCIA bus 201. As used herein, a PCMCIA card refers,
`generically, to a Standardized interface between a peripheral
`device and an internal bus of a computer. Typically, the
`PCMCIA card will be of a standard length and width, and
`will have a thickness determined by the card type (e.g., Type
`I =3.3 mm thick; Type II =5.0 mm thick; Type III =10.5 mm
`thick). The PCMCIA card is configured to fit into a PCMCIA
`slot or Socket. When inserted into the PCMCIA slot or
`socket, the PCMCIA card can be connected to a wide variety
`of host buses, typically via hostbus adapters designed for a
`particular bus interface. The PCMCIA bus 201 is an expan
`Sion of the computers internal bus, and allows devices
`connected to the PCMCIA port to be accessed by the
`computer as if they were inside the computer. The PCMCIA
`physical interface allows for devices to be inserted and
`removed at any time from the computer.
`The PCMCIA bus 201 operatively couples a PCMCIA
`control bus 239, an address bus 241 and a data bus 243 to
`core logic 202 of the docking station 103 to the computer
`101. The core logic 202 includes address decode and control
`logic 203, configuration registers 205, and attribute memory
`207.
`In one exemplary embodiment, the address decode and
`control logic 203 is implemented using field programmable
`gate arrays (FPGA). Alternatively, the address decode and
`control logic 203 could be implemented using a program
`array logic (PAL) or other similar programmable devices or
`custom integrated circuits (IC) So long as the particular
`implementation can handle the timing requirements of the
`PCMCIAbus 201 as well as all of the peripheral devices 106
`connected to the docking station 103.
`In the exemplary embodiment, the configuration registers
`205 contain five registers. The first configuration register is
`a standard PCMCIA register needed for all PCMCIA
`devices, commonly referred to as the configuration option
`register. This register contains 8 bits to enable the PCMCIA
`card to behave as an I/O card and also has a bit that resets
`the card to a known State. The Second configuration register
`is a 16 bit register that contains the I/O address for the
`configuration registers of the different peripheral devices
`attached to the docking station 103. The third register is an
`interrupt flag which is an 8 bit register that contains a bit for
`each device to interrupt the computer for Services. The
`fourth register is a 16 bit register that is loaded with the
`address for the IOIS16 signal used by the IDE interface. The
`IOIS16 is a signal used to inform the computer that a device
`desires to carry out a 16 bit transfer as opposed to an 8 bit
`
`35
`
`45
`
`50
`
`55
`
`60
`
`65
`
`WESTERN DIGITAL CORPORATION, EXHIBIT 1009
`Page 9 of 14
`
`
`
`5,941,965
`
`15
`
`25
`
`S
`transfer to the computer. The last register is a keyboard
`configuration register which is a 16 bit register that is loaded
`with the I/O address that the keyboard controller needs to be
`mapped to in the System.
`In the above described exemplary embodiment, the con
`figuration registers 205 are implemented using a field pro
`grammable gate array (FPGA). The configuration registers
`205 could also be implemented using random access
`memory (RAM) or a programmable array logic (PAL)
`device. Different Size registers may also be Sued as dictated
`by the actual implementation.
`The attribute memory 207 is implemented in the exem
`plary embodiment with an electronically erasable program
`mable read only memory (EEPROM) or other suitable
`Standard nonvolatile memory. In one embodiment, only
`about 1024 bytes of memory are required to store all the
`values needed for the docking station 103.
`Peripheral devices 106 can be connected to the docking
`station 103 through appropriate connectors (223-237). Once
`connected, the peripheral devices 106 interface through the
`address decode and control logic 203.
`A parallel connector is connected through connection 249
`to a parallel controller 209. The parallel controller 209 is
`connected to the address decode and control logic 203 via
`control bus 245 and address bus 247. Parallel controller 209
`is also connected to configuration registers 205 with control
`bus 245 and address bus 247. A data bus 243 is linked to, and
`can provide data to, the configuration registers 205, the
`attribute memory 207, and the parallel controller 209. The
`parallel controller 209 may be implemented, for example,
`using a standard 8255 compatible parallel controller used on
`IBM XT/AT compatible computers. This supports the
`optional PS/2 bidirectional parallel port (SPP), the Enhanced
`Parallel Port (EPP) and the Extended Capabilities Port
`(ECP) modes. This interface is useful for connecting
`printers, removable media high density Storage devices and
`35
`scanners to the docking station 103. A Standard Microsys
`tems Corporation (SMC) FDC37C93X Plug and Play Com
`patible Ultra I/O Controller includes a parallel port and can
`be used for this purpose.
`A serial connector 225 is connected via connection 251 to
`a serial controller 211. The serial controller 211 is connected
`to the address decode and control logic 203, configuration
`registers 205 by way of control bus 245, address bus 247 and
`data bus 243, as indicated in FIG. 2.
`The serial controller 211 may be a NS16C550 compatible
`Serial controller or other Serial controller that can handle
`high speed communication (i.e., communication above
`460K Baud), and has a built in FIFO for handling data
`received by the Serial port at a rate faster than can be sent
`through the interface to the computer. The Serial controller
`may be a standard 16C550 compatible Universal Asynchro
`nous Receiver/Transmitter (UART), for example, with a 16
`byte FIFO. The UART performs the serial-to-parallel con
`version for receiving characters and the parallel-to-Serial
`conversion for transmitting characters. This UART allows
`for data rates from 50 to 460.8Kbaud. The character options
`are programmable for 1 Start, 1, 1.5 or 2 Stop bits, even, odd,
`sticky or no parity; and prioritized interrupts. The UART
`contains a programmable baud rate generator that is capable
`of dividing the input clock or crystal by a number from 1 to
`65535. The UART is also capable of Supporting Musical
`Instrument Digital Interface (MIDI) data rate. An SMC
`FDC37C93X Plug and Play Compatible Ultra I/O Controller
`can be used for this purpose. Other Serial controllerS may
`also be used So long as they Support a communications Speed
`of 460K baud and contain a FIFO for handling data over
`flow.
`
`6
`An Integrated Drive Electronic (IDE) connector 227 is
`connected via connection 253 to IDE interface logic 213.
`The IDE enables hard disk drives with embedded controllers
`to be interfaced to the host processor. The IDE interface
`performs the address decoding for the IDE device. This
`interface also supports devices such as CD-ROM drives and
`newer high density removable storage devices. The IDE 213
`includes an address decoder for the Specific drive or mass
`Storage device to be interfaced to, and interrupt circuitry to
`allow the device to request Service from the computer. The
`interrupt Source goes back through the control bus 245
`through the address decode and control logic 203 back into
`the PCMCIA bus 201. In an exemplary embodiment, the
`SMC FDC37C93X Plug and Play Compatible Ultra I/O
`Controller provides the IDE interface.
`A keyboard connector 229 is connected via connection
`255 to a keyboard and mouse controller 215. A mouse
`connector 231 is also connected via connection 257 to the
`keyboard and mouse controller 215. The keyboard and
`mouse controller 215 interfaces through the control bus 245,
`address bus 247 and data bus 243. The keyboard and mouse
`controller 215 should contain means for communicating to
`a keyboard and a mouse and means for interfacing with a
`computer. The keyboard and mouse controller 215 may be
`implemented using a universal keyboard control with a
`Standard Intel 8042 micro controller CPU core. The SMC
`FDC37C93X Plug and Play Compatible Ultra I/O
`Controller, for example, provides the keyboard and mouse
`controller 215. Other standard keyboard and mouse control
`lers may also be used.
`A floppy disk connector 233 is connected to the floppy
`disk controller (FDC) 217 via connection 259. The FDC 217
`is connected to the control bus 245, address bus 247 and data
`bus 243. An IBM compatible FDC can be used, and pref
`erably one with a CMOS 755 floppy disk controller that
`supports a 2.88 megabyte Super floppy drive. This FDC 217
`can handle up to two floppy disk drives or tape backups. The
`FDC integrates the functions of the Formatter/ Controller,
`Digital Separator. Write Precompensation and Data Rate
`Selection logic for IBM XT/AT compatible FDC are also
`provided. The true CMOS 765B core guarantees 100% IBM
`PC XT/AT computability in addition to providing data
`overflow and underflow protection. In an exemplary
`embodiment, the SMC FDC37C93X Plug and Play Com
`patible Ultra I/O Controller provides the FDC.
`A VGA connector 235 is connected to a VGA controller
`219 via connection 261. The VGA connector 235 interfaces
`through the control bus 245, address bus 247 and data bus
`243. The VGA controller 261 can have some VGA memory
`integrated into it, support up to 1024 by 756 pixels, and be
`compatible with a Super VGA monitor.
`A network connector 237 is connected to a network
`controller 221 through connection 263. The network con
`troller 221 interfaces through the control bus 245, address
`bus 247 and data bus 243. Between a 10 megabyte and a 100
`megabyte controller can be Supported. In the exemplary
`embodiment, the network controller 221 is an Ethernet
`controller.
`As indicated, the keyboard and mouse controller 215,
`FDC 217, parallel controller 209, serial controller 211, and
`IDE interface 213 can be implemented using a Standard
`Microsystems Corporation (SMC) FDC37C93X Plug and
`Play Compatible Ultra I/O Controller. This device incorpo
`rates a keyboard interface, SMC's true CMOS 765B floppy
`disk controller, advance digital separator, 16 byte data FIFO,
`16C550 compatible UARTs, a Multi-Mode parallel port and
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`WESTERN DIGITAL CORPORATION, EXHIBIT 1009
`Page 10 of 14
`
`
`
`5,941,965
`
`15
`
`25
`
`35
`
`40
`
`7
`an IDE interface. The FDC37C93X also provides support
`for the ISA Plug-and-Play Standard (Version 1.0a) and
`provides for the recommended functionality to support Win
`dows 95.
`Most PCMCIA socket controllers designed into most
`computers have a limited I/O window size. Typically, only
`two I/O windows are permitted. This will allow for one or
`two functions to have I/O ports. With more than two
`functions on the docking Station it is necessary to combine
`all of the I/O ports into two contiguous pieces of I/O
`memory.
`Almost all of the functions on the SMC chip can be
`relocated in I/O address Space via configuration registers.
`The only function that is fixed is the keyboard and mouse
`controller. To accommodate this a Xilinx FPGA is built into
`the hardware of the docking station. The Xilinx device
`includes logic to match an address and output the appropri
`ate address to the SMC chip.
`FIG. 3 shows a flow chart depicting steps performed in
`inserting the docking station device driver 301 into the RAM
`of the portable computer 101. Processing begins with deci
`sion step 303 which detects whether card services (a piece
`of software that is used to interface with the PCMCIA port
`at a high level) is installed on the computer; if not, an error
`is flagged at Step 307, processing Stops, and the device driver
`is not installed into the operating System. If card Services is
`installed, processing continues with Step 311 wherein the
`device driver registers with card Services and Sets up a call
`back handler, thereby allowing card Services to inform the
`docking Station device driver of events that happen in the
`PCMCIA port such as a PCMCIA card being inserted or
`removed. After the device driver is registered with card
`Services, processing continues with Step 313 which polls for
`interrupt vectors and loads the interrupt vectors into memory
`to allow the device driver to handle different functions of the
`docking Station. Once in memory, the device driver stays in
`memory waiting for one of the callback events from card
`services to tell it that the docking station PCMCIA card has
`been inserted into the computer's PCMCIA port as shown in
`item 317.
`The PCMCIA standard specifies that all PCMCIA devices
`must behave as a memory device until configured by the host
`computer. After configuration, the PCMCIA device must
`convert some of the interface pins to the PCMCIA bus to
`Support the I/O interface. This is accomplished in one
`embodiment of the universal docking station 103 by using a
`Xilinx FPGA to control the functions of the flexible interface
`pins. All PCMCIA devices must also have memory on board
`that identifies the device's functions and capabilities. This is
`accomplished in the exemplary embodiment of the present
`invention by using a 2K EEPROM that is accessible by the
`computer at any time. The EEPROM also allows for soft
`ware to write new information to it when upgrades or
`modifications are necessary.
`FIG. 4 depicts the Steps performed during card configu
`ration. Processing begins at step 401 when a PCMCIA card
`is inserted into the PCMCIA port on the computer, and card
`services informs the device driver through the callback
`handler that a card has been inserted. Next, in step 403, the
`device driver asks card services for the manufacture ID of
`the card that was inserted. If the card inserted is the docking
`station PCMCIA card, the manufacturer ID is stored in
`attribute memory 207. In decision step 405, the manufac
`turer ID of the card inserted is compared to the ID desig
`nated for the docking Station; if no match is found, the
`System ignores the card as shown in Step 407 and continues
`
`45
`
`50
`
`55
`
`60
`
`65
`
`8
`waiting for another card to be installed. If the manufacturer
`ID is correct, processing continues with step 409 which gets
`the first configuration entry that is Stored in the attribute
`memory on the card.
`Next, the device driver tries to configure the I/O port and
`different interfaces needed for using the docking Station card
`in the System given the particular configuration entry. The
`first step is the I/O port step 411 which is requested from
`card Services and card Services either allows the docking
`station card to have the I/O port or not. If not, the system will
`determine in decision Step 413 whether the configuration
`allows other I/O ports to be used. If there are more I/O ports
`in this particular configuration, the System will return to Step
`411 to try requesting the next I/O port. This routine will
`continue until an I/O port is Successfully requested or all I/O
`ports of this particular configuration entry are exhausted. If
`there are no more I/O ports in the particular configuration,
`decision step 423 det