The present invention relates to shell-type gyroscopes, and more particularly to improving the accuracy of shell-type gyroscopes.
It is known in the prior art to drive a shell-type gyroscope along a drive axis using electrostatic forces. The forces cause the proof mass to resonate. If the gyroscope is subject to rotation about an axis normal to the drive axis, Coriolis forces will distort the surface of the proof mass. Coriolis-induced distortions can be measured and processed to assess the rotation.
A first provides a shell-type gyroscope that has a resonator disposed in a resonator plane, the resonator plane defining an X-axis, and defining a Y-axis orthogonal to the X-axis in the resonator plane; a plurality of X-drive electrodes disposed on the X-axis and in the resonator plane; a plurality of Y-drive electrodes disposed on the Y-axis and in the resonator plane, the plurality of X-drive electrodes and Y-drive electrodes configured to differentially drive the resonator in the resonator plane. The gyroscope also has a plurality of sense-drive electrodes including a plurality of X sense-drive electrodes disposed in the resonator plane and adjacent to a first one of the plurality of X-drive electrodes, and a plurality of Y sense-drive electrodes disposed in the resonator plane and adjacent to a first one of the plurality of Y-drive electrodes, where the plurality of sense-drive electrodes configured to differentially detect in-plane motion of the resonator. In addition, the gyroscope has a plurality of sense-Coriolis electrodes including a first plurality of differential sense-Coriolis electrodes disposed parallel to the resonator plane and along the X-axis and disposed so as to receive common feedthrough signals from a corresponding one of the X-drive electrodes; and a second plurality of differential sense-Coriolis electrodes disposed parallel to the resonator plane and along the Y-axis, and disposed so as to receive common feedthrough from a corresponding one the Y-drive electrodes.
In some embodiments, the plurality of X-sense drive electrodes are configured to detect displacement of the resonator within the resonator plane; and the plurality of Y-sense drive electrodes are configured to detect displacement of the resonator within the resonator plane.
The plurality of X-sense drive electrodes may include a first X-sense drive electrode disposed adjacent to a first one of the X-drive electrodes; and a second X-sense drive electrode disposed adjacent to the first one of the X-drive electrodes, such that the first one of the X-drive electrodes is between the first X-sense drive electrode and the second X-sense drive electrode. Some such gyroscopes also include a plurality of drive-tuning electrodes disposed in the resonator plane, the plurality of drive-tuning electrodes configured to controllably exert electrostatic force on the resonator so as to align the drive axis with the anti-nodes of the resonator. The plurality of drive-tuning electrodes may include a first X-axis drive-tuning electrode disposed adjacent to a second one of the X-drive electrodes; and a second X-axis drive-tuning electrode disposed adjacent to the second one of the X-drive electrodes, such that the first one of the X-drive electrodes is between the first X-axis drive-tuning electrode and the second X-axis drive-tuning electrode.
In some embodiments, the X-drive electrodes and the Y-drive electrodes are configured to be fully differential and symmetric about both X-axis and the Y-axis simultaneously.
In some embodiments, the gyroscope also has a plurality of sense-tuning electrodes disposed parallel to the resonator plane, the plurality of sense-tuning electrodes configured to controllably exert electrostatic force on the resonator so as to align the resonator with the sense-Coriolis electrodes. The plurality of sense-tuning electrodes may include a pair of X-axis sense-tuning electrodes, and a pair of Y-axis sense-tuning electrodes. The gyroscope may also have sense-tuning feedback inputs electrically coupled to the plurality of sense-Coriolis electrodes; and sense-tuning feedback outputs electrically coupled to the sense-tuning electrodes, the feedback circuit configured to exert an electrostatic force on the resonator.
Some gyroscopes also include a substrate having a substrate plane, and the resonator is suspended above or below the substrate such that the resonator plane is parallel to the substrate plane, and the plurality of sense-Coriolis electrodes are disposed on the substrate.
In yet other embodiments, the plurality of X-sense-Coriolis electrodes includes a first X-sense-Coriolis electrode, and a second X-sense-Coriolis electrode; and the plurality of Y-sense-Coriolis electrodes includes a first Y-sense-Coriolis electrode and a second Y-sense-Coriolis electrode, and the gyroscope further includes a first differential amplifier having a first differential input and a second differential input and a first output, the first differential input electrically coupled to the first X-sense-Coriolis electrode and the second differential input electrically coupled to the second X-sense-Coriolis electrode, such that the first differential amplifier rejects the common feedthrough signal; as well as a second differential amplifier having a third differential input and a fourth differential input and a second, the third differential input electrically coupled to the first Y-sense-Coriolis electrode and the fourth differential input electrically coupled to the second Y-sense-Coriolis electrode, such that the second differential amplifier rejects the common feedthrough signal.
Yet another embodiment provides a method of detecting quadrature errors in an XY-gyroscope, including the steps of providing a shell-type gyroscope, where the gyroscope includes a resonator having a resonator surface disposed in a resonator plane, the resonator plane defining an X-axis, and defining a Y-axis orthogonal to the X-axis in the resonator plane, and defining a Z-axis orthogonal to the resonator plane; a plurality of X-drive electrodes disposed on the X-axis and in the resonator plane; and a plurality of Y-drive electrodes disposed on the Y-axis and in the resonator plane, the plurality of X-drive electrodes and Y-drive electrodes configured to differentially drive the resonator in the resonator plane, and also includes a plurality of sense-drive electrodes having a plurality of X sense-drive electrodes disposed in the resonator plane and adjacent to a first one of the plurality of X-drive electrodes, and a plurality of Y sense-drive electrodes disposed in the resonator plane and adjacent to a first one of the plurality of Y-drive electrodes, in which the plurality of sense-drive electrodes configured to detect in-plane displacement of the resonator. Such a gyroscope also includes a plurality of sense-Coriolis electrodes having a first plurality of differential sense-Coriolis electrodes disposed parallel to the resonator plane and along the X-axis and disposed so as to receive an X-common feedthrough from a corresponding one of the X-drive electrodes, and configured to sense rotations about the Y-axis; and a second plurality of differential sense-Coriolis electrodes disposed parallel to the resonator plane and along the Y-axis, and disposed so as to receive a common feedthrough from a corresponding one the Y-drive electrodes, and configured to sense rotations about the X-axis. The method further includes steps of driving the resonator in an in-plane mode with drive signals from the X-drive electrodes and the Y-drive electrodes, the in-plane mode having distortion along the Z-axis due to a Poisson effect, causing the surface of the resonator to displace in the Z-axis; sensing a first Z-axis displacement of the resonator due to the Poisson effect of the in-plane drive modes using the sense-Coriolis electrodes on a substrate disposed adjacent to the resonator in parallel with X-axis; and sensing a second Z-axis displacement of the resonator due to the Poisson effect of the in-plane drive modes using the sense-Coriolis electrodes on the substrate in parallel with the Y-axis; along with assessing the amplitudes and phase relationship of the first Z-axis displacement and the second Z-axis displacement to determine quadrature errors on the XY-axis gyroscope.
In some embodiments, the method of detecting quadrature errors in an XY-gyroscope according also includes applying tuning voltages to the X-axis drive-tuning electrodes and the Y-axis drive-tuning electrodes to drive an amplitude difference and a phase difference between the first Z-axis displacement and the second Z-axis displacement to zero.
In another embodiment, a method of exciting sense Coriolis out-of-plane modes in an XY-axis gyroscope, without the application of any rotation rate into the gyroscope, includes providing a gyroscope as described above, along with the steps of providing a resonator DC voltage to the resonator; driving the resonator in an in-plane mode with drive signals from the X-drive electrodes and the Y-drive electrodes, the in-plane mode having a slight Poisson distortion causing the surface of the resonator to displace in the Z-axis, such that the Poisson distortion in the Z-axis can be used as harmonic excitation and can be sensed by the sense-Coriolis electrodes; and applying DC voltages to the sense-Coriolis electrodes, the DC voltages being different than the resonator DC voltage and differential on the differential sense-Coriolis electrodes, such that the out-of-plane modes can be excited without application of any rotation.
The step of driving the resonator in an in-plane mode with drive signals from the X-drive electrodes and the Y-drive electrodes may include driving the X-drive electrodes with a first periodic drive signal having a period; and driving the Y-drive electrodes with a second periodic drive signal having a period and have a phase of 180 degrees relative to the first periodic signal.
The method may also include the step of assessing the frequency of the excited out-of-plane mode relative to the frequency of the drive mode; and assessing the alignment of the excited out-of-plane mode relative to the sense-Coriolis electrodes.
In a further embodiment, a shell-type gyroscope includes a resonator disposed in a resonator plane, the resonator plane defining an X-axis, and defining a Y-axis orthogonal to the X-axis in the resonator plane, and defining a Z-axis mutually orthogonal to the X-axis and the Y-axis; means for differentially driving the resonator in the X-axis; means for differentially driving the resonator in the Y-axis; and means for sensing rotations about two orthogonal axes-of-rotation in the resonator plane using two out-of-plane flexural or bulk modes of the resonator caused by rotation about the axes
Such a gyroscope may also have means for controllably exerting electrostatic force on the resonator so as to align the drive axis with anti-nodes of the resonator. Some embodiments include means for controllably exerting electrostatic force on the resonator so as to align the resonator with the means for sensing rotations about two orthogonal axes-of-rotation. Various embodiments include means for detecting quadrature errors. Finally, some embodiments include a means for exciting out-of-plane modes which are sense-Coriolis modes in the gyroscope, without the application of any rotation rate into the gyroscope.
The foregoing features of embodiments will be more readily understood by reference to the following detailed description, taken with reference to the accompanying drawings, in which:
Various embodiments provide gyroscopes with significantly increased accuracy. For example, some embodiments include electrodes arrange in a way that facilitates improving the drive of the gyroscope's resonator. Still other embodiments include circuits for tuning the sense mode of a shell-type gyroscope to reduce or avoid quadrature errors. Still other embodiments include circuits to excite the sense modes (i.e., the out-of-plane modes) of a gyroscope without requiring the application of a rotation to the gyroscope, to ensure that the sense modes are aligned with the sense electrodes.
In operation, the resonant mass 106 (or “resonator” or “body” or “proof mass”) of a typical shell-type gyroscope is driven into oscillation, for example at its resonant frequency, and the shape of the resonator 106 changes as the resonator 106 oscillates. While the location of the center of mass of the resonator 106 may remain substantially unchanged (e.g., with respect to the substrate 104), the shape of the resonator 106 may change in significant ways. For example, when oscillating, the surface 106B of the resonator 106 may be displaced (e.g., along the Z-axis) from its nominal position. A line of such points may be referred to as an anti-node line. In some modes, however, there may be lines of points on the surface of the mass that are not displaced by the oscillation. Such a line may be referred to a “node line.”
Generally the “mode” of a resonating body is the shape of motion of the body at resonance. Modes that have identical resonant frequencies are referred to as being “degenerate” or “degenerative” modes because oscillations in these modes cannot be distinguished from each other according to frequency. On the other hand, modes that have non-identical resonant frequencies are referred to as being “non-degenerate” or “non-degenerative.”
In the gyroscope of
Nominal Operation
The operation of a shell-type gyroscope is described in connection with
Also, if the resonator is separate from another electrode (e.g., Coriolis-sense electrode 138-2, or sense-drive electrode 115-2, for example) across a capacitive gap, then a change in that gap will induce current to flow according to the equation i=Vdc/dt, where “V” is the voltage across the capacitive gap and “dc/dt” is the time rate of change of the capacitance between the electrodes.
The single drive mode includes applying electrostatic forces along both an X and Y axis. The drive mode may be described as having two repeating, periodic phases, in which the resonator is distorted into an elliptical shape along the X-axis, then along the Y-axis, and may be referred to as a “differential drive.” Although the operation of the gyroscope may sometimes be described with respect to one axis or the other, it should be understood that there is only a single drive mode. To that end, drive electrodes 118-1 and 118-2 aligned with the X-axis produce electrostatic drive forces along the X-axis (hence, those drive electrodes are indicated as Dx), to drive the resonator 106 in an in-plane resonance mode (i.e., within resonator plane 108), while sense electrodes 139-1 (also known as “SCxp”) and 139-2 (also known as “SCxn”) underlying the resonator 106 sense the out-of-plane degenerate or non-degenerate mode excited by Coriolis forces (i.e., rotation rates around an in-plane axis). Similarly, drive electrodes 119-1 and 119-2 aligned along the Y-axis produce drive forces along the Y-axis (hence, those drive electrodes are indicated as Dy) while sense electrodes 138-1 (also known as “SCyp”) and 138-2 (also known as “SCyn”) underlying the resonator 106 sense the out-of-plane degenerate or non-degenerate mode excited by Coriolis forces. It should be noted that sense electrodes additionally or alternatively may be placed above the resonator 106. Similarly, while the resonator 106 is shown as being supported or anchored from the top and bottom, the resonator 106 alternatively may be supported from the top or bottom only.
In the embodiment of
In this resonance mode, the resonator essentially has anti-nodes along the X and Y axes simultaneously (e.g., see
The gyroscope 100 detects rotations about two axes in the drive plane 108 by sensing distortions in the resonator 106 due to Coriolis forces.
One out-of-plane sense mode has anti-node lines in the z-direction along the x-axis and detects only the Ωy, i.e., rotation about the y-axis results in Coriolis acceleration in the z-direction along the X-axis (i.e., Vx×Ωy=AzCoriolis(y)), which can be sensed using out-of-plane sense electrodes aligned with the x-axis, but rotation about the X-axis produces no Coriolis acceleration in the z-direction along the x-axis (i.e., Vx×Ωx=0).
A second out-of-plane sense mode has anti-node lines in the z-direction along the Y-axis and detects only the Ωx, i.e., rotation about the X-axis results in Coriolis acceleration in the z-direction along the y-axis (i.e., Vy×Ωx=AzCoriolis(x)), which can be sensed using out-of-plane sense electrodes aligned with the Y-axis, but rotation about the Y-axis produces no Coriolis acceleration in the z-direction along the Y-axis (i.e., Vy×Ωy=0).
As illustrated above, the ideal operation of a shell-type gyroscope depends on the response of a resonator 106 to drive forces and Coriolis forces. In practice, various aspects of the operation of such a gyroscope may benefit from the arrangement of electrodes, and/or from being adjusted or tuned. To that end, various embodiments may have electrodes and feedback circuits to adjust or tune the gyroscope, as discussed in more detail below.
Various embodiments may include a variety of electrodes that may sense the operation of the gyroscope, and provide a variety of drive and feedback signals.
Drive Mode
An alternate illustration of a resonator 106 resonating in the resonator plane 108 is schematically illustrated in
Ideally, the mode of the resonator 106 in response to being differentially driven aligns with the X-axis, as schematically illustrated in
However, in some circumstances the drive mode may not align with the X-axis and/or the Y-axis, in which case the drive mode is said to be “misaligned.” For example, a drive mode that is not aligned with the X-axis is schematically illustrated in
When the mode is misaligned, the ability of the gyroscope 100 to accurately sense and measure rotation about an axis in the resonator plane 108 may be compromised. For example, such a misalignment may increase cross-talk or feedthrough between various electrodes, and therefore between the various phases of the out-of-plane modes. Therefore, some embodiments include circuits and structures to adjust or tune the drive modes.
For example, some embodiments include drive-sense electrodes 115-1 (which may also be known as “SDx1” or “SDp”) and 115-2 (which may also be known as “SDx2” or “SDp”) to sense the displacement of the resonator 106 in response to drive signals. The drive-sense electrodes 115-1 and 115-2 are located in the resonator plane 108 adjacent to the resonator 106, but are not on the X-axis. In other words, when the resonant mode is aligned with the X-axis, the drive-sense electrodes 115-1 and 115-2 are off of the anti-node line 610. A similar set of drive sense electrodes 111-1 (which may also be known as “SDy1” or “SDn”) and 111-2 (which may also be known as “SDy2” or “SDn”) are disposed adjacent to (but not on) the Y-axis.
This configuration of electrodes provides a number of benefits, as described below
Feedthrough.
For example, some prior art X-Y gyroscopes drive a resonator with only a single drive electrode adjacent to the resonator along an axis, and sense the Coriolis motion of the resonator (i.e., motion of the resonator in response to Coriolis forces) with several sensing electrodes, one of which is adjacent to the single drive electrode. The proximity of the single drive electrode to the adjacent sensing electrode (sense-Coriolis electrode) results in some of the drive signal on the drive electrode coupling to the adjacent sense electrode, in a process known in the art as “feedthrough.” However, the other Coriolis sense electrodes will not receive any such feedthrough (or at least will receive less feedthrough than the Coriolis sense electrode adjacent to the single drive electrode), resulting in a distortion of the signals from the Coriolis sense electrodes.
In contrast to such prior art gyroscopes, the present embodiment drives the resonator 106 with two drive electrodes on the X-axis (118-1 and 118-2), and two drive electrodes on the Y-axis (119-1 and 119-2) as explained above. Each of the drive electrodes is adjacent to a Coriolis sense electrode. In the embodiment of
As such, each of the Coriolis sense electrodes (138-1, 138-2, 129-1 and 139-2) receives similar feedthrough from its adjacent drive electrode (118-1, 118-2, 119-2 and 119-2), thereby introducing equal common signals modes for the differential sense Coriolis configurations (out-of-plane modes, either degenerate or non-degenerate) along both the X-axis and the Y-axis. In other words, a drive signal on drive electrode 138-1 would feedthrough to Coriolis sense electrode 138-2; a drive signal on drive electrode 138-2 would feedthrough to Coriolis sense electrode 138-1; a drive signal on drive electrode 119-1 would feedthrough to Coriolis sense electrode 139-1; and a drive signal on drive electrode 139-1 would feedthrough to Coriolis sense electrode 139-2. Such common signals can be rejected in a circuit 700 configured to process the Coriolis sense signals on the Coriolis sense electrodes.
Alignment
Another benefit arising from the present embodiment relates to aligning the drive mode. As explained above, ideally the mode of the resonator aligns with the X-axis and Y-axis when driven by drive signals 350 and 360. However, that may not always be the case. For example, manufacturing processes may result in variations in the dimensions of elements of the gyroscope 100, and/or variations in the gaps between features of the gyroscope 100, and such variations can affect the alignment of the mode of the resonator 106.
Therefore, some embodiments include feedback systems to tune the alignment of the drive mode. Gyroscope 100 includes drive sense electrodes 115-1 and 115-2 adjacent to the X-axis, and drive sense electrodes 111-1 and 111-2 adjacent to the Y-axis. Because these drive sense electrodes (115-1; 115-2; 111-1; 111-2) lie off of the X and Y axes, respectively, their sensitivity to the drive mode may be somewhat degraded (e.g., as compared to sense electrodes on an axis on which the resonator 106 is driven) but any such degradation is compensated by the fact that there are two such sense electrodes along each such axis.
If the mode lies on an axis other than that aligned with the drive electrodes (118-1, 118-2 and 119-1, 119-2), a common mode current will appear on the sense electrodes 111-1 and 111-2, and 115-1 and 115-2. In the extreme, the electrostatic drive applied by the drive electrodes (118-1, 118-2, 119-1 and 119-2) will excite motion of the resonator 106 along exes at +/−45 degrees to the X-axis and Y-axis, in which case equal signals (e.g., identical currents) will flow into drive sense electrodes 111-1, 111-2, 115-1 and 115-2, thereby producing only common-mode current and no differential current in those electrodes.
The presence of common mode current on drive sense electrodes can be used to electrostatically tune the resonator mode using feedback electrodes 112-1 (also known as Tx1), 112-2 (also known as Tx2), 113-1 (also known as Ty1) and 113-2 (also known as Ty2). The signals sensed by the drive sense electrodes 115-1 and 115-2 and 111-1 and 111-2 are input to a feedback circuit 800 (
Quadrature
As such, the response may be described as an “out-of-plane” response or motion. As shown in
As schematically illustrated in
For example, when the nodes 901A and 901D align with the X-axis, the Y-response mode of the resonator 106 (i.e., due to rotation about the Y-axis) may said to be aligned with the X-axis. However, in some circumstances, the anti-nodes 901A and 901D may not align with the X-axis, as schematically illustrated in
Similarly, when the anti-nodes 911A and 911D (
When a response mode is misaligned, the mode is said to be out of “quadrature.” When a mode is out of quadrature, the misalignment may manifest itself in errors in the ability of the gyroscope to detect and measure the rotation about the X-axis and/or the Y-axis, and the ability to discriminate between such rotations. An error of this type may be referred to as a “quadrature error.” Structures and methods of addressing quadrature error by aligning the drive mode are described further below.
Some embodiments include quadrature sense electrodes configured to sense quadrature errors in the drive of the resonator 106, and to tune the drive mode using feedback circuits. When the resonator 106 is driven in its in-plane modes (i.e., along the X and Y axes), the Poisson term of the in-plane modes (that is, the out-of-plane common-mode signals) can be detected using Coriolis sense electrodes 138-1 (also known as “SCyp”) and 138-2 (also known as “SCyn”) along the X-axis; and 139-1 (also known as “SCxp”) and 139-2 (also known as “SCxn”) along the Y-axis.
Electrode 138-1 produces a first quadrature signal, and electrode 138-2 produces a second quadrature signal. If the resonator 106 is oscillating without quadrature errors, the common-mode of the first and second quadrature signals will have identical amplitudes and phase (i.e., zero degree phase difference). However, if the drive mode has been excited with a degree of misalignment relative to the drive electrodes 118-1 and 118-2, the first and second quadrature signals will have different (i.e., non-identical) amplitudes, and different (i.e., non-identical) phases.
As such, the differences between the first and second quadrature signals may be processed in a feedback loop to align the mode with the drive axes.
An illustrative feedback circuit 1000 for tuning a resonator along the X-axis is schematically illustrated in
Similarly, an illustrative feedback circuit 1020 for tuning the response mode along the Y-axis is schematically illustrated in
Sense Mode Excitation
In some gyroscopes, it may be desirable to assess the alignment of the sense modes to the sense electrodes 138-1 and 138-2 in the X-axis, and 139-1 and 139-2 in the Y-axis, in the absence of an applied rotation (or rotation rate). For example, such assessment may be useful for tuning, calibrating, or self-testing the gyroscope.
To that end, some embodiments include circuits and structures to excite the sense modes (i.e., the out-of-plane modes) without application of a rotation, based on the observation that the differential driving of the resonator 106 causes Poisson distortion, although that distortion is aligned with the drive electrodes (e.g., 118-1 and 118-2 when driven in the X-axis, and 119-1 and 119-2 when driven along the Y-axis), and so is unlike the distortions caused by Coriolis forces, which arise at 90 degree angles to the drive electrodes. In other words, the Poisson term of the in-plane drive mode can be used as the harmonic excitation, and sensed by the Coriolis sense electrodes (138-1 and 138-2 in the X-axis, and 139-1 and 139-2 in the Y-axis) if differential DC voltages are applied to the electrodes.
For example, when exciting the sense mode, DC voltages may be applied to electrodes 134-1 (also referred to as Tscyp), 134-2 (also referred to as Tscyn), 135-1 (also referred to as Tscxp) and 135-2 (also referred to as Tscxn). In some embodiments, a positive DC voltage is applied to electrodes 134-1, and a negative DC voltage is applied to electrodes 134-2, and a positive DC voltage is applied to electrodes 135-1, and a negative DC voltage is applied to electrodes 135-2.
Out-of-plane deflections, which result from Poison's effect on the driven elliptic mode, modulate electrostatic forces between the tuning electrode(s) and resonator 106. Because each such electrostatic force is an indirect and yet phase accurate function of the driven mode deflection, the end result is a voltage controlled spring effect coupling the drive and sense modes. This results in exciting the sense modes while the gyro 100 is driven without application of any rotation rate. If it is observed that sense modes are misaligned, a feedback circuit adjusts the (tuning) voltages to the associated tuning electrodes 112-1 (also known as Tx1 or Tp), 112-2 (also known as Tx2 or Tp), 113-1 (also known as Ty1 or Tn) and 113-2 (also known as Ty2 or Tn) until the modes come into alignment.
A circuit 1100 for exciting the sense mode of gyroscope 100 in the absence of an applied rotation is schematically illustrated in
Various embodiments of the invention may be implemented at least in part in any conventional computer programming language. For example, some embodiments may be implemented in a procedural programming language (e.g., “C”), or in an object oriented programming language (e.g., “C++”). Other embodiments of the invention may be implemented as preprogrammed hardware elements (e.g., application specific integrated circuits, FPGAs, and digital signal processors), or other related components.
In an alternative embodiment, the disclosed apparatus and methods may be implemented as a computer program product for use with a computer system. Such implementation may include a series of computer instructions fixed either on a tangible medium, such as a non-transient computer readable medium (e.g., a diskette, CD-ROM, ROM, or fixed disk). The series of computer instructions can embody all or part of the functionality previously described herein with respect to the system.
Those skilled in the art should appreciate that such computer instructions can be written in a number of programming languages for use with many computer architectures or operating systems. Furthermore, such instructions may be stored in any memory device, such as semiconductor, magnetic, optical or other memory devices, and may be transmitted using any communications technology, such as optical, infrared, microwave, or other transmission technologies.
Among other ways, such a computer program product may be distributed as a removable medium with accompanying printed or electronic documentation (e.g., shrink wrapped software), preloaded with a computer system (e.g., on system ROM or fixed disk), or distributed from a server or electronic bulletin board over the network (e.g., the Internet or World Wide Web). Of course, some embodiments of the invention may be implemented as a combination of both software (e.g., a computer program product) and hardware. Still other embodiments of the invention are implemented as entirely hardware, or entirely software.
The embodiments of the invention described above are intended to be merely exemplary; numerous variations and modifications will be apparent to those skilled in the art. All such variations and modifications are intended to be within the scope of the present invention as defined in any appended claims.