Wiegand Protokoll

Hi,

hat jemand eine Ahnung wie man am schlauesten ein Wiegand Format ausliest? Es geht konkret um dieses Gerät.

Danke & Gruß

Sebastian

Ich sollte mir folgendes von hier mal zu Gemüt führen.

[...] it is very easy to read. Simply monitor the two inputs to the arduino and add 0 or a 1 to the number you are building up depending on which one you see pulse.

You need to know how many Weagand bits you are expecting.
Another way would be use each Wiegand output to trigger a separate interrupt. Then let the interrupt service routine just append a zero or 1 and increment a "bytes received" variable. Then in the main loop when the correct number of bits are in do the parity checking and pass the number [...]

Ich bin zwar kein Freund von gutgemeinten Links als Hilfestellung, bin aber bei der Suche nach dem Modul auf folgende Seite gestoßen:
http://iteadstudio.com/produce/play-rdm630-with-arduino/
Gemäß der Angaben des datenblattes kann man recht einfach über die serielle Schnittstelle die Daten auslesen, also entweder über die softwareseitige oder über die harwareseitige Schnittstelle mit 9600 Baud.

Hi,

es gibt diese Module mit einem RS232 oder einem Wiegand Interface. Ich habe "leider" ein Wiegand erwischt. Habe mir inzwischen die Frage ja auch selbst beantwortet. Ich werde die beiden Datenleitungen an die Interrupt Pins anschließen und dann Zähler laufen lassen.
Berichte wenn es erste Ergebnisse geben wird.

Sebastian

Oh, das ging aus dem verlinkten Datenblatt nicht hervor, da dort beide Versionen beschrieben sind. Bin davon ausgegangen, dass dann auch immer beide Anschlussmöglichkeiten bestehen.
Wo hast du denn das Modul her?

Ja, so hab ich da auch gestanden... Bin von RS232 ausgegangen & nix hat funktioniert. Bis ich dann mal auf den Trichter gekommen bin mit dem Oszi zu gucken.
Ist dieses von Watterott.

Sebastian

Frag mal bei Watterott oder im Forum von Watterott nach. (mußt Dich dafür anmelden)
Grüße Uwe

Hallo,

Auf dieser Seite http://www.seeedstudio.com/depot/electronic-brick-125khz-rfid-card-reader-p-702.html?cPath=48_52 findet man unter Document ein download für einen Demo code im Wiegand Modus.

Vielleicht hilft das ja weiter, da die Anschlüsse dieses Moduls Deinem gleichen.

Gruß Klaus

Hallo Klaus,

das Beispiel hatte ich noch nicht gesehen. Vielen Dank!
Bei meinem Leser wollen einfach keine Daten aus Data1 kommen. Es werden bei jedem RFID Chip einfach 37 Pulse auf Data0 gesendet...

Gruß

Sebastian

Ähm, das Wiegand-Protokoll schreibt aber 26 Bits vor, du misst 37. Nach dem WP sollten die Datenleitungen quasi antizyklische Zustände haben, bei dir werkelt nur ein Pin. Der ist zufälligerweise deckungsgleich mit TX des Gerätes.
Bist du hundertprozentig sicher, dass du nicht doch die serielle Version hast?

Hi,

der Gedanke ist mir diese Nacht auch gekommen... Defekte Hardware ist ja auch eher selten... Hast Du noch eine Idee wie ich das prüfen kann? Ich hab auch schon Beispielcode für die Serielle Version probiert. Die funktionieren auch nicht.

Gruß

Sebastian

Meine Idee wäre die Minimalbeschaltung ohne µC-Programmierung: den Mega328 vom Arduino-Board ziehen (vorsichtig, ohne die Pins zu verbiegen, ist schwieriger als man denkt). und dann den FTDI-Chip (Duemilanoe) bzw. den speziell programmierten µC (Uno) verwenden, um deren serielle Pins RX/TX in Kombination mit einem Terminalprogramm abzufragen. Geht zum Beispiel auch mit der Arduino-IDE. Vielleicht auch hier noch die exakte Baudrate achten.

