User Tools

Site Tools


projects:rfid_exploration

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
projects:rfid_exploration [2013/12/19 16:18]
jpatterson [Future Work]
projects:rfid_exploration [2013/12/19 18:02] (current)
mcruthven
Line 29: Line 29:
  
  
-{{projects:​Backscattering.gif?​550}}\\//​+{{projects:​Backscattering.gif?​550}}\\ 
 +//
 Diagram of backscattering ​ transmission of ON and OFF signals.//​\\ Diagram of backscattering ​ transmission of ON and OFF signals.//​\\
 \\ \\
Line 45: Line 46:
 Circuit used to decode the rfid tag modulated with a 125KHz down to a digital signal to be processed. // \\  Circuit used to decode the rfid tag modulated with a 125KHz down to a digital signal to be processed. // \\ 
 Photos of comparator'​d traces\\ Photos of comparator'​d traces\\
-Code - Mary \\+
  
 Our first implementation of the RFID reader was to take an analog signal and measure the peaks in order to find the signal was at 15KHz or 12.5KHz. We then graphed those differences representing different frequencies with as either a '​one'​ bit or a '​zero'​ bit. Finally we manually pieced multiple graphs together and then also manually decoded the graphs. Our first implementation of the RFID reader was to take an analog signal and measure the peaks in order to find the signal was at 15KHz or 12.5KHz. We then graphed those differences representing different frequencies with as either a '​one'​ bit or a '​zero'​ bit. Finally we manually pieced multiple graphs together and then also manually decoded the graphs.
Line 66: Line 67:
 Close up of spoofer signal.// Close up of spoofer signal.//
  
 +{{ projects:​digitalreader.jpg?​550 }}//
 +RFID reader signal after comparator. This signal was processed by the FPGA into the RFID card data.//
 +
 +==== FPGA and Verilog ====
 +
 +
 +{{ projects:​fpga_reader.jpg?​600 }}
 +
 +We tested our code in MATLAB before we implemented it in Verilog. We designed our MATLAB code with Verilog in mind. We designed our MATLAB code so that was a loop and updated the extracted code with each cycle of the code. We also avoided division and multiplication which helped make the transition to Verilog easy. 
 +
 +In our code, we attempted to correct errors by correcting single bit errors. We checked that the value of one of a bit's neighbors was the same as the bit we were checking. If it wasn't then we changed the value of that bit. 
 +
 +We made a 125kHz square wave with the FPGA and used it to drive our reader circuit. The FPGA could not supply enough current for the circuit, so we added a buffer before the coil. We did not accomplish the goal of getting a FPGA RFID reader to work, because we did not but the Verilog we developed on the FPGA. If we were to pursue this project then we would have to put the Verilog on the FPGA and figure out what the counting threshold is for the two different frequency waves. ​
 +
 +All of the code is saved in RFID exploration code folder.
  
 ==== Spoofer ==== ==== Spoofer ====
Line 180: Line 196:
  
  
-===== Future Work ===== 
  
  
-Our efforts were focused on recording the data from an RFID card and then reproducing it with separate harware. Instead of this two stage process, we could have tried to simply amplify the RFID card by reading it with one coil, amplifying the signal and directing the amplified signal toward a prox card reader. This solution may have resolved our issues with properly reproducing the prox signal and allowed us to focus simply on extending the prox card's range. This approach effectively makes a passive system into an active one.+===== Difficulties ​and Gotchas =====
  
-The algorithms we used to process data were not as efficient and clean as they could have been. Instead of simply edge-triggering to determine the location of a peak, we could have found the center of each pulse which may have yielded cleaner and more consistent results. 
  
-Because the input signal to the comparator was noisy, there were regular incorrect pulses that the software had to be resilient to. A Schmitt trigger (a comparator with hysteresis) could have cleaned up the signal and simplified the software. 
  
  
 + - Working with undocumented black boxes is difficult, you need to know what's going on inside.
  
  
-===== Workplan Reflection ===== 
  
 +===== Future Work =====
  
  
 +Our efforts were focused on recording the data from an RFID card and then reproducing it with separate harware. Instead of this two stage process, we could have tried to simply amplify the RFID card by reading it with one coil, amplifying the signal and directing the amplified signal toward a prox card reader. This solution may have resolved our issues with properly reproducing the prox signal and allowed us to focus simply on extending the prox card's range. This approach effectively makes a passive system into an active one.
  
 +The algorithms we used to process data were not as efficient and clean as they could have been. Instead of simply edge-triggering to determine the location of a peak, we could have found the center of each pulse which may have yielded cleaner and more consistent results.
  
 +Because the input signal to the comparator was noisy, there were regular incorrect pulses that the software had to be resilient to. A Schmitt trigger (a comparator with hysteresis) could have cleaned up the signal and simplified the software.
  
  
  
  
 +===== Work Plan Reflection =====
 +
 +As far as creating an RFID reader went, our workplan was accurate. The circuit involved was not terribly difficult, and once we understood the protocol and what we were supposed to see at each stage it wasn't difficult to debug.
 +
 +We started on the transmitter ahead of schedule and tried to make it work in many different ways. Unfortunately,​ interfacing with the HID prox readers on campus was not nearly as simple as we thought and we made little further progress. If we had not been interacting with a black box without any intermediate feedback beyond success or failure, this project would have been much more likely to succeed. We should have invested in a basic RFID reader that would tell us what the signal we were sending was being interpreted as. As it was, there was no feedback and we had no idea of whether we were getting closer or further away from success.
 +
 +As we struggled getting the transmitter to work, we pivoted to pursue RFID reading near the end of the project. As such, we made some modification to the reader to digitize the output data signal and attempted to hook it up to an FPGA. We probably should have worked on the FPGA RFID reader more in parallel with the rest of the project, when we were struggling with the writer.
 +
 +Overall, we effectively kept on or ahead of schedule, but experienced far more difficulties ​ than we could have anticipated.
  
 ==== Sources ==== ==== Sources ====
Line 210: Line 236:
 [[http://​www.coilcraft.com/​pdfs/​Doc397_TranspondersinRFID.pdf|RFID Coil Design by Coilcraft]]\\ [[http://​www.coilcraft.com/​pdfs/​Doc397_TranspondersinRFID.pdf|RFID Coil Design by Coilcraft]]\\
 [[http://​ww1.microchip.com/​downloads/​jp/​AppNotes/​00678b.pdf|Microship RFID Coil Design App Note]]\\ [[http://​ww1.microchip.com/​downloads/​jp/​AppNotes/​00678b.pdf|Microship RFID Coil Design App Note]]\\
- 
  
  
  
projects/rfid_exploration.1387487898.txt.gz · Last modified: 2013/12/19 16:18 by jpatterson