An Identification System Reading Device
This invention relates to an identification system reading device, and particularly, though not exclusively, to a radio frequency identification system reading device.
In use, identification systems provide a means of automatically verifying the identity of some object by means of 'reading' an identity label or transponder associated with the object. A simple (and very common) form of identification system is a bar code system whereby objects are labelled with a unique bar code. A reading device in the form of an infra-red unit is used to scan the bar code, whereafter identity information on the object concerned can be ascertained by means of comparing the 'read' bar code with a stored database which conesponds a pre-stored list of bar codes with relevant identity information.
An increasingly popular form of identification system is the radio frequency identification (RFID) system. The principle behind the RFID system is similar to that of the bar code system in that objects have an associated identifier, in this case an electronic transponder, which can be read by an RFID reading device. The transponder can be active (i.e. it has its own power supply) or passive. In the passive setup, the RFID reading device emits a low power radio frequency (r.f.) signal which energises a passive RFID transponder (also known as a 'tag') when it comes within a particular range of the reading device. This energisation causes the tag to generate a repeating digital sequence which will usually be unique to that particular tag. The repeating digital sequence is modulated and transmitted, via an antenna or coil, to the reading device. The reading device receives the modulated digital sequence signal and decodes it in order to determine the digital sequence contained within the repeating digital sequence signal received. Having established the digital sequence, the reading device then compares the sequence with a stored database of pre-stored sequences to determine the identity of the tag, or rather the object associated with the tag.
RFID systems have advantages in that line-of-sight is not required between the tag and the reader, and the system is able to operate with a relatively large distance between the tag and reader. This can be in the order of approximately forty metres. RFID systems are commonly used for security purposes, anti-theft retail systems, stock control, automatic toll collection and so on.
A common problem with RFID systems (and indeed any identification system using a wireless link) is that the modulated digital sequence signal will be contaminated with noise, due to both external pickup and internal noise in the receiver. This is a particular problem given the long-range nature of the tag to reader link. Whilst digital sampling and filtering can help, this requires a relatively significant amount of memory (particularly considering that the digital sequence may be in the order of 100 bits) and generally requires post-processing after a certain number of bits are received. This processing is undesirable in what should be a real-time identification system.
According to a first aspect of the invention, there is provided an identification system reading device comprising: means arranged to receive and sample a repeating data sequence transmitted from one or more remote identification sources; means arranged to identify groups of samples relating to corresponding portions of the repeating data sequence; and means ananged to sum together, and store in a first memory, the magnitudes of the samples in each group thereby to maintain an accumulating sampled version of the data sequence.
As will be understood, each 'group' of samples represents samples taken from the same portion of the repeating data sequence. Thus each group may hold a single sample for each repetition of the data sequence, the sample being taken at the same instantaneous time during the data sequence. Alternatively, if the data sequence comprises a bit stream (as will most likely be the case) each group may hold a number of accumulated samples for each repetition of a given bit.
Since the reading device maintains an accumulating version of the data sequence by means of summing together corresponding portions of the repeating data sequence, the
problems associated with noise are reduced. This is because, by its nature, the noise will have a normal (gaussian) distribution. Therefore, as more samples are taken and their magnitudes added together, the noise part of the sampled signal will tend to add to the signal as much as it takes away. Since the true signal part of the sampled signal will be constant, this will simply add. In practice, the noise part of the sampled signal will not totally cancel, but will follow an approximate square root law, that is, the signal will increase only by a factor of the square root of the number of samples taken (for each portion of the data sequence). A further advantage is provided by identifying and summing together the 'groups' of samples since this makes efficient use of memory and allows processing to be performed as successive repetitions of the data sequence are being received. Real time processing of the data is provided for by the reader.
It will be appreciated that references to data, digital data, repeating data sequences etc. are intended to cover the situation where data is modulated into an analogue signal. The important point is that digital data is contained in, and can be recovered from, the analogue signal.
Preferably, the apparatus further comprises transmission means. These transmission means may be arranged to transmit an energising signal for energising one or more remote identification sources thereby to cause the one or more data sources to transmit the repeating data sequence. The transmission means may be further arranged to reset remote identification data sources so as to cause the repeating data sequence to be retransmitted from a predetermined reference point in the data sequence. The transmission means may be arranged to perform the reset operation by reducing the energising signal to a predetermined level for a finite time period. Alternatively, the transmission means may be ananged to perform the reset operation by means of transmitting a reset command signal to the one or more identification data sources.
The summing and storing means may be ananged to allocate an area of the first memory to each group of summed sample magnitudes, with the value of the summed sample magnitudes in each memory area being iteratively updated in accordance with repeating versions of the data sequence being received.
The identification system reading device may further comprise means arranged to monitor the memory capacity of each memory area, and to normalise the value of the summed sample magnitudes for every group in the event that one of the memory areas approaches a maximum memory capacity level. Thus, if the memory space begins to become limited, the normalising effect allows the relative signal levels to remain the same whilst keeping the required memory space occupied to a small level.
The receiving and sampling means is ananged to receive the repeating data sequence at a predetermined bit-rate, and to sample the repeating data sequence at a predetermined sampling rate which is higher than that of the bit-rate.
The identification system reading device may further comprise: a second memory storing a look-up table of identification codes, each identification code comprising a data sequence associated with one or more remote identification sources; and processing means ananged to compare the accumulating sampled version of the data sequence in the first memory with the look-up table in the second memory thereby to determine the identity of the remote identification source from which the repeating data sequence is received.
The reading device may be adapted for use in a radio frequency identification (RFID) system.
According to a second aspect of the present invention, there is provided a radio frequency identification (RFID) system comprising: a identification device ananged to transmit a repeating unique data sequence; and an identification system reading device in accordance with any preceding claim, the data reading apparatus being ananged to receive the repeating data sequence from the identification device and to identify the identification device on the basis of the received data sequence.
According to a third aspect of the present invention, there is provided a method of processing a repeating data sequence received at an identification system reading
device, the data sequence being received from at least one remote identification data source, the method comprising: sampling the received repeating data sequence; identifying groups of samples which relate to conesponding portions of the repeating data sequence; summing together the magnitudes of the samples in each group; and storing the cumulative magnitude for each group in a first memory so as to maintain an accumulated sampled version of the digital sequence.
Preferably, the remote identification data source transmits the repeating data sequence in accordance with an energising signal being received from the identification system reading device.
The method may further comprise resetting the or each remote identification data source so as to cause the repeating data sequence to be retransmitted from a predetermined reference point in the data sequence. The resetting operation may be performed by means of the identification system reading device reducing the energising signal to a predetermined power level for a finite time period. Alternatively, the resetting operation may be performed by means of the identification system reading device transmitting a reset command signal to the one or more identification data sources.
The identification system reading device may allocate separate areas of memory for storing the cumulative magnitude for each group of samples, the value of the cumulative magnitude in each area of memory being iteratively updated in accordance with repeating versions of the data sequence being received. The device may monitor the memory capacity of each memory area and normalise the value of the cumulative magnitude for every group in the event that one of the memory areas approaches a predetermined maximum memory capacity level.
The identification data source may transmit the repeating data sequence at a predetermined bit-rate and the identification system reading device may sample the received repeating data sequence at a predetermined sampling rate which is higher than that of the bit-rate.
If the identification system reading device includes a second memory storing a look-up table of identification codes, each identification code comprising a data sequence associated with one or more identification data sources, the identification system reading device may compare the accumulated version of the repeating data sequence in the first memory with the look-up table in.the second memory to determine the identity of the identification data source from which the repeating data sequence was received.
The invention will now be described, by way of example, with reference to the accompanying drawings, in which:
Figure 1 is a plan view of a RFID system including a reader and a plurality of transponders;
Figure 2 is a block diagram representing the functional components of the reader and one of the transponders shown in Figure 1;
Figure 3 shows waveforms of various signals transmitted and received from the reader or one of the transponders shown in Figure 1;
Figure 4 shows, in schematic form, memory areas of the reader shown in Figure 1; and
Figure 5 shows waveforms of an alternative form of signal transmitted from one of the transponders shown in Figure 1.
Refening to Figure 1, an RFID system includes a reader 1 comprising an antenna 3, and first, second and third transponders 7, 8, 9 having respective antennas 10, 11, 13. The first, second and third transponders 7, 8, 9 are passive transponders and contain no internal power supply. The reader 1 emits an r.f. energising field for energising any one or more of the first, second or third transponders 7, 8, 9 which come within the field range of the energising signal, represented here by the circle 5. As can be seen in Figure 1, only the second transponder 8 is within the field range 5 of the reader 1.
Figure 2 is a block diagram of the main functional parts of the reader 1, and the second transponder 8 is shown.
The second transponder 8 (hereinafter refened to as "the transponder") comprises the antenna 11 which is connected to a power, control module 14. Connected to the power control module 14 is a transceiver 15 comprising analogue-to-digital conversion (ADC) and r.f. mixing capabilities. The transceiver 15 is connected to a processor 17 for controlling data processing within the transponder 8. The processor 17 is connected to a transponder memory 19, which stores a predefined digital code in the form of a unique bit sequence. The digital code is used by the reader 1 to identify the transponder 8 which has entered the reader's field range 5.
The first and third transponders 7, 9 are constructed in the same way as the second transponder 8 and include a respective memory (not shown) storing their own unique digital code.
In operation, when the transponder 8 enters within the field range 5 of the reader 1, the power control module 14 detects the energising field emitted from the reader 1, and energises the other modules of the transponder 8 (i.e. the transceiver 15, the processor 17, and the transponder memory 19). In response to being energised, the processor 17 retrieves the code stored in the transponder memory 19 and repeatedly outputs the digital code to the transceiver 15. The transceiver 15 modulates the repeating digital code by means of an r.f. mixing stage (not shown). The modulated digital code is transmitted by means of the antenna 11.
As mentioned above, the transceiver 15 also includes an ADC capability. In this respect, it will be appreciated that the transponder 8 not only outputs data, but may receive data from other sources, such as the reader 1. For example, the digital code stored in the transponder memory 19 will be input in a programming operation, perhaps using the reader 1 (or some other form of programming device). Indeed, it may be advantageous to allow the transponder memory 19 to be periodically re-programmed for
security purposes. Other command signals may be sent to the transponder 8, as will be explained below. The mixing stage followed by an ADC stage (in the transceiver 15) are the means by which incoming data is demodulated.
Turning now to the reader 1, this module comprises the antenna 3 (mentioned previously) which is connected to a transceiver 21. The transceiver 21 is connected to a processor 23, to which is connected a first memory 25 and a second memory 27. The transceiver 23 comprises analogue-to-digital conversion (ADC) and r.f. mixing capabilities for modulation and demodulation purposes. The processor 23 performs certain data processing operations. The first memory 25 is used to store the received and demodulated digital code, as will be explained below. The second memory 27 comprises a look-up-table (LUT) which stores (a) digital codes which are the same as the digital codes emitted from the first, second and third transponders 7, 8, 9 when energised, and (b) identity information conesponding to each digital code. The reader 1 has its own power supply (not shown) which powers the electrical components within the reader and ensures a constant energising field is emitted from the reader by means of the transceiver 21 and antenna 3.
As mentioned above, when the transponder 8 enters the field range 5 of the reader 1, the energising field from the reader 1 causes the transponder to become energised and to repeatedly transmit the digital code stored within its memory 19. The repeating digital code (in modulated form) is received by the reader 1 via the antenna 3 and transceiver
21 (which performs the necessary demodulation and digital conversion). The demodulated data code is input to the processor 23 which transfers the data code to the first memory 25. As will be explained, this data transfer is performed by the processor
23 in such a way that the non-repeating form of the digital code can be established in the first memory 25, with adverse effects caused by noise (due to atmospheric effects and noise in the receiver) being reduced. The digital code stored in the first memory 25 is thereafter compared with the LUT of the second memory 27 in order to verify the transponder 8 and to retrieve any other information associated with it.
Reducing the effect of noise in the system is desirable since the power output from the (passive) transponder 1 will be limited, and so the noise may affect the integrity of the data code being received. Put simply, if the effect of noise is not reduced, the digital code established in the first memory 25 may not be exactly the same as the digital code transmitted from the transponder 8. In identification applications, even a one-bit enor in the received code can cause significant problems.
The operation of the reader 1 will now be more fully explained.
Figure 3a shows the energising power emitted by the reader 1. Tl represents the time at which the transponder 8 enters the field range 10 of the reader. At this point, the repeating digital code is transmitted by the transponder 8. Figure 3b shows the resulting signal received at the reader 1. As Figure 3b illustrates, noise is present on the received signal. The binary data shown above the received signal represents the true digital code output from the transponder 8. Although only the initial thirteen bits of the digital code are shown, it will be appreciated that the actual digital code may be of any length (indeed, codes in the region of 100 bits are common). Another feature not clearly shown in Figure 3b is the fact that the digital code is repeated once completely transmitted. So, if we assume that the digital code comprises only the thirteen bits shown (0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1) then the digital code transmitted will be (0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, etc). The received signal is sampled in the transceiver 21 at a rate of one sample per bit (referenced to the bit-rate of the transmitted digital code), as shown in Figure 3c. This sampling operation acquires an eight-bit (one-byte) value for each 'bit' of the received signal, this value being representative of the magnitude of the received signal.
Having acquired the one-byte value for each bit of the received signal, the processor stores this value in the first memory 25. More particularly, the processor 23 assigns a two-byte area of the first memory 25 for each bit of the digital code. Thus, in the present thirteen-bit example, thirteen separate two-byte memory areas are provided, each memory area being assigned to a respective one of the bits in the digital code. As successive repetitions of the digital code are sampled, the processor 23 adds (i.e. sums)
the newly acquired values to the appropriate memory area according to the position of the relevant bit in the digital code sequence.
Figure 4 shows first, second and thirteenth two-byte memory areas 29, 31, 33 which are respectively assigned to the first, second and thirteenth bits of the digital code. It will be appreciated that third to twelfth memory areas are also provided but not shown. The magnitude of the sample taken for the first bit of the digital code (transmitted as a "0") is stored in the first memory area 29, the second bit (transmitted as a "1") is stored in the second memory area 31, and so on, with the thirteenth bit. (transmitted as a "1") being stored in the thirteenth memory area 33. Following the thirteenth sample, the fourteenth sample will relate to the first bit again and so the magnitude of this sample will be added to the current value in the first memory area 29 and so on. The first, second and thirteenth memory areas 29, 31, 33 effectively maintain an accumulating sampled version of the digital code transmitted from the transponder 8.
The effect of adding the sampled magnitude for the same bit for each repetition of the digital code is to reduce the effect of noise present on the received signal. The noise present on the signal has a normal statistical distribution (sometimes refened to as a "gaussian" distribution). A characteristic of this distribution is that the likelihood of noise being additive to the signal equals the likelihood of the noise being subtractive. Accordingly, by adding the sampled magnitude for each repeating version of the received signal (at the same portion of the signal), the noise present on the signal should, in theory, cancel itself out. Since the true signal (i.e. the transmitted digital code) will always be additive, as more samples are taken, the true signal should emerge from the noise.
In practice, the noise will not exactly cancel. Rather, the noise will actually tend to reduce by a factor approximately equal to the square root of the number of samples taken on each portion of the received signal. For example, if the received signal has a level of ImN and the noise on that received signal has a level of 4mN, then if 81 sweeps of the digital code are performed (i.e. the code repeats 81 times and we sample once every bit) then the true signal will add to be 8 ImN whilst the noise should
converge to be approximately 36mN, i.e. δl. multiplied by 4mN. It is observed that the signal emerges from the noise as more samples are taken.
As an alternative to taking one sample per bit, the sampling process could be modified to take more samples-per-bit. As an example, in Figure 3d, three samples-per-bit are taken. Clearly, this has the advantage of being quicker than the case shown in Figure 3 c (i.e. it takes one-third of the time to acquire the same number of samples).
As will be appreciated from the above description, in order for the 'adding' operation to work conectly, it is important that a sample taken at a particular portion in the repeating digital code is added to the appropriate memory area in the first memory 25. Where the length of the digital code is known to the reader 1, this is straightforward. Assuming the code length is thirteen bits, and assuming one sample per bit is taken, the reader 1 will know that the first sample, the fourteenth sample, the twenty-eighth sample etc. will conespond to the first bit of the digital code and so the magnitude of that sample is always added to the first memory area 29.
Where the data length and transmission rate of a repeating signal from an RFID tag is known it is not necessary to reset the tag. n samples are taken for the total data period and the sequence starts again at the beginning. Another n samples are then taken and these are summed in the same order and in the same memory locations as in the previous sweep of data. After an appropriate number of sweeps the memory contents are analysed. The repeating data has a unique header or unique structure which allows the 'beginning' of the digital code to be established.
The analysis and collection process can be streamlined by using the data, in real time, to establish synchronism with the bit start. The period of a single bit is divided into, say, 7 equal time parts and just 7 memory accumulators are provided for the purpose of determining the bit start. The incoming data is collected every "(bit-time)/7" and is first processed to extract dv/dt as a modulus. This will indicate the fast rising edge at the start of the bit. It is now assumed that several hundred dv/dt modulus readings are taken, separated by a period of bit-time/7, and summed in rotation in the 7 memory
accumulators. Eventually one of the seven memory accumulators will peak over the other and this indicates the start of the bit stream of time, dv/dt can be easily obtained by taking the difference between the present sample and the last sample to give a modulus - delta amplitude per unit time. For systems where each single bit of data is sent in 2 parts, such as Manchester code and Bi-phase code, there are generally two peaks. The larger indicates the 'always change' position and this gives a good reference. It may be desirable to divide the bit into more portions, say 10 or 11, as two bit parts are effectively considered.
Alternatively, if the data has a restricted bandwidth and is so rounded that a clear start edge is not present, the peaks/troughs can be sensed by measuring the modulus of the excursion of the amplitude above and below the bias point. The data can be gathered in, say, 7 memory accumulators as above. This time, the peaks/troughs may be assumed to occur at the middle of the bit.
If the start of the bit cycle is synchronised, as above, then the data collection can be done using a minimum of memory accumulators. An n bit data string can be collected using n memory accumulators, as previously described, with the data collection being performed when the tag is reset. The beginning of the string can be found later by looking for a header or another unique feature of the string. Note that once the start position of each bit is known in real time, then for data encoding such as Manchester or Bi-phase, the two parts of the bit can be turned into one by the simple expedient of adding the complement of the second half and this also eliminates 'DC offset', one of the principle advantages of Manchester/Bi-phase encoding.
Finally if the data length is known, although the baud rate is known to be one of several possible alternatives, then the incoming data can be tested for the various rates, as above, until a match is found for the baud, and then the data collection adjusted to suit.
Where the length of the digital code is not known, an estimate of the maximum number of bits in the digital code is made, and a slightly greater number of memory areas is assigned for each bit. Thus, if it is estimated that the maximum number of bits is
thirteen, then twenty memory areas might be assigned. By causing the transponder 8 to start transmitting the digital code from a known reference point, i.e. from its start point, the first sample always relates to the first bit of the digital code which should always be stored in the first memory area 29, and so on for the other samples. Thus, the reader 1 may take twenty samples and store the sampled magnitudes in the twenty memory areas (even though memory areas fourteen to, twenty actually store samples relating to repeating versions of the digital code's first seven bits). At this point, the reader causes the transponder 8 to start transmitting its digital code from its start point, i.e. the first bit. This can be performed by means of momentarily reducing the energising power emitted from the reader 1, as shown at time T2 in Figure 3 a, and then restoring the energising power, as shown at time T3 in Figure 3 a. This will cause the transponder 8 to momentarily lose its source of power. Upon being energised again, the transponder transmits its code as before, as shown at time T3 in Figure 3b. The first bit sampled relates to the first bit in the code, and so the sampled magnitude is stored in the first memory area 29 and so on. As an alternative to reducing the energising power, the reader 1 can send a reset command signal to the transponder 8, which reset signal is demodulated by the transceiver 15 for causing the processor 17 to start transmitting the digital code from the first bit. Once a sufficient number of samples have been acquired, the processor determines the actual length of the digital code by comparing the code to identify the point at which the code repeats.
As Figure 4 shows, each memory area 29, 31, 33 comprises two bytes (a lower byte "a" and an upper byte "b") for accumulating the total value of the sample magnitudes for each bit of the digital code. The lower byte is the "least significant byte" to which is added the magnitude of the most recently acquired sample, with the upper byte being incremented once the lower byte becomes full.
Once a sufficient number of samples have been taken, say 100 samples, and accumulated for each bit of the digital code, the processor 23 then makes the decision as to whether the value stored in each memory area (including the first, second, and third memory areas 29, 31, 33) conesponds to a "0" or a "1" thereby to establish the digital code as transmitted. The processor 23 does this by maintaining a mean value for
each memory area and then making the decision that values falling above this mean value must be a "1" and values below must be a "0". Having established the digital code, a verification can be performed by comparing the digital code with the LUT in the second memory 27 to determine the identity of the transponder 8
The fact that memory areas 29, 31, 33 are used for accumulating sampled values as the digital code repeats means that post-processing is avoided and so reconstruction and verification can be performed in real-time, as can the process of maintaining an updated mean value of values in each memory area 29, 31, 33. Memory is also utilised efficiently. In the above example, only thirteen two-byte memory areas are required to maintain the current value of the summed samples. Indeed, the memory required can be kept to a minimum since the actual value of the summed samples in each memory area is not crucial. Rather, it is the relative values of the summed samples that are important so that it can be determined whether the value in each memory area conesponds to a "1" or a "0". Thus, if the accumulating value in a particular memory area reaches a predetermined maximum level, a normalisation operation can be performed on each memory area by rotating all memory areas right and dividing the sums by two. This keeps the values stored in the memory areas to a manageable level whilst maintaining the same relative levels (which can be used to determine the digital code).
It may be necessary to take account of permissible energising power levels, as specified by governing bodies in each country of application. However, long range readers generally require high power in order to energise transponders at distance and to receive the data being sent from the transponders. Accordingly, there are conflicting requirements for low emitted power and for long range energising. This can be met by pulsing the power so that the overall emitted power (averaged over a set time period) is within the specified limits. However, if it is assumed that the set time period will be in the order of 100 ms, then a problem can occur since the time for transmitting the digital code can be relatively long compared to the 100 ms window allowed for averaging the power. Indeed, a duty cycle of as little as 10% or even lower may be used. A further
problem is that if the energising power is pulsed, the transponder from which data is being read may reset since the energising field will be lost and then emitted again.
Refening to Figure 5, a number of methods for overcoming the abovementioned problems are illustrated. Since pulsing is used, it is important that the pulses are appropriately ananged to 'capture' (i.e. to receive/read) each bit of the digital code transmitted from the transponder 8. This has to be performed a number of times so that a sufficient number of samples are added, thereby causing the noise part of the signal to converge to a low level. In Figure 5a, each pulse has a duration equal to the time period of three bits. The first three pulses (PI, P2 and P3) are ananged to capture the first three bits of the digital code (which are added and respectively stored in the first three memory areas in the first memory 25). After the first three bits have been accumulated (say, after 100 repetitions of the digital code) then the pulses can be shifted to capture the fourth, fifth and sixth bits and so on, which are thereafter accumulated in appropriate memory areas. So long as each bit of the digital code is sampled the same number of times, the ordering of the pulses in not important.
A further example is shown in Figure 5. In this anangement, the first pulse captures the first three bits of the digital code. The next pulse is shifted by a time Tl and captures the second, third and fourth bits. The next pulse is shifted by a further time Tl and so captures the third, fourth and fifth bits. Thus, as the process repeats, all bits of the digital code are sampled three times in succession (including the bits at the beginning and end of the code, once the code begins to repeat). The process repeats until a sufficient number of summations are made to allow the noise part of the signal to converge to zero.
In order to keep the transponder 8 sufficiently energised (i.e. so that it will not be reset) an intermediate level of power (indicated as 'level 2" in the Figures) is provided. Level 1 indicates the signal level which is required by the reader 1 in order to energise the transponder 8 and to receive the digital code sent from the transponder. It will be seen that level 2 is at a much lower level than level 1 (thus keeping the overall average power low) but is still sufficient to keep the internal clock of the transponder operating.
Thus, the digital code emitted from the transponder 8 does not return to its start point each time the signal from the reader 1 is taken low.