Ich hab diesen FDTI Adapter. Damit sollte es auf einem Breadboard doch auch gehen, oder? Werde ich nachher zu hause mal testen.

Sebastian

Moin,

hab jetzt mal den Tx des Lesers direkt an Rx meines FDTI Adapters gehangen. Folgende 14 Bytes kommen am PC an, wenn ich den Chip mit der Nummer 0000166613 scanne.

Ich sehe da keinen Zusammenhang. Aber wenn es nicht Seriell sein sollte würde doch gar nix ankommen oder?

Ratlos,

Sebastian

Hi,

ich bin mir immer sicherer, dass es eine Serielle Schnittstelle hat. Wenn es so ist. Wie ist dann die erhaltene Botschaft zu verstehen? Auch Beispiel Sketche für die serielle Version funktionieren nicht. Hat da vielleicht jemand noch eine Idee?

Gruß

Sebastian

@ Uwe
Warte seit vier Tagen auf Antwort von Watterott & in deren Forum gibt es das Problem auch nicht.

Hallo,

Kommen im Terminal immer die selben Daten oder ändern sie sich jedes mal?

Das Modul hat eine serielle Schnittstelle (9600Baud) mit folgendem Datenformat:
02H | 10 Byte ID | 2 Byte Checksum | 03H

Beispiel für 62E3086CED
-----------------------

ID-Aufbau:
 6     2     E     3     0     8     6     C     E     D
36H | 32H | 45H | 33H | 30H | 38H | 36H | 43H | 45H | 44H


Checksum-Aufbau:
(62H) XOR (E3H) XOR (08H) XOR (6CH) XOR (EDH) = 08H

 0     8
30H | 38H


Gesamtes Paket:
02H | 36H 32H 45H 33H 30H 38H 36H 43H 45H 44H | 30H 38H | 03H


0H = 30H
1H = 31H
2H = 32H
...
AH = 41H
BH = 42H
CH = 43H
...

@ Uwe
Warte seit vier Tagen auf Antwort von Watterott & in deren Forum gibt es das Problem auch nicht.

Die Anfrage war Freitag Mittag und es ist gibt auch Zeiten, wo wir nicht da sind, z.B. am Wochenende.

Gruß
Andreas

Hallo Andreas,

vielen Dank für die ausführliche Antwort. Das am WE kein Support geleistet wird ist absolut verständlich, ist zudem auch Weihnachtszeit!
Ich werde später mal testen.

Gruß

Sebastian

soooooo. Jetzt mal den Werdegang.

  • Das RDM630 zügig von Watterott bekommen.
  • diese Sketch auf Seriell Basis versucht, ging nicht
  • mit der softSerial Library versucht den Leser über den Arduino auf den PC umzuleiten, ohne Erfolg
  • die Beispiel Sketch von Seeedstudio auf Wiegand Basis versucht, ging nicht
  • den Leser direkt an einen FDTI Adapter gehangen, das erste Lebenszeichen!
  • spätestens mit dem Beitrag von Andreas davon überzeugt dass es ein RDM630 mit Seriellem Interface ist
  • einen Mega genommen und den Leser über Serial1 auf den PC geschickt. funktioniert.
  • die Sketch vom Anfang auf dem Mega erneut versucht. Kein Erfolg.
  • die Sketch von einer softSerial auf Serial1 umgestrickt, kein Erfolg
  • versucht durch einen eingefügten Serial.print heraus zu finden bis wohin die Sketch läuft, siehe da! Die Sketch läuft wie gewünscht !?!
  • Anstatt des Serial.print einen Delay von 5 ms eingebaut. Alles läuft wie gewünscht.
  • mit der softSerial funktioniert das Ganze allerdings noch immer nicht

So das wars. Jetzt kommt gleich noch der funktionierende Code auf dem Mega & mein Tagesziel ist erreicht :slight_smile:

Gruß

Sebastian

Auf folgender Seite gibt es den funktionierenden Code der ersten Sketch. http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1279301523/4#4