Online Store

Serielles μFR-Kommunikationsprotokoll für Geräte der μFR-Serie

Serielles μFR-Kommunikationsprotokoll für Geräte der μFR-Serie

Geräte der μFR-Serie können die Kommunikation über den Virtual COM-Port von FTDI herstellen, sodass Geräte als Standard-COM-Port-Hardware angesehen werden.

Kommunikationsparameter #

Lesegeräte mit serieller FTDI-Schnittstelle #

μFR Classic und μFR Advance Lesegeräte mit USB-Anschluss:

Serielle Kommunikation: 1 Mbps, 8-N-1, Flusskontrolle: Keine;

Der RTS-Pin wird verwendet, um das Gerät zurückzusetzen. Wenn der RTS eingestellt ist, befindet sich das Gerät in einem Reset-Zustand. Wenn der RTS klar ist, befindet sich das Gerät in einem normalen Zustand.

μFR BaseHD Reader mit installierter "μFR support" Firmware (z.B. XR und μFR XRc Reader):

Serielle Kommunikation (mit VCOM FTDI-Treiber): 250 kbps, 8-N-1, Flusskontrolle: Keine;

Lesegeräte ohne serielle FTDI-Schnittstelle #

RS485 (Anschluss ohne USB/RS-485 Konverter):

Die variable Baudrate kann über ein Software-Tool eingestellt werden. Die aktuelle Baudrate muss bei Änderung der Baudrate bekannt sein. Die Standardbaudrate beträgt 250 kbps.

μFR Classic Nano RS232 und Kartengröße RS232:

UART / TTL: 115200 bps, 8-N-1, Durchflussregelung: Keine.

115200 bps ist die Standardbaudrate. Die variable Baudrate kann über das Software-Tool eingestellt werden.

PIN 4 am Stecker wird verwendet, um das Gerät zurückzusetzen. Wenn die Spannung an diesem Pin hoch ist (3,3 V), befindet sich das Gerät im Reset-Zustand. Wenn die Spannung niedrig ist (0 V), befindet sich das Gerät in einem normalen Betriebszustand.

Wenn das Gerät an unseren RS232-zu-TTL-Wandler angeschlossen ist, wird der Spannungspegel an Pin 4 über RTS gesteuert. Wenn der RTS klar ist, befindet sich das Gerät in einem zurückgesetzten Zustand. Wenn das RTS eingestellt ist, befindet sich das Gerät in einem normalen Zustand.

 

Während des Firmware-Updates muss der RTS-Pin mit Pin 4 am Gerät verbunden werden.

Pinbelegung für UART / TTL-Modell ist unten dargestellt:

Nano-RS232-Pinbelegung

Für die Kommunikation zwischen Lesegeräten und Host-PC wird das proprietäre Protokoll von D-Logic namens "μFR serial" erstellt.

Die gesamte Kommunikation wird von dem Host (PC oder andere Plattformen) initiiert, mit dem das Gerät verbunden ist.

Die maximale Datenübertragung, die durch einen einzelnen Befehl übertragen oder von einer Geräteantwort empfangen wird, von der Firmware-Version 3.9.44 beträgt 256 Byte und davor 192 Byte.

Im Allgemeinen gibt es zwei Arten von Paketen:

  • CMD – Befehl, der vom Host an das Gerät gesendet wird
  • ANS – Antwort, die vom Gerät an den Host gesendet wird

CMD kann ein kurzes oder langes Set sein. CMD short set ist immer 7 Byte lang, während CMD long set – genannt CMD_EXT variable Länge haben kann.

Die Antworten sind:

  • ACK – Bestätigung, alles ist in Ordnung, das Gerät wartet auf den nächsten CMD oder CMD EXT
  • ERR – Fehler aufgetreten, Fehlerbyte definiert ERR_TYPE
  • RSP – Antwort vom Gerät auf CMD oder CMD_EXT

Kommunikationskonstanten Bytes definieren den Pakettyp, der in den ersten drei Bytes jedes Pakets zu sehen ist.

Das erste Byte jedes Pakets ist das HEADER-Byte. Das zweite Byte ist immer CMD_CODE. Das dritte Byte ist das TRAILER-Byte.

Tabelle 1. Kommunikationskonstanten

CMD_HEADER 0x55 CMD_TRAILER 0xAA
ACK_HEADER 0xAC ACK_TRAILER 0xCA
RESPONSE_HEADER 0xDE RESPONSE_TRAILER 0xED
ERR_HEADER 0xEC ERR_TRAILER 0xCE

 

PRÜFSUMME #

Alle Prüfsummen in diesem Dokument werden auf die gleiche Weise berechnet: Eine Zeile von Bytes wird für die Prüfsummenberechnung verwendet, jedes Byte ist XOR-ed mit dem nächsten bis zum Ende der Zeile. Der Endwert wird mit 0x07 erhöht.

