Apparatus and method for calibrating a timing circuit in a remote keyless entry system using programmable commands

Information

  • Patent Grant
  • 6643598
  • Patent Number
    6,643,598
  • Date Filed
    Friday, September 28, 2001
    23 years ago
  • Date Issued
    Tuesday, November 4, 2003
    21 years ago
Abstract
A method of calibrating a remote keyless entry system adjusts a timing circuit that is a unitary part of a microprocessor. The method drives a plurality of inputs to the microprocessor to a logic state, monitors the output of the microprocessor, and programs a calibration factor within the microprocessor based on the output of the microprocessor. The calibration factor controls an output frequency of the timing circuit.
Description




BACKGROUND




This invention relates to a wireless transmitter, and more particularly, to a wireless transmitter used with a Keyless Entry System.




A Keyless Entry System (“RKE”) allows a user to lock and unlock doors, sound a panic alarm, program seat and mirror positions, open a trunk, and/or perform other functions using a transmitter.




In Keyless Entry Systems, one or more unique identifying codes are programmed into the transmitter. In these Keyless Entry Systems, the transmitter and a receiver use a defined communication protocol. The communication protocol defines the timing of the bit stream and the tolerances. The transmitter can include a microprocessor that transmits according to a communication protocol. In some Keyless Entry Systems an external oscillator is required to provide a stable and accurate clock reference to the microprocessor. These oscillator circuits can comprise multiple parts that include an external crystal or an external resonator.




In some instances, multiple parts that include an external crystal or an external resonator, for example, can decrease the durability and increase the complexity, the size, the cost of manufacturing, and the cost of assembly of some Keyless Entry Systems. The increased cost of these Keyless Entry Systems can be especially high when large numbers of Keyless Entry Systems are manufactured and/or assembled.











BRIEF DESCRIPTION OF THE DRAWINGS




In the figures, like reference numbers designate similar parts through different views.





FIG. 1

is a block diagram of a presently preferred embodiment.





FIG. 2

is an exemplary graph illustrating oscillator discontinuities.





FIG. 3

is an exemplary timing diagram of a preferred digital data stream generated by a preferred transmitter.





FIGS. 4-6

are flow diagrams of a preferred calibration routine of the preferred transmitter.





FIGS. 7-9

are flow diagrams of a preferred operation of a preferred test fixture.





FIGS. 10A and 10B

are exemplary graphs of select outputs of the presently preferred test fixture and presently preferred transmitter.





FIG. 11

is a second exemplary timing diagram of a preferred digital data stream generated by the preferred transmitter.





FIG. 12

is an exemplary flow diagram illustrating a preferred process for transmitting data.











SUMMARY




A presently preferred method of calibrating a remote keyless entry system calibrates a presently preferred timing circuit that is a unitary part of a presently preferred microprocessor. The presently preferred method drives a plurality of inputs to the presently preferred microprocessor to a logic state, monitors an output of the presently preferred microprocessor, and programs a calibration factor within the presently preferred microprocessor based on the output of the presently preferred microprocessor. The calibration factor controls an output frequency of the presently preferred timing circuit.




Other presently preferred methods validate a bit timing output of a presently preferred transmitter coupled to the presently preferred microprocessor by monitoring a digital signal generated by the presently preferred microprocessor. Alternative presently preferred methods monitor a current drawn by the presently preferred transmitter when the presently preferred transmitter is in a sleep mode




Other apparatuses, systems, methods, features, and advantages of the presently preferred embodiments will become apparent to one with skill in the art upon examination of the figures and detailed description. It is intended that all such additional apparatuses, systems, methods, features and advantages be included within this description, be within the scope of the invention, and be protected by the accompanying claims.




DETAILED DESCRIPTION OF THE PRESENTLY PREFERRED EMBODIMENTS




The presently preferred Remote Keyless Entry System (“RKE”) provides users with a convenient apparatus and method for controlling vehicle or other remote structures and systems. The presently preferred Remote Keyless Entry System allows a presently preferred transmitter to be concealed in a housing, a key, a card, a fob, or another device. When activated, the presently preferred transmitter communicates with a receiver or transceiver. Preferably, the communication between the presently preferred transmitter and receiver authorizes access to a vehicle or another remote structure or system. The presently preferred apparatus and method is preferably mechanically activated. However, a preferred alternative apparatus and method can be a unitary part of a hands free system that automatically authorizes access or actuates a function when the transmitter is in proximity to the receiver. Alternatively, the presently preferred apparatus and method can be voice activated.





FIG. 1

is a block diagram of a presently preferred transmitter


100


in communication with a presently preferred test fixture (“tester”)


102


. As shown, the presently preferred transmitter


100


, which in other presently preferred embodiments is a transceiver, includes a microprocessor


104


. Preferably, the presently preferred microprocessor


104


