Abstract:
In a VCT system having a phaser and pulse wheels on driving and driven shafts respectively in which the pulse wheels have known tooth distribution thereon, a device and method is used for adjusting values of a controller that controls the timing between the driving and driven shaft. Additional subroutines are performed with respect to the driving shaft tooth wheel and the driven shaft tooth wheel respectively. The known tooth distribution includes non-symmetric tooth distribution.

Description:
FIELD OF THE INVENTION  
       [0001]     The invention pertains to the field of cam position measurement. More particularly, the invention pertains to cam position measurement for embedded control VCT systems using non-ideal pulse-wheels for cam position measurement.  
       BACKGROUND OF THE INVENTION  
       [0002]     United States published patent application, 2002/0050272 entitled CYLINDER IDENTIFYING SYSTEM FOR INTERNAL COMBUSTION ENGINE, teaches a cylinder identifying system for an internal combustion engine capable of establishing a complicated cam signal pulse pattern without need for setting specific periods for cylinder identification while enhancing control performance by reducing a crank rotation angle required for cylinder identification. A cylinder identifying means ( 10 ) for identifying discriminatively individual cylinders on the basis of a crank angle pulse signal (SGT) and a cam pulse signal (SGC) includes a pulse signal number storage means ( 12 ) for counting for storage signal numbers of specific pulses generated over a plurality of subperiods which are defined by dividing an ignition control period for each of the individual cylinders into plural subperiods, and an information series storage means ( 15 ) for storing information series each composed of a combination of the signal numbers generated during plural subperiods, respectively. The individual cylinders are identified on the basis of the information series.  
         [0003]     United States published patent application, 2001/0011203, entitled ENGINE CONTROL UNIT HAVING CYLINDER DETERMINATION FUNCTION, teaches a crank signal generated by a crank angle sensor has a front pulse missing portion and a back pulse missing portion in a pulse train of every predetermined angle interval. The level of a cam signal generated by a cam angle sensor becomes different in the pulse missing portion of the crank signal. A level different from that in the pulse missing portion continues for a period of predetermined angles before the pulse missing portion. A microcomputer determines each of the front and back pulse missing portions in the crank signal on the basis of the level of the cam signal in the pulse missing portion of the crank signal in two cycles of the rotation of a crankshaft of the engine and the duration of a different level before the pulse missing portion.  
         [0004]     U.S. Pat. No. 6,498,979, entitled ENGINE CONTROL UNIT HAVING CYLINDER DETERMINATION FUNCTION, teaches a crank signal generated by a crank angle sensor has a front pulse missing portion and a back pulse missing portion in a pulse train of every predetermined angle interval. The level of a cam signal generated by a cam angle sensor becomes different in the pulse missing portion of the crank signal. A level different from that in the pulse missing portion continues for a period of predetermined angles before the pulse missing portion. A microcomputer determines each of the front and back pulse missing portions in the crank signal on the basis of the level of the cam signal in the pulse missing portion of the crank signal in two cycles of the rotation of a crankshaft of the engine and the duration of a different level before the pulse missing portion.  
         [0005]     U.S. Pat. No. 5,736,633, entitled METHOD AND SYSTEM FOR DECODING OF VCT/CID SENSOR WHEEL, teaches a Battery charging system for vehicles, uses fixed chargers on roadsides. “Translocator” on vehicle triggers power transmission (and keeps track of cost of energy). When charger detects translocator signal, it steers microwave or laser energy to receiver on vehicle. Does not explain how “translocator” works other than details of metering and payment (see col 5 lines 35-65), but from description it appears that translocator continually transmits and the base station somehow triangulates (“locks onto” in the words of the patent) the translocator signal.  
         [0006]     U.S. Pat. No. 4,953,531, entitled CRANK ANGLE DETECTOR FOR AN ENGINE, teaches a crank angle detector for an engine includes a cam rotor plate for detecting a cylinder number to be ignited and a cam pulse sensor provided opposite thereto, a crank rotor plate for sensing a crank angle and a crank pulse sensor provided opposite thereto, and a controller for determining ignition timings of respective cylinders to control an ignition. The crank rotor plate is constituted by a rotor plate at starting for sensing a fixed ignition timing and a rotor plate for a normal operation. A pair of crank pulse sensors are provided opposite to the rotor plates, respectively. An input signal for the fixed ignition timing is mask-released only at starting. After that, input is continuously masked during normal operation.  
         [0007]     European patent number DE 197 41 597, entitled CAM PULSE WHEEL FOR INTERNAL COMBUSTION ENGINE, teaches The cam pulse wheel ( 14 ) is attached to the camshaft with a variable phase and provided around its periphery ( 15 ) with a number of markings ( 16 , 17 , 18 , 19 ), corresponding to the number of engine cylinders, detected by a sensor ( 10 ), for determining the camshaft position. The markings are positioned asymmetrically, the sensor output signals fed to a microprocessor for adjustment of the camshaft setting device.  
         [0008]     As can be seen, it is known to use sensed pulse such as crank pulse to determine parameters such as cylinder position. The above mentioned Ando application (2001/0011203) and Ando patent (U.S. Pat. No. 6,498,979) teaches a non-Variable Cam Timing system wherein a pulse missing portion of a series of crank pulses is referenced to cam signals by a computer. Magner patent (U.S. Pat. No. 5,736,633) teaches a system for distinguishing a cylinder identification signal from a variable cam timing signal. In the Magner patent, the pulse wheel has separate teeth or tabs for cylinder identification and variable cam timing. The tabs for variable cam timing are physically spaced equidistance from each other. Abe patent (U.S. Pat. No. 4,953,531) teaches relationship of crank and cam pulses with ignition pulses. In Abe, no variable cam timing relationships such as the controlled or adjusted angular relationship between the crank and cam shafts is recited or described. However, the Yonezawa application (2002/0050272) specifically call for a cylinder identifying system in associated with a variable valve timing (VVT) system in which the angular differences caused by the VVT system are taken into consideration.  
         [0009]     Pulse wheels or tooth wheels including asymmetrical pulse wheels are known. German patent (DE 197 41 597) teaches an asymmetrical pulse wheel.  
         [0010]     However, it is not known to use a given non-symmetrical pulse wheel or tooth wheel to accommodate existing VCT systems including at least one phaser in which a controller still considers pulse wheel as being symmetrical. Further, it is desirous to use the existing software and hardware for existing pulse wheel (usually a symmetrical pulse wheel) as much as possible on an asymmetrical pulse wheel in a VCT system having at least one phaser and other devices. It is desirable to use a given tooth wheel with known dimensions including the non-symmetrical structure along with exiting hardware and software. In other words, it is desirable to take the non-symmetrical structure into account and make the computer or engine controller or other types of controllers to think that the sensed pulses are still symmetrical. Thereby existing software which treats pulses as symmetrical can still be used.  
         [0011]     It is also known that the performance of an internal combustion engine can be improved by the use of dual camshafts, one to operate the intake valves of the various cylinders of the engine and the other to operate the exhaust valves. Typically, one of such camshafts is driven by the crankshaft of the engine, through a sprocket and chain drive or a belt drive, and the other of such camshafts is driven by the first, through a second sprocket and chain drive or a second belt drive. Alternatively, both of the camshafts can be driven by a single crankshaft powered chain drive or belt drive. Engine performance in an engine with dual camshafts can be further improved, in terms of idle quality, fuel economy, reduced emissions or increased torque, by changing the positional relationship of one of the camshafts, usually the camshaft which operates the intake valves of the engine, relative to the other camshaft and relative to the crankshaft, to thereby vary the timing of the engine in terms of the operation of intake valves relative to its exhaust valves or in terms of the operation of its valves relative to the position of the crankshaft.  
         [0012]     Consideration of information disclosed by the following U.S. patents, which are all hereby incorporated by reference, is useful when exploring the background of the present invention.  
         [0013]     U.S. Pat. No. 5,002,023 describes a VCT system within the field of the invention in which the system hydraulics includes a pair of oppositely acting hydraulic cylinders with appropriate hydraulic flow elements to selectively transfer hydraulic fluid from one of the cylinders to the other, or vice versa, to thereby advance or retard the circumferential position on of a camshaft relative to a crankshaft. The control system utilizes a control valve in which the exhaustion of hydraulic fluid from one or another of the oppositely acting cylinders is permitted by moving a spool within the valve one way or another from its centered or null position. The movement of the spool occurs in response to an increase or decrease in control hydraulic pressure, P c , on one end of the spool and the relationship between the hydraulic force on such end and an oppositely direct mechanical force on the other end which results from a compression spring that acts thereon.  
         [0014]     U.S. Pat. No. 5,107,804 describes an alternate type of VCT system within the field of the invention in which the system hydraulics include a vane having lobes within an enclosed housing which replace the oppositely acting cylinders disclosed by the aforementioned U.S. Pat. No. 5,002,023. The vane is oscillatable with respect to the housing, with appropriate hydraulic flow elements to transfer hydraulic fluid within the housing from one side of a lobe to the other, or vice versa, to thereby oscillate the vane with respect to the housing in one direction or the other, an action which is effective to advance or retard the position of the camshaft relative to the crankshaft. The control system of this VCT system is identical to that divulged in U.S. Pat. No. 5,002,023, using the same type of spool valve responding to the same type of forces acting thereon.  
         [0015]     U.S. Pat. Nos. 5,172,659 and 5,184,578 both address the problems of the aforementioned types of VCT systems created by the attempt to balance the hydraulic force exerted against one end of the spool and the mechanical force exerted against the other end. The improved control system disclosed in both U.S. Pat. Nos. 5,172,659 and 5,184,578 utilizes hydraulic force on both ends of the spool. The hydraulic force on one end results from the directly applied hydraulic fluid from the engine oil gallery at full hydraulic pressure, P s . The hydraulic force on the other end of the spool results from a hydraulic cylinder or other force multiplier which acts thereon in response to system hydraulic fluid at reduced pressure, P c , from a PWM solenoid. Because the force at each of the opposed ends of the spool is hydraulic in origin, based on the same hydraulic fluid, changes in pressure or viscosity of the hydraulic fluid will be self-negating, and will not affect the centered or null position of the spool.  
         [0016]     U.S. Pat. No. 5,289,805 provides an improved VCT method which utilizes a hydraulic PWM spool position control and an advanced control method suitable for computer implementation that yields a prescribed set point tracking behavior with a high degree of robustness.  
         [0017]     In U.S. Pat. No. 5,361,735, a camshaft has a vane secured to an end for non-oscillating rotation. The camshaft also carries a timing belt driven pulley which can rotate with the camshaft but which is oscillatable with respect to the camshaft. The vane has opposed lobes which are received in opposed recesses, respectively, of the pulley. The camshaft tends to change in reaction to torque pulses which it experiences during its normal operation and it is permitted to advance or retard by selectively blocking or permitting the flow of engine oil from the recesses by controlling the position of a spool within a valve body of a control valve in response to a signal from an engine control unit. The spool is urged in a given direction by rotary linear motion translating means which is rotated by an electric motor, preferably of the stepper motor type.  
         [0018]     U.S. Pat. No. 5,497,738 shows a control system which eliminates the hydraulic force on one end of a spool resulting from directly applied hydraulic fluid from the engine oil gallery at full hydraulic pressure, P s , utilized by previous embodiments of the VCT system. The force on the other end of the vented spool results from an electromechanical actuator, preferably of the variable force solenoid type, which acts directly upon the vented spool in response to an electronic signal issued from an engine control unit (“ECU”) which monitors various engine parameters. The ECU receives signals from sensors corresponding to camshaft and crankshaft positions and utilizes this information to calculate a relative phase angle. A closed-loop feedback system which corrects for any phase angle error is preferably employed. The use of a variable force solenoid solves the problem of sluggish dynamic response. Such a device can be designed to be as fast as the mechanical response of the spool valve, and certainly much faster than the conventional (fully hydraulic) differential pressure control system. The faster response allows the use of increased closed-loop gain, making the system less sensitive to component tolerances and operating environment.  
         [0019]     U.S. Pat. No. 5,657,725 shows a control system which utilizes engine oil pressure for actuation. The system includes A camshaft has a vane secured to an end thereof for non-oscillating rotation therewith. The camshaft also carries a housing which can rotate with the camshaft but which is oscillatable with the camshaft. The vane has opposed lobes which are received in opposed recesses, respectively, of the housing. The recesses have greater circumferential extent than the lobes to permit the vane and housing to oscillate with respect to one another, and thereby permit the camshaft to change in phase relative to a crankshaft. The camshaft tends to change direction in reaction to engine oil pressure and/or camshaft torque pulses which it experiences during its normal operation, and it is permitted to either advance or retard by selectively blocking or permitting the flow of engine oil through the return lines from the recesses by controlling the position of a spool within a spool valve body in response to a signal indicative of an engine operating condition from an engine control unit. The spool is selectively positioned by controlling hydraulic loads on its opposed end in response to a signal from an engine control unit. The vane can be biased to an extreme position to provide a counteractive force to a unidirectionally acting frictional torque experienced by the camshaft during rotation.  
         [0020]     U.S. Pat. No. 6,247,434 shows a multi-position variable camshaft timing system actuated by engine oil. Within the system, a hub is secured to a camshaft for rotation synchronous with the camshaft, and a housing circumscribes the hub and is rotatable with the hub and the camshaft and is further oscillatable with respect to the hub and the camshaft within a predetermined angle of rotation. Driving vanes are radially disposed within the housing and cooperate with an external surface on the hub, while driven vanes are radially disposed in the hub and cooperate with an internal surface of the housing. A locking device, reactive to oil pressure, prevents relative motion between the housing and the hub. A controlling device controls the oscillation of the housing relative to the hub.  
         [0021]     U.S. Pat. No. 6,250,265 shows a variable valve timing system with actuator locking for internal combustion engine. The system comprising a variable camshaft timing system comprising a camshaft with a vane secured to the camshaft for rotation with the camshaft but not for oscillation with respect to the camshaft. The vane has a circumferentially extending plurality of lobes projecting radially outwardly therefrom and is surrounded by an annular housing that has a corresponding plurality of recesses each of which receives one of the lobes and has a circumferential extent greater than the circumferential extent of the lobe received therein to permit oscillation of the housing relative to the vane and the camshaft while the housing rotates with the camshaft and the vane. Oscillation of the housing relative to the vane and the camshaft is actuated by pressurized engine oil in each of the recesses on opposed sides of the lobe therein, the oil pressure in such recess being preferably derived in part from a torque pulse in the camshaft as it rotates during its operation. An annular locking plate is positioned coaxially with the camshaft and the annular housing and is moveable relative to the annular housing along a longitudinal central axis of the camshaft between a first position, where the locking plate engages the annular housing to prevent its circumferential movement relative to the vane and a second position where circumferential movement of the annular housing relative to the vane is permitted. The locking plate is biased by a spring toward its first position and is urged away from its first position toward its second position by engine oil pressure, to which it is exposed by a passage leading through the camshaft, when engine oil pressure is sufficiently high to overcome the spring biasing force, which is the only time when it is desired to change the relative positions of the annular housing and the vane. The movement of the locking plate is controlled by an engine electronic control unit either through a closed loop control system or an open loop control system.  
         [0022]     U.S. Pat. No. 6,263,846 shows a control valve strategy for vane-type variable camshaft timing system. The strategy involves an internal combustion engine that includes a camshaft and hub secured to the camshaft for rotation therewith, where a housing circumscribes the hub and is rotatable with the hub and the camshaft, and is further oscillatable with respect to the hub and camshaft. Driving vanes are radially inwardly disposed in the housing and cooperate with the hub, while driven vanes are radially outwardly disposed in the hub to cooperate with the housing and also circumferentially alternate with the driving vanes to define circumferentially alternating advance and retard chambers. A configuration for controlling the oscillation of the housing relative to the hub includes an electronic engine control unit, and an advancing control valve that is responsive to the electronic engine control unit and that regulates engine oil pressure to and from the advance chambers. A retarding control valve responsive to the electronic engine control unit regulates engine oil pressure to and from the retard chambers. An advancing passage communicates engine oil pressure between the advancing control valve and the advance chambers, while a retarding passage communicates engine oil pressure between the retarding control valve and the retard chambers.  
         [0023]     U.S. Pat. No. 6,311,655 shows multi-position variable cam timing system having a vane-mounted locking-piston device. An internal combustion engine having a camshaft and variable camshaft timing system, wherein a rotor is secured to the camshaft and is rotatable but non-oscillatable with respect to the camshaft is discribed. A housing circumscribes the rotor, is rotatable with both the rotor and the camshaft, and is further oscillatable with respect to both the rotor and the camshaft between a fully retarded position and a fully advanced position. A locking configuration prevents relative motion between the rotor and the housing, and is mounted within either the rotor or the housing, and is respectively and releasably engageable with the other of either the rotor and the housing in the fully retarded position, the fully advanced position, and in positions therebetween. The locking device includes a locking piston having keys terminating one end thereof, and serrations mounted opposite the keys on the locking piston for interlocking the rotor to the housing. A controlling configuration controls oscillation of the rotor relative to the housing.  
         [0024]     U.S. Pat. No. 6,374,787 shows a multi-position variable camshaft timing system actuated by engine oil pressure. A hub is secured to a camshaft for rotation synchronous with the camshaft, and a housing circumscribes the hub and is rotatable with the hub and the camshaft and is further oscillatable with respect to the hub and the camshaft within a predetermined angle of rotation. Driving vanes are radially disposed within the housing and cooperate with an external surface on the hub, while driven vanes are radially disposed in the hub and cooperate with an internal surface of the housing. A locking device, reactive to oil pressure, prevents relative motion between the housing and the hub. A controlling device controls the oscillation of the housing relative to the hub.  
         [0025]     U.S. Pat. No. 6,477,999 shows a camshaft that has a vane secured to an end thereof for non-oscillating rotation therewith. The camshaft also carries a sprocket that can rotate with the camshaft but is oscillatable with respect to the camshaft. The vane has opposed lobes that are received in opposed recesses, respectively, of the sprocket. The recesses have greater circumferential extent than the lobes to permit the vane and sprocket to oscillate with respect to one another. The camshaft phase tends to change in reaction to pulses that it experiences during its normal operation, and it is permitted to change only in a given direction, either to advance or retard, by selectively blocking or permitting the flow of pressurized hydraulic fluid, preferably engine oil, from the recesses by controlling the position of a spool within a valve body of a control valve. The sprocket has a passage extending therethrough the passage extending parallel to and being spaced from a longitudinal axis of rotation of the camshaft. A pin is slidable within the passage and is resiliently urged by a spring to a position where a free end of the pin projects beyond the passage. The vane carries a plate with a pocket, which is aligned with the passage in a predetermined sprocket to camshaft orientation. The pocket receives hydraulic fluid, and when the fluid pressure is at its normal operating level, there will be sufficient pressure within the pocket to keep the free end of the pin from entering the pocket. At low levels of hydraulic pressure, however, the free end of the pin will enter the pocket and latch the camshaft and the sprocket together in a predetermined orientation.  
         [0026]     U.S. patent application Ser. No. 10/405,513, by inventors Earl Ekdahl Danny R. Taylor and commonly assigned to BorgWarner Inc. of Auburn Hills, Mich. teaches a method for compensating for variable cam timing of an internal combustion engine is provided. The method includes: a) providing a periodical crank pulse signal; b) providing a periodical cam pulse signal; c) determining a segment, wherein the internal combustion engine speed induces a volatile change upon Zphase values; d) dividing the segment into sub-segments; and e) calculating Zphase values of a plurality of points within the sub-segments.  
         [0027]     A typical prior art control loop is shown as follows. Referring to  FIG. 1 , a prior art feedback loop  10  is shown. The control objective of feedback loop  10  is to have a spool valve in a null position. In other words, the objective is to have no fluid flowing between two fluid holding chambers of a phaser (not shown) such that the VCT mechanism at the phase angle given by a set point  12  with the spool  14  stationary in its null position. This way, the VCT mechanism is at the correct phase position and the phase rate of change is zero. A control computer program product which utilizes the dynamic state of the VCT mechanism is used to accomplish the above state.  
         [0028]     The VCT closed-loop control mechanism is achieved by measuring a camshaft phase shift θ 0    16 , and comparing the same to the desired set point  12 . The VCT mechanism is in turn adjusted so that the phaser achieves a position which is determined by the set point  12 . A control law  18  compares the set point  12  to the phase shift θ 0    16 . The compared result is used as a reference to issue commands to a solenoid  20  to position the spool  14 . This positioning of spool  14  occurs when the phase error (the difference between set point r  12  and phase shift  20 ) is non-zero.  
         [0029]     The spool  14  is moved toward a first direction (e.g. right) if the phase error is negative (retard) and to a second direction (e.g. left) if the phase error is positive (advance). It is noted that the retarding with current phase measurement scheme gives a larger value, and advancing yields a small value. When the phase error is zero, the VCT phase equals the set point  12  so the spool  14  is held in the null position such that no fluid flows within the spool valve.  
         [0030]     Camshaft and crankshaft measurement pulses in the VCT system are generated by camshaft and crankshaft pulse wheels  22  and  24 , respectively. As the crankshaft (not shown) and camshaft (also not shown) rotate, wheels  22 ,  24  rotate along with them. The wheels  22 ,  24  possess teeth which can be sensed and measured by sensors according to measurement pulses generated by the sensors. The measurement pulses are detected by camshaft and crankshaft measurement pulse sensors  22   a  and  24   a , respectively. The sensed pulses are used by a phase measurement device  26 . A measurement phase difference is then determined. The phase between a cam shaft and a crankshaft is defined as the time from successive crank-to-cam pulses, divided by the time for an entire revolution and multiplied by 360.degree. The measured phase may be expressed as θ 0    16 . This phase is then supplied to the control law  18  for reaching the desired spool position.  
         [0031]     A control law  18  of the closed-loop  10  is described in U.S. Pat. No. 5,184,578 and is hereby incorporate herein by reference. Measured phase  26  is subjected to the control law  18  initially wherein a Proportional-Integral (PI) process occurs. PI process is the sum of two sub-processes. The first sub-process includes amplification; and the second sub-process includes integration. Measured phase is further subjected to phase compensation, where control signal is adjusted to increase the overall control system stability before it is sent out to drive the actuator, in the instant case, a variable force solenoid.  
         [0032]     As can be appreciated, in a VCT system having a controller for controlling phase relationship between two shafts based on angular information of shafts, there is need for the controller to treat sensed information in an orderly fashion.  
       SUMMARY OF THE INVENTION  
       [0033]     In an Embedded Control System, a controller is provided to determine and adjust information derived from a tooth wheel having known teeth distributions.  
         [0034]     In an Embedded Control System, a method is provided to determine and adjust information derived from a tooth wheel having known teeth distributions.  
         [0035]     In an embedded VCT Control System, a controller is provided to determine and adjust information derived from a tooth wheel having known teeth distributions.  
         [0036]     In an embedded VCT Control System, a method is provided to determine and adjust information derived from a tooth wheel having known teeth distributions.  
         [0037]     Accordingly, in a VCT system having a phaser for adjusting an angular relationship between a crank angle of the crank shaft and a cam angle of a cam shaft, the system further has a controller adapted to determine the angular relationship based on equally spaced teeth distributed upon the circumference of at least one tooth wheel coupled to either the crank shaft or the cam shaft, a method is provided. The method includes the steps of: a) providing a tooth wheel having a physically non-symmetrical tooth distribution on the circumference of the wheel; and b) adjusting the physically non-symmetrical tooth distribution into a symmetrical tooth distribution for further processing by the controller.  
         [0038]     Accordingly, in a VCT device having a phaser for adjusting an angular relationship between a crank angle of the crank shaft and a cam angle of a cam shaft, the system further has a controller adapted to determine the angular relationship based on equally spaced teeth distributed upon the circumference of the crank shaft and the cam shaft respectively, a method is provided. The method includes the steps of: providing a crank tooth wheel having known tooth distribution; providing a cam tooth wheel having known tooth distribution; and using the controller for adjusting values known to the controller as needed. 
     
    
     BRIEF DESCRIPTION OF THE DRAWING  
       [0039]      FIG. 1  shows a prior art control loop.  
         [0040]      FIG. 1A  shows a 3 tooth cam wheel.  
         [0041]      FIG. 2  shows a set of pulse trains.  
         [0042]      FIG. 3  shows a pulse wheel with equally spaced teeth  FIG. 4  shows a pulse wheel with asymmetrically spaced teeth  FIG. 5  shows an adjustment of an asymmetrical wheel.  
         [0043]      FIG. 6  shows a schematic for recording a set of time stamps.  
         [0044]      FIG. 7  shows a first flowchart depicting the present invention, in which a crank wheel is non-symmetric, and a cam wheel is symmetric.  
         [0045]      FIG. 8  shows a second flowchart depicting the present invention, in which a crank wheel is symmetric, and a cam wheel is non-symmetric.  
         [0046]      FIG. 9  shows a third flowchart depicting the present invention, in which a generic method suitable for a crank tooth wheel.  
         [0047]      FIG. 10  shows a fourth flowchart depicting the present invention, in which a generic method suitable for a cam tooth wheel. 
     
    
     DESCRIPTION OF THE PREFERRED EMBODIMENT  
       [heading-0048]     Phase Measurement Over 2 Crank Revolutions:  
         [0049]     In an Embedded Control System, which are used primarily for control of a VCT system, pulse wheels are mounted on both the crankshaft and the camshaft(s) of an internal combustion engine. These pulse wheels are chosen based on what sort of original equipment exists on the engine, what update rate is desired, and the basic relationship that exists between cam and crankshafts. This relationship may be such that for every 2 revolutions of the crank, the cam revolves once. Therefore, in an arbitrary design of the present VCT system, a 4 pulse/rev wheel for the crankshaft, and an 8 pulse/rev wheel for the camshaft(s) are chosen. Due to the relationship between the cam(s) and crank shafts, the frequency of pulses from the pulse wheels is equal, i.e. at 4 pulses/crank-revolution. Calibration and cam position measurement based on this scheme are documented in U.S. Pat. Nos. 5,289,805 and 5,184,578, which are hereby incorporated herein by reference. Within these documents, the cam position measurement scheme implicitly requires there to be a relationship of twice the number of pulses on the camshaft pulse wheel, compared to the crankshaft pulse wheel. Further, the scheme implicitly requires that there be an even number of camshaft teeth. This is a result of the 2:1 relationship. A counter example would be to arbitrarily pick 5 cam teeth (5 pulses/cam-revolution.), one would have to have 2.5 teeth on the crankshaft. It is physically impossible to have ½ of a tooth. Therefore, based on this current design, having odd numbers of teeth on the cam pulse wheel is not practical.  
         [0050]     A solution to the above problem or counter example is to count the crank teeth over two revolutions. When the crank teeth is counted over two revolutions, the result is that instead of a 4/8 tooth combination, with the 2:1 relationship, one can think of it as a 8/8, with a 1:1 relationship.  
         [0051]     Therefore, in a 3 tooth cam wheel, the 3 crank teeth wheel is counted over two revolutions, instead of 1½ teeth over just 1 crank revolution see  FIG. 1A . Referring to  FIG. 1A , a cam wheel  100  having three teeth  100   a ,  110   b , and  100   c  is provided on the circumference of wheel  100 . teeth  100   a ,  110   b , and  100   c  are evenly distributed upon the circumference of wheel  100 .  
         [0052]     This case can be expended to the multiples of numeral  3 . For example, a 36-1 pulse/rev. crank wheel (36 evenly spaced teeth, with one missing, as an index) is used. Under normal operation, 4 tooth crank, 8 tooth cam, one can count one tooth on the 36-1 wheel, skip 8 teeth, and count the next one, etc. So, one counts every 9 th  tooth, and come up with 4 pulses/revolution. With the 3 tooth case, this also works, because over 2 crank revolutions, one can get 72 pulses, which is evenly divided by three. Therefore, one can count every 24 th  tooth. As a result, the software portions of a controller can start by counting tooth  5 , and then 29, both in the first revolution. To find the next tooth, one can add 24 to that number, and find that: 
 
