Protocollo di comunicazione seriale μFR per dispositivi della serie μFR
View Categories

Protocollo di comunicazione seriale μFR per dispositivi della serie μFR

Protocollo di comunicazione seriale μFR per dispositivi della serie μFR

I dispositivi della serie μFR possono stabilire una comunicazione tramite la porta COM virtuale di FTDI, quindi i dispositivi sono visti come hardware standard della porta COM.

Parametri di comunicazione #

Lettori con interfaccia seriale FTDI #

Lettori μFR Classic e μFR Advance con connessione USB:

Comunicazione seriale: 1 Mbps, 8-N-1, Controllo di flusso: Nessuno;

Il pin RTS viene utilizzato per reimpostare il dispositivo. Quando l'RTS è impostato, il dispositivo è in uno stato di ripristino. Quando l'RTS è chiaro, il dispositivo è in uno stato normale.

Lettori μFR BaseHD con firmware "μFR support" installato (es. lettori XR e μFR XRc):

Comunicazione seriale (utilizzando driver VCOM FTDI): 250 kbps, 8-N-1, Controllo di flusso: Nessuno;

Lettori senza interfaccia seriale FTDI #

RS485 (connessione senza convertitore USB/RS-485):

Il baud rate variabile può essere impostato tramite uno strumento software. Il baud rate corrente deve essere noto quando si modifica il baud rate. La velocità in baud predefinita è 250 kbps.

μFR Classic Nano RS232 e formato scheda RS232:

UART / TTL: 115200 bps, 8-N-1, Controllo del flusso: Nessuno.

115200 bps è il baud rate predefinito. Il baud rate variabile può essere impostato tramite lo strumento software.

Il PIN 4 sul connettore viene utilizzato per reimpostare il dispositivo. Se la tensione su questo pin è alta (3,3 V), il dispositivo è nello stato di ripristino. Se la tensione è bassa (0 V), il dispositivo è in uno stato di funzionamento normale.

Se il dispositivo è collegato al nostro convertitore da RS232 a TTL, il livello di tensione sul pin 4 controlla su RTS. Quando l'RTS è chiaro, il dispositivo è in uno stato di ripristino. Quando l'RTS è impostato, il dispositivo è in uno stato normale.

 

Durante l'aggiornamento del firmware, il pin RTS deve essere collegato al pin 4 del dispositivo.

La piedinatura per il modello UART / TTL è presentata di seguito:

nano-rs232-piedinatura

Ai fini della comunicazione tra i dispositivi di lettura e il PC host, viene creato il protocollo proprietario di D-Logic chiamato "seriale μFR".

Tutte le comunicazioni vengono avviate dall'host (PC o altre piattaforme) a cui è collegato il dispositivo.

Il numero massimo di dati trasferiti da un singolo comando o ricevuti da una risposta del dispositivo, dalla versione firmware 3.9.44 è di 256 byte e prima è di 192 byte.

Generalmente, ci sono due tipi di pacchetti:

  • CMD – comando inviato dall'host al dispositivo
  • ANS – risposta inviata dal dispositivo all'host

CMD può essere un set corto o lungo. Il set breve CMD è sempre lungo 7 byte mentre il set lungo CMD – chiamato CMD_EXT può avere una lunghezza variabile.

Le risposte sono:

  • ACK – Riconoscimento, tutto è OK, il dispositivo è in attesa del prossimo CMD o CMD EXT
  • ERR – Si è verificato un errore, il byte di errore definisce ERR_TYPE
  • RSP – Risposta dal dispositivo su CMD o CMD_EXT

Byte di costanti di comunicazione definiscono il tipo di pacchetto, che può essere visualizzato nei primi tre byte di ciascun pacchetto.

Il primo byte di ogni pacchetto è il byte HEADER. Il secondo byte è sempre CMD_CODE. Il terzo byte è il byte TRAILER.

Tabella1. Costanti di comunicazione

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 #

Tutti i checksum in questo documento sono calcolati nello stesso modo: una riga di byte viene utilizzata per il calcolo del checksum, ogni byte è XOR-ed con quello successivo fino alla fine della riga. Il valore finale viene incrementato con 0x07.