is a unitary part of a presently preferred timing circuit


106


. The presently preferred timing circuit


106


preferably generates a varying output at a controlled frequency without using a crystal (“crystal-less”). This constant or adjustable output is referred to as a “clock” frequency in this detailed description. Preferably, the “clock” frequency drives only the microprocessor


104


. However, in other presently preferred embodiments the “clock” frequency can drive other circuits or devices.




In one presently preferred embodiment, the presently preferred timing circuit


106


comprises an array of capacitors that are individually selected by transistors under the control of an oscillator calibration (“OSCCAL”) register resident to the microprocessor


104


. In this presently preferred embodiment the oscillator calibration register is six bits long, although other register lengths can also be used. Preferably, the six bits represent binary count values that range from zero to sixty-three (“000000” to “111111”). Thus, the greatest number of bit changes occurs through the transition from fifteen to sixteen (“001111” to “010000”), from thirty-one to thirty-two (“011111” to “100000”), and from forty-seven to forty-eight (“101111” to “110000”).




As shown in

FIG. 2

, areas of discontinuity can occur near or between these transition values. The exemplary graph further shows that the pulse width of the “clock” varies with variations in voltage. Thus, a proper timing frequency or “clock” is preferably calibrated through at least a desired frequency spectrum which can include one or more areas of discontinuity. To compensate for voltage variations, the “clock” is preferably calibrated through an expected operating voltage range.




I. K-Factor




As shown in

FIG. 3

, the bit times of data transmitted from the presently preferred transmitter


100


is based on an instruction cycle counting. An instruction cycle, for a given microprocessor at a preferred operating frequency, is a known amount of time needed to execute one instruction. For example, it can take one microsecond to execute an instruction when a preferred microprocessor is operating at four megahertz.




Preferably, a bit time period of the data transmitted from the presently preferred transmitter


100


is comprised of multiple periods of time needed to execute a fixed instruction and one or more adjustable instructions. Preferably, a fixed instruction is an instruction that performs a necessary function. In this presently preferred embodiment, a debounce instruction is a fixed instruction. Preferably, an adjustable instruction is a delaying instruction that is executed to maintain a substantially constant bit time period. In this presently preferred embodiment, the number of adjustable instructions that must be executed to maintain a substantially constant bit time period is called a K-factor. In this presently preferred embodiment, the K-factor is an integer constant. In alternative preferred embodiments, the K-factor can comprise one or more real numbers programmed to avoid one or multiple frequency discontinuities that occur through a frequency range.




More precisely, in this presently preferred embodiment the K-factor generates a substantially constant time T


2


added to a debounce time T


1


. Preferably the substantially constant time T


2


is a period of time that avoids a frequency discontinuity and further synchronizes communication with a receiver that is integrated within a vehicle, house, enclosure, or other device or structure. For a given operating frequency, the substantially constant time T


2


changes when the presently preferred transmitter


100


is calibrated.




Preferably, T


1


represents a time needed to detect a switch activation. In this presently preferred embodiment, when the presently preferred transmitter


100


is activated by a switch the opening and closing of that switch may not generate a uniform signal as the switch output transitions between logic states. Instead, the transition can comprise a transient that results from the switch contacts “bouncing” during the switch transition. To ensure that the transient does not cause the microprocessor


104


to detect phantom switching events, preferably a debounce period T


1


is added to the constant time period T


2


in this presently preferred embodiment. Preferably, during this debounce period an input port is sampled and occurring commands are queued. This guarantees that no switch event is missed during transmission.




II. Calibration




Although communication between the presently preferred transmitter


100


and receiver is preferably an asynchronous process, the “clock” of the presently preferred timing circuit is preferably adjusted to avoid frequency discontinuities and compensated for voltage and temperature variations. As shown in

FIG. 4

, a presently preferred calibration process can be used to generate data used for adjusting the presently preferred timing circuit


106


in the presently preferred transmitter


100


during a normal operation. The presently preferred calibration process also validates the calibration data and triggers a transmission and validates the bit times.




As shown, the boxes outlined in continuous lines represent functions that are performed by the presently preferred transmitter


100


. The dashed boxes represent the functions that are performed by the presently preferred test fixture


102


.




Referring to

FIGS. 4-6

, the presently preferred calibration process begins at act


400


. At act


400


, the presently preferred transmitter


100


is coupled to a power source such as a programmable power supply


116


. At act


402


, the presently preferred transmitter


100


is awakened. Preferably, the presently preferred test fixture


102


programs the content of the oscillator calibration register with a starting value and further programs a calibration register with a calibration value, such as “DOH.” Preferably, the oscillator calibration register and the calibration register are retained in a memory


108


resident to the microprocessor


104


. Preferably, the memory is an electrically erasable read only memory (“EEPROM”), although other programmable memories can be used in alternative preferred embodiments.




At act


404


