# Patent

## Title
Pipelining processes in a RF reader

## Abstract

The present disclosure includes a method and system for pipelining processes in an RF reader. In some implementations, a method includes receiving, from a transponder, a reply to an initial command. A physical (PHY) layer and a media control access (MAC) layer are pipelined to initiate transmission of a subsequent command during demodulation of the transponder reply.

## Background
TECHNICAL FIELD
This invention relates to Radio Frequency IDentification (RFID) Readers and, more particularly, to pipelining processes in an RF reader.
BACKGROUND
In some cases, an RFID reader operates in a dense reader environment, i.e., an area with many readers sharing fewer channels than the number of readers. Each RFID reader works to scan its interrogation zone for transponders, reading them when they are found. Because the transponder uses radar cross section (RCS) modulation to backscatter information to the readers, the RFID communications link can be very asymmetric. The readers typically transmit around 1 watt, while only about 0.1 milliwatt or less gets reflected back from the transponder. After propagation losses from the transponder to the reader the receive signal power at the reader can be 1 nanowatt for fully passive transponders, and as low as 1 picowatt for battery assisted transponders. At the same time other nearby readers also transmit 1 watt, sometimes on the same channel or nearby channels. Although the transponder backscatter signal is, in some cases, separated from the readers' transmission on a sub-carrier, the problem of filtering out unwanted adjacent reader transmissions is very difficult.
SUMMARY
The present disclosure includes a method and system for pipelining processes in an RF reader. In some implementations, a method includes receiving, from a transponder, a reply to an initial command. A physical (PHY) layer and a media control access (MAC) layer are pipelined to initiate transmission of a subsequent command during demodulation of the transponder reply.
The details of one or more embodiments of the invention are set forth in the accompanying drawings and the description below. Other features, objects, and advantages of the invention will be apparent from the description and drawings, and from the claims.



DESCRIPTION OF DRAWINGS
FIG. 1 is an example system for PHY-MAC pipelining in accordance with some implementations of the present disclosure;
FIG. 2 is an example signal plot in the system of FIG. 1;
FIG. 3 is an example phase-plane plot of the transponder reply in the system of FIG. 1;
FIG. 4 is an example algorithm for executing cyclic redundancy check in the system of FIG. 1; and
FIG. 5 is a flow chart illustrating an example method for PHY-MAC pipelining.