Ein CMD-Paket hat beispielsweise 7 Bytes, wobei das 7. Byte die Prüfsumme der vorherigen 6 Bytes ist:

PRÜFSUMME = (Byte1 XOR Byte2 XOR Byte3 XOR Byte4 XOR Byte5 XOR Byte6) + 0x07

CMD-Codes #

Jeder Befehl hat seinen entsprechenden Wert – siehe COMMANDS OVERVIEW.

Fehlercodes #

Wenn ein Fehler auftritt, antwortet das Gerät mit dem ERR-Paket. Jeder Fehler hat seinen entsprechenden Wert, der in der Tabelle im Anhang: ERROR CODES zu finden ist.

CMD-Paket #

CMD-Paket kann kurz sein – 7 Byte lang oder EXT-ended mit variabler Länge. Im Fall von EXT CMD-Paketen ist das vierte Byte des CMD-Pakets größer als 0 und enthält den ganzzahligen Wert – Länge CMD_EXT Pakets. Bei der Ausgabe von CMD_EXT geht immer das CMD-CMD-Paket mit 7 Byte Länge an erster Stelle. Wenn alles wie erwartet ist, antwortet das Gerät mit dem ACK-Paket und wartet auf das CMD_EXT Paket. Bei einem Fehler antwortet das Gerät mit dem ERR-Paket. CMD_EXT besteht aus verschiedenen Parametern, abhängig vom Befehlstyp, so dass CMD_EXT keine feste Länge und Reihenfolge der Parameter hat.

CMD-Paket hat die folgende Struktur:

CMD-Paket hat die folgende Struktur:

Obligatorische 7-Byte-CMD-Paketstruktur

Byte 1 Byte 2 Byte 3 Byte 4 Byte 5 Byte 6 Byte 7
CMD_HEADER CMD_CODE CMD_TRAILER CMD_EXT_Length CMD_Par0 CMD_Par1 PRÜFSUMME

 

  • Byte 1: CMD_HEADER wie in Table1.Communication constants, 0x55 definiert
  • Byte 2: CMD_CODE wie in Tabelle2 definiert. CMD_CODE Werte
  • Byte 3: CMD_TRAILER wie in Table1.Communication constants, 0xAA definiert
  • Byte 4: CMD_EXT_Length: Wenn 0, dann wird das "CMD EXT" nicht verwendet); ELSE-Wert ist die Länge des gesamten CMD_EXT Pakets
  • Byte 5: CMD_Par0: Befehlsparameter0, nimmt je nach Befehl unterschiedliche Werte an
  • Byte 6: CMD_Par1: Befehlsparameter1, nimmt je nach Befehl unterschiedliche Werte an
  • Byte 7: PRÜFSUMME – Prüfsumme der Bytes 1 bis 6 wie oben erklärt

CMD_EXT Paket hat die folgende Struktur:

CMD_EXT Paket hat die folgende Struktur:

CMD_EXT Paketstruktur
Byte 1 Byte N Byte N+1
Parameterbytes 1 bis N

CMD_EXT_CHECKSUM

 

Parameter Bytes 1 bis N – unterschiedliche Parameter, Werte hängen von der Art des Befehls ab

  • CMD_EXT_CHECKSUM – Prüfsumme der Bytes 1 bis N
  • CMD_EXT_Length ist die Anzahl aller Bytes einschließlich CMD_EXT_CHECKSUM; z.B. Länge ist N+1

ANSWER-Pakettypen #

Das Gerät kann mit den folgenden Pakettypen antworten:

ACK – Danksagungspaket

Wenn der Befehl und das CMD-Paket ordnungsgemäß konfiguriert sind (Struktur und Prüfsumme) und ein zusätzliches CMD_EXT Paket gesendet werden muss, antwortet das Gerät mit einem ACK-Paket.

ERR – Fehlerpaket

Wenn ein Fehler aufgetreten ist, antwortet das Gerät mit dem ERR-Paket. Einige Befehle können die ERR_EXT Satz zurückgeben.In diesem Fall kommt das ERR_EXT Paket unmittelbar nach dem ERR-Paket.

RSP – Antwortpaket

Wenn ein ordnungsgemäß konfiguriertes CMD- oder CMD_EXT-Paket gesendet wird, antwortet das Gerät mit RSP- oder RSP_EXT Paket, was vom ausgegebenen Befehl abhängt. Wenn CMD beispielsweise eine Antwort benötigt, die kurz genug für das RSP-Paket ist, gibt es kein RSP_EXT Paket. Andernfalls, wenn CMD oder CMD_EXT eine Antwort mit mehr Bytes benötigt, kommt RSP_EXT sofort nach dem RSP-Paket. Eine häufige Situation ist beim Lesen von Daten mit dem Befehl LinearRead, bei dem das Gerät mit einer Reihe von Kartendatenbytes antwortet.

