Magnetkarten -daten 3 Spuren mit AVR speichern

Gast #744620
Hallo,

ich möchte für ein Projekt dass beim durchziehen der Karte alle 3 Spuren 
simultan gelesen werden und im Spiecher evtl. serielles Flash oder MC/SD 
abgelegt werden.

Frage:
Wie bekomme ich die Daten in den AVR, nutze ich einen ADC oder Input 
Capture oder kann ich das Signal welches wie siehe Bild aussieht. 
eigentlich ist es ja ein digitales Signal und kann auch ohne f2f 
baustein umgeandelt werden in 0101101.

* Optimal wäre es wenn direkt vom Magnetkopf den Binärstrom gewonnen und 
gespeichert werden könnte.

* Alternative wäre das Signal einfach nur zu speichern wie die Ausgabe 
eines normalen Tonkopfes.

Info s:)
Vielleicht hilft die Info, dass die Daten und das Clock Signal 
zeitgleich im Datenstrom vorkommen.
Es ist so, dass am Anfang des Lesens eine zackige Sinuskurve angeführt 
wird an der man den Takt errechnen kann, später im eigentlichen 
Datenstrom nutz man die breite der auf die Frequenz modelierten 0er um 
auch die 1er zu identfizieren. Wenn innerhalb eines Taktes ein 
Pegelwechsel stattfindet ist das eine 1 wennnicht eine 0.
Wer kann mir ein paar inspirierende Ansätze geben wie man so etwas 
realisiert. Um alles spuren Zeitgleich lesen zu können, können natürlich 
auch 3 AVRs zum einsatz kommmen das ist egal.
Ich bedanke mich im Voraus und hoffe dass ich hier die Etiquette wahren 
konnte wenn nicht bitte zurechtstutzen.
Liebe Grüße KnechtRootRecht
Angehängte Dateien:
Gast
Ich würde mit einem AVR gleichzeitig alle Spuren AD-Wandeln. Die 
Auswertung kann dann ganz gemütlich Offline gemacht werden. Die 
Knacknuss dürfte sein, das digitale wieder aus den Werten zu ermitteln
Gast
Zunächst herzlichen Dank für die Mühe, Manchaster code ist hier wohl das 
Schlagwort.
Habe hierzu grad ein bissl was gelesen -> genau das habe ich gesucht.
Bin dabei hierauf gestossen:
 Beispielcode (Matlab/Octave)

Encoder:
1
function [encoded] = manchester_encode(source)
2

3
encoded = [];
4
for i=1:length(source)
5
  encoded(2*i - 1) = (source(i) == 1);
6
  encoded(2*i) = (source(i) == 0);
7
end
Decoder:
1
function [decoded] = manchester_decode(coded)
2

3
decoded = [];
4
for i=1:(length(coded)/2)
5
  if coded(2*i - 1) == 0 && coded(2*i) == 1
6
    decoded(i) = 0;
7
  else
8
    decoded(i) = 1;
9
  end
10
end
Beispiel:
1
octave:22> manchester_encode([0 1 0 0 0 1 1 1])
2
ans =
3

4
  0  1  1  0  0  1  0  1  0  1  1  0  1  0  1  0
5

6
octave:23> manchester_decode(ans)
7
ans =
8

9
  0  1  0  0  0  1  1  1

Wie modde ich das denn jetzt um für meine Zwecke?
(Firma: TravelRec.) Persönliche Seite
Nicht ganz. Die Spannung vom Magnetkopf muß sicher verstärkt werden. 
Dann kommt der µC. In diesem tickt eine schnuckelige Routine, die die 
Datenaufbereitung macht und die 1en und 0en abspeichert. Diese Routine 
mußt Du Dir erst zusammenproggen. Was Du dann mit den gespeicherten 
Daten machst, ist Dein Ding.
Gast
Hallo, und lieben Dank an alle die sich um mein Problem gekümmert haben.
Habe vor eine Kundenkarte heruaszubringen, allerding smit einem völlig 
neuem Konzept und hierzu müßen die IDs auf den Karten bei den Händler 
irgendwei gespeichert werden, hierzu will ich ein kleinen Logger basteln 
möglichst billig der Magnetkarten lesen kann.

Kann mir jemand sagen wie ich die vom Komparator erzeugten daten 
speichern kann. bin über jeden Tipp froh..
Bin Anfänger#1
(Firma: TravelRec.) Persönliche Seite
Aber mal ganz ehrlich: Magnetkarten sind doch out! Nimm 13.56Mhz 
Transponder und bringe diese inklusive der Spule in einer Karte unter. 
Dafür gibt es inzwischen sogar schon etliche Hersteller. Dann baust Du 
Dir eine Schreib/Lese-Einheit aus einem RFID Frontend-IC und einem 
Mikrocontroller und fertig ist das. Wird auf jeden Fall zuverlässiger 
und langlebiger. Und letztenlich auch sicherer, da viele Transponder 
auch schon Verschlüsselung können.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 18 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.