Abstract:
A method of establishing wireless communications between an interrogator and individual ones of multiple wireless identification devices, the method comprising utilizing a tree search method to establish communications without collision between the interrogator and individual ones of the multiple wireless identification devices, a search tree being defined for the tree search method, the tree having multiple levels representing subgroups of the multiple wireless identification devices, the number of devices in a subgroup in one level being half of the number of devices in the next higher level, the tree search method employing level skipping wherein at least one level of the tree is skipped. A communications system comprising an interrogator, and a plurality of wireless identification devices configured to communicate with the interrogator in a wireless fashion, the respective wireless identification devices having a unique identification number, the interrogator being configured to employ a tree search technique to determine the unique identification numbers of the different wireless identification devices so as to be able to establish communications between the interrogator and individual ones of the multiple wireless identification devices without collision by multiple wireless identification devices attempting to respond to the interrogator at the same time, wherein levels of the tree are occasionally skipped.RFID tags are managed by an interrogator. In one embodiment, the interrogator sends a first command indicating a first value and a first memory range, and a second command indicating second value and a second memory range. The first memory range differs from the second memory range by at least two bits. RFID tags compare the first and second values to corresponding values stored in the tags to determine if the tags are selected. Selected tags may respond to the interrogator with independently generated random numbers.

Description:
CROSS REFERENCE TO RELATED APPLICATION 
     ThisMore than one reissue application has been filed for the reissue of U.S. Pat. No.  6 , 307 , 848 , which reissue applications are the initial, present reissue application Ser. No.  10 / 693 , 697  filed Oct.  23 ,  2003 , a continuation reissue applciation Ser. No.  11 / 865 , 580  filed Oct.  1 ,  2007 , a continuation reissue application Ser. No.  11 / 865 , 584  filed Oct.  1 ,  2007 , and a further continuation reissue application Ser. No.  12 / 604 , 329  filed Oct.  22 ,  2009 , where the present application is a Continuation  reissue application of U.S. Pat. No.  6 , 307 , 848 , issued from U.S. patent application Ser. No.  09 / 773 , 461 , filed Jan.  31 ,  2001 , which is a continuation application of U.S. patent application Ser. No. 09/551,304, filed Apr.  18, 2000, and  titled “Method of Addressing Messages, and Establishing Communications Using a Tree Search Technique That Skips Levels” and now U.S. Pat. No. 6,226,300 , which in turn is a continuation of U.S. patent application Ser. No. 09/026,045, filed Feb. 19, 1998, which is now U.S. Pat. No. 6,072,801. 
    
    
     TECHNICAL FIELD 
     This invention relates to communications protocols and to digital data communications. Still more particularly, the invention relates to data communications protocols in mediums such as radio communication or the like. The invention also relates to radio frequency identification devices for inventory control, object monitoring, determining the existence, location or movement of objects, or for remote automated payment. 
     BACKGROUND OF THE INVENTION 
     Communications protocols are used in various applications. For example, communications protocols can be used in electronic identification systems. As large numbers of objects are moved in inventory, product manufacturing, and merchandising operations, there is a continuous challenge to accurately monitor the location and flow of objects. Additionally, there is a continuing goal to interrogate the location of objects in an inexpensive and streamlined manner. One way of tracking objects is with an electronic identification system. 
     One presently available electronic identification system utilizes a magnetic coupling system. In some cases, an identification device may be provided with a unique identification code in order to distinguish between a number of different devices. Typically, the devices are entirely passive (have no power supply), which results in a small and portable package. However, such identification systems are only capable of operation over a relatively short range, limited by the size of a magnetic field used to supply power to the devices and to communicate with the devices. 
     Another wireless electronic identification system utilizes a large active transponder device affixed to an object to be monitored which receives a signal from an interrogator The device receives the signal, then generates and transmits a responsive signal. The interrogation signal and the responsive signal are typically radio-frequency (RF) signals produced by an RF transmitter circuit. Because active devices have their own power sources, and do not need to be in close proximity to an interrogator or reader to receive power via magnetic coupling. Therefore, active transponder devices tend to be more suitable for applications requiring tracking of a tagged device that may not be in close proximity to an interrogator. For example, active transponder devices tend to be more suitable for inventory control or tracking. 
     Electronic identification systems can also be used for remote payment. For example, when a radio frequency identification device passes an interrogator at a toll booth, the toll booth can determine the identity of the radio frequency identification device, and thus of the owner of the device, and debit an account held by the owner for payment of toll or can receive a credit card number against which the toll can be charged. Similarly, remote payment is possible for a variety of other goods or services. 
     A communication system typically includes two transponders: a commander station or interrogator, and a responder station or transponder device which replies to the interrogator. 
     If the interrogator has prior knowledge of the identification number of a device which the interrogator is looking for, it can specify that a response is requested only from the device with that identification number. Sometimes, such information is not available. For example, there are occasions where the interrogator is attempting to determine which of multiple devices are within communication range. 
     When the interrogator sends a message to a transponder device requesting a reply, there is a possibility that multiple transponder devices will attempt to respond simultaneously, causing a collision, and thus causing an erroneous message to be received by the interrogator. For example, if the interrogator sends out a command requesting that all devices within a communications range identify themselves, and gets a large number of simultaneous replies, the interrogator may not be able to interpret any of these replies. Thus, arbitration schemes are employed to permit communications free of collisions. 
     In one arbitration scheme or system, described in commonly assigned U.S. Pat. Nos. 5,627,544; 5,583,850; 5,500,650; and 5,365,551, all to Snodgrass et al. and all incorporated herein by reference, the interrogator sends a command causing each device of a potentially large number of responding devices to select a random number from a known range and use it as that device&#39;s arbitration number. By transmitting requests for identification to various subsets of the full range of arbitration numbers, and checking for an error-free response, the interrogator determines the arbitration number of every responder station capable of communicating at the same time. Therefore, the interrogator is able to conduct subsequent uninterrupted communication with devices, one at a time, by addressing only one device. 
     Another arbitration scheme is referred to as the Aloha or slotted Aloha scheme. This scheme is discussed in various references relating to communications, such as Digital Communications: Fundamentals and Applications, Bernard Sklar, published January 1988 by Prentice Hall. In this type of scheme, a device will respond to an interrogator using one of many time domain slots selected randomly by the device. A problem with the Aloha scheme is that if there are many devices, or potentially many devices in the field (i.e. in communications range, capable of responding) then there must be many available slots or many collisions will occur. Having many available slots slows down replies. If the magnitude of the number of devices in a field is unknown, then many slots are needed. This results in the system slowing down significantly because the reply time equals the number of slots multiplied by the time period required for one reply. 
     An electronic identification system which can be used as a radio frequency identification device, arbitration schemes, and various applications for such devices are described in detail in commonly assigned U.S. patent application Ser. No. 08/705,043, filed Aug. 29, 1996, and now U.S. Pat. No.  6 , 130 , 602 , and incorporated herein by reference. 
     SUMMARY OF THE INVENTION 
     The invention provides a wireless identification device configured to provide a signal to identify the device in response to an interrogation signal. 
     Another aspect of the invention provides a method of establishing wireless communications between an interrogator and individual ones of multiple wireless identification devices. A tree search method is utilized to establish communications without collision between the interrogator and individual ones of the multiple wireless identification devices. A search tree is defined for the tree search method. The tree has multiple levels representing subgroups of the multiple wireless identification devices. The number of devices in a subgroup in one level is half of the number of devices in the next higher level. The tree search method employs level skipping wherein at least one level of the tree is skipped. 
     Another aspect of the invention provides a communications system comprising an interrogator, and a plurality of wireless identification devices configured to communicate with the interrogator in a wireless fashion. The respective wireless identification devices have a unique identification number. The interrogator is configured to employ a tree search technique to determine the unique identification numbers of the different wireless identification devices so as to be able to establish communications between the interrogator and individual ones of the multiple wireless identification devices without collision by multiple wireless identification devices attempting to respond to the interrogator at the same time. Levels of the tree are occasionally skipped. 
     One aspect of the invention provides a radio frequency identification device comprising an integrated circuit including a receiver, a transmitter, and a microprocessor. In one embodiment, the integrated circuit is a monolithic single die single metal layer integrated circuit including the receiver, the transmitter, and the microprocessor. The device of this embodiment includes an active transponder, instead of a transponder which relies on magnetic coupling for power, and therefore has a much greater range. 
     In one embodiment, an interrogator may send a first command indicating a first value and a first memory range, and a second command indicating second value and a second memory range. The first memory range may differ from the second memory range by at least two bits. RFID tags may compare the first and second values to corresponding values stored in the tags to determine if the tags are selected. Selected tags may respond to the interrogator with independently generated random numbers.  
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       Preferred embodiments of the invention are described below the reference to the following accompanying drawings. 
         FIG. 1  is a high level circuit schematic showing an interrogator and a radio frequency identification device embodying the invention. 
         FIG. 2  is a front view of a housing, in the form of a badge or card, supporting the circuit of  FIG. 1  according to one embodiment the invention. 
         FIG. 3  is a front view of a housing supporting the circuit of  FIG. 1  according to another embodiment of the invention. 
         FIG. 4  is a diagram illustrating a tree splitting sort method for establishing communication with a radio frequency identification device in a field of a plurality of such devices. 
       FIG.  5 . is a diagram illustrating a modified tree splitting sort method for establishing communication with a radio frequency identification device in a field of a plurality of such devices. 
     
    
    
     DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS 
     This disclosure of the invention is submitted in furtherance of the constitutional purposes of the U.S. Patent Laws “to promote the progress of science and useful arts” (Article 1, Section 8). 
       FIG. 1  illustrates a wireless identification device  12  in accordance with one embodiment of the invention. In the illustrated embodiment, the wireless identification device is a radio frequency data communication device  12 , and includes RFID circuitry  16 . In the illustrated embodiment, the RFID circuitry is defined by an integrated circuit as described in the above-incorporated patent application Ser. No. 08/705,043, filed Aug.  29, 1996 and now U.S. Pat. No. 6,130,603 . Other embodiments are possible. A power source  18  is connected to the integrated circuit  16  to supply power to the integrated circuit  16 . In one embodiment, the power source  18  comprises a battery. The device  12  further includes at least one antenna  14  connected to the circuitry  16  for wireless or radio frequency transmission and reception by the circuitry  16 . 
     The device  12  transmits and receives radio frequency communications to and from an interrogator  26 . An exemplary interrogator is described in commonly assigned U.S. patent application Ser. No. 08/907,689, filed Aug. 8, 1997 and now U.S. Pat. No.  6 , 289 , 209 , which is incorporated herein by reference. Preferably, the interrogator  26  includes an antenna  28 , as well as dedicated transmitting and receiving circuitry, similar to that implemented on the integrated circuit  16 . 
     Generally, the interrogator  26  transmits an interrogation signal or command  27  via the antenna  28 . The device  12  receives the incoming interrogation signal via its antenna  14 . Upon receiving the signal  27 , the device  12  responds by generating and transmitting a responsive signal or reply  29 . The responsive signal  29  typically includes information that uniquely identifies, or labels the particular device  12  that is transmitting, so as to identify any object or person with which the device  12  is associated. 
     Although only one device  12  is shown in  FIG. 1 , typically there will be multiple devices  12  that correspond with the interrogator  26 , and the particular devices  12  that are in communication with the interrogator  26  will typically change over time. In the illustrated embodiment in FIG.  1 . there is no communication between multiple devices  12 . Instead, the devices  12  respectively communicate with the interrogator  26 . Multiple devices  12  can be used in the same field of an interrogator  26  (i.e., within communications range of an interrogator  26 ). Similarly, multiple interrogators  26  can be in proximity to one or more of the devices  12 . 
     The radio frequency data communication device  12  can be included in any appropriate housing or packaging. Various methods of manufacturing housings are described in commonly assigned U.S. patent application Ser. No. 08/800,037, filed Feb. 13, 1997, and now U.S. Pat. No.  5 , 988 , 510 , which is incorporated herein by reference. 
       FIG. 2  shows but one embodiment in the form of a card or badge  19  including the radio frequency data communication device  12 , and a housing  11  including plastic or other suitable material. In one embodiment, the front face of the badge has visual identification features such as graphics, text, information found on identification or credit cards, etc. 
       FIG. 3  illustrates but one alternative housing supporting the device  12 . More particularly,  FIG. 3  shows a miniature housing  20  encasing the device  12  to define a tag which can be supported by an object (e.g., hung from an object, affixed to an object, etc.). Although two particular types of housings have been disclosed, the device  12  can be included in any appropriate housing. 
     If the power source  18  is a battery, the battery can take any suitable form. Preferably, the battery type will be selected depending on weight, size, and life requirements for a particular application. In one embodiment, the battery  18  is a thin profile button-type cell forming a small, thin energy cell more commonly utilized in watches and small electronic devices requiring a thin profile. A conventional button-type cell has a pair of electrodes, an anode formed by one face and a cathode formed by an opposite face. In an alternative embodiment, the power source  18  comprises a series connected pair of button type cells. Instead of using a battery, any suitable power source can be employed. 
     The circuitry  16  further includes a backscatter transmitter and is configured to provide a responsive signal to the interrogator  26  by radio frequency. More particularly, the circuitry  16  includes a transmitter, a receiver, and memory such as is described in U.S. patent application Ser. No.  08/705,043, filed Aug. 29, 1996 and now U.S. Pat. No. 6,130,602.    
     Radio frequency identification has emerged as a viable and affordable alternative to tagging or labeling small to large quantities of items. The interrogator  26  communicates with the devices  12  via an RF link, so all transmissions by the interrogator  26  are heard simultaneously by-all devices  12  within range. 
     If the interrogator  26  sends out a command requesting that all devices  12  within range identify themselves, and gets a large number of simultaneous replies, the interrogator  26  may not be able to interpret any of these replies. Therefore, arbitration schemes are provided. 
     If the interrogator  26  has prior knowledge of the identification number of a device  12  which the interrogator  26  is looking for, it can specify that a response is requested only from the device  12  with that identification number. To target a command at a specific device  12 , (i.e., to initiate point-on-point communication), the interrogator  26  must send a number identifying a specific device  12  along with the command. At start-up, or in a new or changing environment, these identification numbers are not known by the interrogator  26 . Therefore, the interrogator  26  must identify all devices  12  in the field (within communication range).such as by determining the identification numbers of the devices  12  in the field. After this is accomplished, point-to-point communication can proceed as desired by the interrogator  26 . 
     Generally speaking, RFID systems are a type of multiaccess communication system. The distance between the interrogator  26  and devices  12  within the field is typically fairly short (e.g.. several meters), so packet transmission time is determined primarily by packet size and baud rate. Propagation delays are negligible. In RFID systems, there is a potential for a large number of transmitting devices  12  and there is need for the interrogator  26  to work in a changing environment, where different devices  12  are swapped in and out frequently (e.g.. as inventory is added or removed). In such systems, the inventors have determined that the use of random access methods work effectively for contention resolution (i.e.. for dealing with collisions between devices  12  attempting to respond to the interrogator  26  at the same time). 
     RFID systems have some characteristics that are different from other communications systems. For example, one characteristic of the illustrated RFID systems is that the devices  12  never communicate without being prompted by the interrogator  26 . This is in contrast to typical multiaccess systems where the transmitting units operate more independently. In addition, contention for the communication medium is short lived as compared to the ongoing nature of the problem in other multiaccess systems. For example, in a RFID system, after the devices  12  have been identified, the interrogator can communicate with them in a point-to-point fashion. Thus, arbitration in a RFID system is a transient rather than steady-state phenomenon. Further, the capability of a device  12  is limited by practical restrictions on size, power, and cost. The lifetime of a device  12  can often be measured in terms of number of transmissions before battery power is lost. Therefore, one of the most important measures of system performance in RFID arbitration is total time required to arbitrate a set of devices  12 . Another measure is power consumed by the devices  12  during the process. This is in contrast to the measures of throughput and packet delay in other types of multiaccess systems. 
       FIG. 4  illustrates one arbitration scheme that can be employed for communication between the interrogator and devices  12 . Generally, the interrogator  26  sends a command causing each device  12  of a potentially large number of responding devices  12  to select a random number from a known range and use it as that device&#39;s arbitration number. By transmitting requests for identification to various subsets of the full range of arbitration numbers, and checking for an error-free response, the interrogator  26  determines the arbitration number of every responder station capable of communicating at the same time. Therefore, the interrogator  26  is able to conduct subsequent uninterrupted communication with devices  12 , one at a time, by addressing only one device  12 . 
     Three variables are used: an arbitration value (AVALUE), an arbitration mask (AM ASK), and a random value ID (RV). The interrogator sends an Identify command (IdentifyCmnd) causing each device of a potentially large number of responding devices to select a random number from a known range and use it as that device&#39;s arbitration number. The interrogator sends an arbitration value (AVALUE) and an arbitration mask (AMASK) to a set of devices  12 . The receivins devices  12  evaluate the following equation: (AMASK &amp; AVALUE)═(AMASK &amp; RV) wherein “&amp;” is a bitwise AND function, and wherein “═” is an equality function. If the equation evaluates to “1” (TRUE), then the device  12  will reply. If the equation evaluates to “0” (FALSE), then the device  12  will not reply. By performing this in a structured manner, with the number of bits in the arbitration mask being increased by one each time, eventually a device  12  will respond with no collisions. Thus, a binary search tree methodology is employed. 
     An example using actual numbers will now be provided using only four bits, for simplicity, reference being made to FIG.  4 . In one embodiment, sixteen bits are used for AVALUE and AMASK. Other numbers of bits can also be employed depending, for example, on the number of devices  12  expected to be encountered in a particular application, on desired cost points, etc. 
     Assume, for this example, that there are two devices  12  in the field, one with a random value (RV) of 1100 (binary), and another with a random value (RV) of 1010 (binary). The interrogator is trying to establish communications without collisions being caused by the two devices  12  attempting to communicate at the same time. 
     The interrogator sets AVALUE to 0000 (or “don&#39;t care” for all bits, as indicated by the character “X” in  FIG. 4 ) and AMASK to 0000. The interrogator transmits a command to all devices  12  requesting that they identify themselves. Each of the devices  12  evaluate (AMASK &amp; AVALUE)═(AMASK &amp; RV) using the random value RV that the respective devices  12  selected. If the equation evaluates to “1” (TRUE), then the device  12  will reply. If the equation evaluates to “0” (FALSE), then the device  12  will not reply. In the first level of the illustrated tree, AMASK is 0000 and anything bitwise ANDed with all zeros results in all zeros, so both the devices  12  in the field respond, and there is a collision. 
     Next, the interrogator sets AMASK to 0001 and AVALUE to 0000 and transmits an identify command. Both devices  12  in the field have a zero for their least significant bit, and (AMASK &amp; AVALUE)═(AMASK &amp; RV) will be true for both devices  12 . For the device  12  with a random value of 1100, the left side of the equation is evaluated as follows (0001 &amp; 0000)=0000. The right side is evaluated as (0001 &amp; 1100)=0000. The left side equals the right side, so the equation is true for the device  12  with the random value of 1100. For the device  12  with a random value of 1010, the left side of the equation is evaluated as (0001 &amp; 0000)=0000. The right side is evaluated as (0001 &amp; 1010)=0000. The left side equals the right side, so the equation is true for the device  12  with the random value of 1010. Because the equation is true for both devices  12  in the field, both devices  12  in the field respond, and there is another collision. 
     Recursively, the interrogator next sets AMASK to 0011 with AVALUE still at 0000 and transmits an Identify command. (AMASK &amp; AVALUE)═(AMASK &amp; RV) is evaluated for both devices  12 . For the device  12  with a random value of 1100, the left side of the equation is evaluated as follows (0011 &amp; 0000)=0000. The right side is evaluated as (0011 &amp; 1100)=0000. The left side equals the right side, so the equation is true for the device  12  with the random value of 1100. so this device  12  responds For the device  12  with a random value of 1010, the left side of the equation is evaluated as (0011 &amp; 0000)=0000. The right side is evaluated, as (0011 &amp; 1010)=0010. The left side does not equal the right side, so the equation is false for the device  12  with the random value of 1010. and this device  12  does not respond. Therefore, there is no collision, and the interrogator can determine the identity (e.g.. an identification number) for the device  12  that does respond. 
     De-recursion takes place, and the devices  12  to the right for the same AMASK level are accessed when AVALUE is set at 0010, and AMASK is set to 0011. 
     The device  12  with the random value of  1010  receives a command and evaluates the equation (AMASK &amp; AVALUE)═(AMASK &amp; RV). The left side of the equation is evaluated as (0011 &amp; 0010)=0010. The right side of the equation is evaluated as (0011 &amp; 1010)=0010. The right side equals the left side, so the equation is true for the device  12  with the random value of  1010 . Because there are no other devices  12  in the subtree, a good reply is returned by the device  12  with the random value of 1010. There is no collision, and the interrogator can determine the identity (e.g., an identification number) for the device  12  that does respond. 
     By recursion, what is meant is that a function makes a call to itself. In other words, the function calls itself within the body of the function. After the called function returns, de-recursion takes place and execution continues at the place just after the function call; i.e. at the beginning of the statement after the function call. 
     For instance, consider a function that has four statements (numbered 1,2,3,4) in it, and the second statement is a recursive,  call. Assume that the fourth statement is a return statement. The first time through the loop (iteration 1) the function executes the statement 2 and (because it is a recursive call) calls itself causing iteration 2 to occur. When iteration 2 gets to statement 2, it calls itself making iteration 3. During execution in iteration 3 of statement 1, assume that the function does a return. The information that was saved on the stack from iteration 2 is loaded and the function resumes execution at statement 3 (in iteration 2), followed by the execution of statement 4 which is also a return statement. Since there are no more statements in the function, the function de-recurses to iteration 1. Iteration 1, had previously recursively called itself in statement 2. Therefore, it now executes statement 3 (in iteration 1). Following that it executes a return at statement 4. Recursion is known in the art. 
     Consider the following code which can be used to implement operation of the method shown in FIG.  4  and described above. 
     
       
         
               
               
             
               
               
             
               
               
             
               
               
             
               
               
             
               
               
             
               
               
             
               
               
             
               
               
               
             
               
               
             
           
               
                   
                   
               
             
             
               
                   
                 Arbitrate(AMASK, AVALUE) 
               
             
          
           
               
                   
                    { 
               
             
          
           
               
                   
                       collision=IdentifyCmnd(AMASK, AVALUE) 
               
               
                   
                       if (collision) then 
               
             
          
           
               
                   
                             { 
               
             
          
           
               
                   
                              /* recursive call for left side */ 
               
             
          
           
               
                   
                             Arbitrate((AMASK&lt;&lt;1)+1, AVALUE) 
               
             
          
           
               
                   
                              /* recursive call for right side */ 
               
             
          
           
               
                   
                           Arbitrate((AMASK&lt;&lt;1)+1, AVALUE+(AMASK+1)) 
               
             
          
           
               
                   
                          } 
                 /* endif */ 
               
             
          
           
               
                   
                    } /* return */ 
               
               
                   
                   
               
             
          
         
       
     
     The symbol “&lt;&lt;” represents a bitwise left shift. means shift left by one place. Thus. 0001&lt;&lt;1 would be 0010. Note, however, that AMASK is originally called with a value of zero, and 0000&lt;&lt;1 is still 0000. Therefore, for the first recursive fall, AMASK=(AMASKL&lt;&lt;1)+1. So for the first recursive call, the value of AMASK is 0000+0001=0001. For the second call, AMASK=(0001&lt;&lt;1)+1=0010+1=0011. For the third recursive call. AMASK=(0011&lt;&lt;1)+1=0110+1=0111. 
     The routine generates values for AMASK and AVALUE to be used by the interrogator in an identify command “IdentifyCmnd.” Note that the routine calls itself if there is a collision. De-recursion occurs when there is no collision. AVALUE and AMASK would have values such as the following assuming collisions take place all the way down to the bottom of the tree. 
     
       
         
               
               
               
             
           
               
                   
                   
               
               
                   
                 AVALUE 
                 AMASK 
               
               
                   
                   
               
             
             
               
                   
                 0000 
                 0000 
               
               
                   
                 0000 
                 0001 
               
               
                   
                 0000 
                 0011 
               
               
                   
                 0000 
                 0111 
               
               
                   
                 0000 
                  1111* 
               
               
                   
                 1000 
                  1111* 
               
               
                   
                 0100 
                 0111 
               
               
                   
                 0100 
                  1111* 
               
               
                   
                 1100 
                  1111* 
               
               
                   
                   
               
             
          
         
       
     
     This sequence of AMASK, AVALUE binary numbers assumes that there are collisions all the way down to the bottom of the tree, at which point the Identify command sent by the interrogator is finally successful so that no collision occurs. Rows in the table for which the interrogator is successful in receiving a reply without collision are marked with the symbol “*”. Note that if the Identify command was successful at, for example, the third line in the table then the interrogator would stop going down that branch of the tree and start down another, so the sequence would be as shown in the following table. 
     
       
         
               
               
               
             
           
               
                   
                   
               
               
                   
                 AVALUE 
                 AMASK 
               
               
                   
                   
               
             
             
               
                   
                 0000 
                 0000 
               
               
                   
                 0000 
                 0001 
               
               
                   
                 0000 
                  0011* 
               
               
                   
                 0010 
                 0011 
               
               
                   
                 . . . 
                 . . . 
               
               
                   
                   
               
             
          
         
       
     
     This method is referred to as a splitting method. It works by splitting groups of colliding devices  12  into subsets that are resolved in turn. The splitting method can also be viewed as a type of tree search. Each split moves the method one level deeper in the tree. 
     Either depth-first or breadth-first traversals of the tree can be employed. Depth first traversals are performed by using recursion, as is employed in the code listed above. Breadth-first traversals are accomplished by using a queue instead of recursion. The following is an example of code for performing a breadth-first traversal. 
     
       
         
               
               
             
               
               
             
               
               
             
               
               
             
               
               
             
               
               
               
             
               
               
             
           
               
                   
                   
               
             
             
               
                   
                 Arbitrate(AMASK, AVALUE) 
               
             
          
           
               
                   
                 { 
               
             
          
           
               
                   
                 enqueue(0,0) 
               
               
                   
                 while (queue != empty) 
               
             
          
           
               
                   
                 (AMASK,AVALUE) = dequeue( ) 
               
               
                   
                 collision=IdentifyCmnd(AMASK, AVALUE) 
               
               
                   
                 if (collision) then 
               
               
                   
                 { 
               
             
          
           
               
                   
                 TEMP = AMASK+1 
               
               
                   
                 NEW_AMASK = (AMASK&lt;&lt;1)+1 
               
               
                   
                 enqueue(NEW_AMASK, AVALUE) 
               
               
                   
                 enqueue(NEW_AMASK, AVALUE+TEMP) 
               
             
          
           
               
                   
                 } 
                 /* endif */ 
               
             
          
           
               
                   
                 endwhile 
               
               
                   
                 }/* return */ 
               
               
                   
                   
               
             
          
         
       
     
     The symbol “!=” means not equal to. AVALUE and AMASK would have values such as those indicated in the following table for such code. 
     
       
         
               
               
               
             
           
               
                   
                   
               
               
                   
                 AVALUE 
                 AMASK 
               
               
                   
                   
               
             
             
               
                   
                 0000 
                 0000 
               
               
                   
                 0000 
                 0001 
               
               
                   
                 0001 
                 0001 
               
               
                   
                 0000 
                 0011 
               
               
                   
                 0010 
                 0011 
               
               
                   
                 0001 
                 0011 
               
               
                   
                 0011 
                 0011 
               
               
                   
                 0000 
                 0111 
               
               
                   
                 0100 
                 0111 
               
               
                   
                 . . . 
                 . . . 
               
               
                   
                   
               
             
          
         
       
     
     Rows in the table for which the interrogator is successful in receiving a reply without collision are marked with the symbol “*”. 
       FIG. 5  illustrates an embodiment wherein levels in the tree are skipped. The inventors have determined that skipping levels in the tree, after a collision caused by multiple devices  12  responding, reduces the number of subsequent collisions without adding significantly to the number of no replies. In real-time systems, it is desirable to have quick arbitration sessions on a set of devices  12  whose unique identification numbers are unknown. Level skipping reduces the number of collisions, both reducing arbitration time and conserving battery life on a set of devices  12 . 
     Thus,  FIG. 5  illustrates a binary search tree  32  being defined for a tree search method similar to the tree search method described in connection with FIG.  4 . The tree  32  has multiple levels  34 ,  36 ,  38 ,  40 , and  42  representing subgroups of the multiple devices  12 . The number of devices in a subgroup in one level  34 ,  36 ,  38 ,  40 , and  42  is half of the number of devices in the next higher level  34 ,  36 ,  38 ,  40 , and  42 . Although only five levels are shown, if more bits are employed, (e.g., sixteen bits or an integer multiple of eight or sixteen bits for each of AMASK and AVALUE), there will of course be more levels. The tree search method illustrated in  FIG. 5  employs level skipping wherein at least one level of the tree is skipped. 
     A first predetermined number of bits, e.g. sixteen or an integer multiple of eight or sixteen bits, are established to be used as unique identification numbers. Respective devices  12  are provided with unique identification numbers respectively having the first predetermined numbers of bits, in addition to their random values RV. For example, such unique identification numbers are stored in memory in the respective devices  12 . 
     A second predetermined number of bits are established to be used for the random values RV. The devices  12  are caused to select random values, RV. This is done, for example, by the interrogator  26  sending an appropriate command. Respective devices choose random values independently of random values selected by the other devices  12 . Random number generators are known in the art. 
     The interrogator transmits a command requesting devices  12  having random values RV within a specified group of random values to respond, using a methodology similar to that described in connection with  FIG. 4 , except that levels are skipped. Four subsets of random values, instead of two, are probed when moving down the tree and skipping a level. This means that instead of eliminating half Of the remaining devices  12  and re-trying, after a collision, the interrogator eliminates three quarters of the remaining devices  12  and re-tries (by sending a command). In other words, a new specified group is created that is one quarter of the set of random values of the previous group. 
     Each devices  12  that receives the command determines if its chosen random value falls within the specified group by evaluating the equation (AMASK &amp; AVALUE)═(AMASK &amp; RV) and, if so, sends a reply, to the interrogator. The reply includes the random value of the replying device  12  and the unique identification number of the device  12 . The interrogator determines if a collision occurred between devices that sent a reply and, if so, creates a new, smaller, specified group, by moving down the tree, skipping a level. 
     In the illustrated embodiment, every other level is skipped. In alternative embodiments, more than one level is skipped each time. 
     The trade off that must be considered in determining how many (if any) levels to skip with each decent down the tree is as following. Skipping levels reduces the number of collisions, thus saving battery power in the devices  12 . Skipping deeper (skipping more than one level) further reduces the number of collisions. The more levels that are skipped, the greater the reduction in collisions. However, skipping levels results in longer search times because the number of queries (Identify commands) increases. The more levels that are skipped, the longer the search times. The inventors have determined that skipping just one level has an almost negligible effect on search time, but drastically reduces the number of collisions. If more than one level is skipped, search time increases substantially. 
     The inventors have determined that skipping every other level drastically reduces the number of collisions and saves battery power with out significantly increasing the number of queries. 
     After receiving a reply without collision from a device  12 , the interrogator  26  can send a command individually addressed to that device by using its now known random value or its now known unique identification number. 
     The above described code for depth-first traversal is modified to provide for level skipping by increasing the number of recursive calls as shown below. For example, the above described code for depth-first traversal is replaced with code such as the following to provide for depth-first traversal employing level skipping. 
     
       
         
               
               
             
               
               
             
               
               
             
               
               
             
               
               
             
               
               
               
             
               
               
             
           
               
                   
                   
               
             
             
               
                   
                 Arbitrate(AMASK, AVALUE) 
               
             
          
           
               
                   
                 { 
               
             
          
           
               
                   
                 collision=IdentifyCmnd(AMASK, AVALUE) 
               
               
                   
                 if (collision) then 
               
             
          
           
               
                   
                 { 
               
             
          
           
               
                   
                 TEMP = AMASK+ 1 
               
               
                   
                 NEW_AMASK = (AMASK&lt;&lt;2)+3 
               
               
                   
                 Arbitrate(NEW_AMASK, AVALUE) 
               
               
                   
                 Arbitrate(NEW_AMASK, AVALUE+TEMP) 
               
               
                   
                 Arbitrate(NEW_AMASK, AVALUE+2*TEMP) 
               
               
                   
                 Arbitrate(NEW_AMASK, AVALUE+3*TEMP) 
               
             
          
           
               
                   
                 } 
                 /* endif */ 
               
             
          
           
               
                   
                 }/* return */ 
               
               
                   
                   
               
             
          
         
       
     
     AVALUE and AMASK would have values such as those indicated in the following table for such code. 
     
       
         
               
               
               
             
           
               
                   
                   
               
               
                   
                 AVALUE 
                 AMASK 
               
               
                   
                   
               
             
             
               
                   
                 0000 
                 0000  
               
               
                   
                 0000 
                 0011  
               
               
                   
                 0000 
                 1111* 
               
               
                   
                 0100 
                 1111* 
               
               
                   
                 1000 
                 1111* 
               
               
                   
                 1100 
                 1111* 
               
               
                   
                 0001 
                 0011  
               
               
                   
                 0001 
                 1111* 
               
               
                   
                 0101 
                 1111* 
               
               
                   
                 1001 
                 1111* 
               
               
                   
                 1101 
                 1111* 
               
               
                   
                 0010 
                 0011  
               
               
                   
                 0010 
                 1111* 
               
               
                   
                 0110 
                 1111* 
               
               
                   
                 1010 
                 1111* 
               
               
                   
                 1110 
                 1111* 
               
               
                   
                 . . . 
                 . . . 
               
               
                   
                   
               
             
          
         
       
     
     Rows in the table for which the interrogator is successful in receiving a reply without collision are marked with the symbol “*”. 
     Similarly, the code provided above for breadth-first traversal can be readily modified to employ level skipping. Instead of inserting two items into the queue each time through the loop, four items are inserted into the queue each time through the loop. For either breadth-first traversal or depth-first traversal. AMASK will be shifted by two bits instead of one, and AVALUE will take on twice as many different values as in the case where level skipping is not employed. 
     Another arbitration method that can be employed is referred to as the “Aloha” method. In the Aloha method, every time a device  12  is involved in a collision, it waits a random period of time before retransmitting. This method can be improved by dividing time into equally sized slots and forcing transmissions to be aligned with one of these slots. This is referred to as “slotted Aloha.” In operation, the interrogator asks all devices  12  in the field to transmit their identification numbers in the next time slot. If the response is garbled, the interrogator informs the devices  12  that a collision has occurred, and the slotted Aloha scheme is put into action. This means that each device  12  in the field responds within an arbitrary slot determined by a randomly selected value. In other words, in each successive time slot, the devices  12  decide to transmit their identification number with a certain probability. 
     The Aloha method is based on a system operated by the University of Hawaii. In 1971, the University of Hawaii began operation of a system named Aloha. A communication satellite was used to interconnect several university computers by use of a random access protocol. The system operates as follows. Users or devices transmit at any time they desire. After transmitting, a user listens for an acknowledgment from the receiver or interrogator. Transmissions from different users will sometimes overlap in time (collide), causing reception errors in the data in each of the contending messages. The errors are detected by the receiver, and the receiver sends a negative acknowledgment to the users. When a negative acknowledgment is received, the messages are retransmitted by the colliding users after a random delay. If the colliding users attempted to retransmit without the random delay, they would collide again. If the user does not receive either an acknowledgment or a negative acknowledgment within a certain amount of time, the user “times out” and retransmits the message. 
     There is a scheme known as slotted Aloha which improves the Aloha scheme by requiring a small amount of coordination among stations. In the slotted Aloha scheme, a sequence of coordination pulses is broadcast to all stations (devices). As is the case with the pure Aloha scheme, packet lengths are constant. Messages are required to be sent in a slot time between synchronization pulses, and can be started only at the beginning of a time slot. This reduces the rate of collisions because only messages transmitted in the same slot can interfere with one another. The retransmission mode of the pure Aloha scheme is modified for slotted Aloha such that if a negative acknowledgment occurs, the device retransmits after a random delay of an integer number of slot times. 
     Aloha methods are described in a commonly assigned patent application (attorney docket number MI40-089)  Ser. No.  09 / 026 , 248 , filed Feb.  19 ,  1998 , now U.S. Pat. No.  6 , 275 , 476 B 1  naming Clifton W. Wood, Jr. as an inventor, titled “Method of Addressing Messages and Communications System,” filed concurrently herewith, and  which is incorporated herein by reference. 
     In one alternative embodiment, an Aloha method is combined with level skipping, such as the level skipping shown and described in connection with FIG.  5 . For example, in one embodiment, devices  12  sending a reply to the interrogator  26  do so within a randomly selected time slot of a number of slots. 
     In compliance with the statute, the invention has been described in language more or less specific as to structural and methodical features. It is to be understood, however, that the invention is not limited to the specific features shown and described, since the means herein disclosed comprise preferred forms of putting the invention into effect. The invention is, therefore, claimed in any of its forms or modifications within the proper scope of the appended claims appropriately interpreted in accordance with the doctrine of equivalents.