`
`UNITED STATES DEPARTMEVT OF COMMERCE
`United States Patent and Trademark Office
`Address. COMMISSIONER FOR PATENTS
`PO Box 1450
`A1exaJndria,Vi.1gLnia 22313-1450
`WvWv.uspto.g0v
`
`60/067,466
`
`92001 I 0041 I020 I 10
`
`Hmlm1111umIlrmwmmmurxurmrrumlxxlx1111111111
`
`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
`
`ABB Inc.
`
`PART1 - ATTORNEY/APPLICANT COPY
`
`EXHIBIT 1021
`
`page 1 of 1
`
`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
`/\CIdIESSI 7' ’M1\HSSIO1\ER FUR PATENTS
`Box I450
`Alexandria, Vilginjz 22313-1450
`wWw.uspIo.g0v
`
`APPLICATION NUMBER
`
`PATENT NUMBER
`
`GROUP ART UNIT
`
`FILE WRAPPER LOCATION
`
`60/067,466
`
`9200|
`
`|O041 |02O |1O
`
`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
`BELL|NGHAM,WA 98225-2412
`
`Page 2 of 13
`
`Page 2 of 13
`
`
`
`E
`
`LAW OFFICES OF
`
`HUGHES, MULTER 8c SGHACI-IT, 13.3.
`A PROFESSIONAL SERVICE CORPORATION
`
`I720 IOWA STREET
`BELLINGHAM, WA 98226-4702
`(360) 647-I296 (BHM )
`(360) 3804784 (COUNTY)
`I-588-6474296 (TOLL FREE)
`FAX (360) 67I—2459
`
`|47|I N E 29TH PLACE
`SUITE 245
`BELLEVUE, WA 98007-7666
`(425) 453*57OI
`FAX (425) BBI-5878
`
`PATENT, TRADEMARK,
`COPYRIGHT LAW
`& LITIGATION
`
`REPLY TO
`BELLINGHAMOFFICE
`
`ng_BERT B HUGHES
`RCEHARD D MULTER
`HAEL R SCHACHT
`ILLIAM TOONE
`MARKI CROHN
`
`IWW gran
`
`0.I.cI'S'fl
`
`£b!?UfZlWWWWWW
`
`December 4, 1997
`
`Box Provisional Patent Application
`Assistant Commissioner for Patents
`Washington, D.C. 20231
`
`W 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
`
`I 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, D.C. 20231.
`
` V
`
`_
`
` y
`
`
`I 2
`A«_ 4‘
`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, D.C. 20231
`
`Sir:
`
`Transmitted herewith for filing is a Provisional Continuation—|n-Part Patent Application in re:
`
`DAVID W. BROWN and JAY S. CLARK
`Inventors:
`MOTION CONTROL SYSTEMS AND METHODS
`Title:
`Attorney's Docket No.2 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;
`
`c) A check in the amount of $150 for Provisional Patent Application Filing Fee; and
`
`d) A stamped return receipt postcard.
`
`3. 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 8: SCHACHT, P.S.
`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
`Otfice 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. EIl69868076US
`Appendix A‘ "
`
`PTO/SB/16(6_95)
`AWmwdm1xfimm@0MHN&OMB%fi£m7
`Patent and Tmdcrnark Otfcc; u.s. DEPARTMENT OF COMMERCE
`
`PROVISIONAL APPLICATION COVER SHEET
`
`This is a request for filing II PROVISIONAL APPLICATION under 37 CFR 1.53 (b)(2).
`
`Type a plus sign (+ )
`P210160
`
`inside this x >
`
`
`
`'
`
`
`
`
`
`INvENToR(s)(AI>pLIcANT(s)
`Ti womwrw
`
`W°*m<°"* *“°*="“="W*= °*"°“'°" WWW
`
`
`
`Seattle, Washington 98109
`
`TITLE ox? THE INVENTION (220 character: max)
`
`BROWN
`
`CLARK
`
`DAVI D
`
`JAY
`
`W .
`
`S .
`
` Bingen, Washington 98605
`
` MOTION CONTROL SYSTEMS AND METHODS
`
`CORRESPONDENCE ADDRESS
`
`
`
`Michael R. Schacht
`
`
`Hughes Multer & Schacht P.S.
`.
`
`1720 Iéwa Street
`'
`Attorney for Applicants
`Bellingham, Washington
`98226
`
`
`ENCLOSED APPLICATION PARTS (check all that apply)
`
`
`
`
`
`
`
`
`98226 c°v~m
`
`
`
`Speclficfiflon
`Numba afPages
`
` METHOD OF PAYMENT (check one)
`A checkor money order is enclosed to cover the Provisional filing fees
`The Commissioner ls hereby authorized to charge
`tiling fees and credit Deposit Account Number:
`
`
`
`PROVISIONAL
`FILING FEE
`A\Ad()(JDFT (s)
`
`
`
`.
`
`0 8 — 3 2 6 O
`
`The Invention was made by an agency of the United States Govemment or under a contract with an agency of the United States Government.
`
`No.
`
`D Ye; the name of the US. Government ngency and the Government contract number Ire:
`
`
`Respectfully sub mittcd,
`
`SIGNATURE % 1,1, /Z; J}/wé
`REGISTRATION No.
`’
`.
`TYPED
`PRINTED NAME
`'
`. s h ht
`or _£q (ifappfopflafe)
`Attorney for Applicants
`D Additional inventors are being named on separately numbered sheets attached hereto
`
`12 4 97
`
`D3”
`
`I 5
`
`PRO VISIONAL APPLICA TION FILING ONL Y
`
`Burden Hour Statement: This form is atinuted to take .2 hours to complete. Time will vary depending upon the needs of thc individual case. Any comments on the amount of time
`you an: required to complete this form should be sent to the Oflioc of Assistance Quality and Enhancement Division. Patent and Trademark Office, W DC 20231. find W
`the Office of Information and Regulatory Alfairs, Oflice of Management and Budget (Project 0651-0037), Washington DC 20503. DO NOT SEND FEES OR COMPLETED
`FORMS TO THIS ADDRESS. SEND TO: Assistant Commissioner for Patents. Washington. DC 2023!.
`Page 5 Of
`
`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/_devstrm/base/des/regmap
`Document: regmap__des.doc
`Description:This 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:
`
`
`
`EPA ROY- G - B IV”
`Safimzre for 0 spedrum of/'a’ea5 '”
`©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
`AT640O Register Map .......................................................................... ..6
`DMC1000 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, 1ow—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 ir1 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.
`l’s signify active bits, whereas
`O’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).
`
`,
`Seme Index
`
`Information
`Communication Map
`Target
`Data
`Data
`opemmn
`Mask
`:52
`5°"
`3359 Addrefi
`(hI:Ir:‘)|en‘ent:)1
`Code
`READ 0x01 0xO000
`,, — — — — — — _ —
`, 0
`K_
`I
`I
`I
`I
`I
`
`READ III! 10x02:
`-
`I
`_
`WRITE ,oxoo42 ,oxoooo,
`-
`,
`_?
`i
`READ ‘oxooooloxooool
`.
`
`
`
`READ nxoo IIOXOI
`
`I
`
`
`
`
` eeoooom
`
`NOP
`.oxoooo . oxoooo.
`0
`§
`a
`
`READ XOXOOFF ‘ OXOOOO ‘
`
`
`I
`I
`I
`I
`I
`I
`I
`I
`I
`g
`
`2
`:¢:..:‘: :9 2252.: M7232?
`
`.
`
`
`
`I
`I
`I
`I
`I
`I
`I
`I
`oxoooi |0x0000
`READ
`I
`m/ms ' ” A524‘
`.
`. §2Z.\
`“ /’
`
`IIIIIIIII
`
`Figure 1 Communication Map.
`
`During the mapping process, the following steps occur.
`
`
`
`.
`.
`Description
`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 IO 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 10 space. For the write operation, the data mask is treated as
`the data, therefore in this step the number OXOO42 is written at offset 2.
`
`
`
`
`
`1 The input/ output (IO) 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 IO
`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
`
`The write actually takes place on the hardware IO space itself, or on a
`low level mapping provided by the operating system.
`
`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 final read takes place on the hardware [0 space or an operating
`system mapping of it.
`
`
`
`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.
`
`
`
`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.
`
`
`
`
`AND
`
`AND
`
`AND
`
`AND
`
`
`
`Data Read
`
`A = DM &
`
`Data
`
`V B = A A
`
`(DR)
`
`DR
`
`i
`
`Mask
`PM)
`true
`
`true
`
`true
`
`true
`
`DC
`
`XOR
`
`XOR
`
`XOR
`
`XOR
`
`
`
`
`
`
`
`RESULT
`
`(R)
`
`
`
`EQUALS
`
`
`
`EQUALS
`
`false (failure)
`
`EQUALS
`true (success)
`
`
`EQUALS
`true (success)
` false (failure)
`
`
`j__m
`
`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 DMCIOOOTM3 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 DMC1000 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
`om 311
`02:1.
`
`READ I oxoooi ‘ oxouoo
`1
`‘
`4
`._
`
`oUTPUT_BUF_READY
`'"P"*—B"F—REA°*
`HW_READY
`
`DATA_READ
`
`DATA_WR|TE
`CLEAR_BUFFERS
`SET_BU FFER__SlZES
`UPDATE__STATUS
`
`no~la\UI:>wNHo
`
`
`
`
`
`
`READ I nxoo42 I oxoooo ‘
`
`READ ‘ 0x0021 , oxoooo ;
`
`15
`
`‘
`
`1 ,
`
`4
`
`o
`
`I
`
`:
`
`’
`
`
`
`.
`
`‘
`A
`
`mformaflon
`Tar et
`3:522:22:
`
`
`
`J w_.
`
`'
`
`Figure 2 AT6400 Communication Map.
`
`DMC1000 Register Map
`
`Cell
`Offsel
`
`With the given set of services defined in the previous section, the communication
`map for the DMC1000 motion control hardware is as follows:
`Communicatron Map
`lnformation
`Data
`Data
`Target
`Mask
`code
`Cell
`(implemented
`Base Address
`operamn
`Size
`by hardware)
`’.
`READ on Ioxo I
`
`
`
`
`
`
`OUTPUT_BUF_READY
`lNPUT_BUF_READY
`
`
`
`
`
`
`
`A:
`
`
`
`
`
`
`
`:“ ‘
`
`
`
`
`
`
`
`
`57-‘!
`
`I 31:0
`
`0 Ion
`
`:
`
`' '
`
`
`
`
`
`
`
`NOP
`
`.z.>.:.
`
`-
`
`4
`
`-
`
`-
`l
`
`
`
`Figure 3 DMC1000 Communication Map.
`
`
`
`ROY-G-BIV Corporation Confidential
`
`December 4, 1997
`
`6
`
`Page 13 of 13
`
`Page 13 of 13