Protocolo de comunicación serie μFR para dispositivos de la serie μFR

Protocolo de comunicación serie μFR para dispositivos de la serie μFR

Los dispositivos de la serie μFR pueden establecer comunicación a través del puerto COM virtual de FTDI, por lo que los dispositivos se ven como hardware de puerto COM estándar.

Parámetros de comunicación #

Lectores con interfaz serie FTDI #

Lectores μFR Classic y μFR Advance con conexión USB:

Comunicación serie: 1 Mbps, 8-N-1, Control de flujo: Ninguno;

El pin RTS se utiliza para restablecer el dispositivo. Cuando se establece el RTS, el dispositivo está en un estado de restablecimiento. Cuando el RTS está claro, el dispositivo está en un estado normal.

Lectores μFR BaseHD con firmware "μFR support" instalado (por ejemplo, lectores XR y μFR XRc):

Comunicación serie (utilizando el controlador VCOM FTDI): 250 kbps, 8-N-1, Control de flujo: Ninguno;

Lectores sin interfaz serie FTDI #

RS485 (conexión sin convertidor USB/RS-485):

La velocidad en baudios variable se puede establecer a través de una herramienta de software. La velocidad en baudios actual debe conocerse al cambiar la velocidad en baudios. La velocidad en baudios predeterminada es de 250 kbps.

μFR Classic Nano RS232 y tamaño de tarjeta RS232:

UART / TTL: 115200 bps, 8-N-1, Control de flujo: Ninguno.

115200 bps es la velocidad en baudios predeterminada. La velocidad en baudios variable se puede configurar a través de la herramienta de software.

El PIN 4 del conector se utiliza para restablecer el dispositivo. Si el voltaje en este pin es alto (3.3 V), entonces el dispositivo está en el estado de reinicio. Si el voltaje es bajo (0 V), entonces el dispositivo está en un estado de funcionamiento normal.

Si el dispositivo está conectado a nuestro convertidor RS232 a TTL, entonces el nivel de voltaje en el pin 4 controla RTS. Cuando el RTS está claro, el dispositivo está en un estado de restablecimiento. Cuando se establece el RTS, el dispositivo está en un estado normal.

 

Durante la actualización del firmware, el pin RTS debe estar conectado al pin 4 del dispositivo.

Pinout para el modelo UART / TTL se presenta a continuación:

nano-rs232-pinout

Para fines de comunicación entre los dispositivos lectores y la PC host, se crea el protocolo propietario de D-Logic llamado "μFR serial".

Toda la comunicación es iniciada por el host (PC u otras plataformas) al que está conectado el dispositivo.

El máximo de datos transferidos por un solo comando o recibidos por una respuesta de dispositivo, desde la versión de firmware 3.9.44 es de 256 bytes, y antes es de 192 bytes.

Generalmente, hay dos tipos de paquetes:

  • CMD : comando enviado por el host al dispositivo
  • ANS – respuesta enviada desde el dispositivo al host

CMD puede ser un conjunto corto o largo. El conjunto corto CMD siempre tiene una longitud variable, mientras que el conjunto largo CMD, llamado CMD_EXT puede tener una longitud variable.

Las respuestas son:

  • ACK – Reconocimiento, todo está bien, el dispositivo está esperando el próximo CMD o CMD EXT
  • ERR – Error ocurrido, el byte de error define ERR_TYPE
  • RSP – Respuesta del dispositivo en CMD o CMD_EXT

Las constantes de comunicación bytes definen el tipo de paquete, que se puede ver en los tres primeros bytes de cada paquete.

El primer byte de cada paquete es el byte HEADER. El segundo byte siempre está CMD_CODE. El tercer byte es el byte TRAILER.

Tabla 1. Constantes de comunicación

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 #

Todas las sumas de comprobación de este documento se calculan de la misma manera: se utiliza una fila de bytes para el cálculo de la suma de comprobación, cada byte se XOR-ed con el siguiente hasta el final de la fila. El valor final se incrementa con 0x07.