Ad esempio, un pacchetto CMD ha 7 byte, dove il settimo byte è il checksum dei 6 byte precedenti:

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

Codici CMD #

Ogni comando ha il suo valore corrispondente – guarda PANORAMICA DEI COMANDI.

Codici di errore #

Se si verifica un errore, il dispositivo risponderà con il pacchetto ERR. Ogni errore ha il suo valore corrispondente che può essere trovato nella tabella in Appendice: CODICI DI ERRORE.

Pacchetto CMD #

Il pacchetto CMD può essere breve – 7 byte di lunghezza o EXT-ended con lunghezza variabile. Nel caso del pacchetto EXT CMD, il quarto byte del pacchetto CMD è maggiore di 0, contenente il valore intero – lunghezza del pacchetto CMD_EXT. Quando si emettono CMD_EXT, il pacchetto cmD principale lungo 7 byte va per primo. Se tutto come previsto, il dispositivo risponderà con il pacchetto ACK, in attesa del pacchetto CMD_EXT. In caso di errore, il dispositivo risponderà con il pacchetto ERR. CMD_EXT è costituito da vari parametri diversi, a seconda del tipo di comando, quindi CMD_EXT non ha una lunghezza e un ordine fissi di parametri.

Il pacchetto CMD ha la seguente struttura:

Il pacchetto CMD ha la seguente struttura:

Struttura obbligatoria dei pacchetti CMD a 7 byte

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 CHECKSUM

 

  • Byte 1: CMD_HEADER come definito in Table1.Costanti di comunicazione, 0x55
  • Byte 2: CMD_CODE come definito in Table2. CMD_CODE valori
  • Byte 3: CMD_TRAILER come definito in Table1.Costanti di comunicazione, 0xAA
  • Byte 4: CMD_EXT_Length: Se 0 allora il "CMD EXT" non viene utilizzato); Il valore ELSE è la lunghezza dell'intero pacchetto CMD_EXT
  • Byte 5: CMD_Par0: parametro di comando0, assume valori diversi a seconda del comando
  • Byte 6: CMD_Par1: parametro di comando1, assume valori diversi a seconda del comando
  • Byte 7: CHECKSUM – Checksum di byte da 1 a 6 come spiegato sopra

CMD_EXT pacchetto ha la seguente struttura:

CMD_EXT pacchetto ha la seguente struttura:

CMD_EXT struttura dei pacchetti
Byte 1 Byte N Byte N+1
Byte di parametro da 1 a N

CMD_EXT_CHECKSUM

 

Parametri byte da 1 a N – parametri diversi, i valori dipendono dal tipo di comando

  • CMD_EXT_CHECKSUM – Checksum di byte da 1 a N
  • CMD_EXT_Length è il numero di tutti i byte, inclusi i CMD_EXT_CHECKSUM; ad esempio la lunghezza è N + 1

Tipi di pacchetti ANSWER #

Il dispositivo può rispondere con i seguenti tipi di pacchetti:

ACK – Pacchetto di riconoscimento

Se il comando e il pacchetto CMD sono configurati correttamente (struttura e checksum) e deve essere inviato un pacchetto CMD_EXT aggiuntivo, il dispositivo risponderà con un pacchetto ACK.

ERR – Pacchetto di errore

Se si è verificato un errore, il dispositivo risponderà con il pacchetto ERR. Alcuni comandi possono restituire il set di ERR_EXT.In tal caso, il pacchetto ERR_EXT viene immediatamente dopo il pacchetto ERR.

RSP – Pacchetto di risposta

Se viene inviato un pacchetto CMD o CMD_EXT correttamente configurato, il dispositivo risponderà con RSP o RSP_EXT pacchetto, che dipende dal comando emesso. Ad esempio, se CMD ha bisogno di una risposta abbastanza breve per il pacchetto RSP, non ci sarà alcun pacchetto RSP_EXT. Altrimenti, se CMD o CMD_EXT ha bisogno di una risposta con più byte, RSP_EXT arriverà immediatamente dopo il pacchetto RSP. Una situazione comune è quando si leggono i dati con il comando LinearRead, in cui il dispositivo risponderà con una riga di byte di dati della scheda.