, the presently preferred transmitter


100


reads the calibration register. When an expected value is read, such as a “DOH,” the presently preferred calibration process begins, otherwise the presently preferred transmitter


100


operates in a normal mode. At act


404


the calibration process generates a look up table in the EEPROM


108


. Preferably, the look up table retains the K-factor, and voltage and temperature compensation values that are used as references in a presently preferred timing circuit adjustment algorithm.




At act


406


, a memory pointer (e.g., EE_PTR), a K_flag, a number of voltages (e.g., Num Voltages), the K-factor (e.g., K) are initialized. The oscillator calibration register is initialized with a value so that discontinuities of the oscillator are avoided. Preferably, the memory pointer points to a first data entry within the look up table and the K-flag identifies whether the K-factor has been programmed. Preferably the K-factor ensures that the bit time period is substantially constant.




The presently preferred calibration process continues by adjusting and validating the K-factor before adjusting and validating the contents of the oscillator calibration register. Preferably, the presently preferred test fixture


102


programs the K-factor and the contents of the oscillator calibration register using Up/Down commands that tune the K-factor and the contents of the oscillator calibration register across a range of voltages that comprise the operating voltage range of the presently preferred transmitter


100


. By controlling two inputs of the presently preferred transmitter


100


, RC


0


and RC


1


, the presently preferred transmitter


100


generates an output pulse proportional to a software-timing loop. While the presently preferred transmitter


100


can transmit a signal within a broad frequency range, for the purpose of explanation the fixed timing loop is preferably tuned to about one millisecond at about a four megahertz “clock” frequency.




Referring again to

FIG. 4

, at act


408


a presently preferred transmitter


100


detects weather RC


0


and RC


1


are driven to a logic high state. If RC


0


and RC


1


are not at a logic high state, the presently preferred test fixture


102


drives RC


0


and RC


1


to a logic high state at act


416


. When RC


0


and RC


1


are driven to a logic high state, the presently preferred transmitter


100


responds by generating a reference pulse at act


410


. At act


412


, the presently preferred test fixture


102


determines whether the reference pulse width is greater than or less than a reference period. In this presently preferred embodiment, the reference period is preferably about one-millisecond, although other reference periods can also be used in alternative preferred embodiments.




When the presently preferred test fixture


102


determines the reference pulse width is longer than the reference period, the presently preferred test fixture


102


drives RC


0


to a logic high state and RC


1


to a logic low state at act


412


. When the presently preferred test fixture


102


determines that the reference pulse width is less than the reference period, the presently preferred test fixture


102


drives RC


0


to logic low state and RC


1


to a logic high state at act


412


. When the presently preferred test fixture


102


determines the reference pulse width is substantially equal to the reference period, the presently preferred test fixture


102


drives RC


0


and RC


1


to a logic low state at act


412


.




When RC


0


is at a logic high state and RC


1


is at logic low state, the presently preferred transmitter


100


evaluates the K-flag at acts


414


and


502


as seen in

FIGS. 4 and 5

. If the K-factor has not been programmed, the K_flag will be at a logic low state and the K-factor is incremented at act


504


. The presently preferred test fixture


102


then drives RC


0


and RC


1


high at act


420


. When the K-factor is programmed, the K_flag will be at a logic high state and the presently preferred transmitter


100


increments the contents of the oscillator calibration register at act


506


. Preferably, the presently preferred test fixture


102


then drives RC


0


and RC


1


to a logic high state at act


420


.




When the presently preferred test fixture


102


determines that the reference pulse width is shorter than the reference period, the presently preferred test fixture


102


drives RC


0


to logic low state and RC


1


to a logic high state at act


412


. At these states, the presently preferred transmitter


102


evaluates the K-flag at acts


424


and


506


. If the K-factor has not been programmed, the K_flag will be at a logic low state and the K-factor is decremented at act


508


. The presently preferred test fixture


102


then drives RC


0


and RC


1


to a logic high state at act


420


. When the K-factor is programmed, the K_flag will be at a logic high state and the presently preferred transmitter


100


decrements the contents of the oscillator calibration register at act


510


. The presently preferred test fixture


102


then drives RC


0


and RC


1


to a logic high state at act


420


.




When the presently preferred test fixture


102


determines the reference pulse width generated by the presently preferred transmitter


100


is substantially equal to the reference period, the presently preferred test fixture drives RC


0


and RC


1


to a logic low state at act


412


. In response, the presently preferred transmitter


102


evaluates the K-flag at act


512


. If the K-factor has not been programmed, the K-factor is written into the look up table within the memory


108


, such as the EEPROM, and the K-flag is programmed to a logic high state at act


514


. If the K-factor has been programmed before act


514


, at act


516


the contents of the oscillator calibration register and a memory write time are stored within the look up table stored within the memory


108