Por ejemplo, un paquete CMD tiene 7 bytes, donde el 7º byte es la suma de comprobación de los 6 bytes anteriores:

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

Códigos CMD #

Cada comando tiene su valor correspondiente: consulte DESCRIPCIÓN GENERAL DE COMANDOS.

Códigos de error #

Si se produce un error, el dispositivo responderá con el paquete ERR. Cada error tiene su valor correspondiente que se puede encontrar en la tabla del Apéndice: CÓDIGOS DE ERROR.

Paquete CMD #

El paquete CMD puede ser corto: 7 bytes de largo o EXT con longitud variable. En el caso del paquete EXT CMD, el cuarto byte del paquete CMD es mayor que 0, conteniendo el valor entero – longitud de CMD_EXT paquete. Al emitir CMD_EXT, siempre el paquete largo principal cmd de 7 bytes va primero. Si todo es lo esperado, el dispositivo responderá con el paquete ACK, esperando el paquete CMD_EXT. En caso de error, el dispositivo responderá con el paquete ERR. CMD_EXT consta de varios parámetros diferentes, dependiendo del tipo de comando, por lo que CMD_EXT no tiene una longitud y un orden de parámetros fijos.

El paquete CMD tiene la siguiente estructura:

El paquete CMD tiene la siguiente estructura:

Estructura de paquetes CMD obligatoria de 7 bytes

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 como se define en la Tabla1.Constantes de comunicación, 0x55
  • Byte 2: CMD_CODE como se define en la Tabla2. CMD_CODE valores
  • Byte 3: CMD_TRAILER como se define en la Tabla1.Constantes de comunicación, 0xAA
  • Byte 4: CMD_EXT_Length: Si 0 entonces no se usa el "CMD EXT"); El valor ELSE es la longitud de todo el paquete CMD_EXT
  • Byte 5: CMD_Par0: parámetro de comando0, toma diferentes valores dependiendo del comando
  • Byte 6: CMD_Par1: parámetro de comando1, toma diferentes valores dependiendo del comando
  • Byte 7: CHECKSUM – Suma de comprobación de bytes 1 a 6 como se explicó anteriormente

CMD_EXT paquete tiene la siguiente estructura:

CMD_EXT paquete tiene la siguiente estructura:

CMD_EXT estructura de paquetes
Byte 1 Byte N Byte N+1
Parámetro bytes 1 a N

CMD_EXT_CHECKSUM

 

Bytes de parámetro 1 a N: diferentes parámetros, los valores dependen del tipo de comando

  • CMD_EXT_CHECKSUM – Suma de comprobación de bytes 1 a N
  • CMD_EXT_Length es el número de todos los bytes, incluidos los CMD_EXT_CHECKSUM; por ejemplo, la longitud es N+1

Tipos de paquetes ANSWER #

El dispositivo puede responder con los siguientes tipos de paquetes:

ACK – Paquete de acuse de recibo

Si el comando y el paquete CMD están configurados correctamente (estructura y suma de comprobación) y es necesario enviar un paquete de CMD_EXT adicional, el dispositivo responderá con un paquete ACK.

ERR – Paquete de error

Si se produce un error, el dispositivo responderá con el paquete ERR. Algunos comandos pueden devolver el conjunto ERR_EXT.En ese caso, el paquete ERR_EXT viene inmediatamente después del paquete ERR.

RSP – Paquete de respuesta

Si se envía un paquete CMD o CMD_EXT correctamente configurado, el dispositivo responderá con RSP o RSP_EXT paquete, que depende del comando emitido. Por ejemplo, si CMD necesita una respuesta que sea lo suficientemente corta para el paquete RSP, no habrá RSP_EXT paquete. De lo contrario, si CMD o CMD_EXT necesita una respuesta con más bytes, RSP_EXT vendrá inmediatamente después del paquete RSP. Una situación común es cuando se leen datos con el comando LinearRead, donde el dispositivo responderá con una fila de bytes de datos de tarjeta.

