Ich versuche das Datenpaket eines RFID-Readers zu dekodieren. In den Datenblättern des Readers steht was von Serial ASCII RS232 und 64 bits Manchester coding. Ist die Manchester codierung für das Auslesen zwischen Tag und Reader zuständig ? Und ich kann dann über RS232 die dekodierten Daten abfragen? Im Anhang ist das Datenpaket des Readers angehängt. Ich hoffe mir kann jemand weiterhelfen was ich mit dem Datenpaket anstellen muss.
Hänge einen Pegelwandler dran und das Ding an die serielle Schnittstelle Deines PCs, und verwende ein "Terminal"programm wie "hTerm", das die empfangenen Daten als Hexdump anzeigen kann.
Hab den Datenausgang des Readers an ein 3,3V FTDI Kabel gehängt. Die Daten findet ihr im Anhang.
Das ist nicht vollständig, da ein Telegramm laut Beschreibung mit STX beginnt und mit CR LF ETX aufhört. Ansonsten, was sollen wir mit den Daten? Die interessieren Dich.
Das kein STX, ETX usw. an Daten ankommt wundert mich auch. Aber ich kann ja kaum was falsch machen wenn ich "Data" des Readers an RXD des FTDI-Kabels hänge? Nun zu den Daten. Momentan verwende ich einen RS232-Wifi Wandler welcher mir einen COM port erzeugt wie das FTDI-Kabel. (http://tibbo.com/products/controllers/ds110x) Aus diesem bekomme ich die Daten im Anhang raus. HEX: 02 30 31 30 44 36 38 46 30 33 43 0D 0A 03 Die TAG ID in ASCII: 010D68F03C Aber wie komme ich aus meinem Datenpaket auf die 10stellige Kombination? Muss ich da über Manchester was kodieren. Oder ist die Manchester-Kodierung nur zwischen Tag und Reader zuständig?
Dein "RS232-WIFI-Wandler" verhält sich auf der RS232-Seite anders als Dein FTDI-Kabel. Hier liegt irgendein Anpassungsproblem vor. Das ist keine Softwareangelegenheit, sondern Hardware. Die Tibbo-Geräte arbeiten mit RS232-Pegel, nicht mit TTL-Pegel.
RFIDler schrieb: > Aus diesem bekomme ich die Daten im Anhang raus. > HEX: 02 30 31 30 44 36 38 46 30 33 43 0D 0A 03 > Die TAG ID in ASCII: 010D68F03C > Aber wie komme ich aus meinem Datenpaket auf die 10stellige Kombination? Einfach die HEX-Werte als ASCII-Zeichen interpretieren: 0x02 = STX Start of Text 0x30 = '0' 0x31 = '1' 0x30 = '0' 0x44 = 'D' 0x36 = '6' 0x36 = '8' 0x46 = 'F' 0x30 = '0' 0x33 = '3' 0x43 = 'C' 0x0D = CR "Wagen Rücklauf" 0x0A = LF "Neue Zeile" 0x03 = ETX End of Text
Cool danke für eure Tipps ich denke wir kommen der Sache langsam näher :) Also jetzt mal langsam damit ich mitkomme. Momentan hab ich ja den "Data" Ausgang des Readers direkt aufs FTDI-Kabel "RX" gehängt. Du meinst also die beiden kommen mit den Pegeln nicht klar? Könnte ich die Schaltung im Anhang mit dem MAX3232 verwenden und ich bekomme somit die gleichen Daten wie beim Tibbo?
RFIDler schrieb: > Momentan hab ich ja den "Data" Ausgang des Readers direkt aufs > FTDI-Kabel "RX" gehängt. Du meinst also die beiden kommen mit den Pegeln > nicht klar? Wie verbindest Du den "Data"-Ausgang mit dem Tibbo-Gerät, und welches exakt ist das?
Ich verbinde Tx des Readers (green) direkt mit dem Tibbo "RX". Der Tibbo heißt "DS1101GD-00".
Das Ding scheint RS232-Pegel zu erwarten. Was widerum der Beschreibung Deines RFID-Lesers widerspricht. Allerdings --und jetzt erhält Dein Oszillogramm auch einen Sinn-- gibt der RFID-Leser ein invertiertes Datensignal aus. Damit der FT232 auf Deinem Adapter das verarbeiten kann, muss es erneut invertiert werden. Keinen Max232 dafür verwenden, sondern einen 74HC04 o.ä., der wie auch Dein FTDI-Adapter mit 3.3V betrieben werden sollte.
Warum gibt mein RFID-Leser ein invertiertes signal aus. An was siehst du das? Wieso sollte ich es nochmal invertieren damit es das FTDI-Kabel verarbeiten kann. Der Tibbo verwendet doch bestimmt auch einen MAX232?
RFIDler schrieb: > An was siehst du das? Der Ruhepegel einer UART (seriellen Schnittstelle) ist logisch 1. Bei TTL-Pegel sind das 5V; bei "3V-TTL" entsprechend 3V. Dein Oszillogramm aber zeigt ein Signal, dessen Ruhepegel logisch 0 ist. Bei RS232-Pegeln ist "high" eine negative Spannung und "low" eine positive. Üblich ist der Bereich zwischen -15 und -3 bzw. zwischen +3 und +15 Volt. Viele RS232-Empfänger kommen aber auch mit 0V-Pegel anstelle der negativen Spannung zurecht. Das jedenfalls erklärt, warum Dein "Tibbo" mit seinem RS232-Eingang etwas mit dem Signal Deines RFID-Lesers anfangen kann. Um dieses Signal für einen FT232 anzupassen, ist kein MAX232 erforderlich, wie ich bereits schrieb, genügt hier ein simpler Inverter. Der MAX232 erzeugt mit Ladungspumpen +-10V, die hier völlig unnötig und wenn versehentlich mit Deinem RFID-Leser verbunden, auch zerstörerisch sind. Ganz zu schweigen vom unnötigen Schaltungsaufwand mit den üblichen immerhin vier großen Kondensatoren.
Vielen Dank für deine Hilfe! Hab nun die TTL Signale über einen simplen Transistorinverter invertiert. Bekomme nun tatsächlich die Daten "02 30 31 30 44 36 38 46 30 33 43 0D 0A 03" zurück in ASCII "010D68F03C".
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.