. Preferably, the memory write time is used to determine an ambient temperature of the presently preferred transmitter


100


. At act


518


, the memory pointer EE_PTR is incremented and the voltage count is decremented. The above presently preferred process is then repeated until the entire operating voltage range has been calibrated by tracking a voltage index as shown in act


520


. In this presently preferred embodiment, the calibration process steps through about two to three and one-tenth volts in increments of about 100 milli-volts as the presently preferred test fixture adjusts supply voltage at act


418


. In other alternative preferred embodiments, other voltage ranges and increments can be used.




Once the K-factor and contents of the oscillator calibration register have been established, and retained within the memory


108


, preferably an EEPROM, a DigitalOnly flag is programmed to a logic high state, the presently preferred calibration register is programmed with a second reference, here “A5H,” and RC


0


and RC


1


are driven to logic high states at acts


602


-


606


of FIG.


6


. In response, the presently preferred transmitter


100


generates a two milli-second digital pulse at act


608


that is analyzed and validated at act


610


by the presently preferred test fixture


102


. In this presently preferred embodiment, the two milli-second digital pulse is generated at act


608


and the calibration register is reprogrammed with a value other than the expected “DOH” value, here “AH5” at act


606


. If the two milli-second digital pulse is validated at act


610


, the DigitalOnly flag is programmed to a logic low state at act


422


of

FIG. 4

before the presently preferred calibration process is completed at act


426


of FIG.


4


. Preferably, this ends the calibration sequence.




In this presently preferred embodiment, after the EEPROM


108


has been programmed, the presently preferred test fixture


102


issues a pulse on RC


0


and RC


1


within about thirty two milliseconds to simulate a switching event. This switch event triggers the presently preferred transmitter


100


to transmit a radio frequency modulation signal. At act


610


, a radio frequency modulating signal is validated without a radio frequency circuit


110


transmitting a radio frequency signal. The data appears only on a digital output line. If validated, the presently preferred transmitter


102


goes into a normal operation mode. If verification fails as shown in

FIG. 6

, the presently preferred transmitter


100


is failed at act


612


.





FIG. 7

shows a flow diagram of a presently preferred operation of the presently preferred test fixture


102


. At act


702


, the presently preferred test fixture


102


powers up the presently preferred transmitter


100


to a preferred operating voltage generated by the programmable power supply


116


. In this presently preferred embodiment, the preferred operating voltage of the presently preferred transmitter


100


is about two and four tenths volts. After the presently preferred transmitter


100


is powered up, the voltage index is initialized (e.g., VoltageIndex=0) and two inputs to the presently preferred transmitter


100


, RC


0


and RC


1


are driven to a logic high state at act


702


. In this presently preferred embodiment, RC


0


and RC


1


are also inputs into the presently preferred microprocessor


104


. When the presently preferred transmitter


100


recognizes that input lines RC


0


and RC


1


are driven high, the presently preferred transmitter


100


generates a reference signal that is preferably about one millisecond in length.




When the presently preferred test fixture


102


receives the rising edge of the reference signal, the presently preferred test fixture


102


assures that RC


0


and RC


1


are driven high at act


706


. The presently preferred test fixture


102


further prepares a receiver within the presently preferred test fixture


102


to detect the negative or falling edge of the reference signal. When the presently preferred test fixture


102


detects the falling edge of the reference signal, the presently preferred embodiment calculates the pulse width or duration of the reference signal at act


708


. If the pulse width of the reference signal is greater than about the desired time interval at act


710


, the presently preferred test fixture


102


drives an input to the presently preferred transmitter RC


1


to a logic low state at act


712


. If the pulse width of the reference signal is less than about the desired time interval at act


714


, the presently preferred test fixture


102


drives an input to the presently preferred transmitter RC


0


to a logic low state at act


716


.




As seen in

FIG. 8

, when the pulse width of the reference signal is about the desired time interval, the presently preferred test fixture


102


drives both RC


0


and RC


1


low at act


800


and determines whether any other operating voltages have been calibrated at act


802


. If only a first operating voltage has been calibrated, preferably the programmable power supply


116


is initialized at act


804


. Otherwise, at act


806


, the programmable power supply


116


is incremented. Preferably, the programmable power supply


116


is incremented to a next voltage in increments of about one hundred milli-volts. At act


808


, the voltage index is incremented. At act


810


, the presently preferred test fixture


102


determines whether the entire operating voltage range of the presently preferred transmitter


100


has been calibrated. If the entire operating voltage range of the presently preferred transmitter


100


has not been calibrated, the presently preferred test fixture


102


repeats the presently preferred calibration process at link


8


of FIG.


7


. If the entire operating voltage range has been calibrated, the presently preferred transmitter


100


enters a normal operation.




As further seen in

FIG. 8

, the presently preferred test fixture


102


also evaluates the bit times when the presently preferred transmitter


100


sends data. At act


