Online Store

Protocolul serial de comunicare μFR pentru dispozitivele din seria μFR

Protocolul serial de comunicare μFR pentru dispozitivele din seria μFR

Dispozitivele din seria μFR pot stabili comunicarea prin portul Virtual COM al FTDI, astfel încât dispozitivele sunt văzute ca hardware standard de port COM.

Parametrii de comunicare #

Cititoare cu interfață serială FTDI #

Cititoare μFR Classic și μFR Advance cu conexiune USB:

Comunicare serială: 1 Mbps, 8-N-1, Controlul fluxului: Niciuna;

Pinul RTS este utilizat pentru a reseta dispozitivul. Când RTS este setat, dispozitivul este într-o stare de resetare. Când RTS este clar, dispozitivul este într-o stare normală.

Cititoare μFR BaseHD cu firmware "suport μFR" instalat (de exemplu, cititoare XR și μFR XRc):

Comunicare serială (folosind driverul VCOM FTDI): 250 kbps, 8-N-1, Control flux: Niciuna;

Cititoare fără interfață serială FTDI #

RS485 (conexiune fără convertor USB/RS-485):

Rata variabilă baud poate fi setată printr-un instrument software. Rata curentă baud trebuie să fie cunoscută la schimbarea ratei baud. Rata implicită baud este de 250 kbps.

μFR Classic Nano RS232 și dimensiunea cardului RS232:

UART / TTL: 115200 bps, 8-N-1, Controlul fluxului: Nici unul.

115200 bps este rata implicită baud. Rata variabilă baud poate fi setată prin intermediul instrumentului software.

PIN-ul 4 de pe conector este utilizat pentru a reseta dispozitivul. Dacă tensiunea de pe acest pin este mare (3,3 V), atunci dispozitivul este în stare de resetare. Dacă tensiunea este scăzută (0 V), atunci dispozitivul este într-o stare normală de lucru.

Dacă dispozitivul este conectat la convertorul nostru RS232 la TTL, atunci nivelul de tensiune de pe pinul 4 control asupra RTS. Când RTS este clar, dispozitivul este într-o stare de resetare. Când RTS este setat, dispozitivul este într-o stare normală.

 

În timpul actualizării firmware-ului, pinul RTS trebuie să fie conectat la pinul 4 de pe dispozitiv.

Pinout pentru modelul UART / TTL este prezentat mai jos:

nano-rs232-pinout

În scopuri de comunicare între dispozitivele reader și PC-ul gazdă, se creează protocolul proprietar D-Logic numit "serial μFR".

Toată comunicarea este inițiată de gazdă (PC sau alte platforme) la care este conectat dispozitivul.

Datele maxime transferate printr-o singură comandă sau primite de un răspuns al dispozitivului, de la versiunea de firmware 3.9.44 este de 256 octeți, iar înainte este de 192 octeți.

În general, există două tipuri de pachete:

  • CMD – comanda trimisă de gazdă la dispozitiv
  • ANS – răspuns trimis de pe dispozitiv pentru a găzdui

CMD poate fi un set scurt sau lung. CMD set scurt este întotdeauna 7 octeți lung în timp ce CMD set lung – numit CMD_EXT poate avea lungime variabilă.

Răspunsurile sunt:

  • ACK – Confirmare, totul este OK, dispozitivul așteaptă următorul CMD sau CMD EXT
  • ERR – Eroare a apărut, octet de eroare definește ERR_TYPE
  • RSP – Răspuns de la dispozitiv pe CMD sau CMD_EXT

Constantele de comunicare octeților definesc tipul de pachet, care poate fi văzut în primii trei octeți ai fiecărui pachet.

Primul octet al fiecărui pachet este octetul HEADER. Al doilea octet este întotdeauna CMD_CODE. Al treilea octet este octetul TRAILER.

Tabelul 1. Constante de comunicare

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 #

Toate sumele de control din acest document sunt calculate în același mod: un rând de octeți este utilizat pentru calculul sumei de control, fiecare octet este XOR-ed cu următorul până la sfârșitul rândului. Valoarea finală este incrementată cu 0x07.

