James Wang (jamesw10) - ECE 120

Introduction

Physical security has been a major issue for decades. By giving somebody a key to a lock, it's possible that the key be cloned and used later to gain unauthorized access to the premise, even if the original key was returned.

With RFID technology, it's possible to issue each user an individual digital key that allows them to be easily authenticated. Should a key need to be revoked for any reason, it's as simple as updating the access list. Once a key is revoked, both the original copy and any possible clones are immediately rendered useless.

While it's possible to create a RFID lock by simply attaching a RFID reader to an Arduino or similar microcontroller ... that's no fun. This project will attempt to create a RFID authentication system purely using logic gates, flip-flops, shift registers, and memory devices (SRAM/EEPROM). No programming necessary.

Design Details

RFID Reader
An ID20-LA RFID reader will be used. Data is outputted in the Wiegand 26 format. On the same circuit, a NOT gate will be used to invert the "data0" and "data1" outputs. Additionally, a transistor + NOT gate will be used to form the "tag in range" outputs.

Data Validation Circuit
Using the built-in even and odd parity bits in the Wiegand 26 format, this circuit will validate that all data has been correctly received. Additionally, a counter will ensure that exactly 26 bits are received. If more/fewer than 26 bits are received, validation should fail.

SIPO Shift Register
This circuit will convert the serial data from the Wiegand 26 format into parallel data, 8 bits at a time. Since there are 24 bits of data, this will need to be done three times.

SRAM (Static RAM)
The SRAM will temporarily store the data from the RFID reader for the comparator circuit to use.

RAM

The SRAM has been replaced by a custom RAM module created from three SIPO shift registers and four 4:1 MUX's. This gives us 24 bits of data storage with 2 address line selectors. The address "11" will always return data "0000 0000", while the other three addresses will return the appropriate data contained in the shift registers. The SIPO shift registers will allow us to load the data bits serially as they come in, rather than needing to complicate things by loading them in parallel into an actual SRAM module.

EEPROM
This is a non-volatile form of memory that will store a pre-defined list of cards that should be "granted access".

Comparator Circuit
This circit should cycle through the EEPROM and check each entry within the EEPROM with the current entry stored in SRAM. If there is a matching entry, it should return a success.

Arduino
The arduino will purely be used to program the EEPROM (writing to EEPROM from the reader is outside the scope of this project). Once the EEPROM has been flashed, the arduino will be disconnected from the device.

Parts

  • ID20-LA RFID Reader
  • Arduino Mega (for programming EEPROM)
  • SIPO Shift Register
  • 4:1 MUXes
  • EEPROM Module
  • 8-bit/12-bit Ripple Counters
  • Comparators
  • Logic Gates (NOT/AND/NAND/OR/XOR/XNOR)
  • JK and D-type Flip-Flops
  • 555 Timer or other clock generation source

Possible Challenges

This is an extremely complicated project, so simply finishing on time may be a challenge.

Some additional challenges include:

  • Ensuring that timing sequences are correct (ie. lining up a clock signal with correct data signals, ensuring enough delay between logic gates, etc.)
  • Designing all of the circuits, specifically the data validation and comparator circuits

References

[1]"Understanding Card Data Formats", Hidglobal.com, 2006. [Online]. Available: https://www.hidglobal.com/sites/default/files/hid-understanding_card_data_formats-wp-en.pdf.
[2]"ID-2LA, ID-12LA, ID-20LA Low Voltage Series Reader Modules", Sparkfun, 2013. [Online]. Available: https://cdn.sparkfun.com/datasheets/Sensors/ID/ID-2LA,%20ID-12LA,%20ID-20LA2013-4-10.pdf.

Attachments:

Flow Chart.png (image/png)
Data Validation Design.pdf (application/pdf)
Smart Mirror.url (application/octet-stream)

Comments:

We've been chatting in lab, so I know you are off to a good start. At the top of your page, please include your netID and course (110 or 120)

Posted by chorn4 at Oct 03, 2019 12:30