ACK – Paquete de acuse de recibo #

El paquete ACK tiene la siguiente estructura:

El paquete ACK tiene la siguiente estructura:

Estructura de paquetes ACP

Byte 1 Byte 2 Byte 3 Byte 4 Byte 5 Byte 6 Byte 7
ACK_HEADER CMD_CODE CMD_TRAILER Irrelevante, no utilizado en el paquete ACK CHECKSUM

 

  • Byte 1: ACK_HEADER como se define en la Tabla1.Constantes de comunicación, 0x55
  • Byte 2: CMD_CODE como se define en la Tabla2. CMD_CODE valores. El dispositivo RECONOCE que el comando anterior se ha enviado correctamente
  • Byte 3: ACK_HEADER como se define en la Tabla1.Constantes de comunicación, 0x55
  • Byte 4: Byte 5, Byte 6: No se utiliza en el paquete ACK, los valores son 0x00
  • Byte 7: CHECKSUM – Suma de comprobación de bytes 1 a 6 como se explicó anteriormente

ERR – paquete de error #

El paquete ERR tiene la siguiente estructura:

ERR obligatorio de 7 bytes

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 como se define en la Tabla1.Constantes de comunicación, 0xEC
  • Byte 2: ERR_CODE como se define en la Tabla 3. CÓDIGOS DE ERROR.
  • Byte 3: ERR_TRAILER como se define en la Tabla1.Constantes de comunicación, 0xCE
  • Byte 4: Si existe ERR_EXT, este byte contiene la longitud del paquete ERR_EXT (incluida ERR_EXT suma de comprobación)
  • Byte 5: La posible información adicional sobre el error se puede definir en ERR_Val0
  • Byte 6: La posible información adicional sobre el error se puede definir en ERR_Val1
  • Byte 7: CHECKSUM – Suma de comprobación de bytes 1 a 6 como se explicó anteriormente

ERR_EXT y tiene la siguiente estructura:

 

ERR_EXT estructura de paquetes
Byte 1 .. Byte N Byte N+1
Bytes de error 1 a N ERR_EXT_CHECKSUM

 

  • Byte 1: Primer byte de ERR_EXT
  • Byte N: N-enésimo Byte de ERR_EXT
  • Byte N+1: ERR_EXT_CHECKSUM, suma de comprobación de Bytes 1 a N, calculada como se explicó anteriormente.

 

RSP – paquete de respuesta #

El paquete RSP tiene la siguiente estructura:

RSP obligatorio de 7 bytes

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 como se define en la Tabla1.Constantes de comunicación, 0xED
  • Byte 2: CMD_CODE como se define en la Tabla2. CMD_CODE valores
  • Byte 3: ERR_TRAILER como se define en la Tabla 1.Constantes de comunicación, 0xDE
  • Byte 4: Si existe RSP_EXT, este byte contiene la longitud del paquete RSP_EXT (incluida RSP_EXT suma de comprobación)
  • Byte 5: La posible información adicional sobre RESPONSE se puede definir en RSP_Val0
  • Byte 6: La posible información adicional sobre RESPONSE se puede definir en RSP_Val1
  • Byte 7: CHECKSUM – Suma de comprobación de bytes 1 a 6 como se explicó anteriormente.

T

RSP_EXT estructura de paquetes
Byte 1 .. Byte N Byte N+1
Bytes RSP 1 a N RSP_EXT_CHECKSUM

 

  • Byte 1: Primer byte de RSP_EXT
  • Byte N: N-enésimo Byte de RSP_EXT
  • Byte N+1: RSP_EXT_CHECKSUM, suma de comprobación de Bytes 1 a N, calculada como se explicó anteriormente.