812


, the presently preferred transmitter


100


enters a normal operation. In this presently preferred embodiment, it may also be referred to as a normal fob operation. Preferably, the presently preferred test fixture


102


triggers a message by simulating a switch input through input lines RC


0


and RC


1


at act


812


. At act


814


, the bit times are verified. If the bit times fail, the presently preferred test fixture


102


logs the failure in a remote or unitary database of the presently preferred test fixture


102


and the presently preferred transmitter


100


is failed at acts


816


and


818


.




If the bit times are verified at act


814


, the presently preferred test fixture


102


, verifies the K-factor and contents of the oscillator calibration register across the operating voltage range of the presently preferred transmitter


100


at acts


820


and


822


. Preferably, the presently preferred test fixture


102


also programs a unique identifying code into each presently preferred transmitter at act


820


. If the values stored in the look up table fail verification at act


822


, the presently preferred test fixture


100


re-initializes the contents of the oscillator calibration register and the preferred calibration process is repeated at act


824


and at the start link shown in FIG.


7


.





FIGS. 10A and 10B

are exemplary graphs of select outputs of the presently preferred transmitter


100


and test fixture


102


. As shown, the battery voltage, which is simulated by the programmable power supply


116


, preferably ramps up at 100 milli-volt increments. These figures further show that the two milli-second pulse described in act


608


of

FIG. 6

is generated on the digital output channel and further shows the Up/Down commands that tune the exemplary one-milli-second reference pulse.




III. Current Draw




Once the K-factor and contents of the oscillator calibration register are verified, the presently preferred test fixture


102


monitors current drawn by the presently preferred transmitter


100


when the presently preferred transmitter


100


is in a sleep mode as shown in FIG.


9


. Preferably, the presently preferred test fixture


102


monitors the sleep current or average sleep current during a sleep interval. At act


902


, the programmable power supply


116


is initialized and the sleep current drawn by the presently preferred transmitter


100


is measured. If the sleep mode consumes less than a referenced current at act


904


, in this presently preferred embodiment that being less than about one microampere, the presently preferred test fixture


102


logs a database entry at act


906


and the presently preferred transmitter


100


is passed at act


908


. However, if the sleep mode consumes more than about one microampere, the presently preferred test fixture


102


logs a database entry at act


910


and the presently preferred transmitter


100


is failed at act


912


.




In view of the foregoing description, it should be noted that the above test can also measure the presently preferred transmitter's


100


operating current consumed during a wakeup interval and the operating and sleep current consumed during a transition between a wakeup and a sleep interval. Moreover, these currents may also be measured across a desired temperature range and evaluated against many other voltage reference ranges.




IV. Switch Debounce During RF Transmission





FIG. 11

is a second exemplary timing diagram of a preferred digital data stream. As shown, the timing diagram includes the time needed to detect a switch activation during time interval T


1


and a stretch time or radio frequency compensation time T


3


. As described, the opening and closing of a switch may not generate a uniform signal as the switch output transitions between logic states. To ensure that a transient does not cause the presently preferred microprocessor


104


to detect a phantom switching event, preferably a debounce period T


1


is added to the substantially constant time T


2


in this presently preferred embodiment. Preferably, this debounce period T


1


allows a switch logic debounce routine (“Switch Manager”) to determine if a valid switch event occurred and queues the button command without interrupting a radio frequency transmission. Preferably, the Switch Manager is embedded within a software transmission routine. In this presently preferred apparatus and method, switching events are not missed and the debouncing of the switches are serviced on a standard and deterministic interval. Because, the switch debounce is embedded in the transmit routine the presently preferred microprocessor


104


does not have to service an interruption or poll an input to recognize a switch event. In some instances, these events can create bit timing errors.





FIG. 12

is exemplary flow diagram illustrating a preferred process for transmitting data. Preferably, the flow diagram incorporates a stretch time within a presently preferred Manchester encoding method. Preferably, the presently preferred Manchester encoding is a synchronous encoding in which actual data is not directly transmitted as a sequence of ones and zeros. Instead, in the presently preferred Manchester encoding, a logic one is transmitted by a zero to one transition near a center of the bit timing period and a logic zero is encoded as a transition from a one to a zero near a center of the bit timing period.




V. Stretch Time




Preferably, the presently preferred Manchester encoding can be encoded within a time period that includes the stretch time or radio frequency compensation. Preferably, the stretch time compensates for the pulse width reduction due to the time needed to power up a radio frequency transmission circuit. This reduced pulse width results in bit time errors in an AM-RF receiver. Some AM-RF receiver detects the envelope of the received signal. The stretch time compensation substantially eliminates or entirely eliminates this error. Referring to

FIG. 1

, the presently preferred microprocessor


104


is electrically coupled to a radio frequency circuit


110


that modulates and amplifies as continuous signal using a digital output of the presently preferred microprocessor