De exemplu, un pachet CMD are 7 octeți, unde octetul 7 este suma de control a celor 6 octeți anteriori:

SUMA DE CONTROL = (Octet1 XOR Octet2 XOR Byte3 XOR Byte4 XOR Byte5 XOR Byte6) + 0x07

Coduri CMD #

Fiecare comandă are valoarea corespunzătoare – uita-te la COMENZI PREZENTARE GENERALĂ.

Coduri de eroare #

Dacă apare o eroare, dispozitivul va răspunde cu pachetul ERR. Fiecare eroare are valoarea corespunzătoare care poate fi găsită în tabelul din apendice: CODURI DE EROARE.

Pachet CMD #

Pachetul CMD poate fi scurt – 7 octeți lungime sau EXT-sa încheiat cu lungime variabilă. În cazul pachetului CMD EXT, al patrulea octet de pachet CMD este mai mare decât 0, conținând valoare întreagă – lungimea pachetului de CMD_EXT. Atunci când emite CMD_EXT, întotdeauna principal CMD 7 octeți pachet lung merge mai întâi. Dacă totul așa cum vă așteptați, dispozitivul va răspunde cu pachetul ACK, așteptând pachetul CMD_EXT. La eroare, dispozitivul va răspunde cu pachetul ERR. CMD_EXT constă din diferiți parametri diferiți, în funcție de tipul de comandă, astfel încât CMD_EXT nu are o lungime fixă și o ordine fixă a parametrilor.

Pachetul CMD are următoarea structură:

Pachetul CMD are următoarea structură:

Structura obligatorie a pachetelor CMD de 7 octeți

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

 

  • Octet 1: CMD_HEADER, astfel cum este definit în tabelul1.Constante de comunicare, 0x55
  • Octet 2: CMD_CODE așa cum este definit în tabelul2. CMD_CODE valori
  • Octet 3: CMD_TRAILER așa cum este definit în tabelul1.Constante de comunicare, 0xAA
  • Octet 4: CMD_EXT_Length: Dacă 0, atunci "CMD EXT" nu este utilizat); Valoarea ELSE este lungimea întregului pachet de CMD_EXT
  • Octet 5: CMD_Par0: parametru de comandă0, ia valori diferite în funcție de comandă
  • Octet 6: CMD_Par1: parametru de comandă1, ia valori diferite în funcție de comandă
  • Octet 7: SUMA DE CONTROL – Suma de control de octeți 1 la 6 așa cum sa explicat mai sus

CMD_EXT pachet are următoarea structură:

CMD_EXT pachet are următoarea structură:

CMD_EXT structurii pachetelor
Octet 1 Octet N Octet N +1
Parametrii octeți de la 1 la N

CMD_EXT_CHECKSUM

 

Parametrii octeți de la 1 la N – parametri diferiți, valorile depind de tipul de comandă

  • CMD_EXT_CHECKSUM – Suma de control a octeților de la 1 la N
  • CMD_EXT_Length este numărul tuturor octeților, inclusiv CMD_EXT_CHECKSUM; de exemplu, lungimea este N+1

Tipuri de pachete ANSWER #

Dispozitivul poate răspunde cu următoarele tipuri de pachete:

ACK – Pachet de confirmare

Dacă comanda și pachetul CMD sunt configurate corect (structură și sumă de control) și trebuie trimis un pachet CMD_EXT suplimentar, dispozitivul va răspunde cu un pachet ACK.

ERR – Pachet de eroare

Dacă a apărut o eroare, dispozitivul va răspunde cu pachetul ERR. Unele comenzi pot returna setul de ERR_EXT.În acest caz, pachetul ERR_EXT vine imediat după pachetul ERR.

RSP – Pachet de răspuns

Dacă este trimis un cmd sau CMD_EXT pachet configurat corect, dispozitivul va răspunde cu RSP sau RSP_EXT pachet, care depinde de comanda emisă. De exemplu, dacă CMD are nevoie de un răspuns care este suficient de scurt pentru pachetul RSP, nu va exista nici un pachet RSP_EXT. În caz contrar, dacă CMD sau CMD_EXT are nevoie de un răspuns cu mai mulți octeți, RSP_EXT va veni imediat după pachetul RSP. O situație obișnuită este atunci când citiți date cu comanda LinearRead, unde dispozitivul va răspunde cu un rând de octeți de date de card.

