Versuch6 Flashcards
RFID Grundwissen
kabellose Datenübertragung
übertragenden Daten auf Tags gespeichert -> Lesegerät übertragen
Tag: keine eigene Spannungsversorgung benötigt
- Energie -> Induktion aus elektromag. Feld aus Leser
- elmag. Feld oszilliert in bestimmten Frequenz (125 kHz)
- 1 Bit pro 64 Oszillationen des Feldes
- Datenrate = 2kBit/s
Nutzdaten Übertragung
Versand:
zwei Schichten (Sicherungsschicht & Physikalische Schicht)
- Sicherungsschicht: Hinzufügen von Paritätsbits
- Paritätsinformation: Fehler in Übertragung zu erkennen
- Physikalischeschicht: Daten in Signalverläufe umgesetzt in Manchester Code. Signalverläufe vom Tag zum Leser.
Empfang:
Manchester Decodierung
Paritätbit Analyse, Extraktion der Nutzdaten
Leser Grundwissen
Schaltkreis (Controllerchip = erzeugt Feld und misst Belastung), Antenne (Aufbau des elmag. Feld)
Manchester Code
Daten in Signalverlauf abbilden
Tag sendet Manchester Code => !(Datenbit XOR Clock)
- steigend = 0
- fallend = 1
- kommt zu Füllflanken = Flanken die keinem Bit entsprechen
Datencodierung in Sicherungsschicht
Header 9 bit = 1
Nutzdaten 40 bit, nibbleweise übertragen + Zeilenparitätsbit
Spaltenparität 4 bit
Stopbit 1 bit
Decode des Manchester Code
Analysiert: steigend, fallend, Füllflanke, Bitflanke
Bitflanke (1 u. 0) erkennen -> Zeitabstand zwischen zwei Folgenden Flanken
- ganze Clock-Periode
- halbe
Bestandteile des Treibers
Erste Schritt des ID Empfangs = Empfang des Signals am Leser
Analysiert jede Flanke -> Wert und Abstand von der vorigen Flanke. Zu kurz und lange Abstände wird aussortiert
ISR speichert die Werte und Abstände der empfangenen Signalflanken
rfid receive
Analysiert empfangenen Flanken und gibt die decodierte ID zurück
Unterprogram (decode Manchester u. getData)
- bei jede Flanke, decode Manchester aufgerufen
greift lesend ringpuffer signalTimes, rfid signalStartEdge
Lesen bei tail
rfid decode Manchester
Untersucht Flanke ob es um Datenbit oder Füllflanke handelt.
- lastManchesterSkipped
Unterscheidung Abstand der Flanken: kurz, lang, zu lang, Rauschen
- Tickratio (lange Flanke dauer)
- Noise threshold = 3 konstanten
rfid getData
Überprüft alle Parität bits u. Stopbit
Nutzdaten aus Tag extrahieren und zurückgeben
Benutzeridentifikationssystem
Aktionen in Taskmanager Angemeldete Zugriffsrechte - kein Benutzer - Gast (keine Änderung) - Benutzer (Ändern, ausnahme Benutzeridentifikaiton u. Zugriffssteuerung relevanten Prozessen - Admin
Defines der RFID
frequenz der tag = 125000 1 bit pro 64 Oszillation timer scaler (1 sec) = 256 ticksratio = 1 sec/Datenrate (Long edge)
RFID struct
tagBuffer head tail lastReceivedTag edge signalTimes signalStartEdge lastManchesterSkipped
ISR
zum Speichern der Flankenabstände -> als Ringpuffer implementierten privaten Speicherbereich mit Adresse rfid.signalTimes
Richtung der ersten Flanke gespeichert -> rfid.signalStartEdge
rfid.head -> nächsten Index