FlexyOnline KXP
FlexyOnline KXP
FlexyOnline KXP
V.1.06
El Flexy2 Online forma parte de la nueva generación de electrónicas Kimaldi compatibles con el protocolo KXP,
por lo que la aplicación podrá controlar totalmente el equipo por medio de los métodos y eventos de la librería
KProduct.
Integra en una sola electrónica un lector MIFARE y DESFIRE (ISO1443A-3, ISO1443A-3), una controladora de
lector biométrico FIM, puertos Clock and Data y Wiegand, un relé, un led tricolor y dos entradas digitales, todo ello
accesible en tiempo real desde el Host, tanto a través de su puerto serie, como por su conexión UDP-KXP.
Estas características hacen que el Flexy2 Online sea el terminal ideal para implementar sistemas de control de
accesos y/o presencia que requieran operaciones de lectura/escritura de tarjetas RFID en línea, o identificación
biométrica. Dado que el programador tiene el control en tiempo real de cada elemento del hardware, es posible
diseñar sistemas de control de accesos que requieran el funcionamiento coordinado del módulo RF y la
identificación biométrica. Además, el Flexy2 soporta dos modos distintos de reconocimiento de huellas. Se permite
emplear tanto el motor de búsqueda de Nitgen instalado en el propio Host (librerías eNSearch y eNBSP), como el
motor de búsqueda incorporado en el propio módulo FIM.
Dado que los puertos serie de la electrónica Flexy2 se pueden configurar como bridges KXP, resulta muy simple
incorporar a la red KXP una variedad de electrónicas de expansión, y así ampliar los módulos hardware
disponibles, añadiendo relés, entradas digitales, otros lectores, etc.
• Consumo 220mA
2.3 CONEXIONADO
J5 - Conector Expansión
Pin 1: Power +5V (OUT - Alimentación Expansión)
Pin 2: (UART1) Tx RS-232
Pin 3: (UART1) Rx RS-232
Pin 4: Power GND (Alimentación Expansión)
Pin 5: DATA Input (Clock & Data) / D0 Input (Wiegand)
Pin 6: CLOCK Input (Clock & Data) / D1 Input (Wiegand)
Pin 7: CLS Input (Clock & Data)
Pin 8: Power +5V (OUT - Alimentación Expansión)
Pin 9: Power GND (Alimentación Expansión)
La librería KProduct posee todos los recursos necesarios para que el Host establezca las comunicaciones con el
terminal Flexy2 Online KXP por los dos canales de que dispone el equipo: la conexión RS232-KXP y la UDP-KXP.
El terminal está permanentemente a la escucha por ambos canales, respondiendo sólo por el canal interrogado. El
envío de eventos se realizará exclusivamente por el canal especificado en el parámetro CFG3_PAR_HOST_FE.
Se recomienda la consulta del manual de la librería KProduct para familiarizarse con las redes KXP.
El puerto UART0 disponible en el conector J1 permite la comunicación con el Host vía RS-232. Esta comunicación
se establecerá, por defecto, a 19200 baud. Véase el apartado destinado a los parámetros de configuración de la
conectividad básica para mayor detalle.
3.1.2 Comunicaciones IP
El acceso al terminal usando el canal UDP-KXP se realiza de acuerdo con la configuración definida en los
parámetros de red. La configuración se puede realizar vía RS-232, o a través de la propia comunicación UDP-
KXP. La librería KProduct permite tanto establecer la conexión UDP con una dirección IP conocida, como
mediante la dirección broadcast de la red. Esto puede ser de utilidad para localizar y establecer comunicación con
los equipos nuevos, para así poder configurar adecuadamente los parámetros relativos a la conectividad.
Todo terminal posee una dirección MAC única, que puede obtenerse componiendo los tres primeros bytes y los
tres últimos del EUI64.
El módulo In-Out del terminal Flexy2 Online KXP está compuesto por un LED tricolor, un buzzer, un relé y dos
entradas digitales.
El LED tricolor del terminal Flexy2 Online KXP se puede controlar desde el Host mediante las instrucciones
InOutLedOperate, InOutLedSwitchOn y InOutLedSwitchOff, pero también los módulos Mifare y TTL del propio
terminal pueden activarlo de forma autónoma, si así se ha definido por configuración. Siempre que el LED reciba
una instrucción cuando todavía no ha terminado la ejecución de la anterior, esta se cancelará y prevalecerá
siempre la última orden recibida, ya provenga del Host o de los módulos internos.
En los métodos y eventos de la librería KProduct, nos referiremos al único LED del terminal mediante el índice
ucLedNum igual a 0.
El encendido del LED se controla mediante tres parámetros, ucMode, ucColor y ucTime_ds, cuyos valores se
pueden consignar tanto en el método InOutLedOperate para el control online del LED, como en la configuración
de los módulos internos para que puedan usarlo de forma autónoma.
El parámetro ucMode permite elegir entre un encendido fijo o pulsado. Según sea el valor consignado el ciclo de
trabajo del LED será como se describe a continuación:
El Buzzer del terminal Flexy2 Online KXP se puede controlar desde el Host mediante la instrucción
InOutBuzzerOperate, pero también los módulos Mifare y TTL del propio terminal pueden activarlo de forma
autónoma, si así se ha definido por configuración. Siempre que el buzzer reciba una instrucción cuando todavía no
ha terminado la ejecución de la anterior, esta se cancelará y prevalecerá siempre la última orden recibida, ya
provenga del Host o de los módulos internos.
En los métodos y eventos de la librería KProduct, nos referiremos al único buzzer del terminal mediante el índice
ucBuzzerNum igual a 0.
La activación del buzzer se controla mediante dos parámetros, ucMode y ucTime_ds, cuyos valores se pueden
consignar tanto en el método InOutBuzzerOperate para el control online del buzzer, como en la configuración de
los módulos internos para que puedan usarlo de forma autónoma.
El parámetro ucMode permite elegir entre un pitido fijo o una sucesión de bips. Según sea el valor consignado el
ciclo de trabajo del buzzer será como se describe a continuación:
El relé del terminal Flexy2 Online KXP se controla exclusivamente mediante comandos enviados por el Host. Para
ello la librería KProduct dispone de los métodos InOutRelayOperate, InOutRelaySwitchOn y InOutRelaySwitchOff.
Nos referiremos al único relé del terminal mediante el índice ucRelayNum igual a 0.
La conmutación del relé se controla mediante dos los dos parámetros del método, ucMode y ucTime_ds.
El parámetro ucMode permite elegir entre activar el relé o cancelar una conmutación en curso. Según sea el valor
consignado tendremos:
0- Apagado (sirve para cancelar una instrucción previa).
1- Activado.
El terminal Flexy2 Online KXP dispone de dos entradas digitales numeradas como 0 y 1. La número 0 está
conectada al sistema anti-tamper. Su activación permite detectar la apertura de la carcasa del equipo. La entrada
digital número 1 es de propósito general, y se activa cuando se cortocircuita a masa.
Mediante la instrucción InOutDigitalInputGet se puede conocer en todo momento el valor de ambas entradas
digitales. Además, configurando adecuadamente el parámetro CFG3_PAR_DIN_ECHO, el módulo InOut
informará de los cambios de estado, evitando la necesidad de polling.
El módulo TTL del terminal Flexy2 online KXP dispone de un puerto de entrada configurable como Clock & Data o
Wiegand, permitiendo la conexión de una variedad de lectores externos tales como lectores de RF de 125KHz,
lectores de tarjeta chip, banda magnética.
Las opciones Wiegand 26 bits y Wiegand 34 bits, sólo admiten tramas de la longitud indicada. Mientras que la
opción Wiegand Free permitirá la recepción de tramas de longitudes variables, comprendidas entre 3 y 320 bits.
En todos los casos se efectuará el control de paridad con el primer y último bits de la trama, y se considerará que
la información de la trama es el número binario comprendido entre los bits extremos.
Tanto en caso de lectura correcta, como si se ha recibido una trama incorrecta, es posible configurar el terminal
Flexy2 online KXP para que señalice sendas condiciones mediante destellos del LED tricolor y pitidos del buzzer.
El módulo Mifare del terminal Flexy2 Online permanece en reposo mientras el valor del parámetro de
configuración CFG3_PAR_MIF_MODE tome el valor 0x00. Cuando se configura un valor entre 0x01 y 0x04, el
lector se activa, de forma que al aproximar un tag se informará a la aplicación mediante el evento OnMifareTrack.
Según sea el valor configurado, el programador podrá elegir el tipo de información que recibirá la aplicación.
Si el parámetro de configuración CFG3_PAR_MIF_MODE toma el valor 0x01 (valor por defecto), el evento
OnMifareTrack informará sobre el ATQA, el tipo y el UID del tag.
Los 4 primeros dígitos hexadecimales de la información del evento corresponden a los dos bytes del ATQA.
Siguen 2 dígitos hexadecimales más para informar sobre el tipo de tag según la siguiente codificación:
00 - MIFARE_MINI
01 - MIF_MIFARE_ULTRALIGHT
02 - MIF_MIFARE_CLASSIC_1K
03 - MIF_MIFARE_CLASSIC_4K
04 - MIF_MIFARE_PLUS_2K
05 - MIF_MIFARE_PLUS_4K
06 - MIF_TAG_ISO14443_4
FF -MIF_TAG_UNKNOWN
Los siguientes dos valores admitidos por el parámetro de configuración CFG3_PAR_MIF_MODE se utilizan para
configurar lecturas automáticas de tags de tipo MIFARE.
Especificando el valor 0x02, el evento devolverá 32 dígitos hexadecimales con el contenido del bloque del tag
cuyo número se halla configurado en el parámetro CFG3_PAR_MIF_BLOCK_NUMBER.
Y si toma el valor 0x03, el evento devolverá una cadena de 96 dígitos hexadecimales con el contenido de los tres
primeros bloques del sector al que pertenece el bloque configurado en CFG3_PAR_MIF_BLOCK_NUMBER.
Algunas tarjetas MIFARE (como la tarjeta MIFARE 1K o 4K), están organizadas por sectores cuyas condiciones
de acceso están reguladas por unas claves criptográficas que se conocen como Key A y Key B. Si se ha
configurado el evento OnMifareTrack para que realice la lectura automática de un bloque o un sector, el módulo
Mifare deberá pasar con éxito un proceso de autenticación que lleva a cabo el comando Mifare LOGIN. En cambio
otras tarjetas como la UltraLight, no poseen este sistema de protección de acceso a bloques y, consecuentemente
no admiten ni requieren Login.
El último valor admitido por el parámetro de configuración CFG3_PAR_MIF_MODE se utiliza para configurar la
lectura automática de tags de tipo DESFIRE EV1.
Así, especificando el valor 0x04, el módulo Mifare procederá del siguiente modo. En primer lugar seleccionará una
aplicación del tag DESFIRE cuyo identificador es AID, un número de tres bytes. A continuación, si
CFG3_PAR_MIF_KEY_AB es 0x00 realizará una autenticación ISO mediante la clave nº 0 KEY24, una key de tipo
3KTDES compuesta por 24 bytes. Si CFG3_PAR_MIF_KEY_AB es 0x01 realizará una autenticación NAT
mediante la clave nº 0 KEY16, una key de tipo 2KTDES compuesta por 16 bytes.Una vez superado el proceso de
autenticación, accederá al fichero cuyo identificador es FID, un número de un byte. Empezará la lectura del fichero
por una cierta posición que llamaremos “F_Offset” y a partir de esta posición extraerá un conjunto de bytes de una
cierta longitud “F_Length”. Finalmente se generará el evento OnMifareTrack, en cuyo parámetro sTrack devolverá
una cadena de dígitos hexadecimales representando los datos leídos.
La parametrización necesaria para la lectura automática de los tags DESFIRE se encuentra almacenada en
CFG3_PAR_MIF_KEY_AB y en la zona de memoria de claves Mifare según el siguiente formato:
Los 24 bytes de las claves 20, 21, 22 y 23 se utilizan para almacenar la KEY24.
Los 16 primeros bytes de las claves 20, 21, y 22 se utilizan para almacenar la KEY16.
Después de la lectura, además de lanzar el evento OnMifareTrack, el módulo Mifare puede señalizar mediante su
led tricolor y buzzer si la lectura ha sido correcta o no.
El evento OnMifareTrack marca el inicio de una sesión de trabajo sobre el tag. La duración mínima de la sesión
está definida en el parámetro de configuración CFG3_PAR_MIF_INTER_INSTRUCTION_TMO_10ms y vale por
defecto 1 segundo. Durante este tiempo el módulo Mifare espera la primera instrucción del Host para el procesado
del tag. Tras cada instrucción, la duración de la sesión se reestablece, de forma que el Host puede prolongar el
procesado del tag tanto como sea necesario, siempre que las distintas instrucciones que compongan la
intervención sobre el tag estén espaciadas por un tiempo inferior al establecido.
Para operar, el Host debe tener presente que el tag se encuentra ya seleccionado mediante el comando Mifare
SELECT que se ha enviado automáticamente. Además, si el evento OnMifareTrack se configuró para leer un
bloque o sector, también estará accesible dicha zona de memoria, no siendo preciso emitir el comando Mifare
Tras el envío de la última instrucción y tan pronto como se agote el tiempo de espera de instrucciones, el módulo
Mifare dará por terminada la sesión de trabajo emitiendo automáticamente el comando Mifare HALT, y retomará la
exploración de nuevos tags por espacio de CFG3_DEF_MIF_KEEP_FIELD_ON_TIME_ds décimas de segundo.
Si los hubiera, el proceso descrito se repetiría con un nuevo evento OnMifareTrack. Si no los hay, el lector
desconectará el campo y lo mantendrá inactivo durante un tiempo especificado en el parámetro
F3_CFG3_DEF_MIF_FIELD_OFF_DURATION_10ms para ahorro de energía. Transcurrido ese tiempo
reanudará la exploración activando de nuevo el campo.
Para aquellas aplicaciones en que dos o más tags estén simultáneamente presentes en el campo, y tras procesar
uno de ellos se desee explorar el siguiente de forma inmediata, se podrá mandar el comando Mifare HALT para
dar por terminada la sesión, sin necesidad de esperar que se agote el tiempo de espera, y recibir a continuación el
evento OnMifareTrack correspondiente al siguiente tag. Una vez procesado el último tag, se podrá mandar el
comando Mifare WUPA para despertar a todos los tags, y retomar de forma inmediata la exploración.
El módulo Mifare cuenta con una memoria EEPROM destinada a almacenar 24 claves criptográficas de 6 bytes.
Estas claves se podrán usar indistintamente para realizar el LOGIN automático, o el LOGIN instruido por el Host, y
se indicarán en ambos casos mediante su índice, un número comprendido entre 0 y 23.
Tanto las claves criptográficas como la información almacenada en los parámetros de configuración
CFG3_PAR_MIF_BLOCK_NUMBER, F3_CFG3_PAR_MIF_LOGIN_MODE, F3_CFG3_PAR_MIF_KEY_AB y
F3_CFG3_PAR_MIF_KEY_NUMBER se considera información sensible relativa a la seguridad de la aplicación.
Por ello el módulo Mifare dispone de un sistema de protección de lectura y escritura cuyo funcionamiento puede
configurarse eligiendo adecuadamente el valor del Security Level, entre los tres posibles 0,1 y 2.
Si se elige el valor:
0:
Las Claves Mifare no se pueden leer, pero pueden escribirse y reescribirse libremente.
Los parámetros de configuración mencionados pueden leerse y escribirse libremente.
1: Ninguna de las zonas protegidas puede leerse ni escribirse, pero se permite el paso al nivel de
seguridad 0, siempre que se supere el criterio de acceso que se detallará más adelante, con un
máximo de 3 intentos. En caso de agotar todos los intentos disponibles, el lector pasará
automáticamente al nivel de seguridad 2.
2: En este nivel no es posible ni leer ni escribir ninguna de las zonas protegidas. El paso al nivel de
seguridad 0 está permitido, pero implicará el borrado de las claves Mifare.
Tenga en cuenta que la protección contra escritura de los parámetros de configuración relacionados, afecta
también a la instrucción de restablecimiento de los valores de fábrica por defecto.
Para revertir la situación y pasar del nivel de seguridad 1 al 0, bastará invocar al mismo método e indicar en el
parámetro ucKeyNumber el índice de la Clave Mifare almacenada en EEPROM que actúa como password, así
como el contenido de dicha clave.
El módulo controlador FIM del terminal Flexy2 Online KXP permite gestionar un lector biométrico conectado al
puerto serie RS-232 del conector J5. Configurando el valor 0x02 en el parámetro CFG3_PAR_UART1_MODE, el
módulo FIM se activa quedando asociado a dicho puerto. Los métodos y eventos de la librería KProduct se
referirán al sensor con el índice ucFimNum igual a 0.
Los sensores soportados son los FIM de Nitgen, modelos FIM5360, FIM4060 y FIM6060. El modelo concreto
conectado se puede consultar a través del método FimGetDeviceInfo, que proporcionará la numeración
correspondiente. Igualmente puede conocerse la versión del firmware del sensor invocando el método
FimGetFirmwareVersion.
Durante la inicialización, el módulo controlador FIM intentará establecer contacto con el sensor biométrico, y lo
configurará para que el modo de operación no use ninguna emulación (Emulation None), y la velocidad de las
comunicaciones serie sea la establecida en el parámetro de configuración
CFG3_PAR_FIM_OPERATING_BAUD_RATE.
A continuación el módulo FIM estará ya preparado para recibir instrucciones del Host, y mientras esté a la espera,
mantendrá la vigilancia del sensor para avisar al Host mediante el evento OnFimFinger en cuanto detecte la
presencia de una huella.
Puede invocar al método FimGetTemplate para que el sensor devuelva los datos de la huella, conocidos como
“template”. Y luego comparar dicho template con los almacenados en la base de datos del Host usando los
motores de búsqueda que proporciona Nitgen (eNSearch y eNBSP) para así identificar al usuario.
El sensor biométrico dispone también de una base de datos interna para el almacenaje de templates así como de
un motor de búsqueda integrado, lo que abre nuevas posibilidades de uso. Para grabar los templates de los
usuarios en la base de datos interna debe usarse el método FimAddUser. Esta instrucción permite asociar hasta
dos huellas por usuario. Si lo desea, puede comprobar la existencia de un cierto template para un usuario
determinado con el método FimVerifyUser. Esto, junto con las instrucciones FimGetNumberOfUsers, DeleteUser y
DeleteAllUsers, permiten la gestión completa de la base de datos del sensor. Tenga presente que para ejecutar la
mayoría de las operaciones de mantenimiento de la base de datos, el sensor debe encontrarse en modo “master”,
lo que se consigue con la instrucción FimEnterMasterMode2. La vuelta al modo normal se efectúa con el método
FimLeaveMasterMode.
Con la base de datos del sensor correctamente informada, al detectar un dedo se puede solicitar al sensor que
compare el template leído con los grabados en su propia base de datos. Este es el propósito de la instrucción
FimIdentifyUser. De esta forma se podrá identificar al usuario mediante su número sin necesidad de transmitir los
datos del template.
En algunas aplicaciones puede ser interesante usar conjuntamente el módulo Mifare y el módulo de control del
FIM. Así, mediante la lectura del tag de un cierto usuario es posible conocer de antemano el número de
correspondiente a dicho usuario, de forma que al detectar su dedo se pueda instruir al lector para que compare el
template leído con los almacenados en su base de datos para dicho usuario. De este modo, el motor de búsqueda
no tiene que rastrear la base de datos entera, sino sólo el registro correspondiente a un solo usuario.
Data 31/03/2017 Pàgina 18 de
47
Los sistemas de identificación combinados son también muy útiles cuando las huellas están almacenadas en la
base de datos del Host. En ese caso, la identificación del usuario previa a la identificación de la huella permite al
Host recuperar el template correspondiente a ese usuario y solicitar al sensor biométrico que compare dicho
template con la huella actualmente presente en el sensor. Esto puede hacerse invocando al método
FimInstantMatching, el cual permite usar el motor de búsqueda del propio sensor para comparar la huella presente
con los datos almacenados en el Host. Esta operativa permite centralizar la base de datos de templates en el Host
y no requiere que este disponga de ningún motor de búsqueda.
Dado que algunos tipos de tags, como las tarjetas Mifare Classic, tienen capacidad para almacenar el template
completo, es también posible usar el terminal Flexy2 Online KXP para leer el template contenido en el tag, y luego
comparar los datos recuperados con el template correspondiente al dedo físicamente situado sobre el sensor.
Este modelo de uso, conocido como Match-on-Card permite que la información biométrica esté almacenada
exclusivamente en la tarjeta del usuario, lo que hace que este tipo de identificación resulte muy apropiado para
cumplir con ciertas legislaciones de protección de datos.
Para aplicaciones especiales en las que se precisa que el sensor ejecute comandos para los que la librería
KProduct no dispone de métodos específicos, se puede recurrir a la instrucción genérica FimTransceive. Este
método y su correspondiente evento establecen una pasarela que permite el envío de tramas Nitgen de hasta 900
bytes de datos. Con el manual del sensor biométrico en mano es posible determinar la trama necesaria para
ejecutar los comandos especiales, así como interpretar las tramas de respuesta a los mismos.
El módulo SFG (Serial Frame Generator) del terminal Flexy2 Online KXP captura la información obtenida por
módulos como el TTL, MIF y el Uart-IO, y a partir ésta es capaz de generar y enviar tramas serie a través de la
conexión serie RS-232. De este modo, el terminal Flexy2 Online puede emular el funcionamiento de una gran
variedad de lectores serie, permitiendo fácilmente la integración con sistemas de identificación ya existentes.
Para que el módulo SFG envíe las tramas generadas por el puerto serie SCI0 se deberá asignar este puerto al
módulo SFG mediante el parámetro CFG3_PAR_UART0_MODE, en cuyo caso la velocidad de comunicación será
la configurada por el parámetro CFG1_PAR_SCI0_BAUD. Si se desea que el módulo SFG use el puerto SCI1,
habrá que configurar adecuadamente los parámetros CFG3_PAR_UART1_MODE y CFG1_PAR_SCI1_BAUD.
En caso de asignar ambos puertos al módulo SFG, éste sólo accederá al SCI0.
Cuando los módulos TTL, MIF y Uart-IO completan una lectura y envían los datos mediante los eventos
OnTtlTrack, OnMifareTrack y OnUartReceive, sus parámetros ucTrackType, sTrack y sData se direccionan
también al módulo SFG para que pueda tratarlos. En la configuración del módulo SFG existe un conjunto de
parámetros para cada origen de la información (módulos TTL, MIF y Uart-IO) que le indican cómo tratar la
información de cada fuente. El primero de dichos parámetros es SFG_module_MODE, dónde “module” indica el
módulo fuente (TTL, MIF o Uart-IO). Éste parámetro desactiva el tratamiento de la información para la fuente en
cuestión, o activa el procesado estándar. En el caso de los orígenes TTL y MIF, el primer paso del procesado
consiste en construir una subcadena de SFG_module_SRC_LEN bytes a partir del offset indicado por
SFG_module_SRC_OFFSET. Estos datos se trasladarán a la trama serie en formato Binario, Ascii-Hex o Ascii-
Dec, a los que a demás se podrán añadir caracteres de inicio y fin de trama así como controles de redundancia
cíclica CRC. Consulte el apartado de configuración del módulo SFG para mayor detalle. Cuando la fuente es el
módulo el Uart-IO, entonces la trama de salida del módulo SFG es exactamente la información de origen.
Data 31/03/2017 Pàgina 19 de
47
4.6 MÓDULO UART-IO (PUERTO SERIE TRANSPARENTE)
El módulo Uart-IO del terminal Flexy2 Online KXP permite que sus puertos serie reciban y envíen datos sin
necesidad de conocer el formato concreto de los mismos, lo que permite el control de una gran variedad de
dispositivos serie.
Para vincular el módulo Uart-IO con el puerto serie SCI0 se deberá asignar este puerto al módulo Uart-IO
mediante el parámetro CFG3_PAR_UART0_MODE, en cuyo caso la velocidad de comunicación será la
configurada por el parámetro CFG1_PAR_SCI0_BAUD. Si se desea que el módulo Uart-IO esté vinculado al
puerto SCI1, habrá que configurar adecuadamente los parámetros CFG3_PAR_UART1_MODE y
CFG1_PAR_SCI1_BAUD. El módulo Uart-IO puede gestionar ambos puertos simultáneamente, si así se
configura.
Para enviar datos bastará con invocar el método UartSend, indicando el número de puerto por el que se desea
operar en el parámetro ucUartNum. Los datos a enviar se consignarán en el parámetro sData como una cadena
de caractéres de hasta 900 bytes de longitud. Al recibir datos, se mandarán al Host por medio del evento
OnUartReceive. Como máximo, el evento devolverá una cadena de 60 bytes. En caso de que los bytes recibidos
excedan esta longitud, se recibirán varios disparos del mismo evento. Será responsabilidad del programa del Host
concatenar los datos recibidos.
Los parámetros almacenados en las tres zonas descritas (salvo los definidos como sólo lectura) se pueden
escribir con el método WriteCFG, y pueden leerse (salvo los protegidos contra lectura) usando ReadCFG. Usando
la instrucción ReadCFG, se pueden leer hasta 32 valores a la vez.
La tecnología EEPROM tiene una vida limitada entorno a los 10.000 ciclos de escritura. Téngalo en cuenta para
que la aplicación modifique la configuración sólo en los casos en que sea estrictamente necesario.
Aunque algunos parámetros de configuración puedan surtir efecto inmediato, en la mayoría de casos los cambios
se aplicarán en el momento del reset del equipo, por lo que se recomienda enviar la instrucción HotReset tras
modificar los parámetros de configuración.
Parámetro CFG1_PAR_RESERVED_0000../..000F
Descripción Reservado.
Valores Reservado.
Parámetro CFG1_PAR_SCI0_BAUD
Parámetro CFG1_PAR_SCI1_BAUD
Parámetro CFG1_PAR_RESERVED_0014../..003F
Descripción Reservado.
Valores Reservado.
Parámetro CFG2_PAR_RESERVED_0000
Descripción Reservado.
Valores Reservado.
Descripción Estos parámetros, contienen los cuatro bytes, que indican la máscara
de la red local.
Parámetro CFG2_PAR_RESERVED_0011../..0012
Descripción Reservado.
Valores Reservado.
Descripción Estos parámetros, contienen los dos bytes, que indican el número de
puerto del servicio UDP-KXP.
Parámetro CFG2_PAR_DHCP_SERVICE
Parámetro CFG2_PAR_RESERVED_0016../..003F
Descripción Reservado.
Valores Reservado.
Parámetro CFG3_PAR_RESERVED_0000
Descripción Reservado.
Valores Reservado.
Parámetro CFG3_PAR_HOST_FE
Parámetro CFG3_PAR_UART0_MODE
Parámetro CFG3_PAR_UART1_MODE
Parámetro CFG3_PAR_DIN_ECHO
Descripción Permite configurar para cada una de las dos entradas digitales si el
terminal Flexy2 Online KXP debe informar al Host a través del evento
OnInOutDigitalInputGetEcho de los cambios en las entradas.
Parámetro CFG3_PAR_TTL_MODE
Parámetro CFG3_PAR_TTL_MULTILEC_ENABLED
Parámetro CFG3_PAR_TTL_MULTILEC_LATENCY_ds
Parámetro CFG3_PAR_TTL_READ_OK_LED_MODE
Descripción Configura el modo de encendido del LED para la lectura correcta del
módulo TTL, (ciclo de trabajo).
Parámetro CFG3_PAR_TTL_READ_OK_LED_COLOR
Descripción Configura el color del LED para la lectura correcta del módulo TTL.
Parámetro CFG3_PAR_TTL_READ_OK_LED_TIME_ON_10ms
Descripción Configura el tiempo de encendido del LED para la lectura correcta del
módulo TTL, en unidades de 10ms.
Parámetro CFG3_PAR_TTL_READ_FAIL_LED_MODE
Descripción Configura el modo de encendido del LED para la lectura errónea del
módulo TTL, (ciclo de trabajo).
Parámetro CFG3_PAR_TTL_READ_FAIL_LED_COLOR
Descripción Configura el color del LED para la lectura errónea del módulo TTL.
Parámetro CFG3_PAR_TTL_READ_FAIL_LED_TIME_ON_10ms
Descripción Configura el tiempo de encendido del LED para la lectura errónea del
módulo TTL, en unidades de 10ms.
Parámetro CFG3_PAR_TTL_READ_OK_BZZ_MODE
Parámetro CFG3_PAR_TTL_READ_OK_BZZ_TIME_ON_10ms
Parámetro CFG3_PAR_TTL_READ_FAIL_BZZ_MODE
Parámetro CFG3_PAR_TTL_READ_FAIL_BZZ_TIME_ON_10ms
Parámetro CFG3_PAR_MIF_MODE
Parámetro CFG3_PAR_MIF_BLOCK_NUMBER
Valores 0x00 … 0xFF, consultar el mapa de memoria del tag. Por ejemplo en
una tarjeta MIFARE estándar de 1kB tiene 16 sectores x 4 bloques,
es decir un total de 64 bloques.
Parámetro CFG3_PAR_MIF_LOGIN_MODE
Parámetro CFG3_PAR_MIF_KEY_AB
Parámetro CFG3_PAR_MIF_KEY_NUMBER
Parámetro CFG3_PAR_MIF_READ_OK_LED_MODE
Descripción Configura el modo de encendido del LED para la lectura correcta del
módulo Mifare, (ciclo de trabajo).
Parámetro CFG3_PAR_MIF_READ_OK_LED_COLOR
Descripción Configura el color del LED para la lectura correcta del módulo Mifare.
Parámetro CFG3_PAR_MIF_READ_OK_LED_TIME_ON_10ms
Descripción Configura el tiempo de encendido del LED para la lectura correcta del
módulo Mifare, en unidades de 10ms.
Parámetro CFG3_PAR_MIF_READ_FAIL_LED_MODE
Descripción Configura el modo de encendido del LED para la lectura errónea del
módulo Mifare, (ciclo de trabajo).
Parámetro CFG3_PAR_MIF_READ_FAIL_LED_COLOR
Descripción Configura el color del LED para la lectura errónea del módulo Mifare.
Parámetro CFG3_PAR_MIF_READ_FAIL_LED_TIME_ON_10ms
Descripción Configura el tiempo de encendido del LED para la lectura errónea del
módulo Mifare, en unidades de 10ms.
Parámetro CFG3_PAR_MIF_READ_OK_BZZ_MODE
Parámetro CFG3_PAR_MIF_READ_OK_BZZ_TIME_ON_10ms
Parámetro CFG3_PAR_MIF_READ_FAIL_BZZ_MODE
Parámetro CFG3_PAR_MIF_READ_FAIL_BZZ_TIME_ON_10ms
Parámetro CFG3_PAR_MIF_INTER_INSTRUCTION_TMO_10ms
Valores 0x14..0xFF
Parámetro CFG3_PAR_MIF_FIELD_OFF_DURATION_10ms
Valores 0x14..0xFF
Parámetro CFG3_PAR_MIF_KEEP_FIELD_ON_TIME_ds
Valores 0x02..0xFF
Parámetro CFG3_PAR_MIF_RX_GAIN
Valores 0x00..0x07
Parámetro CFG3_PAR_FIM_OPERATING_BAUD_RATE
Parámetro CFG3_PAR_SFG_MIF_MODE
Parámetro CFG3_PAR_SFG_MIF_SRC_LEN
Parámetro CFG3_PAR_SFG_MIF_SRC_OFFSET
Descripción Especifica el offset a partir del que el módulo SFG tomará los datos
proporcionados por el módulo MIF.
Parámetro CFG3_PAR_SFG_MIF_LEADBYTE
Valores 0x00..0xFF.
Parámetro CFG3_PAR_SFG_MIF_TRAILBYTE
Valores 0x00..0xFF.
Parámetro CFG3_PAR_SFG_MIF_STD_FORMAT_H
Parámetro CFG3_PAR_SFG_MIF_STD_FORMAT_L
Parámetro CFG3_PAR_SFG_TTL_MODE
Parámetro CFG3_PAR_SFG_TTL_SRC_LEN
Parámetro CFG3_PAR_SFG_TTL_SRC_OFFSET
Descripción Especifica el offset a partir del que el módulo SFG tomará los datos
proporcionados por el módulo TTL.
Parámetro CFG3_PAR_SFG_TTL_LEADBYTE
Valores 0x00..0xFF.
Parámetro CFG3_PAR_SFG_TTL_TRAILBYTE
Valores 0x00..0xFF.
Parámetro CFG3_PAR_SFG_TTL_STD_FORMAT_H
Parámetro CFG3_PAR_SFG_TTL_STD_FORMAT_L
Parámetro CFG3_PAR_SFG_UIO0_MODE
Parámetro CFG3_PAR_SFG_UIO1_MODE
A continuación se ofrece información útil sobre las tarjetas más comunes para facilitar su tratamiento con el
terminal terminal Flexy2 Online KXP
La tarjeta MIFARE 1K es la más habitual. Dispone de un UID de 4 bytes (Cascade Level = 1) y de 1 kByte de
memoria organizado en 16 sectores x 4 bloques x 16 bytes.
Cada sector dispone de su propia clave de login. Para acceder a dichos bloques (instrucciones tipo ReadBlock y
WriteBlock), hay que numerarlos de forma correlativa, empezando por el 0 y hasta el 63 (correspondiente al
bloque 3 del sector 15).
Esta tarjeta soporta todas las operaciones definidas en MIFARE: Login, BlockRead, BlockWrite, ValueIncrement,
ValueDecrement, ValueRestore. Además, el módulo Mifare del terminal Flexy2 permite otras operaciones (por
ejemplo, SectorRead) que son combinaciones de varias operaciones elementales, para mayor comodidad del
programador.
La tarjeta MIFARE 4K es la de mayor capacidad. Dispone de un UID de 4 bytes (Cascade Level = 1) y de 4 kBytes
de memoria.
Los 2 kBytes inferiores están organizado en 32 sectores x 4 bloques x 16 bytes, de modo totalmente compatible
con la estructura de datos de la tarjeta MIFARE 1K. Cada sector de 4 x 16 bytes dispone de su propia clave de
login. Los 2 kBytes superiores se organizan en 8 sectores x 16 bloques x 16 bytes, cada sector con su propia
clave de login. Para acceder a dichos bloques (instrucciones tipo BlockRead y BlockWrite), hay que numerarlos de
forma correlativa, de modo que:
Esta tarjeta soporta todas las operaciones definidas en MIFARE: Login, BlockRead, BlockWrite, ValueIncrement,
ValueDecrement, ValueRestore. Además, el módulo Mifare del terminal Flexy2 permite otras operaciones (por
ejemplo, SectorRead) que son combinaciones de varias operaciones elementales, para mayor comodidad del
programador.
La tarjeta MIFARE Light es una versión muy reducida de la tarjeta MIFARE CLASSIC 1K. Dispone de un UID de 4
bytes (Cascade Level = 1) y de 384 bits (48 bytes) de memoria organizada en 12 páginas x 4 bytes. Las
operaciones disponibles tienen las siguientes particularidades:
La tarjeta MIFARE UltraLight está orientada a aplicaciones de transporte. Dispone de un UID de 7 bytes (Cascade
Level = 2) y de 512 bits (64 bytes) de memoria organizada en 16 páginas x 4 bytes.
La página 3 consta de 32 bits (4 bytes) OTP (escritura una sola vez): a partir de un valor de fábrica $0000_0000,
los bits se pueden escribir a 1, y nunca más vuelven a 0. Ello permite hasta 32 operaciones de validación de
tiquet.
La tarjeta MIFARE DESFire es una tarjeta de alta seguridad gracias a su sistema de encriptación DES/3DES.
Dispone de un UID de 7 bytes (Cascade Level = 2) y de 4 kBytes de memoria.
Existen dos tipos de tarjetas DESfire, EV1 y EV2. El terminal Flexy puede manipular las tarjetas EV1, pero no
puede realizar operaciones de lectura y escritura sobre tarjetas EV2. Sin embargo, será perfectamente posible
obtener el ATQA y el UID, ya que en lo referente a los protocolos de inicialización y anticolisión, las tarjetas
DESfire EV2 cumplen con la parte 3 de la ISO 14443A. Esta funcionalidad, aunque limitada suele ser suficiente
para una aplicación de control de accesos y/o presencia.
Versión 1.02 18 Noviembre 2016 Inclusión nuevas instrucciones para LED’s i Relés
Versión 1.04 19 Diciembre 2016 Inclusión módulo Uart-IO. Modificación módulo SFG.
Los módulos biométricos FIM y los softwares eNBSP y eNSearch, son productos de Nitgen Co., Ltd.
El protocolo MIFARE es una marca registrada de NXP.