throbber
United States Patent [19]
`Michelson
`
`[54] REPROGRAMMABLE PCMCIA CARD AND
`METHOD AND APPARATUS EMPLOYING
`SAL/IE
`
`[75] Inventor: 1114:1151? S. Michelson. North Andover,
`
`[73] Assignee: Data Translation, Inc.. Mass.
`
`[21] Appl. No.: 397,390
`5
`F? d_
`M 2
`e '
`at‘ ’ 199
`[22]
`[51] Int. Cl.6 ......................... .. G06F 13/10; G06F 15/177
`[52] us. 01. ................ .. 395/828; 395/282; 395/283;
`395/284; 395/822
`[58] Field of Search ................................... .. 395/889. 392,
`395/282_ 283‘ 284_ 828‘ 830
`
`[56]
`
`References Cited
`
`US. PATENT DOCUIVIENTS
`5/1991 Gamer et a1. ......................... .. 364/200
`5,014,193
`6/1991 Fulchenlr. et a1. .
`364/900
`5,023,832
`7/1991 Dolazza et a1.
`353/133
`5,034,813
`5,257,387 10/1993 Richek et a1. ..
`395/800
`5,263,148 11/1993 lonesilnet a1.
`395/500
`5,301,344
`4/1994 Kolchmsky ....... ..
`395/800
`2?? at a]
`8/1994 Brousitt'g‘gt'gl"
`
`5’334’O46
`
`439/540
`
`US005628028A
`[11] Patent Number:
`[45] Date of Patent:
`
`5,628,028
`May 6, 1997
`
`7/1995 Crick et a1. ........................... .. 395/700
`5,432,941
`5,517,646 5/1996 Piccirillo et a1. . . . . . .
`. . . .. 395/700
`5,535,331
`7/1996 Swoboda et a1. .... ..
`395/183.21
`5,548,759
`8/1996 Lipe ...................................... .. 395/600
`OTHER PUBLICATIONS
`
`Personal Computer Memory Card International Association.
`“PCMCIA PC Cal-d Standard,” P. i-ixx, 1-1—1—4. 2—1—
`2-4, 3-1-3-28. 4-1—4—38. Jul. 1993.
`Bindra. Electronic Engineering Times. “FPGAs moving to
`boost DSP applications,” Issue 837, Feb. 27, 1995.
`Fuller, Electronic Engineering Times, “AT&T rolls
`40-000~gat¢ Orea FPGA?’ Issue 831F611 27. 1995
`Romanchi Test & Measurement World, “Portables AIe PIO
`liferating.” pp. 41-44. Feb. 15, 1995.
`Beachler ct ?1-’ Electronic Enginee'i'lg Time “Recon?gu
`ration ShOWlIlg Promise,” pp. T—41—T—44. Apr. 11. 1994.
`Hutchings et a1., Electronic Engineering Times, “Digital
`Signal Processing. Recon?guring Speeds Up Computing.”
`pp. 50-51. Oct. 17. 1994.
`
`pmila'y Examliwpjzick B‘ Harvey
`Assistant Examzner-J1gar Pauchoh
`.
`.
`.
`Mame)’, Agen’» 0’ F"m—F1sh & Rlchardson P-C
`
`ABSTRACT
`[57]
`A PCMCIA cal-d having an FPG A based card controller that
`is programmed with FPGA programming data stored on a
`host computer through a standard PCMCIA bus.
`
`5,357,573 10/1994 Walters . . . . . . . . . . . . . . .
`
`. . . . .. 380/25
`
`5,428,748
`
`6/1995 Davidson et a1. .................... .. 395/829
`
`26 Claims, 4 Drawing Sheets
`
`DATA ACQUISITION PCMCIA CARD
`14
`
`I
`L
`
`81
`La 5 80
`E8‘
`
`86
`
`p] 82
`
`76
`
`34
`
`i
`
`736
`
`.64
`cMcIA DATA 66
`c‘
`68
`L
`PCM A
`PCMCIA comaor 'FJIERFACE
`:E'MCM
`CONNECTOR >
`'62
`PCMCIA ADDRESS
`29
`
`12
`€R|PHERAL DAT7A4
`6—0
`I
`PCMCIA
`P?IrHrRAL comnéi COTQSZLLER
`7'0
`v1*’12TIPHERAI. ADDRES'S
`
`\
`
`28
`
`l
`
`3 EéZROM
`
`
`F1;;"*"—“ | PROGRAMMING
`I
`CIRCUIT
`
`68
`
`RIIasET s3‘
`__|
`
`)IzsPRocIzAiw as
`[
`
`l_ m _ _ _ ? _ ____
`
`__ _ — —‘
`
`I
`
`78
`
`EXTERNAL
`CONNECTOR
`
`l
`88
`BUS To IBM
`l
`|
`$30
`' L DIGITAL No l’
`
`BLACKBERRY Ex. 1003, page 1
`
`

`

`US. Patent
`
`May 6, 1997
`
`Sheet 1 0f 4
`
`5,628,028
`
`em
`
`BOLDBNNOD 'IVNHHLXS
`
`omm6
`
`29:3
`
`mm
`
`E9765229.
`
`mEduc
`
`>E<zo:uzi9.5
`
`Susi;
`
`ON
`
`NN
`
`
`
`.xUOAm
`
`SUEU;
`
`~EHL<D<
`
`ZO_._.<U_._n_m<
`
`mm<>>._.u_0m
`
`I:
`
`_..0.”—
`
`in
`
`$455on9:3BEES.
`«OmmeOmn— LOmem—Dm0ARV—k??—
`ll:Emhmxrm
`
`
`
` 9Emhm>mSUEUL
`
`\N‘
`
`
`
`Mthn—EOU._.mOI
`
`BLACKBERRY EX. 1003, page 2
`
`BLACKBERRY Ex. 1003, page 2
`
`
`

`

`US. Patent
`
`May 6, 1997
`
`Sheet 2 of 4
`
`5,628,028
`
`QEU$3.35
`
`
`
`.E0:32...macaw53.805
`
`Ea$322..525.”.32:
`
`
`wEEEEon(GAE$33.3.
`
`
`oV838053%:35.wunmvx‘
`
`
`3VmmNEmouw.Bang<_U2Un_
`
`want
`
`a;
`
`
`
`Emu(CED;*0:oEomE
`
`wm
`
`N.0."— 2:3%wEEEEon
`3:033on96“no;canEmu<_U2Um
`
`5.3:wE—umo.>3(on:3:95:00
`
`(On—n.638.3ofE0:3%9:
`(.020;mEflmoE3.303.23:.
`530005
`whmitommm+U325.38
`
`
`.33SUEULficm:0;$5w$=ou
`<9:ca3023.has03333
`
`
`cornuzaam$53553805
`smaoéEOEEm6282.25
`
`
`«Em.QEU“"521ng(CEDA—
`
`
`
`2:SatmEEEEmoE
`
`om
`
`BLACKBERRY EX. 1003, page 3
`
`BLACKBERRY Ex. 1003, page 3
`
`
`
`
`
`
`

`

`US. Patent
`
`May 6, 1997
`
`Sheet 3 0f 4
`
`5,628,028
`
`BLACKBERRY Ex. 1003, page 4
`
`

`

`US. Patent
`
`May 6, 1997
`
`Sheet 4 0f 4
`
`5,628,028
`
`LL 4 > DATA 10 ’
`
`68 PIN
`PCMCIA
`CONNECTOR ,\
`‘ADDRESS 10’4
`
`6
`
`99
`
`FPGA
`11E
`
`‘
`
`‘L
`
`a
`
`(PRIOR ART)
`FIG. 4a
`
`\
`100‘ EPRQM
`
`RESET 112
`
`REPROGRAM 11'4
`
`1/10
`23:13am‘
`
`RESET 108
`
`13— >
`
`68 PIN
`PCMCIA
`CONNECTOR \
`
`DATA
`
`I1’ ADDRESS
`
`FPGA
`124
`_“
`
`120
`A’
`
`-
`
`126'
`
`\
`"'—--128
`\13O
`
`(PRIOR ART)
`
`EPROM
`
`RESET 132
`
`BLACKBERRY Ex. 1003, page 5
`
`

`

`1
`REPROGRAMMABLE PCMCIA CARD AND
`METHOD AND APPARATUS EMPLOYING
`SAME
`
`5,628,028
`
`2
`SUMMARY
`
`BACKGROUND
`This invention relates to programming and reprogram
`ming the hardware con?guration of a (PCMCIA) card.
`Personal computer memory card international association
`(PCMCIA) cards are computer cards that meet the minimum
`compliance requirements of the PCMCIA standard (e.g..
`release 2.1. which is hereby incorporated by reference).
`PCMCIA cards are typically used to add functionality or
`memory to a personal. portable. or desldop computer (i.e.,
`host computer). as described in PCMCIA Standard release
`2.1. The most popular PCMCIA cards are fax/modems and
`memory cards used in laptop computers. For example. a
`memory card having a hard disk drive can provide 200 MB
`of additional memory. Many other PCMCIA cards are
`available. including input/output (I/O) PCMCIA cards that
`transfer data between a host computer system and an I/O bus
`and data acquisition cards. Typically. data acquisition cards
`receive and digitize analog information from sensors and
`temporarily store the information before transferring it to the
`host computer. Additionally. data acquisition cards are used
`by the host computer to send control and data signals to
`external analog and digital controllers.
`A typical PCMCIA card includes a standard PCMCIA
`connector connected to a PCMCIA interface circuit through
`a standard PCMCIA bus. The PCMCIA interface circuit
`operates according to the standard PCMCIA protocol to send
`data to and receive data from a host computer. The typical
`PCMCIA card also includes a PCMCIA card controller that
`sends data to and receives data from the PCMCIA interface
`circuit and controls the operation of the functional hardware
`on the card. For example. if the PCMCIA card is a memory
`card. then the functional hardware is memory (e.g.. a bank
`of random access memory (RAM) chips (static or dynamic)
`or a hard disk drive) and the PCMCIA card controller
`controls reading and writing to the memory.
`PCMCIA card controllers and interface circuits can be
`implemented as hardwired logic (e.g.. one or more custom
`gate arrays) or as programmable logic (e.g.. one or more
`?eld programmable gate arrays (FPGAS). FPGAs are typi
`cally programmed for operation whenever power is cycled
`off and then on. For example, if a PCMCIA card is inserted
`within a powered-up host computer or inserted into a
`powered-down host computer that is then powered-up. the
`PCMCIA card FPGA is programmed.
`The programmable architecture of FPGAs is provided
`through programmable logic blocks interconnected by a
`hierarchy of routing resources. The devices are customized
`by loading programming data into internal static memory
`cells. FPGA programming data are design-speci?c data that
`de?ne the functional operation of the FPGA’s internal
`blocks and their interconnections (e.g.. the functional opera
`tion of the PCMCIA card controller and interface circuit).
`Typically. when a PCMCIA card. having the PCMCIA
`card controller and interface circuit implemented in an
`FPGA(s). is inserted in an operating (i.e., powered) host
`computer or is inserted in a powered down host computer
`that is then powered-up. the FPGA is programmed with
`FPGA programming data stored in non-volatile memory
`(e.g.. EPROM, EEPROM, Flash memory. etc.) on the PCM
`CIA card. The EPROM(s) required to store the FPGA
`65
`programming data generally consumes a large amount of the
`PCMCIA card real estate.
`
`10
`
`25
`
`35
`
`40
`
`45
`
`50
`
`55
`
`In general. the invention includes a PCMCIA card having
`an FPGA based card controller that is programmed with
`FPGA programming data stored on a host computer through
`a standard PCMCIA bus. Storing FPGA programming data
`on the host computer allows a user access to a practically
`unlimited number of FPGA programming data ?les to pro
`gram and reprogram the FPGA of the PCMCIA FPGA based
`card controller for diiferent applications and permits a user
`to supplement. update. improve. or otherwise modify opera
`tion for existing applications. Additionally. storing the
`FPGA programming data ?les on the host computer saves
`valuable PCMCIA card real estate. reduces the amount of
`power required by the card during FPGA programming, and
`reduces the cost of the PCMCIA hardware.
`In preferred embodiments. the host computer includes a
`PCMCIA adapter circuit coupled to a PCMCIA host socket
`which is mechanically and electrically connected to a PCM
`CIA card connector on the PCMCIA card. A PCMCIA
`interface circuit is connected to the PCMCIA card connector
`on the PCMCIA card. Using Card and Socket Services
`software stored in host memory. the host processor reads
`Card Information Structure (CIS) data from a memory
`device. such as an EEPROM. on the PCMCIA card and
`con?gures the host computer and PCMCIA card to operate
`together. Additionally. using application software stored in
`host memory, the processor selects an FPGA programming
`data ?le from host memory and sends data from the selected
`FPGA programming data ?le through the PCMCIA adapter
`circuit to the PCMCIA interface circuit. The PCMCIA
`interface circuit loads the data into a PCMCIA card con
`troller FPGA to program the FPGA. When an error or a
`different user application is detected or when a user creates
`a new FPGA programming data ?le or modi?es an existing
`FPGA programming data ?le. the processor is instructed to
`select another FPGA programming data ?le from host
`memory. The processor then sends data from the newly
`selected FPGA programming data ?le to the PCMCIA
`interface circuit, and the PCMCIA interface circuit loads the
`data into the PCMCIA card controller FPGA to reprogram
`the FPGA. The PCMCIA card may also have a functionality
`circuit that includes additional functional hardware speci?c
`to the function of the PCMCIA card.
`Additional advantages and features are apparent from the
`following.
`
`DETAILED DESCRIPTION
`
`FIG. 1 is a block diagram of a PCMCIA system including
`a host computer and a PCMCIA card. according to the
`invention.
`FIG. 2 is a ?ow chart depicting the steps required to
`con?gure a host computer and a PCMCIA card and the steps
`required to program a programmable PCMCIA FPGA based
`card controller with FPGA programming data resident in
`host memory.
`FIG. 3 is a block diagram of a data acquisition PCMCIA
`card, according to the invention.
`FIGS. 4a and 4b are block diagrams of prior art FPGA
`programming circuits.
`Referring to FIG. 1, a PCMCIA system 10 includes a host
`computer 12 and a PCMCIA card 14. Within host computer
`12, a PCMCIA adapter 16, connected to a standard 68 pin
`PCMCIA host socket 18 (eg. part number 146025-1. manu
`factured by AMP. Inc.). is coupled to a system bus 20 that
`interconnects PCMCIA adapter 16. a host processor 22. and
`
`BLACKBERRY Ex. 1003, page 6
`
`

`

`5 .628,028
`
`10
`
`20
`
`3
`a host memory 24. Within PCMCIA card 14. a PCMCIA
`interface chip 26 (e.g., part number Z86017. manufactured
`by Zilog). connected to a standard 68 pin PCMCIA card
`connector 28 (e. g., part number 535632-1. manufactured by
`AMP. Inc.). is coupled to a Card Information Structure (CIS)
`EEPROM 30 (e.g., part number )Gc90C21-SO8. manufac—
`tured by Atmel). a PCMCIA card controller 32. and a card
`functionality circuit 34. Both card controller 32 and card
`functionality circuit 34 are coupled to external connector 36
`(e.g.. part number 558134-1. manufactured by AMP. Inc.)
`No external connector is needed if the PCMCIA card is a
`memory card. and no card functionality circuit may be
`necessary where the PCMCIA card is an I/O card (i.e.. all
`functionality is located within the card controller 32).
`Address. data. and control signals are transferred between
`15
`host computer 12 and PCMCIA card 14 through PCMCIA
`adapter 16 and PCMCIA interface chip 26 which are
`designed to transfer data in accordance with PCMCIA
`release 2.1 protocol. PCMCIA cards are 3.37 inches (85.6
`mm) in length and 2.126 inches (54 mm) in width. However.
`there are three di?erent maximum thicknesses speci?ed for
`PCMCIA cards: a type one card is 0.13 inches (3.3 mm) in
`thickness; a type two card is 0.196 inches (5 mm) in
`thickness; and a type three card is 0.413 inches (10.5 mm)
`in thickness. The standard PCMCIA host socket is about
`2.126 inches (54 mm) in width and has 68 pins arranged in
`two rows. and the standard PCMCIA card connector is also
`about 2.126 inches (54 mm) in width and has 68 pin sockets
`that correspond to the pins of the host socket. The left side
`of the card connector is mechanically keyed diiferently from
`the right side. and the host socket is keyed to accept this
`con?guration to prevent the PCMCIA card from being
`inserted upside down.
`Referring also to FIG. 2, when PCMCIA card 14 card
`connector 28 is inserted in PCMCIA host socket 18 of host
`computer 12. PCMCIA adapter 16 recognizes (step 44) the
`insertion and interrupts (step 46) processor 22. Alternatively,
`if PCMCIA card 14 is inserted while host computer 12 is
`turned off (i.e., powered-down). host computer 12 learns of
`the existence of PCMCIA card 14 during the power-on
`procedure. Processor 22 then executes (step 48) Card and
`Socket Services 38 (C&SS) software resident in host
`memory 24 and through PCMCIA interface chip 26 reads
`CIS data from CIS EEPROM 30. As a minimum. the CIS
`data must su?iciently identify the PCMCIA card to the host,
`to enable the processor 22 to con?gure the host computer 12
`and the PCMCIA card 14 to operate together and to enable
`the processor to select the appropriate application software
`40 from host memory 24. The CIS data speci?cally identify
`the card manufacturer (e.g.. Data Translation, Inc.) and card
`identi?cation (ID) number and includes a variety of set-up
`information. including base address, interrupt level, size of
`address window, and other information regarding the card’s
`functionality. as speci?ed by release 2.1. The CIS data are
`entered into the EEPROM at the time of card manufacture
`and are not thereafter changed. Hence, con?guration of host
`computer 12 and PCMCIA card 14 is completed without the
`use of card controller 32.
`Processor 22 then executes (step 50) the application
`software 40 resident in host memory 24 that corresponds to
`PCMCIA card 14. The application software 40 causes the
`processor to either select a default FPGA programming data
`?le 42 from host memory 24 that corresponds to a particular
`application for PCMCIA card 14 or request input from the
`user as to which FPGA programming data ?le 42 is to be
`selected from host memory 24. Processor 22 then sends (step
`52) the data from the selected FPGA programming data file
`
`65
`
`4
`42 through PCMCIA adapter 16 to PCMCIA interface chip
`26. Interface chip 26 then programs (step 54) a ?eld pro
`grammable gate array (FPGA, not shown in FIG. 1) within
`card controller 32 by loading the data from the FPGA
`programming data ?le 42 into the FPGA. Where the appli
`cation software causes the processor to select a default data
`programming ?le. PCMCIA card 14 and host computer 12
`are made operable (step 56) without user intervention.
`Referring to FIG. 3. card controller 32 includes a PCM
`CIA card controller FPGA 60 (e.g.. part number
`XC3042TQ100-100. manufactured by
`as described
`in Xilinx Programmable Logic Data Book, which is hereby
`incorporated by reference). Through a standard PCMCIA
`bus (i.e.. PCMCIA address lines 62, data lines 64. and
`control lines 66) connected to PCMCIA connector 28,
`interface chip 26 receives FPGA programming data from
`host computer 12 (FIG. 1). Interface chip 26 initiates FPGA
`60 programming through FPGA programming circuit 68,
`which drives reset line 63 and reprogram line 65. and
`completes FPGA 60 programming by loading the FPGA
`programming data into FPGA 60 through peripheral data
`lines 72.
`The PCMCIA card interface circuit and PCMCIA card
`controller of typical prior art PCMCIA cards are usually
`combined in the same (i.e., common) FPGA. As a result, in
`order to send CIS data to the host. the FPGA has to ?rst be
`programmed with data stored in nonvolatile memory (e.g..
`one or more EEPROMs, EPROMs. or Flash memory) on the
`PCMCIA card. The nonvolatile memory requires valuable
`PCMCIA card real estate, and the power required by the
`memory during FPGA programming reduces the available
`battery power in portable computers,
`Referring to FIG. 4a, in a typical prior art PCMCIA card
`99, an EPROM(s) 100 is used to store FPGA programming
`data and is connected to a PCMCIA interface and card
`controller FPGA 102 through address lines 104 and data
`lines 106 (e.g., byte Wide parallel inputs). On power-up, a
`reset circuit (not shown) asserts a reset line 108 to FPGA 102
`and to a control circuit 110. Control circuit 110 asserts a reset
`line 112 to EPROM 100 and asserts a reprogram line 114 to
`EPROM 100 and FPGA 102 to initiate programming of
`FPGA 102 with FPGA programming data stored in EPROM
`100. As a result. PCMCIA card 99 is programmed without
`intervention from the host computer (not shown) to which
`PCMCIA card 99 is connected through PCMCIA card
`connector 116.
`Referring to FIG. 4b, in another typical prior art PCMCIA
`card 120, an EPROM 122 is used to store FPGA program
`ming data and is connected to a PCMCIA interface and card
`controller FPGA 124 through a serial data-in line 126. a
`strobe line 128, and a reprogram line 130. On power-up, a
`reset circuit (not shown) asserts a reset line 132 to FPGA 124
`and to EPROM 122 to initiate programming of FPGA 124
`with FPGA programming data stored in EPROM 122. As a
`result, again PCMCIA card 120 is programmed without
`intervention from the host computer (not shown) to which
`PCMCIA card 120 is connected through PCMCIA card
`connector 134.
`Referring again to FIG. 3, as an example, PCMCIA card
`14 is a data acquisition card. and card functionality circuit 34
`includes an analog to digital (A/D) converter 76 (e.g., part
`number LTC1290. manufactured by Linear Technology) and
`a digital to analog (D/A) converter 78 (e.g., part number
`MAX532, manufactured by Maxim) connected through
`external connector 36 to sensors (not shown) and an external
`analog controller (not shown). FPGA 60 is also connected to
`
`25
`
`30
`
`35
`
`40
`
`50
`
`55
`
`BLACKBERRY Ex. 1003, page 7
`
`

