text:
|Publication number
|Publication type
|Application number
|Publication date
|Nov 29, 2005
|Filing date
|Mar 11, 2003
|Priority date
|Mar 11, 2003
|Fee status
|Also published as
|Publication number
|Stephen Kuffner, Timothy Collins, Bruce Eastmond, David P. Gurney
|Original Assignee
|Motorola, Inc.
|Export Citation
|BiBTeX, EndNote, RefMan
|Patent Citations (28), Referenced by (74), Classifications (7), Legal Events (5)
|External Links: USPTO, USPTO Assignment, Espacenet
The present application is related to the following U.S. applications commonly owned together with this application by Motorola, Inc.:
The present invention relates generally to a collision mitigation method used in a communication system.
A fast, efficient and reliable means of communicating data in a multi-user system is desirable for many applications. A need for such methods arises when multiple pieces of data (from multiple sources) need to be quickly read by a receiver. One particular application of such technology is in the electronic identification of multiple items.
The electronic identification industry is important for numerous commercial and military applications, including real-time item tracking and inventory. Such uses can greatly increase operational efficiency in a myriad of scenarios, including virtually all of those involving some form of manufacturing, warehousing, distribution and retail. The ability to quickly and efficiently perform accurate real-time inventory tracking can greatly reduce waste in many forms, including, but not limited to, the misplacement of items, over- or under-stocking of items, and item theft.
Currently, the electronic identification industry relies heavily on manual (light-based) scanning to identify a plurality of items, where each item is assigned a product code. The Universal Product Code (UPC) system is currently in widespread use throughout the United States retail industry. Manually scanning items, however, is extremely time-consuming and highly prone to human error.
Thus, there exists a need to provide a method for fast, efficient and reliable transmission of data from multiple sources to a receiver. More specifically, there exists a need to read such data as quickly as possible for typical use cases in an inventory system. An example of a typical use case of the described system is a real-time inventory application in a store, where the inventory on a shelf typically changes by small increments over time (e.g., a relatively small number of items are removed or added to the shelf in a given time period).
The present invention is now described, by way of example only, with reference to the accompanying figures in which like references indicate similar elements and in which:
The described system provides an improved communications method that allows multiple source devices to quickly and efficiently communicate information to a destination device. The described communications system employs a combination of several techniques to achieve superior performance over the prior art. The present invention allows a typical data gathering (or inventory reading data transmission) process to be greatly accelerated by using known interference characteristics. These interference characteristics are typically gathered by the destination device (or reader) during the normal course of a full interrogation (or read) cycle, as described below. The gathering and use of this prior knowledge allows the destination device to receive data from the source devices (or tags) even more quickly than is normally possible in typical system operation.
The described system provides a means for UPC replacement, while adding additional features and benefits, such as the elimination of manual (light-based) scanning, and greatly increased scanning (or item identification) speeds. The present invention further provides for fast, simultaneous identification of numerous items, which is highly useful in many typical applications, such as managing inventory on store shelves, or the like. Often, the management of such information is more valuable when it is performed in real or near-real time. The present invention is geared for such cases, and provides significantly faster data reading speeds (or higher system throughputs) to be obtained for typical cases.
The preferred embodiment of the present invention utilizes advanced signal processing in the destination device (or reader receiver) along with knowledge gathered in past full read cycles. It also generally utilizes one-way communication (from the source device to the destination device) in order to simplify the circuitry on the source device; the source device does not require the use of a receiver. The advanced signal processing generally takes the form of a variety of interference cancellation techniques, as fully described below.
The information communicated from the source device to the destination device typically takes the form of binary electronic product codes ("EPC") or identification ("ID") information, though it is not limited in any manner to these forms of information. Communicating other types of information, such as electronic telemetry (or any other type of measured or assigned data) is also possible. In fact, any information that has a representation in a binary (or other) number format can be communicated with the described system.
As illustrated in
The communication system employed by the present invention can encompass several different forms of communication 140, including, but not limited to, optical communication, radio frequency (RF) communication, wired (contacted) communication, sound-wave communication, capacitively coupled communication, or inductively coupled communication. The preferred embodiment of the present invention utilizes a capacitively coupled communication link between the tags 110, 120, 130 and the reader 100, though other forms of communications links may be utilized without limitation.
The following description of the invention is divided into several background sections (I-IV) describing many important aspects of the system, and latter sections (V-VI) providing a detailed description of the present invention. The preferred embodiment of the system utilizes all of the key techniques described below, though other embodiments may utilize only a subset of the described techniques.
As shown in
Additional information 202 is typically appended to the stored data 200 on the tag 110 in the preferred embodiment, such as user information, error checking or correction information (e.g., forward error correction (FEC), cyclic redundancy checks (CRCs), etc.), and other reserved bits. Note that the additional information (e.g., error detection or correction data) may be appended either before or after the data scrambling process described below, though it is desirable that if this additional information is appended after the data scrambling that it also has uniformly random properties.
Those skilled in the art recognize that several different additional forms of information (e.g., programmable timestamps, other user personal identification numbers (PINs), measured data, environment data, etc.) may also be predetermined and stored on the tags 110, 120, 130. Note that there are no limitations placed on the amount or type of data stored on the tags 110, 120, 130 in the described system.
All of the tag functions are typically implemented in low complexity (i.e., low cost) circuitry. In order to keep the circuitry on the tag 110 simple, and to improve performance of the channel selection process in the system (as fully described below), it is highly desirable to scramble the original ID data 200 prior to its being stored on the tag 110. This is typically accomplished through a randomization or scrambling process 211 that is carried out before the operation of storing data 230 on the tag 110.
This scrambling algorithm 211 is typically applied universally throughout the system in order to assure that the EPC data 200, after being scrambled 220, exhibits desirable statistical (i.e., uniform and random) properties. Alternatively, in other embodiments, some other scrambling, encryption, or numbering assignment algorithm may be applied to the stored data 200 in order to effectively create the scrambled data 220. To gain additional information privacy, individual vendors may optionally apply pre-encryption 210.
For example, in a first pass of the multiple-pass algorithm, at least a portion of S_EPC1 (which is embedded in tag 110) is used to select Channel A 240, at least a portion of S_EPC2 is used to select Channel B 240, and at least a portion of S_EPCn is used to select Channel C 240. It should be noted that channels A, B and C, or any combination thereof, can be the same or different. The reader 100 proceeds with its demodulation algorithm, and eventually obtains the S_EPCs 220 for the tags 110, 120, 130 on the shelf. The S_EPCs 220 are routed into a descrambler 460 that performs a descrambling algorithm to obtain the original EPC data 200 of the tags 11, 120, 130. The EPC data 200 corresponding to each tag can then be kept in the reader 100 or sent back to the original EPC manager 310 (e.g., the manufacturer) in the form of an inventory report. Those skilled in the art recognize that the descrambling operation may be performed at other locations, such as a remotely located computer or an on-line server. Collisions in the system of
No information is exchanged between the tag 110 and the reader 100 before the tag 110 needs to select a channel to use for transmission (as described below). Thus, the scrambling and de-scrambling methods in the described system must be self-referential only; that is, the only information needed to scramble the EPC 200 or descramble the S_EPC 220 is the data itself.
The system described calls for the use of a scrambling method that possesses certain key properties. An important property is that the scrambling method maps typical data sequences (such as EPC data sequences) to results that exhibit properties of a uniform random distribution. In the preferred embodiment, the scrambling method has two main properties:
In the example of a binary represented EPC 200, these properties are related to a strong avalanche property whereby each output bit is dependent on every input bit and changing a single input bit, changes half of the output bits on average.
In addition to the scrambling process described above, the data 200 may also be encrypted 210 before or after applying the universal scrambling algorithm (e.g., prior to programming the tag 110) to assure further data security. There are a variety of known encryption algorithms (e.g., AES, Data Encryption Standard, International Data Encryption Algorithm, etc.) in the art that may be utilized for this task. The availability of this additional level of security is important for high-privacy applications (such as those where tags may contain sensitive medical or financial data).
A block diagram of a tag 110 in the spirit of the preferred embodiment is illustrated in FIG. 7. For a capacitively coupled system, the antenna 701 is a pair of conductive electrodes (e.g., capacitive plates), but in general can be any method of coupling energy from an electromagnetic field into a circuit. The alternating current ("AC") power from the reader 100 that is coupled into the tag 110 is rectified in power converter 703, the direct current ("DC") output of which is used to power the tag 110 and also serve as a tag energy monitor 704 which further enables communications (the elements of which will be discussed in more detail below). The state controller 705 acts on the tag data 220 and the communications channel selection block 240 to produce transmit signal information, which when applied to the transmission element 702 (such as a load modulation element that is well understood in the art) under the control of the channel modulator 708 results in the generation of a signal source transmission from tag to reader.
The data 220 stored on each tag 110 is typically stored in low complexity (i.e., low cost) circuitry, which then responds to inquiries from the reader 100. Each tag 110, 120, 130 typically waits for a first predetermined condition to be met before transmitting its information in a multiple pass algorithm. The first predetermined condition is typically set to be the same for each of the tags 110, 120, 130, though it could be randomly chosen or assigned in other embodiments. An example of a general flowchart showing tag transmission conditions is shown in FIG. 8. Note that in this flowchart, the second predetermined condition may be met by a variety of measures (e.g., when a first predetermined condition is no longer met or a second predetermined condition is met).
In the preferred embodiment, the reader 100 remotely powers the tags 110, 120, 130, and the first predetermined transmission condition is met when the instantaneous received power level at the tag 110 exceeds a predetermined threshold (that is generally determined by 703 and 704).
The fully activated tags in a group will continue with their signal source transmission of information in multiple passes (fully described below) until a second predetermined transmission condition is met, at which time they will stop transmitting data. The second predetermined transmission condition in the preferred embodiment is met when the received power level at the tag 110, as observed by tag energy monitor 704, either falls below the first predetermined threshold or exceeds a second predetermined threshold, which is typically set higher than the first predetermined threshold.
In this manner, the first and second predetermined transmission conditions form a range of received power levels (e.g., a window) over which each group of tags is typically fully activated. In the preferred embodiment of the described system, the power-on range is typically about 3 dB wide, meaning that tags 110, 120, 130 will respond to power in a range of 1-2� (relative to some normalized received operational power level). Note that this powering window generally causes the tag's transmissions to fall within a proportionally narrow power window, which helps alleviate the typical near-far problem that affects some communications systems (e.g., as in spread spectrum systems with non-orthogonal spreading codes).
All of the tags 110, 120, 130 in the system are typically assigned the same power-on range in the preferred embodiment, although other embodiments are possible, such as those that utilize programmable (e.g., pre-assigned, but likely different) or random power-on conditions. One such example may occur when different manufacturers are assigned different power-on range levels, providing some separation (or distinction) between different manufacturer's products.
In yet other embodiments of the described system, tags with two-way communication abilities may exist, in which case the first and second predetermined transmission conditions may consist of some type of synchronization pulses or other signaling information. In the case where the predetermined transmission conditions are random, they may be randomly determined on the tag 110, or during programming of the tag 110. Note once again that other implementations of these transmission controls (e.g., synchronization signals, two-way communication with the tag, etc.) are possible without departing from the spirit of the system.
In an example embodiment illustrated in
In another embodiment, the reader 100 may 'learn' or remember a range of expected power levels for a given inventory profile, and arrange its power sweep with priority given to those power levels with a history of activity. When the reader 100 steps to a power level where no tags are activated, it senses that condition (typically through a short energy or modulation detection measurement), and quickly steps to the next power level, so as to minimize the total reading time of the tags, as further described below.
All multiple source (or multi-user) communications methods use some type of channelization method, as does the present invention. It is possible to utilize any one of several channelization methods or techniques in the described system. Generally, the channelization methods utilized can be divided into two categories: orthogonal channelization methods or quasi-orthogonal channelization methods. The present invention relies on the fact that activated tags transmit their data simultaneously, which can be utilized along with interference cancellation techniques to further increase reading speed.
Orthogonal communications channels have the advantage that communication on a chosen channel does not interfere (at all) with communication on other channels in a linear system (i.e., the cross-correlation over a symbol time between different channels is defined as zero). Quasi-orthogonal channels are nearly orthogonal (e.g., having a cross-correlation value near zero for different channels), and are typically utilized in direct-sequence code division multiple access (DS-CDMA) systems, where each user is typically assigned a different spreading code.
It is well known in the art that different phases (i.e., time shifts) of a maximal length linear feedback shift register ("LFSR") sequence (i.e., an m-sequence) are known to have low (i.e., quasi-orthogonal) cross-correlation properties. The cross correlation value of two unaligned sequences is defined to be −1/N (normalized), where N is the length of the LFSR pseudonoise ("PN") sequence. Different code phases of the same base m-sequence are often used to channelize different users in a code-division multiple access system. Each symbol or bit in the PN sequence is typically referred to as a 'chip', as is well known in the art.
Some examples of orthogonal channelizing functions include, but are not limited to, Walsh functions, timeslots in a slotted system, frequencies in a frequency division system, specially augmented PN codes, etc. Some examples of quasi-orthogonal channelizing functions include m-sequences or PN sequences as described above.
An example of a specially augmented PN code is one that has an artificially inserted (i.e., not generated by the normal operation of the LFSR) binary zero into the sequence (at different points in the sequence depending on the code phase), such that the time-aligned (i.e., synchronized) artificially inserted zero occurs at the same time offset on each channel, resulting in a zero cross-correlation value between different code phases of the same m-sequence. Note that the preferred embodiment of the present invention utilizes these specially augmented m-sequences (whose generation is shown in
As referenced above, the tags 110, 120, 130 in the described system transmit their data using a multiple pass transmission algorithm. The multiple pass transmission algorithm is critical in determining the total reading time of the tags 110, 120, 130, and consists of several different aspects. The general idea employed in the algorithm is that each tag 110, 120, 130 will choose a particular (preferably a uniform random) channel for communications in each algorithm pass.
In the preferred embodiment of the described system, the channel selection 240 is typically based directly on the data 220 stored on the tag 110. The tag 110 will then typically transmit its information (i.e., identification data) in the preferred embodiment on the chosen channel, until the next pass of the algorithm, at which time it will choose a new channel and repeat the process. The transmissions of the tags are assumed to be roughly synchronized (by virtue of the first predetermined transmission condition) in the preferred embodiment of the invention.
The channel selections by each of the tags are based upon predetermined information (i.e., determined either at tag programming 230 in typical embodiments, actual data gathered by the tag, or possibly in the design of the tag itself). In the preferred embodiment of the present invention, the channel selections of each tag 110 are determined (in an algorithmic manner) directly from the identification data 220 that is stored on the tag 110 (as further described below). Also note that in other embodiments, the predetermined information above can include pseudo-randomly generated numbers not directly based on the data stored on the tag 110.
As fully described in Section I above, and a key for good system performance, the preferred embodiment of the described system requires that at least a portion of the data 200 (e.g., EPC, CRC, etc.) be pre-randomized (or scrambled) 211 before storing it 230 on the tag 110. Since the tag 110 essentially uses the stored data 220, or a portion thereof (e.g., 221, 222) to select 240 a communications channel in each pass of the multiple pass algorithm, it is crucial that the data 220 appear to be uniformly random for the best overall system performance. This is accomplished through a low complexity reversible scrambling algorithm 211 that is described in Section I above.
In particular, as illustrated in
Note that the tag 110 may transmit all of its data 220 in each algorithm pass (as in the preferred embodiment), or only a portion of the data (i.e., generally enough data is transmitted to determine the channel utilized by the tag in the next pass). Typically, the portions 221, 222, 223, 224 of the data that are utilized for the channel selection in each pass of the algorithm are unique and contiguous sections of the data 220, preferably pre-randomized, though these conditions are not strictly required. A particular selection of channels for passes of the multiple pass transmission algorithm is termed a 'channel selection profile'.
For example, in a system with 128-bits of pre-scrambled identification data 220 stored on each tag, unique but sequential sections of 8-bits may be utilized to choose one of 256 (i.e., 28) channels in each of 16 (i.e., 128/8) algorithm passes. Thus, the first randomized byte of data (e.g., 221) for each tag chooses 240 the communications channel for each tag, respectively, on the first pass of the algorithm, the second (and hopefully different) byte (e.g., 222) of randomized data for each tag is used to choose 240 the channel for transmission on the second pass of the algorithm, and so on. This multiple transmission pass process continues until all of the data stored on the tag is exhausted (e.g., the 16th pass is completed in this example; in
Of course, those skilled in the art recognize that other (e.g., non-contiguous or not completely unique) sections of the data may be used to either directly or indirectly select the communications channel in each pass. In this manner, it is possible to extend the maximum number of algorithm passes before the channel choices repeat, virtually without limit. The channel selection profile (or channel choice algorithm) may be modified after some number of transmission passes, such that a different subset of the same data 220 is utilized for later channel selections 1220 (in order to extend the unique channel choices before any repetition of the pattern occurs). For instance, after 16 passes of the multiple pass transmission algorithm, the tags may shift the channel selection data (i.e., the predetermined data) by n-bits (where n=1.8 for the above example) to arrive at new channel selections for subsequent passes of the algorithm. In this manner, it is possible to extend the number of unique channel choices practically without limit, though the tag circuitry complexity is increased.
Yet other embodiments of the channel selection algorithm may also apply some type of mapping (generally one-to-one look-up table, or other algebraic or logic) function to determine the channel choices from the (generally limited) data stored or programmed on the tag. The only key characteristic of the channel selection process is that the channel choice be computable in the reader 100 once some portion of information is known about the data in the tag.
Since the channel resources are limited (i.e., there are a limited number of available channels for each user to select in each pass of the multiple pass communications algorithm), there will inevitably be collisions among the transmitting tags. A collision is defined as the case where two or more tags choose to communicate on the same channel during a particular algorithm pass. This situation is to be expected under normal system operation. For example, for a typical case of twenty-five tags communicating over 64 channels, the probability that there is at least one collision is 99.6% per pass. This is based on the fact that, for M tags communicating over N channels, the expression for the probability of no collisions is
Several numerical examples of colliding tag transmissions and their remedies are discussed below in Section V—Collision Mitigation Methods.
In many cases, the number of tags present in the system (at a particular power-on level) may even exceed the number of available channels (especially on earlier passes of the preferred embodiment algorithm, or when the number of available channels is set low as described below). This situation is completely acceptable in the present invention when orthogonal channelization means are utilized. Note that typical DS-CDMA systems (using quasi-orthogonal channelization codes) would be considered overloaded at that point, and reliable communication could not take place (especially without further knowledge of the tags' transmission characteristics). Importantly, in the described system, the activated tag population can effectively be further reduced by collision mitigation techniques, which are fully described in Section V below.
Also importantly, the preferred embodiment of the described system utilizes a variable number of channels per pass (generally determined by 221, 222, . . . 224) of the multiple pass transmission algorithm in order to improve overall system performance (e.g., total reading time, total system capacity, reliability, etc.). In other words, the number of available channels in one pass of the multiple pass transmission algorithm could be different from the number of channels available in another pass of the transmission algorithm. The variable number of channels per algorithm pass (i.e., per unit time) is also termed a dynamic channel profile in the present discussion, since the number of available channels changes dynamically with time. Implementing the dynamic channel profile essentially optimizes the total transmission time (or total reading time) for one or more expected tag populations.
Note that the transmission time for each pass of the algorithm is typically proportional to the number of channels available for that pass of the algorithm (regardless of the channelization method that is utilized). The total transmission time (TTX) for the multiple pass transmission algorithm can be expressed as
where L is the number of transmission passes that are required to successfully transmit the data, R is the transmission (signaling or channel symbol) rate, Bi is the number of data symbols that are transmitted per pass, and Ni is the number of channels available (or spreading gain) in the ith pass of the algorithm. Note that in one embodiment of the described system, L can be equal to 16 passes (allowed), Bi is fixed at 128 bits, R is equal to 62.5 KHz, and the particular Ni values are given in the example above, though this is only one particular embodiment of the system. Many other signaling rates and data formats are possible, as are many different carrier frequencies for transmitting the information. Recall that the number of channels available per pass (Ni) generally depends on the number of bits utilized to select a communications channel in each pass (ni) as follows (as also shown in 240):
In the preferred embodiment of the system, Ni represents the spreading gain (or processing gain) and number of available code phases (channels) per pass, and R is the signaling rate in chips per second. Note that not all possible channels need to be utilized in a given transmission pass, though it is desirable to make all channels available for data transmission. The application of advanced collision mitigation techniques (described in Section V below) can greatly reduce the required number (L) of transmission passes from the tags 110, 120, 130. In general, there are no restrictions on any of the values in the above equation in other embodiments of the described system.
Since the transmission time per pass is dependent on the number of channels per pass (and the symbol rate) in the preferred embodiment as shown above, the system's total reading (i.e., acquisition) time performance can be improved for a small number of tags by using a smaller number of channels in earlier passes of the multiple pass transmission algorithm (since adding more channels to the system in such a case would be of little additional benefit for small numbers of tags). The number of channels may be increased in later passes of the algorithm (potentially in multiple steps) to accommodate cases where larger numbers of tags are present in the system, or cases where the communications channel is poor, and the reader 100 does not employ the more sophisticated signal processing (e.g., advanced collision mitigation) techniques referenced in Section V below. Increasing the spreading gain increases the system's immunity to other noise or interference sources, which also increases system robustness (allowing it to operate successfully under a variety of communications channel conditions).
In this manner, systems with a small number of tags present would typically not be penalized by the longer transmission time of systems with a larger number of (earlier) channel choices, while at the same time systems with a larger number of tags present would also not be significantly penalized (since earlier passes of the multiple pass algorithm also typically take a much shorter time due to the smaller number of channels available initially). Also, increasing the number of channel choices in later algorithm passes ensures that systems with a large number of tags present will successfully acquire all of the data in a limited number of algorithm passes (thus increasing system reliability). Note that the number of channels may alternately be decreased in later passes if it is known that collision mitigation techniques (described below) will be utilized in the reader receiver, since such algorithms will effectively free up more channels as time progresses.
For example, a preferred embodiment of the described system utilizes 128-bits of data 220, with 32 channels in the 1st and 2nd algorithm passes, 64 channels in the 3rd and 4th algorithm passes, 128 channels in the 5th through 8th passes, and 1024 channels in the latter 8 algorithm passes. Note once again that unique subsets of the data 220 are utilized to directly choose 1220 the communications channel 1260 in each pass in this embodiment, resulting once again in a total of 16 algorithm passes before unique, non-overlapping portions of the data are exhausted. Other embodiments of the system may utilize a variable number of channels per transmission algorithm pass that changes after a predetermined number of passes. For instance, the first sixteen passes of the multiple pass transmission algorithm in the above example may utilize anywhere from 32-256 available channels (i.e., five to eight-bits of channel selection data), while the next sixteen passes may utilize anywhere from 256-4096 available channels (i.e., eight to twelve-bits of channel selection data). In this manner, the dynamic channel profile (or number of available channels per algorithm pass) may be extended virtually without limit. Also note once again that the maximum number of passes may be extended by utilizing overlapping or interleaved portions of the data to drive the channel selection algorithm.
The actual choice of the number of available channels per algorithm pass (also called a dynamic channel profile) in a particular embodiment of the system may also depend (in addition to the expected number of tags present in the system) on the expected or predominant type of signal processing algorithms (such as the type of collision mitigation algorithms) utilized in the reader 100. Note that the variable number of channels per algorithm pass may also result in channel profiles that decrease in later passes. In general, any channel profile that changes versus time is considered to be a dynamic channel profile for the purposes of the described system.
Note that the channel profile of a particular tag 110 does not necessarily have to be known by the reader 100 a priori, but that is generally the case. If the channel profile of a tag 110 is not known, the reader 100 would have to ascertain the period of the PN (chipping) sequence for example (possibly through measuring its autocorrelation or spectral properties), and act (demodulate) accordingly.
Specifically, in the preferred embodiment of the described system, the random channel choices are utilized to select a particular spreading code (or code channel in 1220) in each pass of the multiple pass transmission algorithm. More specifically, in the preferred embodiment, portions of the data 220 stored/programmed on the tag 110 are used to directly specify a time offset (or code phase as in 1220) of a length-N specially augmented m-sequence (where N is equal to the number of channels in a particular algorithm pass, as described above). Note that spreading codes may also be complex valued, without any loss of generality. This process is shown schematically in FIG. 11. Different phases of a PN sequence are commonly obtained by applying a masking function (or AND-XOR reduction network 1100) of the PN generator (LFSR) state, which effectively performs a modulo-2 sum of two or more m-sequences to produce a third code phase of the same m-sequence. Thus, all of the tags 110, 120, 130 use the same basic LFSR (m-sequence) generator in each algorithm pass, beginning with the same initial generator state in the preferred embodiment, such that all of the tags 110, 120, 130 transmissions are synchronized to a known basic initial generator state. These aspects are key to quick and effective demodulation in the reader 100, as described in Section IV below. Note that the basic LFSR sequence generator length (i.e., primitive polynomial) typically changes dynamically (changing the number of channels) per algorithm pass, as described above.
The traditional m-sequence generators are typically made to be specially augmented PN sequence generators by forcing a zero output for the first chip (or PN bit) time in the preferred embodiment, ensuring that the cross-correlations of the sequences from different tags will be zero over a given sequence period. Note that other types of orthogonal function generators could be used in the place of the LFSR PN generators (e.g., Walsh or Hadamard functions) in other embodiments, though such codes would not have as desirable interference rejection capabilities. The data 220 stored on the tag 110 is then spread by the generated spreading codes 1260 by traditional means 1230 (e.g., an XOR gate in digital implementations, or a multiplier in analog implementations, as is well known to those skilled in the art). The spread data signals of the activated tags are then sent (in aggregate) over the given communications channel.
Note that the tags could employ a range of modulation types to transmit their data (e.g., amplitude modulation, phase modulation, frequency modulation, or some combination thereof). The preferred embodiment of the system utilizes a form of amplitude shift keying ("ASK") from load modulation via transmission element 702, though other modulation types and implementations are certainly possible (e.g., Differential Quadrature Phase Shift Keying, Quadrature Amplitude Modulation, Pulse Code Modulation, Pulse Amplitude Modulation, Pulse Position Modulation, etc.). The use of many different carrier frequencies for transmitting tag information are possible, ranging from tens of kilohertz to several gigahertz (e.g., 125 KHz, 13 MHz, 900 MHz, 2.4 GHz). The employment of a variety of data encoding and mapping techniques is also possible with the described system. Some examples of encoding techniques include, but are not limited to, return to zero (RZ), non-return to zero (NRZ), Manchester, and differential encoding, which are all well known in the art. Note that it is possible to use many different encoding, modulation, coding and signaling types in the invention without loss of generality, as is known to those skilled in the art. Some examples of coding techniques include CRC codes, convolutional codes, block codes, etc., which are also all well known in the art.
The tags 110, 120, 130 in the preferred embodiment also directly modulate the carrier supplied by the reader 100 via transmission element 702; thus, they have no local oscillator (though the use of a locally generated carrier is certainly possible within the scope of the described system, and does not in any way limit its application). In the preferred embodiment of the described system, power converter 703 rectifies the carrier signal from the reader 100 so that the reader 100 remotely powers the circuitry on the tag 110. Note that the use of actively powered tags is also possible and does not in any way limit the use of the present invention. A general goal of the system is to minimize the complexity of the tag 110, and through the use of the described techniques in the preferred embodiment, the circuitry on the tag 110 can be kept to a minimum.
The reader is responsible for performing many important signal processing steps. As shown in
The signal processing performed by the reader 100 can be performed in either hardware or software architectures, or some combination thereof. Typical embodiments will include some selectivity 1365, amplification 1370, analog-to-digital conversion 1375, and DC acquisition and gain control functions 1380.
In general, the reader 100 may also perform active or passive suppression 1360 of its carrier signal in certain embodiments, and interference or noise cancellation (for any form of interference from sources other than the desired tags in the system).
As stated above, the preferred embodiment of the present invention utilizes spread spectrum modulation in the tags 110, 120, 130 where all tags transmit simultaneously. Thus, the received data must be despread in the reader 100 for each code channel by first reverse-applying each possible spreading code (or the complex conjugate of each complex spreading code), as is well known in the art.
More specifically, because the preferred embodiment of the described system utilizes specially augmented m-sequences as spreading sequences in the tag 110, very fast and efficient demodulation (i.e., despreading and channelization) techniques can be utilized in the reader demodulation processing 1390. These techniques substantially reduce (e.g., by about a factor of 57 in the preferred embodiment) the processing power required in the reader demodulation processing 1390, which results in faster reading times and lower cost implementations of the reader 100. The actual processing savings will depend on the number of channels employed in each pass of the multiple pass system, and can be expressed in terms of a factor (F) which is equal to the ratio of the number of traditional despreading operations to the number of improved despreading operations per symbol (using a combination of received sequence re-ordering and Fast Hadamard Transforms (FHTs)):
where L is equal to the number of passes required to successfully demodulate the source data, and Ni is (once again) equal to the number of channels in the ith pass. This factor directly represents a processing savings (which is typically expressed in terms of millions of operations per second (MOPS) or millions of instruction per second (MIPS)) in the reader demodulation processing 1390. Thus, in this example, a processor 1390 that is fifty-seven times less capable (e.g., 10 MOPS vs. 570 MOPS) may be utilized in the reader 100 in the preferred embodiment in the best case (with no collision mitigation as described below).
Recall that specially augmented m-sequences (shown in box 1120 of
Once the composite received signal (consisting of several m-sequence code phases) has been re-ordered in a storage medium, such as a memory buffer 1530, it resembles sequences from a set of valid Walsh sequences, and fast transform techniques, such as a Fast Hadamard Transform (FHT), may be utilized to rapidly (and concurrently) despread the data from the tag 110 for all data channels (as shown in 1540). FHTs are used to rapidly correlate data sequences against a complete set of Walsh codes (in parallel), as is well known in the art. Any transform related to FHTs (e.g., Fast Walsh Transforms, Walsh-Hadamard Transforms, recursive Walsh transforms, etc.) may be utilized with the described fast correlation methods without departing from the spirit of the described system. Also note that all of the described processing techniques can be performed in either the analog or digital signal processing domain.
Note that traditional FHT algorithms (e.g., as shown in box 1410) are well known, and their basic kernel operation (box 1400, termed a 'butterfly') is shown in
The exact received data special re-ordering function 1520 is determined by observing the states that the tag Fibonacci LFSR (as shown in 1110, or its equivalent) cycles through during normal operation (also refer to the example below). The states that the LFSR progresses through correspond directly to the special re-ordering function, or the indirect addresses that the incoming (spread) received data samples must be stored at in the received data memory buffer (1530 or other storage medium) as they are received (linearly) in time. This sequence of addresses (in 1520) may alternately be stored in a storage medium (e.g., Random Access Memory, Read Only Memory, Hard Disk Drive, etc.) instead of being actively generated in the receiver. Note that these sequences need only be generated once for each base spreading code (i.e., primitive polynomial). In this manner, the elements of the received m-sequences (or sums of m-sequences) are re-ordered such that they now represent exactly the elements in Walsh sequences (or more specifically, the rows in a Hadamard matrix). Thus, a traditional fast (Hadamard) transform (correlation) method may now be utilized (in 1540) to effectively despread the received data channels in parallel. Note that the data sequences can also be double buffered in memory to accommodate any processing latency.
The output indexes (or bins) 1550 of the FHT that exhibit signal energy correspond directly to the mask values 1130 (when expressed in binary) that were used in the AND-XOR reduction 1100 in the tags 110, 120, 130. For example, the channel selection code 1130 (the 'c0-c4' shown in
As further discussed below, the data signal 1550 at the output of each active FHT bin during the channel selection portion of the received data sequence can be verified by matching it up with the binary FHT index value (since the two sequences should match for valid data). This technique enables a crude form of additional error detection, and is shown in
Through the combined re-ordering and FHT technique shown in
As an example, for a system that utilizes length 16 (N=16, n=4) specially augmented PN sequences in the tag transmitters, the sequence 1260 represented by the channel selection value 1130 (ni) of '0001' (1) in binary will be '0111101011001000', while the sequence 1260 represented by the channel selection (mask) 1130 value of '1001' (9) in binary will be '0010110010001111' (which is just a different time shift or code phase of the same basic m-sequence that is subsequently specially augmented with a leading zero). An example of the tag PN generation and mask circuitry for a primitive polynomial of 23 (when expressed in standard octal notation) is shown in FIG. 11. Two tag transmitters are assumed to send these sequences independently over the communications channel. The reader receiver will resolve these two signals using a special re-ordering function 1520 and FHT processing (as shown in FIG. 15). The special received data sample re-ordering that must be utilized for the transmitted PN sequence is the states that an equivalent specially augmented PN generator would cycle through, or {0,15,7,11,5,10,13,6,3,9,4,2,1,8,12,14, the same as is shown in 1120} for this example. This sequence may be generated in the reader 100 by replicating the m-sequence generator 1110 that is utilized in the tag 110, and observing the PN generator states, or by simply storing the required re-ordering sequence in memory. The re-ordering sequence is utilized to store the incoming received data sample stream into memory using indirect addressing. For example, the first valid A/D sample (optimally sampled at the spreading or chip rate) that arrives at the reader is stored in memory buffer location 0 of storage medium 1530 (as is the case for all specially augmented codes), the second sample is stored at memory location 15, the third at location 7, and so on. Once N (16 in this example) samples are received, normal FHT processing 1540 can be performed on the newly re-ordered data samples in the memory buffer 1530. The re-ordering function will translate the '0001' PN code above into the sequence '0101010101010101' (which is identical to Walsh code 1) and the '1001' PN code into the sequence '0101010110101010' (which is identical to Walsh code 9). The FHT 1540 will indicate that signal energy is present (e.g., tags are transmitting) in bin 1 (corresponding to channel code 1) and bin 9 (corresponding to channel code 9) of output 1550. Thus, by observing the bin 1 and bin 9 FHT outputs for each transmitted symbol, the remainder of the tag data can be sensed.
Note that the techniques described above may be utilized for traditional (i.e., non-specially augmented) m-sequences by assuming in the receiver that the first chip (or symbol) that is sent by the tag 110 is a binary zero (which is equivalent to a +1 normalized signal value on the channel), even though no such signal was actually sent. Thus, the first buffer location in the storage medium 1530 is initialized to a +1 value, and processing (i.e., re-ordering 1510 and FHTs 1540) continues as normal. In this manner, very fast correlation can be performed for multiple code channels (or code phases) for traditional PN sequences. Other normally augmented PN sequences can also be accommodated by keeping track of where the additional chip (e.g., other than the first chip as described above) is inserted into the sequence.
The above described fast correlation techniques (i.e., a particular receive sequence re-ordering 1510 and FHT 1540) apply to any communication system that uses PN sequences that can be generated with an AND-XOR reduction network 1100 (whether or not they are generated with such a network). Many popular communications systems utilize these types of PN sequences, or sequences generated from a combination of traditional m-sequences (such as Gold codes, as is well known in the art). Some examples of such systems are the IS-95, IS-2000, 3GPP CDMA cellular systems, and the GPS CDMA location system. The above fast correlation techniques can be equally as effective in these systems.
In any case (regardless of the channelization techniques employed), the composite received signal must be filtered and amplified in the receiver front end 1610, and then channelized (or de-channelized) 1620 in the reader 100 as illustrated on FIG. 16. Each channel is then generally processed separately (though possibly concurrently) for signal and collision detection purposes (generally in 1630). For example, in another embodiment of the system that uses Walsh codes in place of the described m-sequences, an FHT operation could still be utilized to simultaneously demodulate all of the different data channels as described above. Other embodiments of the system may utilize a bank of (parallel or time-shared) traditional despreaders (in place of 1540, 1620) to perform the dechannelization and despreading process. A despreader typically consists of a multiplier followed by an integrate and dump function, as is well known in the art.
It should be noted that the selected channelization method does not change the general type of collision mitigation algorithms that can be employed in the reader 100, as further described below.
Also note that the demodulation process is generally a multiple iteration process in many embodiments of the present invention, since it is typically not likely that all tags will successfully transmit their information on the first pass of the multiple pass transmission algorithm. Thus, the reader 100 must remain powered up (at the same power level) and continually demodulate the incoming data until all data from the tags has been successfully received (further using the methods described below). Also, when advanced collision mitigation techniques 1630 are utilized in the reader 100 (as detailed below), multiple demodulation iterations (e.g., FHTs) may be required for each pass of the multiple pass algorithm. Also note that subsequent passes of the multiple pass transmission algorithm may require the demodulator to adapt to a new number of channels, as described in the dynamic channel profile discussion above.
As mentioned above, there are a limited number of communications channel resources in this (and any) communications system for which the tags 110, 120, 130 can utilize to communicate to the reader 100. Since there are a limited number of communications channels, and no organized assignment of channels among multiple tags (i.e., random assignments are effectively utilized), there will inevitably be collisions of transmissions from the tags in the described system. A collision is defined as the case or event when two or more tags choose to communicate on the same channel at the same time (i.e., during a particular pass of the multiple pass transmission algorithm). It should be recalled that the assignments are effectively random because the data stored on the tags closely approximates uniform random data, as indicated in Section I of this document.
It is possible to utilize several different collision mitigation algorithms in the reader receiver (as further detailed below), depending on the desired complexity of the reader 100. For instance, a low cost receiver may utilize only forward collision mitigation techniques (described below), while a higher cost (higher processing power version) of the receiver may utilize (bi-directional) collision mitigation techniques (described below).
The general discussion below first assumes that forward collision mitigation techniques are utilized, and then later examines cases where bi-directional collision mitigation techniques are utilized. Note that the tags 110, 120, 130 in general transmit the same patterns regardless of whether collision mitigation is utilized in the reader 100. Each tag (e.g., 110) is in effect 'blind' to other tags present in the system (e.g., 120, 130). Performing the following additional steps further carries out the demodulation process in the receiver.
In general, the reader 100 cycles through each of the possible despread communications channels (either sequentially or concurrently) in a given communications pass, and looks for signal activity or signal energy on each. The reader receiver in the described invention should also be able to detect collisions on each of the available channels, as fully described below. All of these signal characterizations occur per channel, and are generally performed once despreading is completed in order to reduce implementation complexity (though it is also possible to perform equivalent operations before despreading without loss of generality). Note that the received signal is synchronously sampled (at the optimal sampling point) in the preferred embodiment of the system, though other methods (involving over sampling and the post-sampling determination of optimal sampling time are possible).
The preferred embodiment of the invention utilizes a reduced complexity method of estimating the signal energy on each channel. In particular, this method examines the cumulative (summed) absolute value of each channel's optimally sampled despreader output in the described invention. If the accumulated absolute value for a given channel exceeds a predetermined threshold, a signal is said to be present on that particular channel. The following equation shows one method utilized to calculate the accumulated absolute value (ABSk) for channel k, where DSk,n is the unnormalized optimally sampled despreader (FHT) output for channel k and symbol n, Ni is the number of available channels (or spreading sequence length), B is the estimation block length (in bits or symbols), and n is the bit or symbol-time index:
Generally, this calculation is performed for all k (or Ni) available channels to determine if a signal is present on each channel. The predetermined threshold may be made programmable or adaptive (based on other conditions in the reader receiver). This method has the advantage over traditional energy estimation (sum of squares) means in that it does not require costly multiplication operations to determine the presence of signals. Note that the above average absolute value measure (ABSk) is also a measure of the average signal amplitude for a source device when the channel is determined to be single occupied (i.e., have only a single source device utilizing it). This information, along with the corresponding received signal data sequence, can be utilized to re-create the tag's signal. Also note that for systems employing complex modulation formats or non-coherent demodulation techniques, such average signal amplitude values may be complex valued (i.e., have inphase and quadrature components), which implies that a signal phase is also simultaneously estimated, as is well known in the art. Generally, any signal suppression or cancellation in such a system must take into account the estimated signal amplitude and phase when canceling identified signals.
Specifically, in one particular embodiment of the system, the presence of a low deviation ASK signal(s) from a tag is typically detected by subtracting out any mean signal level (i.e., dc value as in 1380) from a channel to obtain a normalized signal, and examining the absolute value of the remaining (normalized) signal, as described above. Note that a form of automatic gain control (also in 1380) may also be applied to further normalize the signal levels.
Once a signal is detected on a particular channel, the reader 100 must typically detect if a collision has occurred on that channel. This may typically be achieved by examining the variance of the absolute value of the normalized signal level over some time period. If the variance of the absolute value of the signal exceeds some (different) threshold, a collision is said to have occurred on that particular channel (due to conflicting binary data values of different tag's ID data—see FIG. 17); otherwise, a single signal is said to be present on that channel (as in FIG. 18). A channel with a single signal present on it is also termed a "single occupied" channel. Once again, those skilled in the art recognize that filtering or averaging of these measurements and indicators may be utilized to increase their reliability (e.g., to increase the SNR of the estimates). Thus, the longer the time period that is observed for such measurements (and utilized in the subsequent filtering), the more accurate and more reliable the estimates will become (i.e., the higher the processing gain).
As mentioned, the reader receiver can sense collisions on each channel by examining the variance of the normalized signal on each channel. The variance of the normalized signal can be thought of as an error signal, and represents deviation from an ideal signal. Once again in the preferred embodiment, a reduced complexity means for determining signal collisions is performed. In particular, the absolute value of a normalized (possibly dc-corrected) error signal is accumulated for each channel. Using the same values as in the equation above, the normalized variance for each channel (VARk) can be computed as follows for each despreader output, where B is once again the (possibly different) estimation block length:
This computation is once again generally performed for each code channel to determine if two or more signals are present on a given channel. If the cumulative absolute error signal exceeds a second predetermined (though possibly adaptively determined) threshold, a collision is said to have occurred on that channel. The normalized error signal (i.e., the summation term in the above equation) can be partially determined from results of the reduced complexity signal presence calculation described above. Specifically, the normalized error signal can be set equal to the absolute value of the optimally sampled despreader output minus the absolute average signal level (determined by scaling the cumulative absolute value computation above). This value can be summed over all or many despreader output bits to provide additional noise averaging (in order to increase the SNR of the estimate). This method also has the advantage over traditional variance estimation (sum of square of sample minus average value) means in that it does not require costly multiplication operations to determine the presence of signal collisions. The variance measure (VARk) can also be utilized to detect when signal conditions are poor, as described below.
Those skilled in the art recognize that there are many methods available to detect the presence of a signal, and to detect the presence or absence of collisions, which may vary based on the modulation and signaling type. Collisions may be detected by alternate means, such as standard error detection (e.g., CRC) means, though these methods may not in all cases properly detect collisions (due to falsing). Also note that whether or not collisions occur on a channel, standard error correction means can be employed to correct for transmission errors and improve the accuracy of the signal estimates.
Once again, these signal characterization measurements are typically performed on all of the available (possible) communications channels in a given pass (which may vary with the pass number of the multiple pass algorithm, as described above).
Once the reader receiver has calculated the above quantities for a given communications pass, it can determine other signal quality measures. Such measures may be utilized for determining when poor channel conditions exist and a complete read cycle needs to be performed (possibly due to improper signal cancellation conditions, as further described below). Specifically, the SNR of successfully received signals can be estimated by taking the ratio of the average signal level divided by a noise level estimate. The following equation shows an example of this computation, using the above notation and equations, where the average signal level on a single occupied channel has been determined to be (ABSs), and the normalized variance for an unoccupied channel has been determined to be (VARu):
The noise level estimate (0.482 for Gaussian white noise) can be shown to be mathematically related to the each unoccupied channel's despreader output as described above. The SNR values for each channel may be averaged over all single occupied channels to get an average SNR measurement. These measurements can be used to make other decisions, such as when to initiate a complete read cycle during the cancellation process, as described below.
Thus, the reader 100 typically characterizes whether any signal is present on (each and) all of the possible communications channels per pass, and whether a collision has occurred on each channel where signal(s) are present. Recall that a collision is generally defined as when two or more tags utilize the same communications channel during the same pass of the multiple pass algorithm. When a collision occurs on a given channel, the data for that channel is generally lost if no collision mitigation techniques are utilized. If a signal is present on a given channel, and no collisions are detected, the particular signal on that (given) channel is typically said to be successfully received, and the reader 100 generally knows the entire data sequence of that particular tag.
Note that some embodiments may perform error detection or correction (or some other type of signal integrity measure) to ensure that the data is valid and received correctly. Also note that if the tag channel selection data is transmitted, the reader 100 may also check that the tag 110 has indeed communicated on the expected communications channel (serving as another form of error checking for the portion of the data that is used to determine the channel as described above—also see
Once the signal from the tag 110 is known (and possibly confirmed), it may be removed (as described below) from the rest of the signal population. A form of collision mitigation is implemented if a signal from a particular tag is effectively removed or subtracted from the signal population (through a variety of possible algorithms described below). In this manner, the signal from a known (identified) tag can be removed, thus removing unwanted "interference" from the system. This effectively frees up valuable communications resources. In effect, the entire system is a self-organizing network, where all of the organization is done in the reader receiver instead of the transmitters themselves. Note that the removal of the signal does not have to be exact to realize a benefit from collision mitigation.
As described above, the reader 100 will generally keep transmitting at a given power level until some confidence level (or probability) is obtained that all actively transmitting tags have been identified.
As noted above, the reader 100 directly controls the number of passes that the tags transmit on by controlling the first and second predetermined transmission conditions. In the preferred embodiment of the present invention, the reader transmit power level is held constant in order to continue transmissions among fully activated tags, though other first and second predetermined transmission conditions are possible to control the groups of transmissions from the tags. The maximum number of passes is generally determined by the particular channel selection algorithm, but is partially limited to the data length (in bits) divided by the sum of the channel selection portions of data (in bits) for completely unique (non-overlapping) channel selection choices. Thus, in the example given above with 128-bits of data, and 8-bits of channel ID selection data in each pass, there is a maximum of 16 (i.e., 128/8) communications passes in the multiple pass algorithm (before non-overlapping channel choices start to repeat again). Thus, given a channel (e.g., PN) symbol rate in the preferred embodiment, the maximum interrogation time can be determined, and the total acquisition (or reading) time is fixed for all cases given a required number of transmission passes (as also illustrated in the equations above).
Preferred embodiments of the reader 100 utilize any one of several forms of collision mitigation techniques. Collision mitigation techniques generally lessen the impact of collisions on a given communications channel. Ideally, they remove the effects of a particular collision on a channel. This can be accomplished in the described system by (at least conceptually) regenerating a known signal and subtracting the known signal from the total signal population (or composite received signal). Known signals can be considered as interference to other (unknown) signals, thus the described techniques are also known as interference cancellation techniques. Note that this interfering signal subtraction may occur at any stage in the demodulation process (e.g., it may occur at the chip-rate or it may occur after despreading in the preferred embodiment). The preferred embodiment of the present invention performs collision mitigation after despreading in order to reduce the implementation complexity.
Generally speaking, a family of collision mitigation techniques exists of varying levels of complexity, and they are generally more complex (e.g., require more processing power, memory or hardware) than implementations that do not utilize collision mitigation techniques. However, such techniques generally result in much shorter total tag data acquisition (reading) times, and can greatly increase system capacity. Once again, it is assumed that the channel is quasi-static, and the system is relatively linear for best system performance.
In general, the more signals that are known (i.e., successfully determined), the fewer tags appear to be present in the system for a given pass of the multiple pass algorithm, when utilizing collision mitigation techniques. Since the data stored on the tag 110 directly determines the channel selection in the preferred embodiment (or it is otherwise known by the reader 100), once the reader 100 has successfully received the data (generally occurring when the tag 110 transmits on an otherwise unoccupied channel), it knows all of the channel choices that the tag 110 will make for every pass of the multiple pass communications algorithm. Thus, the reader 100 can then predict what channels the tag 110 will utilize for future (and past) transmissions, as above. Note that the observed signal levels from the tag 110 are also generally measured (and low pass filtered) in the reader 100 during the normal signal detection process so a reliable estimate of a given (non-colliding) tag's actual signal strength is available. This knowledge can be utilized to effectively re-create the known signal and accurately subtract it out from the aggregate received signal, thereby removing its effect from other transmission passes.
Specifically, the average signal level (and possibly phase) for each successfully received tag signal can be determined by averaging over some portion of one or more transmission passes. Recall that a tag is successfully received when it transmits on a single occupied channel, in which case its data can be successfully demodulated by traditional means. Once again, in order to simplify processing in the preferred embodiment of the invention, the average cumulative absolute value is computed (as in the signal detection stage described above). The average value of the (possibly dc-corrected) absolute signal level on each channel (after despreading) represents the expected signal level for that tag (i.e., a received signal strength). For receivers employing complex data paths (such as those in RF-coupled systems), signal phase may also be averaged over some portion of the transmission.
If the channel is quasi-static, or stable over the period of interest (as it often is for short read cycles), the interfering tag's signal level can be assumed to be stable; thus, a locally regenerated form of it can be removed or subtracted from the composite received signal. Since the signal from a successfully received tag is no longer needed or useful (once its data has been determined), removing it frees up communications channels for other unknown tags to communicate on. A known tag's data signal can be recreated by multiplying it's demodulated data symbol or bit sequence with the average expected signal level. The subtraction of this signal can occur after despreading; otherwise, the particular chosen spreading sequence would have to be reapplied if it were to be subtracted before despreading (which is not at all desirable from a computational complexity standpoint). Note that the tag's signal will be known to change channels in each pass of the multiple pass transmission algorithm, which can also be taken into account in the subtraction process. Also note that the number of available channels and spreading codes may change for each pass of the multiple pass algorithm.
A relatively simple form of collision mitigation involves subtracting or suppressing known signals from subsequent passes of the multiple pass algorithm (in a forward direction with respect to time). Thus, this form of collision mitigation is generally termed forward collision mitigation.
The quasi-static channel assumption becomes important here since the measured signal level and possibly phase will generally be assumed to hold for all subsequent passes, or at least the current pass of the transmission. In general, the signal level estimates could be updated every transmission pass to account for slowly varying channel conditions. Note that only the known tag signal information (typically contained in a data structure or list) and the composite received signal from the current transmission pass (or burst) needs to be stored to perform this algorithm (as opposed to storing all received bursts in memory as described in the algorithm below). In general, this type of forward collision mitigation algorithm can result in a significant (2-4X) total reading time improvement over methods that do not perform any collision mitigation.
Another more advanced form of collision mitigation involves subtracting known signals from both subsequent and previous passes of the multiple pass transmissions. This is possible because, once the data from a tag 110 is identified, the channels it occupied on previous passes can be ascertained and its contribution to any previous collisions can be nullified. This class of collision mitigation algorithms is generally termed as bi-directional collision mitigation techniques. Bi-directional collision mitigation is more computationally complex (and generally requires more memory to store prior communication passes), but results in greatly reduced total tag reading time (reduced by roughly an order of magnitude over methods that do not perform any collision mitigation).
Generally, this method requires storing a data structure containing known channel choices (i.e., received data sequences) and estimated signal levels and/or phase in each communications pass (as in the case above) for identified tags. However, since signals are subtracted out from prior transmission passes (in addition to the current pass as in forward collision mitigation algorithms), additional collisions can be resolved. For example, if data from the third pass of the multiple pass communications algorithm is resolved (i.e., successfully received), it may result in the data from another user being resolvable in a prior pass (e.g., the second pass) of the algorithm, which in turn may free up another user that was previously colliding in either a prior (e.g., the first pass) or subsequent pass (e.g., the third pass) of transmissions. Every time data from a new user is resolved, its reconstructed signal is subtracted from all transmission passes (up to and including the current pass), and the number of channels that are single occupied and those in collisions are evaluated again (for all possible communications channels and passes). In this manner, the reader 100 may cycle through all of the available transmission passes (up to and including the current pass), and resolve more tag signals virtually continuously, until a point is reached where no more users can be resolved in any of the passes (up to and including the current pass). The reader 100 would then step to the next power level and continue with the bi-directional collision mitigation algorithm. The effect can be quite powerful in later transmission passes, allowing a number of tag signals to be resolved which is much greater than the available number of communications channels.
Note that since the spreading gain can change dynamically (per pass), it may be necessary to re-normalize signals for a particular spreading factor before subtracting them out from the composite received signal. Also note that the recursive passes of bi-directional interference cancellation may be performed in any order (in time).
Once all of the tag data has been received, the reader 100 may check the integrity of the data via the means mentioned above (e.g., error detection and correction), preferably before any signal cancellation occurs. Traditional data demodulation techniques may be performed based on the type of modulation that is utilized in the tag transmitters. The reader 100 may also post-process the data, which typically includes functions such as descrambling, de-encryption, classification, and removal of redundant items (which power up in more than one power-on range in the preferred embodiment of the present invention). Note that some or all of these functions could take place at a centralized location, thereby serving multiple readers or antennas.
Once a complete read cycle using collision mitigation techniques is finished (i.e., all active tags are identified), the signal source (or interference) parameter characteristics for each signal in the system is known. A complete read cycle is defined as a signal source transmission where the desired number of tags is identified. Typically, all tags are identified in a complete read cycle. In particular, the signal source amplitude and phase are effectively known (or estimated) for each pass of the multiple pass transmission algorithm, and the received data sequence for each active tag present in the system is known (via standard demodulation techniques). In effect, all information is known about each tag's signal. Once a tag's signal parameters are known, its signal is effectively useless from a communications system standpoint; thus it is treated as interference and can be suppressed using the collision mitigation techniques discussed throughout Section V. The complete read cycle is known to take L′ transmission passes for a given tag population, which can be associated with a total transaction (read) time for a given collision mitigation algorithm, depending on the signaling rate and data payload size, as described in the equations above.
Often, in many shelf inventory systems (e.g., retail environments), only a small number of items change in a given tag population. Consider the case of a store shelf with tens or hundreds or RFID tags, where a handful of items may have been removed from the shelf by consumers, and a few items may have been added (either advertently or inadvertently) to the shelf over a relatively short period of time. It is generally known (regardless of the algorithm employed) that the more tags in an RFID population, the longer it takes to read their contents (due to limited communications resources). Thus, if the reader were to perform a full (complete) read cycle on the affected shelf (with no initial conditions or known interference characteristics), it would take a similar amount of time to read as the original shelf configuration. For example, assume that reading a 100 items for a given RFID system (and algorithm) takes 1 second. Reading 98 items (say the original shelf with 3 items removed, and 1 item added) will still take nearly 1 second (or 0.98 seconds if the system is linear). However, by using known interference characteristics (i.e., the signal source parameter information mentioned in the paragraphs above), it is possible to greatly reduce the read transaction time for such cases.
In fact, in the preferred embodiment of the described system, it is possible to make the above scenario's read cycle time equivalent to that of reading only 4 tags, instead of 98. Thus, the reading transaction time can be greatly reduced (to a value of 0.04 seconds, if the system is linear). The reader in such cases is reading only the "delta population", or any changes in tag population due to the unique characteristics of the system and collision mitigation algorithms. This is accomplished not by performing a full or complete read cycle as described in the paragraphs above, but by utilizing known or stored information about each tag's signal, gathered in the previous read cycle. For the purposes of this discussion, the stored information can be any signal source parameter, such as received signal amplitude, phase or data sequence. As long as the channel remains relatively static over the period of time between read transactions (i.e., tag coupling characteristics do not significantly change), the same signal or interference cancellation or suppression techniques described above can be utilized in the reader receiver from the onset of a read cycle. The total tag reading time (or increase in overall system throughput) can be improved by a large factor, which can be very important for real time or near-real time inventory applications.
More importantly, since estimated signal source parameters (or interference characteristics) from a previous read cycle are utilized in a subsequent read cycle (i.e., estimated signals are subtracted out) in the reader receiver, all of the channels that were previously occupied by tags present in the system become free for communication for other tags (either new or ghost tags). Thus, the overall system behaves as if only the smaller number of additional or removed tags are present (i.e., the delta population), and read cycles become much faster.
As a read cycle that is aided by prior information progresses, the reader may determine that prior assumptions about interference characteristics are no longer valid (e.g., due to coupling characteristics changing). The reader receiver may also choose to not use prior information if a long period of time has elapsed since the last read cycle, causing the estimated signal source parameters to be invalid. For instance, the coupling or signal characteristics may have changed if the frequency of operation or shelf configuration (e.g., tag orientations or environment) has significantly changed since the last read cycle. This case can be detected by the reader if the estimated SNR or CIR ratios (for successfully demodulated data channels) fall below a predetermined threshold, for example. The reader in such a case may automatically opt to perform a full read cycle in order to preserve the integrity of the received data. Alternate measures of such a case also may be utilized, such as the continued presence of collisions or CRC errors. The reader receiver performs these types of checks automatically in the preferred embodiment of the invention.
Another embodiment of the present invention can be utilized when source devices transmit data or telemetry (e.g., temperature, pressure, sensor data) along with their typical ID payload. Typically, this additional data can be appended at the end of the unique ID sequence for the tag, and does not have to be unique itself. If the techniques of the present invention are applied to this case, estimated signal source parameters can be utilized to subtract out the previous version of the received signal, leaving only the difference information for the signal source. This difference information (e.g., a change in temperature) can be demodulated normally and quickly to arrive at a new received signal data sequence.
In addition to the considerable benefits of reducing the required time to perform an inventory, the amount of data that needs to be communicated back to a central controller device or inventory manager is significantly reduced.
In some applications, the reader device may additionally include a network node, able to communicate with other network nodes in other reader devices. A network node is able to transfer information (possibly via wireless means) to other network nodes according to a known protocol. At least one of these network nodes in such a system would be operably connected to the central controller device, which would also incorporate a network node and may serve as an information hub. In this manner, reader devices with their associated network nodes could relay inventory information to other network nodes, and eventually to the central controller device. As in the system example above, it is advantageous to relay only information related to the change in inventory information, so as to keep network traffic low. An example of such a network might be an IEEE 802.15.4 network, which is a low data rate mesh network of low power devices. Other networks could also be employed.
The operation of these algorithms is perhaps best conveyed by way of examples. The examples will detail a simplified, hypothetical system of tags that draw random channels each pass.
The example detailed in
Tag 1 will choose channel 0 during Pass #1, channel 0 during Pass #2, channel 3 during Pass #3, and so on. Tag 2 will choose channel 1 during Pass #1, channel 1 during Pass #2, channel 0 during Pass #3, and so on. From this list, it can be seen that, for Pass #1, which draws a channel from the first octal digit, tag 1 is the sole occupant of channel 0, tag 3 is the sole occupant of channel 4, tag 5 is the sole occupant of channel 6, and tag 7 is the sole occupant of channel 5. Since there are no collisions in these channels, tags 1, 3, 5, and 7 are successfully identified in their entirety; tags 1, 3, 5 and 7 communicated their full ID in a channel that had no collisions. On Pass #1, however, tags 2 and 6 collided in channel 1, and tags 4 and 8 collided in channel 2. These tags cannot be successfully identified, and will require subsequent passes to be resolved. The reader 100, observing that collisions exist, leaves the power applied at the present level and allows all of the tags to draw another channel from the second octal digit for Pass #2. It should be noted that none of the tags know whether they have successfully communicated their ID information at any stage of the transmission process. Only the reader possesses this knowledge; it will signal the tags when the entire reading process is done by removing the transmission conditions (e.g., powering down).
In Pass #2, the only tag not involved in a collision is tag 3. Since this tag was already identified in Pass #1, the reader 100 did not acquire any new information. None of the tags that were in collisions in Pass #1 can yet be identified. Statistically, for eight tags and eight channels, there is a 1−8!/88=99.76% probability that there will be at least one collision. This result comes from the more general case of the probability of no collision between M tags over N channels given above:
and the fact that P{collision}=1−P{no collision}. There will be this same probability of at least one collision for each pass through the algorithm. For this combination of tags and channels, averaged over 100,000 experiments, 2.7498 of the eight channels are unoccupied per pass, 3.1386 of the channels contain a single tag, 1.5737 channels contain two tags, 0.4482 channels contain 3 tags, 0.0796 channels contain 4 tags, 0.0093 channels contain 5 tags, 7.2�10−4 channels contain 6 tags, 4�10−5 channels contain 7 tags, and no cases of eight tags in one channel were recorded.
Forward Collision Mitigation Example
When a tag is individually identified, its channel choices for all subsequent passes are known at the reader 100. If the signal level and phase of the tag are additionally known, then the contributions of that tag to collisions can be nullified. The signal from the tag can essentially be removed from subsequent collisions, thereby effectively removing it from the population. Consider the experiment shown in FIG. 23. Tags 1, 3, 5 and 7 are positively identified during Pass #1. Assume their signal levels and phases are also determined.
During Pass #2, tags 1 and 5 are known to transmit their data over channel 0. With their known signal level, they can be subtracted out, leaving behind only tag 4 that can now be identified. Likewise, tag 7 was expected to transmit its data over channel 4 during Pass #2, and by canceling out this tag, tag 6 is left alone to be identified. There is still an unresolved collision on channel 1, so at least one other pass through the algorithm is required.
During Pass #3, tag 2 shows up by itself and is identified. Tag 1 was expected to transmit its data over channel 3, so it is subtracted out, leaving behind only tag 8, which can now be identified. All other collisions contain only known tags, so the accounting of the tags has been completed in three passes through the algorithm with full confidence instead of eight or more passes (depending on the confidence level required) for no collision mitigation as in FIG. 21.
For a static channel, the signal strength of identified tags can be known to a high precision. Consider the case of an augmented PN channel. For this experiment, the tags would choose different code phases of an eight-chip long augmented PN sequence. This eight-chip long PN sequence would be transmitted either true or inverted for each bit of the tag's ID, depending on the sense of the particular ID bit. At the reader 100, the correlator in the receiver would essentially average the signal level over the eight chips per bit. This would be done for all bits (e.g., 128) in the ID, giving an average over 8�128=1024 samples, for a signal to noise ratio averaging gain of 10 log (1024)=30 dB. For more practical cases where there are many more expected tags and many more channels available (>32), the gain increases. For 32 channels and 128 bits, a gain in signal-to-noise ratio of 36 dB results.
Bi-Directional Collision Mitigation Example
Even greater improvements in accounting time can be made if the reader 100 stores waveform samples from previous passes. With a stored waveform, previous passes can be revisited and treated as subsequent passes, from which previous collisions can be cancelled out. This is because once a tag is identified, not only are all subsequent activities known, but all previous channel choices and signal levels would also be known.
Consider the example shown in FIG. 24. During Pass #1, tags 1, 3, 5 and 7 are identified in both bit pattern and signal level and phase. As with forward collision mitigation, tag 4 can be identified in Pass #2 since the effects of tags 1 and 5 can be removed from the collision on channel 0. Likewise, removing the effects of tag 7 from the collision on channel 4 allows identification of tag 6. After Pass #2 and the application of forward collision mitigation, tags 1, 3, 4, 5, 6 and 7 are known.
Instead of needing the third pass, the results of Pass #1 may be revisited after applying forward collision mitigation. With tag 4 identified during Pass #2, it can be removed from channel 2 of the stored results of the first pass to resolve tag 8. With tag 6 identified during Pass #2, it can also be removed from channel 1 of the stored results of the first pass to resolve tag 2. In this case, only two passes are required to successfully identify all eight tags. The benefits of both forward and bi-directional collision mitigation become more significant when larger numbers of channels and tags are involved.
Thus, a one-way communications system utilizing a multiple pass transmission algorithm (preferably employing spread spectrum techniques) that offers superior performance (e.g., reading time and capacity) has been fully described. The incorporation of collision mitigation techniques, dynamic channel profiles, and power on ranges further improves system performance. The described communication system has many applications that are not limited to the preferred embodiment and actual examples detailed in the text. The present invention also has applications in two-way communications devices, actively powered user devices, and networked devices without departing from its essential characteristics (described in the claims below).
The present invention may be embodied in other specific forms without departing from its spirit or essential characteristics. The described embodiments are to be considered in all respects only as illustrative and not restrictive. The scope of the invention is, therefore, indicated by the appended claims rather than by the foregoing description. All changes that come within the meaning and range of equivalency of the claims are to be embraced within their scope.
|Cited Patent
|Filing date
|Publication date
|Dec 9, 1988
|Jun 18, 1991
|Dallas Semiconductor Corporation
|Wireless communication system with parallel polling
|Aug 1, 1991
|May 11, 1993
|Motorola, Inc.
|Multiple user spread-spectrum communication system
|Apr 29, 1992
|Mar 15, 1994
|Texas Instruments Deutschland Gmbh
|Method of interrogating a plurality of transponders arranged in the transmission range of an interrogating device and transponders for use in the said method
|Feb 2, 1995
|Apr 7, 1998
|Geotek Communications, Inc.
|Multiplexed radio communication system
|Mar 19, 1997
|Dec 1, 1998
|Cirrus Logic, Inc.
|Synchronous read channel employing a data randomizer
|Feb 7, 1997
|Mar 16, 1999
|Checkpoint Systems, Inc.
|Anticollision protocol for reading multiple RFID tags
|Sep 3, 1997
|Nov 16, 1999
|Micron Communications, Inc.
|Method for resolving signal collisions between multiple RFID transponders in a field
|Jan 24, 1997
|Mar 7, 2000
|Axcess, Inc.
|Radio tag system and method with improved tag interference avoidance
|Aug 18, 1997
|Aug 22, 2000
|X-Cyte, Inc.
|Dual mode transmitter/receiver and decoder for RF transponder tags
|Mar 9, 1998
|Oct 10, 2000
|Broadcom Homenetworking, Inc.
|Off-line broadband network interface
|May 21, 1999
|Jul 10, 2001
|Overland Data, Inc.
|Digital data recording channel
|Jun 29, 2000
|Jul 24, 2001
|Micron Technology, Inc.
|Method for resolving signal collisions between multiple RFID transponders in a field
|Mar 9, 2000
|Jan 1, 2002
|International Business Machines Corporation
|Apparatus and method for locating containers and contents of containers using radio frequency tags
|Sep 18, 1998
|Jan 8, 2002
|Cselt-Cento Studi E Laborati Telecomunicazioni S.P.A.
|Method for channel assignment in a mobile communication system with space division multiple access
|Feb 5, 2001
|Feb 26, 2002
|Sensormatic Electronics Corporation
|Large signal noise cancellation in electronic article surveillance
|Dec 23, 1999
|Mar 12, 2002
|Sensormatic Electronics Corporation
|System and method for finding a specific RFID tagged article located in a plurality of RFID tagged articles
|Feb 1, 2000
|Apr 23, 2002
|3M Innovative Properties Company
|Collision arbitration method and apparatus for reading multiple radio frequency identification tags
|Oct 20, 1998
|Mar 25, 2003
|Viasat, Inc.
|Method for acquisition and synchronization of terminals in a satellite/wireless TDMA system
|Dec 23, 1999
|Nov 25, 2003
|At&T Corp.
|Method and apparatus for time-profiling T-carrier framed service
|Apr 4, 2000
|Mar 16, 2004
|Nec America, Inc.
|Apparatus and method for automated band selection via synthesizer bit insertion
|Jul 14, 2000
|Oct 12, 2004
|At&T Corp.
|In-band Qos signaling reference model for QoS-driven wireless LANs
|Feb 23, 2001
|Oct 25, 2001
|Tantivy Communications, Inc.
|Access probe acknowledgment including collision detection to avoid oversetting initial power level
|Aug 29, 2001
|May 23, 2002
|Martin Lysejko
|Transfer of data in a telecommunications system
|Jul 9, 1999
|Jul 25, 2002
|Jacob W. Jorgensen
|Transmission control protocol/internet protocol (tcp/ip) packet-centric wireless point to multi-point (ptmp) transmission system architecture
|Jul 30, 2001
|Feb 6, 2003
|Broadcom Corporation
|System and method for detecting collisions in a shared communications medium
|Apr 25, 2001
|Sep 4, 2003
|Yosef Haimovitch
|Apparatus and methods for cellular communication
|Oct 2, 2002
|Apr 8, 2004
|Hughes Michael A.
|Radio frequency indentification device communications systems, wireless communication devices, wireless communication systems, backscatter communication methods, radio frequency identification device communication methods and a radio frequency identification device
|Mar 11, 2003
|Oct 14, 2004
|Smith Randall B.
|Method and apparatus for communicating with a computing device that is physically tagged
|Citing Patent
|Filing date
|Publication date
|Jun 3, 2002
|Jan 2, 2007
|Harris Corporation
|System and method for obtaining accurate symbol rate and carrier phase, frequency, and timing acquisition for minimum shift keyed waveform
|May 4, 2005
|Nov 27, 2007
|Sensormatic Electronics Corporation
|Closed loop transmitter control for power amplifier in an EAS system
|Feb 3, 2006
|Dec 9, 2008
|Altivera L.L.C.
|One point calibration integrated temperature sensor for wireless radio frequency applications
|Feb 17, 2006
|Apr 7, 2009
|Datalogic Mobile, Inc.
|RFID antenna system having reduced orientation sensitivity
|Aug 11, 2008
|Apr 28, 2009
|On-Ramp Wireless, Inc.
|Tag communications with access point
|Nov 1, 2004
|May 19, 2009
|Nokia Corporation
|Methods, systems, devices and computer program products for providing user-access to broadcast content in combination with short-range communication content
|Aug 11, 2008
|Sep 22, 2009
|On-Ramp Wireless, Inc.
|Uplink transmitter in a random phase multiple access communication system
|Aug 11, 2008
|Sep 22, 2009
|On-Ramp Wireless, Inc.
|Despreading spread spectrum data
|Mar 20, 2009
|Dec 29, 2009
|On-Ramp Wireless, Inc.
|Downlink communication
|Apr 8, 2009
|Apr 20, 2010
|On-Ramp Wirless, Inc.
|Dynamic energy control
|May 27, 2009
|Jun 8, 2010
|On-Ramp Wireless, Inc.
|Spread spectrum with doppler optimization
|Jun 12, 2009
|Jun 22, 2010
|On-Ramp Wireless, Inc.
|Random phase multiple access system with location tracking
|Dec 29, 2008
|Aug 10, 2010
|On-Ramp Wireless, Inc.
|Random phase multiple access system with meshing
|Aug 11, 2008
|Aug 24, 2010
|On-Ramp Wireless, Inc.
|Random phase multiple access communication interface system and method
|Sep 25, 2007
|Oct 26, 2010
|Datalogic Scanning, Inc.
|System and method for verifying number of wireless tagged items in a transaction
|Nov 24, 2008
|Dec 7, 2010
|On-Ramp Wireless, Inc.
|Slotted mode acquisition
|May 25, 2006
|Jun 28, 2011
|Brother Kogyo Kabushiki Kaisha
|RFID tag information communicating device
|Feb 15, 2011
|Oct 11, 2011
|Myers Theodore J
|Handover processing in multiple access point deployment system
|Jun 16, 2010
|Oct 25, 2011
|On-Ramp Wireless, Inc.
|Controlling power in a spread spectrum system
|Jan 22, 2007
|Nov 22, 2011
|Cisco Technology, Inc.
|Remote inventory of devices
|Feb 22, 2011
|Nov 29, 2011
|On-Ramp Wireless, Inc.
|Error detection system
|Nov 8, 2006
|Feb 21, 2012
|Ncr Corporation
|Method and system for tuning an RFID interrogator
|May 26, 2011
|Feb 21, 2012
|On-Ramp Wireless, Inc.
|Signal quality measurement system
|Apr 6, 2010
|Apr 17, 2012
|On-Ramp Wireless, Inc.
|Method and system for uplink communication
|Oct 4, 2007
|Jul 3, 2012
|Cisco Technology, Inc.
|Inventory devices and methods
|Dec 28, 2009
|Sep 4, 2012
|On-Ramp Wireless, Inc.
|Downlink communication
|Sep 14, 2011
|Oct 16, 2012
|On-Ramp Wireless, Inc.
|User data broadcast mechanism
|Jul 21, 2008
|Oct 30, 2012
|Electronics And Telecommunications Research Institute
|Apparatus and method for managing radio frequency indentification reader
|Jan 20, 2012
|Nov 27, 2012
|On-Ramp Wireless, Inc.
|Handover processing in multiple access point deployment system
|Apr 10, 2007
|Nov 27, 2012
|Digital Lobe, Llc
|Methods for creating secret keys based upon one or more shared characteristics and systems thereof
|Feb 6, 2012
|Mar 19, 2013
|On-Ramp Wireless, Inc.
|Power detection in a spread spectrum system
|Apr 27, 2012
|Jul 2, 2013
|On-Ramp Wireless, Inc.
|Light monitoring system using a random phase multiple access system
|May 14, 2012
|Aug 27, 2013
|On-Ramp Wireless, Inc.
|RSSI measurement mechanism in the presence of pulsed jammers
|Apr 2, 2012
|Oct 22, 2013
|On-Ramp Wireless, Inc.
|Forward error correction media access control system
|Jun 13, 2012
|Nov 12, 2013
|Cisco Technology, Inc.
|Inventory devices and methods
|Jan 23, 2012
|Dec 17, 2013
|On-Ramp Wireless, Inc.
|Synchronized system configuration
|Aug 15, 2006
|Feb 25, 2014
|Hewlett-Packard Development Company, L.P.
|Methods and systems for positioning data fields of a radio-frequency identification (RFID) tag
|Jul 3, 2013
|Aug 26, 2014
|On-Ramp Wireless, Inc.
|Smart transformer using a random phase multiple access system
|Jul 10, 2013
|Sep 2, 2014
|On-Ramp Wireless, Inc.
|Fault circuit indicator system using a random phase multiple access system
|Jul 8, 2013
|Sep 9, 2014
|On-Ramp Wireless, Inc.
|Gas monitoring system using a random phase multiple access system
|Jul 9, 2013
|Sep 9, 2014
|On-Ramp Wireless, Inc.
|Water monitoring system using a random phase multiple access system
|Jun 12, 2013
|Sep 9, 2014
|On-Ramp Wireless, Inc.
|Electric monitoring system using a random phase multiple access system
|Jul 10, 2013
|Sep 16, 2014
|On-Ramp Wireless, Inc.
|Light monitoring system with antenna diversity
|Apr 29, 2010
|Feb 17, 2015
|On-Ramp Wireless, Inc.
|Forward error correction media access control system
|Jan 18, 2013
|Mar 31, 2015
|On-Ramp Wireless, Inc.
|Downlink communication with multiple acknowledgements
|Mar 30, 2015
|Mar 22, 2016
|On-Ramp Wireless, Inc.
|Combined unique gold code transmissions
|Mar 9, 2015
|Apr 12, 2016
|Hypres, Inc.
|Two stage radio frequency interference cancellation system and method
|Jun 3, 2002
|Dec 4, 2003
|Norris James A
|System and method for obtaining accurate symbol rate and carrier phase, frequency, and timing acquisition for minimum shift keyed waveform
|May 4, 2005
|Nov 17, 2005
|Sensormatic Electronics Corporation
|Closed loop transmitter control for power amplifier in an EAS system
|Nov 1, 2004
|May 18, 2006
|Nokia Corporation
|Methods, systems, devices and computer program products for providing user-access to broadcast content in combination with short-range communication content
|May 25, 2006
|Sep 14, 2006
|Brother Kogyo Kabushiki Kaisha
|RFID Tag Information Communicating Device
|Feb 3, 2006
|Sep 14, 2006
|Cohen Marc H
|One point calibration integrated temperature sensor for wireless radio frequency applications
|Feb 27, 2006
|Sep 21, 2006
|Anson Gary S
|Weight audit methods and systems utilizing data reader
|Feb 10, 2006
|Sep 28, 2006
|Psc Scanning, Inc.
|RFID tag singulation
|May 26, 2006
|Nov 30, 2006
|Psc Scanning, Inc.
|Apparatus and methods for saving power in RFID readers
|Jul 26, 2004
|Jun 28, 2007
|Manfred Koslar
|Information transmission with energy budget management
|Aug 15, 2006
|Mar 13, 2008
|Melendez Peter A
|Methods and systems for positioning data fields of a radio-frequency identification (rfid) tag
|Sep 25, 2007
|Apr 3, 2008
|Datalogic Scanning, Inc.
|System and method for verifying number of wireless tagged items in a transaction
|Nov 8, 2006
|May 8, 2008
|Adamec Andrew J
|Method and system for tuning an rfid interrogator
|Jan 22, 2007
|Jul 24, 2008
|Cisco Technology, Inc.
|Remote inventory of devices
|Apr 10, 2007
|Feb 26, 2009
|Digital Lobe, Llc
|Methods for creating secret keys based upon one or more shared characteristics and systems thereof
|Oct 4, 2007
|Apr 9, 2009
|Cisco Technology, Inc. A Corporation Of California
|Inventory devices and methods
|Jul 21, 2008
|May 28, 2009
|Electronics And Telecommunications Research Institute
|Apparatus and method for managing radio frequency indentification reader
|Aug 11, 2008
|Sep 24, 2009
|On-Ramp Wireless, Inc.
|Uplink transmitter in a random phase multiple access communication system
|Nov 24, 2008
|Sep 24, 2009
|Theodore Jon Myers
|Slotted mode acquisition
|Aug 11, 2008
|Sep 24, 2009
|On-Ramp Wireless, Inc.
|Despreading spread spectrum data
|Dec 29, 2008
|Sep 24, 2009
|Myers Theodore J
|Random phase multiple access system with location tracking
|Aug 11, 2008
|Nov 5, 2009
|On-Ramp Wireless, Inc.
|Random phase multiple access communication interface system and method
|Jun 27, 2008
|Dec 31, 2009
|Jon Korbonski
|Pallet assembly
|Apr 6, 2010
|Oct 7, 2010
|Sinsuan Kenneth C
|Method and system for uplink communication
|Oct 19, 2010
|May 19, 2011
|Myers Theodore J
|Handover processing in multiple access point deployment system
|Feb 3, 2006
|Aug 17, 2006
|Altivera L.L.C.
|One point calibration integrated temperature sensor for wireless radio frequency applications
|Feb 3, 2006
|Apr 16, 2009
|Altivera L L C
|One point calibration integrated temperature sensor for wireless radio frequency applications
|Feb 10, 2006
|Oct 12, 2006
|Psc Scanning Inc
|Rfid tag singulation
|U.S. Classification
|375/259, 375/340
|International Classification
|Cooperative Classification
|European Classification
|Mar 11, 2003
Owner name: MOTOROLA, INC., ILLINOIS
Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:KUFFNER, STEPHEN;COLLINS, TIMOTHY;EASTMOND, BRUCE;AND OTHERS;REEL/FRAME:013866/0312
Effective date: 20030311
|Mar 26, 2009
|Fee payment
Year of fee payment: 4
|Apr 6, 2011
Owner name: MOTOROLA SOLUTIONS, INC., ILLINOIS
Free format text: CHANGE OF NAME;ASSIGNOR:MOTOROLA, INC;REEL/FRAME:026081/0001
Effective date: 20110104
|Mar 18, 2013
|Fee payment
Year of fee payment: 8
|May 12, 2017
|Fee payment
Year of fee payment: 12