29+24=53 
 
         [0053]     The next tooth ends up on the second crank revolution, so, by subtracting  36  (the number of teeth in 1 whole revolution): 
 
53−36=17 
 
         [0054]     It is found that the 3 rd  tooth counted is the logical 17 th , on the 2 nd  crank revolution. And figuring the next tooth 
 
(17+24)−36=5 
 
         [0055]     Therefore, one ends right back where one started, i.e. at tooth  5 . One keeps track of which crank revolution one is on by counting the index (which may be a missing tooth or an extra tooth or any designated tooth on the wheel) tooth on the crank wheel. If it is odd, then it is crank revolution 1, if it is even, it is crank revolution 2. See  FIG. 2  for a similar example with a 12 tooth crank wheel and a 3 tooth cam wheel.  
         [0056]     Referring to  FIG. 2 , a set of pulse trains is shown. A crank pulse train is provided on the top portion. Two revolutions of crank shaft are shown. The darkened pulses, i.e. pulses  2 ,  10 , and  6  are the acknowledged teeth by the controller via a sensor. The non-darkened pulses are the skipped teeth. In other words, for a twelve teeth crank wheel, only teeth  2  and  10  of the first revolution, and tooth  6  of the second revolution are acknowledged and counted.  
         [0057]     Further, a cam pulse train having three pulses per cam revolution is provided on the middle portion of  FIG. 2 . The three cam pulses are at the same frequency as the three acknowledged pulses of the crank pulse train.  
         [0058]     Due to the inherent dependency on counting the correct numbers of teeth, and the possibility of erroneous pulse events, one can add robustness to this scheme by including an index tooth on the cam wheel. The index on the crank serves to synchronize each single crank revolution, but because one counts over two revolutions, one may loose synchronization from 1 revolution to another. However, since the cam turns ½ the speed of the crank, a once-per-rev index on the cams provides a once-per-two-revolutions on the crank. So, by simply using a 3+1 cam tooth wheel, this arrangement of counting teeth over two crank revolutions is sufficiently robust and versatile.  
         [heading-0059]     Non-Symmetrical Tooth Spacing—Concept:  
         [0060]     Using tooth wheels with equally spaced teeth is probably the most straightforward way of speed and phase measurement of a rotating system ( FIG. 3 ). Referring to  FIG. 3 , a tooth wheel  200  having four equally spaced teeth  200   a ,  200   b ,  200   c , and  200   d  is provided on the circumference of wheel  200 .  
         [0061]     However, on occasion, the tooth wheels will have tooth spacing that is inconsistent or asymmetrical. This is also referred to as Non-Symmetrical Tooth Spacing ( FIG. 4 ). Referring to  FIG. 4 , an asymmetrical tooth wheel  300  is shown. Wheel  300  has four teeth on the circumference thereon. Tooth  300   a  is space 60 degrees from tooth  300   b  and 120 degrees from tooth  300   d . Tooth  300   b  is spaced 60 degrees from tooth  300   c , which is spaced 120 degrees from tooth  300   d.    
         [0062]     This invention requires a 2:1 ratio of cam to crank teeth. If a single crank revolution is insufficient for measurement purposes, the: Phase Measurement over 2 Crank revolutions described supra can be used. It is noted that this concept is an enhancement to the basic VCT cam position measurement method described in U.S. Pat. No. 5,289,805, Self-Calibrating Variable Camshaft Timing System. The basic equation stated within is:  
         camposition   ⁡     (   phase   )       =         cam   timelagfromcrankpulse     timebetweencrankpulses     ×       360   ⁢           ⁢   degrees     N           
        (1) 
 
 where N is the number of evenly spaced teeth on the tooth wheel. The right side of the equation divides N into 360, which denotes degrees between teeth that is at consistent degree spacing. This spacing is used to scale the left side of the equation so that it represents a cam position (phase), in degrees relative to the crank. This equation works very well for phase measurement, and is extremely robust. Robust is defined as a condition wherein erroneous information are less likely to cause a fault. Robust also denotes simplicity in that a routine is easy to implement, and thus, more likely to be implemented in software without coding errors. Complex routines are harder to test and verify working in software. 
       
 
         [0065]     The present invention teaches a Non-Symmetric tooth spacing using this same equation, and only modifies the parameters that the equation uses. In other words, exiting controller method can still be used. During the pulse-interrupt routines, an adjustment to the measured parameters is performed, in which a Non-symmetric tooth wheel is transformed in the eyes of the controller to look symmetric. For example, if there are 5 teeth on the pulse-wheel, it will adjust the measured numbers such that it represents 360/5=72 degrees between the required teeth.  
         [0066]     Starting with known spacing between the teeth on a pulse-wheel, the degree change from each tooth location may be determined; such that the physical asymmetrical teeth distribution can be transformed or adjusted to symmetrical tooth spacing as far as the controller is concerned. Using our 5-tooth wheel as an example, if the first tooth was at 50 degrees, our change would be +22 degrees, placing it at 72 degrees. If our next tooth was at 150 degrees, our change would be −6 degrees, bringing it back to 144 degrees, and so on. Since the processor acknowledges each tooth by capturing the system time, one need to make a correlation from time between pulses to a change in degrees.  
         [heading-0067]     Crank Non-Symmetric, Cam Symmetric  
         [0068]     Working from equation (1), one will refer to time between crank pulses as CrankPeriod. This is calculated as follows: 
 
 CrankPeriod=TC−CrankTimeStamp   (2) 
 
         [0069]     Where TC is the Timer Capture triggered by the crank pulse, and CrankTimeStamp is the Timer Capture recorded on the previous crank pulse. Right after this equation, one need to update the CrankTimeStamp, which is simply: 
 