104


. The radio frequency circuit


110


can preferably transmit within any frequency range, but more preferably transmits at about 315 MHz or 433.92 MHz. Preferably, the radio frequency circuit


110


transmits over one or more frequency channels in which transmission may or may not be periodic depending on the requirements of the application.




As shown in the truth table below (Table 1), by evaluating three consecutive bits, the bit timing period can be substantially constant by modifying the period of the high and low time of a binary digit. Preferably, the stretch time compensates for the rise time of a bit as the radio frequency circuit


110


powers up before transmitting a logic high. To compensate for these power up delays, preferably the presently preferred transmitter


100


provides a longer initial generating period for the high portion of a bit as needed. To maintain a constant bit time period under this circumstance, preferably the nominal bit time of the low portion of the bit is correspondingly shortened when needed to ensure a substantially constant bit transmission times. Preferably, the presently preferred transmitter examines a transmission buffer


112


resident to the presently preferred microprocessor


104


prior to transmitting a bit. A previous bit, a current bit, and a next bit are used to calculate the appropriate high and low times of a bit. As shown in the truth table below, TP is the nominal bit time, TR is a stretch time compensation, TH is the high time of the bit and TL is the low time of the bit.












TABLE 1











Presently Preferred Stretch Time Calculation















Previous Bit




Current Bit




Next Bit




TH




TL


















0




0




0




TR + TP




TP − TR






0




0




1




TR + TP




TP






0




1




0




TR + TP




TP − TR






0




1




1




TR + TP




TP − TR






1




0




0




TP




TP − TR






1




0




1




TP




TP






1




1




0




TR + TP




TP − TR






1




1




1




TR + TP




TP − TR














VI. Data Transmission




Referring again to

FIG. 12

, the exemplary flow diagram illustrates a presently preferred process for transmitting data. Preferably, the process paths have a substantially equal and deterministic time. As shown, the presently preferred data transmission begins by clearing a previous flag at act


1202


. Preferably, the flag is retained in a region of memory


108


that holds data that is waiting to be transferred. At act


1204


, the presently preferred transmission routine calls a calculate bit time subroutine. Preferably, the calculate bit time subroutine calculates the high and low time of the bit transmission. The calculate bit time subroutine preferably uses the presently preferred stretch times described in Table 1. Each time a bit is transmitted, preferably the high and low time of the bit is calculated using the previous bit, the current bit, and the next bit.




At act


1206


, the presently preferred transmission routine calls a rolldata subroutine. Preferably, the presently preferred rolldata subroutine shifts out a first bit. If the bit is a logic one, the carry is also set at act


1206


. When the carry is set at act


1208


, the presently preferred transmission routine drives the modulating output low for a period “TL” at act


1210


. In the presently preferred Manchester encoding, a logic one is translated into a logic zero to a logic one transition near the center of the bit timing period. In other words, a logic one is translated into an upward transition near the center of the bit timing period.




At act


1212


the presently preferred transmission routine calls the presently preferred SwitchManager which controls the switch logic debounce routine. Preferably, the presently preferred SwitchManager determines if a valid switch event occurred and queues a switch command if such event has been detected.




At act


1214


the presently preferred transmission routine drives the modulating output high for a period “TH-TD.” Preferably, this act establishes the upward transition near the bit center time period that identifies a logic one. At act


1216


, the presently preferred SwitchManger is called to identify any switch events that may have occurred during the transmission. At act


1218


, preferably the previous bit flag is set. At act


1220


the Bits-to-transmit, which is a counter that tracks the number of bits to be transmitted, is decremented. If the Bits-to-transmit is not zero at act


1222


, the presently preferred process continues with the calculate bit time subroutine at act


1204


. However, if the last bit has been transmitted, the presently preferred transmission routine initiates a delay and clears the output at acts


1224


and


1226


. At act


1228


, the presently preferred transmission routine ends and the presently preferred transmitter


100


enters a sleep mode.




Preferably, the presently preferred transmission process also transmits logic lows. As seen in

FIG. 12

, when the carry is not set at act


1208


, the presently preferred transmission routine drives the modulating output high for a period “TH” at act


1230


. In the presently preferred Manchester encoding, a logic zero is translated into a logic one to a logic zero transition near the center of the bit timing period. In other words, a logic zero is translated into a downward transition near the center of the bit timing period.




At act


1232


the presently preferred transmission routine calls the presently preferred SwitchManager which controls the switch logic debounce routine. Preferably, the presently preferred SwitchManager determines if a valid switching event occurred and queues a switch command if such event has been detected.




At act


1234


the preferred transmission routine drives the modulating output low for a period “TL-TD.” Preferably, this act establishes the downward transition near the bit center that identifies a logic zero. At act


1236


, the presently preferred SwitchManger is called to detect any switch events that may have occurred during the transmission. At act


