(Nachtrag zu Versuch 3 und 4)
(Versuch 3: Typo: Die Chips kacken nicht, sondern knacken nur :-))
 
(23 dazwischenliegende Versionen von 5 Benutzern werden nicht angezeigt)
Zeile 22: Zeile 22:
 
* Scanner [http://www.aoruk.com/ar8600.htm AOR AR8600 MK2]
 
* Scanner [http://www.aoruk.com/ar8600.htm AOR AR8600 MK2]
 
* RFID-Lesegeaete:
 
* RFID-Lesegeaete:
** [http://www.omnikey.com/fileadmin/documents/CardMan_5121_Datasheet_D.pdf Cardman 5121 Datasheet] -- ISO 14443 A und B, ISO 15693  
+
** <s>[http://www.omnikey.com/fileadmin/documents/CardMan_5121_Datasheet_D.pdf Cardman 5121 Datasheet]</s> -- ISO 14443 A und B, ISO 15693  
 
** [http://www.megaset.com/html/rfid_starter_kits.html Megaset RFID-Kit] -- ISO 15693
 
** [http://www.megaset.com/html/rfid_starter_kits.html Megaset RFID-Kit] -- ISO 15693
 
* Antennen:
 
* Antennen:
Zeile 81: Zeile 81:
 
Ziel der ersten Experimente ist, den Hilfstraeger zu erkennen. Laut Finke und Kelter sollte fuer ISO 14443 der Hilfstraeger bei +- 847 kHz um den Haupttraeger herum zu finden sein, also bei 14.407 bzw. 12.713 MHz. Folgendes Bild aus dem Paper der beiden illustriert das.
 
Ziel der ersten Experimente ist, den Hilfstraeger zu erkennen. Laut Finke und Kelter sollte fuer ISO 14443 der Hilfstraeger bei +- 847 kHz um den Haupttraeger herum zu finden sein, also bei 14.407 bzw. 12.713 MHz. Folgendes Bild aus dem Paper der beiden illustriert das.
  
[[Bild:Rfid spektrum aus finke und kelter.png|thumb|none|700px|F1 = 14.54 MHz = 13.56 + 980 kHz (die Frequenz auf die der Empfaenger gestellt wird)<br/>F2 = 14.407 MHz (Hilfstraeger)]]
+
[[Bild:Rfid spektrum aus finke und kelter.png|thumb|none|400px|F1 = 14.54 MHz = 13.56 + 980 kHz (die Frequenz auf die der Empfaenger gestellt wird)<br/>F2 = 14.407 MHz (Hilfstraeger)]]
  
  
Zeile 95: Zeile 95:
 
Dafuer sind bei ca. +- 1.1 Mhz irgendwelche Peaks.
 
Dafuer sind bei ca. +- 1.1 Mhz irgendwelche Peaks.
  
[[Bild:Screenshot rfid 01.png|thumb|none|700px|Lesegeraet an, dann aus, zum Schluss kurz an; Antenne 1]]
+
[[Bild:Screenshot rfid 01.png|thumb|none|400px|Lesegeraet an, dann aus, zum Schluss kurz an; Antenne 1]]
[[Bild:Screenshot rfid 02.png|thumb|none|700px|Lesegeraet mehrfach an/aus; Antenne 1]]
+
[[Bild:Screenshot rfid 02.png|thumb|none|400px|Lesegeraet mehrfach an/aus; Antenne 1]]
  
 
=== Versuch 2 ===
 
=== Versuch 2 ===
Zeile 116: Zeile 116:
 
* Display-Frequenz 13.5660 MHz -- schwaches Datenknattern und ein noch wahrnehmbares Pfeifen (des Haupttragers) bei etwa 5820 Hz. Entfernt man den Transponder, dann ist etwa alle halbe Sekunde ein Kack zu hoeren. Ist der Transponder in Naehe des Lesers, sind geschaetzte 10 Knackse pro Sekunde hoerbar.
 
* Display-Frequenz 13.5660 MHz -- schwaches Datenknattern und ein noch wahrnehmbares Pfeifen (des Haupttragers) bei etwa 5820 Hz. Entfernt man den Transponder, dann ist etwa alle halbe Sekunde ein Kack zu hoeren. Ist der Transponder in Naehe des Lesers, sind geschaetzte 10 Knackse pro Sekunde hoerbar.
  
* Display-Frequenz 13.5670 MHz -- deutlich wahrnehmbares Kacken. Bis zu einem Abstand von 10 cm zwischen Transponder und Lesegeraet ist dieses schnelle Knattern hoerbar. Dabei sind Transponder- und Lesegeraet-Antenne parallel. Als Transponer wird eine Karte mit der Aufschrift "www.megaset.com Tag-it HF-I" verwendet. Ein anderer Transponder mit der Aufschrift "www.megaset.com I-Code SLI" im Feld des Lesers fuehrt nicht zu einem schnellen Knattern, sondern klingt so als waere kein Transponder im Feld. Die Software kann den Transponder nicht auslesen. Verschiedene mifare-Transponder bewirken ebenfalls kein schnelleres Knattern. Leider habe ich zum Megaset nur einen auslesbaren Transponder. Wuerde gerne testen wie mehrere Tansponder im Feld klingen.
+
* Display-Frequenz 13.5670 MHz -- deutlich wahrnehmbares Knacken. Bis zu einem Abstand von 10 cm zwischen Transponder und Lesegeraet ist dieses schnelle Knattern hoerbar. Dabei sind Transponder- und Lesegeraet-Antenne parallel. Als Transponer wird eine Karte mit der Aufschrift "www.megaset.com Tag-it HF-I" verwendet. Ein anderer Transponder mit der Aufschrift "www.megaset.com I-Code SLI" im Feld des Lesers fuehrt nicht zu einem schnellen Knattern, sondern klingt so als waere kein Transponder im Feld. Die Software kann den Transponder nicht auslesen. Verschiedene mifare-Transponder bewirken ebenfalls kein schnelleres Knattern. Leider habe ich zum Megaset nur einen auslesbaren Transponder. Wuerde gerne testen wie mehrere Tansponder im Feld klingen.
  
 
* Bei 13.580 MHz ist irgendwelcher Schmutz im Hintergrund zu hoeren. Das Knattern ist sehr intensiv. Bei 13.601 MHz irgend ein Traeger, der sich nach deaktivieren des RFID-Lesers als Pfeifen bemerkbar macht.
 
* Bei 13.580 MHz ist irgendwelcher Schmutz im Hintergrund zu hoeren. Das Knattern ist sehr intensiv. Bei 13.601 MHz irgend ein Traeger, der sich nach deaktivieren des RFID-Lesers als Pfeifen bemerkbar macht.
Zeile 152: Zeile 152:
 
* Scanner an [[GNU Radio]] angeschlossen, Display-Frequenz: 13.56 MHz (auf der Frequenzskala entspricht das 0)
 
* Scanner an [[GNU Radio]] angeschlossen, Display-Frequenz: 13.56 MHz (auf der Frequenzskala entspricht das 0)
  
[[Bild:Screenshot gnuradio versuch 4 ant1 13560 ohne megaset.png|thumb|none|700px|Das Lesegeraet ist nicht angeschlossen. Man sieht ein paar schwache Peaks.]]
+
[[Bild:Screenshot gnuradio versuch 4 ant1 13560 ohne megaset.png|thumb|none|400px|Das Lesegeraet ist nicht angeschlossen. Man sieht ein paar schwache Peaks.]]
  
[[Bild:Screenshot gnuradio versuch4 ant 1 megaset-reader an ohne karte.png|thumb|none|700px|Das Lesegeraet wird aktiviert und faengt an Datenbloecke abzufragen. Man sieht den Traeger auf 13.56 MHz. Es ist aber noch kein Transponder im Feld.]]
+
[[Bild:Screenshot gnuradio versuch4 ant 1 megaset-reader an ohne karte.png|thumb|none|400px|Das Lesegeraet wird aktiviert und faengt an Datenbloecke abzufragen. Man sieht den Traeger auf 13.56 MHz. Es ist aber noch kein Transponder im Feld.]]
  
[[Bild:Screenshot gnuradio versuch 4 ant 1 megaset pollt karte wird ins feld gelegt zoom.png|thumb|none|700px|Hier im 1x-Zoom: das Lesegeraet fragt nach Datenbloecken. Zur Halbzeit wird ein Transponder ins Feld gelegt. Beim Hinlegen des Transponders erscheint der horizontale Balken in Form eines helleren Schleiers. Der Transponder bleibt auf dem Lesegeraet liegen. Das kleine graue Dreieck in der Frequenzskala zeigt auf ca. -847 kHz. (kleinere Grafik-Fehler im unteren Spektrum)]]
+
[[Bild:Screenshot gnuradio versuch 4 ant 1 megaset pollt karte wird ins feld gelegt zoom.png|thumb|none|400px|Hier im 1x-Zoom: das Lesegeraet fragt nach Datenbloecken. Zur Halbzeit wird ein Transponder ins Feld gelegt. Beim Hinlegen des Transponders erscheint der horizontale Balken in Form eines helleren Schleiers. Der Transponder bleibt auf dem Lesegeraet liegen. Das kleine graue Dreieck in der Frequenzskala zeigt auf ca. -847 kHz. (kleinere Grafik-Fehler im unteren Spektrum)]]
  
[[Bild:Screenshot gnuradio versuch 4 13560 leser an karte im feld zoom punkte.png|thumb|none|700px|Hier im 1x-Zoom mit leicht anderer Farbdarstellung: das Lesegeraet fragt nach Datenbloecken. Der Transponder befindet sich die ganze Zeit im Feld und wird relativ dicht vor die Antenne gehalten. Das kleine graue Dreieck in der Frequenzskala zeigt auf ca. -847 kHz. Auf der gedachten Linie unter dem Pfeil reihen sich kleine Punkte. (kleinere Grafik-Fehler im unteren Spektrum)]]
+
[[Bild:Screenshot gnuradio versuch 4 13560 leser an karte im feld zoom punkte.png|thumb|none|400px|Hier im 1x-Zoom mit leicht anderer Farbdarstellung: das Lesegeraet fragt nach Datenbloecken. Der Transponder befindet sich die ganze Zeit im Feld und wird relativ dicht vor die Antenne gehalten. Das kleine graue Dreieck in der Frequenzskala zeigt auf ca. -847 kHz. Auf der gedachten Linie unter dem Pfeil reihen sich kleine Punkte. (kleinere Grafik-Fehler im unteren Spektrum)]]
  
[[Bild:Screenshot gnuradio versuch 4 bild 23.png|thumb|none|700px|Hier sollte man den Hilfstraeger auf der anderen Seite sehen koennen (bei +847 kHz). Dafuer sieht man so Striche-Muster. Der Transponder liegt im Feld.]]
+
[[Bild:Screenshot gnuradio versuch 4 bild 23.png|thumb|none|400px|Hier sollte man den Hilfstraeger auf der anderen Seite sehen koennen (bei +847 kHz). Dafuer sieht man so Striche-Muster. Der Transponder liegt im Feld.]]
  
[[Bild:Screenshot versuch 4 bild 24.png|thumb|none|700px|Hier korreliert das Striche-Muster mit der Aktivierung des Lesers. Erst ist es nicht da. Nach Aktivierung des Lesers ist es zu sehen. Beim Versuch das zu reproduzieren, trat das Strichmuster nicht mehr auf !?]]
+
[[Bild:Screenshot versuch 4 bild 24.png|thumb|none|400px|Hier korreliert das Striche-Muster mit der Aktivierung des Lesers. Erst ist es nicht da. Nach Aktivierung des Lesers ist es zu sehen. Beim Versuch das zu reproduzieren, trat das Strichmuster nicht mehr auf !?]]
  
[[Bild:Screenshot gnuradio versuch 4 linien bei ca 400 khz.png|thumb|none|700px|Aehh ... ???]]
+
[[Bild:Screenshot gnuradio versuch 4 linien bei ca 400 khz.png|thumb|none|400px|Aehh ... ???]]
  
[[Bild:Screenshot gnuradio versuch 4 linien bei ca 400 khz bild 2.png|thumb|none|700px|Transponder ins Feld, wieder herausnehmen, Transponder ins Feld, wieder herausnehmen.]]
+
[[Bild:Screenshot gnuradio versuch 4 linien bei ca 400 khz bild 2.png|thumb|none|400px|Transponder ins Feld, wieder herausnehmen, Transponder ins Feld, wieder herausnehmen.]]
  
 
=== Nachtrag zu Versuch 3 und 4 ===
 
=== Nachtrag zu Versuch 3 und 4 ===
Zeile 180: Zeile 180:
 
* RFID-Reader von Megaset
 
* RFID-Reader von Megaset
 
* Antenne 5
 
* Antenne 5
 +
* Display-Frequenz: 13.56 MHz
  
 
Mit den im Nachtrag zu Versuch 3 und 4 beschriebenen Hinweisen wird der Versuch wiederholt.
 
Mit den im Nachtrag zu Versuch 3 und 4 beschriebenen Hinweisen wird der Versuch wiederholt.
  
[[Bild:Screenshot gnuradio versuch5 transponder auslesen ant5.png|thumb|none|700px|Bloecke von einem ISO 15693-Transponder lesen.]]
+
[[Bild:Screenshot gnuradio versuch5 transponder auslesen ant5.png|thumb|none|400px|Bloecke von einem ISO 15693-Transponder lesen. Man sieht laengere horizontale Striche um den Haupttraeger. Dabei handelt es sich um die Anfragen des Lesegeraetes. Ein modulierter Traeger braucht mehr spektrale Bandbreite als ein nicht modulierter Traeger. Deshalb die horizontalen Striche. Desweiteren sieht man drei Antwort-Telegramme des Transponders. Die sind bei ca. +- 423 und +- 484 kHz zu sehen.]]
  
 +
[[Bild:Screenshot gnuradio versuch5 ant5 4byte lesen.png|thumb|none|400px|Oben ist noch ein Teil der Leserdaten zu sehen. Der Rest stellt ein Datentelegramm des Transponders dar. Der Transponder sendet 10 ms. Dieses Datentelegramm muesste die Bytefolge 0xCC, 0xCC, 0xCC, 0xCC beinhalten. Die Zeitangaben auf der y-Achse sind in Millisekunden.]]
 +
 +
[[Bild:Screenshot gnuradio versuch5 ant5 gaussian9.2 fft1024 mehr zoom.png|thumb|none|400px|Anfang des selben Datentelegramms. Zeitangabe auf y-Achse in ms. Diesmal mit mehr Zoom, anderem FFT-Fenster und anderen Farbeinstellungen.]]
 +
 +
 +
Auswertung:
 +
 +
An dieser Stelle muesste man mal in den Standard schauen und kucken, ob man die Frame-Struktur wiederfindet.
 +
 +
* [http://www.jayacard.org/14443/wg8n433.zip ISO/IEC 15693-2 - Air interface and Initialisation - FCD Version] (Das PDF-Dokument im Zip, ab Sektion ''8.5 VICC to VCD frames'')
 +
 +
==== Start of Frame ====
 +
 +
8.5.2 SOF when using two subcarriers
 +
SOF comprises 3 parts:
 +
• 27 pulses of 484,28 kHz (fc/28),
 +
• 24 pulses of 423,75 kHz (fc/32),
 +
• a logic 1 which starts with 9 pulses of 484,28 kHz (fc/28) followed by 8 pulses of
 +
    423,75 kHz (fc/32).
 +
 +
passt
 +
 +
==== End of Frame ====
 +
 +
8.5.4 EOF when using two subcarriers
 +
EOF comprises 3 parts:
 +
• a logic 0 which starts with 8 pulses of 423,75 kHz (fc/32) followed by 9 pulses of
 +
    484,28 kHz (fc/28),
 +
• 24 pulses of 423,75 kHz (fc/32),
 +
• 27 pulses of 484,28 kHz (fc/28).
 +
 +
noch nicht geprueft ... (wenn man aber das bild oben anschaut, ist es genau spiegelverkert, würde also stimmen)
 +
 +
==== Transponderinhalt ====
 +
 +
noch nicht geprueft ...
 +
 +
=== USRP Dumps ===
 +
 +
* file: [http://berlin.ccc.de/~avgenz/rfid-usrp-dumps/megaset_sli_0xcc_mehrere_bloecke_mit_500ksamples_reell.dat.bz2], enthält 63 VICC-zu-VCD-Frames
 +
* displayfreq: 13.9000 MHz
 +
* samplerate: 1.000.000 samples/sec
 +
* format: (baudline: le16d linear, gnu radio: short), reell
 +
* reader: megaset
 +
* antenna: #5
 +
* transponder: ISO 15693, megaset.com, i-code, sli
 +
* descr: Transponder data with content 0xcc
 +
 +
 +
* file: [http://berlin.ccc.de/~avgenz/rfid-usrp-dumps/megaset_hf1_services_mehrere_bloecke_mit_500ksamples_reell.dat.bz2], enthält 17 VICC-zu-VCD-Frames
 +
* displayfreq: 13.9000 MHz
 +
* samplerate: 1.000.000 samples/sec
 +
* format: (baudline: le16d linear, gnu radio: short), reell
 +
* reader: megaset
 +
* antenna: #5
 +
* transponder: ISO 15693, megaset.com, tag-it, hf1
 +
* descr: Transponder data with content of /etc/services
 +
* Solldaten:
 +
 +
  0000  23 0A 23 20    #.#    |  0004  4E 45 54 57    NETW  |
 +
  0008  4F 52 4B 20    ORK    |  000C  53 45 52 56    SERV  |
 +
  0010  49 43 45 53    ICES  |  0014  2C 20 49 4E    , IN  |
 +
  0018  54 45 52 4E    TERN  |  001C  45 54 20 53    ET S  |
 +
  0020  54 59 4C 45    TYLE  |  0024  0A 23 0A 23    .#.#  |
 +
  0028  20 4E 4F 54    NOT  |  002C  45 20 54 48    E TH  |
 +
  0030  41 54 20 49    AT I  |  0034  54 20 49 53    T IS  |
 +
  0038  20 50 52 45    PRE  |  003C  53 45 4E 54    SENT  |
 +
  0040  4C 59 20 54    LY T  |  0044  48 45 20 50    HE P  |
 +
  0048  4F 4C 49 43    OLIC  |  004C  59 20 4F 46    Y OF  |
 +
  0050  20 49 41 4E    IAN  |  0054  41 20 54 4F    A TO  |
 +
  0058  20 41 53 53    ASS  |  005C  49 47 4E 20    IGN    |
 +
  0060  41 20 53 49    A SI  |  0064  4E 47 4C 45    NGLE  |
 +
  0068  20 57 45 4C    WEL  |  006C  4C 2D 4B 4E    L-KN  |
 +
 +
 +
* file: [http://berlin.ccc.de/~avgenz/rfid-usrp-dumps/megaset_sli_0xcc_mehrere_bloecke_mit_1msamples.dat.bz2], enthält 37 VICC-zu-VCD-Frames und 37 VCD-zu-VICC-Frames
 +
* displayfreq: 14.0140 MHz
 +
* samplerate: 1.000.000 samples/sec
 +
* baudline-format: le32, complex
 +
* reader: megaset
 +
* antenna: #5
 +
* transponder: ISO 15693, megaset.com, i-code, sli
 +
* descr: Transponder data with content 0xcc
 +
 +
== Ueberlegungen ==
 +
 +
[[Bild:Ct rfid detector messung an pin4.jpg|thumb|200px|Aufnahme der ZF mittels c't-RFID-Detektor]]
 +
[[Bild:Ct rfid detector ungefilterte zf.jpg|thumb|200px|Darstellung der ungefilterten ZF (x: 1 EH = 0.1 usec, y: 1 EH = 20 mV]]
 +
 +
Die letzten Experimente funktionierten im wesentlichen nach diesem Schema: Der Scanner nimmt die Antennenspannung auf, verarbeitet sie und gibt das ZF-Signal heraus. Das usrp-Board digitalisiert die ZF weg. Mit Baudline visualisiert man die Signale in einem Wasserfalldiagramm. Geeignete Sampleraten liegen so bei 1 bis 4 MSamples/Sekunde. Brauchbare Einstellungen fuer die FFT sind N=1024 und die Gaussche Fensterfunktion (Wert ca. 10).
 +
 +
''' Was kann man sehen? '''
 +
 +
Deutlich fruehere Versuche die Seitentraeger abzugreifen wurden mit einer einfachen live-FFT Darstellung durchgefuehrt. Damit konnte man aber keine Seitentraeger erkennen, denn deren Signal ist so kurz, dass man sie nicht mit einer live-FFT wahrnehmen kann. Insofern bietet das Wasserfalldiagramm deutliche Vorteile, denn es stellt auch zeitliche Informationen dar. Im letzten Bild von Versuch 5 kann man dann schon ganz ordentlich die Daten des ISO 15693-Transponders sehen. Die vergroesserte Darstellung zeigt ferner ganz kleine horizontale Striche an den Seitentraegern. Z.B. im Fall logische 0 bei zwei Seitentraegern werden zuerst acht Pulse auf 423 kHz und dann 9 Pulse auf 848 kHz gesendet. Moeglicherweise hinterlassen diese Pulse Zacken im Wasserfalldiagramm. Man kann aber nur einige Pulse erkennen.
 +
 +
Bisher hat das Darstellen von ISO 14443-Transponderdaten noch nicht funktioniert. Man sieht zwar die Seitentraeger, aber die zeitliche Aufloesung reicht nicht aus, um Bits zu sehen.
 +
 +
''' Zeitliche Aufloesung und FFT-Parameter '''
 +
 +
Mit dem usrp kann man zwar bis zu 16 komplexwertige Megasamples pro Sekunde aufnehmen, nur man bekommt das nicht mehr richtig visualisiert. Man kann nun mit den verschiedenen Einstellungen herumspielen, aber entweder sind die Haupttraeger-Bins zu dicht neben den Seitentraeger-Bins und vermischen sich in der Darstellung oder die Seitentraegersignale sind zu verwischt, um da noch irgendwas zu erkennen.
 +
 +
Mehr Samplerate bringt nicht zwangslaeufig bessere Ergebnisse. Zumindest wenn man sich das Spektrum mit baudline ansieht!
 +
 +
''' Filtern '''
 +
 +
Idee: Wenn man genau einen Seitentraeger herausfiltert, dann kann man die FFT herausoptimieren. Baudline muss das Signal nicht spektral auseinanderbasteln. Die Waveform-Ansicht des Signals sollte die Amplitude des Seitentraegers in hoher Aufloesung wiedergeben.
 +
 +
Da gibt es nun mehrere Wege der Umsetzung. Zum einen kann man die ZF analog filtern. Fuer entsprechende Versuche muessten die ct' bzw. Elektor-RFID-Detektoren ausreichen. Zum anderen kann man die ZF mit Gnuradio-Modulen digital filtern.
 +
 +
''' Detektor-Bausaetze benutzen '''
 +
 +
Die beiden Bausaetze sollen das Feld des Lesegeraetes detektieren. Auf der HF-Seite sind beide Schaltungen etwas anders aufgebaut, aber beide verwenden das selbe Empfaengerkonzept. Die Antennenspannung wird mit einem 8 MHz Oszillatorsignal gemischt. Wenn bei 13.56 MHz ein Traeger ist, dann gibt es in der ZF ein messbares Mischprodukt bei 5.56 MHz. Das wird durch ein Bandpassfilter (Breite: paar hundert Kiloherz) gefiltert. Was vom Filtern uebrig bleibt, wird dann weiterverarbeitet.
 +
 +
Das Oszillatorsignal kann man nun so tunen, dass der Seitentraeger durch das Filter passt. Zum Beispiel: Seitentraeger bei ISO 14443 bei 13.56 + 0.847 MHz = 14.407 MHz. Gesucht ist dann eine Oszillatorfrequenz ''f'', so dass 14.407 MHz - ''f'' = 5.5 MHz. Alternativ laesst sich natuerlich ein anderes Filter einbauen. Es scheint aber zweckmaessiger zu sein, den Quarz zu tauschen oder eine PLL aufzubauen, deren Frequenz eingestellt werden kann. (Vielleicht sollte man Sockel fuer Quarz/Filter aufloeten, dann man nach Bedarf Bauteile wechseln.)
 +
 +
Bisher wurde lediglich die 5.5 MHz-ZF vom ct'-Detektor via usrp und baudline verarbeitet (an Pin 4 vom Mischer, also vor der Filterung). Das funktioniert soweit, nur ist die Signalstaerke etwas schwach. Die Antenne ist sehr klein.
 +
 +
* [[Media:Elector rfid schaltung.png|Schaltung des RFID-Detektors aus der Elektor]]
 +
* [http://www.heise.de/ct/04/09/132/bild2.jpg Schaltung des c't-Detektors]
 +
 +
''' Mit GNU Radio filtern '''
 +
 +
So sollte das funktionieren:
 +
 +
    sampling_rate = 1e6
 +
 +
    fg = gr.flow_graph ()
 +
 +
    u = usrp.source_c (0, options.decim, 1, options.mux, 0)
 +
    u.set_rx_freq (0, options.ddc_freq)
 +
    u.set_pga (0, options.gain)
 +
    u.set_pga (1, options.gain)
 +
 +
    bpf = gr.firdes.band_pass(1.0, sampling_rate,
 +
                1000,
 +
                100000,
 +
                80000,
 +
                gr.firdes.WIN_HAMMING)
 +
 +
    filter = gr.fir_filter_ccf( 1, bpf)
 +
 +
    fg.connect (u, filter)
 +
 +
    c2f = gr.complex_to_float()
 +
    f2s = gr.float_to_short()
 +
    fg.connect(filter, c2f)
 +
    fg.connect(c2f, f2s)
 +
 +
    dst_s = gr.file_sink (gr.sizeof_short, options.output_file)
 +
 +
    fg.connect (f2s, dst_s)
  
 
[[Kategorie:RFID]]
 
[[Kategorie:RFID]]
 
[[Kategorie:Funk]]
 
[[Kategorie:Funk]]

Aktuelle Version vom 16. Januar 2007, 12:25 Uhr

Diese Seite soll die Experimente rund um das Thema Abhoeren von RFID-Kommunikation dokumentieren. Deine Mitarbeit ist ausdruecklich erwuenscht.

Literatur

Papers

Es gibt mittlerweile ohne Ende Papers, die sich mit Protokollen und Crypto-Foo im Kontext RFID beschaeftigen. Relativ wenige Papers behandeln das Gebiet passives Abhoeren bzw. gehen darauf ein. Vielleicht kann ich auch nur nicht recherchieren. Bitte pflege hier entsprechendes Material ein.

Artikel

Geraete

Fuer die hier beschriebenen Experimente steht folgende Hardware zur Verfuegung.

  • GNU Radio
  • Scanner AOR AR8600 MK2
  • RFID-Lesegeaete:
  • Antennen:
    • Antenne 1: Breitband-Antenne 25 - 1xxx MHz (Herstellerangaben)
    • Antenne 2: Teleskopantenne (zum Scanner mitgeliefert)
    • Antenne 3: Selbstbau-Omni
    • Antenne 4: Selbstbau-Koaxloop
    • Antenne 5: Selbstbau-Loop

Zum Ansteuern des Megaset-Readers gibt es hier Perl-Code. Das darin enthaltene Perl-Modul benutzt das im CPAN erhaeltliche Modul Device::SerialPort. Mit einigen seriellen Schnittstellen kommt das nicht so ganz zurecht. Oft hilft dann rausziehen und wieder reinstecken, sofern es sich um ein USB-Dongel handelt.

Allgemeiner Versuchsaufbau

Um die Signale in den Rechner zu bekommen, werden hier zwei verschiedenen Moeglichkeiten benutzt:

Datenakquise mittels GNU Radio

Bild 1: Antenne 1, Scanner auf 13.56 MHz, WFM, kein RFID-Geraet an
Bild 2: Antenne 1, Scanner auf 13.56 MHz, WFM, RFID-Geraet von Megaset liesst den Transponder aus

Der ZF-Ausgang des Scanners wird mit einem GNU Radio-Rx-Board verbunden, das GNU Radio mit dem "PC" via USB2.

Der Scanner verfuegt ueber eine ZF-Bandbreite von +- 2 MHz, also einer Spanne von insgesammt 4 MHz. Eine Besonderheit des AR8600 MK2 ist, dass die ZF nur auf den Ausgang geschalten wird, wenn der Scanner im Modus WFM betrieben wird. Nach Angaben des Hersteller kann man den Scanner derart modifizieren dass die ZF in allen Modi rausgeht, allerdings soll es dann qualitative Abstriche geben. Das soll dann mehr "interne Scheinsignale" erzeugen. Soweit ist das aber kein Problem. Man kann dann nicht gleichzeitig das Signal ueber den internen Lautsprecher oder ueber den Kopfhoerer hoeren. Um genau zu sein hoert man nur Rauschen, wenn um die eingestellte Frequenz herum kein richtiges WFM gesendet wird.

Wenn man sich die 4 MHz ZF-Signal (also von 8.7 MHz bis 12.7 MHz) in ganzer Breite ansieht, sieht man, dass die Signalstaerke zu den Raendern hin um diverse dB schwaecher ist als in der Mitte. Bei +-1 MHz Bandbreite bekommmt man dennoch ganz gute Ergebnisse, denn da ist die Abflachung zu den Raendern nicht so gross. Bild 1 soll das illustrieren. Wenn man genau hinsieht, erkennt man die Zerstueckelung des Spektrums rechts. Das ist ein Screenshot-Problem. Zum anderen sieht man einen Peak bei ca. 0.6 MHz. Das ist Muell im Spektrum. Ich wuesse auch gerne welches meiner Geraete diesen Muell verursacht.

Datenakquise mit Soundkarte

Der Audio-Ausgang des Scanners wird mit der Soundkarte des "PCs" verbunden.

Laut Finke und Kelter soll die Signalstaerke der Hilfstraegers 60-80 dB (!) unter dem des Hauptraegers liegen. Das ist sehr wenig. Und zwar so wenig, dass das Signal der Hilfstraeger rein rechnerisch im Rauschen untergehen muss. Wenn man die Versuchsergebnisse weiter unten betrachtet, dann findet man den Traeger auch nicht.

Man kann den Hilfstraeger aber hoerbar machen. Stellt man den Scanner auf einen schmalbandigen Modus (z.B. USB oder CW), kann man Signale empfangen, die nach Datenaustausch klingen. Finke und Kelter haben ihren Empfaenger grob auf den Hilfstraeger getuned und eine Bandbreite von 300 kHz eingestellt.

Wahl der Antenne

Die Antenne ist natuerlich ein entscheidender Faktor. Bei den mir zu Verfuegung stehenden Antennen handelt es sich um Omni-Antennen, also weitgehend stabaehnliche Antennen, die aus fast allen Richtungen empfangen. Im Idealfall verwendet man mehr oder weniger gerichtete Antennen.

Theorie: Allgemein setzt sich die Energie des elektromagnetischen Feldes aus der Energie des elektrischen Feldes und der Energie des magnetischen Feldes zusammen. Physiker benutzen den Begriff Poynting-Vektor (S = E x H), wenn sie den Vektor der elektromagnetischen Leistungsdichte meinen. H und E sind phasengleich. Der Betrag des Poyntingvektors gibt die elektromagnetische Leistungsdichte an. Die Richtung des Vektors ist die Ausbreitungsrichtung der elektromagetischen Welle (zumindest im Fernfeld).

Transponder und Lesegeraet benutzen schleifenfoermige Antenne, also eigentlich Spulen. Ein Merkmal von Spulen ist, das von ihnen Magnetfelder ausgehen, wenn sie von einem sich aendernden Strom durchflossen werden bzw. umgekehrt, dass sich aendernde Magnetfelder Spannungen in Spulen induzieren. Die Magnetfeldkomponente ist also wichtiger als das elektrische Feld.

Fuer den Versuchsaufbau heisst das, dass eine spulenartige Antenne besser geeignet ist, als eine Stabantenne. Fuer einen ordentlichen Empfang muesste also eine "Magnetic Loop" gute Dienste leisten. Magnetische Antennen

  • reagieren besser auf die Magnetfeldkomponente,
  • sind selektiver, d.h. sie blenden den Muell links und rechts im Spektrum besser aus,
  • haben konstruktionsbedingt eine Richtwirkung.

Positionierung der Magnetischen Antennen: Transponder und Lesegeraet werden in die Schleifenmitte gelegt. Erwartungsgemaess liefern die Loops deutlich bessere Empfangsergebnisse.

Positionierung der Omniantennen: Im Normalfall kann man den Haupttraeger gut empfangen, selbst wenn die Antenne weiter vom RFID-Lesegeraet entfernt ist. Bei einem einfachen nicht wirklich fuer Kurzwelle geeigneten Handscanner in drei Metern Entfernung verschwindet das Rauschen, wenn man der RFID-Leser Daten vom Transponder liesst und auf 13.56 MHz den Haupttraeger ausstrahlt.

Da die Seitentraeger aber sehr schwach sind, wird das Lesegeraet fuer die Versuche nur wenige Zentimeter (< 10cm) von der Antenne entfernt aufgestellt.

Erste Experimente

Ziel der ersten Experimente ist, den Hilfstraeger zu erkennen. Laut Finke und Kelter sollte fuer ISO 14443 der Hilfstraeger bei +- 847 kHz um den Haupttraeger herum zu finden sein, also bei 14.407 bzw. 12.713 MHz. Folgendes Bild aus dem Paper der beiden illustriert das.

F1 = 14.54 MHz = 13.56 + 980 kHz (die Frequenz auf die der Empfaenger gestellt wird)
F2 = 14.407 MHz (Hilfstraeger)


Versuch 1

  • Antenne 1
  • Datenaufnahme mit GNU Radio
  • RFID-Lesegeraet: Omnicard
  • Display-Freq: 13.56 MHz

Der Haupttraeger ist soweit gut zu sehen, leider ist nirgends der Hilfstraeger. Es wird keine Software zum Ansteuern des RFID-Lesers benutzt. Das Lesegeraet wird lediglich ein- bzw. ausgeschalten. Werden die Hilfstraeger nur aktiviert, wenn Antworten vom Transponder erwartet werden? Oder sind die Hilfstraeger immer an? Oder sind die Antennen fuer so schwache Hilfstraeger nicht geeignet?

Dafuer sind bei ca. +- 1.1 Mhz irgendwelche Peaks.

Lesegeraet an, dann aus, zum Schluss kurz an; Antenne 1
Lesegeraet mehrfach an/aus; Antenne 1

Versuch 2

Wie Versuch 1, jedoch wird Antenne 2 verwendet. Keine signifikant anderen Ergebnisse.

Versuch 3

Antenne 1, Display-Freq: 14.407 MHz, CW
  • RFID-Lesegeraet von Megaset pollt die ganze Zeit Daten von einem Texas Instruments Transponder mit 64 Bloecken a 4 Byte (Inhalt: der Anfang von /etc/services).
  • Antenne 1 im Abstand von 10 cm ueber dem Lesegeraet
  • Scanner in einem schmalbanigen Modus (CW)

Der Scanner wird auf 13.556 MHz eingestellt und von dort aus wird durch das Spektrum gescrolled.

  • Ist der Scanner auf eine Display-Frequenz von 13.559 MHz gestellt, bekommt man einen NF-Peak von fast genau 1200 Hz. Der Haupttraeger ist als harmonischer kontinuierlicher Ton hoerbar.
  • Display-Frequenz 13.5660 MHz -- schwaches Datenknattern und ein noch wahrnehmbares Pfeifen (des Haupttragers) bei etwa 5820 Hz. Entfernt man den Transponder, dann ist etwa alle halbe Sekunde ein Kack zu hoeren. Ist der Transponder in Naehe des Lesers, sind geschaetzte 10 Knackse pro Sekunde hoerbar.
  • Display-Frequenz 13.5670 MHz -- deutlich wahrnehmbares Knacken. Bis zu einem Abstand von 10 cm zwischen Transponder und Lesegeraet ist dieses schnelle Knattern hoerbar. Dabei sind Transponder- und Lesegeraet-Antenne parallel. Als Transponer wird eine Karte mit der Aufschrift "www.megaset.com Tag-it HF-I" verwendet. Ein anderer Transponder mit der Aufschrift "www.megaset.com I-Code SLI" im Feld des Lesers fuehrt nicht zu einem schnellen Knattern, sondern klingt so als waere kein Transponder im Feld. Die Software kann den Transponder nicht auslesen. Verschiedene mifare-Transponder bewirken ebenfalls kein schnelleres Knattern. Leider habe ich zum Megaset nur einen auslesbaren Transponder. Wuerde gerne testen wie mehrere Tansponder im Feld klingen.
  • Bei 13.580 MHz ist irgendwelcher Schmutz im Hintergrund zu hoeren. Das Knattern ist sehr intensiv. Bei 13.601 MHz irgend ein Traeger, der sich nach deaktivieren des RFID-Lesers als Pfeifen bemerkbar macht.
  • Bei 13.640 MHz geht das Knattern langsam in Hintergrundgeraeuschen unter.
  • Bei 13.700 MHz ist kein Knattern mehr hoerbar.
  • Bei 14.407 ist ein anders klingendes Knattern hoerbar.


Antenne 1 im Abstand von etwa 10 cm ueber dem Megaset-Leser, Display-Freq: 14.407 MHz (oben), 13.580 (unten), CW, Transponder wird nach ein paar Sekunden auf den Leser gelegt, anschliessend nach oben bis zur Antenne bewegt.

Fazit:

Das Knattern stammt ganz offensichtlich vom Datenaustausch. Dabei gibt es zweimal das Knattern:

  • Fall 1: Bei 13.580 MHz ist das Knattern 1 am lautesten. Ist der Transponder nicht im Feld des Lesers, ist das Knatten nicht so haeufig. Es taucht aber auf, weil die Software in einer Schleife Datenbloecke abfragt.
  • Fall 2: Bei 14.407 MHz ist ein anderes Knattern hoerbar. Es verschwindet vollstaendig, wenn man den Transponder entfernt.

Die folgenden Aufnahme demonstriert das. Das Lesegeraet fragt kontinuierlich Datenblock ab. Am Anfang ist kein Transponder im Feld. Nach ein paar Sekunden wird der Transponder direkt auf das Lesegeraet gelegt. Danach wird der Transponder nach oben bewegt bis er die Antenne beruehrt!

Wenn der Transponder die Antenne im Fall 2 beruehrt, ist das Signal so stark, dass der Line-In der Soundkarte uebersteuert. Ist die Karte auf halber Hoehe, ist das Signal relativ schwach. Im Fall 1 macht es akkustisch keinen merkbaren Unterschied in welcher Hoehe sich der Transponder befindet.

Kann die Sounddaten nicht ins Wiki hochladen ... wird nachgereicht ...

Versuch 4

  • RFID-Lesegeraet von Megaset
  • Antenne 1 im Abstand von 10 cm ueber dem Lesegeraet
  • Scanner an GNU Radio angeschlossen, Display-Frequenz: 13.56 MHz (auf der Frequenzskala entspricht das 0)
Das Lesegeraet ist nicht angeschlossen. Man sieht ein paar schwache Peaks.
Das Lesegeraet wird aktiviert und faengt an Datenbloecke abzufragen. Man sieht den Traeger auf 13.56 MHz. Es ist aber noch kein Transponder im Feld.
Hier im 1x-Zoom: das Lesegeraet fragt nach Datenbloecken. Zur Halbzeit wird ein Transponder ins Feld gelegt. Beim Hinlegen des Transponders erscheint der horizontale Balken in Form eines helleren Schleiers. Der Transponder bleibt auf dem Lesegeraet liegen. Das kleine graue Dreieck in der Frequenzskala zeigt auf ca. -847 kHz. (kleinere Grafik-Fehler im unteren Spektrum)
Hier im 1x-Zoom mit leicht anderer Farbdarstellung: das Lesegeraet fragt nach Datenbloecken. Der Transponder befindet sich die ganze Zeit im Feld und wird relativ dicht vor die Antenne gehalten. Das kleine graue Dreieck in der Frequenzskala zeigt auf ca. -847 kHz. Auf der gedachten Linie unter dem Pfeil reihen sich kleine Punkte. (kleinere Grafik-Fehler im unteren Spektrum)
Hier sollte man den Hilfstraeger auf der anderen Seite sehen koennen (bei +847 kHz). Dafuer sieht man so Striche-Muster. Der Transponder liegt im Feld.
Hier korreliert das Striche-Muster mit der Aktivierung des Lesers. Erst ist es nicht da. Nach Aktivierung des Lesers ist es zu sehen. Beim Versuch das zu reproduzieren, trat das Strichmuster nicht mehr auf !?
Aehh ... ???
Transponder ins Feld, wieder herausnehmen, Transponder ins Feld, wieder herausnehmen.

Nachtrag zu Versuch 3 und 4

Versuch 3 und 4 wurden mit dem Megaset-Reader durchgefuehrt. Als RFID-Karten kamen ISO 15693-Transponder zum Einsatz.

Es gibt einen signifikaten Unterschied zwischen ISO 14443 und ISO 15693: bei ISO 15693 gibt es keinen Hilfstraeger bei +- 847 kHz! Der Hilfstraeger liegt bei +- 423.75 kHz. Das Lesegeraet kann einen weiteren Hilfstraeger vom Transponder erzeugen lassen. Der befindet sich dann bei +- 484.28 kHz. Insofern zeigen die beiden letzten Bilder von Versuch 4 bereits die beiden Hilfstraeger.

siehe RFID

Versuch 5

  • RFID-Reader von Megaset
  • Antenne 5
  • Display-Frequenz: 13.56 MHz

Mit den im Nachtrag zu Versuch 3 und 4 beschriebenen Hinweisen wird der Versuch wiederholt.

Bloecke von einem ISO 15693-Transponder lesen. Man sieht laengere horizontale Striche um den Haupttraeger. Dabei handelt es sich um die Anfragen des Lesegeraetes. Ein modulierter Traeger braucht mehr spektrale Bandbreite als ein nicht modulierter Traeger. Deshalb die horizontalen Striche. Desweiteren sieht man drei Antwort-Telegramme des Transponders. Die sind bei ca. +- 423 und +- 484 kHz zu sehen.
Oben ist noch ein Teil der Leserdaten zu sehen. Der Rest stellt ein Datentelegramm des Transponders dar. Der Transponder sendet 10 ms. Dieses Datentelegramm muesste die Bytefolge 0xCC, 0xCC, 0xCC, 0xCC beinhalten. Die Zeitangaben auf der y-Achse sind in Millisekunden.
Anfang des selben Datentelegramms. Zeitangabe auf y-Achse in ms. Diesmal mit mehr Zoom, anderem FFT-Fenster und anderen Farbeinstellungen.


Auswertung:

An dieser Stelle muesste man mal in den Standard schauen und kucken, ob man die Frame-Struktur wiederfindet.

Start of Frame

8.5.2 SOF when using two subcarriers
SOF comprises 3 parts:
• 27 pulses of 484,28 kHz (fc/28),
• 24 pulses of 423,75 kHz (fc/32),
• a logic 1 which starts with 9 pulses of 484,28 kHz (fc/28) followed by 8 pulses of
   423,75 kHz (fc/32).

passt

End of Frame

8.5.4 EOF when using two subcarriers
EOF comprises 3 parts:
• a logic 0 which starts with 8 pulses of 423,75 kHz (fc/32) followed by 9 pulses of
   484,28 kHz (fc/28),
• 24 pulses of 423,75 kHz (fc/32),
• 27 pulses of 484,28 kHz (fc/28).

noch nicht geprueft ... (wenn man aber das bild oben anschaut, ist es genau spiegelverkert, würde also stimmen)

Transponderinhalt

noch nicht geprueft ...

USRP Dumps

  • file: [1], enthält 63 VICC-zu-VCD-Frames
  • displayfreq: 13.9000 MHz
  • samplerate: 1.000.000 samples/sec
  • format: (baudline: le16d linear, gnu radio: short), reell
  • reader: megaset
  • antenna: #5
  • transponder: ISO 15693, megaset.com, i-code, sli
  • descr: Transponder data with content 0xcc


  • file: [2], enthält 17 VICC-zu-VCD-Frames
  • displayfreq: 13.9000 MHz
  • samplerate: 1.000.000 samples/sec
  • format: (baudline: le16d linear, gnu radio: short), reell
  • reader: megaset
  • antenna: #5
  • transponder: ISO 15693, megaset.com, tag-it, hf1
  • descr: Transponder data with content of /etc/services
  • Solldaten:
 0000   23 0A 23 20    #.#    |   0004   4E 45 54 57    NETW   | 
 0008   4F 52 4B 20    ORK    |   000C   53 45 52 56    SERV   | 
 0010   49 43 45 53    ICES   |   0014   2C 20 49 4E    , IN   | 
 0018   54 45 52 4E    TERN   |   001C   45 54 20 53    ET S   | 
 0020   54 59 4C 45    TYLE   |   0024   0A 23 0A 23    .#.#   | 
 0028   20 4E 4F 54     NOT   |   002C   45 20 54 48    E TH   | 
 0030   41 54 20 49    AT I   |   0034   54 20 49 53    T IS   | 
 0038   20 50 52 45     PRE   |   003C   53 45 4E 54    SENT   | 
 0040   4C 59 20 54    LY T   |   0044   48 45 20 50    HE P   | 
 0048   4F 4C 49 43    OLIC   |   004C   59 20 4F 46    Y OF   | 
 0050   20 49 41 4E     IAN   |   0054   41 20 54 4F    A TO   | 
 0058   20 41 53 53     ASS   |   005C   49 47 4E 20    IGN    | 
 0060   41 20 53 49    A SI   |   0064   4E 47 4C 45    NGLE   | 
 0068   20 57 45 4C     WEL   |   006C   4C 2D 4B 4E    L-KN   | 


  • file: [3], enthält 37 VICC-zu-VCD-Frames und 37 VCD-zu-VICC-Frames
  • displayfreq: 14.0140 MHz
  • samplerate: 1.000.000 samples/sec
  • baudline-format: le32, complex
  • reader: megaset
  • antenna: #5
  • transponder: ISO 15693, megaset.com, i-code, sli
  • descr: Transponder data with content 0xcc

Ueberlegungen

Aufnahme der ZF mittels c't-RFID-Detektor
Darstellung der ungefilterten ZF (x: 1 EH = 0.1 usec, y: 1 EH = 20 mV

Die letzten Experimente funktionierten im wesentlichen nach diesem Schema: Der Scanner nimmt die Antennenspannung auf, verarbeitet sie und gibt das ZF-Signal heraus. Das usrp-Board digitalisiert die ZF weg. Mit Baudline visualisiert man die Signale in einem Wasserfalldiagramm. Geeignete Sampleraten liegen so bei 1 bis 4 MSamples/Sekunde. Brauchbare Einstellungen fuer die FFT sind N=1024 und die Gaussche Fensterfunktion (Wert ca. 10).

Was kann man sehen?

Deutlich fruehere Versuche die Seitentraeger abzugreifen wurden mit einer einfachen live-FFT Darstellung durchgefuehrt. Damit konnte man aber keine Seitentraeger erkennen, denn deren Signal ist so kurz, dass man sie nicht mit einer live-FFT wahrnehmen kann. Insofern bietet das Wasserfalldiagramm deutliche Vorteile, denn es stellt auch zeitliche Informationen dar. Im letzten Bild von Versuch 5 kann man dann schon ganz ordentlich die Daten des ISO 15693-Transponders sehen. Die vergroesserte Darstellung zeigt ferner ganz kleine horizontale Striche an den Seitentraegern. Z.B. im Fall logische 0 bei zwei Seitentraegern werden zuerst acht Pulse auf 423 kHz und dann 9 Pulse auf 848 kHz gesendet. Moeglicherweise hinterlassen diese Pulse Zacken im Wasserfalldiagramm. Man kann aber nur einige Pulse erkennen.

Bisher hat das Darstellen von ISO 14443-Transponderdaten noch nicht funktioniert. Man sieht zwar die Seitentraeger, aber die zeitliche Aufloesung reicht nicht aus, um Bits zu sehen.

Zeitliche Aufloesung und FFT-Parameter

Mit dem usrp kann man zwar bis zu 16 komplexwertige Megasamples pro Sekunde aufnehmen, nur man bekommt das nicht mehr richtig visualisiert. Man kann nun mit den verschiedenen Einstellungen herumspielen, aber entweder sind die Haupttraeger-Bins zu dicht neben den Seitentraeger-Bins und vermischen sich in der Darstellung oder die Seitentraegersignale sind zu verwischt, um da noch irgendwas zu erkennen.

Mehr Samplerate bringt nicht zwangslaeufig bessere Ergebnisse. Zumindest wenn man sich das Spektrum mit baudline ansieht!

Filtern

Idee: Wenn man genau einen Seitentraeger herausfiltert, dann kann man die FFT herausoptimieren. Baudline muss das Signal nicht spektral auseinanderbasteln. Die Waveform-Ansicht des Signals sollte die Amplitude des Seitentraegers in hoher Aufloesung wiedergeben.

Da gibt es nun mehrere Wege der Umsetzung. Zum einen kann man die ZF analog filtern. Fuer entsprechende Versuche muessten die ct' bzw. Elektor-RFID-Detektoren ausreichen. Zum anderen kann man die ZF mit Gnuradio-Modulen digital filtern.

Detektor-Bausaetze benutzen

Die beiden Bausaetze sollen das Feld des Lesegeraetes detektieren. Auf der HF-Seite sind beide Schaltungen etwas anders aufgebaut, aber beide verwenden das selbe Empfaengerkonzept. Die Antennenspannung wird mit einem 8 MHz Oszillatorsignal gemischt. Wenn bei 13.56 MHz ein Traeger ist, dann gibt es in der ZF ein messbares Mischprodukt bei 5.56 MHz. Das wird durch ein Bandpassfilter (Breite: paar hundert Kiloherz) gefiltert. Was vom Filtern uebrig bleibt, wird dann weiterverarbeitet.

Das Oszillatorsignal kann man nun so tunen, dass der Seitentraeger durch das Filter passt. Zum Beispiel: Seitentraeger bei ISO 14443 bei 13.56 + 0.847 MHz = 14.407 MHz. Gesucht ist dann eine Oszillatorfrequenz f, so dass 14.407 MHz - f = 5.5 MHz. Alternativ laesst sich natuerlich ein anderes Filter einbauen. Es scheint aber zweckmaessiger zu sein, den Quarz zu tauschen oder eine PLL aufzubauen, deren Frequenz eingestellt werden kann. (Vielleicht sollte man Sockel fuer Quarz/Filter aufloeten, dann man nach Bedarf Bauteile wechseln.)

Bisher wurde lediglich die 5.5 MHz-ZF vom ct'-Detektor via usrp und baudline verarbeitet (an Pin 4 vom Mischer, also vor der Filterung). Das funktioniert soweit, nur ist die Signalstaerke etwas schwach. Die Antenne ist sehr klein.

Mit GNU Radio filtern

So sollte das funktionieren:

   sampling_rate = 1e6

   fg = gr.flow_graph ()

   u = usrp.source_c (0, options.decim, 1, options.mux, 0)
   u.set_rx_freq (0, options.ddc_freq)
   u.set_pga (0, options.gain)
   u.set_pga (1, options.gain)

   bpf = gr.firdes.band_pass(1.0, sampling_rate,
               1000,
               100000,
               80000,
               gr.firdes.WIN_HAMMING)

   filter = gr.fir_filter_ccf( 1, bpf)

   fg.connect (u, filter)

   c2f = gr.complex_to_float()
   f2s = gr.float_to_short()
   fg.connect(filter, c2f)
   fg.connect(c2f, f2s)

   dst_s = gr.file_sink (gr.sizeof_short, options.output_file)

   fg.connect (f2s, dst_s)