CrankTimeStamp=TC  (3) 
 
         [0070]     The system time when the last cam pulse occurred will be referred to as TC(timer capture). In equation (1): 
 
time lag from crank pulse ( CamTimeLag )= TC−CrankTimeStamp   (4) 
 
         [0071]     One other association to make is the right side of equation (1), which works out to be the degree spacing between teeth in N number of evenly spaced teeth. 
 
 Even   —   tooth   —   spacing =360 degrees/ N  number of teeth  (5) 
 
         [0072]     Equation (5) can be calculated in advance, and does not change in a given pulse-wheel configuration. Equations (2-4) are executed in the order they are presented. So far, there is nothing new about the equations that have been mentioned. Equation (1) is used like it normally used. To adapt to the present invention, equation (2) is executed normally. Since this equation will not give a correct value with a non-symmetric pulse-wheel, another equation is required to adjust the tooth spacing to mimic an evenly spaced pulse-wheel.  
               CrankPeriod   adj     =         Even_tooth   ⁢   _spacing       deg   .   spacingofcurrentgap       ×   CrankPeriod             (   6   )             
 
         [0073]     CrankPeriod adj  is a newly adjusted value. Instead of using equation (3), one substitute it for this equation: 
 
 CrankTimeStamp   adj   =CrankPeriod   adj   +CrankTimeStamp   (7) 
 
         [0074]     It is important to clarify that CrankTimeStamp adj  is the correct value for the current pulse, but CrankTimeStamp is actually from the previous pulse calculations. In this fashion, CrankTimeStamp adj  will be the CrankTimeStamp for the next time one execute these equations. Both of these equations which adjust the readings to represent an evenly spaced tooth wheel are executed in the crank pulse-wheel interrupt routine in the software. This takes place immediately after the measurement of CrankPeriod ( FIG. 5 ).  
         [0075]     Referring to  FIG. 5 , an exemplified adjustment of an asymmetrical wheel  400  is shown. The distribution of the teeth thereon can be considered as analogous to that of  FIG. 4 . Wheel  400  possesses four asymmetrically distributed teeth. The 4 teeth are tooth  401 , tooth  402 , tooth  403 , and tooth  404 . Wheel  400  rotates clockwise and the asymmetrically distributed teeth thereon is sensed by sensor  405 . as can be seen, tooth  401  fits the correct spacing or the evenly distributed tooth space. Therefore, no adjustment is required.  
         [0076]     For tooth  402 , a backward or counter clockwise movement of 30 degrees such that tooth  402  is at 90 degrees angular distance from both tooth  401  and tooth  403  is accomplished. One can designate the imaginary or non-physical tooth  402 ′. Tooth  402 ′ is imaginary in that a controller such as an engine control unit (ECU) of an internal combustion engine may be taught to think that teeth on wheel  400  is still evenly or symmetrically distributed due the location of the imaginary or non-physical tooth  402 ′.  
         [0077]     Similar to tooth  401 , and since tooth  403  is 180 degrees from tooth  401 , it fits the correct spacing and is not adjusted. Further, with regard to tooth  404 , similar to tooth  402  it is adjusted or moved forward or clockwise 30 degrees so that it lies 90 degrees to its adjacent teeth.  
         [0078]     Assuming the angular relationship as shown in  FIG. 5  and assuming wheel  400  is a crank wheel, one arrives at the following:  
         [0079]     For tooth 1: no adjustment required;  
       Tooth  2:       
         CrankPeriod     1   ⁢     –2   ′         =         90   ⁢     °   ⁡     (   evenspacing   )           60   ⁢     °   ⁡     (   currentspacing   )           *     CrankPeriod     1   ⁢   –2             
  CrankTimeStamp   2′   =crankPeriod   1-2′   +CrankTimeStamp   1    
         [0080]     Tooth 3: no adjustment required since it lies 180 degrees from tooth  1 .  
       Tooth  4:       
         CrankPeriod     3   ⁢     –4   ′         =         90   ⁢     °   ⁡     (   evenspacing   )           120   ⁢     °   ⁡     (   currentspacing   )           *     CrankPeriod     3   ⁢   –4             
  CrankTimeStamp   4′   =crankPeriod   3-4′   +CrankTimeStamp   3    
         [0081]     Note that the calculation of CrankPeriod 1-2  &amp; CrankPeriod 3-4  is not shown, but is implied through equation (2).  
         [0082]     There also needs to perform some additional operations in each of the cam pulse-wheel interrupt routines. The normal equation in the cam interrupt routines is: 
 
 CamTimeLag=TC (current system timer capture)− CrankTimeStamp   (8) 
 
         [0083]     This is used in this configuration as is, but the CrankTimeStamp is the new adjusted value. However, additional checks are made based on the results of this equation:  
         [0084]     If (CamTimeLag&lt;0) 
 
 CamTimeLag   adj   =CamTimeLag+CrankPeriod   adj   (9) 
 
         [0085]     If (CamTimeLag&gt;CrankPeriod adj ) 
 
 CamTimeLag   adj   =CamTimeLag−CrankPeriod   adj  
 
         [0086]     These checks will account for an adjusted crank tooth which either moves in front of, or behind the time in which the cam tooth is measured. Since the CamTimeLag is a measure of the current time (in a cam interrupt routine) back to when the last crank pulse occurred, if the crank pulse is adjusted to occur later in time, the calculations will not represent the correct phase unless adjusted based on the condition. Also, if after equation (8) one do not meet the need to be adjusted, based on the checks in (9), then one will use the non-adjusted CamTimeLag measurement. Otherwise, one will use the adjusted value in our cam position (phase) measurement equation, (1).  
         [0087]     Referring to  FIG. 6 , a cam wheel  500  is provided in which a set of teeth  502  (only four shown) is distributed on the circumference of wheel  500 . The set of teeth  502  may be symmetrically or asymmetrically distributed. A sensor  504  is disposed to sense each tooth and create a corresponding pulse for a controller to record a cam time stamp therein. As can be appreciated, the controller is capable of recording a first value therein corresponding to a first pulse, and a second value therein corresponding to a second pulse. The timing between pulses can be recorded by the controller for controlling purposes.  
         [0088]     Similarly, a crank wheel  506  is provided in which a set of teeth  508  (only four shown) is distributed on the circumference of wheel  506 . The set of teeth  508  may be symmetrically or asymmetrically distributed. A sensor  510  is disposed to sense each tooth and create a corresponding pulse for a controller to record a crank time stamp therein. As can be appreciated, the controller is capable of recording a first value therein corresponding to a first pulse, and a second value therein corresponding to a second pulse. The timing between pulses can be recorded by the controller for controlling purposes.  
         [0089]     The cam time stamp and crank time stamp are used by the controller  512  for use and control by the controller  512 . Controller  512  may be any type of controller including an Engine Control Unit (ECU) of an internal combustion engine. Time stamp is a measured value. By way of an example: when a pulse arrives at the processor of controller from a sensor, the Interrupt routine looks at the system clock, and records the time.  
         [0090]     Referring to  FIG. 7 , a flowchart  700  depicting a physical layout wherein the crank shaft has a non-symmetric tooth wheel and the cam shaft has a symmetric tooth wheel. An interrupt is initially generated for at the start of the flow. Crank period is set as the difference between TC and the measured crank time stamp (Step  704 ). TC denotes the timer capture, which mathematically presents the same thing as the time stamp. In the order of things, when the sensor is excited by the passing tooth, the interrupt hardware/software in the controller captures the system time in a system register (variable). This process is termed the Timer Capture. For example, the above mentioned hardware may execute the interrupt routine, and then the timer capture value is copied to the Timestamp variable. Instead of using Timer Capture for the calculations, the present invention uses a separate variable, which is robust in software design, wherein TC (just received)—Timestamp (from last time) is executed right before we manually copy TC over to Timestamp. The adjusted crank period is set as equal to the even tooth spacing of the current gap in degrees. Even tooth spacing is defined as 360 degrees divided by the total number of teeth on a sensor wheel. Current gap is defined as spacing, in degrees, between teeth in the real physical relationship, i.e. not adjusted by the controller. The quotient in turn is multiplied by crank period value (Step  706 ). Crank time stamp is set as the sum of the adjusted crank time period and the crank time stamp (Step  708 ). As can be appreciated, due to the asymmetric nature of the crank wheel, and the fact that the asymmetric distribution of the teeth is know, an adjust can be done to reflect or make the controller aware of the non-symmetric distribution and still using the system clock with the same level of accuracy by spacing the tooth signal apart just as was done when the teeth are physically apart.  
         [0091]     At this juncture, a first determination is performed (Step  710 ), if cam time lag value is less than zero, the adjusted cam time lag value is set as the summation of the known cam time lag and the adjusted crank period (Step  712 ). The subroutine is done and flow reverts back toward phase measurement (Step  714 ). Cam Time Lag is defined as the time difference from latest cam timestamp to the latest crank timestamp. As this time difference changes, this represents the change in phase between the crank and cam. One can either measure from crank to cam, or cam to crank (in this case, we arbitrarily use cam to crank), the only difference is the sign of the number.  
         [0092]     However, if cam time lag is less than zero, a second determination (Step  716 ) is performed. The second determination determines whether cam time lag is greater than the adjusted crank period (Step  716 ). If cam time lag is greater than the adjusted crank period, the adjusted cam time lag is set as the difference of cam time lag and the adjusted crank period (Step  718 ). If cam time lag is less than the adjusted crank period, the flowchart  700  flows toward the phase measurement (Step  714 ).  
         [heading-0093]     Crank Symmetric, Cam Non-Symmetric  
         [0094]     In this case, the crank pulse-wheel interrupt routine is unchanged. The calculations of CrankPeriod and CrankTimeStamp are executed as normal: 
 
 CrankPeriod=TC−CrankTimeStamp  //Current system time−last time  (10) 
 
