Magnetkarten -daten 3 Spuren mit AVR speichern

Gast #744620
Lesenswert?
• ▲
▼
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 #744714
Lesenswert?
• ▲
▼
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?
Gast #767193
Lesenswert?
• ▲
▼
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 #767359
Lesenswert?
• ▲
▼
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

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren