Field of the Invention
[0001] This invention is directed to the field of automotive remote control systems of the
type wherein a user can employ a handheld transmitter to send a signal to a receiver
mounted within a vehicle to cause some function of the vehicle to be controlled remotely,
such as to disarm a security device within the vehicle, or to unlock the doors of
the vehicle.
Background of the Invention
[0002] Typical remote control systems include at least one handheld transmitter (RF or infrared)
that can transmit a unique code to a receiver mounted in a vehicle. In one form of
remote control system (referred to as keyless entry), the receiver responds to the
transmitted code by locking or unlocking the vehicle's doors. It may also turn on
an interior light or perform various other functions.
[0003] It is sometimes desirable for a user to be able to re-program his receiver, as when
his transmitter is lost or inoperative, and he wants to replace it with a new transmitter
having a different code. Alternately, the user may want to program his receiver to
be responsive to the different codes of two or more transmitters so that two or more
members of his family may unlock the doors of the same vehicle, each using his/her
own transmitter having its own unique code. A receiver's ability to be easily reprogrammed
by the end-user is thus very desirable, but conventional systems employ programming
techniques that are not totally compatible with this desired result.
[0004] Typical keyless entry systems use several techniques to insure that a vehicle's transmitter
and receiver operate on the same code. In one case, the receiver and its mating transmitter
are programmed together at the factory with the same code. The means that both components
must remain together in route to the end customer. If the end-user needs additional
transmitters, they must be specially ordered to ensure that they match the receiver.
[0005] Another programming technique, used principally by automobile manufacturers, is to
include a keypad on the exterior surface of a vehicle's door such that entry of a
unique code by the user allows the keyless entry system to go into a programming mode
in which the user can program the receiver to accept a code already programmed into
the user's transmitter. A disadvantage of this technique is the requirement for a
keypad mounted on the vehicle, and a relatively small number of vehicles come so equipped.
[0006] A third programming technique requires that a "programing wire" be connected to the
vehicle's battery or ground system to put the receiver into the programming mode.
Since many users cannot or will not go to the trouble of finding the "programming
wire" and coupling it to the appropriate electrical potential, this technique is somewhat
impractical. Consequently, such users are unable to change transmitters or to add
additional transmitters to their keyless entry system.
Brief Description of the Drawings
[0007]
FIG. 1 is a schematic block diagram of a remote control system that operates in accordance
with a preferred embodiment of the invention; and
FIGs. 2A and 2B are a flow chart that illustrates how the receiver's microcomputer
(FIG. 1) is preferably programmed in accordance with the invention.
Description of the Preferred Embodiment
[0008] Referring to FIG. 1, the illustrated remote control system includes a transmitter
10 and a receiver 12. The transmitter 10 is normally a small, handheld transmitter
that can emit a coded RF (or IR) signal for causing the door of a vehicle to be locked
or unlocked, or to control any other function of the vehicle. The illustrated transmitter
includes conventional components such as a microcomputer 14 powered by a battery 16.
Coupled to the microcomputer is a keypad 18 that is accessible to the user. A number
of push-buttons are included on the keypad, including an "unlock" button 20. Other
buttons (not shown) may also be included, such as a "lock" button for causing the
vehicle's doors to be locked.
[0009] When an operator wishes to unlock the door or doors of his vehicle, he presses the
"unlock" button 20, whereupon the microcomputer 14 outputs a coded signal that includes
the operator's security code (sometimes called an "ID"), and another code representing
the "unlock" command. This coded signal is received by an oscillator circuit 22 which
provides a RF signal that is modulated by the coded signal from the microcomputer
14. The coded RF signal is transmitted by an output device 24 to the receiver 12 which
is normally installed within the operator's vehicle.
[0010] In the receiver 12, the coded RF signal is received by an input device 26 (such as
an antenna) which supplies the RF signal to a detect/decode unit 28. The unit 28 detects
and decodes the codes embedded in the RF signal, and passes the decoded codes to a
microcomputer 30. The latter device is powered by a power supply 32 which may be the
vehicle's battery.
[0011] When the microcomputer 30 recognizes that a valid security code (ID) has been received,
and that a door "unlock" code has been received, it actuates a door lock mechanism
34 for unlocking the doors off the vehicle. An output terminal 36 may be included
to send a signal for controlling other vehicle functions in response to other corresponding
codes having been sent by the transmitter 10. The operation described thus far is
conventional.
[0012] In order to reprogram the receiver 12 to be responsive to a new or different code
from the transmitter 10, the microcomputer 30 in the receiver 12 is programmed to
operate in accordance with the following reprogramming technique. First, the vehicle's
ignition unit 38 is turned on (as with a conventional ignition key), and that event
is sensed by the microcomputer 30 via an input lead 40 which connects to the ignition
unit. On sensing turn-on of the ignition unit 38, a programming window for the receiver
12 is opened. This programming window is a time period during which the microcomputer
30 allows the receiver 12 to be reprogrammed to receive a new and/or different security
code, and this programming window has a time duration T1 (e.g. 15 seconds) that is
measured from ignition turn-on. In other words, the receiver 12 is enabled to be reprogrammed
during a time window having duration T1 immediately following ignition turn-on. Any
attempt to reprogram the receiver 12 except when the programming window is open is
of no avail.
[0013] During the opened programming window, a transmitter (such as transmitter 10) is used
to initiate the transmission of a new code from the transmitter to the receiver, and
the transmission of this code continues for at least a predetermined time duration
T2 (e.g. 5 seconds). Preferably, this transmission is caused by the operator pressing
the "unlock" button 20 on his transmitter's keypad and holding that button down for
the duration T2. This causes the new security code to be transmitted along with an
"unlock" code that continues for a duration T2.
[0014] Upon receipt by the receiver 12 of the coded transmission of duration T2 sent during
the programming window, the received security code is at least temporarily stored
in a memory (not shown) of the microcomputer 30 for use as a new code to which the
receiver will be responsive for controlling at least one vehicle function (e.g. actuating
the door lock mechanism 34).
[0015] In the preferred embodiment, the receiver 12 acknowledges proper receipt of the coded
transmission by twice actuating the door lock mechanism 34. This gives a visual and/or
audible signal to the operator that the receiver 12 acknowledges receipt of a new
and/or different security code which the receiver is to be responsive to.
[0016] According to another preferred aspect of the invention, the security code received
during the open programming window is stored permanently in a memory of the microcomputer
30 only if the ignition unit 34 is turned off within another predetermined time interval
T3 (e.g. 15 seconds) following receipt of the code. If the ignition unit 38 is not
turned off within the time interval T3, the security code received during the open
programming window is cancelled. This prevents codes that are inadvertently received
from being stored in memory.
[0017] Another preferable aspect of this technique is that a security code that has been
previously stored in a permanent memory is cancelled in response to at least one newly
received security code being permanently stored. This allows an operator to make the
receiver responsive only to a new or different security code and to prevent a previously
stored code from being used by another operator. This might arise, for example, in
the case where the operator's original transmitter has been lost and he wishes to
reprogram the receiver to be responsive to the security code of a replacement transmitter,
and to be unresponsive to the security code associated with the lost transmitter.
[0018] It is also possible to store more than one security code with this technique. If
an additional code is transmitted to the receiver, and this transmission continues
for at least the predetermined time duration T2, (e.g. 5 seconds), and the additional
security code is transmitted to the receiver within an additional period T1 following
the storage of a previously transmitted security code, then the additional security
code will also be stored. In a preferred embodiment, up to four security codes may
be stored in this manner, but any attempt to store more than four (or more than any
other predetermined number) results in all received codes being cancelled.
[0019] All security codes received during the open programming window(s) will be permanently
retained in the receiver's memory only if the ignition is turned off within the time
period T3 after the receiver receives the transmitted code(s). At the conclusion of
a successful programming session, all security codes stored during any previous programming
session are erased from memory.
[0020] The way in which the above described technique is preferably implemented will now
be described with reference to the flow chart shown in FIGs. 2A and 2B. This flow
chart represents a preferred technique for programming the receiver's microcomputer
30.
[0021] Referring first to FIG. 2A, the block indicated as "main process" is the part of
the program in the microcomputer 30 that processes incoming code, determines whether
the received security code is valid, and otherwise controls all non-programming functions
of the receiver 12. It will be assumed that the receiver has already received a security
code that matches a stored code, thus determining that the received security code
is valid.
[0022] Immediately after the "main process" block, the reprogramming part of the microcomputer's
program begins with an instruction 42 which asks if the ignition unit 38 has just
been turned on. If the answer to this inquiry is "yes", the program proceeds to instruction
44 for causing a timer T1 to start. This timer begins timing the period immediately
following ignition turn-on and signifies the opening of the programming window. As
will be shown in the program below, the timer T1 terminates 15 seconds after having
been started, thereby providing a 15 second window in which the operator may reprogram
the receiver.
[0023] The next instruction 46 asks whether a transmission has been received from the transmitter.
If the answer is "no", the program proceeds to instruction 48 so that the microcomputer
30 can continue the main process, following which the program can proceed again to
instruction 42 to once again look for ignition turn-on.
[0024] Referring to instruction 42 again, when it results in answer of "no", the program
proceeds to instruction 50 to determine whether the ignition has just been turned
off. If the answer to this inquiry is "no", the program proceeds back to instruction
46 and then to instruction 48 to loop through the program again to look for ignition
turn-on and the receipt of a transmission.
[0025] Referring again to instruction 46, it will be assumed that ignition turn-on has occurred
(per instruction 42), that timer T1 has been started (per instruction 44), and that
a transmission has been received. This indicates that the operator has pressed one
of the buttons on the keypad of the transmitter 10, such as the "unlock" button 20.
In this event, the program proceeds to instruction 52 (FIG. 2B) to determine whether
the received transmission was initiated by the "unlock" button 20, and whether such
transmission lasted for longer than 5 seconds (T2 equals 5 seconds in this example).
If the answer to this question is "yes", this indicates that the operator desires
to reprogram the receiver, and the program then proceeds directly to the next instruction
54.
[0026] Instruction 54 asks whether the time period T1 is greater than 15 seconds. In other
words, "has the reprogramming window expired?" If the answer is "no", this indicates
that reprogramming is still possible and the program proceeds to the next instruction
56. If the answer to the question posed by instruction 54 had been "yes", meaning
that the reprogramming window had expired, then the program would have proceeded to
instruction 58 which causes the microcomputer 30 to set a timer T3 for greater than
15 seconds. As will be shown, this has the effect of rejecting the last-received security
code.
[0027] Referring back again to instruction 54, and assuming that the timer T1 does not exceed
15 seconds, the program will continue with instruction 56 which asks if more than
four programming codes (i.e., security codes) have been received. The point of this
instruction is to ensure that no more than four (or any other predetermined number
of codes) can be programmed into the receiver. If more than four codes have been received,
the program proceeds to instruction 58 to again set the timer T3 to more than 15 seconds
and thereby reject all the received security codes.
[0028] If less than four codes have been received, the program proceeds from instruction
56 to instruction 60 to start the timer T3 (which is used to determine how much time
has passed since receipt of the last transmitted code) and to restart the timer T1
(to open another 15 second programming window). From there the program proceeds to
instruction 62 which causes the door locks to be cycled twice by actuating the door
lock mechanism 34 (FIG. 1). This provides an audible and/or visual acknowledgement
of the fact that the receiver has been properly programmed with the security code
that has just been sent by the operator. The next instruction 64 causes this security
code to be placed in temporary memory.
[0029] The program then continues back through instruction 48 (FIG. 2A) and then to instruction
42. Assuming that the ignition has not been just turned on, the program will proceed
then to instruction 50 to determine whether the ignition has just been turned off.
If it has been just turned off, the next instruction 66 asks whether the timer T3
is greater than 15 seconds. If the answer is "no" this indicates that ignition turn-off
occurred within 15 seconds following receipt of the last code, and that the operator
desires the receiver to be responsive to this new security code (recall that the timer
T3 was started by instruction 60). Then the program proceeds to instruction 68 which
causes the received code to be moved into a permanent memory from the microcomputer's
temporary memory. The codes previously stored in the permanent memory are cancelled.
Thus, the microcomputer 30 has been reprogrammed with a new security code.
[0030] In the event that the time T3 has expired per instruction 66, instruction 68 will
be skipped, meaning that the received security code will not be placed in permanent
memory. Rather, the program proceeds from instruction 66 to instruction 46 and from
there it loops through the program again, ignoring the received security code.
[0031] It will be recalled that the time T3 was set to exceed 15 seconds per instruction
58 (FIG. 2B). This occurred when 1) the timer T1 exceeded 15 seconds, meaning that
the programming window had expired, or 2) more than four codes were received. Setting
the timer T3 to a time greater than 15 seconds ensures that any security code(s) received
under conditions 1) or 2) above gets rejected when the program reaches instruction
66.
[0032] Another event that is handled by the program is the receipt of an "unlock" signal
that is intended only to unlock the doors (not to reprogram the receiver). This event
is handled by instructions 52, 70 and 72 (FIG. 2B). If the execution of instruction
52 results in determining that the transmission of the "unlock" code lasted less than
5 seconds, then the program proceeds to instruction 70 to determine whether the received
security code matches a stored security code. If no match is detected, the program
ignores the code and returns to instruction 48 to loop through the program. If a match
is detected, the program proceeds to instruction 72 to perform the function associated
with the received "unlock" code, or to perform the function associated with any other
non-security code that was received.
[0033] It can be seen, therefore, that the present technique for reprogramming the receiver
is operator-friendly, while also avoiding the problem of unintentionally making the
receiver responsive to an undesired code. This technique also provides an easily implemented
technique (cycling the door locks) for telling the operator that a transmitted code
has been properly received and stored.
1. For use with a vehicle having an ignition, and having a remote control system comprising
a handheld transmitter and a receiver that is responsive to receipt of a code from
the transmitter for controlling at least one function of the vehicle, a method of
re-programming the receiver, comprising:
(a) turning on the vehicle's ignition;
(b) opening a programming window for the receiver, the programming window having a
time duration T1 following ignition turn-on;
(c) initiating transmission of a code from the transmitter to the receiver, the transmission
continuing for at least a predetermined time duration T2; and
(d) upon receipt by the receiver of the transmission of duration T2 sent during the
programming window, at least temporarily storing the received code for use as a code
to which the receiver will be responsive for controlling at least the one vehicle
function.
2. A method as set forth in claim 1 wherein the transmitter includes an "unlock" button,
where wherein the transmission recited in step (c) is initiated by actuating the "unlock"
button for the time duration T2.
3. A method as set forth in claim 1 including permanently storing the received code if
the ignition is turned off within a predetermined time interval T3 following receipt
of the code.
4. A method as set forth in claim 3 wherein the received code is cancelled if the ignition
is not turned off within the time interval T3.
5. A method as set forth in claim 1 wherein all codes received for storage are cancelled
in response to an attempt to store more than a predetermined number of codes.
6. For use with a vehicle having an ignition, and having a remote control system comprising
a handheld transmitter and a receiver that is responsive to receipt of a code from
the transmitter for controlling at least one function of the vehicle, a method of
re-programming the receiver, comprising:
(a) turning on the vehicle's ignition;
(b) opening a programming window for the receiver, the programming window having a
time duration T1 following ignition turn-on;
(c) initiating transmission of a code from the transmitter to the receiver, the transmission
continuing for at least a predetermined time duration T2;
(d) upon receipt by the receiver of the transmission of duration T2 sent during the
programming window, temporarily storing the received code as a code to which the receiver
will be responsive for controlling at least the one vehicle function;
(e) repeating step (c) with an additional code transmitted within a time period of
duration T1 following the temporary storage of the previously transmitted code;
(f) upon receipt by the receiver of the code transmitted in step (e), temporarily
storing that code as another code to which the receiver will be responsive for controlling
at least the one vehicle function;
(g) turning off the ignition; and
(h) in response to ignition turn-off occurring within a predetermined interval T3
following receipt of the last transmitted code, permanently storing the codes that
were stored temporarily per steps (d) and (f).
7. A method as set forth in claim 6 further including rejecting all received codes if
an attempt is made to store more than a predetermined number (N) of codes.
8. For use with a vehicle having an ignition and a door locking mechanism, and having
a remote control system comprising a handheld transmitter with an "unlock" button
and a receiver that is responsive to receipt of a code from the transmitter for controlling
at least the vehicle's door locking mechanism, a method of reprogramming the receiver,
comprising:
(a) turning on the vehicle's ignition;
(b) opening a programming window for the receiver, the programming window having a
time duration T1 following ignition turn-on;
(c) pressing the "unlock" button to transmit a code from the transmitter to the receiver,
the transmission continuing for at least a predetermined time duration T2;
(d) upon receipt by the receiver of the transmission of duration T2 sent during the
programming window, temporarily storing the received code as a code to which the receiver
will be responsive for controlling at least the door locking mechanism, and acknowledging
such receipt by twice actuating the door locking mechanism;
(e) repeating step (c) with a different transmitter to send an additional code transmitted
within a time period of duration T1 following the temporary storage of the previously
transmitted code;
(f) upon receipt by the receiver of the code transmitted in step (e), temporarily
storing that code as another code to which the receiver will be responsive for controlling
at least the one vehicle function;
(g) turning off the ignition;
(h) in response to ignition turn-off occurring within a predetermined interval T3
following receipt of the last transmitted code, permanently storing the codes that
were stored temporarily per steps (d) and (f); and
(i) in response to ignition turn-off occurring after the predetermined interval T3,
cancelling all codes received after the opening of the programming window.