Abstract:
A method for distributing a sequence of access codes to a plurality of users, comprising comprises storing a set of sequences of access codes, wherein each sequence of access codes of the set can be programmed for use by a remote access device with an access system of a specific type. A same sequence of access codes is provided to both a first remote access device of a first user and to a second remote access device of a second user.

Description:
CROSS-REFERENCE TO RELATED APPLICATIONS 
     This application claims priority to U.S. Application Ser. No. 61/793,858, filed on Mar. 15, 2013. 
    
    
     TECHNICAL FIELD 
     This invention relates to remote keyless vehicle access systems, and more particularly to distributing codes for remote keyless vehicle access systems to use. 
     BACKGROUND 
     Wireless signal transmitter-receiver systems are employed in a variety of security systems and remote activation systems. Remote access devices are generally used in the automotive industry to activate and deactivate vehicle access systems. Remote access devices can also perform other tasks including remote starting, locking and unlocking doors, unlatching trunk decks or tail gates, opening windows or doors and operating convertible top mechanisms. 
     An original remote access device may use a code generator capable of generating a very large number of unique codes to operate with a unique vehicle access system. These codes work with certain vehicle types. 
     3rd parties might want to build replacement remote access devices, but they might not know the code generator&#39;s algorithm or seed. 
     SUMMARY 
     One aspect of the invention features a method for distributing a sequence of access codes to a plurality of users. The method comprises storing a set of sequences of access codes, wherein each sequence of access codes of the set can be programmed for use by a remote access device with an access system of a specific type. The method also comprises providing a first sequence of access codes to a first remote access device of a first user to remotely operate a vehicle having the specific type of access system. The method also comprises providing the first sequence of access codes to a second remote access device of a second user to remotely operate a second vehicle having the specific type of access system. 
     Another aspect of the invention features a server comprising one or more processors and a memory system configured to store a set of sequences of access codes, wherein each sequence of access codes of the set can be programmed for use by a remote access device with an access system of a specific type. The server is configured to provide a first sequence of access codes to a first remote access device of a first user to remotely operate a first vehicle having the specific type of access system. It is also configured to provide the same first sequence of access codes to a second remote access device of a second user to remotely operate a second vehicle having the specific type of access system. 
     Particular implementations of the subject matter described in this specification can be implemented so as to realize one or more of the following advantages: This invention allows manufacturers of remote access devices and distributors of sequences of access codes to more efficiently distribute the sequences of access codes into remote access devices. They can provide fewer codes to a greater number of remote access devices with minimal risk of the remote access devices interfering with each other. 
     The details of one or more embodiments of the invention are set forth in the accompanying drawings and the description below. Other features, objects, and advantages of the invention will be apparent from the description and drawings, and from the claims. 
    
    
     
       DESCRIPTION OF DRAWINGS 
         FIG. 1  is a system for distributing sequences of access codes. 
         FIG. 2  is a flowchart of a method for distributing sequences of access codes. 
         FIG. 3  is a flowchart of a method for determining which sequence of access codes to distribute. 
         FIG. 4  is a flowchart of another method for determining which sequence of access codes to distribute. 
         FIG. 5  is a flowchart of another method for determining which sequence of access codes to distribute. 
         FIG. 6  is a flowchart of a method for deciding when to start using the distribution methods. 
         FIG. 7  is a flowchart of a method for distributing indexes of a sequence of access codes. 
     
    
    
     Like reference symbols in the various drawings indicate like elements. 
     DETAILED DESCRIPTION 
       FIG. 1  is a system  100  for distributing sequences of access codes. A service provider for remote access devices may store sets of sequences of access codes. Each set contains sequences of access codes that work with certain types of vehicles, e.g., a particular year, make, model, and trim. A server  101  stores the sets of sequences of access codes in a memory. Vehicle owners will request from the server a sequence of access codes that will work with the owner&#39;s particular type of vehicle. The server can use one or more processors to process the request and make any necessary decisions. 
     The server will distribute the sequences of access codes through a communication network  103  such as the internet. The server downloads the sequences into remote access devices  105 [ a - c ]. Remote access device  105   a  downloads a first sequence of codes compatible for operation with vehicle access system  107   a  of a first type of vehicle. Remote access device  105   b  downloads a different sequence of codes compatible for use with a vehicle access system  107   b  for the same type of vehicle. Remote access device  105   c  downloads a different sequence of codes compatible for use with vehicle access system  107   c  for a different type of vehicle. 
     Because remote access devices  105   a  and  105   b  share the same sequence of access codes, they risk operating each other&#39;s vehicle access system. Sometimes, a vehicle registration can reduce or eliminate this risk when the vehicle access system registers an ID of the remote access devices that it allows access from, but not every vehicle access system has this capability. Distributing different sequences of access codes, such the different sequence of access codes to remote access device  105   c , will also reduce or eliminate the risk of cross-operation. 
       FIG. 2  is a flowchart  200  of a method for distributing sequences of access codes. A server stores  201  a set of sequences of access codes that a remote access device can use to operate an access system of a particular type of vehicle. In some examples, the server stores a set of sequences of access codes that a remote access device can use to operate a certain type of access system that can be used with multiple vehicles. The server receives requests  203  from remote access devices needing to work with an access system of the particular type of vehicle. 
     The server determines  205  which sequences to provide to which remote access devices. To make the determination, the server can use any of the methods later disclosed, e.g., as shown by the later flowcharts of  FIGS. 3-6 . Sometimes, it may provide a sequence that it did not previously provide to another remote access device. 
     The server decides to provide  207  sequence #1 to a first remote access device. It may also provide  209  sequence #1 to a second remote access device after determining remote access device #2 will not likely interfere with the operation of remote access device #1. It may provide  211  sequence #3 to a third remote access device. 
       FIG. 3  is a flowchart  300  of a method for determining which sequence of access codes to distribute based on location. A vehicle owner sends a request to a server to download a sequence of access codes compatible with the owner&#39;s vehicle type onto the vehicle owner&#39;s remote access device. A server receives  301  the request and identifies the set of sequences of access codes that work with the owner&#39;s vehicle type. 
     The server may request  303  location information about the vehicle, the owner, or the remote access device. The server uses the location information to determine  305  if the remote access device is or will be used at least a minimum threshold distance away from other remote access devices using a certain sequence. The minimum distance can be a distance such as 1 mile or 1,000 miles. Alternatively, it can be based on a geographic boundary, such as by state, zip code, city, country, etc. 
     If the distance between the remote access devices exceeds the minimum threshold distance, the server can provide  307  the same certain sequence of access values that it previous provided for use to a different vehicle access device for use with a different owner&#39;s vehicle. If the distance between the remote access devices does not exceed the minimum distance threshold, then the server provides  309  a new sequence of access values for download into the requesting owner&#39;s remote access device, the new sequence of access values having not been previously provided to a different owner to download into a different remote access device. 
       FIG. 4  is a flowchart  400  of another method for determining which sequence of access codes to distribute. A vehicle owner sends a request to a server to download a sequence of access codes compatible with the owner&#39;s vehicle type onto the owner&#39;s remote access device. A server receives  401  the request and identifies the set of sequences of access codes that work with the owner&#39;s vehicle type. 
     The server may request location information about the vehicle, the owner, or the remote access device. The server uses the location information to determine  403  if the vehicle, vehicle&#39;s owner, or remote access device reside in a densely populated area. It may also determine if other vehicles, owners, or access devices that have used a certain sequence of vehicle access codes reside in a densely populated area. If yes, then the server may set  405  a high threshold distance, e.g., 1000 miles or a certain state. If no, then a server may set a low  407  threshold distance, e.g., 100 miles or a county, city, or zip code boundary. 
     The server then decides  409  if the distance between the remote access device and other remote access devices exceed the minimum threshold distance. If the minimum distance threshold is met, then the server can provide  411  a same sequence of access values that it previous provided for use to a different vehicle access device for use with a different owner&#39;s vehicle. If the distance threshold is not met, then the server provides  413  a new sequence of access values for download into the requesting owner&#39;s remote access device, the new sequence of access values having not been previously provided to a different owner to download into a different remote access device. 
       FIG. 5  is a flowchart  500  of another method for determining which sequence of access codes to distribute. A vehicle owner sends a request to a server to download a sequence of access codes compatible with the owner&#39;s vehicle type onto the vehicle owner&#39;s remote access device. A server receives  501  the request and identifies the set of sequences of access codes that work with the owner&#39;s vehicle type. 
     The server uses time information, e.g., the time of the request, to determine  503  if a minimum amount of time elapsed since the server last provided a certain sequence to a different access device. The minimum elapsed time can be, for example, 1 year or 10 years. The minimum elapsed time may be set differently for users at different locations, e.g. based on distance or population density. 
     If the elapsed time exceeds the minimum amount of time, the server can provide  507  the same certain sequence of access values that it previous provided for use to a different vehicle access device for use with a different owner&#39;s vehicle. If the elapsed time does not exceed the minimum amount of time, then the server provides  509  a new sequence of access values for download into the requesting owner&#39;s remote access device, the new sequence of access values having not been previously provided to a different owner to download into a different remote access device. 
       FIG. 6  is a flowchart  600  of a method for deciding when to start using the distribution methods. A vehicle owner sends a request to a server to download a sequence of access codes compatible with the owner&#39;s vehicle type onto the owner&#39;s remote access device. A server receives  601  the request and identifies the set of sequences of access codes that work with the owner&#39;s vehicle type. 
     The server checks  603  if it previously provided all of the sequences in the set to other access devices of other vehicle owners. If not, the server provides  607  a previously unused sequence to the vehicle access device of the requesting owner. If so, then the server can provide  605  a previously used sequence of access codes. In doing so, the service may ensure that it did not provide a different owner same sequence of access codes within a minimum distance or time, e.g., by using methods in  FIGS. 3-5 . 
       FIG. 7  is a flowchart  700  of a method for distributing indexes of a sequence of access codes. A vehicle owner sends a request to a server to download a sequence of access codes compatible with the owner&#39;s vehicle type onto the owner&#39;s remote access device. A server receives  701  the request and identifies the set of sequences of access codes that work with the owner&#39;s vehicle type. 
     The server may decide  703  to provide a previously used sequence to the access device of the owner, e.g., by using methods in  FIGS. 3-5 . Having done so, it may also provide  705  an reference index to the remote access device of the requesting owner. The remote access device begins issuing codes from the sequence at the position in the sequence specified by the reference index. 
     For example, a sequence of access codes may contain 200,000 access codes. The server may have previously provided to an access device the sequence of access codes with a reference index to start at the first access code. Now, the server provides to the access device of the requesting owner the same sequence of codes with a reference index to start at a different point, e.g., the 100,000th code. 
     Alternatively, the server may distribute the index in other ways, such has incrementally, algorithmically, or randomly. Examples of algorithms include calculating the farthest unused index and calculating an expected index that a previous user may be currently using. For example, a user starting at the first index of a sequence may, on average, increment 5 indexes per day and reach index 5000 after 1000 days, so a second user given the same sequence can be given the first index again, but not the index of 5000. 
     Techniques for distributing the indexes can employ variations of the methods used for distributing sequences shown in  FIGS. 3-7 . 
     A number of embodiments of the invention have been described. Nevertheless, it will be understood that various modifications may be made without departing from the spirit and scope of the invention. For example, the information requested or used in the determinations may comprise information about a vehicle&#39;s location, a vehicle owner&#39;s location, or an expected use location instead of location about the remote access device. The various methods shown by the figures can be varied and rearranged, and they can be used in parallel, sequence, or combination with the methods shown by other figures. Accordingly, other embodiments are within the scope of the following claims.