Like reference symbols in the various drawings indicate like elements.
DETAILED DESCRIPTION
FIG. 1 is an example system for pipelining processes in a physical layer (PHY) and media control access (MAC) layer. In this case, the system 100 includes a Radio Frequency (RF) reader 102 and a transponder 104. In some implementations, the reader 102 may transmit at least a portion of a command to a transponder prior to demodulating an entire reply from the transponder. In this example, the reader 102 can demodulate a packet received from a transponder and modulate a packet for transmission to the transponder substantially simultaneously. In some implementations, the reader 102 communicates using a half duplex, command/response format such that the reader 102 transmits commands to a transponder and then the transponder replies back to the reader 102 in response to the specific command. In some cases, the RF environment where the reader 102 and transponders operate can be noisy as other readers transmit commands in close proximity at the same or nearby frequency channels. As a result, the adjacent readers, in some implementations, can interference which the ability of the RFID reader 102 to filter out the much weaker transponder reply. By pipelining processes in the PHY layer and the MAC layer, the reader 102 can include very selective filters (e.g., receiver filters with passband from 160 KHz to 340 KHz and stopbands below 100 KHz and above 400 KHz providing 80 dB attenuation, transmit filters with 5 or more symbols of delay) without substantially increasing response times of the reader 102. In some implementations, the reader 102 may provide one or more of the following: extremely high selectivity (long delay) transmit and receive filters by pipelining command and reply processing; predicting the outcome of a transponder reply demodulation using a novel CRC look-ahead pass/fail; pass/fail demodulation prediction (e.g., collision detection) based on demodulator quality metrics; pipelining deterministic aspects of the commands, e.g., frame sync and/or preambles; use QueryAdjust following EPC for longer command to allow invalidating command (effectively becomes NAK) to avoid session flag transition on late EPC CRC failures; and others.
In some implementations, the reader 102 initiates transmission of a command in response to at least a transponder reply during demodulation of the transponder reply. In this case, the PHY layer can transmit metrics and/or status of demodulation to the MAC layer and, prior to full demodulation of a transponder reply, the MAC layer can initiate modulation of a command to the transponder. For example, the reader 102 may receive a reply packet from a transponder including a certain number of bits, and the reader 102 may initiate transmission of a command prior to demodulating the last bit of the reply. In this example, the combined delay of the reader 102 can be 20/FL where FL is the transponder link subcarrier frequency (also known as the link frequency). The combined delay, in some implementations, can be approximately 62 microseconds (us).
At a high level, the reader 102 includes a receiver module 106, a demodulator 108, a MAC engine 110, a modulator 112, and a transmitter module 114. While not illustrated, the reader 100 can include other elements such as those associated with processing digital signals, noise cancellation, and/or others. The reader 102 may be a “mono-static” design, i.e., readers in which the transmitter and receiver share the same antenna or “bi-static” design, i.e., readers which use separate antennas for transmit and receive. The receiver module 106 can include any software, hardware, and/or firmware configured to receive RF signals associated with transponders. In some implementations, the receiver 106 can include filters, amplifiers, mixers, and other elements to reduce noise, filter out channels, and/or downconvert received signals.
The demodulator 108 can include any software, hardware, and/or firmware configured to demodulate an analog signal to baseband prior to digital processing. In some implementations, the demodulator 108 periodically determines the status of a reply being demodulated and passes the status to the MAC engine 110. For example, the demodulator 108 may determine one or more metrics during the demodulation of a reply from a responder. In some implementations, the demodulator 108 may determine a status (e.g., collision, successful) based, at least in part, on the metrics and pass the status to the MAC engine 110. For example, the demodulator 108 may determine an average Euclidean distance of a signal vector to a decoder, i.e., a decode distance, in the event that the decode distance, or some function of the decode distance, violates a threshold, the demodulator 108 can determine that a collision has occurred with a signal source aside from the transponder reply. The demodulator 108 may transmit this status to the MAC engine 110. In addition or in combination, the demodulator 108 may determine a receive signal strength indication (RSSI) of the transponder reply, in some implementations. In the case that the RSSI is relatively high (−40 dBm), the demodulator 108 may estimate that the decode distance must have a relatively low value for the demodulation to likely succeed. In the case that the RSSI is relatively weak (−80 dBm), the demodulator 108 may determine that the decode distance may be relatively higher due to the receiver noise floor, thus raising the dicode distance threshold for estimating that a collision has occurred and passing this status to the MAC engine 110. In some implementations, the demodulator 108 can estimate failure or success of the transponder reply based, at least in part, on cyclic redundancy check (CRC). In general, CRC can be used to determine if received data is corrupted. In this implementation, the demodulator 108 can use preliminary results of a CRC process to estimate whether the transponder reply is a failure or a success prior to processing the last bit of the transponder reply. For example, the demodulator 108 can estimate that a transponder reply is a success in the event that the CRC process has not determined an error prior to processing all bits of the transponder reply.
The MAC engine 110 can include any hardware, software, and/or firmware configured to manage protocol commands and/or responses associated with transponder inventory transmissions by the reader 100. For example, the MAC engine 110 may adjust inventory frame size based, at least in part, on parameters received from the demodulator 108. In the illustrated implementation, the MAC engine 110 initiates, prior to full demodulation of a transponder reply, transmission of a command to the transponder 104. For example, the MAC engine 110 may pass an indication to the modulator 112 to begin transmitting the deliminator and/or headers associated with the command prior to full demodulation of the transponder reply. In doing so, the MAC engine 110, the demodulator 108, and the modulator 112 operate simultaneously for at least a period of time (up to 60 microseconds, depending on the link frequency settings). In some cases, the reader 100 includes filter delays such that a short transmission (e.g., a Query Repeat command following an EPC transponder reply) can be completed prior to full demodulation of the transponder reply. Though, the MAC engine 110 can receive an indication that the transponder reply failed as a result of CRC processing or some other metric in the final bit or two of the transponder reply. If the short Query Repeat command transmission occurs prior to detecting the error, the transponder 104 can transition session states even though the reader 100 did not successfully process the transponder reply. To avoid this, in some implementations, the MAC engine 110 initiates a longer Query Adjust command prior to full demodulation of the transponder reply. In using a longer command (e.g., Query Adjust), the MAC engine 110, in some implementations, can terminate the command in the event of receiving an error from the demodulator 108 prior to complete transmission. In some implementations, a terminated (invalid) command can have the effect on the tag state machine as a NAK command and the transponder 104 can return to the inventory state without transitioning its session flag.
The modulator 112 can include any hardware, software, and/or firmware configured to modulate a signal to generate a command for transmission. As mentioned above, the modulator 112 can initiate modulation of a command for transmission to a transponder prior to full demodulation of the transponder reply. For example, the modulator 112 can start transmission of a fixed “frame sync” header or preamble before demodulation of the received packet is complete. In this example, the frame sync portion of a transmission packet is independent of the command portion and the MAC layer. Once the demodulation of the receive packet is complete, the MAC engine 110 passes the payload portion of the transmit packet to the modulator 112 before violating protocol transmission guidelines. In short, the modulator 112 passes a modulated signal to the transmission module 114. The transmission module 114 can include any software, hardware, and/or firmware configured to transmit RF signals to transponder 104. In some implementations, the transmitter 114 can include filters, amplifiers, mixers, and other elements to reduce noise, filter out channels, and/or upconvert transmit signals.
In one aspect of operation, the transponder 104 transmits a reply to the reader 102. The receiver module 106 receives the transponder reply and passes the transponder reply the demodulator 108. In connection with demodulating the reply, the demodulator 108 determines one or more metrics indicative of errors and based, at least in part, on the error metrics determines a status of the transponder reply. In addition, the demodulator 108 may use preliminary results of CRC to also determine status of the transponder reply. During demodulation, the demodulator 108 passes the status to the MAC engine 110, which initiates transmission of a command in response to the transponder reply. For example, the MAC engine 110 may initiate a frame sync. The MAC engine 110 may pipeline some portion of the command code as well. In the event that the demodulator 108 detects an error, the MAC engine 110 may change the remaining portion of the command code to alter the nature of the command and/or terminate the transmission of the command.
FIG. 2 illustrates an example signal plot 200 illustrating communications between the transponder 104 and the reader 102 of FIG. 1. In particular, the plot 200 includes reader commands 202 and transponder replies 204. In some implementations, the receiver module 106 includes highly selective filtering and, as a result, the transponder replies 204 are delayed a period of time prior to passing to the demodulator 108, as illustrated by the RX filter delay 206. Similarly, the transmission module 114, in some implementations, include highly selective filtering and, as a result, the reader commands 202 can be delayed for a period of time prior to transmission to the transponder 104, as indicated by TX filter delay 208. To at least reduce the combined filtering delays, the reader 100 pipelines some processes. In doing so, PHY processes and MAC process execute simultaneously for a period of time (up to 60 microseconds, depending on the link frequencies), as indicated by pipelining 210.
FIG. 3 illustrates an example phase-plane plot 300 of a demodulated transponder reply in the system 100 of FIG. 1. In particular, the plot 300 depicts a in-phase signal (“I”) axis and a quadrature signal (“Q”) axis for plotting the demodulated signal vectors of each component. Using the plot 300, a decode distance 302 can be determine and may indicate a likelihood of a collision between a transponder reply and another signal. For example, the plot 300 can illustrate a collision if the decode distance exceeds a specified threshold (6 dB signal-to-noise ratio). In some implementations, the decode distance 302 can be determined by an average Euclidean distance of the demodulated signal vector into the decoder.
FIG. 4 illustrates an example CRC check algorithm 400 for determining a likelihood of an error in the transponder reply. For example, the algorithm 400 can be used to determine preliminary CRC failure results for transponder replies. In some implementations, the algorithm 400 relies on the sparse taps on an associated CRC feedback polynomial. For example, the standard CCITT 16 bit CRC polynomial is x16+x12+x5+1. In this example, the gap between the x12 feedback tap and the x5 feedback tap allows some information up to 6 bits in advance of the end of the CRC process as to whether or not there is a CRC failure. In this case, the reliability increases with each additional bit until the end of the packet. The final “residue” for a valid CRC match is 0x1d0f, in hexadecimal. The table below illustrates corresponding error probabilities:












Bits to go
CRC passing mask
Error probability







6
xxxx xxxx xx1x xxxx
1⁄2


5
xxxx xxxx x11x xxxx
1⁄4


4
xxxx xxxx 110x xxx0
 1/16


3
xxx0 xxx1 101x xx01
 1/128


2
xx00 xx11 010x x011
 1/1024


1
x000 x110 100x 0111
 1/8192









As indicated in the above chart, the algorithm 400 can generate a reasonable error probability with 4 or fewer bits before competition of the CRC process. In other words, assuming the BER is 1e-4 or better given that the packet has been recovered this far without a decode distance fault, there is a very high likelihood of packet demodulation success when there is no preliminary CRC fault detected with several bits to go. The algorithm 400 is generally applicable to other polynomials and may be table driven.

FIG. 5 is a flow chart illustrating an example method for PHY-MAC pipelining in the system 100 of FIG. 1. Generally, method 500 describes an example technique where the demodulator 108, the MAC engine 110, and the modulator 112 execute simultaneously for a period of time. System 100 contemplates using any appropriate combination and arrangement of logical elements implementing some or all of the described functionality.
Method 500 begins at step 502 where a transponder reply is received. For example, the transponder 104 transmits a reply to the reader 102. At step 504, demodulation of the transponder reply is initiated. In the example, the demodulator 108 starts demodulating the transponder reply. Next, at step 506, metrics for determining a likelihood of an error are determined. As for the example, the demodulator 108 determines one or more metrics such as decode distance, RSSI, CRC values, and/or others. Based, at least in part, on the metrics, a current status of the transponder reply is determined at step 508. Returning to the example, the demodulator 508 can determine at a current status (e.g., failure, success) of the demodulation process. At step 510, the current status of the transponder reply is passed to the MAC layer during demodulation. In the example, the demodulator 508 may continuously or periodically pass, to the MAC engine 110, the status of the transponder reply during the demodulation process. Next, at step 512, transmission of a command in response to the transponder reply is initiated. In the example, the MAC engine 110 can initiate transmission of a command which may include initiating a sync frame, which can be independent of the payload. At step 514, a command portion of the transmission packet is determined based on preliminary demodulator results. If an error is detected during the demodulation of the transponder reply at decisional step 516, then execution proceeds to decisional step 518. If the MAC layer does not have sufficient time to alter the command, then, at step 520, the command is terminated. If the MAC layer has sufficient time to alter the command at decisional step 518, the MAC layer alters the command in accordance with the erroneous reply at step 522. Returning to decisional step 516, if an error is not detected, then, at step 524, the transmission is completed. In some implementations, the reader 102 transmits a Query Adjust to increase the length of the command and ensure that the MAC engine 110 can terminate the command in response to detecting an error in the last few bits.
A number of embodiments of the invention have been described. Nevertheless, it will be understood that various modifications may be made without departing from the spirit and scope of the invention. Accordingly, other embodiments are within the scope of the following claims.