1238


, preferably the previous bit flag is cleared. At act


1220


, the Bits-to-transmit is decremented. If the Bits-to-transmit is not zero at act


1222


, the presently preferred process continues with the bit time subroutine at act


1204


. However, if the last bit has been transmitted, the presently preferred transmission routine initiates a delay and clears the output at act


1224


and


1226


. At act


1228


, the presently preferred transmission routine ends and the presently preferred transmitter enters a sleep mode.




The presently preferred Remote Keyless Entry System embodiments described above utilize a timing circuit


106


that is a unitary part of a microprocessor


104


or micro-controller. While preferably implemented in about the three hundred and fifteen-megahertz United States frequency band, other presently preferred Remote Keyless Entry System embodiments can also be implemented including those operating in about the four hundred and thirty three megahertz European frequency band. Preferably, the timing circuit


106


comprises an array of capacitors selected by switches controlled by the contents of the oscillator calibration register. Alternatively, any frequency dependent components unitary and selectable by hardware or software coupled to or unitary with a microprocessor or micro-controller can also be used.




VII. Operation




In operation, the presently preferred transmitter


100


utilizes algorithms that avoid frequency discontinuities and compensate for voltage and temperature variations. In a first presently preferred algorithm, the K-factor is constant after calibration and is used to avoid frequency discontinuities. In this presently preferred algorithm, the K-factor tracks the number of adjustable instructions that must be executed to maintain a substantially constant bit time period. The K-factor is preferably an integer constant.




In a second presently preferred algorithm, the output frequency of the presently preferred timing circuit


106


is adjusted for voltage and temperature variations. In this presently preferred algorithm, a coarse frequency adjustment is made when the presently preferred microprocessor


104


monitors the presently preferred transmitter


100


initial operating voltage. Preferably, the initial operating voltage is cross referenced to an initial frequency value retained in the presently preferred memory


106


. The second presently preferred algorithm then performs a temperature compensation that finely adjusts the output frequency of the presently preferred timing circuit


108


. Preferably, the temperature compensation is derived through a comparison of memory write times. This presently preferred approach compares a write time to referenced write times resident to a table retained in memory


108


. Preferably, any differences between these write time values generate a temperature compensation that compensates for frequency drift caused by temperature changes. In alternative preferred embodiments, any temperature sensing method or apparatus can be used that is independent of the presently preferred timing circuit.




The above-described embodiments are not limited to the above described reference values or coding methods. Moreover, although the above-described presently preferred embodiments were implemented using a Microchip HCS 1365 available from Microchip Technology Incorporated of Chandler, Ariz. other microprocessors and/or controllers can also be used. Furthermore, the above-described calibration processes need not include all of the above-described acts. Many portions of the calibration processes can be excluded or executed separately including, for example, the process of checking the radio frequency format in a digital format, the process of validating current draw in a sleep and/or operating mode, the process of switch debouncing and message queuing during data transmission, and the process of calculating a stretch time or radio frequency compensation.




From the foregoing detailed description, it should be apparent that the presently preferred transmitter


100


can be integrated within or can be a unitary part of a key fob, access card, or any other device. Moreover, when the presently preferred embodiment is a part of a hands free apparatus, system and/or method, the process of switch debouncing and message queuing may not be needed as the presently preferred hand free embodiment may not be activated by a switch or a mechanical movement. It should be further noted that although the above-described presently preferred embodiments can be used or integrated with a vehicle, these embodiments can also be used with many other devices, structures, and technologies.




While various embodiments of the invention have been described, it will be apparent to those of ordinary skill in the art that many more embodiments and implementations are possible that are within the scope of this invention. Accordingly, the invention is not to be restricted except in light of the attached claims and their equivalents.