ACK – Danksagungspaket #

Das ACK-Paket hat die folgende Struktur:

Das ACK-Paket hat die folgende Struktur:

ACP-Paketstruktur

Byte 1 Byte 2 Byte 3 Byte 4 Byte 5 Byte 6 Byte 7
ACK_HEADER CMD_CODE CMD_TRAILER Irrelevant, wird nicht im ACK-Paket verwendet PRÜFSUMME

 

  • Byte 1: ACK_HEADER wie in Table1.Communication constants, 0x55 definiert
  • Byte 2: CMD_CODE wie in Tabelle2 definiert. CMD_CODE Werte. Gerät ACKnowledges, dass der vorherige Befehl ordnungsgemäß gesendet wird
  • Byte 3: ACK_HEADER wie in Table1.Communication constants, 0x55 definiert
  • Byte 4: Byte 5, Byte 6: Wird im ACK-Paket nicht verwendet, Werte werden 0x00
  • Byte 7: PRÜFSUMME – Prüfsumme der Bytes 1 bis 6 wie oben erklärt

ERR – Fehlerpaket #

Das ERR-Paket hat die folgende Struktur:

Obligatorischer 7-Byte-ERR

Byte 1 Byte 2 Byte 3 Byte 4 Byte 5 Byte 6 Byte 7
ERR_HEADER Error_code ERR_TRAILER ERR_EXT_Length Err_Val0 Err_Val1 PRÜFSUMME

 

  • Byte 1: ERR_HEADER wie in Table1.Communication constants, 0xEC definiert
  • Byte 2: ERR_CODE wie in Tabelle3 definiert. FEHLERCODES.
  • Byte 3: ERR_TRAILER wie in Table1.Communication constants, 0xCE definiert
  • Byte 4: Wenn ERR_EXT vorhanden ist, enthält dieses Byte die Länge des ERR_EXT Pakets (einschließlich ERR_EXT Prüfsumme)
  • Byte 5: Mögliche zusätzliche Informationen zum Fehler können in ERR_Val0 definiert werden
  • Byte 6: Mögliche zusätzliche Informationen zum Fehler können in ERR_Val1 definiert werden
  • Byte 7: PRÜFSUMME – Prüfsumme der Bytes 1 bis 6 wie oben erklärt

ERR_EXT und hat folgende Struktur:

 

ERR_EXT Paketstruktur
Byte 1 .. Byte N Byte N+1
Fehlerbytes 1 bis N ERR_EXT_CHECKSUM

 

  • Byte 1: Erstes Byte ERR_EXT
  • Byte N: N-n-tes Byte ERR_EXT
  • Byte N+1: ERR_EXT_CHECKSUM, Prüfsumme der Bytes 1 bis N, berechnet wie zuvor erläutert.

 

RSP – Antwortpaket #

RSP-Paket hat die folgende Struktur:

Obligatorischer 7-Byte-RSP

Byte 1 Byte 2 Byte 3 Byte 4 Byte 5 Byte 6 Byte 7
RSP_HEADER CMD_CODE RSP_TRAILER RSP_EX_length RSP_Val0 RSP_Val1 PRÜFSUMME

 

  • Byte 1: RSP_HEADER wie in Table1.Communication constants, 0xED definiert
  • Byte 2: CMD_CODE wie in Tabelle2 definiert. CMD_CODE Werte
  • Byte 3: ERR_TRAILER wie in Table1.Communication constants, 0xDE definiert
  • Byte 4: Wenn RSP_EXT vorhanden ist, enthält dieses Byte die Länge des RSP_EXT Pakets (einschließlich RSP_EXT Prüfsumme)
  • Byte 5: Mögliche zusätzliche Informationen zu RESPONSE können in RSP_Val0 definiert werden
  • Byte 6: Mögliche zusätzliche Informationen zu RESPONSE können in RSP_Val1 definiert werden
  • Byte 7: PRÜFSUMME – Prüfsumme der Bytes 1 bis 6 wie oben erläutert.

T

RSP_EXT Paketstruktur
Byte 1 .. Byte N Byte N+1
RSP-Bytes 1 bis N RSP_EXT_CHECKSUM

 

  • Byte 1: Erstes Byte RSP_EXT
  • Byte N: N-n-tes Byte RSP_EXT
  • Byte N+1: RSP_EXT_CHECKSUM, Prüfsumme der Bytes 1 bis N, berechnet wie zuvor erläutert.