`
`UNITED STATES PATENT AND TRADEMARK OFFICE
`
`UNITED STATES DEPARTMEVT OF COMMERCE
`United States Patent and Trademark Office
`AddIESS. COMMISSIONER FOR PATENTS
`PO Box 1450
`Alexandria, ViJgLnia 22313-1450
`wwwusptogov
`
`60/067,466
`
`92001 | 0041 | 020 | 10
`
`Hull111IIIIIIIIIIIIIIIIIIIIIIIIIIII1111111
`
`Correspondence Address/Fee Address Change
`
`The following fields have been set to Customer Number 83765 on 12/24/2008
`- Correspondence Address
`. Power of Attorney Address
`
`The address of record for Customer Number 83765 is:
`
`83765
`
`SCHACHT LAW OFFICE , INC.
`ROY-G-BIV CORPORATION
`
`SUITE 202, 2801 MERIDIAN ST.
`BELLINGHAM, WA 98225
`
`PART 1
`
`- ATTORNEY/APPLICANT COPY
`page 1 of 1
`
`ABB Inc.
`
`EXHIBIT 1022
`
`Page 1 of 13
`
`Page 1 of 13
`
`
`
`UNITED STATES PATENT AND TRADEMARK OFFICE
`
`
`
`UNITED STATES DEPARTMENT OF COMMERCE
`United States Patent and Trademark Office
`AddIESSI COMLHSSIOIVER FUR PATENTS
`PO Box I450
`Alexandria, Vilgim'z 22313-1450
`www.uspto.gov
`
`APPLICATION NUMBER
`
`PATENT NUMBER
`
`GROUP ART UNIT
`
`FILE WRAPPER LOCATION
`
`60/067,466
`
`9200|
`
`|0041 |020 |10
`
`Correspondence Address / Fee Address Change
`
`The following fields have been set to Customer Number 30662 on 08/10/2005
`
`- Correspondence Address
`- Maintenance Fee Address
`
`The address of record for Customer Number 30662 is:
`SCHACHT LAW OFFICE, INC.
`SUITE 202
`2801 MERIDIAN STREET
`BELLINGHAM,WA 98225-2412
`
`Page 2 of 13
`
`Page 2 of 13
`
`
`
`l
`
`LAW OFFICES OF
`
`HUGHES, MULTER 8c SGHACHT, RS.
`A PROFESSIONAL SERVICE CORPORATION
`
`l7ZO IOWA STREET
`.
`BELL‘NGHAM' WA 98226 4702
`(360) 647—1296 (BHM )
`(360) 380-1754 (COUNTY)
`l-588-6474296 (TOLL FREE)
`FAX (350) 671—2459
`
`|47|l N E 29TH PLACE
`
`s iTE 45
`U
`2
`BELLEVUE, WA 98007-7666
`(425) 4535701
`FAX (425) 88|:5878
`
`PATENT, TRADEMARK,
`COPYRIGHT LAW
`& LITIGATION
`
`REPLY TO
`,
`BELLIIV GHAM
`OFFICE
`
`
`RQBERT B HUGHES
`=—R(EHARD D MULTER
`—
`= HAEL R SCHACHT
`
`=— WILLIAM TOONE
`—_MAF?K l CROHN
`——
`_— g
`="
`= 'U
`E 0-]
`= O
`
`LfiI‘IUIZl
`
`=——
`
`December 4, 1997
`
`Box Provisional Patent Application
`Assistant Commissioner for Patents
`Washington, DC. 20231
`
`- Sir:
`
`
`
`Transmitted herewith for filing is a Provisional Continuation-ln-Part Patent Application in re:
`
`Inventors:
`
`DAVID W. BROWN and JAY S. CLARK
`
`Title:
`
`MOTION CONTROL SYSTEMS AND METHODS
`
`Attorney's Docket No.: P210160
`
`Date of Deposit: DECEMBER 4, 1997
`
`"Express Mail" mailing label number: El169868076US
`
` l hereby certify that this Provisional Continuation-ln—Part Patent Application is being deposited
`
`with the United States Postal Service "Express Mail Post Office to Addressee" service under
`37 CFR 1.10 on the date indicated above and is addressed to the Box Provisional Patent
`Application, Assistant Commissioner for Patents, Washington, DC 20231.
`
` .
`
`
`. 2
`4‘
`A_
`Gloria J
`
`Secretary
`
`PLEASE GIVE THIS APPLICATION THE FILING DATE OF DECEMBER 4, 1997.
`
`Page 3 of 13
`
`Page 3 of 13
`
`
`
`Box Provisional Patent Application
`Assistant Commissioner for Patents
`Washington, DC. 20231
`
`Sir:
`
`Transmitted herewith for filing is a Provisional Continuation-In—Part Patent Application in re:
`
`DAVID W. BROWN and JAY S. CLARK
`Inventors:
`MOTION CONTROL SYSTEMS AND METHODS
`Title:
`Attorney's Docket No.: P210160
`Date of Deposit: DECEMBER 4, 1997
`"Express Mail" mailing label number: El169868076US
`
`1. Enclosed are:
`
`a) Provisional Patent Application consisting of EIGHT (8) pages including THREE (3)
`drawing Figures and ONE (1) Table;
`
`b) Provisional Application Cover Sheet;
`
`0) A check in the amount of $150 for Provisional Patent Application Filing Fee; and
`
`d) A stamped return receipt postcard.
`
`The Commissioner is hereby authorized to charge payment of any additional filing fees under 35
`CFR 1.16 for the presentation of extra claims or any patent application processing fees under 37
`CFR 1.17 associated with this communication to Account No. 08-3260 and to credit any
`overpayment to that account.
`
`
`
`Michael R. Schacht, Reg. No. 33,550
`HUGHES, MULTER & SCHACHT, PS.
`1720 Iowa Street
`Bellingham, WA 98226
`(360) 647—1296
`
`EXPRESS MAIL CERTIFICATE OF MAILING
`37 CFR, §1.10
`I hereby certify that this paper (along with any paper referred to as being attached or
`enclosed) is being deposited with the United States Postal Service, Express Mail Post
`Office to Addressee,
`in an envelope addressed to BOX PROVISIONAL PATENT
`APPLICATION, Assistant Commissioner for Patents, Washington, DC 20231, on the date
`shown below.
`
`Express Mail No:
`
`El169868076US
`
` Signature:
`
`Print Name:
`
`GLORIA SMITHEY
`
`DATE MAILED: DECEMBER 4, 1997
`
`Page 4 of 13
`
`Page 4 of 13
`
`
`
`EXPRESS MAIL LABEL NO. E1169868076US
`Appendix A'
`
`'>
`
`P’l‘O/SB/16(6-95)
`.
`Awmdemxummaoonmx0annom7
`Pm: and Trademark Office; us. DEPARTMENT or COMMERCE
`
`1%R(7P7SYCUE4LH4IVHLRZAYYZLN’C17VIH?JHYE23T
`
`This is a request for filing It PROVISIONAL APPLICATION under 37 CFR 1.53 (b)(2).
`
`
`Type a plus Sign (+ )
`P210160
`
`inside this box >
`
`
`
`
`
`INVENI‘omsyAPPLICANm)
`mm mm mmwmmmmommmm
`
`BROWN
`
`CLARK
`
`DAVI D
`
`JAY
`
`W .
`
`S .
`
`
`
` Bingen, Washington 98605
`
`Seattle, Washington 98109
`
`
`
`
`
`
`
`TITLE OF THE INVENTION (280 character: max)
`
`
`
`
`MOTION CONTROL SYSTEMS AND METHODS
`
`
`
`
`
`
`
`
` METHOD OF PAYMENT (check one)
`A check or money order is enclosed to cover the Provisional filing fees
`PROVISIONAL
`
`
`FILING FEE
`zxnac>t1brr (5)
`
`
`
`
`CORRESPONDENCE ADDRESS
`
`
`Michael R. Schacht
`& S h ht P.S.
`.
`H
`M l
`c ac
`'
`Attorney for Applicants
`lggfieigwausfiiget
`
`Bellingham, Washington
`98226
`
`
`ENCLOSED APPLICATION PARTS (check all that apply)
`
`Specification
`
`Number ofPage:
`
`
`
`The Commissioner ls hereby authorized to charge
`filing fees and credit Deposit Account Number:
`
`.
`
`0 8 — 3 2 6 O
`
`The Invention was made by an agency of the United States Government or under a contract with an agency of the United States Government.
`No.
`
`D Yeg the name of the US. Government agency and the Government contract number Ire:
`
`
`Respectquy submitted,
`
`SIGNATURE fi’m, /Z :M Date
`.
`'
`REGBTRATKNINO.
`TYPED orPRINTED NAME Michael R. Schacht
`fifappmprim)
`E]
`Attorney for Applicants
`PRO VISIONAL APPLICA TI0N FILING ONL Y
`
`12 4 97
`
`33,550
`
`Additional inventors are being named on separately numbered sheets attached hereto
`
`Burden Hour Statement: This form is estimated to take .2 hours to complete. Time will vary depending upon the needs of the indmdual case. Any comments on the mount or time
`you an: required to complete this form should be sent to the Office of Assistance Quality and Enhancement Division Patent and Trademark Office. Washington DC 20231- md to
`the Office or information and Regulatory Afl’airs. 01m: of Management md Budget (Project 06510037), Washington DC 20501 DO NOT SEND FEES OR COWLEW’D
`FORMS TO THIS ADDRESS. SEND TO: Asistam Commissioner for menu. Washington, DC 2023L
`Page 5 of 13
`
`Page 5 of 13
`
`
`
`XMC Stream
`
`
`
`Hardware Independent Communication
`Protocol
`
`
`
`___________________________——————————————————
`
`ROY-G-BIV Corporation Confidential
`Author:
`Dave Brown
`Save Date: December 4, 1997 Print Date:
`December 4, 1997
`Create Date:
`Project:
`[PRJCMPNT_RGBSOUTH]$/prjcmpnt/xmc/v.100/int/doc/_devstrmlbase/des/regmap
`Document: regmapfldesooc
`DescriptionzThis document describes the design of the hardware independent communication protocol used by each stream to
`communicate with the motion control hardware.
`
`December 4, 1997
`
`Revisions:
`
`
`
`A ROY- e - B Iv:
`Safiwnre for a sperm/m ofia’ea: '”
`©1997 ROY-G—BlV Corporation. All rights reserved. ROY-G-BlV is a registered trademark and Software for a spectrum
`of ideas is a trademark of ROY-G—BlV Corporation. All other brands or product names are trademarks or registered
`trademarks of their respective holders.
`
`Page 6 of 13
`
`Page 6 of 13
`
`
`
`
`
`XMC Stream: Hardware Independent Communication Protocol Table of Contents
`
`Table of Contents
`
`1 - Overview ....................................................................................................................... 1
`
`2 - Communication Map Design .......................................................................................2
`
`Mapping Logic ....................................................................................... 4
`
`3 - Example Communication Maps .................................................................................. 5
`
`Services Mapped ................................................................................... 5
`AT6400 Register Map ............................................................................ 6
`DMClOOO Register Map ......................................................................... 6
`
`
`
`____—__________—_._—__——-———-————-_—-——-————-—
`
`ROY-G-BIV Corporation Confidential
`
`December 4, 1997
`
`ii
`
`Page 7 of 13
`
`Page 7 of 13
`
`
`
`
`
`XMC Stream: Hardware Independent Communication Protocol 1 - Overview
`
`1 - Overview
`
`XMC (a WOSA extension for Motion Control), uses a special protocol to facilitate
`communication with the underlying motion control hardware in a hardware
`independent manner.
`In specific, the key communication mechanism used is
`called the communication map for it maps a generic grid of information cells to
`the actual information cells implemented by the particular hardware.
`Since
`each cell may be located in different areas and may transfer different values on
`each hardware platform, a mapping is necessary in order to communicate
`common functions across a manifold of hardware implementations.
`
`This document, describes the hardware independent communication protocol in
`the following two chapters:
`
`Chapter 2 - Communication Map Design; describes how the communication
`map works and how it provides a hardware independent manner of
`communicating with a set of hardware devices falling into a similar class of
`functionality.
`
`Chapter 3 - Example Communication Maps; provides several communication
`map examples that show how the mapping actually takes place in a real
`application.
`
`
`
`
`
`ROY-G—BIV Corporation Confidential
`
`December 4, 1997
`
`1
`
`Page 8 of 13
`
`Page 8 of 13
`
`
`
`
`
`XMC Stream: Hardware Independent Communication Protocol 2 - Communication Map Design
`
`2 - Communication Map Design
`
`The communication map is a software layer that maps both the location of and
`the data transferred between a software application and a hardware device
`during basic,
`low—level, hardware communication, sometimes defined as the
`hand-shaking process. In order to generify the process, thus making it hardware
`independent, several fundamental items must be mapped, for they are different
`on most hardware platforms that use basic hardware communication, even
`though the class of services performed by each hardware implementation, from
`within the same function class, are very similar.
`
`implemented by the
`invoked by the software application, yet
`Each service,
`hardware, is mapped by a set of entries in the communication map. Each entry
`in the communication map is made of the following items.
`
`
`
`Item Mapped Description
`
`
`
`operation
`
`cell size
`
`cell offset
`
`data mask
`
`Specifies the operation defines whether or not to write
`data to the information cell,
`to read data from the
`information cell, or perform a nap directing to skip this
`sub-operation, thus ignoring it.
`
`Specifies the cell size defines the actual size of the data
`contained in each cell. For example, cells may be defined
`as 8, 16, 24, 32, or 48 bits long. Of course other sizes
`may be defined as long as they are supported by the
`underlying hardware.
`
`Specifies the cell offset defines the location of the cell in
`the information target grid. A base address defines the
`start location of the grid, whereas the cell offset is the
`number of bytes, offset from the base, where the target cell
`described lies.
`
`Specifies the mask applied to the data read from, or to be
`written to the hardware.
`1’s signify active bits, whereas
`0’s signify inactive bits that are ignored, or masked out of
`the data passing through the communication map.
`
`NOTE: when performing a write operation, specified by the operation
`field, the data mask is treated as the actual data and therefore sent to
`the hardware. With read operations, the data mask is used to mask out
`the active bits in the data item read from the hardware. The result of
`this masking is later applied to the data code in order to determine
`success or failure.
`
`data code
`
`Specifies the way to treat each data bit in the data mask.
`For example, the data code determines whether or not to
`invert the logic performed when logically ANDing the data
`mask to the data read.
`
`In order to link each set of entries with a single service, an index, pointing to the
`beginning communication map entry for the service,
`is associated with the
`service.
`
`
`
`ROY—G-BIV Corporation Confidential
`
`December 4, 1997
`
`2
`
`Page 9 of 13
`
`Page 9 of 13
`
`
`
`
`
`XMC Stream: Hardware Independent Communication Protocol 2 - Communication Map Design
`
`The following diagram shows the flow of data through the communication map
`for a certain requested hardware service (Service 2).
`
`Servie Index
`
`
`
`Information
`Communication NED
`Target
`Data
`Data
`W“ Mask
`Code
`$12!
`Cell
`Base Adam
`mbmm:
`
`READ i
`
`
`0xII01 0xooool
`i
`-
`|
`,3 ________
`, o
`n
`
`READ ilxcu IOXIIOZK
`.
`i
`
`WRITE K(1::0042 . 0xoooo.
`-
`.
`
`
`READ ‘OXOODO I OXOOOOI
`
`READ onoo 1i0x0000|
`:
`
`
`NOP
`.Oxoooo I exoooo‘
`0
`§
`0
`
`mmluwwmmwm
`
`
`
`K
`i
`|
`i
`|
`|
`i
`i
`I
`i
`l
`i
`l
`|
`l
`|
`|
`3-
`0x001 I OXOOOO
`i
`:
`gar: :tfi afiéel: swam?
`- “ A5244
`.
`. idsfi
`“ ”
`
`999.00;
`
`eeoooem
`
`-
`
`
`
`READ
`’m/ms-
`
`
`
`
`
`
`Figure 1 Communication Map.
`
`During the mapping process, the following steps occur.
`
`Description
`V
`v
`
`The software application requests a certain hardware service, such as
`checking for the ready state of the hardware. Based on the mapping
`between the Service Index array and the Communication Map, there are
`three sub—operations making up this service.
`
`In this step, the first of the three sub—operations is performed -- a read of
`16—bits at offset 2 from the base address in the hardware input/ output
`space (which is considered the information target grid)1. When
`performing the mapping, l6—bits of hardware data are read from offset 2,
`logically AND’ed with the data mask, and then the result is logically
`XOR’ed with the data code. See mapping logic table for details. This
`logic produces a result that if successful, based on the mapping logic,
`causes the algorithm to continue processing the remaining sub—
`operations. On the other hand, if the mapping logic produces a failure,
`the processing is terminated and an error code is returned to the
`software requesting the service.
`
`The read actually takes place on the hardware 10 space itself, or on a
`low—level mapping provided by the operating system.
`
`the second sub—operation is
`from step 2 is success,
`If the result
`performed -- a write of 16-bits at offset 2 from the base address in the
`hardware IO space. For the write operation, the data mask is treated as
`the data, therefore in this step the number 0X0042 is written at offset 2.
`
`
`
`1 The input/ output (10) space may either be on the physical card itself, or provided as a
`block of data mapped by the operating system. Most operating systems map all
`hardware access into some operating system provided element, such as memory or an 10
`port.
`
`
`
`ROY-G-BIV Corporation Confidential
`
`December 4, 1997
`
`3
`
`Page 10 of 13
`
`Page 10 of 13
`
`
`
`XMC Stream: Hardware Independent Communication Protocol
`
`2 - Communication Map Design
`
`Finally, the last sub—operation is performed —— another read of 16—bits at
`offset 2 in the hardware IO space. The same mapping logic, described in
`step #2 above applies in this step.
`If the result from this operation is a
`success, the service as a whole is a success, since all previous sub-
`operations must have succeeded in order to get to this one.
`
`The write actually takes place on the hardware 10 space itself, or on a
`
`low level mapping provided by the operating system.
`
`
`
`
`
`
`
`
`Even though all three operations took place on the same offset, this is
`
`not required. Each hardware platform defines its own hand—shaking
`
`protocol used for performing each service
`implemented (by
`the
`
`hardware), thus defining the base code offset for each sub—operation.
`
`
`The final read takes place on the hardware [0 space or an operating
`system mapping of it.
`
`Mapping Logic
`
`During each communication map read sub-operation, making up a requested
`service, the following logic takes place:
`
`RESULT =
`
`((Data Read from Hardware) AND (Data Mask)) XOR (Data Code).
`
`With this logic, the following logic table describes the various outcomes from
`data read from the hardware, versus data expected from the hardware.
`
`
`
`
`
`
`true (success)
`
`EQUALS
`
`
` false (failure)
`
`
`
`(DR)
`
`Data Read
`
`
`
`A = DM 85
`
`Data
`
`' B = A A
`
`DR
`
`AND
`
`AND
`
`AND
`
`AND
`
`Mask
`(13M)
`
`true
`
`true
`
`true
`
`true
`
`DC
`
`XOR
`
`XOR
`
`XOR
`
`XOR
`
`EQUALS
`
`EQUALS
`
`RESULT
`
`(R)-
`
`false (failure)
`
` true (success)
`
`
`
`_____—_—_—_—___—_—————————-——
`
`ROY-G—BIV Corporation Confidential
`
`December 4, 1997
`
`4
`
`Page 11 of 13
`
`Page 11 of 13
`
`
`
`
`
`
`
`XMC Stream: Hardware Independent Communication Protocol 3 . Example Communication Maps
`
`3 - Example Communication Maps
`
`The following examples pertain to motion control hardware that uses hardware
`registers in order to facilitate the hand—shaking taking place during data
`communication.
`In these examples, the communication mapping allows the
`software requesting services to perform them in a hardware independent
`manner. The information target in the communication map for these examples
`are the set of hardware registers used by each hardware motion control card.
`
`Services Mapped
`
`With both the AT6400TM2 and DMClOOOTM3 communication maps, the following
`set of hardware communication services are mapped.
`
`
`Description
`
`Used to query the hardware for the state of its output
`buffer. When ready, there is data ready to be read sitting
`in the hardware output buffer.
`
`Used to query the hardware for the sate of its input
`buffer. When ready, the buffer has space to be written
`to. When not ready, the buffer is full.
`
`Used to query whether or not the hardware is ready to
`perform other service operations.
`
`Directs the hardware to ready its input buffer, which
`probably contains
`some
`sort of command for
`the
`hardware to begin processing.
`
`
`
`Read a block of data from the hardware (size is specified
`by the information cell size found in the information
`map).
`
`Write a block of data to the hardware (size is specified by
`the information cell size found in the information map).
`
`Directs the hardware to flush all of its buffers.
`
`Directs the hardware to set its buffers to a certain size.
`
`Directs the hardware to update any of its special status
`registers that may contain command data other than the
`communication hand-shaking data.
`
`
`
`2 AT64OO is either a registered trademark or a trademark of Compumotor Division,
`Parker Hannifin Corporation.
`
`3 DMClOOO is either a registered trademark or a trademark of Galil Motion Control, Inc.
`
`________________________._———————-——————
`ROY-G-BIV Corporation Confidential
`December 4, 1997
`5
`
`Page 12 of 13
`
`Page 12 of 13
`
`
`
`XMC Stream: Hardware Independent Communication Protocol
`
`3 - Example Communication Maps
`
`AT6400 Register Map
`
`With the given set of services defined in the previous section, the communication
`map for the AT6400 motion control hardware is as follows:
`Communication Map
`
`Information
`
`opemhn
`
`3::
`
`3::
`
`Can
`
`0:;
`
`
`
`BaseAddress
`Egg???
`
`
`
`
`
`
`1 0x0021 , axoooo 1
`
`
`WRITE lnxooz
`IcOxooo
`
`
`READ axoo42 axoooo
`
`1
`2
`
`4
`5
`
`6 7 8
`
`
`
`'"PUT-BUF—RW
`HW_READY
`
`DATA_READ
`DATA_WRITE
`CLEAR_BUFFERS
`SET_BU FFER_SIZES
`UPDATE~STATUS
`
`Figure 2 AT6400 Communication Map.
`
`DMC1000 Register Map
`
`OUTPUT_BUF_READY
`
`o
`
`With the given set of services defined in the previous section, the communication
`map for the DMC1000 motion control hardware is as follows:
`Information
`Communication Map
`BaseA4,}d'm
`EEEEE:
`Operation
`0%;
`31::
`3::
`g:
`Servue Index
`
`lel v
`1 0x01 I
`x
`‘
`s:
`
`
`1WEI“
`;
`“WWW-READY
`
`
`2
`1
`“VI—READY
`
`
`l
`3
`READ—"W —1
`4M'
`DATA—READ II§
`
`, 5
`DATA_WRITE —,
`. 6
`CLEARBUFFERS
`SET_BUFFER_SIZES =<
`. 7
`UPDATE_STATUS u a
`
`
`
`
`I
`‘
`i
`
`
`
`
`
`
`Figure 3 DMC1000 Communication Map.
`
`__________—_—____—_.—————————-—-—-——
`
`ROY-G-BIV Corporation Confidential
`
`December 4, 1997
`
`6
`
`Page 13 of 13
`
`
`
`
`Page 13 of 13
`
`