## Claims

1. A Radio Frequency (RF) device for pipelining process, comprising:
a receiver module configured to receive a reply from a transponder in response to an initial command;
a demodulator configured to demodulate the transponder reply and determine preliminary metrics indicative of errors in the transponder reply during demodulation;
a Media Access Control (MAC) engine configured to determine, based on the preliminary metrics, content of and initiate transmission of a subsequent command to the transponder prior to completing demodulation of the reply and, in response to completing demodulation of the reply, either updating the subsequent command signal or terminating transmission of the subsequent command;
a modulator configured to modulate a signal with commands; and
a transmitter module configured to transmit signals to the transponder.

2. The RF device of claim 1, wherein the demodulator is further configured to determine a current status of the transponder reply and pass the current status to the MAC engine.

3. The RF device of claim 2, wherein the current status is based on at least one of a decode distance or a receive signal strength indication (RSSI).

4. The RF device of claim 2, wherein the current status is based on a current status of a cyclic redundancy check (CRC) process prior to completion of demodulation.

5. The RF device of claim 1, wherein the demodulator continuously determines a status of the transponder reply and continuously passes the status to the MAC engine.

6. The RF device of claim 1, wherein the subsequent command after an Electronic Product Code (EPC) transponder reply comprises a Query Adjust.

7. The RF device of claim 1, wherein the MAC engine configured to initiate transmission of the subsequent command comprises the MAC engine configured to initiate transmission of a frame sync during demodulation of the transponder reply.