`

`10
`
`25
`
`30
`
`5
`an external digital controller (not shown) through external
`connector 36. The C&SS software 38. application software
`40. and FPGA programming data ?les 42 in host memory 24
`cause the processor 22 to program FPGA 60 to operate as a
`data acquisition PCMCIA card controller. to. e.g.. transfer
`data and control signals between host computer 12 and the
`external controllers.
`AID converter 76 receives analog signals from the sensors
`and converts them to digital signals before sending them
`over the A/D bus 82 to PCMCIA card controller FPGA 60.
`Card controller FPGA 60 stores data received from A/D
`converter 76 in a 5l2><9 FIFO 80 (e.g.. part number
`MS720lAL-50. manufactured by Mosel-Vitalic) using
`FIFO data-in signals 84 and FIFO control signals 86 before
`transferring the data to the host computer 12 through periph
`eral data lines 72 and PCMCIA interface chip 26.
`Data sent from host computer 12 for transmission to the
`external analog and digital controllers is ?rst stored in a
`5l2><9 FIFO 81 (e.g., part number MS7201AL-50, manu
`factured by Mosel-Vitalic) through PCMCIA interface chip
`26 and peripheral data lines 72. Card controller FPGA 60
`then retrieves the stored data from FIFO 81 through FIFO
`data-out signals 85 and sends the stored digital data over the
`D/A bus 88 to D/A converter 78 or over digital input/output
`(110) bus 90 directly through external connector 36 to the
`external digital controller. D/A converter 78 converts digital
`signals received from FPGA 60 into analog signals before
`sending them through external connector 36 to the external
`analog controller.
`‘
`As an example. external connector 36 has ?fteen pin
`connections: eight pins connected to A/D converter 76 and
`eight sensors (not shown); two pins connected to D/A
`converter 78 and to the external analog controller; four
`digital I/O pins connected to FPGA 60 and to the external
`digital controller; and one ground pin connected to ground
`For a variety of reasons. including the detection of a
`PCMCIA card controller 60 malfunction (e.g.. error condi
`tion detected) or the detection of a user request to change the
`PCMCIA card application (e.g., software interrupt). PCM
`CIA card controller 60 may be reprogramed. The host
`computer executes application software 40 (FIG. 1) in host
`memory 24 to select a new FPGA programming data ?le 42
`from host memory 24 and then sends the data from the
`newly selected FPGA'programming data ?le 42 through
`PCMCIA adapter 16 to PCMCIAinterface chip 26. Interface
`chip 26 uses FPGA programming circuit 68 to reset PCM
`CIA card controller FPGA 60 and enable reprogramming,
`and interface chip 26 completes reprogramming by loading
`the data from the newly selected FPGA programming data
`?le into card controller FPGA 60.
`For example, instead of simply storing all the data
`received from the sensors in the FIFO before sending it to
`the host computer. card controller FPGA 60 can be repro
`grammed with additional functionality that formats the data
`received from the sensors according to the host computer’s
`requirements before storing the data in the FIFO. Similarly,
`card controller FPGA 60 can be reprogrammed with addi
`tional functionality that analyzes the sensor data and inter
`rupts the host computer when predetermined thresholds are
`exceeded. In such a system. the host computer need not
`interact with the PCMCIA card unless a predetermined
`threshold is exceeded.
`For example. a data acquisition PCMCLA card may be
`coupled to a temperature controller and sensors for deter
`mining the temperature of a room. Such a PCMCIA card
`continually receives data from the sensors and. in a simple
`
`35
`
`50
`
`55
`
`65
`
`5,628,028
`
`6
`data acquisition card, the host computer periodically reads
`the data acquisition FIFO and analyzes the data to determine
`if predetermined temperature thresholds have been
`exceeded. The PCMCIA card could be reprogrammed to
`analyze the data received from the sensors and interrupt the
`host computer when a predetermined temperature threshold
`is exceeded. Hence. the host computer would only read the
`PCMCIA card FIFO when noti?ed that a threshold had been
`exceeded.
`Moreover. the operation of the PCMCIA card controller
`may need to change for different user applications. For
`example. if a temperature controller is moved to a smaller
`room where temperature ?uctuates more quickly, the PCM
`CIA card controller needs to be reprogrammed to accept data
`from the temperature sensors more frequently. In such a
`situation. the user noti?es the processor of a change in
`application and the processor selects a corresponding FPGA
`programming data ?le and sends the data to the PCMCIA
`interface which reprograms the PCMCIA card controller
`FPGA by loading the FPGA with the new FPGA program
`ming data.
`Typically host memory is very large and is supplemented
`with extended memory (not shown). Hence. a practically
`unlimited number of FPGA programming data ?les can be
`stored within the host computer and made available to the
`user. The programming and reprogramming of the PCMCIA
`card controller FPGA is limited only by the size (i.e..
`capability) of the FPGA. The functionality of the PCMCIA
`card is limited only by the ?xed hardware (i.e., the func
`tional hardware) on the PCMCIA card (e.g., A/D or D/A
`converters. contacts on and con?guration of the external
`connector. and FIFO size).
`For example. a PCMCIA card controller FPGA can be
`programmed to function as an I/O card controller, a data
`acquisition card controller. a fax/modem card controller, or
`a memory card controller; however. the PCMCIA card can
`only function as these card types if the additional functional
`hardware is available on the card. For an I/O card controller,
`the FPGA can be programmed (and reprograrmned) with the
`functionality required to transfer data between the host
`computer and the I/O bus (e.g., Small Computer System
`Interface (SCSI)). and, thus, the only additional functional
`hardware required is an external I/O bus connector and
`electrical conductors from the I/O bus connector to the
`FPGA. For a memory card, additional functional hardware
`typically includes a bank of static or dynamic RAM chips,
`ROM chips, ?ash memory. or a hard disk drive. and the
`addressing and refreshing functionality can be located
`within the PCMCIA card controller FPGA and, hence,
`reprogrammable. As an example, where a portion of a disk
`drive or a portion of a bank of RAMs becomes damaged and
`non-functional. the addressing functionality in the FPGA
`can be reprogrammed to address only the working portion of
`the memory hardware. For a fax/modem, additional func
`tional hardware generally includes a phone connection, A/D
`and D/A converters, bu?ers, and ampli?ers, and function
`ality controlling hardware, for instance, hardware control
`ling the baud rate. can be located within the FPGA and, thus,
`reprogrammable.
`The FPGA prograrmning data ?les can be supplied with
`the PCMCIA card or new, additional, or updated FPGA
`programming data ?les can be obtained at a later time.
`Similarly, users can create their own FPGA programming
`data ?les or make modi?cations as desired.
`The PCMCIA interface was described above as a particu
`lar integrated circuit chip; however, other hardware can be
`
`BLACKBERRY Ex. 1003, page 8
`
`

`

`7
`used to implement the functionality of the interface chip.
`Similarly, the PCMCIA card was described as a data acqui
`sition card, however. the programmable PCMCIA card con
`troller FPGA can be used on all PCMCIA card types (e.g.,
`fax modem. memory. etc.) with the FPGA programming data
`?les stored on a host computer.
`Other embodiments are within the following claims.
`What is claimed is:
`1. A method of con?guring the speci?c operating func
`10
`tionality for a PCMCIA card connected to a host computer
`via a standard PCMCIA card connector on said PCMCIA
`card and a standard PCMCIA host socket on said host
`computer comprising:
`storing at least one FPGA programming data ?le for
`con?guring a PCMCIA card controller FPGA in a host
`memory of said host computer.
`sending data from said FPGA programming data ?le to
`the PCMCIA interface circuit on the PCMCIA card
`through a standard PCMCIA bus, and
`programming the PCMCIA card controller FPGA to have
`said speci?c functionality by loading the FPGA with
`the data from said stored FPGA programming data ?le.
`whereby said PCMCIA card is not limited to a dedicated
`speci?c operating functionality provided on said card
`and can be programmed and reprogrammed with any
`one of a variety of FPGA programming data ?les
`provided by said host.
`2. The method of claim 1. further comprising:
`reading CIS data from a CIS storage device on the
`PCMCIA card through a PCMCIA interface circuit on
`the PCMCIA card and a PCMCIA adapter on the host
`computer. said sending of data being triggered by an
`application on said host responding to said CIS data.
`3. The method of claim 1. wherein more than one FPGA
`35
`programming data ?le is stored in said host memory, and
`further comprising:
`selecting another stored FPGA programming data ?le;
`sending data from said another stored FPGA program
`ming data ?le through the standard PCMCIA bus to the
`PCMCIA interface circuit on the PCMCIA card; and
`reprogramming the PCMCIA card controller FPGA by
`loading the FPGA with the data from said another
`stored FPGA programming data ?le.
`4. The method of claim 3, further comprising before
`selecting:
`detecting a new user application. said selecting being in
`response to said detecting.
`5. The method of claim 3, further comprising before
`selecting:
`detecting an error condition.
`6. The method of claim 1. further comprising:
`storing new FPGA programming data ?les in the host
`memory.
`7. The method of claim 6, further comprising:
`selecting a newly stored FPGA programming data ?le;
`sending data from said newly stored FPGA programming
`data ?le through the standard PCMCIA bus to the
`PCMCIA interface circuit on the PCMCIA card; and
`reprogramming the PCMCIA card controller FPGA by
`loading the FPGA with the data from said newly stored
`FPGA programming data ?le.
`8. A PCMCIA card comprising
`a printed circuit board;
`a standard PCMCIA card connector mounted on said
`printed circuit board;
`
`50
`
`20
`
`25
`
`40
`
`55
`
`60
`
`65
`
`5,628,028
`
`8
`a PCMCIA interface circuit electrically connected to the
`PCMCIA card connector for transferring data through
`the PCMCIA connector according to standard PCM
`CIA protocol. for transferring CIS data to a host com
`puter system. for transferring FPGA programming data
`received from the host computer system, said transfer
`ring of FPGA programming data being niggered in
`response to receipt of said CIS data at said host
`computer system, and for programming a PCMCIA
`card controller FPGA with said FPGA programming
`data received from said host computer system;
`a CIS storage device. electrically connected to the PCM
`CIA interface circuit. for storing CIS data; and
`a PCMCIA card controller. including the PCMCIA card
`controller FPGA. electrically connected to the PCM
`CIA interface circuit, for controlling the operation of
`the card to have speci?c operating functionality speci
`?ed by said FPGA programing data received from said
`host computer system.
`whereby said PCMCIA card is not limited to a dedicated
`speci?c operating functionality provided on said card
`and can be programmed and reprogramed with anyone
`of a variety of FPGA programming data ?les provided
`by said host.
`9. The PCMCIA card of claim 8, further comprising:
`an FPGA programming circuit electrically connected to
`the PCMCIA interface circuit and the PCMCIA card
`controller.
`10. The PCMCIA card of claim 8, wherein the CIS storage
`device is an EEPROM.
`11. The PCMCIA card of claim 8. further comprising:
`a card functionality circuit.
`12. The PCMCIA card of claim 11. wherein the PCMCIA
`card is a memory card and the functionality circuit includes:
`a bank of random access memory devices for storing data.
`13. The PCMCIA card of claim 11. wherein the PCMCIA
`card is a memory card and the functionality circuit includes:
`a disk drive for storing data.
`14. The PCMCIA card of claim 11. wherein the PCMCIA
`card is an I/O card and the functionality circuit includes:
`an external I/O bus connector; and
`conductors electrically connecting the I/O bus connector
`to the PCMCIA card controller FPGA.
`15. The PCMCIA card of claim 11, wherein the PCMCIA
`card is a fax/modem card and the functionality circuit
`includes:
`an external telephone connector;
`an AID converter coupled to the external telephone con
`nector and to the PCMCIA card controller FPGA;
`a D/A converter coupled to the external telephone con
`nector and to the PCMCIA card controller FPGA; and
`a buffer connected to the PCMCIA card controller FPGA.
`16. The PCMCIA card of claim 11, wherein the PCMCIA
`card is a data acquisition card and the functionality circuit
`includes:
`an external connector for connecting to one or more
`external sensors; and
`an A/D converter connected to the PCMCIA card con
`troller and connected to the external connector for
`receiving analog signals from the external sensors,
`wherein theA/D converter converts the received analog
`signals into digital signals before sending them to the
`PCMCIA card controller.
`
`BLACKBERRY Ex. 1003, page 9
`
`

`

`9
`17. The PCMCIA card of claim 16. where in the func
`tionality circuit further includes:
`a digital controller. wherein the PCMCIA card controller
`is connected to the external connector for sending
`digital signals to the external digital controller;
`an analog controller connected to the external connector;
`and
`a D/A converter connected to the external connector and
`the PCMCIA card controller. wherein the D/A con
`verter convert

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