ACK – Pachet de confirmare #

Pachetul ACK are următoarea structură:

Pachetul ACK are următoarea structură:

Structura pachetelor ACP

Octet 1 Octet 2 Octet 3 Octet 4 Octet 5 Octet 6 Octet 7
ACK_HEADER CMD_CODE CMD_TRAILER Irelevant, nu este utilizat în pachetul ACK CHECKSUM

 

  • Octet 1: ACK_HEADER așa cum este definit în tabelul1.Constante de comunicare, 0x55
  • Octet 2: CMD_CODE așa cum este definit în tabelul2. CMD_CODE valori. Dispozitiv ACKnowledges că comanda anterioară este trimis corect
  • Octet 3: ACK_HEADER așa cum este definit în tabelul1.Constante de comunicare, 0x55
  • Octet 4: Octet 5, Octet 6: Nu este utilizat în pachetul ACK, valorile sunt 0x00
  • Octet 7: SUMA DE CONTROL – Suma de control de octeți 1 la 6 așa cum sa explicat mai sus

ERR – pachet de eroare #

Pachetul ERR are următoarea structură:

Obligatoriu 7-octet ERR

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

 

  • Octet 1: ERR_HEADER, astfel cum sunt definite în tabelul1.Constante de comunicare, 0xEC
  • Octet 2: ERR_CODE așa cum este definit în tabelul 3. CODURI DE EROARE.
  • Octet 3: ERR_TRAILER așa cum este definit în tabelul1.Constante de comunicare, 0xCE
  • Octet 4: Dacă există ERR_EXT, acest octet conține lungimea pachetului de ERR_EXT (inclusiv suma de control ERR_EXT)
  • Octetul 5: Posibile informații suplimentare despre eroare pot fi definite în ERR_Val0
  • Octetul 6: Posibile informații suplimentare despre eroare pot fi definite în ERR_Val1
  • Octet 7: SUMA DE CONTROL – Suma de control de octeți 1 la 6 așa cum sa explicat mai sus

ERR_EXT si are urmatoarea structura:

 

structura ERR_EXT de pachete
Octet 1 .. Octet N Octet N +1
Octeți de eroare de la 1 la N ERR_EXT_CHECKSUM

 

  • Octet 1: Primul octet de ERR_EXT
  • Octet N: N-nth Octet de ERR_EXT
  • Octet N +1: ERR_EXT_CHECKSUM, suma de control de octeți 1 la N, calculată așa cum sa explicat mai devreme.

 

RSP – pachet de răspuns #

Pachetul RSP are următoarea structură:

RSP obligatoriu de 7 octeți

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

 

  • Octet 1: RSP_HEADER așa cum este definit în tabelul1.Constante de comunicare, 0xED
  • Octet 2: CMD_CODE așa cum este definit în tabelul2. CMD_CODE valori
  • Octet 3: ERR_TRAILER, astfel cum sunt definite în tabelul1.Constante de comunicare, 0xDE
  • Octet 4: Dacă există RSP_EXT, acest octet conține lungimea pachetului de RSP_EXT (inclusiv RSP_EXT suma de control)
  • Octet 5: Posibile informații suplimentare privind răspunsul pot fi definite în RSP_Val0
  • Octet 6: Posibile informații suplimentare privind răspunsul pot fi definite în RSP_Val1
  • Octet 7: CHECKSUM – Suma de control a octeților 1 la 6 așa cum sa explicat mai sus.

t

structura RSP_EXT de pachete
Octet 1 .. Octet N Octet N +1
RSP octeți de la 1 la N RSP_EXT_CHECKSUM

 

  • Octet 1: Primul octet de RSP_EXT
  • Octet N: N-n-lea octet de RSP_EXT
  • Octet N +1: RSP_EXT_CHECKSUM, suma de control de octeți 1 la N, calculată așa cum sa explicat mai devreme.