8. The RF device of claim 1, wherein the MAC engine is further configured to terminate transmission of the subsequent command in response to at least receiving an indication of an error from the demodulator.

9. The RF device of claim 1, wherein the demodulator, the MAC engine, and the modulator operate simultaneously for a period of time during demodulation of the transponder reply and modulation of the subsequent command.

10. The RF device of claim 1, wherein a period of time from a final bit of the transponder reply enters the receiver module to a time a deliminator symbol of the subsequent command exits the transmitter module is less than 20/FL where FL is a transponder link subcarrier frequency.

11. A method for managing transmissions, comprising:
receiving, from a transponder, a transponder reply to an initial command;
pipelining a physical (PHY) layer and a media control access (MAC) layer to initiate transmission of a subsequent command during demodulation of the transponder reply; and
in response to completing demodulation of the transponder reply, either updating the subsequent command or terminating transmission of the subsequent command.

12. The method of claim 11, wherein pipelining the physical layer and the media control access layer comprises:
determining metrics indicative of errors in the transponder reply during demodulation;
initiating transmission of the subsequent command to the transponder prior to completing demodulation; and
modulating a signal with at least a portion of the subsequent commands prior to completing demodulation.

13. The method of claim 12, further comprising:
determining a current status of the transponder reply based, at least in part, on the determining metrics; and
passing the current status to the MAC layer.

14. The method of claim 13, wherein the current status is based on at least one of a decode distance or a receive signal strength indication (RSSI).

15. The method of claim 13, wherein the current status is based on a current status of a cyclic redundancy check (CRC) process prior to completion of demodulation.

16. The method of claim 13, wherein a current status the transponder reply is continuously determined and continuously passed to the MAC layer.

17. The method of claim 11, wherein the subsequent command after an Electronic Product Code (EPC) transponder reply comprises a Query Adjust.

18. The method of claim 12, initiating transmission of the subsequent command comprises initiating transmission of a frame sync during demodulation of the transponder reply.

19. The method of claim 12, further comprising terminating transmission of the subsequent command in response to at least receiving an indication of an error during demodulation.

20. The method of claim 12, wherein demodulation, the MAC layer, and the modulation operate simultaneously for a period of time during demodulation of the transponder reply.

21. The method of claim 12, wherein a period of time from a final bit of the transponder reply is received to a time a deliminator symbol of the subsequent command is transmitted is less than 20/FL where FL is a transponder link subcarrier frequency.