Claims
  • 1. A method of calibrating a remote keyless entry system, comprising:driving a plurality of inputs of a microprocessor of the remote keyless entry system to a logic high state, the microprocessor being a unitary part of a timing circuit, the timing circuit comprising a plurality of frequency dependent components that are coupled to a plurality of switches, respectively; monitoring an output of the microprocessor; and programming a calibration factor within the microprocessor based on the output of the microprocessor, the calibration factor controlling an output frequency of the timing circuit.
  • 2. The method of calibrating a remote keyless entry system of claim 1 wherein the act of driving a plurality of inputs of a microprocessor to a logic high state comprises driving a plurality of outputs of a test fixture coupled to the microprocessor to a logic high state.
  • 3. The method of calibrating a remote keyless entry system of claim 1 wherein the frequency dependent components comprise a plurality of capacitors that are a unitary part of the microprocessor.
  • 4. The method of calibrating a remote keyless entry system of claim 1 wherein the plurality of switches comprise a plurality of transistors that are a unitary part of the microprocessor.
  • 5. The method of calibrating a remote keyless entry system of claim 1 wherein the act of monitoring the output of the microprocessor further comprises measuring a pulse width output generated by the microprocessor and comparing a duration of the pulse width output to a reference time period.
  • 6. The method of calibrating a remote keyless entry system of claim 1 wherein the act of programming a calibration factor within the microprocessor comprises driving a pair of inputs to the microprocessor to a logic high or logic low state which adjusts the calibration factor within the microprocessor.
  • 7. The method of calibrating a remote keyless entry system of claim 1 wherein the calibration factor comprises a plurality of calibration factors that provide a varying degree of adjustment of the output frequency of the timing circuit.
  • 8. The method of calibrating a remote keyless entry system of claim 1 wherein the plurality of switches comprise electronic switches that are a unitary part of the microprocessor.
  • 9. The method of calibrating a remote keyless entry system of claim 1 further comprising validating a bit timing output of a radio frequency transmitter coupled to the microprocessor by monitoring a digital modulating signal generated by the microprocessor.
  • 10. The method of calibrating a remote keyless entry system of claim 1 wherein the microprocessor and timing circuit are a part of a transmitter and the method of calibrating a remote keyless entry system further comprises monitoring a current drawn by the transmitter.
  • 11. The method of calibrating a remote keyless entry system of claim 10 wherein the act of monitoring a current drawn by the transmitter comprises monitoring the current drawn by the transmitter in a sleep mode and comparing the current drawn in sleep mode to a reference current.
  • 12. The method of calibrating a remote keyless entry system of claim 11 wherein the reference current comprises a range of reference currents.
  • 13. The method of calibrating a remote keyless entry system of claim 11 further comprising logging data in a pass or fail software after monitoring the current drawn by the transmitter.
  • 14. A method of calibrating a remote keyless entry system, comprising:driving a plurality of inputs of a microprocessor of the remote keyless entry system to a logic high state, the microprocessor being a unitary part of a timing circuit, the timing circuit comprising a plurality of frequency dependent components that are respectively coupled to a plurality of switches; measuring a pulse width of an output of the microprocessor; comparing a duration of the pulse width to a reference time period; and programming a K-factor and an oscillator calibration register resident to the microprocessor based on the output of the microprocessor by executing an up and a down command, the K-factor and the oscillator calibration register controlling an output frequency of the timing circuit.
  • 15. The method of calibrating a remote keyless entry system of claim 14 wherein the frequency dependent components comprise a plurality of capacitors that are a unitary part of the microprocessor.
  • 16. The method of calibrating a remote keyless entry system of claim 14 wherein the act of programming a K-factor and an oscillator calibration register comprises calibrating the K-factor before calibrating the oscillator calibration register.
  • 17. The method of calibrating a remote keyless entry system of claim 14 further comprising validating a bit timing output of a radio frequency circuit coupled to the microprocessor by monitoring a digital modulating signal.
  • 18. The method of calibrating a remote keyless entry system of claim 14 wherein the microprocessor and timing circuit are a part of a transmitter and the method of calibrating a remote keyless entry system further comprises monitoring a current drawn by the transmitter when in a sleep mode.
  • 19. The method of calibrating a remote keyless entry system of claim 18 further comprising logging data in a database after monitoring the current drawn by the transmitter.
  • 20. A method of calibrating a remote keyless entry system, comprising:driving a plurality of inputs of a microprocessor of the remote keyless entry system to a logic high state, the microprocessor being a unitary part of a timing circuit, the timing circuit comprising a plurality of capacitors that are respectively coupled to a plurality of transistors; measuring a pulse width of an output of the microprocessor; comparing a duration of the pulse width to a reference time period; programming a K-factor and an oscillator calibration register resident to the microprocessor using at least one up or down command based on the output of the microprocessor, the K-factor and the oscillator calibration register controlling an output frequency of the timing circuit; validating a bit timing output of a radio frequency signal transmitted by a radio frequency circuit coupled to the microprocessor by monitoring a digital signal; monitoring a current drawn by the microprocessor when in a sleep mode; and logging data in a remote database.
CROSS REFERENCE TO RELATED APPLICATIONS

The following co-pending and commonly assigned U.S. patent applications have been filed on the same day as this application. Each of these applications relate to and further describe other aspects of the presently preferred embodiments disclosed in this application and are incorporated by reference in their entirety. U.S. patent application Ser. No. 09/967,339, “Apparatus and Method of Calibrating a Keyless Transmitter,” filed on Sep. 28, 2001 pending. U.S. patent application Ser. No. 09/967,330, “Apparatus and Method for Timing an Output of a Remote Keyless Entry System,” filed on Sep. 28, 2001 pending.

US Referenced Citations (3)
Number Name Date Kind
5828316 DiCroce Oct 1998 A
6034593 Chase et al. Mar 2000 A
6396389 Nakano et al. May 2002 B1