Online Store

μFR Serial Communication Protocol voor apparaten uit de μFR-serie

μFR Serial Communication Protocol voor apparaten uit de μFR-serie

Apparaten uit de μFR-serie kunnen communicatie tot stand brengen via de Virtuele COM-poort van FTDI, zodat apparaten worden gezien als standaard COM-poorthardware.

Communicatieparameters #

Lezers met FTDI seriële interface #

μFR Classic en μFR Advance-lezers met een USB-aansluiting:

Seriële communicatie: 1 Mbps, 8-N-1, Flow control: Geen;

De RTS-pin wordt gebruikt om het apparaat opnieuw in te stellen. Wanneer de RTS is ingesteld, bevindt het apparaat zich in een resetstatus. Wanneer de RTS duidelijk is, bevindt het apparaat zich in een normale toestand.

μFR BaseHD-lezers met "μFR-ondersteuning" firmware geïnstalleerd (bijv. XR- en μFR XRc-lezers):

Seriële communicatie (met behulp van VCOM FTDI-stuurprogramma): 250 kbps, 8-N-1, Flow control: Geen;

Lezers zonder FTDI seriële interface #

RS485 (aansluiting zonder USB/RS-485 converter):

De variabele baudrate kan worden ingesteld via een softwaretool. De huidige baudrate moet bekend zijn bij het wijzigen van de baudrate. De standaard baudrate is 250 kbps.

μFR Classic Nano RS232 en kaartformaat RS232:

UART / TTL: 115200 bps, 8-N-1, Stroomregeling: Geen.

115200 bps is de standaard baudrate. De variabele baudrate kan worden ingesteld via de softwaretool.

PIN 4 op de connector wordt gebruikt om het apparaat opnieuw in te stellen. Als de spanning op deze pin hoog is (3,3 V) dan staat het apparaat in de resetstatus. Als de spanning laag is (0 V) dan bevindt het apparaat zich in een normale werktoestand.

Als het apparaat is aangesloten op onze RS232 naar TTL-converter, dan is het spanningsniveau op pin 4 controle over RTS. Wanneer de RTS is gewist, bevindt het apparaat zich in een resetstatus. Wanneer de RTS is ingesteld, bevindt het apparaat zich in een normale status.

 

Tijdens de firmware-update moet de RTS-pin worden aangesloten op pin 4 op het apparaat.

Pinout voor UART / TTL-model wordt hieronder weergegeven:

nano-rs232-pinout

Voor communicatiedoeleinden tussen lezerapparaten en host-pc's wordt het eigen protocol van D-Logic genaamd "μFR serial" gemaakt.

Alle communicatie wordt geïnitieerd door de host (pc of andere platforms) waarmee het apparaat is verbonden.

Maximale gegevens die worden overgedragen door één opdracht of ontvangen door één apparaatrespons, vanaf firmwareversie 3.9.44 is 256 bytes en daarvoor is 192 bytes.

Over het algemeen zijn er twee soorten pakketten:

  • CMD – opdracht verzonden door de host naar het apparaat
  • ANS – antwoord verzonden van het apparaat naar de host

CMD kan een korte of lange set zijn. CMD korte set is altijd 7 byte lang, terwijl CMD lange set – CMD_EXT een variabele lengte kan hebben.

De antwoorden zijn:

  • ACK – Bevestiging, alles is OK, het apparaat wacht op de volgende CMD of CMD EXT
  • ERR – Fout opgetreden, fout byte definieert ERR_TYPE
  • RSP – Reactie van het apparaat op CMD of CMD_EXT

Communicatieconstantenbytes definiëren het type pakket, dat te zien is in de eerste drie bytes van elk pakket.

De eerste byte van elk pakket is de HEADER-byte. De tweede byte is altijd CMD_CODE. De derde byte is de TRAILER byte.

Tabel 1. Communicatieconstanten

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

 

CHECKSUM #

Alle controlesommen in dit document worden op dezelfde manier berekend: een rij bytes wordt gebruikt voor de berekening van de controlesom, elke byte is XOR-ed met de volgende tot het einde van de rij. De uiteindelijke waarde wordt verhoogd met 0x07.

Een CMD-pakket heeft bijvoorbeeld 7 bytes, waarbij de 7e byte de controlesom is van de vorige 6 bytes:

CHECKSUM = (Byte1 XOR Byte2 XOR Byte3 XOR Byte4 XOR Byte5 XOR Byte6) + 0x07

