Abstract:
A vehicle security system for performing selectable vehicle security functions that are programmable in a wireless manner. The system has a microcontroller controlling a vehicle security interface including at least a siren control unit and a vehicle head/signal light controlling unit. A physically independent remote programming unit is used for transmitting function-programming information to the microcontroller, and a radio receiver is connected to the microcontroller for receiving function-programming information transmitted by the remote programming unit. The remote programming unit includes a switch array for setting up a security function code pattern representing the selected security functions. The remote programming unit also includes a radio transmitter for sending, in an electromagnetic transmission, the function-programming command in a signal string representing the security function code pattern to the microcontroller. The microcontroller stores, in an onboard memory, data identifying the security functions conveyed in a security function code pattern received from the remote programming unit. The programmed functions control the various vehicle security function units. The security system provides an easy function-programming capability without having to remove any system components from the vehicle and without having to use any special and expensive additional equipment.

Description:
CROSS-REFERENCE TO RELATED APPLICATION(S) 
     This application is a continuation-in-part of U.S. application Ser. No. 08/790,954, filed Jan. 29, 1997, now U.S. Pat. No. 6,184,779. 
    
    
     BACKGROUND OF THE INVENTION 
     1. Field of the Invention 
     This invention relates to a security system, and more particularly, to a security system capable of having its functions wirelessly programmed without removing any of its components from a vehicle. 
     2. Background Art 
     Security systems are widely deployed for passenger vehicles, such as family sedans and vans, which represent valuable possessions for ordinary families and small businesses. A typical vehicle security system is incorporated as part of the electronic system of a vehicle and provides a selection of security functions such as intrusion alarm arming and automatic door locking. It can also serve as a user convenience system to aid in the location of a vehicle located in a crowded parking lot. 
     Vehicle security systems are generally classified as being either active arming or passive arming systems. In the passive arming category, there are systems with or without a door-locking function, systems with or without an arming/disarming chirp, and so on. Similar functional varieties can also be found for active arming systems. Whatever the category, it is desirable to construct the system in a way that allows the functions of the vehicle security system to be programmable by the user. A user of a vehicle security system living in an apartment, for example, may want to turn off the arming/disarming chirp, or reduce the sound level of the chirp if he frequently comes home late. The sensitivity of the intrusion alarming function may also need to be adjusted to prevent false alarms on windy days. 
     As a self-contained electronic system, it is desirable for a vehicle security system to be configured to conform to user decisions about which of the provided security functions should be enabled or disabled. System configuration also includes setting adjustable features, such as the chirp sound level mentioned above, which are set to levels suitable for the environment in which these systems operate. Thus, when attempting to set up, or program, the functions of a vehicle security system, the design of the interface between the security device and the user becomes important in providing a convenient, successful and efficient security device. 
     For the purpose of describing the invention, several prior-art vehicle security systems are briefly examined in the following paragraphs with reference to the accompanying drawings. Among the examined security systems, FIG. 1 is a block diagram illustrating the circuit configuration of a conventional system that employs a dual in-line package (DIP) switch array for programming the security functions. The systems of FIGS. 2 and 3 have basically the same circuit configuration, although they employ different function-programming methodologies. 
     FIG. 1 illustrates a conventional vehicle security system. It includes a microcontroller  30  that controls the security functions of a vehicle. In addition to the microcontroller, the depicted system optionally includes subsystems such as a power door-lock  31 , a starter interrupt  32 , a light emitting diode (LED)  33 , a siren  34 , a vehicle light signaling control  35 , and an auxiliary output  36 . All these subsystems are controlled by the microcontroller  30  for facilitating all the control and status, indicating purposes involved in the security functional operations of the system. 
     For example, the LED  33  is typically a subsystem installed on the dashboard to display different lighting patterns indicating to the user (the driver of the vehicle) information concerning the security system status. Additionally, if a security violation event is triggered from outside the vehicle after the security system is armed, the siren control  34  and vehicle light signaling control  35  can be activated in different sounding schemes and head/signal light lighting patterns respectively. These sound and light signals warn about the attempted or achieved intrusion into the guarded vehicle. Further, the auxiliary output  36  can be used to initiate, for example, a radio transmitting device on board the vehicle which can send predefined signal patterns for use in determining the location of the vehicle. 
     The system outlined in the block diagram of FIG. 1 further includes an ignition switch status indicator  21 , a valet/override switch  22 , a DIP switch array  23  and a radio receiver  10 . The ignition switch status relayed from the indicator  21  is used by the microcontroller  30  to determine the operating state of the entire security system. For example, if the ignition switch of the vehicle is in the normal ON position, and the vehicle is coasting along a road, the security system ignores some of its sensing inputs such as the vehicle body vibrating sensor input. 
     The radio receiver  10  is used as part of a wireless link, which carries vehicle operator instructions to the vehicle security system. On most occasions, the wireless link is established via electromagnetic signals transmitted from a radio transmitter  12  included in a remote control unit of the vehicle security system. The owner of the vehicle normally carries this remote control unit with, for example, a main ignition switch key of the vehicle. 
     The DIP switch array  23  in FIG. 1, serves to provide means to program the security functions for the vehicle. One of the conventional programming methods employed for setting up functions provided by a vehicle security system includes setting the ON/OFF states of switches in such a DIP switch array. This DIP switch array is normally installed on the electronic printed circuit board (PCB) of the security device. The block diagram of FIG. 1 schematically illustrates one such system employing this programming scheme. Physical access to the system circuit module is necessary when the vehicle security installed. Physical access to the DIP switch array is also necessary for each subsequent function adjustment or security device reprogramming. The security system module need be removed from the vehicle in order to gain access to the DIP switch array. The circuit module must also be opened to expose the DIP switches to a service technician, or the user, to perform the function adjustment and/or the reprogramming. 
     Since vehicle security systems are designed to provide ever more complicated functions, using DIP switches to set up some, if not all, of these security functions has become a task that cannot be considered easy or straightforward. Adjustment setting in a large array of DIP switches is not an easy task, because each individual switch has to be identified before a setting can be made. Such jobs normally have to be performed by trained service personnel. 
     If DIP switches are to be used for function setting in security systems with complicated functions, a large number of DIP switches must be used. As a result, system PCB&#39;s have to provide a significant amount of valuable board space for these DIP switches. The cost of this increased PCB size and the cost of the DIP switches increase the costs of the vehicle security system hardware. 
     FIG. 2 illustrates a conventional vehicle security system in which a limited number of programming control switches and a wireless transmission are used for programming the security functions. This approach is used to employ the smallest possible number of electrical switches for security system function adjustment and/or reprogramming. It is used in conjunction with a step-by-step procedure. This method is designed to circumvent the necessity of using a large array of switches for the setting of every individual function provided by the vehicle security device. 
     Normally, by setting the vehicle security system of FIG. 2 to its program mode by properly setting the program switch  24 , a user can program all the functions by pressing a small number of control switches on a remote control unit. The remote control unit used for such programming is frequently the unit used for the normal operation of the security system. The design of the entire vehicle security system allows the normal remote control unit to become the programming unit automatically when the system module is set to the program mode. 
     FIG. 3 shows an example of a conventional arrangement for implementing a programming scheme that includes the use of a external computer. The system illustrated in the block diagram of FIG. 3 incorporates a host computer system  37  that serves to control the function-programming procedure in a security system via the wired interface  25 . Although this scheme provides better flexibility in the process of function selection and setting, a direct wired connection of the circuit module to the host computer is necessary. Before the connection to the host computer is made, the circuit module of the vehicle security system has to be removed from the vehicle and taken to the location where the host computer resides. On most occasions, only vehicle service shops have the necessary interface between the host computer and the vehicle security system. As a result, the convenience of programming interface is not directly accessible to the end user, that is, the owner of the vehicle. 
     SUMMARY OF INVENTION 
     An embodiment of the present invention provides a method and system for programming a base unit set with a remote programmer by downloading at least one user selectable command string from a remote programmer to the base unit via a wireless link, where the remote programmer comprises a remote controller, a memory capable of storing a representation of said at least one user selectable command string; user operable switches that can be used to modify the numeric values stored in the memory; a display, and transmitter that can transmit the command string to the base unit; and 
     a base controller comprising: a microcontroller; and a command memory that holds instructions that cause the controller to determine whether or not a function-programming request code is received, store the user selectable command string in a non-volatile memory, and if the controller is not in the process of function-programming, to determine whether a security event has occurred, and if so, initiate an alarm function. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     FIG. 1 is a block diagram illustrating a circuit of a prior art vehicle security system employing a DIP switch array for programming security functions; 
     FIG. 2 is a block diagram illustrating a circuit of a prior art vehicle security system employing a step-by-step rotating scheme for programming security functions; 
     FIG. 3 is a block diagram illustrating a circuit of a prior art vehicle security system employing a wired host computer system for programming security functions; 
     FIGS. 4 &amp; 4A are block diagrams of the circuit configuration of a vehicle security system that employs wireless function-programming; 
     FIG. 5 is a block diagram of an embodiment a remote programming unit attached to a computer; 
     FIG. 6 is a block diagram outlining the format of a wireless signal transmitted by a remote programming unit of the vehicle security system; 
     FIG. 7 is a flow diagram illustrating some of the steps executed by a base microcontroller; and 
     FIG. 8 is a block diagram of the circuit configuration of a vehicle security system that employs two-way wireless function-programming. 
    
    
     DETAILED DESCRIPTION 
     The present invention provides a system for wireless function programming of a vehicle security system. One embodiment of the invention is illustrated in the circuit block diagram of FIG.  4 . 
     FIG. 4 illustrates a vehicle security system that includes a base controller  30  that controls security functions for a vehicle. The base controller includes a microcontroller  1 , capable of following a predetermined arrangement of steps. These steps can include decision steps that affect which steps are taken subsequently. As is well known in the art, such a device can be implemented with a commercially available microcontroller, a general-purpose microprocessor, an imbedded microprocessor, state machine or logic array. The base controller also includes a non-volatile instruction memory  2  that holds a sequence of commands or steps that the microcontroller follows. Certain microcontrollers have such memory included within their package. One skilled in the art will recognize that separate memory devices could also be used, such as an Erasable Programmable Read Only Memory (EPROM). In the case of a microcontroller embodied in a logic array or state machine, such devices could be constructed in a way such that the desired instructions are inherent in the design of the device instead of embodied in a separate, identifiable memory. 
     When installed, the base controller is connected to controllers, sensors and indicators, and actuators in a vehicle. In the embodiment shown in FIG. 4, it is connected to a power door-lock unit  31 ; a starter interrupt  32  that can prevent the vehicle from being started; one or more light-emitting diodes (LED)  33 ; an auditory alarm  34 , such as a siren; a vehicle light signaling control  35 ; and an auxiliary output  36 . 
     In one embodiment, a LED is installed on a vehicle dashboard and displays different lighting patterns indicating to the driver information regarding the system status. If a security violation event is triggered from outside the vehicle after the system is armed, the auditory alarm is activated in different warning sound schemes, and the vehicle light signaling control causes the vehicle head lights and signal lights to turn on and off in different signaling patterns. 
     In one embodiment the auxiliary output provides a way to activate other devices that would be useful in a security violation event. As shown in FIG. 4A, radio transmitter  40  onboard the vehicle, can send predefined radio signals useful for tracking the location of the vehicle. 
     The system outlined in FIG. 4 further includes an ignition switch status indicator  21 , and a valet/override switch  22 . The ignition switch status is relayed from the indicator  21  to the base controller  30  to determine the operating state of the entire security system. When the ignition switch of the vehicle is in the normal ON position, and the vehicle is being driven along a road, a status signal from the indicator  21  allows the security system to properly control the entire security system. The system may be instructed to ignore some of its sensing inputs, for example, such as a vehicle body vibrating sensor input (not shown), since the vehicle is being driven. The valet/override switch  22  status is relayed to the base controller  30  to determine the mode of the alarm. This switch provides a way of instructing the alarm not to arm passively. 
     The alarm system can be adjusted to use either the auditory alarm or the lights, or both, to warn of an attempted or achieved intrusion into the guarded vehicle. The behavior of the system&#39;s functions are determined by a set of values stored in the operation memory  3 , which is a non-volatile programmable memory connected to the microcontroller. These values represent a string of commands selected by the user to control the alarm system. An example of such a memory is an electrically erasable programmable read only memory (EEPROM). The operation memory could also be implemented by using a typical random access memory, with a semi-permanent power supply, such as a battery within the base controller, or a constant connection to the starter battery of the vehicle. In one embodiment, the instruction memory  2  and operation memory  3  are embodied in the same device, such as two separate sectors of a single Flash EPROM that could be independently programmed. 
     The base controller is also connected to a radio receiver, base receiver  10 . The base receiver is used to complete a wireless link to receive operator instructions for normal operation of the security system as well as those for programming the security functions. As one skilled in the art would recognize, the base receiver could be packaged in the same chassis as the base controller. 
     When the system is under control of the user transmitter  12 , a wireless link is established via electromagnetic signals transmitted from the user transmitter. This remote control unit includes a small radio transmitter, and is carried by the owner of the vehicle with, for example, the main ignition switch key of the vehicle. The user transmitter can be used to relay normal use signals to the base controller of the system, such as those regarding intrusion alarm arming, automatic door locking and convenience functions such as vehicle locating. 
     The remote programming unit  26  in the system is used to generate function-programming signals for the security system. The remote programming unit  26  is connected to programming radio transmitter  11 , the circuitry for which is well known in the art. In one embodiment of the invention, printer  27  is connected to the remote programming unit  26 . This printer can be used to record the setting of the security functions, in effect becoming a data logger. A storage device, such as a memory with self-incrementing address circuitry could also be used as a data logger. This information can be relayed to the printer at, or not at, the same time the transmission of programming information is underway. As should also be readily understood, the interface to the printer device may optionally meet any of the popular electronics communications equipment standards, such as RS-232C. 
     Many packaging alternatives exist for this system. The programming transmitter could be packaged in the same package as the remote programming unit, or in a separate chassis. The remote programming unit and transmitter can be packaged with the user transmitter or as a separate unit. Furthermore, a single transmitter can be used to relay function-programming signals and normal use signals to the base controller of the system. 
     In one embodiment of the invention, the remote programming unit and programming transmitter are embodied in a hand-held, battery operated device. The device contains a microcontroller and instruction memory as described for the base controller. The device also contains a programming memory. The programming memory holds a set of values that describe a possible configuration for the base controller. In one embodiment, this memory is embodied as a random access memory device (RAM). In this embodiment, the microcontroller accesses the RAM with interface signals well known in the art, such as address bus signals, chip select and write enable signals. In this embodiment, the RAM could be placed in a write mode by write-enabling the RAM device. The new values held by the programming memory can be transmitted to the base controller and, loaded into the operation memory of the base controller to dictate the behavior of the base controller&#39;s functions. In one embodiment, the new values overwrite the original values (i.e., any values existing just prior to the reprogramming.) 
     The values in the programming memory can be altered by the user of the remote programming unit. In one embodiment, a memory location is allocated for the “passive arming” feature of a vehicle alarm. A value of 0 stored in that location indicates that passive arming is disabled. A value of 1 stored in that location indicates that passive arming is enabled. A liquid crystal display is used to display the names of the user settable features and the corresponding value for that feature in the programming memory. The meaning of the value could alternately be displayed. The word “enabled” could be displayed next to “passive arming” on the display, for example, if the value in the passive arming location of the programming memory is 1. 
     In one embodiment, buttons on the face of the controller allow the user to scroll up and down through a list of programmable features and their settings as represented in the programming memory. Other buttons are provided to allow the user to alter the value in the programming memory and consequently, the display of the status of that location on the display. A third button is provided to cause the remote programming unit to transmit the data in the program memory to the base controller for storage in the operation memory. 
     In another embodiment, the remote programming unit is embodied in the combination of software and a personal computer capable of running the software. The computer can be used to serve the functions described for the microcontroller, instruction memory and program memory of the hand-held unit above. The user interface of the personal computer can be used to perform the functions of the display and buttons of the hand-held unit embodiment. An application with a graphical user interface, such as those of programs made for the Microsoft WINDOWS® operating system could be used to make the program easy to use. 
     FIG. 5 shows a block diagram of such an embodiment. A transmitter  54  packaged as a personal computer peripheral can be connected to the computer  50  to perform the function of the programming transmitter  11  of FIG.  4 . The computer and transmitter can be connected through the computer interface  52 , which can be an RS-232 connection to the computer&#39;s serial port, or it can be a connection to the computer&#39;s parallel port. Alternately, the transmitter could be placed on a printed circuit card and the computer interface could be embodied by peripheral expansion busses known in the art, such as Industry Standard Architecture (ISA), Extended Industry Standard Architecture (EISA), or Peripheral Component Interconnect (PCI). These embodiments describe a peripheral unit with a minimal amount of circuitry. As is well known in the art, more functionality can be added to the computer peripheral described by placing a programming memory and microcontroller on the peripheral although those functions can be performed by the personal computer. This could have the effect of freeing up the processor of the personal computer for other tasks, or avoiding data overruns in the receive circuitry seen in serial communications when the processor of the personal computer is under a high load. 
     One skilled in the art would also recognize that the invention could be embodied in by adding an appropriately packaged transmitter to any device with a user interface, processing functionality capable of performing the functions of the microcontroller, instruction memory and program memory of the hand-held unit described above and an expansion port. The transmitter could, for example, be placed on a PC Card, which is a credit card-sized device for use with a lap-top computer with Personal Computer Memory Card International Association (PCMCIA) expansion ports. A similar device could be created for use with a hand held personal assistant such as a PALM PILOT® personal assistant device, by Palm Corporation. 
     While FIG. 4 shows base receiver  10 , in use for receiving commands sent by the user transmitter  12 , and from the programming transmitter  11 , a person skilled in the art will recognize that separate radio receivers could be used to receive instructions from each of these two sources. 
     The wireless transmission link between the programming transmitter  11 , the base receiver  10  and user transmitter  12  may use any radio frequencies and modulation techniques commonly known in the art for data transmission. Examples of modulation techniques that would work include Pulse Width Modulation (PWM), Pulse Position Modulation (PPM), Phase Shift Keying (PSK), and Frequency Modulation (FM). It should also be noted that the wireless transmissions need not travel directly between the programming transmitter  11 , or user transmitter  12  and the base receiver  10 . Transmissions may be repeated through pager networks, cell phone networks, or satellite services, such a Global Positioning System (GPS). The wireless link may also be established using electromagnetic signals, which are in the infrared range of frequencies and, which serve the same purposes. 
     FIG. 6 describes a possible format of the data transmitted by remote programming unit  26  of FIG.  4 . In one embodiment of the vehicle security system, the data transmitted by the function-programming signals are divided into three types of data. One comprises a function-programming command section  64 , there is also a function-setting information section  66 , and a check-sum section  68 . As persons skilled in the art should be aware, these three sections can be transmitted in any order. This order is determined in advance, however, and the base controller  30  is preset to expect the order that the remote programming unit is preset to send. 
     The function-programming command section may contain an identification code that is unique to the base controller and its associated remote programming units and user transmitters. This can prevent accidental or intentional reprogramming of the base controller, by remote programming units other than those of the vehicle owner. 
     In one embodiment, the identification code is changed in a predefined way after each successful transmission for security purposes. This could foil a thief&#39;s attempt to receive and store the identification code transmitted by the vehicle owner&#39;s remote programming unit and retransmit of the same code at a later time in an effort to alter the settings of the base microcontroller. In another embodiment, the base controller waits a certain length of time after an incorrect identification code is received before it will accept the correct identification code. This hinders malicious attempts to cycle through all possible identification codes in attempt to find the correct one. 
     In another embodiment, the data sections are sent together in a packet which is encrypted with a code known to all the associated units. Transmissions will only be heeded if they are encoded with the correct code. 
     FIG. 7 is a flow diagram illustrating steps executed by the microcontroller of base controller  30  of the vehicle security system depicted in FIG.  4 . These commands or steps, stored in the base instruction memory, are followed by the base microcontroller in monitoring the activities in the vehicle security system, and also in modifying the contents of operation memory. Essentially, the program can be a recursive routine, starting from the program start step, concluding at a program return step, and then recycling. 
     For example, the base controller  30  of the system of FIG. 4 starts the routine of FIG. 7 at the start step  700 . At step  705 , the system determines whether or not a function-programming request code is received. If the system is requested by the user to implement a function-programming operation, the routine continues at step  710 , where the auditory alarm can be driven to sound predetermined chirps; and the vehicle lights may also be flashed in predetermined patterns. This signals to the user of the system that the system acknowledges the programming request and is responding accordingly. 
     At a subsequent step  715 , the vehicle security system is substantially programmed based on the received information. The new function settings are effectively stored in the operation memory. With the conclusion of the actual reprogramming of the system, the routine has concluded one program cycle, as indicated by step  720 , and program control is returned to step  700  for another cycle of system monitoring operation. 
     Upon determining that the system feature programming code was not received at step  705 , which is a situation of normal system monitoring operation, the routine continues at step  725 . At step  725 , another decision is made to determine whether or not a security event has occurred. If there is no situation requiring a response, the routine concludes at step  730 , where the program control is returned to step  700  for another cycle of system monitoring operation. 
     If there has been a security event that triggered any of the various system sensors as determined at step  725 , the routine proceeds to step  735  for the initiation of the alarm function corresponding to the nature of the triggering event. After the conclusion of the alarm operation, the routine concludes at step  740  and the control returns to the starting step  700  for another cycle of monitoring program execution. 
     FIG.  8 . shows another embodiment of the invention. This embodiment is similar to the embodiment shown in FIG. 4. A programming transceiver  80 , however, is substituted for the programming transmitter  11  of FIG. 4. A base transceiver  85  is also substituted for the base receiver  10  of FIG.  4 . In this embodiment, the user can initiate a program read request command. This could be initiated by pressing a dedicated button on the face of the hand-held embodiment of the remote programming unit  26 , for example. 
     The instructions in the instruction memory of the remote programming unit are programmed so that user initiation of a program read request command causes the microcontroller of the remote programming unit to send a program read request signal to the programming transceiver. This causes a program read request signal to be transmitted by the programming transceiver. This signal can be sent in a multi-section transmission, or encrypted packet, as described in relation to FIG.  6 . 
     When base controller  30  receives a program read request signal, it sends data from operation memory  3  to base transceiver  85  for transmission. This data can be sent in a multi-section transmission, or encrypted packet, as described in relation to FIG.  6 . This data is received by programming transceiver  80 , and passed to remote programming unit  26 . There, it is stored in the programming memory of the remote program unit, for display, manipulation and transmission as described above. In one embodiment, the data received overwrites the data that had previously occupied the programming memory. In another embodiment, the remote programming unit contains a separate program receive memory where incoming data can be stored. This memory could be embodied as a device separate from the device that embodies the programming memory. It could also be embodied in the same physical device as the programming memory, but at addresses other than those used for the programming memory. Data in the program receive memory can later be manipulated by the microcontroller in the base unit and transferred to the programming memory for transmission. When the remote programming unit is embodied in a personal computer, configuration data received by the programming transceiver can be stored in a file on the hard drive of the computer or any other persistence mechanism. Data stored in this way could later be recalled, modified and loaded into the programming memory of the remote programming unit. 
     The present invention has been described with respect to particular embodiments thereof, and numerous modifications can be made which are within the scope of the invention as set forth in the claims.