CrankTimeStamp=TC //Update system time  (11) 
 
         [0095]     One may note that equations (10 &amp;11) are the same as equations (2 &amp; 3). For the case of the cam pulse-wheel interrupt routine, there is a replacement of the previous equation (8), plus it also incorporates the checks that are shown above (9).  
                     *   CamTL     =       ⁢     TC   -     *   CrankTS     -                     ⁢       {       Current_spacing     Even_tooth   ⁢   _spacing       -   1     }     ×   CrankPeriod                   (   12   )             
 
         [0096]     *CamTL and *CrankTS are abbreviations of CamTimeLag and CrankTimeStamp, respectively.  
         [0097]     The calculation checking that one incorporate is similar to the above case.  
         [0098]     If (CamTimeLag&lt;0) 
 
 CamTimeLag   adj   =CamTimeLag+CrankPeriod   adj   (13) 
 
         [0099]     If (CAMT 0 &gt;CrankPeriod adj ) 
 
 CamTimeLag   adj   =CamTimeLag−CrankPeriod   adj  
 
         [0100]     Referring to  FIG. 8 , a flowchart  800  depicting a physical layout wherein the crank shaft has a symmetric tooth wheel and the cam shaft has a non-symmetric tooth wheel. An interrupt is initially generated for at the start of the flow. Crank period is set as the difference between TC and the measured crank time stamp (Step  804 ). Crank time stamp is set as TC (Step  806 ). Cam time lag is set as the difference between TC and Crank time stamp and the relative adjustment of tooth spacing depicted in time. In other words, Cam time lag equals TC minus crank time stamp minus the quotient or the ratio of the current spacing (the actual physical layout on the tooth wheel) and the desired even tooth spacing for the controller to recognize and process. The ratio is in turn multiplied by the crank period.  
         [0101]     At this juncture, a first determination is performed (Step  810 ), if cam time lag value is greater than zero, the adjusted cam time lag value is set as the summation of the known cam time lag and the adjusted crank period (Step  812 ). The subroutine is done and flow reverts back toward phase measurement (Step  814 ). However, if cam time lag is less than zero, a second determination (Step  816 ) is performed. The second determination determines whether cam time lag is greater than the adjusted crank period (Step  816 ). If cam time lag is greater than the adjusted crank period, the adjusted cam time lag is set as the difference of cam time lag and the adjusted crank period (Step  818 ). If cam time lag is less than the adjusted crank period, the flowchart  800  flows toward the phase measurement (Step  814 ).  
         [heading-0102]     Crank Non-Symmetric, Cam Non-Symmetric  
         [0103]     In the case where both the crankshaft and camshafts have Non-symmetric tooth spacing, one would use both sets of “adjustment” equations listed above to have both the crank and cams appears as evenly spaced teeth. In other words, both a crank interrupt and a cam interrupt are performed, in which  FIGS. 9 and 10  describe respectively.  
         [0104]     Referring to  FIG. 9 , a flow chart  900  depicting a crank pulse interrupt is depicted. A controller initiates crank pulse interrupt  902  and crank pulse interrupt starts. Crank period is set as the difference between TC and crank time stamp (Step  904 ). At this juncture, a determination as to whether the current spacing of crank pulse wheel is symmetric is performed (Step  904 ). It is noted that typically the shape of a tooth wheel is known in that the controller can set or reset to reflect the fact or the actual physical shape of the tooth wheel. If the current spacing is symmetric, the crank time stamp is set as equal to TC (Step  908 ). The interrupt subroutine ends (Step  910 ). However, If the current spacing is non-symmetric, the crank period needs to be adjusted for the controller. The adjusted crank period is set to be equal to the product of a ratio multiplied by crank period. The ratio reflects the non-symmetrical tooth distribution on the tooth wheel and mathematically equal to even tooth spacing divided by the current gap between the relevant adjacent teeth in degrees or radius (Step  912 ). At this juncture, Crank time stamp needs to be adjusted as well. The adjusted crank time stamp is set as the summation of the adjusted crank period and the crank time tamp known the controller up to this point (Step  914 ). The non-symmetric nature of the crank pulse wheel being thus reflected, the routine ends ( 910 ).  
         [0105]     Referring to  FIG. 10 , a flow chart  1000  depicting a cam pulse interrupt is depicted. A controller initiates cam pulse interrupt  1002  and cam pulse interrupt subroutine starts. At this juncture, a first determination is performed as to whether the current cam wheel is symmetric (Step  1004 ). If the cam wheel is symmetric, the cam time lag is set as the difference between TC and crank time stamp (Step  1006 ). If the cam wheel is non-symmetric, the cam time lag is set as the difference of TC minus crank time stamp and minus the product of a factor and crank period. The factor is defined as a ratio minus one, in which the ratio is the ratio of the current spacing (uneven) and the even tooth spacing of the controller (Step  1008 ). At this juncture, a second determination is performed as to whether the cam time lag value is less than zero (Step  1010 ). If the cam time lag value is less than zero, the cam time lag needs to be adjusted. The adjusted cam time lag is set as the summation of cam time lag (currently known) and the currently known adjusted crank period (Step  1012 ). If the cam time lag value is not less than zero, a third determination is performed as to whether cam time lag is greater than the adjusted crank period (Step  1014 ). If cam time lag is greater than the adjusted crank period, the adjusted cam time lag is set as the known cam time lag plus the adjusted crank period (Step  1016 ). If cam time lag is not greater than the adjusted crank period, the crank time stamp value is set as the current TC value (Step  1018 ).  
         [0106]     This invention requires there be twice the number of teeth on the camshaft, such that the frequencies of pulses entering the controller are the same. To enable this invention with a number of teeth that does not follow this rule, one may need to incorporate this with two other concepts, Tooth Skipping and Phase Measurement over 2 crank revolutions as discussed supra.  
         [0107]     It is very important to keep track of which tooth one is counting. One always needs to know what tooth is being counted, and what size space occurs from one tooth to the next. In this scheme, if there were only slight variation between tooth spacing, it would be advantageous to include a unique index tooth, which can be easily identified and used to re-synchronize the tooth count.  
         [0108]     One embodiment of the invention is implemented as a program product for use with a computer system such as, for example, the schematics shown in  FIG. 6  and described below. The program(s) of the program product defines functions of the embodiments (including the methods described below with reference to  FIGS. 7-10  and can be contained on a variety of signal-bearing media. Illustrative signal-bearing media include, but are not limited to: (i) information permanently stored on in-circuit programmable devices like PROM, EPPOM, etc; (ii) information permanently stored on non-writable storage media (e.g., read-only memory devices within a computer such as CD-ROM disks readable by a CD-ROM drive); (iii) alterable information stored on writable storage media (e.g., floppy disks within a diskette drive or hard-disk drive); (iv) information conveyed to a computer by a communications medium, such as through a computer or telephone network, including wireless communications, or a vehicle controller of an automobile. Some embodiment specifically includes information downloaded from the Internet and other networks. Such signal-bearing media, when carrying computer-readable instructions that direct the functions of the present invention, represent embodiments of the present invention.  
         [0109]     In general, the routines executed to implement the embodiments of the invention, whether implemented as part of an operating system or a specific application, component, program, module, object, or sequence of instructions may be referred to herein as a “program”. The computer program typically is comprised of a multitude of instructions that will be translated by the native computer into a machine-readable format and hence executable instructions. Also, programs are comprised of variables and data structures that either reside locally to the program or are found in memory or on storage devices. In addition, various programs described hereinafter may be identified based upon the application for which they are implemented in a specific embodiment of the invention. However, it should be appreciated that any particular program nomenclature that follows is used merely for convenience, and thus the invention should not be limited to use solely in any specific application identified and/or implied by such nomenclature.  
         [0110]     Accordingly, it is to be understood that the embodiments of the invention herein described are merely illustrative of the application of the principles of the invention. Reference herein to details of the illustrated embodiments are not intended to limit the scope of the claims, which themselves recite those features regarded as essential to the invention.