CMD-codes #

Elke opdracht heeft zijn overeenkomstige waarde – kijk naar COMMANDS OVERVIEW.

Foutcodes #

Als er een fout optreedt, antwoordt het apparaat met het ERR-pakket. Elke fout heeft zijn overeenkomstige waarde die te vinden is in de tabel in bijlage: FOUTCODES.

CMD-pakket #

CMD-pakket kan kort zijn – 7 byte lang of EXT-ended met variabele lengte. In het geval van ext cmd-pakket is de vierde byte van het CMD-pakket groter dan 0, met gehele waarde – lengte van CMD_EXT pakket. Bij het uitgeven van CMD_EXT gaat altijd het belangrijkste CMD 7-byte lange pakket eerst. Als alles zoals verwacht, zal het apparaat antwoorden met het ACK-pakket, wachtend op het CMD_EXT pakket. Bij een fout antwoordt het apparaat met het ERR-pakket. CMD_EXT bestaat uit verschillende parameters, afhankelijk van het opdrachttype, dus CMD_EXT heeft geen vaste lengte en volgorde van parameters.

CMD-pakket heeft de volgende structuur:

CMD-pakket heeft de volgende structuur:

Verplichte CMD-pakketstructuur van 7 byte

Byte 1 Byte 2 Zoekertjes Byte 3 Byte 4 Byte 5 Byte 6 Byte 7
CMD_HEADER CMD_CODE CMD_TRAILER CMD_EXT_Length CMD_Par0 CMD_Par1 CHECKSUM

 

  • Byte 1: CMD_HEADER zoals gedefinieerd in tabel 1.Communicatieconstanten, 0x55
  • Byte 2: CMD_CODE zoals gedefinieerd in tabel 2. CMD_CODE waarden
  • Byte 3: CMD_TRAILER zoals gedefinieerd in tabel 1.Communicatieconstanten, 0xAA
  • Byte 4: CMD_EXT_Length: Als 0 dan wordt de "CMD EXT" niet gebruikt); ELSE-waarde is de lengte van het hele CMD_EXT pakket
  • Byte 5: CMD_Par0: command parameter0, neemt verschillende waarden afhankelijk van de opdracht
  • Byte 6: CMD_Par1: command parameter1, neemt verschillende waarden afhankelijk van de opdracht
  • Byte 7: CHECKSUM – Checksum van Bytes 1 tot 6 zoals hierboven uitgelegd

CMD_EXT pakket heeft de volgende structuur:

CMD_EXT pakket heeft de volgende structuur:

CMD_EXT pakketstructuur
Byte 1 Byte N Byte N+1
Parameterbytes 1 tot N

CMD_EXT_CHECKSUM

 

Parameter bytes 1 tot N – verschillende parameters, waarden zijn afhankelijk van het type opdracht

  • CMD_EXT_CHECKSUM – Controlesom van bytes 1 tot N
  • CMD_EXT_Length is het aantal bytes inclusief CMD_EXT_CHECKSUM; bijv. lengte is N+1

ANSWER-pakkettypen #

Het apparaat kan antwoorden met de volgende pakkettypen:

ACK – Bevestigingspakket

Als de opdracht en het CMD-pakket correct zijn geconfigureerd (structuur en controlesom) en er een extra CMD_EXT pakket moet worden verzonden, zal het apparaat antwoorden met een ACK-pakket.

ERR – Foutpakket

Als er een fout is opgetreden, antwoordt het apparaat met het ERR-pakket. Sommige opdrachten kunnen de ERR_EXT set retourneren.In dat geval komt het ERR_EXT pakket direct na het ERR-pakket.

RSP – Antwoordpakket

Als een correct geconfigureerd CMD- of CMD_EXT-pakket wordt verzonden, antwoordt het apparaat met RSP of RSP_EXT pakket, afhankelijk van de gegeven opdracht. Als CMD bijvoorbeeld een antwoord nodig heeft dat kort genoeg is voor het RSP-pakket, is er geen RSP_EXT pakket. Anders, als CMD of CMD_EXT een antwoord met meer bytes nodig heeft, komt RSP_EXT onmiddellijk na het RSP-pakket. Een veel voorkomende situatie is bij het lezen van gegevens met de opdracht LinearRead, waarbij het apparaat antwoordt met een rij kaartgegevensbytes.

ACK – Bevestigingspakket #

ACK-pakket heeft de volgende structuur:

ACK-pakket heeft de volgende structuur:

ACP-pakketstructuur

Byte 1 Byte 2 Zoekertjes Byte 3 Byte 4 Byte 5 Byte 6 Byte 7
ACK_HEADER CMD_CODE CMD_TRAILER Irrelevant, niet gebruikt in ACK-pakket CHECKSUM

 

  • Byte 1: ACK_HEADER zoals gedefinieerd in tabel 1.Communicatieconstanten, 0x55
  • Byte 2: CMD_CODE zoals gedefinieerd in tabel 2. CMD_CODE waarden. Apparaat ACKnowledges dat de vorige opdracht correct is verzonden
  • Byte 3: ACK_HEADER zoals gedefinieerd in tabel 1.Communicatieconstanten, 0x55
  • Byte 4: Byte 5, Byte 6: Niet gebruikt in ACK-pakket, waarden zijn 0x00
  • Byte 7: CHECKSUM – Checksum van Bytes 1 tot 6 zoals hierboven uitgelegd

ERR – foutpakket #

ERR-pakket heeft de volgende structuur:

Verplichte 7-byte ERR

Byte 1 Byte 2 Zoekertjes Byte 3 Byte 4 Byte 5 Byte 6 Byte 7
ERR_HEADER ERROR_CODE ERR_TRAILER ERR_EXT_Length Err_Val0 Err_Val1 CHECKSUM

 

  • Byte 1: ERR_HEADER zoals gedefinieerd in tabel 1.Communicatieconstanten, 0xEC
  • Byte 2: ERR_CODE zoals gedefinieerd in tabel 3. FOUTCODES.
  • Byte 3: ERR_TRAILER zoals gedefinieerd in tabel 1.Communicatieconstanten, 0xCE
  • Byte 4: Als er ERR_EXT bestaat, bevat deze byte de lengte van het ERR_EXT pakket (inclusief ERR_EXT controlesom)
  • Byte 5: Mogelijke aanvullende informatie over fouten kan worden gedefinieerd in ERR_Val0
  • Byte 6: Mogelijke aanvullende informatie over fouten kan worden gedefinieerd in ERR_Val1
  • Byte 7: CHECKSUM – Checksum van Bytes 1 tot 6 zoals hierboven uitgelegd

ERR_EXT en heeft de volgende structuur:

 

ERR_EXT pakketstructuur
Byte 1 .. Byte N Byte N+1
Fout bytes 1 naar N ERR_EXT_CHECKSUM

 

  • Byte 1: Eerste Byte van ERR_EXT
  • Byte N: N-nth Byte van ERR_EXT
  • Byte N+1: ERR_EXT_CHECKSUM, controlesom van Bytes 1 tot N, berekend zoals eerder uitgelegd.

 

RSP – antwoordpakket #

RSP-pakket heeft de volgende structuur:

Verplichte 7-byte RSP

Byte 1 Byte 2 Zoekertjes Byte 3 Byte 4 Byte 5 Byte 6 Byte 7
RSP_HEADER CMD_CODE RSP_TRAILER RSP_EX_length RSP_Val0 RSP_Val1 CHECKSUM

 

  • Byte 1: RSP_HEADER zoals gedefinieerd in tabel 1.Communicatieconstanten, 0xED
  • Byte 2: CMD_CODE zoals gedefinieerd in tabel 2. CMD_CODE waarden
  • Byte 3: ERR_TRAILER zoals gedefinieerd in tabel 1.Communicatieconstanten, 0xDE
  • Byte 4: Als er RSP_EXT bestaat, bevat deze byte de lengte van het RSP_EXT pakket (inclusief RSP_EXT controlesom)
  • Byte 5: Eventuele aanvullende informatie over RESPONSE kan worden gedefinieerd in RSP_Val0
  • Byte 6: Mogelijke aanvullende informatie over RESPONSE kan worden gedefinieerd in RSP_Val1
  • Byte 7: CHECKSUM – Controlesom van Bytes 1 tot 6 zoals hierboven uitgelegd.

T

RSP_EXT pakketstructuur
Byte 1 .. Byte N Byte N+1
RSP bytes 1 naar N RSP_EXT_CHECKSUM

 

  • Byte 1: Eerste byte van RSP_EXT
  • Byte N: N-nth Byte van RSP_EXT
  • Byte N+1: RSP_EXT_CHECKSUM, controlesom van Bytes 1 tot N, berekend zoals eerder uitgelegd.