ACK – Pacchetto di riconoscimento #

Il pacchetto ACK ha la seguente struttura:

Il pacchetto ACK ha la seguente struttura:

Struttura dei pacchetti ACP

Byte 1 Byte 2 Byte 3 Byte 4 Byte 5 Byte 6 Byte 7
ACK_HEADER CMD_CODE CMD_TRAILER Irrilevante, non utilizzato nel pacchetto ACK CHECKSUM

 

  • Byte 1: ACK_HEADER come definito in Table1.Costanti di comunicazione, 0x55
  • Byte 2: CMD_CODE come definito in Table2. CMD_CODE valori. Device ACKnowledges che il comando precedente è stato inviato correttamente
  • Byte 3: ACK_HEADER come definito in Table1.Costanti di comunicazione, 0x55
  • Byte 4: Byte 5, Byte 6: non utilizzato nel pacchetto ACK, i valori vengono 0x00
  • Byte 7: CHECKSUM – Checksum di byte da 1 a 6 come spiegato sopra

ERR – pacchetto di errore #

Il pacchetto ERR ha la seguente struttura:

ERR obbligatorio a 7 byte

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 CHECKSUM

 

  • Byte 1: ERR_HEADER come definito in Table1.Costanti di comunicazione, 0xEC
  • Byte 2: ERR_CODE come definito in Table3. CODICI DI ERRORE.
  • Byte 3: ERR_TRAILER come definito in Table1.Costanti di comunicazione, 0xCE
  • Byte 4: se esiste ERR_EXT, questo byte contiene la lunghezza del pacchetto ERR_EXT (incluso ERR_EXT checksum)
  • Byte 5: Possibili informazioni aggiuntive sull'errore possono essere definite in ERR_Val0
  • Byte 6: Possibili informazioni aggiuntive sull'errore possono essere definite in ERR_Val1
  • Byte 7: CHECKSUM – Checksum di byte da 1 a 6 come spiegato sopra

ERR_EXT e ha la seguente struttura:

 

ERR_EXT struttura dei pacchetti
Byte 1 .. Byte N Byte N+1
Byte di errore da 1 a N ERR_EXT_CHECKSUM

 

  • Byte 1: Primo byte di ERR_EXT
  • Byte N: N-ennesimo byte di ERR_EXT
  • Byte N+1: ERR_EXT_CHECKSUM, checksum di byte da 1 a N, calcolato come spiegato in precedenza.

 

RSP – pacchetto di risposta #

Il pacchetto RSP ha la seguente struttura:

RSP obbligatorio a 7 byte

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 CHECKSUM

 

  • Byte 1: RSP_HEADER come definito in Table1.Costanti di comunicazione, 0xED
  • Byte 2: CMD_CODE come definito in Table2. CMD_CODE valori
  • Byte 3: ERR_TRAILER come definito in Table1.Costanti di comunicazione, 0xDE
  • Byte 4: se esiste RSP_EXT, questo byte contiene la lunghezza del pacchetto RSP_EXT (incluso RSP_EXT checksum)
  • Byte 5: Possibili informazioni aggiuntive su RESPONSE possono essere definite in RSP_Val0
  • Byte 6: Possibili informazioni aggiuntive su RESPONSE possono essere definite in RSP_Val1
  • Byte 7: CHECKSUM – Checksum dei byte da 1 a 6 come spiegato sopra.

T

RSP_EXT struttura dei pacchetti
Byte 1 .. Byte N Byte N+1
Byte RSP da 1 a N RSP_EXT_CHECKSUM

 

  • Byte 1: Primo byte di RSP_EXT
  • Byte N: N-ennesimo byte di RSP_EXT
  • Byte N+1: RSP_EXT_CHECKSUM, checksum di byte da 1 a N, calcolato come spiegato in precedenza.