134kHz RFID with large coils - Page 1
Forum section: electronics / rf-microwave

author: cdw
author_rank: Contributor
timestamp: October 15, 2022, 04:05:08 pm
content: In a project on my farm, I read 134.2kHz FDX-B and HDX livestock tags with a Priority 1 RFID module. It works well, with read distance roughly equal to the coil diameter (25cm), which seems good for inductive/near-field coupling. I've also encountered bigger readers with ~1m coils and ~1m read-range, such ashttps://www.livestock.tru-test.com/en/readers/xrp2-panel-reader- these genuinely manage 90cm+ in an electrically less-than-ideal environment.It's easy to build a simple reader which works at close range with a small low-Q coil: e.g. for FDX, push-pull drive the coil in a series LC tuned to 134.2kHz, rectify the midpoint voltage, smooth and ac-couple into a comparator. However, I'm curious what it takes on the analogue side to build a higher quality reader that can get the best out of a high-Q 25cm coil, or a 1m coil, without punting the question to a ready-made module/chip!Playing with the 25cm coil I have, it's 2.7mH so needs 521pF series cap to tune for f = 134.2kHz. Driven with a 10V square wave, the midpoint voltage is 300V peak-to-peak, so I guess Q@f is about 23. High Q => it doesn't like being loaded, e.g. 1M load drops it to 285Vpp; 100k drops it to 200Vpp.Plonking an FDX tag in the middle of the coil, we get visible 2V modulation of the 150V peaks, two cycles of f/16 for a 0 bit, one cycle of f/32 for a 1 bit. That's easy to work with, but the modulation depth falls very fast as the tag moves away. For yet bigger coils and larger distances, I imagine we have smaller depth of modulation to separate from a higher voltage carrier, which you can't significantly load without spoiling the Q and reducing the field energy available to power the tags?My naive thought is to start just like the low-Q case, by rectifying (fast reverse-recovery diode but hv?), smoothing and decoupling (small C, large R for high impedance) to get signal + left-over carrier into op-amp range, then actively filter out the rest of the carrier and any low-frequency or 50Hz interference before a comparator. Larger coils => more precise job filtering to retain the signal while excluding the carrier and noise.There are other possibilities too, e.g. capacitively divide the carrier into an op-amp buffer as the first step to avoid loading the LC at all, and/or use the rising edge of the driving square wave to sample-and-hold the peaks of the carrier as an alternative way to rectify and filter. I'm skeptical about dividing because I've then attenuated my (already small) signal as well as the (big) carrier. Maybe I'm wrong about that, though, because it also means it's safely buffered (and low impedance) before I mess around with it?How do more experienced people tackle these kinds of sensitive readers with bigger coils? Am I on vaguely the right track, or is the right approach something completely different? Many thanks in advance for any advice or pointers!

author: nctnico
author_rank: Super Contributor
timestamp: October 15, 2022, 04:24:59 pm
content: Digital signal processing...A couple of years ago I did a design which uses relatively large PCB trace coils with an automatic tuning system and most of the heavy lifting for the demodulation done in the digital domain.

author: cdw
author_rank: Contributor
timestamp: October 15, 2022, 09:20:46 pm
content: Quote from: nctnico on October 15, 2022, 04:24:59 pmInteresting, thank you!I suppose the boldest take on this would be to do nothing except scale the carrier into an ADC's voltage range then digitise at >= twice the driving frequency. Easy to do in phase-sync too, given that we're driving the LC ourselves. Is that what you did, or did you preprocess a bit more first, e.g. basic rectification and smoothing?16 bits on that 300Vpp carrier is 5mV resolution. (I want to say that's way better than needed, and it might be, but I actually have no idea because I've not been able to measure how small the modulation gets at the furthest distances where the module can just detect it. And I've never even tested a coil bigger than the 25cm one.)

author: nctnico
author_rank: Super Contributor
timestamp: October 15, 2022, 09:56:56 pm
content: You need to do some filtering and doing the AM demodulation on the analog domain. IIRC I used a 3rd order filter in the analog domain. You'll still have a lot of the carrier in the demodulated signal which goes into the ADC. What I did was make sure that the ADC sampling frequency (which is much lower than the carrier) puts the aliased carrier frequencies away from the signal of interest so a digital low-pass filter get rids of the carrier frequency and the signal from the RFID tag remains. On top of that you can add some logic to decide what the decoded signal should look like to get rid of spurious signals. Fortunately the RFID tags repeat themselves so you can add a feature that needs to read the same tag a few times to ensure data integrity. If your dynamic range gets too big, you might be able to use some kind of log-amp trick (or even an AGC) to make sure you can receive small signals while not swamping the analog front-end + ADC when a tag gets very near.

author: cdw
author_rank: Contributor
timestamp: October 16, 2022, 12:58:28 pm
content: Thanks!