Professional Documents
Culture Documents
Sistema de Autenticacin Biomtrica de Huella Dactilar asistido por Interfaz de Voz para el Control de Accesos
AUTOR: D. JUAN JOS GARCA GARRIGS DIRECTORES: D. CARLOS FERRER ZAERA D. JESS SORET MEDEL
Vocal 2:
Vocal 3:
ndice
Resumen. Nota del Autor. 1. Introduccin. V VII 1
2. Estudios Preliminares. 2.1. Introduccin a los Sistemas de Autenticacin Biomtrica de Huella Dactilar y Reconocimiento de Voz. 2.1.1. Autenticacin Biomtrica de Huella Dactilar.
7 7
2.1.2 Reconocimiento de Voz. . 12 2.2. Opciones de Integracin. Tecnologas de Autenticacin Biomtrica de Huella Dactilar y Reconocimiento de Voz. . 14 2.3. Seleccin de los Sistemas de Autenticacin Biomtrica de Huella Dactilar y Reconocimiento de Voz. . 17
3. Arquitectura.
25
3.1. Diseo Hardware del Dispositivo Controlador de Acceso. . 25 3.1.1. Microcontrolador del Sistema (mC) / Procesador de Voz. .. 27 3.1.2. Memoria de Programa y Datos del Sistema. 28 3.1.3. Mdulo de Autenticacin por Huella Dactilar. Comunicacin Interna y Externa. . 30 3.1.4. Compatibilidad entre Componentes Digitales. Niveles Lgicos. .. 37 3.1.5. Entrada y Salida de Audio. .. 41 3.1.6. Seales de Control de Puerta de Acceso. . 43 3.1.7. Alimentacin y Consumo de Corriente del Dispositivo. . 45
3.2. Infraestructura de la Red de Terminales de Control de Acceso Biomtrico. . 47 3.2.1. Capa Fsica de la Red. Protocolo RS-485. .. 3.2.2. Estructura y Caractersticas de la Red tCAB. . 47 48
57
4.1. Funcionamiento del Controlador de Acceso Biomtrico. 57 4.1.1. Funcionamiento Normal del Controlador de Acceso. .. 61 4.1.2. Configuracin del Controlador de Acceso. .. 66 4.2. Programa del Controlador de Acceso Biomtrico (Firmware). .. 78 4.2.1. Estructura y Archivos del Firmware. 78 4.2.2. Descripcin del Programa Principal. Flujogramas. .. 83 4.2.3. Protocolos de Comunicacin: Protocolo de Comandos del Mdulo de Autenticacin Biomtrica y Protocolo de Enlace de Red tCAB. . 102 4.2.4. Mapa de Memoria y Programacin del Dispositivo. . 123 4.3. Aplicacin de Gestin de la Red tCAB. ... 126 4.3.1. Dilogo de Autenticacin del Administrador por Huella Dactilar. 128 4.3.2. Panel Principal. .. 129 4.3.3. Dilogos Asociados a Operaciones sobre los Terminales. 137 4.3.4. Dilogos Asociados a Operaciones sobre los Usuarios. 140 4.3.5. Otras Ventanas de Dilogo. ... 144
147
5.1. Pruebas de los Prototipos del Controlador de Acceso. . 147 5.2. Pruebas de la Red tCAB. .. 153 5.3. Conclusiones. 154
II
161
C.1. Mensajes de Voz del Dispositivo tCAB. . 161 C.2. Vocabularios del Dispositivo tCAB. 165
III
Resumen
En este Proyecto de Ingeniera realizado para la empresa Fermax Electrnica S.A.E., se presenta el desarrollo de un sistema electrnico digital para el control de accesos basado en la tecnologa de autenticacin biomtrica de huella dactilar. Este sistema pretende facilitar el acceso a inmuebles de los usuarios, que, en lugar de las clsicas llaves u otros objetos con la misma funcin, slo tendrn que desplazar su dedo sobre un lector de huella dactilar para poder abrir la puerta, despus de su autenticacin como usuario autorizado. De este modo, tambin se incrementar la seguridad del acceso en muchos aspectos, al ser la huella dactilar mucho ms difcil de duplicar que otros objetos llave. En una primera fase del proyecto, se dise un dispositivo controlador de acceso en el que se dispone de los modos de autenticacin de identificacin y verificacin del usuario mediante su huella dactilar, la cual ser capturada por un lector de huella trmico por desplazamiento. En todo momento este dispositivo ejercer el control de la puerta de acceso, y en caso de autenticacin positiva de un usuario le permitir acceder al inmueble abriendo la puerta. En la memoria del dispositivo habr capacidad para, aproximadamente, 1000 usuarios, los cuales registrarn sus huellas para poder ser autenticados posteriormente. Esta operacin, al igual que la de borrar, o dar de baja al usuario, adems de otras opciones de configuracin del controlador de acceso, se podrn realizar gracias a un men de opciones entre las que se encuentran las mencionadas, y que solamente ser accesible para la persona registrada como administrador del sistema. En consecuencia, el dispositivo podr funcionar de forma totalmente autnoma sin depender de otro sistema externo para realizar dichas operaciones. La interfaz de usuario del dispositivo, adems del lector de huella, est compuesta por una Interfaz de Voz, consistente en la capacidad del dispositivo para reconocer comandos de voz a travs de un micrfono; y, un altavoz que permitir al usuario escuchar mensajes de informacin e indicaciones de uso. Dicha interfaz de voz, desarrollada en castellano e ingls, estar disponible, sobretodo, para navegar por el men de configuracin del dispositivo, aunque tambin ser til en el modo de verificacin de usuario por huella dactilar, donde se requiere al usuario que introduzca su nmero de identificacin personal (PIN) pronunciando los nmeros que lo forman. En la segunda fase del proyecto, se desarroll una red para controlar varias puertas de acceso compuesta por estos dispositivos, ahora como terminales de control de acceso biomtrico (tCAB), y que ser gestionada desde una aplicacin sobre PC, mediante un protocolo de comunicaciones especfico.
VII
Captulo 1
Introduccin
1.1. Objetivos.
En esta memoria se describe y detalla el proyecto de ingeniera en el que se desarrolla e implementa una red de dispositivos para el control de acceso a inmuebles o estancias gestionada mediante una aplicacin sobre PC. Donde, cada dispositivo controla independientemente el acceso mediante autenticacin biomtrica de huella dactilar y cuya interfaz de usuario, adems del lector de huella, consiste en el reconocimiento de comandos de voz independientes del locutor. Para la realizacin del proyecto se propuso la consecucin de los siguientes objetivos, enmarcados en tres fases:
En una primera fase de desarrollo se plantea el diseo y construccin del prototipo controlador de acceso. ste debe incorporar las siguientes funcionalidades: Autenticacin biomtrica de usuario mediante lector de huella dactilar. Control de la puerta de acceso: actuador (rel) abre-puertas, botn de salida, y sensor de deteccin de puerta abierta. Interaccin con el usuario mediante mensajes de voz pre-grabados y reconocimiento de comandos de voz independientes de locutor que constituyan la interfaz de usuario del dispositivo. Adems, cuando el dispositivo controlador no pertenezca a una red de controladores de acceso, se pretende que funcione de forma totalmente autnoma,
Introduccin
sin necesidad de depender de un sistema central para su gestin. Por tanto, el dispositivo controlador debe disponer de un men de configuracin, que sea de fcil navegacin y que proporcione al dispositivo la suficiente flexibilidad de configuracin para poder funcionar de forma independiente. Este men ser accesible slo para el administrador y sus opciones permitirn: aadir y borrar usuarios, cambiar el administrador y configurar los diferentes parmetros del sistema, como son los tiempos de control de puerta y la seleccin de modos de funcionamiento. La navegacin por este men de configuracin se realizar por medio de la interfaz de voz que, gracias al reconocimiento de comandos de voz permitir seleccionar las diferentes opciones del men y cuyos mensajes pregrabados servirn de gua para el administrador.
Como segunda fase del proyecto se propone desarrollar la red de controladores de acceso. sta ser de tipo centralizado, estar basada en el bus RS-485 y tendr como host central a un PC, donde se ejecutar la aplicacin de gestin de la red de controladores. Para realizar dicha red y permitir la gestin de la misma, debe disearse un protocolo de comunicaciones especfico para este sistema e implementarlo en el firmware del dispositivo controlador. Conjuntamente, para completar el desarrollo del sistema de control de acceso, se planea la realizacin de dicha aplicacin de gestin de la red de controladores. Para su funcionamiento ser necesario un lector de huella, para PC, con el que recoger las huellas dactilares de los usuarios, y en la que habr de implementarse fundamentalmente, una base de datos con todos los usuarios en cada dispositivo de la red y sus caractersticas (nmero de identificacin, nombre, patrones de huella y controladores en los que est autorizado); adems de las siguientes acciones: Aadir y borrar usuarios en la base de datos de la aplicacin. Autorizar y desautorizar el acceso de los mismos en cada controlador. Configurar los diferentes parmetros de cada dispositivo controlador de la red. La aplicacin, y por tanto la red de controladores de acceso, ser gestionada por un grupo limitado de administradores del sistema de los que se almacenarn tambin sus caractersticas incluyendo sus patrones de huella respectivos. El acceso a la misma estar restringido a los administradores del sistema que debern autenticarse antes de comenzar cada sesin de trabajo.
Por ltimo, en la tercera fase, se producir puesta en marcha del sistema de control de accesos, despus de haber construido los prototipos y descargado su firmware. Este sistema consistir en una red integrada por al menos dos prototipos controladores, y estar gestionada por la aplicacin PC desarrollada. Conjuntamente, se verificar el funcionamiento, primero del prototipo y despus de la red, realizando los cambios en el hardware del sistema que sean necesarios, as como la
Introduccin
depuracin del programa del prototipo controlador de acceso y de la aplicacin de gestin de la red.
1.2. Justificacin.
El presente proyecto se enmarca dentro de las actividades del Departamento de Nuevas Tecnologas, cuyo director es el Dr. Carlos Ferrer Zaera, perteneciente a la empresa Fermax Electrnica S.A.E.; y supervisado por el Dr. Jess Soret Medel del Departamento de Ingeniera Electrnica (ETSE) de la Universidad de Valencia. En el Dpto. de Nuevas Tecnologas de Fermax nace el proyecto como una iniciativa para desarrollar un nuevo sistema de control de accesos basado en tecnologa biomtrica de huella dactilar, dentro de la lnea de producto ya existente y cuya responsabilidad recae dentro de este departamento.
Estado del Arte en Sistemas de Control de Accesos Gracias al auge y madurez que ha alcanzado la tecnologa de reconocimiento de huella dactilar, actualmente en el mercado estn empezado a aparecer dispositivos que aplican esta tecnologa biomtrica para autenticar usuarios en el acceso a inmuebles, viviendas u otras estancias. Estos sistemas presentan una mejora de seguridad y comodidad frente a clsicos sistemas de control de accesos, como llaves y tarjetas magnticas o dispositivos emisores de infrarrojos y radiofrecuencia, puesto que el usuario no se necesita ningn objeto llave o dispositivo externo que deba portar para autenticarse y que, adems, pueda extraviar y ser utilizada por otras personas; digamos que el usuario lleva incorporado desde su nacimiento su propia llave, lo cual es la base de la autenticacin en todos los sistemas biomtricos y que evita los problemas mencionados anteriormente. Respecto a otros sistemas que utilizan una interfaz de teclado numrico y una clave de usuario para su autenticacin, esta tecnologa al utilizar la identificacin de la huella dactilar del usuario no es imprescindible emplear una clave que deba ser memorizada por el usuario por lo que es mucho ms cmodo para cualquier persona. Tambin incrementa la seguridad del acceso en cuanto a que la clave, usualmente de 4 dgitos y nica barrera para restringir el acceso, podra ser desvelada mediante muy diversos mtodos; mientras que el patrn de huella o la huella en si, requerira de medios mucho ms sofisticados para ser reproducida y as violar la seguridad del acceso; adems, siempre se podra reforzar la seguridad con una clave de usuario lo que elevara an ms el nivel de seguridad. En este terreno existen ya algunos sistemas de autenticacin de huella dactilar aunque con caractersticas bastante limitadas. Por ejemplo, existen dispositivos de control de acceso que utilizan algn elemento externo y portable para su autenticacin, como tarjetas o llaveros magnticos en los que almacenan el patrn de huella del usuario. stos dispositivos realizan slo una verificacin de la huella introducida en el
Introduccin
lector con la huella del usuario almacenada en el elemento magntico. Tambin hay dispositivos con una memoria interna donde almacenan los patrones de huella de los usuarios, y que realizan una verificacin de la huella del usuario capturada por el lector con la huella indicada mediante una clave de usuario o pin para autenticar su acceso. En ambos casos, estos sistemas utilizan slo la verificacin de la huella del usuario con una huella almacenada, por lo que siempre se necesita algn mtodo extra de pre-identificacin del usuario para poder realizar la autenticacin. La mayora de estos sistemas actuales no realizan una identificacin de usuario, es decir que no realizan una bsqueda o verificacin 1:N en una base de datos de patrones de huella, debido a que ello requiere de un mayor procesado y conlleva unos altos tiempos de respuesta que no son operativos.
Motivacin. Dado el estado de los sistemas de control de accesos en el mercado actual, la motivacin era desarrollar y construir un dispositivo de control de acceso utilizando una tecnologa de reconocimiento de huella dactilar que mejorase las prestaciones de los sistemas de control de accesos existentes en general, y de este modo facilitar el acceso de cualquier persona a diferentes inmuebles, as como aumentar la seguridad en el acceso utilizando dicha autenticacin biomtrica. Se pretenda disear un dispositivo verstil, dirigido tanto al acceso a edificios vecinales, un solo acceso con muchos usuarios; como al acceso a estancias interiores de inmuebles o a diferentes zonas de un recinto industrial, que correspondera al caso de una red de varios accesos, con capacidad tambin para muchos usuarios por acceso. Para ello, en la situacin de un solo acceso, el dispositivo debera poder funcionar autnomamente sin necesidad de instalar una red con un nodo central para gestionarla, y adems disponer de una base de datos grande para los patrones de huella de los usuarios, unido a una autenticacin de usuario que se pudiera realizar mediante el proceso de identificacin de huella dactilar en tiempos razonablemente pequeos y operativos garantizando, adems, una elevada seguridad y fiabilidad en dicho proceso. ste no era el caso de los sistemas ya existentes que deban pertenecer necesariamente a una red o cuyo nmero de usuarios era muy limitado. Para construir la red, en el caso de varios accesos, se pens en desarrollar una aplicacin ejecutada sobre PC que gestionara la red, basada en RS-485, como host o nodo central; pudiendo as escalar la red a las necesidades del entorno y dando al operador o administrador del sistema una herramienta para su gestin, amigable y de fcil uso. Esta escalabilidad del sistema completo, desde el caso de un dispositivo autnomo para el control de un acceso con una instalacin mnima, hasta la instalacin de una red de controladores para muchos accesos; dara una mayor salida al mercado del producto, incrementando as su rentabilidad. Dado el funcionamiento autnomo que el sistema deba poseer, se necesitaba una interfaz de usuario con el dispositivo controlador adecuada, que permitiese realizar las operaciones fundamentales de alta y baja de usuarios, introducir claves auxiliares de acceso, y configurar diversos parmetros del sistema. Era necesario plantearse, por
Introduccin
tanto, cmo se iba a implementar el medio de interaccin con el usuario que, junto con el lector de huella, conformase dicha interfaz de usuario. Se pens en utilizar una interfaz de comandos de voz, que sera posible implementar gracias a la tecnologa de reconocimiento de voz para sistemas embedded o embarcados que existe actualmente. Teniendo en cuenta la motivacin principal, para el desarrollo de este sistema de C.AA., de mejorar la accesibilidad a inmuebles, adems de garantizar un control de acceso seguro, a cualquier persona; este tipo de interfaz de usuario presenta una gran facilidad de uso, en especial para usuarios invidentes, puesto que se establecen dilogos consistentes en mensajes, que guan e indican al usuario en el manejo del dispositivo, y comandos de voz para introducir datos, navegar por el men de configuracin, etc. La interfaz de voz, a parte de suponer un ejemplo de empleo de esta nueva forma de interaccin hombre-mquina, presentaba una ventaja adicional para su eleccin en nuestro dispositivo, como es la de construir un dispositivo ms compacto y modular para su integracin en placas de calle de Fermax, debido a la simplificacin que resulta de sustituir un teclado numrico ms pantalla LCD por dicha interfaz de voz.
1.3. Metodologa.
Para desarrollar este proyecto y conseguir los objetivos mencionados anteriormente, se han realizado las siguientes tareas siguiendo la metodologa clsica de la ingeniera: Estudio, valoracin y eleccin de los componentes principales del dispositivo controlador, como son los elementos de proceso (micro-procesador/es), memoria e interfaz de usuario (lector de huella, micrfono, etc.) que permitan la gestin del sistema, as como la implementacin del reconocimiento de huella dactilar y de comandos de voz independiente del locutor. Y a su vez, definicin de la arquitectura, tanto del dispositivo controlador como de la red de control de accesos. Inicio y desarrollo de modelos preliminares para la estructura del firmware del dispositivo controlador, y pruebas de stos sobre las plataformas hardware de evaluacin de los elementos proceso proporcionadas por los fabricantes. Diseo hardware de la arquitectura de la placa madre del dispositivo controlador.
Diseo del firmware del sistema incluyendo el protocolo de comunicaciones necesario para su funcionamiento en la red de dispositivos controladores gestionada desde un PC. Diseo CAD de la placa de circuito impreso (PCB) y construccin del prototipo del dispositivo controlador.
Introduccin
Ensayos de verificacin del prototipo trabajando en modo autnomo y en modo de red, pruebas del protocolo de comunicaciones con el PC. Depuracin del firmware del sistema y del protocolo de comunicaciones. Desarrollo e implementacin de la aplicacin PC para la gestin de la red de dispositivos controladores de acceso. Puesta en marcha de la red gestionada por la aplicacin desde el PC; pruebas y ajustes finales del sistema completo.
Captulo 2
Estudios Preliminares
En este captulo se explicarn las razones para la eleccin de los componentes o elementos principales y necesarios para el diseo e implementacin de nuestro sistema de control de acceso, descrito en el captulo anterior. En ste se emplean dos tipos de tecnologas, como son la de autenticacin biomtrica de huella dactilar, elemento fundamental de nuestro dispositivo de control de acceso; y la de reconocimiento de voz, que servir para implementar la interfaz de usuario mediante comandos de voz. Aqu se detallarn tambin las caractersticas y parmetros tcnicos de ambas tecnologas, as como del microcontrolador del sistema y necesidades de memoria, lo que vertebrar la arquitectura del dispositivo controlador de acceso.
2.1. Introduccin a los Sistemas de Autenticacin Biomtrica de Huella Dactilar y Reconocimiento de Voz.
2.1.1 Autenticacin Biomtrica de Huella Dactilar [1] [2] [3].
Dentro del campo multidisciplinar del Reconocimiento de Formas destacan las aplicaciones biomtricas que consisten en la medida, el procesamiento y anlisis estadstico de datos identificativos biolgicos de los seres humanos. Un Sistema Biomtrico es esencialmente un sistema de reconocimiento de formas que reconoce a una persona mediante la autenticidad de caractersticas fisiolgicas y/o de comportamiento que posee. Un tema importante en el diseo de sistemas biomtricos es determinar cmo va a ser reconocida cada persona. Dependiendo del contexto de la aplicacin, o de las circunstancias de empleo, un sistema biomtrico puede tener dos modos de operacin, como sistema de verificacin o de identificacin:
Estudios Preliminares
Un Sistema de Verificacin autentica la identidad de la persona comparando la caracterstica biomtrica capturada, con su propio patrn (o patrones) previamente almacenados en el sistema. ste realiza la comparacin uno a uno (1:1) para determinar si la identidad declarada por la persona, normalmente mediante un nmero de identificacin personal o PIN, es cierta. El sistema de verificacin aceptar o rechazar esta afirmacin de identidad para la que (Soy quien digo que soy?). Un Sistema de Identificacin reconoce a una persona a travs de la bsqueda en la base de datos de patrones de una coincidencia con el patrn capturado. ste realiza comparaciones uno a muchos (1:N) para establecer la identidad del sujeto (o el resultado de la bsqueda es negativo si el sujeto no est registrado en la base de datos), en este caso, sin necesidad de que la persona tenga que declarar su identidad previamente (Quin soy?).
El trmino Autenticacin es frecuentemente usado en el campo de estudio de sistemas biomtricos, a menudo como sinnimo de verificacin; en realidad, en lenguaje de las Tecnologas de la Informacin, autenticar a un usuario significa dejar al sistema averiguar la identidad del usuario independientemente del modo (verificacin o identificacin). Todo lo dicho se aplica a cualquier sistema de autenticacin biomtrica por lo que es vlido, tambin, para un sistema biomtrico basado en la autenticacin por huella dactilar; el cual, es un caso particular de estos sistemas en el que las caractersticas y patrones biomtricos se extraen de la huella dactilar de las personas, en lugar de otras caractersticas biomtricas como son el rostro humano, en reconocimiento facial, el iris o retina, en reconocimiento ocular, o la forma de escribir en un teclado, como ejemplo de reconocimiento de la dinmica de un determinado comportamiento humano. En los diagramas de la figura 2.1 se muestran los procesos de los modos de verificacin e identificacin de usuarios, as como, el proceso de registro de las huellas de un usuario en la base de datos del sistema, que siempre ser necesario para el funcionamiento de un sistema basado en cualquiera de los dos modos de autenticacin. Aqu tambin se explican, brevemente, las tareas intermedias llevas a cabo en el interior del sistema para implementar ambos modos de autenticacin. Entendiendo que la huella dactilar, a causa de pliegues formados sobre la piel, est dibujada por una serie de lneas de cresta y de valle, la Representacin de la huella consiste en la eleccin o extraccin de unas determinadas caractersticas de este dibujo de lneas, a partir de la imagen capturada por el lector y posteriormente digitalizada en escala de grises; para formar el patrn de huella con el que trabajar el sistema (proceso realizado en bloque Feature Extractor, ver fig. 2.1). Estas caractersticas deben ser invariantes en la huella del individuo, as como, localizables por el sistema para ser extradas de la imagen de la huella con relativa facilidad. En lo que juega un papel crucial la calidad de la imagen tomada por el lector, conjuntamente al pre-procesado posterior de esta imagen.
Estudios Preliminares
Normalmente, los algoritmos de reconocimiento de huella basan la extraccin de caractersticas de la huella segn la posicin y orientacin relativa de unos puntos especiales de sta llamados Minutiae o Minucias, tales como, terminacin y bifurcaciones de lneas de cresta (ver Fig. 2.2[a]), y Puntos Singulares con forma de delta y de bucle (ver Fig. 2.2[b]); los cuales forman una Constelacin de puntos cuyas
10
Estudios Preliminares
coordenadas (posicin y orientacin) se almacenan en el patrn de huella (ver Fig. 2.3). Para mejorar los resultados de estos algoritmos basados en minucias (minutiae-based approach), y superar las dificultades que supone slo emplear la informacin local de la huella proporcionada por dichos puntos, en el patrn de huella se incorporan tambin caractersticas globales de la huella como la forma exterior de la huella, orientacin de las lneas y frecuencia de aparicin de determinados puntos caractersticos; y se implementan tcnicas de correlacin de estas caractersticas (correlation-based approach).
Figura 2.2[a]: Ejemplos de Minucias (Minutiae): Punto de Terminacin (izqda.), y, Punto de Bifurcacin (drcha.), de lneas de cresta.
Figura 2.2[b]: Ejemplos de Puntos Singulares de la huella: a) Bucle a izquierdas; b) Bucle a derechas; c) ncleo de la huella o espiral; d) arco; e) arco en tienda de campaa; los cuadrados denotan tipos de puntos singulares de Bucle, y los tringulos los de tipo Delta.
Estudios Preliminares
11
Debido a que el proceso de comparacin de patrones de huellas, en el bloque del sistema denominado Matcher, supone que nunca va a haber una coincidencia exacta entre patrones de huella como es natural, los algoritmos de comparacin de las huellas implementados en el Matcher son de carcter estadstico para lo que se define un parmetro de puntuacin de la coincidencia, o Matching Score (parmetro probabilstico en el rango [0..1]); entonces, si ste supera cierto umbral definido el sistema tomar la decisin de aceptar la coincidencia entre patrones de huella resultando en una autenticacin positiva del individuo. Precisamente, por tratarse de un proceso de comparacin estocstico, como no puede ser de otra manera, nunca habr certeza en la coincidencia de huellas, es decir, Matching Score igual a 1. Esto significa, entonces, que el sistema cometer errores de autenticacin. En consecuencia, se definen unos parmetros, tambin de carcter probabilstico, para especificar estos errores y por ello, tambin, la bondad del reconocimiento de huella ejecutado por un sistema en concreto. Los ms utilizados principalmente en sistemas comerciales son: FAR (False Acceptance Rate), Tasa de Falsas Aceptaciones correspondiente a la probabilidad de autenticar o reconocer positivamente la huella de un usuario que realmente no existe en la base de datos del sistema; y, FRR (False Rejection Rate), Tasa de Falsos Rechazos correspondiente a la situacin inversa, en que no se autentica positivamente a un usuario cuyas huellas s estn registradas en el sistema. A la vista de estas definiciones se puede comprender que el Nivel de Seguridad de un sistema de autenticacin positiva (aceptacin de un usuario que existe en la base de datos y rechazo del que no existe) vendr determinado por el FAR. Entonces lo que interesa en principio es disminuir el FAR (aumentar el nivel seguridad) lo ms posible; sin embargo, hay que tener en cuenta que, en consecuencia, se elevar el FRR al estar
12
Estudios Preliminares
inversamente relacionados, con lo que, si se aumenta demasiado el FAR, un elevado FRR dificultar el uso del sistema al rechazar en exceso a usuarios autorizados.
2.1.2
El Reconocimiento de Voz (Speech Recognition) consiste esencialmente en el proceso de interpretacin de una palabra(s) pronunciada por una persona, perteneciente a un conjunto determinado de palabras, despus de capturar la seal acstica que corresponde a la pronunciacin de esta(s) palabra(s) a travs de un micrfono. Las palabras interpretadas o reconocidas son los resultados finales del proceso de reconocimiento de voz, que pueden servir para iniciar diversas acciones en un sistema, a partir de la palabra reconocida como comando de voz; y, tambin, para introducir datos e informacin que corresponda justamente a la palabra reconocida, por ejemplo, la introduccin de nmeros en un sistema empleando las palabras del 0 al 9. Los sistemas de reconocimiento de voz pueden ser caracterizados por muchos parmetros, algunos de los ms importantes son: Modo del Habla: desde Palabras Aisladas (Isolated-Words) al Habla Continua (Continuous Speech). Clasificacin del sistema en funcin del tipo de Locutor: Dependiente de Locutor (Speaker-Dependent): los usuarios del sistema o locutores necesitan registrar su voz en el sistema para que las palabras que pronuncie sean reconocidas. Independiente de Locutor (Speaker-Independent): los usuarios del sistema o locutores puede ser cualquier persona que
Tamao del Vocabulario o Conjunto de Palabras Reconocidas: desde pequeos vocabularios (<20 palabras) a grandes (>20.000 palabras). Modelo Acstico o de Lenguaje: desde modelos provenientes del campo de reconocimiento geomtrico de formas como por ejemplo, Redes Neuronales o Clasificadores basados en Mixturas de Gaussianas; a modelos basados en el reconocimiento de formas sintctico como, Modelos de Estados Finitos (FSM) o Gramticas Sensibles al Contexto. Un modelo que no pertenece exclusivamente a ninguna de las disciplinas anteriores pero muy utilizado en sistemas de reconocimiento de voz son los Modelos Ocultos de Markov (HMM). Estos modelos suelen ser de carcter estadstico y se pueden aplicar de forma general a diversas tareas de reconocimiento de formas, pero aplicados al reconocimiento de voz es donde la mayora de ellos ha dado los mejores resultados hasta ahora.
Estudios Preliminares
13
Relacin Seal-Ruido (SNR): Alto (>30 dB) o Bajo (<10dB). Transductor de Voz: Micrfonos con diversas caractersticas, por ejemplo, de tipo Omnidireccional o Direccional, con o sin Cancelacin de Ruido, etc. Idioma: por supuesto el sistema de reconocimiento de voz depender del idioma elegido para desarrollarlo. Normalmente en los sistemas comerciales se desarrollan modelos acsticos en varios idiomas.
El reconocimiento de voz es un problema dficil, fundamentalmente porque hay muchas fuentes de variabilidad asociada a la seal, como, por ejemplo, las realizaciones acsticas de los fonemas, las unidades ms pequeas de sonido que componen las palabras, son altamente dependientes del contexto en el que aparecen dentro de diferentes palabras. En la figura 2.4 se muestra la estructura de un tpico sistema de reconocimiento de voz. La seal de voz digitalizada primero es transformada en un conjunto de til de caractersticas o medidas muestreadas a una frecuencia fija (en esta parte de Representacin (Representation) se realizan tareas de Procesado Digital de Seal y, habitualmente, se emplean Transformaciones de Fourier para extraer las caractersticas de la seal obteniendo lo que se llama el espectrograma de la palabra). Estas caractersticas o medidas son entonces usadas para buscar la palabra ms parecida, candidata a ser interpretada, aplicando primero el Modelo de Clasificacin (Modeling/Classification) de la palabra dentro un conjunto posible, para despus, por medio de la imposicin de restricciones provenientes de los modelos acsticos, lxicos y del Lenguaje (o Idioma concreto) ofrecer el resultado del reconocimiento, es decir la palabra reconocida. A travs de este proceso, se usan datos de entrenamiento, correspondientes a multitud de pronunciaciones del conjunto de palabras que se quiere el sistema interprete. Por tanto, previamente al funcionamiento del sistema de reconocimiento de voz, el sistema deber pasar por una Fase de Entrenamiento.
14
Estudios Preliminares
Una vez el sistema ha sido entrenado para comprobar la eficacia del reconocedor de voz existen muchas tcnicas, de las cuales la esencia es realizar un test con un grupo de personas con voces lo ms representativas posible (voces de hombres y mujeres, de edades diferentes) para que utilicen el sistema pronunciando el conjunto de palabras o frases que el sistema est preparado para reconocer. Una vez finalizado el test se obtendr lo que se denomina habitualmente, Matriz de Confusiones, donde se representan las tasas de acierto y error de la siguiente manera, las filas de la matriz representarn las palabras pronunciadas y las columnas las reconocidas por el sistema, de este modo, en cada posicin de la fila de una palabra pronunciada, se escribirn los porcentajes de la interpretacin dada por el sistema a esta palabra, por ejemplo, del conjunto de palabras {A, B ,C}, si se ha pronunciado B, entonces, se ha reconocido B (Acierto) un 90% de las veces pronunciada, y A o C (Errores) el resto de veces.
2.2. Opciones de Integracin. Tecnologas de Autenticacin Biomtrica de Huella Dactilar y Reconocimiento de Voz.
Se realiz una prospeccin del mercado para localizar y seleccionar los componentes necesarios para implementar tanto la tecnologa de autenticacin biomtrica de huella dactilar como la de reconocimiento de voz en nuestro dispositivo.
Autenticacin Biomtrica de Huella Dactilar [5]. Respecto a esta primera tecnologa, existen en el mercado gran cantidad de fabricantes que ofrecen sus dispositivos de autenticacin de huella dactilar como soluciones cerradas y difcilmente embarcables en otro sistema, lo cual no nos interesa puesto que, buscamos componentes o mdulos que se puedan integrar en nuestro dispositivo como parte de l. Otros fabricantes disponen de soluciones abiertas con posibilidades de integracin de las partes fundamentales para implementar dicha tecnologa, como son el sensor o lector de huella, y los elementos de proceso y memoria que puedan llevar a cabo el anlisis o autenticacin de la huella del usuario mediante la ejecucin de sus algoritmos de reconocimiento de huella dactilar. En primer lugar analizamos los diversos tipos de lectores de huella, mostrados en la tabla 2.1, compatibles con la mayora de sistemas de autenticacin de huella ofertados por los fabricantes. Debido a que en muchos casos nuestro dispositivo controlador estar expuesto a condiciones ambientales de exteriores, el lector de huella trmico de Atmel posee mejores caractersticas de robustez para soportar dichas condiciones. Adems, la forma de capturar la imagen de la huella dactilar de este tipo de lector, que se realiza como se explic en el punto anterior, trmicamente por las diferencias de temperatura entre valles y crestas de la huella; hace ms difcil la simulacin o falsificacin de la huella en un intento de violar la seguridad del acceso.
Estudios Preliminares
15
Tabla 2.1: Fabricantes y tipos de lectores de huella dactilar. Conjuntamente a la eleccin del lector, se evalan las diferentes soluciones para embarcar esta tecnologa en nuestro sistema. Se diferencian fundamentalmente dos opciones, como ejemplo de la primera opcin tenemos a fabricantes como Texas Instruments que plantean la utilizacin de algoritmos y libreras software de terceras partes para implementar las funciones de reconocimiento de huella. Entre otros destacan Authentec con su tecnologa patentada TruePrint, IdentALink y, Neurodynamics con el software DEIXIS; dirigidos a plataformas DSP de las familias C5000 y C6000. Como parte de las herramientas de desarrollo software Texas Instruments dispone adems del entorno de desarrollo integrado (IDE) Code Composer Studio, y para el desarrollo hardware, las terceras partes ofrecen placas o kits de evaluacin con su propia tecnologa, incluyendo diversos lectores de huella. La segunda opcin consiste en la utilizacin de un mdulo OEM (Original Equipment Manufacturer) en el que estn integrados el procesador, elementos de memoria y la electrnica necesaria en una placa de circuito impreso (PCB), que, habiendo programado el firmware que facilita el fabricante, realiza las funciones de autenticacin de huella dactilar de forma autnoma. El mdulo posee dos interfaces con el exterior, uno para conectar el lector de huella, compatible con varios tipos de lectores; y otro de comunicacin serie que, junto al protocolo de comunicaciones implementado en su firmware, permite enviar comandos al mdulo para poder as configurar sus diferentes parmetros, y realizar en l las operaciones propias de su funcionamiento como sistema de autenticacin de huella dactilar. De entre los fabricantes de este tipo de mdulos y especializados en esta tecnologa, merecen ser resaltados los mdulos BioFinger de Optimal, con sus series OFM1000, OFM2000 y OFM3000 que incorporan procesadores DSP ARM y Blackfin de Analog Devices; y los mdulos Biokey2002 de Idencom, y MV1200 de Byoscript, ambos con procesadores DSP de la familia C5000 y C6000 de Texas Instruments. Todos ellos incluyen su propio firmware de autenticacin de huella dactilar adems de, ofrecer la posibilidad de elegir entre varios tipos de lectores de huella compatibles con cada mdulo. Para testear las funciones de autenticacin del mdulo, estos fabricantes disponen tambin de placas de evaluacin y aplicaciones PC que permiten gestionar el mdulo teniendo al PC como host externo, via el protocolo de comunicacin serie RS-232/485.
Reconocimiento de Voz [6]. Actualmente existe en el mercado bastante software para incorporar funcionalidades de reconocimiento de voz en aplicaciones para PC, sin embargo, es ms difcil encontrar este tipo de software dirigido a sistemas embebidos (embedded systems). Dentro de los
16
Estudios Preliminares
fabricantes o desarrolladores de software de soluciones ASR (Automatic Speech Recognition) para sistemas embebidos, Scansoft y Sand destacan por su alta especializacin y madurez de su tecnologa, por lo que fueron los considerados para aadir las capacidades de reconocimiento de voz o ASR a nuestro sistema. Scansoft proporciona como parte del conjunto de soluciones de reconocimiento de voz, Speechworks, las libreras y motores ASR para sistemas embebidos: VoCon3200 Embedded Development System v2.0, y VoConSF v3.1; incluyendo adems herramientas de desarrollo software especficas. El paquete software VoCon3200, disponible en varios idiomas, posee un nivel bastante elevado de caractersticas de reconocimiento de voz, como son el reconocimiento independiente de locutor (speaker-independent) de comandos de voz para un amplio vocabulario; y, gracias a la posibilidad de crear gramticas, la capacidad de reconocimiento continuo del habla, es decir, de frases predeterminadas. Aunque este SDK (Software Development Kit) sean bastante modulares y escalables, principalmente va dirigido a plataformas hardware que dispongan de sistema operativo, en concreto a aplicaciones PC con sistema operativo Windows 2000/XP, y aplicaciones embebidas sobre dispositivos portables PDA que incorporen WinCE 4.2 o superior. Una solucin ms limitada y ajustada a nuestras necesidades de reconocimiento de voz, es la de VoConSF v3.1, que proporciona libreras y un motor de ASR de pequea huella (small-footprint) adecuado para desarrollar aplicaciones sobre procesadores DSP de 16 bits, como son los de la familia de Texas Instruments, TM320C54x, y el de Analog Devices, Blackfin535. Incorpora, tambin para varios idiomas, las capacidades de reconocimiento de comandos independientes de locutor, con un vocabulario ms reducido, y de reconocimiento continuo de dgitos (Continuous Digit Dialing). La solucin para la implementacin ASR de VoConSF est dirigida a una arquitectura de sistema basada en un esquema de comunicacin serie entre procesadores Host-DSP, donde no es necesario que exista en la plataforma un sistema operativo sobre el que se ejecute este software. El motor de reconocimiento de voz y las libreras necesarias para realizar las tareas de reconocimiento de voz se implementarn en el DSP, mientras que un microcontrolador jugar el papel de Host, que, mediante un protocolo de mensajes, controlar las funciones de reconocimiento de voz en el DSP, adems de ejecutar en l el programa principal de sistema especfico de nuestra aplicacin. Sand es un fabricante totalmente dedicado a la produccin de tecnologa de reconocimiento de voz y, de reproduccin y grabacin de audio, especializado en sistemas embebidos. Este fabricante dispone de varias lneas de chips con diferentes prestaciones, y con un coste por chip bastante econmico. Ofrecen soluciones segn las necesidades de la aplicacin a la que vayan dirigidos, incorporando capacidades de reconocimiento de comandos de voz, independientes de locutor (SI: Speaker Independent) y dependientes de locutor (SD: Speaker Dependent), de autenticacin de usuario por voz o verificacin de locutor (SV: Speaker Verification); as como, funciones de sntesis de mensajes de voz y msica. La lnea de chips que ms se adapta a nuestros objetivos de diseo, para incorporar la interfaz de voz a nuestro sistema, son las de las series de procesadores RESCUE-3x y RESCUE-4x. En particular nos interesa el procesador de la segunda serie, RESCUE-4128, el ms avanzado de todos, y que se trata de un procesador de seal mixto (DSP-like) con un ncleo microcontrolador de propsito general de 8 bits, dispone tambin de 24 lneas configurables E/S, e interfaz
Estudios Preliminares
17
para memoria de programa y datos externa no multiplexado, es decir, con lneas de lectura/escritura y direccionamiento independientes. Construido como un SoC (Systemon-Chip), en l se integran bloques hardware de procesamiento analgico y digital especficos para realizar las tareas de reconocimiento de voz, as como, de reproduccin y grabacin de audio comprimido. Estas tareas se implementan gracias al conjunto de libreras Sand Speech 7, desarrolladas para operar estos bloques de hardware especfico y que incorporan todas las capacidades de reconocimiento de voz enumeradas anteriormente. Con relacin a la caracterstica de reconocimiento de voz independiente de locutor, Sand provee al desarrollador de la herramienta software para PC, QuickT2SI (Quick Text to Speaker Independent), fundamental para construir el conjunto de palabras o vocabulario de reconocimiento que permitir reconocer hasta un mximo de 20 palabras por conjunto activo, es decir que el sistema podr discernir entre 20 comandos de voz simultneamente, pudindose utilizar varios conjuntos de palabras activados en diferentes momentos, segn las necesidades de la aplicacin y las limitaciones de memoria existentes. Esta aplicacin es capaz de crear los vocabularios sin necesidad de utilizar muestras de entrenamiento de las palabras deseadas, como es habitual en este tipo de tecnologa; en su lugar, emplea modelos fonticos estadsticos basados en algoritmos de redes neuronales y modelos ocultos de Markov (HMM). Esto permite, simplemente a partir de introducir las palabras deseadas en formato de texto, producir el cdigo objeto, que ser enlazado posteriormente con el resto del programa de sistema, necesario para que el RESCUE-4128 pueda responder a los comandos de voz.
2.3. Seleccin de los Sistemas de Autenticacin Biomtrica de Huella Dactilar y Reconocimiento de Voz.
Una vez descritas las caractersticas ms relevantes de los sistemas que se plantearon como opciones para incorporar las funciones de autenticacin biomtrica de huella dactilar y de reconocimiento de voz en nuestro sistema, justificaremos en este apartado nuestra eleccin particular. sta estuvo guiada principalmente por las necesidades de diseo y desarrollo del dispositivo controlador, al mismo tiempo que, por la valoracin de la calidad y coste de las soluciones propuestas anteriormente. Despus de analizar las diferentes opciones se eligi la siguiente combinacin de soluciones con las que integrar ambas tecnologas como subsistemas de nuestra arquitectura, y de las que se presentan aqu sus principales propiedades:
Subsistema de Autenticacin por Huella Dactilar: Mdulo Optimal BioFinger OFM3010-FC. Sensor trmico de desplazamiento compatible Atmel FingerChip.
Estudios Preliminares
Tensin de Alimentacin, VDD: 3.3V 0.3V, regulada internamente. Consumo de Corriente Tpico, ISupply: 50mA(idle); 120mA(identifying). Rango de Temperatura de Operacin: 0C 70C. CPU: DSP Blackfin a 400 MHz. Memoria Flash Interna : 1MB. UART: Comunicacin Serie Asncrona con Host externo*, Puertos de Transmisin y Recepcin: H_RXD, H_TXD.
* Puerto serie utilizado para controlar el funcionamiento del mdulo gracias al protocolo de comandos implementado en su firmware.
2 Filas de Conectores de 15 pines through-hole en cada lado del mdulo para su montaje. Especificaciones de autenticacin por huella dactilar: Tasa de Falsas Aceptaciones: FAR (False Acceptance Rate) < 0.001%. Tasa de Falsos Rechazos: FRR (False Rejection Rate) < 0.01%. Tiempo de Registro de Huella de Usuario: 850 ms. Tiempo de Verificacin de Huella de Usuario: 850 ms. Tiempo de Identificacin Promedio (1:1000)*: 990 ms;
* Obtenido para una base de datos de 1000 patrones de huella. Este tiempo depende de la posicin de la huella a identificar en la base de datos y el tipo de lector de huella empleado, por tanto este parmetro est promediado sobre estos factores. Tiempo de Identificacin Promedio (1:1000) para el Lector Atmel FingerChip: 1101 ms.
Tamao de Patrn de Huella (Template): 256-384 Bytes. Capacidad para Patrones de Huella: 1910 en 1MB. Proteccin de los datos de huella dactilar mediante el algoritmo de cifrado por bloques AES (Advanced Encryption Standard) de 256 bits. N 1 en el mayor concurso internacional de evaluacin para tecnologas de autenticacin por huella dactilar, FVC2004. Kit de evaluacin BioFingerEVK: Placa madre para acoplar el mdulo y, Aplicacin PC, BioFingerUI_V32, para configurar y testar su funcionamiento va puerto serie. Motor de reconocimiento de huella dactilar, BioFinger Engine OFR200 SDK, para desarrollar aplicaciones sobre PC y proporcionado como librera de enlace dinmico (DLL: Dinamic Link Library).
Estudios Preliminares
19
Lector de huella ptico USB de Digent, incluyendo el controlador para Windows de este dispositivo.
Subsistema de Reconocimiento de Voz. Microcontrolador (mC) de Sistema: Speech Recognition Processor Sand RESCUE-4128*.
* Procesador de Voz. Actuar, tambin, como mC de sistema del dispositivo controlador de acceso.
Caractersticas hardware relevantes: Tensin de Alimentacin, VDD: 3.3V (Mn: 2.4V; Mx: 3.6V). Consumo de Corriente Tpico, ISupply: 12mA a 3V. Rango de Temperatura de Operacin: -40C 85C. Ncleo Microcontrolador de 8-bits a 14.32 MHz*.
* Arquitectura y Conjunto de Instrucciones similar al mC 8051. Utiliza PLL interno para generar la frecuencia de funcionamiento a partir de un cristal de bajo coste de 3.58MHz.
Memoria ROM programable por mscara: 128 KB. Memoria RAM: 4.8 KB (256 Bytes para aplicacin de usuario). Bus de Memoria Externo no multiplexado: Direcciones (A0-A19) de 20 bits y Datos (D0-D7) de 8 bits. Permite direccionar memorias de hasta 1MB entre dos espacios de memoria, de programa (como mximo 128KB) y de datos. 5 Timers o Temporizadores Internos: 3 de Propsito General, Watchdog y Timer para realizar Multitarea. 24 Puertos E/S (P0.0-P0.7, P1.0-P1.7, P2.0-P2.7), configurables por programa como salidas o entradas, con pull-up interno. Programacin de 8 tipos de interrupciones, incluyendo 2 interrupciones activadas por flanco para demandas de eventos externos, y 4 interrupciones activadas por final de cuenta de temporizadores internos (Timers Overflow). Preamplificador y control automtico de ganancia, ms conversor ADC 16-bits para entrada de micrfono, y conversor para salida de audio DAC 10-bits. Empaquetamiento tipo LQFP de 100 pines (100LQFP). Capacidades de reconocimiento de voz del firmware Sand Speech 7: Reconocimiento de Comandos de Voz Independientes (SI: Speaker Independent)* y Dependientes (SD: Speaker Dependent)* de Locutor.
20
Estudios Preliminares
* SI: Conjunto activo, o reconocimiento simultneo, de 20 palabras. SD: Conjunto activo de 100 palabras. El nmero de conjuntos activos de ambas capacidades est limitado nicamente por el tamao de memoria utilizado (interna o externa).
Escucha Continua de Voz (CL: Continuous Listening), para detectar y reconocer comandos o palabras de disparo (Trigger Words). Verificacin Biomtrica de Usuario por Voz (SV: Speaker Verification)*.
* Utiliza una palabra por usuario, el nmero de patrones de palabra almacenados dependern del tamao de la memoria utilizada (10 palabras en memoria interna).
Sntesis de Audio de 3.7 a 7.8 Kbps, para generar mensajes de voz, efectos de sonido y msica MIDI. Herramientas de desarrollo Hw/Sw: QuickT2SI: Aplicacin PC para componer el vocabulario de reconocimiento de voz independiente de locutor (SI), sin necesidad de muestras de entrenamiento, slo a partir de texto*.
* Genera el cdigo objeto del vocabulario para ser enlazado (linked) posteriormente con el programa principal de sistema.
QuickSynthesis 4: Aplicacin PC para sintetizar y comprimir mensajes de voz pregrabados (formato WAV y frecuencia de muestreo 22050Hz) *.
* Genera el cdigo objeto de los mensajes de voz para ser enlazado (linked) posteriormente con el programa principal de sistema.
Entorno de Desarrollo Integrado para la familia RESCUE-4x de Sand, Project-SE IDE de Phyton, el paquete completo incluye: Ensamblador MCA-SE, Compilador C MCC-SE, Depurador (Debugger)/Simulador PDS-SE, y Emulador en circuito PICE-SE. Paquete de Evaluacin y Prototipado Hardware: Placa de Evaluacin del RESCUE-4128, con memorias RAM y ROM externas, micrfono, salida de audio mini-jack amplificada y conector DB-9 para comunicacin serie RS-232. Opcin de utilizar el emulador PICE-SE conectado a la placa de evaluacin, lo que permite una depuracin de cdigo cmoda y rpida, gracias a la descarga del programa desarrollado con Project-SE en la memoria Flash del emulador, mediante conexin USB. Los algoritmos y procesadores de voz de Sand han sido utilizados en el diseo de productos, que incorporan tecnologas de reconocimiento de voz y audio, de compaas lderes del mercado como son JVC, Sony, y Mitsubishi entre otras.
Justificacin de la Eleccin. Partiendo de las opciones para integrar primero la autenticacin biomtrica por huella dactilar, que es el objetivo primordial del diseo del controlador de acceso, se decidi seleccionar el mdulo de Optimal BioFinger OFM3010-FC con lector de huella trmico de desplazamiento, del que se describieron sus cualidades fundamentales.
Estudios Preliminares
21
Frente a los otros mdulos OEM propuestos, y despus de probar el funcionamiento de varios de ellos, en placas de demostracin de fabricantes como Digent e Idencom; el de Optimal presentaba las mejores prestaciones de autenticacin por huella dactilar atendiendo a tasas de error, tiempos de respuesta y capacidad para patrones de huella, avaladas por el concurso internacional Fingerprint Verification Competition (FVC2004). Asimismo, pensando en la aplicacin PC para gestionar la red de controladores, la solucin de Optimal incorporaba libreras para PC de su motor de reconocimiento de huella dactilar, ms un lector de huella ptico USB; de este modo, se podran aadir y borrar huellas de usuario remotamente desde la aplicacin PC, actuando como host central de la red, a los terminales de control de acceso. Respecto a la otra opcin planteada anteriormente, de utilizar un DSP de Texas Instruments en conjuncin con las libreras de reconocimiento de huella dactilar proporcionadas por sus terceras partes, resultaba menos interesante que la solucin de Optimal puesto que, supona un incremento sustancial del tiempo de desarrollo del hardware necesario para integrar esta tecnologa, no garantizndose una mejora de las prestaciones de los algoritmos de reconocimiento de huella disponibles, y resultando en una estimacin del coste parecido al del mdulo Optimal, despus de incluir el precio de los elementos fundamentales, la plataforma DSP, las licencias o royalties de las compaas que suministran las libreras, y las herramientas de desarrollo software de Texas Instruments. Debamos integrar tambin la tecnologa de reconocimiento de voz en nuestro dispositivo, por tanto, aunque la solucin del mdulo Optimal fuera ms compacta que la propuesta del DSP de Texas Instruments con las libreras de autenticacin de huella dactilar, antes de tomar una decisin y descartarla, se analiz la posibilidad de utilizar las libreras de reconocimiento de voz de Scansoft sobre la misma plataforma DSP, en contraposicin a la combinacin del procesador de voz RESCUE-4128 de Sand con el mdulo de Optimal. La principal ventaja de la primera combinacin es que se podran implementar ambas tecnologas en el mismo procesador, utilizando el software de reconocimiento de voz de Scansoft, VoConSF, el cual posee muy buenas prestaciones para sistemas embebidos, y que se ajusta a las necesidades de la interfaz de voz planeada para nuestro sistema. Sin embargo, una de las desventajas respecto a la opcin de Sand, fue que los modelos acsticos para construir los vocabularios, en un determinado idioma, deban encargarse a Scansoft, lo que encareca la solucin tanto en coste, como en tiempo de desarrollo. Por otra parte, Scansoft no dispona de la implementacin de estas libreras sobre el DSP requerido, siendo necesario encargar, tambin, la adaptacin a esta plataforma. Adems, los costes de estas libreras se aadiran, junto al coste por DSP, directamente al precio por unidad final y no slo a los costes de desarrollo, puesto que Scansoft impona royalties por diseo implementado. Lo que estaba en clara desventaja con la propuesta de Sand, en la que el precio por unidad del RESCUE-4128 era mucho ms bajo que el de un DSP, y en el que ya se inclua el coste de las libreras. Todo ello, y considerando que la arquitectura fundamental para las dos combinaciones resultaba en una configuracin de igual complejidad, dada por un DSP ms un microcontrolador de sistema; la solucin de implementar las libreras de ambas
22
Estudios Preliminares
tecnologas en un DSP fue descartada frente a la propuesta del mdulo Optimal OFM3010-FC, que realizara las funciones de autenticacin por huella dactilar, y que estara controlado por el procesador de voz Sand RESCUE-4128, que aparte de realizar las tareas de reconocimiento de voz necesarias para implementar nuestra interfaz de usuario por comandos de voz, actuara como microcontrolador de todo el sistema. Como ltima consideracin, comentar a favor del software VoConSF de Scansoft que, en principio, la eficiencia y prestaciones de reconocimiento de voz parecen ser mejores que las del chip de Sand, sin embargo, para nuestros objetivos de diseo de la interfaz de usuario por voz, ste posee unas cualidades de reconocimiento de voz suficientemente adecuadas. Esto ltimo viene reafirmado por unas pruebas de campo para la evaluacin de la eficiencia de reconocimiento de voz del RESCUE-4128, realizadas para Fermax por el instituto de investigacin ITACA, perteneciente a la Universidad Politcnica de Valencia. El test independiente realizado por el ITACA se llev a cabo para analizar la eficiencia en el reconocimiento de comandos de voz independientes de locutor (SI: Speaker Independent), en concreto, se realiz un nmero significativo de pruebas, para distintos individuos, sobre los nmeros del 0 al 9 y un pequeo conjunto de palabras, en ambientes con diferentes niveles de ruido ambiental. Los resultados de ejecucin del test ofrecieron un nivel de aciertos o aceptacin de estos comandos superior al 95%.
Configuracin Bsica de la Arquitectura del Dispositivo Controlador. Una vez descritos los subsistemas fundamentales de nuestro dispositivo controlador y justificada su eleccin, a modo de primera aproximacin a la arquitectura del sistema, y con motivo de explicar la eleccin, primordial por otra parte, de una memoria externa para el RESCUE-4128; exponemos aqu la configuracin bsica de nuestro sistema, previo a detallar su arquitectura y otras elecciones de diseo en el captulo siguiente. As pues, la configuracin de los subsistemas en nuestro dispositivo quedar como se muestra en la figura 2.5. El mdulo OFM3010-FC de autenticacin por huella dactilar, conectado directamente al lector de huella trmico, se montar sobre la placa madre de nuestro dispositivo y dispondr de un puerto de comunicacin serie asncrona que le permitir recibir rdenes, gracias a su protocolo de comandos especfico, tanto del microcontrolador del sistema como del PC, como host externo. El microcontrolador del sistema ser el procesador RESCUE-4128, que tambin como subsistema de reconocimiento de voz independiente de locutor, y reproductor de mensajes pregrabados, implementar la interfaz de usuario por voz del dispositivo. Como otras tareas esenciales, el procesador RESCUE-4128 realizar el control de puerta, por medio de las lneas externas dedicadas a tal efecto y, para las seales de: activacin del rel abre-puerta, atencin de las solicitudes del botn de salida y del sensor de deteccin de puerta abierta; adems de, gestionar el funcionamiento del mdulo de autenticacin y la comunicacin con el host externo del sistema, cuando ste pertenezca a una red de dispositivos controladores.
Estudios Preliminares
23
Figura 2.5: Configuracin bsica del dispositivo controlador de acceso. Como se vio en las especificaciones listadas anteriormente el microcontrolador RESCUE-4128 dispone de memoria interna de programa, aunque sta es slo programable por mscara, bajo demanda al fabricante, y adems, no tiene capacidad para los datos del vocabulario de comandos de voz u otros que podamos necesitar. Por tanto, era necesario utilizar su bus de memoria externo para incluir en nuestro diseo una memoria externa de programa y datos. La eleccin del tipo de memoria, que deba ser, por supuesto, no voltil y compatible con el bus externo no multiplexado, con lneas de direccionamiento y datos independientes, del microcontrolador; estuvo fundamentada en la decisin de que fuese una memoria reprogramable en sistema, de esta forma, se podran realizar depuraciones o actualizaciones del firmware del sistema de forma rpida y cmoda, una vez construido el dispositivo, con su memoria instalada, y mediante algn programa de descarga desde PC. Se eligi una memoria Flash PSD de STMicroelectronics, que cumpla nuestros requisitos de programacin en sistema o ISP (In-System Programming), gracias a su puerto serie de test y descarga, JTAG. Adems se vio que esta memoria dispona de dos bancos de memoria Flash (Flash Primaria: 256KB; Flash Secundaria: 32KB), lo que le proporcionaba una gran versatilidad y holgura suficiente para implementar el programa de sistema, y poder alojar tambin las constantes y datos relacionados con los vocabularios de reconocimiento y mensajes de voz. Como otra caracterstica muy deseable, la memoria PSD tena una SRAM de 32KB adicional para nuestras variables de programa, compensando as la limitacin de memoria RAM interna del
24
Estudios Preliminares
microcontrolador elegido. A continuacin se detallan las propiedades principales de la memoria PSD particular seleccionada, incluido las herramientas necesarias para su configuracin y programacin:
Memoria de Programa y Datos para el Microcontrolador del Sistema [7]: Memoria Flash PSD de STMicroelectronics : PSD854F2V-90J*.
* Interfaz de bus de memoria configurable para diversos tipos de microcontroladores de 8 bits, incluye el tipo de bus no multiplexado y es compatible con las seales de control de memoria externa del RESCUE-4128.
Caractersticas hardware relevantes: Tensin de Alimentacin, VCC: 3.3V 0.3V. Consumo de Corriente Tpico, ISupply: 10mA, slo en ciclos Write/Erase*.
* Para ciclos de lectura y stand-by el consumo es aproximadamente de 50A.
Dos bancos de Memoria Flash: Primaria de 256 KB (8 sectores 32KB), Secundaria de 32KB (4 sectores 8KB); y una SRAM de 32KB. Los bancos de memoria Flash soportan hasta 100,000 ciclos de Escritura/Borrado (Write/Erase Cycles), y tienen garanta de 15 aos de retencin de datos. Puerto Serie JTAG que permite la programacin ISP de todo el chip. Empaquetamiento tipo PLCC de 52 pines (PLCC52). Herramientas de desarrollo para la programacin de la memoria: PSDsoft Express 8.40: Aplicacin PC para realizar la programacin de la memoria va JTAG. Para poder adaptar su interfaz del bus de memoria para un determinado microcontrolador, esta herramienta permite configurar los diversos puertos de la memoria gracias a la lgica programable interna de la PSD, adems de generar ejemplos de cdigo C de los drivers que debe emplear el programa de sistema para acceder a la memoria. Se puede elegir el mtodo de programacin Flash, Data Polling o Data Toggle. FlashLINK de STMicroelectronics: Cable para PC DB-25 (Puerto Paralelo) y programador JTAG para memorias PSD. RLINK-ST de Raisonance: Cable USB ms programador JTAG para memorias PSD.
Captulo 3
Arquitectura
El objetivo de este captulo es describir el diseo de la arquitectura del dispositivo controlador de acceso, as como, de la infraestructura de la red formada por varios de estos dispositivos, como terminales de control de acceso biomtrico (tCABs). Partiendo de la configuracin bsica presentada en el apartado 2.3 del captulo anterior, pasamos a detallar la arquitectura completa de nuestro sistema de control de acceso. Como se estableci en los objetivos del proyecto, sta comprende el diseo de la arquitectura del dispositivo, perteneciente al desarrollo hardware establecido para la primera fase del proyecto; y de la estructura de la red de controladores de acceso, que corresponde a la parte de desarrollo hardware de la segunda fase.
25
26
Arquitectura
En realidad, y gracias a estas herramientas de desarrollo, el diseo hardware del dispositivo se realiz paralelamente a la definicin del firmware de nuestro sistema, lo cual nos conceda la posibilidad de ir adaptando el firmware al diseo de la arquitectura de nuestro dispositivo y viceversa. Esta sinergia entre el desarrollo hardware y software, ms que inevitable, es provechosa para la optimizacin de ambos tipos de diseo, y se produjo a lo largo de todo el desarrollo del sistema. Aunque, para estructurar y explicar con mayor claridad el desarrollo de este proyecto, separemos la descripcin de la arquitectura de la definicin del software del sistema (Cap. 4). Segn el funcionamiento y las capacidades que queremos que nuestro dispositivo posea, debemos disear las diferentes partes de la arquitectura que les den soporte. Seguidamente, se listan todas las partes estructurales, especificando su funcin, en las que hemos dividido el diseo del esquema elctrico del controlador de acceso, para luego explicar aspectos particulares y las diversas elecciones de diseo realizadas en cada una de ellas. Tambin se presentar el esquema de interconexin de estas partes, representado en el diagrama de bloques del dispositivo, y al que nos referiremos frecuentemente para explicar nuestro diseo.
Partes Estructurales de la Arquitectura del Controlador de Acceso: Microcontrolador del Sistema (mC) / Procesador de Voz: este componente es el elemento principal de proceso, ejecutando el programa o firmware del controlador de acceso. Como se explic anteriormente, al tratarse de un SoC de aplicacin especfica, dispone de un ncleo mC de propsito general y puertos de E/S para implementar el control del sistema; adems de, bloques hardware dedicados exclusivamente a realizar las tareas de procesado de voz que se determinen en su firmware: reconocimiento de comandos de voz y reproduccin de mensajes pre-grabados. Memoria de Programa y Datos: memoria PSD externa con puerto JTAG para programacin en sistema ISP. Mdulo de Autenticacin de Huella Dactilar. Comunicacin con Host Interno (C) y Externo (PC): el mdulo, junto al lector de huella, realizar las operaciones de autenticacin biomtrica, siempre comandado por el microcontrolador, como host interno, en su funcionamiento autnomo habitual; recibiendo, tambin, rdenes del host externo cuando pertenezca a una red de controladores de acceso, para su gestin remota desde el PC. Entrada y Salida de Audio: circuitos de acondicionamiento de la seal de audio de entrada al procesador de voz, proveniente del micrfono; y, de la salida de audio del procesador de voz, dirigida a un altavoz. Imprescindibles para construir la interfaz de voz del usuario, que le permitir interaccionar con el dispositivo mediante comandos y mensajes de voz. Seales de Control de Puerta de Acceso: para actuar y controlar la apertura de la puerta de acceso dedicamos tres lneas del microcontrolador que realicen
Arquitectura
27
las siguientes tareas: activacin del rel abre-puerta, deteccin de pulsacin del botn de salida y de disparo del sensor de puerta abierta. Alimentacin del Dispositivo: acondicionamiento y regulacin de la tensin de alimentacin externa utilizada, 12V DC, para obtener las tensiones de trabajo de las redes elctricas y componentes del dispositivo.
Figura 3.1: Detalle del circuito para el pin de Reset o Reinicio del mC.
28
Arquitectura
El resto de recursos del microcontrolador (ver fig. 3.2), que intervienen directamente en el diseo electrnico del dispositivo controlador, se comentarn a la hora de describir las otras partes de su arquitectura, enunciadas en el apartado anterior. Pero antes, hay que destacar una caracterstica importante, y que afecta a la comunicacin del microcontrolador con el mdulo. Este chip no dispone de una UART especfica para establecer la comunicacin serie con el mdulo, por tanto ser necesario dedicar 2 de los 24 puertos de propsito general para las lneas de recepcin, RXD, y transmisin, TXD; e implementar mediante software la comunicacin serie del microcontrolador.
Arquitectura
29
direccionamiento, datos y control a los puertos de la PSD (ver Tabla 3.1), as como, realizar la distribucin de los sectores de memoria, para ajustarse al mapa de memoria de nuestro microcontrolador. Posteriormente, los datos de configuracin de la memoria se descargarn, junto con el programa de sistema, en sus registros internos, implementndose la adaptacin de todo el chip de memoria por medio de lgica programable: una PLD para los circuitos de decodificacin internos, y macroclulas para los puertos de E/S (I/O Macrocells).
RD (Control)
PSEN (Control)
Tabla 3.1: Asignacin de Lneas del Bus de Memoria del mC a los puertos PSD. En el apartado 4.2 correspondiente al desarrollo de nuestro firmware, y por estar ms vinculado a ste, se describir el mapeado de los espacios de memoria de programa y datos realizado en la PSD. Aunque, conviene comentar aqu que se eligi mapear el espacio de memoria de programa en el banco Flash primario de la PSD por ser el de mayor tamao, 256 KB. Puesto que, en l se alojara el programa de sistema, as como las constantes de programa, incluyendo las correspondientes a los vocabularios de reconocimiento de comandos de voz y mensajes de voz pre-grabados. Por lo tanto, de las 20 lneas de direccionamiento disponibles (hasta 1 MB), slo necesitamos 18 (A0-A17) para direccionar los 256 KB (218 bits) de la memoria Flash primaria destinada al espacio de memoria de programa, como se observa en el diagrama de bloques (ap. B). Una de las razones principales de la eleccin de este tipo de memoria PSD fue la capacidad de ISP o programacin en sistema, como ya se vio al final del captulo 2. Por consiguiente, esta memoria dispone de una interfaz serie JTAG para realizar la programacin ISP, e implementado con las seales que se especifican en la tabla 3.2.
Descripcin Mode Select Clock Status Error Flag Serial Data In Serial Data Out
TDI(PC5) TDO(PC6)
30
Arquitectura
Las seales de entrada TMS, de seleccin de modo, y TCK, de temporizacin; junto a las de entrada y salida de datos, TDI y TDO, respectivamente; corresponden al JTAG estndar definido por la norma IEEE 1149.1. Las seales de salida, TSTAT y RR , sirven para comprobar el estado de la memoria durante su programacin, y son una extensin aadida por el fabricante para incrementar la velocidad de descarga del programa y los datos de configuracin a la PSD. El Pin-Out del conector para la programacin JTAG-ISP se muestra en la figura 3.3, como se puede ver aparte de los pines para seales opcionales no utilizadas, y las tomas de alimentacin, VCC, y de tierra, GND, que son varias por motivos de reduccin EMI; tenemos un pin de Reset. ste es necesario para reiniciar la configuracin interna, borrar registros internos y situar la PSD en el modo de operacin normal despus de la programacin. Por tanto, como se indica en el diagrama de bloques de la arquitectura, tenemos ah otra fuente para la seal de Reset que hemos de conectar, tambin, al pin RESET del microcontrolador.
Figura 3.3: Detalle del conector JTAG-ISP utilizado, del tipo Molex Macho, y compatible con los cables de programacin RLINK-ST (para USB) y FlashLINK (para Puerto Paralelo).
Arquitectura
31
Para su funcionamiento, el mdulo siempre necesita de un host que le ordene las tareas de autenticacin por huella dactilar que debe realizar. Por ello, el mdulo incorpora una UART (Universal Asynchronous Receiver Transmitter) que permitir la comunicacin serie asncrona y bidireccional, a travs de sus puertos de recepcin MOD_RX, y transmisin MOD_TX. En nuestro sistema queremos que tanto el microcontrolador, como host interno, y el PC, como host externo, puedan adquirir el control del mdulo, y as, acceder a los diferentes servicios que, va comunicacin serie, el mdulo de autenticacin pueda proporcionar. Por tanto, la configuracin para la intercomunicacin, en nuestro dispositivo, de estos tres elementos de proceso, se ciment en el establecimiento del mdulo como elemento o nodo central. Para dar soporte a la comunicacin interna y externa con el mdulo, se dise el esquema de interconexin de los buses de comunicacin serie asncrona respectivos, como aparece representado en el diagrama de bloques (ap. B). Un poco ms adelante se describir en detalle su esquema elctrico, as como, la funcin de las lneas aadidas para el control de la comunicacin, pero antes se expondr la estructura bsica de intercomunicacin (ver fig. 3.4).
Figura 3.4: Diagrama de interconexin de los buses de comunicacin serie asncrona con el Mdulo de Autenticacin, desde el Microcontrolador, como Host Interno; y desde el PC, que actuar como Host Externo por medio de las lneas de recepcin y transmisin externa, EXT_RX y EXT_TX. El dispositivo controlador de acceso debe estar capacitado para establecer comunicacin externa con el PC cuando pertenezca a una red de terminales de control de acceso. La capa fsica de esta red estar basada en el protocolo serie RS-485, y el PC ser el gestor o maestro de cada uno de ellos, comunicndose a travs del bus RS-485. Por ello, en el diseo de nuestro dispositivo se incorpor un transceptor o transceiver (ver diagrama de bloques, ap. B) para convertir las seales de este bus, provenientes del PC, a los niveles lgicos internos CMOS. Las caractersticas del transceiver, as como las propiedades de la red se explicarn en el siguiente apartado cuando se describa la
32
Arquitectura
infraestructura de red. Por ahora, slo nos interesa saber que la comunicacin con el PC ocurrir por medio de las lneas de recepcin y transmisin externa de datos, EXT_RX y EXT_TX, conectadas, respectivamente, a los puertos R (recepcin de datos del bus RS-485) y D (transmisin de datos al bus RS-485) del transceiver CMOS(3.3V)/RS485. Vemos en el diagrama de la figura 3.4, que el mdulo recibir datos por medio de dos lneas: mC_TX, de transmisin de datos desde el host interno (mC); y, EXT_RX de recepcin externa de datos provenientes del host externo (PC). Pero, como ste slo dispone de un puerto serie, ser obligatorio multiplexar estas lneas, que transmitirn datos al mdulo, para poder conectarlas a su puerto de recepcin de datos, MOD_RX. Vemos, tambin, que se podrn conectar directamente, al puerto MOD_TX, las lneas, mC_RX y EXT_TX, para la transmisin de datos desde el mdulo. De esta forma, el microcontrolador se comunicara directamente con el mdulo, utilizando el protocolo de comandos definido en ste, para mandar la ejecucin de las diferentes acciones del proceso de autenticacin de usuario por huella dactilar, requeridas para el funcionamiento normal del dispositivo controlador de acceso. Igualmente, se pens que el PC tambin deba tener comunicacin directa con el mdulo, actuando as como su host externo, puesto que, cuando nuestro dispositivo pertenezca a la red de controladores de acceso, el PC gestor de la red, contendr los patrones de huella de todos los usuarios siendo necesario realizar transferencias habituales de estos patrones a la base de datos del mdulo, y as poder autorizar el acceso de los usuarios en cada terminal por medio de la autenticacin de huella dactilar. Con esta configuracin, centrada en la comunicacin directa con el mdulo, no dispondremos de comunicacin directa entre el PC y el microcontrolador. sta, sin embargo, se podr establecer de forma indirecta utilizando el mdulo como retransmisor de la informacin dirigida al microcontrolador desde el PC, y viceversa. Frente al bajo volumen de datos que se tena previsto intercambiasen el microcontrolador y el PC, principalmente para cambiar ciertos parmetros de funcionamiento del dispositivo, no compensaba la complicacin del esquema de interconexin y del protocolo de comunicacin que supondra incorporar un nuevo bus, para establecer comunicacin directa entre el microcontrolador y el PC. En consecuencia, se optimiz el esquema de intercomunicacin de nuestro sistema, atendiendo a sus necesidades funcionales y, sin comprometer nunca la supervisin y control que el microcontrolador deba ejercer en todo momento del proceso de comunicacin, implementado gracias a las lneas de control dedicadas a tal efecto, como se explica a continuacin. El esquema de interconexin (fig. 3.5) se estructur por medio de puertas lgicas NAND, utilizando, en nuestro diseo, el mismo tipo de circuito integrado, 74HC00 de Philips, compuesto por cuatro puertas NAND de tecnologa CMOS de alta velocidad (HC).
Arquitectura
33
Gracias al empleo de esta lgica, se realiz la multiplexacin de las lneas, mC_TX y EXT_RX, de transmisin de datos al puerto de recepcin, MOD_RX, del mdulo; as como, la incorporacin de las lneas CCOM e ICOM, del microcontrolador, y ENA_TX, del mdulo, dedicadas al control y coordinacin de las comunicaciones externa e interna del dispositivo. Antes de explicar cmo se gestiona la comunicacin con el mdulo, se indican dos detalles respecto al esquema elctrico de intercomunicacin, mostrado en la figura de abajo: Pull-Up en la lnea EXT_RX, conectada al puerto de recepcin externa R del transceiver, para asegurar siempre un estado conocido, de reposo (1), frente a posibles indeterminaciones que el bus RS-485 externo pueda provocar en este puerto del transceiver. En el diagrama de bloques del dispositivo, se puede ver que en el conector externo tenemos, entre otras, las lneas de conexin al bus RS-485. Normalmente se aaden circuitos de proteccin elctrica en las lneas de datos externas para prevenir que, durante la instalacin, se provoquen sobretensiones en el transceiver, que puedan daarlo, al conectar por error la alimentacin a estas lneas. En nuestro diseo, no se ha aadido esta proteccin a las lneas 485+/A y 485-/B, puesto que el transceiver puede soportar tensiones de hasta 14V, en cada lnea, y 12V, de forma diferencial; siendo la mxima de alimentacin de 12V.
34
Arquitectura
La seleccin del enlace de comunicacin interno (mC-MOD) o externo (PC-MOD), con el mdulo, se realizar por medio de la seal dedicada al control de la comunicacin del microcontrolador, CCOM: CCOM 1. Enlace de Comunicacin mC-MOD: El mC puede transmitir datos libremente al puerto MOD_RX del mdulo, mediante mC_TX, puesto que la lnea de recepcin externa de datos EXT_RX queda bloqueada por la puerta NAND a la que est conectada, forzando, CCOM, un 0 en su otra entrada. La seal ENA_TX es utilizada por el mdulo para habilitar (ENA_TX1) y deshabilitar (ENA_TX0) la transmisin en el transceiver, antes y despus de haber enviado su respuesta al host, desde su puerto MOD_TX. En este caso, slo el mC debe recibir las respuestas del mdulo, por lo que se bloquea la transmisin al PC, por la lnea EXT_TX, evitando as trfico de red innecesario. Para ello, CCOM mantiene el transceiver inhabilitado para transmitir (DE0), poniendo un 0 a la entrada de la AND equivalente (2 puertas NAND), conectada, a su vez, a los pines de habilitacin del transceiver. Mediante la lnea ICOM, conectada a un puerto de interrupcin del mC, se puede detectar la trama de peticin de conexin del PC, que se reciba por el puerto R del transceiver. Por tanto, durante la comunicacin mC-MOD, CCOM, mantiene el transceiver habilitado para recibir ( RE 0), y la AND equivalente, con salida conectada al puerto ICOM del mC, abierta para la escucha de la lnea EXT_RX, al poner un 1 en la entrada correspondiente a CCOM. CCOM 0. Enlace de Comunicacin PC-MOD:
El mC conmuta el nivel de CCOM para permitir la comunicacin externa del mdulo con el PC. El puerto MOD_RX puede ahora recibir datos de la lnea EXT_RX al no estar sta bloqueada. Mientras tanto, el mC mantiene su lnea mC_TX a 0 para no interferir en la transmisin desde el PC. El mdulo controla la habilitacin y deshabilitacin del transceiver mediante la seal ENA_TX, puesto que CCOM no la bloquea a la entrada de la AND equivalente. En este caso, tanto el PC como el mC escucharn las respuestas del mdulo, a travs de las lneas EXT_TX y mC_RX, respectivamente. De este modo, el mC supervisar en todo momento el estado del enlace PC-MOD. Despus de recibir la trama de peticin de conexin del PC, el cambio de CCOM (10), bloquea la lnea ICOM para no seguir excitando el puerto de interrupcin durante la transmisin desde el PC, y as proteger al mC de repetidas peticiones de interrupcin. La coordinacin de las comunicaciones, as como, los comandos existentes para controlar y ordenar las diferentes operaciones en nuestro sistema vendrn determinados
Arquitectura
35
por el protocolo de enlace definido especficamente para este sistema, y que estar implementado tanto en el programa del controlador de acceso (firmware), como en la aplicacin de gestin de la red de terminales de acceso que se ejecutar en el PC. Todo ello se describir cuando se explique el funcionamiento del dispositivo y de la red de control de accesos, en el siguiente captulo correspondiente al desarrollo software del sistema. Los enlaces de comunicacin, descritos anteriormente, son parte esencial del funcionamiento del dispositivo controlador de acceso, e intervienen en los dos estados de operacin principales del sistema, programados en el firmware del mC y que avanzamos a continuacin:
Estado de Servicio Normal o de Usuario.
ste es el estado de operacin normal del controlador de acceso, en el que se realizan las funciones principales para el control de acceso de usuarios, ejecutando la autenticacin por huella dactilar, el control de las seales de puerta y la interfaz de voz de usuario; adems de, implementar las opciones del men de configuracin del dispositivo, a las que solamente tendr acceso el administrador del sistema. En este estado de operacin, se establece la comunicacin directa entre el mdulo y el mC, seleccionando el valor de la seal dedicada al control de comunicacin: CCOM1. El enlace mC-MOD, y por medio del protocolo de comandos especfico del mdulo, permite ejecutar las tareas de autenticacin de usuario (identificacin o verificacin) programadas dentro del funcionamiento normal del dispositivo, as como, la de autenticacin del administrador del sistema, para su acceso al men de configuracin del dispositivo. En ste el administrador podr seleccionar las opciones de aadir y borrar huellas de usuarios, y de cambio del propio administrador, en la base de datos del mdulo.
Estado de Servicio de Comunicacin Externa o de Red.
El PC enviar la trama de peticin de conexin a todos los dispositivos de la red para que el mC cambie a CCOM0, permitiendo as la comunicacin directa con el mdulo, e indirecta con el mC. De esta forma, se podr establecer comunicacin con un dispositivo de la red, despus de enviar a todos la direccin de destino mediante una secuencia definida en el protocolo de enlace (apdo. 4.2.3). El dispositivo con el que se establezca conexin pasar al estado de servicio de red, implementado en la rutina de servicio de red o NTSR (Network Service Routine) del programa de sistema del mC, volviendo el resto de terminales de la red a su estado de operacin normal. En este estado, el mC se mantiene a la escucha de las respuestas del mdulo durante la comunicacin con el PC (enlace PC-MOD), entablada para que, desde la
36
Arquitectura
aplicacin de gestin del PC, se puedan enviar los patrones de huella de usuarios a la base de datos del mdulo, al igual que, recibirlos y borrarlos. De este modo, se realizar la actualizacin remota de la lista de usuarios autorizados, en el dispositivo controlador de acceso. Para cambiar ciertos parmetros de funcionamiento del dispositivo, el PC se comunicar indirectamente con el mC (enlace PC-mC) a travs del mdulo, el cual copia y contesta un determinado tipo de paquetes dirigidos al mC a tal efecto, como se especifica en el protocolo de enlace. El PC, como maestro del sistema de controladores de acceso, siempre ser el responsable de finalizar la comunicacin con cada dispositivo, despus de realizar las acciones demandadas, siendo el mC quien reciba y resuelva la orden de terminacin de la comunicacin para volver al estado normal o de usuario. Por ltimo, en este punto, se precisan las caractersticas fsicas particulares de la comunicacin serie asncrona adoptada en el dispositivo controlador de acceso: Canal de Comunicacin: Half-Duplex. Velocidad o Tasa de Transmisin (Baud Rate): 19.2 Kbps. Formato de Trama Com. Serie Asncrona (ver fig. 3.6): Trama de 10 bits con 1 Byte de Datos y sin bit de Paridad: [Start bit: 0]-[Datos: 8 bits]-[1 Stop bit: 1]. Niveles Lgicos Internos (asimtricos y no invertidos): Nivel Alto (1, H): VH 3.3 V; Nivel Bajo (0, L): VL 0 V. Estas caractersticas fundamentales, fijadas para las comunicaciones en el interior del dispositivo controlador, y a excepcin de los niveles lgicos internos; se impondrn tambin en la comunicacin externa de cada dispositivo con el PC, a travs de la red de terminales de control de acceso basada en el bus RS-485. El modo o canal de comunicacin Half-Duplex vino determinado, sobre todo, por la finalidad de la comunicacin con el mdulo de autenticacin, que consiste bsicamente en el envo de rdenes o comandos concretos al mdulo, definidos en su protocolo a nivel de enlace. Entonces, como slo emitir su respuesta despus de resolver la ejecucin de cada orden, se haca innecesaria la transmisin y recepcin simultnea de datos mediante el uso de un canal de comunicacin Full-Duplex. Asimismo, la tasa de transmisin de datos o Baud-Rate, en todo nuestro sistema, qued limitada a 19.2 Kbps, de entre las mximas alcanzables por el mdulo, 115.2 Kbps; y por el mC, 57.6 Kbps. Reduciendo as la probabilidad de errores de recepcin, principalmente en el microcontrolador, que al no disponer de una UART dedicada deba implementarse por programa empleando dos de sus puertos E/S. De
Arquitectura
37
todos modos, la tasa elegida, correspondiente a 1920 Bytes/s (Trama: 10 bits), mantiene un compromiso adecuado entre la reduccin de errores y el volumen de datos a transmitir, para el que es suficiente, teniendo en cuenta que el tamao de los paquetes del protocolo de enlace sern como mximo de 15 bytes, para cada comando; y de 384 bytes, para cada patrn de huella. En la siguiente figura, se detalla el formato de las tramas indicado anteriormente, que se emplea para la comunicacin serie asncrona en todo el sistema, sin olvidar que los niveles de tensin mostrados en ella son los especificados para la lgica interna del dispositivo (apdo. 3.1.4).
Start bit
8 Data bits
Stop bit
0
DE ( RE ) 0V
38
Arquitectura
(VOH|mn)A : Tensin de Salida Mnima para Nivel H (Componente A); (VIH|mn)B : Tensin de Entrada Mnima para Nivel H (Componente B); (VOL|mx)A : Tensin de Salida Mxima para Nivel L (Componente A); (VIL|mx)B : Tensin de Entrada Mxima para Nivel L (Componente B); MRH : Margen de Ruido para Nivel H (entre componentes A y B); MRL : Margen de Ruido para Nivel L (entre componentes A y B). La condicin de compatibilidad para las corrientes, teniendo en cuenta que las corrientes de salida y entrada tendrn signos contrarios, se expresa, para sus valores mximos, como sigue: (IOH|mx)A (IIH|mx)B + (IIH|mx)C + ; (IOL|mx)A (IIL|mx)B + (IIL|mx)C + ; para los puertos de salida del componente A conectados a los puertos de entrada de ms de un componente (B, C, ), y siendo: (IOH|mx)A : Corriente de Salida Mxima para Nivel H (Componente A); (IIH|mx)B,C : Corriente de Entrada Mxima para Nivel H (Comp. B,C,); (IOL|mx)A : Corriente de Salida Mxima para Nivel L (Componente A); (IIL|mx)B,C : Corriente de Entrada Mxima para Nivel L (Comp. B,C,). La compatibilidad de niveles lgicos entre los componentes presentes en nuestro diseo, est representada grficamente en la figura 3.7. En sta se muestran los mrgenes de tensin, representados por barras, que definen los niveles lgicos de cada componente. Las barras de los componentes conectados entre s se sitan de forma adyacente, y las flechas discontinuas indican el sentido de la conexin, de puerto de salida de un componente a puerto de entrada del otro, no mostrndose en caso de no existir tal conexin. De este modo, comprobamos, en la figura, que se cumple la condicin de compatibilidad de niveles lgicos, pudiendo obtener tambin de aqu los mrgenes de ruido de la conexin entre dos componentes cualesquiera. Asimismo, respecto a la compatibilidad de corrientes entre los puertos de los componentes se puede comprobar que tambin se cumple la condicin expuesta anteriormente, atendiendo a la tabla 3.3, en la que se especifican las corrientes mximas, de entrada y salida, para ambos niveles lgicos.
Arquitectura
39
VIMAX/VCC VOH
3.3V 3.2V
VCC VOH
VOH VIH
2.7V 2.3V
VIH
VIH
2.3V VIH 2V
0.8V
VIL VOL
0V -0.5V
GND
VIMIN
0V -0.1V
VIMIN/GND
VIMIN
VIMIN
[a]
Mdulo Autenticacin [OFM3010-FC] VIMAX VCC VOH 3.6V 3.3V 3V VIMAX/VCC 3.3V VIMAX/VCC VOH 3.3V 3.2V Transceiver [SN65HVD12] Puertas NAND [74HC00]
0.95V
GND
VIMIN
VIMIN
[b]
40
Arquitectura
Los componentes y sus puertos de E/S empleados, para los que se especifican dichos niveles lgicos, se listan a continuacin: Microcontrolador (mC) Sistema [RESCUE-4128]: Bus de Memoria (Puertos de Direcciones: [A0-A19]; Datos: [D0-D7]; Control Lectura/Escritura: RD , WR , PSEN ). Puertos E/S de propsito general dedicados (Com. Serie: CCOM(P2.0), ICOM(P0.2), mC_TX(P1.1), mC_RX(P0.0); Control Puerta Acceso: AP(P0.5), SP(P0.4), BS(P0.3). Puerto de Reinicio mC: RESET . Memoria Flash/SRAM [PSD854F2V]: Bus de Memoria (Puertos de Direcciones: [ADIO0-ADIO15, PB6, PB7]; Datos: [PA0-PA7]; Control Lectura/Escritura: [CNTL0-CNTL2]). Puertos JTAG de Programacin ISP: TMS(PC0), TCK(PC1), TSTAT(PC3), TERR (PC4), TDI(PC5), TDO(PC6). Puerto de Reinicio Memoria PSD: RESET . Mdulo Autenticacin Huella Dactilar [OFM3010-FC]: Puertos de Comunicacin Serie con Host Externo: MOD_TX(H_TXD), MOD_RX(H_RXD). Puertos E/S Propsito General: [GPIO0-GPIO7] (No Utilizados). Transceiver 3.3V/RS-485 [SN65HVD12]: Puertos R, RE , DE, D. Puertas NAND-2 Entradas [74HC00].
mC Sistema
Flash/SRAM
Md. Aut. HD
Transceiver
NANDs
-2.5 (memo) IOH|mx (mA) IIH|mx (A) IOL|mx (mA) IIL|mx (A) -1 -5 (E/S) 10 4 (memo) 8 (E/S) -10 1 4 -1
-4 10 4 -10
-4 1 4 -1
Arquitectura
41
42
Arquitectura
A continuacin, se describen las caractersticas de los circuitos de entrada y salida de audio, representados en el diagrama de bloques del diseo del dispositivo controlador (ap. A):
Circuito de Entrada de Audio:
Micrfono Electret Unidireccional*: Ganancia: 49dB (0 dB= 1V/Pa a 1 KHz). Valor Tpico Resistencia Fuente (en circuito de polarizacin): 1.2 k. Sensibilidad: -44dB 3dB cuando la Resistencia Fuente es 2.2 k.
* Especificaciones recomendadas por el fabricante del procesador de voz. Evitar el empleo de micrfonos omnidireccionales para reducir la captacin de ruidos ambientales que interfieran la locucin del usuario.
Circuito de Polarizacin del Micrfono: Lnea + del micrfono conectada a alimentacin, VDD = 3.3V, a travs de un Potencimetro de 2.2 k, como Resistencia Fuente. De este modo, podremos ajustar la Ganancia (Atenuacin) del micrfono, dentro de los mrgenes recomendados. Condensador de 100F, en paralelo al micrfono y a la resistencia fuente, para filtrar ruidos de baja frecuencia, como acondicionamiento previo al procesado en el AFE. Lnea + del micrfono conectada a las dos entradas de audio: MIC_IN1, MIC_IN2; a travs de Condensadores de Desacoplamiento DC de 100nF. En la PCB se montar un conector de 2 pines para micrfono areo.
Circuito de Salida de Audio:
Caractersticas de Salida del DAC: Resolucin de 10 bits. Codificacin de Niveles: [000h-3FFh]. Rango de Tensin de Salida: [0 (VDD-1LSB)]. Para VDD = 3.3V 1LSB 3.2mV (Intervalo Mn. de Tensin). Impedancia de Salida: 11 k. Amplificador de Audio TDA2822M (STMicroelectronics): Amp. Dual conectado en configuracin Puente (Bridge) con salida Mono. Rango de Alimentacin: [1.8V 15V]. Alimentado a: VS = 5V. Seal de Entrada referida a tierra (no diferencial). Potencia de Salida: Po = 700mW, valor tpico a 1KHz con RL = 8. Ganancia Lazo Cerrado (fija): GV = 39dB (v. tpico). Resistencia de Entrada: RI = 100k. Acondicionamiento Seal de Salida DAC/Entrada Amp.: Potencimetro Ajuste Volumen: 10k; a la entrada del Amp.
Arquitectura
43 Divisor Resistivo de VDD=3.3V y Condensador de Desacoplamiento. Mantiene la tensin a mitad de rango, VDD/2, para reducir clicks de los transitorios producidos al habilitar o deshabilitar el DAC. Atenuacin de la amplitud de salida del DAC para prevenir la saturacin del Amp. (adicional a la atenuacin del potencimetro). Filtro pasa-baja RC (fc = 1.6KHz), a la entrada del Amp. Compensa el pre-nfasis de frecuencias altas usado en la creacin de los mensajes y sonidos a reproducir (recomendado por fab. Procesador de Voz).
Altavoz: RL = 8. Red de Zobel (RC-Serie), en cada lnea de salida del Amp. (conectadas a los bornes del altavoz), para reducir la posibilidad de oscilacin del Amp. debido a la carga inductiva del altavoz. En la PCB se montar un conector de 2 pines para altavoz areo.
Seal (puerto) mC de Salida, AP(P0.5): activacin del rel abre-puerta cuando AP1 (AP0: Reposo). Rel Abre-Puerta empleado, NAIS-TQ2 de 5V con dos formas de conexin: Normalmente Cerrado (NC) y Normalmente Abierto (NO). Circuito de Amplificacin de Corriente: lnea AP conectada a la base de un transistor en configuracin Emisor Comn, con el rel entre alimentacin de 5V y colector. Necesario para conseguir la corriente mnima de funcionamiento del rel. Lneas Externas para conectar el electro-imn de cierre de la puerta al rel: C: Comn conectado a alimentacin externa +12V. NC: conexin del electro-imn de cierre Normalmente Cerrada. NO: conexin del electro-imn de cierre Normalmente Abierta. Temporizacin de la seal AP mediante TIMER2 del mC. Tiempo de Apertura o de activacin del rel abre-puerta: parmetro configurable por el administrador del sistema, a travs de la interfaz de usuario definida por programa.
Sensor de Puerta Abierta, permite al mC detectar si la puerta de acceso sigue abierta tras un periodo especificado, y en tal caso, activar una seal acstica de alarma:
44
Arquitectura
Seal (puerto) mC de Entrada, SP(P0.4): si la lnea est en circuito abierto entonces, SP1, debido a pull-up interno. Lnea Externa, SP, para conectar el sensor al puerto del mC. Sensor de Puerta Abierta de tipo interruptor conectado a tierra: Para Sensor Normalmente Cerrado (NC): SP0: Puerta Cerrada (Reposo), SP1: Puerta Abierta; Para Sensor Normalmente Abierto (NO): SP1: Puerta Cerrada (Reposo), SP0: Puerta Abierta; Proteccin elctrica la lnea SP frente a descargas electroestticas (ESD) o por conexin errnea a alimentacin: Resistencia de limitacin de corriente seguida de un Clamp a 3.3V. Temporizacin de la seal SP mediante TIMER2 del mC. Tiempo Mnimo del estado Puerta Abierta fijado por programa para evitar la falsa deteccin debida a posibles glitches en la lnea ( 250 ms). Tiempo Mximo de Puerta Abierta (despus de acceso autorizado): parmetro configurable por el administrador del sistema, a travs de la interfaz de usuario definida por programa.
Pulsador o Botn de Salida, permite al usuario dar la orden de apertura de la puerta desde el interior del inmueble. Desde el mC se activar el rel abre-puerta despus de detectar la pulsacin:
Seal (puerto) mC de Entrada, BS(P0.3) : si la lnea est en circuito abierto entonces, BS1, debido a pull-up interno. Lnea Externa, BS, para conectar el pulsador al puerto del mC. Pulsador o Botn de Salida de tipo interruptor conectado a tierra: Para Pulsador Normalmente Cerrado (NC): BS0: Reposo, SP1: Pulsacin; Para Pulsador Normalmente Abierto (NO): SP1: Reposo, SP0: Pulsacin; Proteccin elctrica la lnea BS frente a descargas electroestticas (ESD) o por conexin errnea a alimentacin: Resistencia de limitacin de corriente seguida de un Clamp a 3.3V (Idem lnea SP). Temporizacin de la seal BS mediante TIMER2 del mC. Tiempo Mnimo del estado de Pulsacin fijado por programa para evitar la falsa deteccin debida a posibles glitches en la lnea ( 250 ms).
Arquitectura
45
46
Arquitectura
mC Sistema
Flash/SRAM
Md. Aut. HD
Transceiver
CI NANDs
Activo (Normal)
Recepcin (Normal)
Rel AP
Reposo (Normal)
ISup|mx
(mA)
20
50
Escan./Identif.
8
Transmisin
50(x2)
6.3
a Pot. Mx.
0
Activacin
110/120
15.5
290
28.1
Condiciones de Func.:
Normal
ItCAB|mx
(mA)
186
246/256
193
469
214
Tabla 3.5: Estimacin del Consumo de Corriente Mximo del dispositivo controlador de acceso (ItCAB|mx), para las diferentes condiciones de funcionamiento de sus componentes.
Arquitectura
47
48
Arquitectura
Figura 3.8: Esquema tpico de conexin al bus de una red RS-485 de canal de comunicacin Half-Duplex (2 hilos).
La estructura del bus RS-485 permite la comunicacin multipunto, es decir, que cualquier transceiver de la red puede ser transmisor, pero, en un momento dado, slo uno podr ocupar el bus para transmitir mientras el resto escucha. Para no bloquear el bus, mientras tanto, estos terminales configurarn la salida de su driver (D en la figura 3.8) en el estado de alta impedancia, llamada tambin condicin tri-estado. Tal y como se muestra en el esquema de la red RS-485 anterior, su topologa se basa en un bus principal entre los dispositivos extremos y los dems enganchados a ste por una conexin o Stub lo ms corta posible. Esto es as, para poder realizar la adaptacin de impedancias correctamente y evitar reflexiones de potencia de la seal, en los diferentes puntos de conexin a la red, que degradaran sus niveles de tensin e induciran errores en la recepcin de datos. Por tanto, podremos adaptar la impedancia caracterstica, Z0, de la lnea de transmisin del bus, terminndolo con las resistencias RT en cada extremo (RT = Z0[100-120] , en cables de par trenzado tpicos); y como los stubs son cortos, en estas lneas de conexin no habr una impedancia distribuida significativa, por lo que no se producir desadaptacin.
Arquitectura
49
o la de daisy-chain (fig. 3.9[b]), en la que reducimos al mnimo la longitud de las lneas de conexin al bus, siendo ms adecuada que la anterior.
Figura 3.9: Topologas de red recomendadas por el estndar RS-485: [a] rbol
con Stubs Cortos; [b] Daisy-Chain o en Cadena.
Por otra parte, vemos que las topologas en rbol con stubs largos (fig. 3.10[a]) y en estrella (fig. 3.10[b]) se deben evitar por presentar problemas de desadaptacin de impedancias en ambos casos. En el caso de la configuracin en estrella, donde se intentan adaptar las diferentes lneas de transmisin, se produce adems de la desadaptacin de los buses en su punto de confluencia, un exceso de carga, fuera de especificacin de la norma, para el transceiver central que tiene que transmitir a varios buses conectados en paralelo. Todo ello contribuir a la degradacin de los niveles de tensin y distorsin de la seal en estas configuraciones.
50
Arquitectura
Recordemos que, en todo el sistema de control de accesos se impuso el canal de comunicacin Half-Duplex, tanto a nivel interno de cada dispositivo tCAB, para la comunicacin del microcontrolador con el mdulo; como a nivel externo en la red de terminales de control de acceso, para el enlace establecido desde el PC. Por tanto, el transceiver empleado en cada terminal ser de tipo Half-Duplex, con conexin a un bus de 2 hilos para transmitir o recibir las tramas RS-485 en la red tCAB.
Arquitectura
51
A continuacin se presenta el esquema del sistema de control de accesos, en ste podemos observar la estructura de la red tCAB con N+1 nodos de comunicacin y topologa daisy-chain o en cadena (ver fig. 3.12, detalle de conexin en cadena). La componen N terminales de control de acceso biomtrico y un dispositivo transceiver de Fermax, como interfaz RS-485/RS-232 para el PC, host central o maestro del sistema. Este dispositivo se conectar a uno de los puertos COM del PC utilizando un cable Null-Modem con conector DB-9.
Figura 3.11: Esquema del sistema de control de accesos, formado por una red de
N terminales de control de acceso biomtrico (red tCAB), basada en el bus RS-485 de 2 hilos para comunicacin Half-Duplex; y centralizada en un PC, como host central y gestor del sistema.
Las propiedades particulares de nuestra red, basada en la norma RS-485, dependern del tipo de transceptores y cables de par trenzado utilizados para implementarla, pero, en general, configuraciones tpicas de estos elementos cumplirn las condiciones suficientes, en cuanto a nmero de transceptores, alcance y velocidad de transmisin,
52
Arquitectura
para poder dimensionar nuestra red de terminales de control de acceso a gran variedad de edificios o permetros de acceso restringido.
Figura 3.12: Detalle de conexin, al bus RS-485 en cable de par trenzado, de las
lneas A/485+ y B/485- correspondientes a los terminales de la red tCAB con topologa en cadena o daisy-chain.
El transceptor o transceiver SN65HVD12 de Texas Instruments, incorporado en el diseo de cada dispositivo tCAB, cumple y excede las especificaciones impuestas por el estndar ANSI TIA/EIA-485-A para interfaces equilibrados o diferenciales RS-485. Este transceiver de la clase 3.3V/RS-485 Half-Duplex realizar la conversin de niveles, sustrayendo las seales 485+ y 485- del par diferencial RS-485 (seales A y B en la nomenclatura estndar), para conseguir los niveles lgicos de la comunicacin establecida en el dispositivo controlador de acceso. En la figura 3.13 podemos ver detallada la conversin de niveles de tensin que realiza el transceiver cuando acta como transmisor (driver) o receptor (receiver). Hay que sealar que, para situaciones de inactividad del bus (Idle-Bus), cuando todos los transceivers estn en tri-estado, la seal diferencial VID tiende a 0V por lo que se pueden interpretar falsas transmisiones al estar indeterminada la salida de recepcin R en el transceiver. Para evitar este tipo de errores hay que asegurar el estado alto (H) de reposo en la lnea de recepcin interna, R. Esto se consigue normalmente terminando el bus con un pull-up para la lnea A y un pull-down para la B, definiendo as un estado conocido en el bus (Bus Biasing). Alternativamente, el transceiver elegido asegura el estado de reposo (H) en la salida de recepcin R, en respuesta a los 0V de entrada diferencial desde el bus en tri-estado, al tener el umbral de deteccin del estado alto por debajo de 0V (VID -10 mV). Por ello, al tratarse de un receptor Fail-Safe no fue necesario definir el estado del bus de la forma indicada anteriormente, disponiendo, adems, de Fail-Safe para situaciones de cortocircuito y circuito abierto en las lneas del bus, como se muestra en la tabla [c] de la siguiente figura.
Arquitectura
53
Figura 3.13: [a] Lneas disponibles del transceiver SN65HVD12 (vista superior), con VCC = 3.3 V. Tablas de funcin del transceiver: [b] Transmisor (Driver),
Tensin de Salida Diferencial |VOD| = |VAVB| 1.5 V; [c] Receptor (Receiver), Rango de tensin de las seales [VA,VB] [-7V..12V], Tensin de Entrada Diferencial |VID| = |VAVB| 12 V, Impedancia de Entrada RIN = (812) k.
Las dimensiones mximas o el escalado de la red tCAB depender de tres especificaciones bsicas del transceiver, SN65HVD12, seleccionado: Nmero Mximo de Transceivers en la Red: 256 (1/8 Unit Load). Velocidad o Tasa Mxima de Transmisin: 1Mbps. Longitud Mxima o Alcance de Enlace: 1200 m a 100 Kbps. Cada transceiver conectado al bus, como receptor o transmisor inactivo, pone su salida diferencial en el estado de alta impedancia (condicin tri-estado), pero como sta nunca puede ser infinita cada uno aadir una carga incremental en paralelo al bus. Por tanto, el nmero de cargas o transceivers que el bus pueda soportar estar limitado para garantizar que cada transceiver pueda transmitir a una tensin de salida diferencial mnima de 1.5V. En las especificaciones del estndar RS-485, se define el parmetro de Carga Unidad (Unit Load) para un transceiver, con 12 k de Impedancia de Entrada (RIN), y modelo de bus estndar, que determina un mximo de 32 transceivers. ste es un parmetro de referencia que se usa para caracterizar los transceivers, entonces, para el nuestro, al tener 1/8 de la Carga Unidad correspondiente a una RIN = (812 = 96) k, se podr construir una red de un nmero de dispositivos 8 veces mayor que el estndar (328 = 256).
54
Arquitectura
Respecto al escalado de nuestra red nos interesa disponer de un nmero de terminales y alcance lo ms elevado posible, sacrificando para ello en ancho de banda del bus. Aunque esto ltimo no supuso un problema ya que, la velocidad de transmisin entre el host central y los terminales se limit a un valor mucho menor que el lmite de 100 Kbps, establecido para la longitud del bus mxima de 1.2 Km. Adems, debido a que la longitud mxima del bus puede ser un factor limitante a la hora de realizar la instalacin de la red en un edificio, siempre podremos utilizar repetidores de seal cada cierto nmero de terminales, incrementando as la longitud efectiva del bus, aunque nunca superando el nmero mximo de 256 nodos que ste puede soportar. En el ejemplo de la figura 3.14, se puede ver cmo doblamos el alcance del bus de la red, gracias a colocar un repetidor entre dos tramos de cable de par trenzado de 1200 m, correctamente terminados con las resistencias de adaptacin RT.
Figura 3.14: Esquema de la Red tCAB extendida a 2400 m con 2 tramos de bus
de 1200 m de cable par trenzado conectados mediante un repetidor de seal. Cumpliendo la condicin para el nmero mximo de nodos en la red: (M+1)256 con N<M.
En definitiva, las caractersticas y elementos principales de la infraestructura de la red tCAB, cuyo esquema se expuso en la figura 3.11, sern los siguientes: Estructura de la Red: Bus RS-485 de Canal Bidireccional Half-Duplex (2 hilos) en configuracin Maestro/Mltiples Esclavos, con topologa Daisy-Chain. PC Maestro de los dispositivos tCAB en la red, o Host Central: ejecuta la aplicacin para gestionar los tCAB (apdo. 4.3) mediante el protocolo a nivel de enlace implementando. Interfaz RS-485/RS-232 (Fermax): nodo de conexin al bus RS-485 del PC, convirtiendo los niveles del enlace RS-232 establecido, a travs de un cable Null-Modem, desde su puerto COM. Nmero Mximo de Terminales de Control de Acceso Biomtrico: (N+1)256, para N tCABs ms el nodo Maestro del PC. Longitud Mxima o Alcance de Enlace: 1200m a 100 Kbps. Cable del Bus RS-485: Par Trenzado Cat. 5.
Arquitectura
* Valor mnimo recomendado de la carga que ver cada transceiver conectado al bus, para asegurar una tensin de salida diferencial: |VOD| = |VAVB| 1.5 V. Esta carga se calcula para el total de resistencias en paralelo aadidas al bus (al menos, las impedancias de entrada de todos los transceivers, ms las resistencias de terminacin del bus).
Formato de Trama Com. Serie Asncrona (ver fig. 3.15): Trama de 10 bits con 1 Byte de Datos y sin bit de Paridad*:
* Fijada por diseo en el tCAB.
[Start bit: 0]-[Datos: 8 bits]-[1 Stop bit: 1]. Niveles Lgicos del Transceiver en el Bus RS-485: Nivel Alto (1, H): Transmisor (Driver): VOD = VAVB 1.5 V; Receptor (Receiver): VID = VAVB -0.01 V; Nivel Bajo (0, L): Transmisor (Driver): VOD = VAVB -1.5 V; Receptor (Receiver): VID = VAVB -0.2 V.
Red de Alimentacin (ver fig. 3.11):
Distribucin de Fuentes de Alimentacin (220 Vac / 12 Vdc): el nmero mximo de dispositivos tCAB por fuente de alimentacin vendr determinado por la corriente de salida mxima de la fuente, IOS|mx; y el consumo mximo de cada tCAB ItCAB|mx, cumpliendo siempre: IOS|mx > n ItCAB|mx, n Nmero mx. tCABs / Fuente Alimentacin. Conexin a Masa Comn en Estrella: se utilizar esta configuracin para conectar las lneas de referencia de tensin (-), de cada dispositivo, a un punto de masa comn. De esta forma, se minimizar el acoplamiento galvnico, o bucles de masa, que se produciran al utilizar mltiples puntos de masa o una lnea de masa con puntos de conexin distribuidos, que benefician la introduccin de tensiones de ruido en el bus de comunicaciones (ver fig. 3.16).
56
Arquitectura
3.3V TX / RX
Inicio Trans.
Start bit
8 Data bits
Stop bit
Fin Trans.
0
DE ( RE ) 0V 3.3V
0V
-3.3V
Figura 3.15: Ejemplo de Trama Comunicacin Serie Asncrona (10 bits). Se representan los niveles lgicos aproximados de la comunicacin interna en el dispositivo tCAB, y los niveles de tensin de la trama en el bus RS-485: V485+/A y V485/B, en cada lnea del bus (en medio); y, la salida diferencial del transceiver VOD = V485+/AV485/B (abajo).
VREF1
VREF2
La Resistencia de Tierra a esta corriente causa una diferencia de potenciales de referencia: VREF2 VREF1.
Captulo 4
Funcionamiento y Desarrollo Software
Este captulo est dividido en tres partes correspondientes al desarrollo software del todo el sistema. En primer lugar, se explicar el funcionamiento del dispositivo controlador de acceso desde el punto de vista del usuario, viendo as el resultado de la ejecucin del programa de sistema o firmware. Seguidamente, pasaremos a describir los detalles de su estructura, desarrollo, y programacin en el dispositivo. Por ltimo, se presentar la aplicacin PC desarrollada para la gestin de la red de terminales de control de acceso (Red tCAB). Como parte fundamental del sistema, y definido ad hoc para el mismo, tambin se explica aqu el protocolo de comunicacin a nivel de enlace, que ordena la actividad de la red tCAB, y que se implement tanto en el firmware del dispositivo, como en la aplicacin de gestin de la red. Todo ello, como se estableci en los objetivos de este proyecto de ingeniera, se enmarca dentro de sus dos primeras fases de desarrollo.
57
58
Para nuestro dispositivo se eligi, por defecto, registrar al usuario en la base de datos del mdulo con 2 patrones de huella de su dedo. Esto es as debido a que los algoritmos de reconocimiento de huella mejoran su ejecucin al comparar la huella de entrada del usuario, en el momento de su autenticacin, con dos patrones en lugar de uno, disminuyendo notablemente de la tasa de falsos rechazos y ofreciendo as unas mejores prestaciones. Opcionalmente, el administrador del sistema podr elegir si el usuario se registra con una huella ms de un Segundo Dedo o Dedo Auxiliar. Esta opcin se incluy para que el usuario pudiese acceder al inmueble despus de autenticarse con el dedo auxiliar, en caso de tener daado el dedo empleado habitualmente. Como es lgico esto reducir el nmero mximo de usuarios que puedan ser registrados en el dispositivo. En consecuencia, la capacidad de usuarios del controlador de acceso depender de la utilizacin de esta opcin, oscilando entre una capacidad mxima, si todos los usuarios se registrasen slo con un dedo, y una capacidad mnima en caso de registrarlos siempre con una huella extra del dedo auxiliar: Capacidad Mxima tCAB: 955 Us.; Capac. Patrones =1910 / 2 Pat. Huella Capacidad Mnima tCAB: 636 Us.; Capac. Patrones =1910 / 3 Pat. Huella.
El controlador de acceso emplear los dos Modos de Autenticacin por huella dactilar disponibles en el mdulo: Identificacin: despus de capturar la imagen de la huella, por medio del lector trmico, se extraen los puntos caractersticos de la huella (minucias) para formar el patrn de huella. ste se comparar con los N patrones existentes en la base de datos de usuarios autorizados, realizando una bsqueda 1:N, mediante los algoritmos de reconocimiento de huella dactilar del firmware del mdulo. Verificacin: se diferencia del anterior en que el patrn de huella obtenido del usuario, en el momento de la autenticacin, se compara slo con un patrn de la base de datos de usuarios autorizados (1:1), el cual ser indicado por el usuario al introducir su nmero de identificacin (Pre-identificacin).
La Interfaz de Usuario del dispositivo controlador de acceso biomtrico, que permitir su uso y funcionamiento, se puede dividir en dos partes: Lector de Huella Dactilar (Trmico): obtiene la imagen de la huella del usuario para que el mdulo de autenticacin realice el proceso de identificacin o verificacin. Funciona deslizando el dedo sobre el lector, segn se indica en la figura 4.2. Interfaz de Usuario por Voz (VUI, Voice User Interface): ofrece una interaccin lo suficientemente compleja entre el dispositivo y el usuario como
59
para poder introducir datos, ordenar acciones y guiarlo en su manejo. Para ello, la interfaz de voz se implement en el programa del sistema, utilizando los recursos del Procesador de Voz/mC, y se basa en las siguientes funciones, asociadas a los elementos perifricos de entrada y salida de audio (ver ejemplo del procedimiento de uso de la VUI, fig. 4.1): Reconocimiento de Comandos de Voz / Micrfono: el dispositivo es capaz de reconocer comandos de voz, independientemente del usuario o locutor que las emita, formados por 1 o 2 palabras. El usuario dispondr de varios conjuntos de comandos de voz posibles, o vocabularios aceptados (Mx. 20 Comandos/Vocabulario), de los que slo uno ser activo en la etapa correspondiente de uso del dispositivo (detalles de la generacin de los vocabularios en apdo. 4.2.2). Las locuciones del usuario sern captadas por el micrfono a una distancia mxima, para un reconocimiento adecuado, de 1m (aprox.). Reproduccin de Mensajes Pre-grabados / Altavoz: el dispositivo reproducir mensajes de voz o frases, adems de emitir sonidos de aviso y alarma, que servirn para dirigir al usuario durante su empleo. Todos ellos, almacenados en memoria como una tabla de mensajes y sonidos compuesta previamente. (detalles de la generacin de esta tabla en apdo. 4.2.2).
1
Entrada Comando de Voz*
*Vocabulario: *Vocabulario:
[<Palabra/s 1>] Accin 1 [<Palabra/s 2>] Anlisis Comando de Voz [<Palabra/s 3>] Accin 3 Accin 2
<Palabra/s 1> <Palabra/s 1> <Palabra/s 2> <Palabra/s 2> <Palabra/s 3> <Palabra/s 3>
60
Figura 4.2: Aspecto del Lector de Huella Dactilar empleado, e indicacin del movimiento de deslizamiento del dedo sobre el lector que se debe realizar para su correcto funcionamiento.
El dispositivo controlador de acceso est preparado para operar de forma autnoma y, tambin, en el entorno de una red de controladores de acceso, cuya estructura se describi en el apartado 3.4 y a la que denominamos red tCAB. Entonces, antes de conocer los detalles de funcionamiento y uso del dispositivo, en los siguientes puntos de este apartado, debemos distinguir entre sus dos posibles modos de operacin: Modo de Operacin Autnomo (Stand-Alone): adems de ofrecer los servicios de autenticacin por huella dactilar para el control de acceso de usuarios, durante el funcionamiento normal del dispositivo. Para que ste pueda operar sin depender de sistemas externos, dispone de un men de configuracin, accesible slo para el administrador del sistema, y mediante el cual tendr la posibilidad de aadir y borrar usuarios, as como, modificar ciertos parmetros de funcionamiento del dispositivo. La seleccin de las distintas opciones de configuracin se realizar por medio de la interfaz de voz, como se mostrar en el punto 4.2.2. Modo de Operacin en Red (Network): cuando el dispositivo pertenezca a la red tCAB, tanto las acciones de configuracin de parmetros como las de aadir y borrar usuarios en cada dispositivo, sern responsabilidad de la aplicacin de gestin de la red, ejecutndose de forma remota desde el PC. Por tanto, el acceso al men de configuracin quedar bloqueado mientras el dispositivo se encuentre en este modo de operacin, aunque manteniendo siempre el funcionamiento normal de control de su puerta de acceso. Cambio de Modo de Operacin: por defecto, cada dispositivo operar de modo autnomo, cambiando automticamente al modo de red cuando se establezca por primera vez el enlace de comunicacin con el PC. La vuelta al modo autnomo se realizar enviando la orden correspondiente desde el PC, cuando se quiera desvincular al dispositivo de la red para operar de forma individual.
61
62
cantidad de usuarios, el tiempo de respuesta de identificacin de la huella del usuario empieza a no ser operativo, siendo ms rpido el empleo del modo verificacin, aunque la conveniencia de la utilizacin de uno u otro modo siempre ser bajo el criterio del administrador.
MASTER
1 1
Entrada/Escaneo Huella Dactilar Mens. Error:
Tono Huella insuficiente, intntelo de nuevo
Mens. Info.:
3
Identificacin Huella Dactilar
Mens. Info.:
ACCESO AUTORIZADO [Identificacin Positiva] (MASTER)
Config
Mens. Info.:
ACCESO A MODO CONFIGURACIN
63
MASTER
1 1
Entrada/Escaneo Huella Dactilar Mens. Error:
Tono Huella insuficiente, intntelo de nuevo
2
Mens. Info.:
Diga su nmero de identificacin, despus de la seal
2
Mens. Error:
No lo he entendido, repita por favor Eleve su voz, repita por favor
Tono
1
Verificacin Cancelada
Mens. Info.: Lmitacin de Intentos: Nmero de Intentos Superado, intntelo otra vez Pre-Identificacin [<PIN>]/[Mster]
[Verificacin Negativa]** o [Puerta Bloqueada]
Mens. Info.:
3
[Verificacin Positiva] (USUARIO)
Mens. Info.:
ACCESO AUTORIZADO [Verificacin Positiva] (MASTER)
Config
Mens. Info.:
ACCESO A MODO CONFIGURACIN
64
[Alarma Apagada] Activacin Rel Abre-Puerta SP [Abierta] Temporizacin (t) Rel Abre-Puerta Mens. Info:
Puerta Abierta. Por favor, cierre despus de entrar (No Emitido durante Salida Usuario, BS)
Alarma
Mens. Info: Sensor de Puerta SP Tiempo Apertura Tap: Tap = 5s, por defecto; Si Tap = 0s Puerta Bloqueada.
Puerta Abierta. Cierre la Puerta
Tiempo Sensor Tsen: Tsen = 10s, por defecto; Si Tsen = 0s Alarma Puerta Abierta Apagada.
1
Pulsacin Botn Salida(BS) Salida del Usuario
65
Acciones de Control sobre la Puerta de Acceso. En la figura 4.5 podemos ver detalladamente la secuencia de control de puerta, iniciada despus de comprobar que el usuario est autorizado para el acceso, y en consecuencia, activar el rel abre-puerta, para que el usuario pueda abrir la puerta, durante un tiempo determinado al que denominamos Tiempo de Apertura (Tap). El sistema detectar si la puerta est abierta o cerrada por medio del Sensor de Puerta (SP). ste permite al dispositivo decidir si hace sonar el sonido de alarma y el mensaje informativo de Puerta Abierta, en caso de agotarse el tiempo mximo de puerta abierta, o Tiempo Sensor (Tsen), despus de que el usuario haya abierto la puerta para entrar en el inmueble. La alarma y el mensaje de puerta abierta se repetir peridicamente, como medida de seguridad, hasta que el sensor de puerta detecte que la puerta se ha cerrado. El administrador del sistema podr ajustar la temporizacin de apertura (Tap) y de la alarma (Tsen) seleccionando la opcin Tiempos del men de configuracin, como se explicar en el siguiente punto (fig. 4.9). Por defecto, el sistema asigna un tiempo de apertura de 5s, y 10s para el tiempo mximo del sensor en estado de puerta abierta. Si el administrador ha configurado el tiempo Tsen=0s, la alarma de puerta abierta permanecer apagada. Del mismo modo, si Tap=0s, la puerta de acceso quedar bloqueada denegando el acceso a cualquier usuario. Para abrir la puerta desde el interior del inmueble el usuario dispone del Botn de Salida. El sistema detectar su pulsacin, desde el estado de reposo, y se iniciar la misma secuencia de apertura y control de puerta que en el acceso, a excepcin del mensaje emitido al abrir la puerta, como se puede ver en la siguiente figura. Hay dos situaciones, no detalladas en los diagramas de funcionamiento, en las que se disparar la alarma de puerta abierta inmediatamente: (i) si el sistema se inicia con la puerta abierta; (ii) si, en algn momento durante su funcionamiento normal, se detecta que se ha abierto la puerta de forma forzada.
66
Men Principal de Configuracin (Fig. 4.6). El acceso al men de configuracin se realiza, por los mismos procedimientos de autenticacin que para el acceso normal al inmueble, expuestos anteriormente (fig. 4.3, 4.4), pero slo ser accesible para el administrador del sistema. Por tanto, como se puede observar en las figuras mencionadas, el administrador o mster utilizar su dedo mster, cuyas huellas se han registrado previamente como tal (en Opcin Men: Mster), para autenticarse, mediante el modo de identificacin o de verificacin, y as entrar en modo configuracin. Recordar que, para el modo de verificacin, adems de introducir su huella el administrador deber decir la palabra clave Mster para pre-identificarse por voz, como se muestra en los diagramas de flujo de los modos de autenticacin. El diagrama de la figura 4.6 muestra cmo seleccionar las opciones de configuracin del sistema, correspondientes a los comandos de voz aceptados en el vocabulario de la interfaz de voz (VUI), y que conforman el men de configuracin. Seguidamente, listamos todas las opciones disponibles en el men de configuracin y la descripcin de sus funciones respectivas: Opcin [Aadir]: registro de las huellas de un Nuevo Usuario para que, en adelante, pueda acceder al inmueble despus de autenticarse como usuario autorizado. Opcin [Borrar]: permite borrar usuarios, de uno en uno indicando su PIN, o bien, borrar toda la base de datos de patrones de huella de usuarios. Opcin [Tiempos]: permite modificar los tiempos de Apertura (Tap) y Sensor (Tsen), correspondientes, respectivamente, al tiempo de activacin del rel abre-puerta; y, al tiempo mximo antes de emitir la alarma y el aviso de puerta abierta despus de entrar al inmueble.
67
Config
1
Mens. Info:
Operacin Prohibida
5
Mens. Info.:
[No Reconocido]
Tono
5
Mens. Error:
No lo he entendido, repita por favor Eleve su voz, repita por favor
[Salir/Adis]
Aadir Aadir Borrar Borrar Tiempos Tiempos Voz Voz Segundo Dedo Segundo Dedo Identificar Usuario Identificar Usuario Mster Mster Salir/Adis Salir/Adis Ayuda Ayuda
SALIR
AADIR
BORRAR
TIEMPOS
VOZ
2ODEDO
IDENTIFICAR
MASTER
5
Operacin Cancelada
Mens. Info.:
Mens. Info.:
*Vocabulario: *Vocabulario:
Cancelar Cancelar
Cancelacin de la Operacin
68
Opcin [Voz]: cambio del modo de autenticacin de usuario, entre el Modo de Identificacin (Pre-identificacin por Voz: Desactivada) y, el Modo de Verificacin (Pre-identificacin por Voz: Activada). Opcin [Segundo Dedo]: afecta a la opcin de aadir usuarios. Si esta opcin est activada, permitir el registro de la huella de un dedo auxiliar del usuario, una vez terminado el registro de las huellas del dedo que el usuario vaya a emplear habitualmente. Opcin [Identificar Usuario]: permite identificar a un usuario registrado facilitando su PIN, y as poder recuperarlo en caso de prdida u olvido. Opcin [Mster]: mediante un procedimiento similar al de aadir usuarios, esta opcin permite sustituir al administrador o mster actual por otro. Tambin, en caso de no existir administrador, se utilizar esta opcin para registrar al nuevo mster del sistema. Opcin [Salir/Adis]: finaliza o sale del men de configuracin, volviendo al funcionamiento normal. El sistema, despus de emitir un mensaje seguido por un tono, indica que est listo para su operacin normal. Opcin [Ayuda]: enuncia las opciones de configuracin disponibles para recordrselas al administrador en caso de duda.
Opcin de Configuracin: AADIR (Fig. 4.7). Despus de seleccionar por voz la opcin Aadir empieza el procedimiento del registro de las huellas del nuevo usuario, que estar guiado, en cada momento, por los mensajes incorporados en la VUI. El nuevo usuario se aadir como usuario autorizado registrando, por defecto, 2 huellas del dedo que vaya a emplear habitualmente. Si la opcin Segundo Dedo est activada significa que, despus de registrar el primer dedo, el sistema pedir al usuario que introduzca 2 huellas ms de un dedo auxiliar. En este caso, slo se almacenar un patrn de huella que corresponder a la huella capturada de mayor calidad. Por tanto, el nuevo usuario se registrar con 2 3 patrones de huella. Obligatoriamente, con 2 patrones de huella del primer dedo, y de manera opcional, con 1 patrn de huella extra correspondiente al segundo dedo. Al terminar con xito la introduccin y almacenamiento de los patrones de huella del nuevo usuario, el sistema asignar el nmero de identificacin personal (PIN) de forma automtica. El PIN se utilizar para acceder al inmueble slo en modo verificacin, as como, para borrar al usuario de la memoria del dispositivo. Debido a que, en general, el sistema puede interpretar errneamente los comandos de voz, correspondientes a las diferentes opciones del men de configuracin, y, por
69
tanto, seleccionar una opcin no deseada; siempre existir la posibilidad de cancelar la operacin, iniciada por error, empleando el comando Cancelar. En este caso, el comando de cancelacin de la operacin se podr decir justo despus de escuchar el mensaje de la opcin seleccionada: Aadir Nuevo Usuario; como se muestra en el siguiente diagrama de funcionamiento.
AADIR
5
Mens. Info.:
Operacin Cancelada
[No Reconocido]
A1
*Vocabulario: *Vocabulario:
Cancelar Cancelar
Cancelacin de la Operacin
Bucle de Entrada (2 veces) 2 Huellas Nuevo Usuario Mens. Error: Mens. Info.:
Memoria Llena
A1
Tono
El nuevo usuario debe desplazar su dedo sobre el lector de huella Desplace, otra vez, su dedo sobre el lector de huella
Mens. Error:
La operacin ha fallado, intntelo de nuevo
Mens. Error:
Tono Tiempo de espera agotado, intntelo de nuevo
A1
Patrones de Huella (guardados) por Usuario: 1er Dedo (obligatorio): 2 Pat. Huella; 2 Dedo (opcional): + 1 Pat. Huella. [i] Si Opcin: [Segundo Dedo] Activada. [ii] Informa del PIN (Asignacin Automtica), y Fin de la Operacin Aadir Usuario.
70
B1
Mens. Info.:
Diga el identificador del usuario. Borrar Todo, para borrar a todos los usuarios
5
Mens. Info.:
Nmero de Intentos Superado, intntelo otra vez BORRAR
B1
Tono
B2
[i]
[ii]
[iii]
B2
[No Recdo.]
Tono
BORRAR
Mens. Error:
No lo he entendido, repita por favor Eleve su voz, repita por favor
Mens. Info.:
Repita por favor
[No] para ([i]-[ii]-[iii]) [ii]-[iii] [Cancelar] [S] [ii]-[iii] [i] Mens. Info.:
Operacin Cancelada
[i]
S, No S, No Cancelar Cancelar
Confirmacin de la Operacin
Mens. Error:
[ii] Usuario No Encontrado [ii] Operacin Prohibida (Si [<PIN>]=[<PIN MASTER>] = [9999]) [iii] La Operacin ha fallado, intntelo de nuevo
4
Mens. Info.:
[ii] USUARIO BORRADO [iii] Todos los Usuarios Borrados. MEMORIA VACA
71
Opcin de Configuracin: BORRAR (Fig. 4.8). Para eliminar o borrar a un usuario y todas sus huellas de la memoria, el administrador deber introducir su PIN, empleando la VUI, de la forma indicada en el diagrama de abajo. Asimismo, en caso de querer borrar a todos los usuarios, en el vocabulario activo de esta opcin se dispone del comando de voz Borrar Todo. Esta operacin y debido a la posible interpretacin errnea del PIN del usuario a borrar, o de cualquier otro comando disponible, siempre deber ser confirmada tal y como se indica en el bloque de la VUI de Confirmacin de la Operacin. Vemos tambin, que el sistema ofrece al mster la posibilidad de cancelar la operacin en diferentes momentos de la misma, usando el comando Cancelar. Para evitar borrar al mster, ante la posible introduccin de su PIN = [9999] de forma accidental, el sistema no permitir esta operacin. Aunque s podr ser borrado, si ejecutamos la operacin de Borrar Todo, usualmente, con el propsito de reiniciar el sistema. En la opcin Mster se podr restaurar al administrador o mster del sistema en esta situacin.
Opcin de Configuracin: TIEMPOS (Fig. 4.9). Primero se seleccionar la opcin, incluida en el vocabulario activo, del tiempo que se quiera modificar: Apertura (Tap) o Sensor (Tsen) (ver fig. 4.9[a]). Al igual que en el resto de opciones del men de configuracin, se incluye el comando de Cancelar en este vocabulario por si esta opcin se ha seleccionado por un error de interpretacin del sistema. Seguidamente se confirmar la opcin seleccionada y en caso afirmativo, para la modificacin de los tiempos de apertura o sensor, el sistema pasar a preguntar el valor del nuevo tiempo, habiendo indicado antes su valor actual (ver fig. 4.9[b]). La introduccin del valor del tiempo de apertura o sensor se realiza de forma parecida a la introduccin del PIN del usuario. Aunque en este caso, si el valor que se quiere modificar es de una cifra, como en el ejemplo mostrado en la figura 4.9[b], no ser necesario introducir el 0 como primera cifra, bastar slo con decir la cifra del valor del tiempo, para mayor comodidad del administrador. A continuacin, el sistema pedir de nuevo la confirmacin del valor introducido, ofreciendo, tambin, la opcin de cancelar la operacin. Aprovechamos la descripcin de esta opcin, que, por otra parte, es la ms compleja de todas, para resaltar que el Nmero de Intentos, en la seleccin de las opciones e introduccin de datos o huellas, est limitado. Caracterstica presente en todos los procedimientos de uso, y necesaria para la situacin en que el administrador deje de interaccionar con el sistema; el cual, despus de superar el nmero de intentos establecido, abandonar la opcin de configuracin en la que se encuentre, y tambin, en ltima instancia, el modo configuracin volviendo al estado de espera de su funcionamiento normal.
72
Adems, para evitar la desorientacin del administrador durante la navegacin por el interior de las opciones de configuracin, se observa que, despus de un error en la interpretacin de un comando de voz o de captura de la huella dactilar, el sistema siempre volver al inicio de la opcin, nunca a un punto intermedio de la operacin.
5
Mens. Info.:
Nmero de Intentos Superado, intntelo otra vez
[No Recdo.]
TIEMPOS Tono
Mens. Info.:
Diga Apertura o Sensor, para cambiar sus Tiempos
Mens. Error:
No lo he entendido, repita por favor Eleve su voz, repita por favor
T1
Mens. Info.:
Desea Cancelar la Operacin?
T2
[Apertura] Tiempo Actual de Apertura: <Tap> Segundos [Sensor] Tiempo Mx. Actual de Puerta Abierta: <Tsen> Segundos
[No Recdo.]
T1
Tono
Mens. Error:
No lo he entendido, repita por favor Eleve su voz, repita por favor Mens. Info.: Repita por favor
[No]
S, No S, No Cancelar Cancelar
Figura 4.9: [a] Opcin Men Configuracin: [Tiempos]. Procedimiento de seleccin de la opcin del tiempo a modificar del sub-men: [Apertura]/[Sensor].
73
T2
Mens. Info.:
T3
[Apertura] Diga el Nuevo Tiempo de Apertura del Rel Abre-puertas [Sensor] Diga el Nuevo Tiempo Mximo de Puerta Abierta
[No Recdo.]
TIEMPOS
Mens. Error:
T3
Tono
T4
[i]
[ii]
[No Recdo.]
T4
Tono
Mens. Error:
No lo he entendido, repita por favor Eleve su voz, repita por favor
Mens. Info.:
Repita por favor
[No] para ([i]-[ii]) [ii] [Cancelar] [S] [ii] [i] Mens. Info.:
Operacin Cancelada
[i]
S, No S, No Cancelar Cancelar
Confirmacin de la Operacin Tiempo Apertura Tap: Tap = 5s, por defecto; Si Tap = 0s Puerta Bloqueada. Tiempo Sensor Tsen: Tsen = 10s, por defecto; Si Tsen = 0s Alarma Puerta Abierta Apagada.
74
5
Mens. Info.:
Nmero de Intentos Superado, intntelo otra vez [Voz] Pre-identificacin de Usuario por Voz Activada/Desactivada. Desea Activarla/Desactivarla? [Segundo Dedo] Opcin Aadir Dedo Auxiliar Activada/Desactivada. Desea Activarla/Desactivarla?
Mens. Info.:
V1
[No Recdo.]
VOZ/2DEDO
V1
Tono
Mens. Error:
No lo he entendido, repita por favor Eleve su voz, repita por favor Mens. Info.: Operacin Cancelada
S, No S, No Cancelar Cancelar
V2
V2
Mens. Info.: Actualizar Estado [Voz]/[Segundo Dedo]
5
[Voz] Pre-identificacin de Usuario por Voz: DESACTIVADA/ACTIVADA [Segundo Dedo] Opcin Aadir Dedo Auxiliar: DESACTIVADA/ACTIVADA
Opcin [Voz]: DESACTIVADA (por defecto) Modo de Autenticacin: IDENTIFICACIN. ACTIVADA Modo de Autenticacin:VERIFICACIN. Opcin [Segundo Dedo]: DESACTIVADA (por defecto) En Op. [Aadir]: Registro de las Huellas de slo un Dedo del Usuario. ACTIVADA En Op. [Aadir]: Registro de las Huellas de un 2 Dedo (Dedo Auxiliar) del Usuario.
En el diagrama de la figura de arriba se puede ver el procedimiento de activacin o desactivacin de las opciones Voz y Segundo Dedo es el mismo para ambas opciones.
75
Tal y como se muestra en la leyenda del diagrama, la opcin Voz permite elegir el modo de autenticacin empleado en el funcionamiento normal del controlador de acceso. De igual manera, la funcin de la opcin Segundo Dedo sirve para que el administrador pueda elegir si registra o aade a los usuarios autorizados con la huella de un dedo auxiliar, o slo con las huellas de un dedo; como se explic en la opcin Aadir.
IDENTIFICAR
5
Mens. Info.:
Operacin Cancelada
I1
*Vocabulario: *Vocabulario:
Cancelar Cancelar
Cancelacin de la Operacin
I1
Mens. Info.:
Tono
Mens. Error:
Huella insuficiente, intntelo de nuevo
Mens. Error:
Tiempo de espera agotado, intntelo de nuevo Tono
Mens. Info.:
El Usuario No Existe
5
Mens. Info.:
Usuario Nmero: <PIN>
Esta opcin del men de configuracin se utilizar, principalmente, para recuperar el PIN de un usuario autorizado identificndolo mediante su huella dactilar. Tambin
76
podr servir, por ejemplo, para comprobar que el usuario ha sido registrado de forma satisfactoria, en la opcin Aadir, sin necesidad de salir del modo configuracin.
77
M1
No Existe Mster del Sistema. Aadir Mster Inicial del Sistema
5
Mens. Info.:
Operacin Cancelada
M1
*Vocabulario: *Vocabulario:
Cancelar Cancelar
Cancelacin de la Operacin
M2
Mens. Error:
La operacin ha fallado, intntelo de nuevo
M1
Desplace su dedo sobre el lector de huella Desplace, otra vez, su dedo sobre el lector de huella Tono
Mens. Error:
Tiempo de espera agotado, intntelo de nuevo Tono
M1
[i] Patrones de Huella Mster: 1er Dedo (obligatorio): 2 Pat. Huella; 2 Dedo (obligatorio): + 1 Pat. Huella [ii] Fin de la Operacin Sustituir/Aadir Mster.
M3
M2
5 1
M3
[Sust. Mster]
4 1
Mens. Info.:
SISTEMA INICIADO CORRECTAMENTE
[Mster Inicial]
78
Firmware tCAB: Config_VoFP.mca : Cdigo fuente en ensamblador para la configuracin e inicializacin de los recursos del mC/Procesador de Voz. Definicin de constantes como la velocidad de transmisin de la UART software, y relacionadas con la tecnologa de reconocimiento de voz; definicin e inicializacin de puertos E/S, definicin de rutinas de interrupcin (ISR) para eventos externos, Timer2, Timer3 y Watchdog Reset. VoFingerPrint.c : Archivo del Cdigo Fuente en C del Programa Principal. Incluido en ste la Cabecera o Header del Programa, en el que, a su vez, se incluyen todos los headers necesarios: Header_VoFP.h : Adems, se definen aqu los smbolos, empleados por las funciones de reconocimiento de voz, del modelo acstico de cada vocabulario. Si definimos el smbolo LANGUAGE_VoFP_ES o LANGUAGE_VoFP_EN, al principio de este header, significa que incluimos los headers y definimos los modelos acsticos para el idioma Espaol o Ingls (English), respectivamente. De este modo, para los dos idiomas, el cdigo fuente VoFingerPrint.c es el mismo a excepcin del smbolo anterior. sfr.h : Definicin de los smbolos correspondientes a las direcciones para los registros SFR (Special Function Registers), reservados en la RAM interna del mC. techlib.h : Prototipos de la funciones C de las libreras de la tecnologa del Procesador de Voz. techdefs.h : Definicin de constantes para los parmetros y valores de retorno de las funciones de reconocimiento de voz y reproduccin de mensajes.
79
UF_Define.h : Definicin de comandos y parmetros del Protocolo de Paquetes para la comunicacin con el mdulo de autenticacin biomtrica. MESSAGES_ES.h/ /MESSAGES_EN.h : Tabla de mensajes y sonidos de la VUI (ES: Espaol; EN: English). Se aadir al proyecto, el correspondiente al idioma que se vaya a emplear para la VUI del dispositivo, igualmente se har con los headers de los vocabularios utilizados. comm_rscApp_access_es.h/ /comm_rscApp_access_en.h : Vocabulario empleado para el acceso de usuario y mster (modo verificacin), submen de configuracin Borrar, e introduccin del valor de los parmetros temporales en la opcin de Tiempos. comm_rscApp_confirm_es.h/ /comm_rscApp_confirm_en.h : Vocabulario de Confirmacin de acciones, durante la navegacin por el modo configuracin. comm_rscApp_menuconfig_es.h/ /comm_rscApp_menuconfig_en.h : Vocabulario del Men de Configuracin. comm_rscApp_menutime_es.h/ /comm_rscApp_menutime_en.h : Vocabulario del submen de Tiempos, para seleccionar el parmetro temporal que se quiera modificar. PSDdrivers_VoFP.c : Funciones que implementan los algoritmos de escritura y borrado de la Memoria Flash-PSD externa, se emplean slo para guardar ciertos variables o parmetros del sistema en la seccin de memoria de datos de la Flash. En los siguientes headers se incluyen definiciones de registros y bits internos de la memoria particular empleada. psd854f2.h map854f2.h
Libreras y Archivos de Cdigo Objeto: Archivos de los Vocabularios y Tabla de Mensajes, previamente compilados. Extensin: *.MCO. Archivos de las Libreras de la Tecnologa del Procesador de Voz: apilib.mcl y techlib.mcl.
80
Los Vocabularios, o tambin llamados Gramticas (Grammars), se desarrollaron mediante la aplicacin proporcionada por el fabricante del Procesador de Voz, QuickT2SI. En sta se generan, a partir de cadenas de texto, las palabras o comandos de voz que el sistema podr reconocer o interpretar, independientemente del locutor, gracias a los modelos acsticos basados en Modelos Ocultos de Markov (HMM). Cada vocabulario desarrollado constar de un mximo de 20 palabras. Esta aplicacin produce los headers (*.h) y archivos de cdigo objeto (*.MCO) de cada vocabulario generado, para ser posteriormente compilados y linkados con el firmware del sistema. Para manejar desde el cdigo del programa principal estos vocabularios, como por ejemplo, activar el vocabulario en un momento dado, iniciar el proceso de reconocimiento de voz, o recoger el resultado del mismo, se dispone de diversas funciones C de las libreras de la tecnologa del Procesador de voz. Cabe resaltar el aspecto de que el sistema pueda reconocer las palabras independientemente del locutor o del usuario que las pronuncie (Tecnologa Speaker Independent), puesto que, sta es la caracterstica esencial e imprescindible para que la interfaz de usuario por voz pueda ser utilizada por cualquier persona, como es el objetivo de cualquier interfaz de usuario en general. En la tablas de 4.1 a 4.4, se especifican los Vocabularios, en ambos idiomas, desarrollados para la VUI del controlador de acceso. Cada palabra de un vocabulario determinado viene identificada por un ndice, que en el lenguaje de reconocimiento de voz se suele denominar Clase (Class), para recoger el resultado de interpretacin en el programa. Las palabras de los vocabularios se eligieron teniendo en cuenta que deban tener un significado suficientemente intuitivo para el usuario, adems de, procurar que en su pronunciacin se diferenciasen lo ms posible para facilitar al sistema la interpretacin o reconocimiento de las mismas con un grado de confianza elevado. Como se podr observar, los vocabularios generados no se corresponden exactamente con los que se mostraron en los diagramas de funcionamiento. Esto es debido a razones de optimizacin de la memoria, para lo cual se aprovecho, por ejemplo, el vocabulario access_es/en, de la tabla 4.1, en tres situaciones de uso de la VUI diferentes, por tener en comn la entrada por voz de los nmeros del 0 al 9, y restringiendo por programa el reconocimiento de las palabras o clases no deseadas.
81
sintetizarlos en un formato especial, comprimido pero con suficiente calidad de audio, para seguidamente, compilarlos en el archivo de cdigo objeto (MESSAGES_ES.MCO o MESSAGES_EN.MCO) que contendra la tabla a ser enlazada con el programa principal. Esta aplicacin tambin generaba el archivo header (MESSAGES_ES.h o MESSAGES_EN.h) en el que se definan los smbolos y constantes necesarias para manejar los mensajes y sonidos de la tabla, por las funciones C de las libreras que se utilizaran en el programa. Para crear cada uno de los mensajes de voz lo habitual hubiese sido dedicar la voz de un locutor para grabarlos, sin embargo, se emple un software para PC de Sntesis de Lenguaje Natural desde Texto (Text To Speech Synthesis, TTS). Esta herramienta permite generar mensajes de voz, en formato digital WAV y para varios idiomas, con una entonacin bastante natural, simplemente, a partir del texto de las frases que se quieran reproducir o, ms bien, sintetizar. Lo cual proporcionaba una gran flexibilidad y rapidez para realizar modificaciones de los mensajes y, de este modo, elegir las frases adecuadas de nuestra interfaz de voz. Si se desea una mayor calidad, que la ofrecida por el motor de TTS, a la hora de comercializar el dispositivo, siempre se podr recurrir a un locutor profesional para grabar los mensajes de voz, despus de tener la versin definitiva de las frases de la VUI de nuestro dispositivo. En el apndice C quedan expuestas las frases, en Castellano e Ingls, elegidas para los prototipos del dispositivo.
Access_es
[No Reconocido] Cero Uno Dos Tres Cuatro Cinco Seis Siete Ocho Nueve Master Cancelar Borrar Todo
Access_en
[Not a Command] Zero One Two Three Four Five Six Seven Eigth Nine Master Cancel Erase All
Tabla 4.1: Vocabulario o Gramtica [1]. Utilizado en: i) Acceso Usuario en Modo Verificacin (Clase 13[No Reconocido], por programa); ii) Opcin de Configuracin Borrar (Clase 11[No Reconocido], por prog.); iii) Opcin de Configuracin Tiempos (Clases 11,13[No Reconocido], por prog.).
82
Confirm_es
[No Reconocido] S No Cancelar
Confirm_en
[Not a Command] Yes No Cancel
Tabla 4.2: Vocabulario o Gramtica [2]. Utilizado en: i) Opciones de Configuracin: Borrar, Tiempos, Voz y Segundo Dedo, para confirmar operaciones; ii) Opciones de Configuracin: Aadir, Identificar Usuario, Mster y Salir/Adis, para cancelar la operacin en caso de seleccin errnea de la opcin empleando la palabra Cancelar (Clases 1,2[No Reconocido], por prog.).
Menuconfig_es
[No Reconocido] Anyadir Borrar Tiempos Voz Segundo Dedo Identificar Usuario Master Salir Ayuda Cancelar Adis
Menuconfig_en
[Not a Command] Add User Erase Time Voice Second Finger Identify Master Exit Help Cancel Quit
Tabla 4.3: Vocabulario o Gramtica [3]. Utilizado exclusivamente para el Men de Configuracin. Se permiten dos comandos para finalizar la configuracin del dispositivo mediante las clases 8 y 11.
Menutime_es
[No Reconocido] Apertura Sensor Cancelar
Menutime_en
[Not a Command] Open Sensor Cancel
Tabla 4.4: Vocabulario o Gramtica [4]. Utilizado exclusivamente en la Opcin de Configuracin Tiempos como submen de seleccin del parmetro temporal a modificar.
83
Cabecera (Header) y Definicin de Constantes (Fig. 4.13[a]): Aqu se incluye el header del programa, Header_VoFP.h, que contiene a todos los headers necesarios, indicados en el punto anterior. Seguidamente, se realizan las definiciones de todas las constantes utilizadas en el desarrollo del resto del cdigo. Declaraciones (Fig. 4.13[b]): De los prototipos de las funciones Driver de la memoria Flash externa, definidas en el archivo PSDdrivers_VoFP.c, y utilizados por el programa principalmente para guardar los Parmetros de Configuracin del dispositivo tCAB en los sectores de la Flash Secundaria (CSBOOT), de esta forma, conservando una configuracin determinada aunque se apague el dispositivo. Tambin se declaran aqu las Variables Globales del programa, en el esquema se muestran las ms relevantes, incluyendo las variables que contienen a los parmetros de configuracin, y se da una breve descripcin de su objetivo. Definicin de las Funciones de Interrupcin (ISR) y de Programa (Fig. 4.13[c]): En esta parte del cdigo se definen primero las funciones que sern llamadas desde el programa principal (main()), definido al final. Entre ellas se destacan las funciones donde se especifican las rutinas de interrupcin (ISR) del dispositivo, las funciones que sirven de interfaz de comunicacin con el mdulo de autenticacin, nombradas como uf_<Nombre>; y la funcin, ntcall_SR(), que acta como Rutina de Servicio de Red (NTSR) implementando el protocolo de enlace de la Red tCAB para la comunicacin externa con el PC.
84
Definicin Mscaras de Interrupciones* i) Fuentes de Interrupcin Externas: IRQ P0.0 Puerto Recepcin Comunicacin Serie Asncrona, mC_RX. IRQ P0.2 Puerto Deteccin de Trama Peticin de Conexin Externa (PC), ICOM. ii) Fuentes de Interrupcin Internas: IRQ TIMER2 Int. para Temporizacin de Seales Control de Puerta y otras. IRQ TIMER3 Int. para Temporizacin de Transmisin Tramas Wiegand.
* Habilitacin y Deshabilitacin de Int. en el IMR (Registro de Mscaras de Int. en SFR).
Def. Mscaras de Puertos E/S i) Seales de Control de Puerta: P0.3 Botn Salida, BS. P0.4 Sensor Puerta, SP. P0.5 Rel Abre-Puerta, AP. ii) Seales Transmisin Wiegand: P0.6 Bit 0, WG_D0. P0.7 Bit 1, WG_D1.
Def. Ctes. Temporizacin TIMER2 i) Unidades de Tiempo. ii) Smbolos Seleccin Temporizacin para: Rel Abre-Puerta OPEN_DOOR_RELAY_TIMING. Sensor Puerta Abierta DOOR_SENSOR_TIMING. Alarma Puerta Abierta DOOR_ OPEN_ ALARM_TIMING. Establecimiento Conexin Externa (PC) CONNECTION_TIMEOUT_TIMING. Filtro de Glitches para Seales Puerta GLITCH_FILTER_TIMING.
Def. Otras Ctes. de Sistema MASTER_ID = 9999. Tiempos de Espera: Comandos Voz y Escanear Huella. Nm.Mx. de Repeticiones. Tamao y Nm. Mx. de Patrones Huella.
Def. Punteros a Espacio de Memoria Datos (PSD Flash2aria : CSBOOT 1) Identificador Mdulo Aut.=Direccin de Red tCABMODULEID_FLASH2_ADDRESS. Fallo Escritura en Sector Flash2 (Parm.Config.)FLAG_FWRITE_FAILURE.
Def. Puntero a Espacio de Memoria Programa (PSD Flash1aria) Pos. Memo. Tabla de Mensajes i) Espaol (ES) ii) English (EN) : i) #ifdef LANGUAGE_VoFP_ES en VoFP_Headers.hSNDTBL_MESSAGES_ES. ii) #ifdef LANGUAGE_VoFP_EN en VoFP_Headers.hSNDTBL_MESSAGES_EN.
85
Declaracin e Inicializacin Variables Globales* i) Variables de Parmetros Configuracin. Almacenadas en Flash2 (CSBOOT 0) e inic. a Valores por Defecto: flag_vui = DEFAULT_FLAG_VUI=0 0: Modo Identificacin; 1: Modo Verificacin (VUI Activada). flag_finger2 = DEFAULT_FLAG_FINGER2=0 0: Opc. Segundo Dedo Desactivada; 1: Opc. Segundo Dedo Activada. time_open[N_DIGITS_TIME] = ={DEFAULT_TIME_OPEN0,DEFAULT_TIME_OPEN1}= {0,5} Tiempo Apertura (5 Segundos). time_sensor[N_DIGITS_TIME] = ={DEFAULT_TIME_SENSOR0,DEFAULT_TIME_SENSOR1}={1,0} Tiempo Sensor (10 Segundos). flag_ntmode = DEFAULT_FLAG_NTMODE=0 0: Modo Operacin Autnomo (Stand-Alone); 1: Modo Operacin de Red (Network). ii) Variables de Parmetros Configuracin Temporales. Almacenadas en RAM Externa PSD (inic. en Prog. Principal): tflag_vui. tflag_finger2. ttime_open[N_DIGITS_TIME]. ttime_sensor[N_DIGITS_TIME]. tflag_ntmode. iii) Variables de Operacin del Dispositivo. Almacenadas en RAM Externa PSD (inic. en Prog. Principal): flag_moduleid Resultado Operacin de Transferencia de la Direccin (2 Bytes) al Mdulo. flag_master Res. Op. de Comprobacin Existencia Mster del Sistema. flag_freescan Res. Op. de Activacin/Desactivacin Parmetro Mdulo: UF_FREESCAN. flag_autoresponse Res. Op. de Activ./Desactiv. Parm. Md: UF_AUTO_RESPONSE. flag_scantimeout Res. Op. de Seleccin Parmetro Mdulo: UF_SYS_TIME_OUT. flag_ntcom Modo Red Activado en el Mdulo Huella (Paquetes 15 byte para Com. Externa). flag_dooralarm Alarma Activada. fwrite_ok Params. Config Guardados Correctamente en Flash2. flag_fwrite_err Fallo Escritura en Flash2. flag_syserr_reset Error de Inicializacin (Start-up) del Sistema. flag_startup Inicializacin del Sistema Correcta. moduleID Variable Temp.: Direccin de Red del Mdulo y del Disp. tCAB. connect_mid Variable Temp.: Direccin de Conexin a un tCAB enviada desde el PC. users_num Nm. Usuarios Registrados en el Mdulo. iv) Variables de Flujo del Programa. Almacenadas en RAM Interna: state, nextstate Vars. de Estado del Programa (PSM). utime, utime2, time_select Contadores de Tiempo y Selecc. de Temporizacin. ntcall_event, scan_event Eventos: Peticin de Conexin PC y Entrada Huella Usuario. capture_failure, scan_enabled Fallo en Recepcin Paquete Md. y Habilitar Escner.
* Slo se muestran las ms relevantes, necesariaspara la descripcin del Firmware.
86
Bloque de Definicin ISRs, Funciones del Sistema y Programa Principal Funciones de Rutinas de Servicio de Interrupcin (ISR) i) p00_isr() : Interrupciones en Puerto mC_RX(P0.0). Recepcin Paquetes desde el Mdulo o desde el PC* : Paq. Respuesta Mdulo tras Escanear Huella UF_SCAN_SUCCESS: - Si Modo Identificacin (tflag_vui=0)Recep. 2 Paq. de Fin Identificacin. - Si Modo Verificacin (tflag_vui=1)Recep. 2 Paq. + Patrn Huella (384 Bytes). Paq. Peticin de Conexin desde PCUF_COMMAND_CT + [Direccin tCAB]: - Comprobacin Dir. Enviada (connect_mid) vs. Dir. tCAB(moduleID) Si connect_mid=moduleID : Establecimiento Enlace. ii) p02_isr() : Interrupciones en Puerto ICOM(P0.2). Detecta flanco de Trama de Peticin de Conexin desde el PC* Se registra el Evento: ntcall_event=1; y espera a Paquete Peticin de Conexin por mC_RX. iii) timer2_isr() : Interrupciones provocada por TIMER2. Temporizaciones: Si time_select=OPEN_DOOR_RELAY_TIMING Activ. Rel AP hasta: utime=ttime_open. Si time_select=DOOR_SENSOR_TIMING Mientras SP(P0.4) detecte Puerta Abierta, cuenta atrs hasta: utime=ttime_sensor; entonces Si time_select=DOOR_ OPEN_ ALARM_TIMINGTiempo Espera: Repetir Alarma. Si time_select=CONNECTION_TIMEOUT_TIMING Tpo. Espera: Paq. Peticin Conex. Si time_select=GLITCH_FILTER_TIMINGTpo. Espera: Seal BS(P0.3)/SP (P0.4) Vlida. iv) timer3_isr() : Temporizacin para Transmisin de Tramas Wiegand 26-bit.
* Ver Apdo. 4.2.3: Protocolos de Comunicacin con el Mdulo (de Comandos) y con el PC(de Enlace).
Funciones del Programa Disp. tCAB* uf_SystemWrite(paramID, paramVAL) :Cambio Parmetros de Funcionamiento del Mdulo de Autenticacin. uf_SystemRead(paramID) : Lee Parmetros de Funcionamiento Mdulo (devuelve valor de paramID). wg_Send_UserID(userID) : Transm. Wiegand: Nm. Identificacin Usuario. uf_FreeScan_Analyze() : Anlisis Paquete de Resultado Identificacin Usuario. uf_checkID(usercheckID) : Comprueba existencia de Nm. Usuario en Md. uf_Cancel() : Cancela Operacin en curso del Mdulo. uf_ScanTemplate_Enable() : Habilitacin del Lector de Huella para captura y envo del Patrn Huella de Usuario desde el Mdulo al mC. uf_VerifyTemplate(userID) : Inicia la Verificacin de Usuario con userID=PIN, y recibe el Resultado. uf_Identify() : Inicia captura de huella Usuario para identificarlo y obtener PIN. uf_Enroll(autoID, userID) : Inicia captura de huellas para Registrar Usuario.
- autoID0: Asig. PIN Manual(userID); 1: Asig. PIN Automtico; 2: Aadir ms Huellas a userID. - Utiliz. en Modo Verificacin: tflag_vui=1. - Parmetro Mdulo* : UF_FREESCAN Desactivado. - Utiliz. en Modo Verificacin: tflag_vui=1. - Parmetro Mdulo* : UF_FREESCAN Desactivado. - Utiliz. en Modo Identificacin: tflag_vui=0. - Parmetro Mdulo* : UF_FREESCAN Activado.
uf_EnrolledNumber() : Devuelve el total de usuarios registrados. uf_Delete(userID) : Borra al Usuario con PIN=userID. uf_DeleteAll() : Borra a Todos los Usuarios registrados. ntcall_SR() : Rutina de Servicio de Red tCAB (NTSR). Enlace Com. Ext. PC. main() : Programa Principal del Disp. tCAB
* Funcs. de Gestin del Mdulo: uf_<Nombre> (), via Com. Serie, utilizan el Protocolo de Comandos
87
flag_vui/tflag_vui: Determina el Modo de Autenticacin del dispositivo: Verificacin (1) o Identificacin (0); que corresponde a exigir o no, respectivamente, la pre-identificacin por voz al usuario durante su acceso, indicando ste su nmero PIN por medio de la Interfaz por Voz (VUI). Seleccionable mediante la opcin Voz del men de configuracin. El dispositivo emplea por defecto el Modo de Identificacin. flag_finger2/tflag_finger2: Determina si en la opcin Aadir del men de configuracin se pedir al usuario que introduzca las huellas de un segundo dedo, de esta forma, ste dispondr de un dedo auxiliar a la hora de autenticarse para el acceso. Esto corresponde a tener activada (1) la opcin Segundo Dedo del men de configuracin. Por defecto esta opcin se encontrar desactivada (0). time_open[N_DIGITS_TIME]/ttime_open[N_DIGITS_TIME]: Vector de dos variables (N_DIGITS_TIME=2) donde se especifica el Tiempo de Apertura, o de activacin del rel abre-puerta, entre un rango de 0 a 99 segundos. El valor asignado por defecto es de 5 segundos. time_sensor[N_DIGITS_TIME]/ttime_sensor[N_DIGITS_TIME]: Vector de dos variables (N_DIGITS_TIME=2) donde se especifica el Tiempo de Sensor, o de espera hasta emitir el mensaje y sonido de alarma de puerta abierta, entre un rango de 0 a 99 segundos. El valor asignado por defecto es de 10 segundos. flag_ntmode/tflag_ntmode: Determina si el dispositivo tCAB est trabajando de forma autnoma en el Modo de Operacin Autnomo (0: Stand-Alone Mode), o bien, en el Modo de Operacin de Red (1: Network Mode) cuando est en comunicacin con un PC, a travs de la red tCAB, desde donde se gestiona esencialmente su configuracin y base de datos de usuarios. El cambio de modo slo se producir desde la aplicacin del PC. ste es el nico parmetro no configurable desde el men de configuracin del dispositivo y por defecto el dispositivo se encontrar en Modo Autnomo.
Como se muestra en el esquema de la figura 4.13[b] se emplea un grupo de variables para almacenar los valores de estos cinco parmetros de forma no voltil en un sector (CSBOOT 0) de la memoria Flash Secundaria, de este modo, no se perder una determinada configuracin al apagar el dispositivo. Al descargar el programa los parmetros de configuracin estarn inicializados a sus valores por defecto mediante constantes definidas al inicio del cdigo.
88
Al iniciar el programa los valores de los parmetros almacenados en la Flash Secundaria se asignarn a las variables temporales, del mismo nombre pero con una la letra t al inicio, localizadas en memoria RAM externa y que sern las utilizadas durante la ejecucin del programa. Slo se actualizarn los valores de los parmetros en Flash2 despus de finalizar la posibilidad de modificar cualquiera de ellos, al final de la configuracin del dispositivo desde el men de configuracin, o bien, desde el PC. Por tanto, es mejor emplear durante la ejecucin estas variables temporales en RAM, en lugar de las variables en Flash2, ya que, de la forma indicada antes, se optimizarn los ciclos de escritura de esta memoria, ya que se ahorrarn los sucesivos borrados y escrituras del sector, donde se almacenan todos estos parmetros, que se tendran que realizar al modificar frecuentemente los valores de los parmetros, y aunque slo se quisiera modificar a uno de ellos. Adems, se emplear menos cdigo respecto a la escritura en Flash debido a que la escritura en RAM externa slo supone el cdigo de una simple asignacin, mientras que, para escribir en la Flash2 se han de llamar a las funciones Driver de esta memoria PSD realizando las operaciones primero de borrado y luego de escritura.
Fuentes de Interrupcin Externas: Int. Puerto mC_RX(P0.0): Cte. para Mscara IMR: [IRQ_P000x08]. Evento: Primer flanco de la trama del Paquete Estndar (13 bytes) enviado desde el Mdulo de Autenticacin. Funcin: [p00_isr()], implementa la recepcin serie y posterior anlisis de los paquetes enviados desde el mdulo en respuesta a la entrada o escaneo de la huella del usuario en los procesos de identificacin o verificacin; y, del paquete de peticin de conexin, con la direccin del tCAB, enviado desde el PC a travs del mdulo (detallado en Flujograma Fig. 4.16). Int. Puerto ICOM(P0.2): Cte. para Mscara IMR: [IRQ_P020x40]. Evento: Primer flanco de la Trama de Peticin de Conexin (1 byte) enviada desde el PC. Deteccin directa en la lnea de recepcin externa, EXT_RX, no a travs del mdulo. Funcin: [p02_isr()], cambia el estado de la variable [ntcall_event: 01] para poner al dispositivo en disposicin de espera del Paquete de Peticin de Conexin que el PC enviar despus de la trama de 1 byte.
89
Fuentes de Interrupcin Internas: Int. TIMER2: Cte. para Mscara IMR: [IRQ_TIMER20x02]. Evento: Overflow del Timer 2. Periodo: 4ms. Funcin: [timer2_isr()], implementa las temporizaciones seleccionables mediante la variable [time_select] para la seal de activacin del rel abre-puerta, configurable por la variable [ttime_open], y para la cuenta atrs antes de emitir la alarma de puerta abierta si la seal del sensor de puerta indica que sigue abierta tras el tiempo [ttime_sensor]. Adems de, temporizar las esperas de repeticin de alarma, del paquete de peticin de conexin y de seal vlida para filtrar posibles glitches en los puertos de entrada del Botn de Salida (BS) y del Sensor de Puerta (SP) (detallado en Flujograma Fig. 4.17). Int. TIMER3: Cte. para Mscara IMR: [IRQ_TIMER30x10]. Evento: Overflow del Timer 3. Periodo: 100s. Funcin: [timer3_isr()], slo utilizada para temporizar la transmisin de Tramas Wiegand 26-bit y para el caso explicado ms adelante.
90
Sin embargo, la comunicacin con el mdulo implementada en las funciones del resto del programa se sigue un esquema de Peticin-Respuesta, enviando primero el comando correspondiente al mdulo y luego, nicamente, se mantiene a la espera de su respuesta para analizar despus los resultados del proceso demandado al mdulo mediante el comando. El esquema de comunicacin no-bloqueante slo se emplear durante la ejecucin del bucle principal, por lo que la interrupcin del puerto mC_RX estar deshabilitada durante la comunicacin serie implementada en las funciones de gestin del mdulo de autenticacin y para el resto del programa.
91
El flujograma correspondiente a esta funcin se expondr en el siguiente punto dedicado a detallar los protocolos de comunicacin a nivel de enlace del sistema.
92
main()
Condicin Inicio: [i] Si SysStat(Bit4)* =1 y flag_syserr_reset1: Reinicio por Establecimiento de Conexin PC. [ii] En caso contrario: Inicio Normal (desde Encendido) o Reinicio por Error Sistema.
* SysStat: Registro del SFR ([0..7] Bits).
[i]
Llamada a: ntcall_SR():
Rutina Servicio de Red (NTSR).
[ii]
Secuencia de Inicio del Programa (Start-up): Tono (SysBeep) de Inicio Start-up. Arranque y Config.(en SFR) TIMER2 y TIMER3 (Habilita Interrup.). Actualizacin Parmetros Temporales de Configuracin Sistema: - ej. tflag_vui (en PSD-RAM) = flag_vui (en PSD-Flash2). - Si ha habido Fallo Escritura en Flash2: *(FLAG_FWRITE_FAILURE)=0x01Asignacin Valores por Defecto. Slo si Inicio Normal (desde Encendido, flag_startup=0) o Disp. puesto en Modo Op. Autnomo desde el PC (tflag_ntmode=0): - Asignar Direccin de Red (en Flash2) al Mdulo: moduleID=*(MODULEID_FLASH2_ADDRESS); flag_moduleid = uf_SystemWrite(UF_MODULE_ID, moduleID). - Comprobar si Existe Mster Sistema en Memoria Mdulo: flag_master=uf_checkID(MASTER_ID), MASTER_ID=9999. - Cuenta Nm. Usuarios en Memoria Mdulo: users_num= uf_EnrolledNumber(). Configurar Parmetros del Mdulo* para Modos Autenticacin: - Si tflag_vui=0 Modo Identificacin: flag_autoresponse=uf_SystemWrite(UF_AUTO_RESPONSE, 0x31); flag_freescan=uf_SystemWrite(UF_FREESCAN, 0x31); flag_scantimeout=uf_SystemWrite(UF_SYS_TIME_OUT, 0x3A). - Si tflag_vui=1 Modo Verificacin: flag_autoresponse=uf_SystemWrite(UF_AUTO_RESPONSE, 0x30); flag_freescan=uf_SystemWrite(UF_FREESCAN, 0x30); flag_scantimeout=uf_SystemWrite(UF_SYS_TIME_OUT, 0x30); scan_enabled=0: Para habilitar Escner en Bucle Ppal.
* Parmetros Mdulo:
UF_FREESCAN: Rehabilitar Escner Huella Automticamente UF_AUTO_RESPONSE : Comando de Respuesta del Mdulo al Escanear Huella [0x31: Activar, 0x30: Desactivar]. UF_SYS_TIME_OUT: Seleccin Tiempo de Espera para Escner Huella [0x3A: 10s, 0x30: Infinito]. Habilitacin de Interrupciones: mC_RX(P0.0) e ICOM(P0.2).
[nextstate = 1]
state>1:
Estados Intermedios
ISRs: p00_isr(): mC_RX p02_isr(): ICOM timer2_isr(): Temporiz. Gral. timer3_isr(): Temp. Wiegand
93
En el esquema de la estructura del programa principal, figura anterior, se muestra de forma general la distribucin de estados de la PSM, incluyendo tambin las Funciones de Interrupcin o ISR, descritas anteriormente. Por tanto, es aqu donde se determina el Funcionamiento Normal o de Usuario del dispositivo, tal y como fue especificado en los Diagramas de Funcionamiento expuestos en el apartado 4.1. A diferencia de los momentos en que est en comunicacin con el PC, durante lo que se denomin Estado de Servicio de Red e implementado en la funcin de NTSR (ver punto 4.2.3). Teniendo en cuenta las variables empleadas para el Estado Actual, [state], y para realizar la transicin al Estado Siguiente: [nextstate]; se puede ver que la PSM est organizada de la siguiente manera:
Bucle Principal [state=1] (Figs. 4.15[a]-[b]): La PSM se encontrar en este estado en espera a atender los siguientes eventos:
Interrupcin Externa de mC_RX(P0.0)Llamada a p00_isr() (Fig.4.16). Interrupcin Externa de ICOM(P0.2)Llamada a p02_isr() (Fig.4.15[b]). BS(P0.3): Pulsacin del Botn de Salida AP(P0.5) =1: Apertura de Puerta (Activacin Rel Abre-Puerta)*.
*
SP(P0.3)=Abierta: Sensor de Puerta; y, [flag_dooralarm=1]: Tiempo Mx. de Puerta Abierta Agotado Emite Mensaje y Sonido Alarma*.
*
[tflag_vui=0]: Modo Identificacin; y, [scan_event=1]: Entrada Huella Usuario y Paquete Estndar (13 bytes) del Resultado de Identificacin Recibido en p00_isr() uf_FreeScan_Analyze(): Anlisis Paquete y Resolucin Proceso Identificacin de Usuario: - Transmisin Wiegand del PIN de Usuario o Mster*. - Usuario Autorizado (Identificacin Positiva): [nextstate=4]. - Mster Identificado: [nextstate=10]. - Identificacin Negativa: [nextstate=0].
*
[tflag_vui=1]: Modo Verificacin; y, [scan_event=1]: Entrada Huella Usuario y Paquete Estndar (13 bytes) seguido de Paquete del Patrn de Huella del Usuario (384 bytes) Recibidos en p00_isr() Continuacin Proceso Verificacin de Usuario: [nextstate=2]. [tflag_vui=1]: Modo Verificacin; y, [scan_enabled=0]: Escaneo de Huella Deshabilitado Habilitar. [ntcall_event=1]: Peticin de Conexin desde el PC detectada en ICOM Inicio de Secuencia de Establecimiento de Conexin con PC. Indicado por [ntcall_event=2].
94
[ntcall_event=2] y [time_select=0]: Fin de Espera Paquete de Peticin de Conexin Vuelta a Funcionamiento Normal o de Usuario. [capture_failure=1]: Error Recepcin Paquetes del Mdulo en p00_isr(); , [ntcall_event = 3]: Paquete de Peticin de Conexin no dirigido a este tCAB (resuelto en p00_isr()) Vuelta a Funcionamiento Normal o de Usuario. [nextstate1]: Salida del Bucle Principal* Deshabilitar Interrupciones en el IMR.Y: - Si Modo Identificacin: Desactivar Lector de Huella. - Si Modo Verificacin: Cambiar a Tiempo de Espera Normal del Lector de Huella.
En caso de [nextstate=80]: Ir directamente a la opcin del men de configuracin Mster, para pedir el registro de un Mster; despus de comprobar en p00_isr() que No Existe Mster [flag_master=0].
*
Estados Intermedios [state>1] (Figs. 4.18[a]-[b]): [state=2] + [state=3] (Fig.4.18[a]): Entrada PIN Usuario por Voz y en uf_VerifyTemplate(userID): Resolucin Proceso Verificacin de Usuario: - Transmisin Wiegand del PIN de Usuario o Mster*. - Usuario Autorizado (Verificacin Positiva): [nextstate=4]. - Mster Verificado: [nextstate=10]. - Verificacin Negativa: [nextstate=0]. * Temporizacin por Interrup. Interna TIMER3 Llamadas: timer3_isr() (Fig.4.15[b]).. Apertura de Puerta de Acceso [state=4] (Fig.4.18[a]): AP(P0.5) =1: Apertura de Puerta (Activacin Rel Abre-Puerta)*.
*
Acceso al Men de Configuracin [state=10] (Fig.4.18[b]): Secuencia de funcionamiento para la seleccin de las opciones del Men de Configuracin disponibles (Ver Diagramas Funcionamiento de las Opciones en: Figs. [4.6 - 4.12]). Estado de Salida o Retorno al Bucle Principal [state=0] (Fig. 4.19).
En las siguientes pginas se exponen la serie de Flujogramas, a los que se hace referencia en el esquema de arriba, correspondientes a la implementacin de la PSM y las ISR que dan lugar a la ejecucin del Funcionamiento Normal o de Usuario del dispositivo.
95
N Reinicios<3
Filtro Glitch BS(P0.3) Hab. TIMER2: timer2_isr() [utime=0]: Reset Contador [time_select= GLITCH_FILTER_TIMING]
No
Q1
[No] and [Interrup. Timer2] [S] and [ttime_sensor0] [flag_dooralarm1] (ttime_sensor =0: Alarma Off) No FILTRO GLITCH SP(P0.4)
[flag_dooralarm=1] or[SP(P0.4)=Abierta]
[SP(P0.4)=Cerrada]
No
Mensaje: [Access6]+[Alarm]
timer2_isr()
[No] and [Interrup. Timer2] uf_FreeScan_Analyze(): [scan_event=1] and[tflag_vui=0] (Modo Ident.) No S Error Escan. HuellaMens:[Bad_fingerprint] Usuario No Existe/Ident. NegMens:[Access3] Usuario Autorizado (Existe/Ident. Positiva):
Transm. Wiegand:wg_Send_UserID(userID)
[nextstate=0]
[nextstate=4] [nextstate=10]
BUCLE PPAL.
96
[ntcall_event=2]
No [ntcall_event=3] Q1
[nextstate=0] [nextstate 1] Salida Bucle Ppal. S STATE 0 Deshabilita Todas las Interrupciones [nextstate=2] STATE 2 [nextstate=4] STATE 4 Desactivar: flag_freescan = uf_SystemWrite(UF_FREESCAN, 0x30); [tflag_vui = 0] (Modo Identif.) S STATE 80 STATE 10
No
STATE 1
timer2_isr() : Temporizacin de
Seales Control de Puerta + Otras Temp. Evento Interrup. Interno: Timer3
97
ISR mC_RX (P0.0): Recepcin por Puerto Serie (No Bloqueante) p00_isr()
Evento Interrup. Externo: [mC_RX(P0.0)] Recepcin Paquete Estndar (13 bytes): - Paq. Escaneo Huella: UF_SCAN_SUCCESS (desde Md.) - Paq. Peticin Conexin: UF_COMMAND_CT (desde PC)
[capture_failure=1] [scan_event=0]
Paq. Huella
[BufferRX (Byte 10)= UF_SCAN_SUCCESS]
No
[tflag_vui=1] and
[BufferRX (Byte 10)= UF_SUCCESS]
[capture_failure=0] [scan_event=1]
No
RETORNO
Paq. Conexin
[BufferRX (Byte 1)= UF_COMMAND_CT]
[ntcall_event=3]
Establecimiento de Conexin (Enlace) [ntcall_event=0] Si Paq. Tipo GATEWAY: - Lectura Comando Protocolo de Enlace - [Gateway_ntcall=1] RESET Interno SFR: SysStat(Bit 4)=1
98
Q2 No [ttime_sensor=0] (Alarma Off) [flag_dooralarm =0] [time_select=0] S [SP(P0.4)=Abierta] time_select= DOOR_SENSOR_TIMING [flag_dooralarm =1] [time_select=0]
[time_select=0]
[time_select=0]
99
Proceso de Entrada por Voz PIN Usuario (Fig. 4.4) Mensaje: [Access4] Activar Vocab:[Access_es] (English:[Access_en]) Comandos de Voz Reconocidos: -[<PIN>]or[Mster] [nextstate=3] -[Cancelar]or[Fin de Intentos (No Reconocido)] [nextstate=0] [nextstate=3] [Mster] [<PIN>]
[nextstate=0]
STATE 0
STATE 4 STATE 10
STATE 3
userID=MASTER_ID (=9999)
userID=<PIN>
uf_VerifyTemplate(userID):
[nextstate=0]
[userIDMASTER_ID ] Mens:[Access2]
[userID=MASTER_ID] Mens:[Access1]
[nextstate=4]
[nextstate=10]
No
[Interrup. Timer2]
[SP(P0.4)= Abierta]and [repeat=0]
Mensaje: [Access3]
timer2_isr()
No
[time_select=0] [No] and Fin Tiempo Puerta Abierta [Interrup. Timer2] o Puerta Cerrada
S
STATE 0
100
STATE 10
STATE 0
No
STATE 11
Proceso de Entrada por Voz OPCIN Men Configuracin (Fig. 4.6) Mensaje: [say_option] Activar Vocab:[Menuconfig_es] (English:[Menuconfig_en]) Comandos de Voz Reconocidos: -[Opcin Men Configuracin] [nextstate=12] - [Fin de Intentos (No Reconocido)] [nextstate=0] [nextstate=12] [Salir] or [Adis] [Ayuda]
[nextstate=0]
STATE 12
Proceso Opc: SALIR (Fig. 4.6) Mensaje: [exit_config] Vocab:[Confirm_es/en] (Cancelar Operacin)
STATE 11 (or 10)
[Aadir]
STATE 20
Proceso Opc: AADIR (Fig. 4.7) Func. Mdulo: uf_Enroll(autoID, userID) Si [tflag_finger2=1] Aadir 2Dedo
[Borrar]
STATE 30
[Tiempos]
STATE 40
[Voz]
STATE 50
Proc. Opc.: VOZ (Fig. 4.10) Vocab: [Confirm_es/en] Modifica Param: [tflag_vui]
[Segundo Dedo]
STATE 60
Proc. Opc.: SEGUNDO DEDO (Fig. 4.10) Vocab: [Confirm_es/en] Modifica Param: [tflag_finger2]
[Identificar Usuario]
STATE 70
[Mster]
STATE 80
Proc. Opc: MASTER (Fig. 4.12) Func. Md: uf_Enroll(0, MASTER_ID) Si [flag_master=1] Sustituir Mster: [nextstate=11] Si [flag_master=0] Registro Nuevo Mster: [flag_master=1] y [nextstate=0]
Figura 4.18[b]: Flujograma del Men de Configuracin del tCAB: PSM de [state=10] a [state=80].
101
STATE 0
Mensaje: [Try_finish]+[Try_again2]
No [nextstate = 1]
GUARDAR Parms. Config. en Flash2 (utiliz. Funcs. Driver PSD) Si Error Escritura: [flag_fwrite_err=1](3 intentos)
[*(FLAG_FWRITE_FAILURE)=0x01]
No
Si [Cambio Modo Autenticacin]: flag_autoresponse=uf_SystemWrite(UF_AUTO_RESPONSE, 0x31); flag_scantimeout=uf_SystemWrite(UF_SYS_TIME_OUT, 0x3A); Reactivar Free-Scan: flag_freescan=uf_SystemWrite(UF_FREESCAN, 0x31); Si [Cambio Modo Autenticacin]: flag_autoresponse=uf_SystemWrite(UF_AUTO_RESPONSE, 0x30); flag_freescan=uf_SystemWrite(UF_FREESCAN, 0x30); T. Espera Escner Infinito: flag_scantimeout = uf_SystemWrite(UF_SYS_TIME_OUT, 0x30); TONO Listo para Func. Normal
102
4.2.3. Protocolos de Comunicacin: Protocolo de Comandos del Mdulo de Autenticacin Biomtrica y Protocolo de Enlace de Red tCAB.
Protocolo de Comandos del Mdulo.
El funcionamiento del dispositivo tCAB, tal y como se ha ido explicando en los sucesivos apartados, depende en gran medida en la comunicacin serie establecida entre el mC y el Mdulo de Autenticacin Biomtrica (enlace mC-MOD), para la que se emplear el Protocolo de Comandos del Mdulo. El Paquete Estndar del protocolo, utilizado en la comunicacin interna para el enlace mC-MOD, tiene un tamao de 13 Bytes y est compuesto por los siguientes campos (Tabla 4.5): 1. Start Code: Inicio del paquete. Para los paquetes estndar siempre es UF_START = 0x40 (constante definida en el programa). 2. Command: Comando de ejecucin de una determinada tarea o proceso del mdulo de autenticacin. 3. Param: Indica el valor de un parmetro del mdulo o el nmero de identificacin del usuario en la base de datos (user ID o PIN). 4. Size: Indica el tamao de los paquetes de datos enviados justo despus de un paquete de comando como patrones o imgenes de huellas. 5. Flag/Error: Indica la seleccin de una opcin adicional en el paquete de solicitud o demanda, y el cdigo de error en el de respuesta del mdulo. 6. Checksum: Resto de la divisin entre 256 (0x100) de la suma de los campos del paquete anteriores a ste. Permite comprobar la validez de los datos transmitidos. 7. End Code: Final del paquete. Para todos los paquetes es UF_END = 0x0A (constante definida en el programa). Tambin se utiliza para indicar el final de los paquetes de patrones o imgenes de huella.
Start Code Command
0x40 1 byte
Param
4 bytes
Size
4 bytes
Flag/Error
1 byte
Checksum
1 byte
End Code
0x0A
Tabla 4.5: Campos del Paquete Estndar del Protocolo de Comandos del
Mdulo.
Los paquetes intercambiados entre el mC y el mdulo, en un sentido de transmisin (paquete de solicitud) o en el otro (paquete de respuesta), siempre tendrn la misma estructura. En general, el esquema de intercambio de paquetes del protocolo es de un paquete de respuesta transmitido por el mdulo despus de enviar el paquete de comando desde el mC. Sin embargo, se recibirn dos paquetes de respuesta del mdulo en algunos comandos como el de identificacin de usuario, en el que se
103
requiere el escaneo de su huella. El primero de ellos se recibe para notificar que se ha completado dicho escaneo en el lector de huella, seguido del segundo con el resultado del proceso, que en este caso, incluir el PIN del usuario si la identificacin ha sido positiva. En la lista de comandos especificada ms adelante se mostrarn los Diagramas Temporales para este tipo de comandos. Otra caracterstica del protocolo es que el orden de transmisin de datos de ms de un byte, como en los campos del paquete de 4 bytes y de los patrones de huella de 384 bytes, siguen la regla Little Endian en la que el byte menos significativo es transmitido en primer lugar. Por ejemplo, en un campo de 4 bytes, el valor 400 que en formato hexadecimal es 0x190, se transmitir byte a byte en el siguiente orden: 0x90, 0x01, 0x00, 0x00. En la siguiente lista se especifican los campos relevantes de los paquetes de comandos utilizados por este protocolo, as como, las tareas que ejecuta cada comando en el mdulo. Se indica, tambin, la funcin o parte del programa donde se implementa este protocolo para ordenar las diversas tareas al mdulo y obtener, en definitiva, los servicios de autenticacin que ste ofrece. A continuacin de este lista se expone tambin la de los parmetros de funcionamiento del mdulo. Todos los valores de los comandos y parmetros del mdulo (1 byte) tienen asociadas unas constantes con prefijo UF, definidas en el header UF_Define.h del cdigo fuente del programa, y que se irn mostrando en las listas de comandos y parmetros.
Lista de Comandos del Protocolo del Mdulo: System Parameter Write: Seleccin del valor de un determinado parmetro de funcionamiento del mdulo.
Paquete de Solicitud:
Campo Command Param Size Flag Datos UF_COMMAND_SW = 0x01 NULL (0x00) ParamVAL (1 byte, ver lista de parmetros) ParamID (1 byte, ver lista de parmetros)
Paquete de Respuesta:
Campo Command Param Size Error Datos UF_COMMAND_SW = 0x01 ParamID NULL UF_SUCCESS = 0x61 UF_NOT_FOUND = 0x69
104
System Parameter Read: Lectura del valor actual de un determinado parmetro de funcionamiento del mdulo indicado por el byte paramID.
Paquete de Solicitud:
Campo Command Param Size Flag Datos UF_COMMAND_SR = 0x03 NULL NULL ParamID
Paquete de Respuesta:
Campo Command Param Size Error Datos UF_COMMAND_SW = 0x01 ParamID ParamVAL UF_SUCCESS = 0x61 UF_NOT_FOUND = 0x69
Identify by Scan: Identificacin del Usuario a partir de la huella dactilar tomada en el lector de huella. Este proceso se implementa en el dispositivo de dos formas: (1) Acceso del Usuario en Modo Identificacin e (2) Identificacin del Usuario como opcin del Men de Configuracin. En el primer caso (1), el mdulo tiene activados los parmetros de funcionamiento Free Scan y Auto Response, en espera de la entrada de la huella del usuario que pretende autenticarse; por tanto, no es necesario enviar el paquete desde el mC solicitando el inicio del proceso de identificacin ya que ste se iniciar automticamente al escanear el usuario su huella, slo se esperarn los paquetes de respuesta con el resultado de este proceso. En el otro caso (2), hay que iniciar el proceso enviando el paquete de solicitud despus de que se haya seleccionado la opcin Identificar Usuario del men de configuracin del dispositivo.
Paquete de Solicitud (slo para (2)):
Campo Command Param Size Flag Datos UF_COMMAND_IS = 0x11 NULL NULL NULL
105
Paquete de Captura o Escaneo de Huella: Campo Command Param Size Error Datos UF_COMMAND_IS = 0x11 NULL NULL UF_SCAN_SUCCESS = 0x62
Paquete de Resultado de Identificacin: Campo Command Param Size Error Datos UF_COMMAND_IS = 0x11 UserID [Nm. Huellas bajo el mismo ID] UF_SUCCESS = 0x61 UF_NOT_FOUND = 0x69 UF_TRY_AGAIN = 0x6B UF_TIMEOUT_MATCH = 0x7A UF_TIMEOUT = 0x6C (slo para (2))
Implementado en: (1) p00_isr(): Recepcin de los paquetes respuesta; y, uf_FreeScanAnalyze(): Anlisis del resultado identificacin en los campos del ltimo paquete de respuesta. (2) uf_Identify(): Completa todo el proceso de identificacin seleccionar la opcin Identificar Usuario del men configuracin del dispositivo. Diagrama Temporal (para (1) y (2)):
Host [mC]
( 2) U F_CO MMA N
de de al de
Mdulo
D_IS
SU A N_ ] F_SC U s er I D SS [U E UC C UF_S
S CCES
Identificacin Completada
106
Scan Template: Habilita el lector de huella en espera de la entrada o escaneo de la huella del usuario y transmite el patrn de huella. Se utiliza durante el Modo de Verificacin para recibir primero el patrn de huella y luego realizar el proceso de verificacin del usuario con su PIN introducido por ste empleando la VUI. Previamente se ha configurado en el mdulo el tiempo de espera de entrada de huella a Infinito mediante el parmetro Timeout (ver Lista de Parmetros de Funcionamiento del Mdulo).
Paquete de Solicitud:
Campo Command Param Size Flag Datos UF_COMMAND_ST = 0x21 NULL NULL NULL
Paquetes de Respuesta:
Paquete de Captura de Huella: Campo Command Param Size Error Datos UF_COMMAND_ST = 0x21 NULL NULL UF_SCAN_SUCCESS = 0x62
Paquete de Resultado Extraccin Patrn de Huella: Campo Command Param Size Error Datos UF_COMMAND_ST = 0x21 NULL Template Size [Tamao Patrn de Huella] UF_SUCCESS = 0x61 UF_NOT_FOUND = 0x69 UF_TRY_AGAIN = 0x6B UF_TIMEOUT = 0x6C (no recibido, puesto que Timeout Infinito)
Paquete del Patrn de Huella Usuario (No Estndar): User Template [384 bytes] End Code [1 byte]
Implementado en: uf_ScanTemplate_Enable(): Enva el Paquete de Solicitud del Comando (se espera la respuesta en el bucle principal); y, p00_isr(): Recepcin de los 3 paquetes de respuesta. Se obtiene el patrn de huella y es almacenado temporalmente en memoria.
107
Diagrama Temporal:
Host [mC] UF_C Mdulo
OMM AN D
_ST
Verify by Template: Inicia el proceso de Verificacin en el mdulo, al enviar desde el mC el paquete de solicitud con el PIN de usuario (UserID) seguido del Patrn de Huella del mismo, recibido anteriormente. Completa el procedimiento de acceso del usuario en Modo Verificacin del dispositivo.
Paquetes de Solicitud:
Paquete del Comando : Campo Command Param Size Flag Datos UF_COMMAND_VT = 0x10 UserID Template Size [Tamao Patrn de Huella] NULL
Paquete del Patrn de Huella Usuario (No Estndar): User Template [384 bytes] End Code [1 byte]
Paquetes de Respuesta:
Paquete de Recepcin Patrn de Huella: Campo Command Param Size Error Datos UF_COMMAND_ST = 0x10 NULL NULL UF_SCAN_SUCCESS = 0x62
108
Paquete de Resultado de Verificacin: Campo Command Param Size Error Datos UF_COMMAND_ST = 0x21 UserID [Nm. Huellas bajo el mismo ID] UF_SUCCESS = 0x61 UF_NOT_FOUND = 0x69 UF_TRY_AGAIN = 0x6B UF_NOT_MATCH = 0x6A
ESS
Verificacin Completada
Enroll by Scan: Registra las huellas del usuario en la base de datos del mdulo. Existen 3 modos de registro de huellas, seleccionables mediante el parmetro del mdulo Enroll Mode. En las opciones Aadir y Mster del men de configuracin del dispositivo se utilizan dos modos de registro. (1) Para el dedo de uso habitual el usuario se registra con 2 patrones de huella, correspondiente al modo Two Templates; (2) y, cuando la opcin Segundo Dedo est activada, el usuario se registrar con 1 patrn de huella pero seleccionado entre 2 huellas escaneadas, correspondiente al modo Two Times. Paquete de Solicitud:
Campo Command Param Size Flag Datos UF_COMMAND_ES = 0x05 UserID NULL UF_AUTO_ID = 0x79 (1) (asignacin UserID automtica, valor Param no importa) UF_ADD_NEW = 0x71 (2) (para registrar una nueva huella bajo un UserID que ya existe sin sobre-escribir las huellas de ste)
109
Paquetes de Respuesta:
Paquete de Captura de Huella: Campo Command Param Size Error Datos UF_COMMAND_ES = 0x05 NULL NULL UF_SCAN_SUCCESS = 0x62
Paquete de Resultado del Registro: Campo Command Param Size Error Datos UF_COMMAND_ES = 0x05 UserID Image Quality [0-100] UF_SUCCESS = 0x61 UF_NOT_FOUND = 0x69 UF_TRY_AGAIN = 0x6B UF_TIMEOUT = 0x6C UF_MEM_FULL = 0x6D (Memoria Llena) UF_FINGER_LIMIT=0x72 (Mx. 10 Patrones de Huella bajo el mismo UserID )
Implementado en: uf_Enroll(autoID, userID), con la variable autoID se determina el campo Flag del paquete de solicitud: autoID=1UF_AUTO_ID, UserID no importa (1); autoID=2UF_ADD_NEW, nueva huella a userID existente (2); autoID=0NULL, asigna huellas a userID (1). Diagrama Temporal (es el mismo para (1) y (2)):
Host [mC]
UF_C OMM
Mdulo
AND
_ES
ESS
Registro Completado
110
Delete Template: Borra a un usuario y sus huellas almacenados en la base de datos del mdulo indicando su UserID. Comando empleado en la opcin Borrar del men de configuracin del dispositivo, el UserID se introduce mediante la VUI.
Paquete de Solicitud:
Campo Command Param Size Flag Datos UF_COMMAND_DT = 0x16 UserID NULL NULL
Paquete de Respuesta:
Campo Command Param Size Error Datos UF_COMMAND_DT = 0x16 NULL NULL UF_SUCCESS = 0x61 UF_NOT_FOUND = 0x69
Delete All Templates: Borra a todos los usuarios y sus huellas almacenados en la base de datos del mdulo. Comando empleado en la opcin Borrar del men de configuracin del dispositivo, y, en el submen de esta opcin, al introducir por voz Borrar Todo.
Paquete de Solicitud:
Campo Command Param Size Flag Datos UF_COMMAND_DA = 0x17 NULL NULL NULL
Paquete de Respuesta:
Campo Command Param Size Error Datos UF_COMMAND_DA = 0x17 NULL NULL UF_SUCCESS = 0x61
111
List User ID: Pide la lista de nmeros de identificacin (UserIDs) de los usuarios almacenados en el mdulo. El paquete con los UserIDs, de tamao variable, se enva desde el mdulo justo despus del paquete estndar de respuesta, en el que se indica el tamao de la lista y donde cada valor de userID se transmite en un campo de 4 bytes. En el paquete de la lista se repiten tantos campos del UserID como patrones de huella tenga asignados.
Paquetes de Solicitud:
Campo Command Param Size Flag Datos UF_COMMAND_LT = 0x18 NULL NULL NULL
Paquetes de Respuesta:
Paquete con el Tamao de la Lista de Usuarios: Campo Command Param Size Error Datos UF_COMMAND_LT = 0x18 Templates Count (Nm. Total Pat. Huella) Data Size (= Nm. Templates x 4 bytes) UF_SUCCESS = 0x61
UserID N [4 bytes]
UserID N [4 bytes]
UserID N [4 bytes]
Implementado en: uf_EnrolledNumber(): Funcin ejecutada en la Secuencia de Inicio para obtener el Nmero Actual de Usuarios (N) registrados en el mdulo, y por tanto, autorizados para el acceso. Al haber usuarios con 2 3 patrones de huella, se debe calcular N, en la funcin, repasando la lista completa sin contar los valores repetidos. Diagrama Temporal:
Host [mC]
UF_C OMM AN D_LT
Mdulo
112
Cancel Operation: Cancela una operacin o proceso del mdulo en curso enviando el paquete de solicitud de cancelacin durante una etapa intermedia.
Paquete de Solicitud:
Campo Command Param Size Flag Datos UF_COMMAND_CA = 0x60 NULL NULL NULL
Paquete de Respuesta:
Campo Command Param Size Error Datos UF_COMMAND_CA = 0x60 NULL NULL UF_SUCCESS = 0x61
Implementado en: uf_Cancel(): Utilizada al principio de la Secuencia de Inicio del programa para cancelar cualquier operacin que pudiera estar pendiente en el mdulo.
Check User ID: Comprueba si un User ID determinado existe en la base de datos del mdulo. Si existe tambin devuelve el nmero de patrones de huella de este usuario.
Paquete de Solicitud:
Campo Command Param Size Flag Datos UF_COMMAND_CT = 0x19 UserID NULL NULL
Paquete de Respuesta:
Campo Command Param Size Error Datos UF_COMMAND_CT = 0x19 UserID Templates (Nm. Patrones de Huella) UF_EXIST_ID = 0x6E UF_NOT_FOUND = 0x69
113
Implementado en: uf_CheckID(usercheckID): Funcin utilizada en diferentes puntos del programa para comprobar la existencia del Administrador o Mster del dispositivo (usercheckID=MASTER_ID). Paquete del Protocolo de Enlace (Red tCAB): Dadas las caractersticas de este comando del protocolo del mdulo, en cuanto a un esquema sencillo de comunicacin de una Respuesta por Solicitud y, sobretodo, porque copia el valor del campo Param (4 bytes) en el paquete de respuesta; se utiliz como Paquete de Peticin de Conexin enviado desde el PC, en el cual est encapsulada la direccin del tCAB en los 4 bytes del campo Param. De este modo, el mdulo copia dicho campo y contesta el paquete hacindolo llegar al mC quien iniciar el Establecimiento de Conexin con el PC si la direccin contenida en el paquete corresponde a la del dispositivo tCAB.
Lista de Parmetros de Funcionamiento del Mdulo: Free Scan: Inicia el proceso de identificacin automticamente, sin necesidad de enviar un comando al mdulo, al detectar la entrada de una huella en el lector. Para que el mdulo transmita los paquetes de respuesta del proceso de identificacin hay que activar el parmetro Auto Response. En el dispositivo se utiliza para implementar el Modo de Identificacin del usuario.
ParamID UF_FREESCAN = 0x84 ParamVAL 0x30: Desactivado (por defecto) 0x31: Activado
Auto Response:
ParamID UF_AUTO_RESPONSE = 0x82 ParamVAL 0x30: Desactivado (por defecto) 0x31: Activado
Timeout: Tiempo de espera para la entrada de la huella de usuario una vez iniciado un proceso que necesite escanearla. Devuelve el error UF_TIMEOUT, en caso de no introducir la huella antes de acabar este tiempo. En el dispositivo se utiliza para esperar de forma indefinida la entrada de huella del usuario despus de habilitar el comando de Scan Template durante el Modo de Verificacin. Para el resto de procesos que necesiten el escaneo de huella en el lector se selecciona un tiempo de 10 segundos.
ParamID UF_SYS_TIME_OUT = 0x62 ParamVAL 0x30: Infinito 0x31: 1 seg. 0x3A: 10 seg. (por defecto) 0x44: 20 seg.
114
Module ID: Especifica la direccin del mdulo utilizada durante el protocolo de red. En ste se utilizan paquetes de red (15 bytes) con un campo ms de 2 bytes para indicar la direccin. En el programa del dispositivo, y durante la secuencia de inicio, se asigna al mdulo la direccin de red del dispositivo tCAB, programada previamente, y fuera de lnea, en el sector CSBOOT1 de la Flash2 (ver Programacin en el Apdo. 4.2.4).
ParamID UF_MODULE_ID = 0x6D ParamVAL Rango (2 bytes): [1..65535] = [0x01..0xFFFF]
Network Mode: Configura el mdulo en modo de red, en el que se comunica mediante Paquetes de Red de 15 bytes al aadir el campo de direccin. El mdulo se cambiar a este modo durante la comunicacin externa con el PC durante el Estado de Servicio de Red en la NTSR (ver ms adelante el Protocolo de Enlace de Red).
ParamID UF_NETWORK_MODE = 0x83 ParamVAL 0x30: Desactivado (por defecto) 0x31: Activado (Half-Duplex)
Enroll Mode: Seleccin del modo en que se registran las huellas del usuario. En el programa del dispositivo slo se emplean los modos: 0x41, para el 1er Dedo o Habitual; y, 0x31, para el 2 Dedo o Auxiliar.
ParamID UF_ENROLL_MODE = 0x65 ParamVAL 0x30: 1 Scan1 Template 0x31: 2 Scan*1 Template 0x32: 2 Scan**1 Template 0x41: 2 Scan*2 Template (por defecto) 0x42: 2 Scan**2 Template * 1 Comando; inicia 2 escaneo automticamente. ** 2 Comandos; inicia cada escaneo con un comando.
Parmetros del Mdulo Seleccionados Fuera de Lnea: A diferencia de los parmetros de funcionamiento del mdulo anteriores, que se modifican en tiempo de ejecucin del programa del dispositivo; los siguientes parmetros se fijan como parmetros de fbrica, guardados de forma no voltil en la memoria interna del mdulo (ver Programacin en el Apdo. 4.2.4).
ParamID UF_BAUDRATE = 0x71 Seleccin off-line de la Tasa de Transmisin de tramas serie. ParamVAL 0x31: 9600 bps 0x32: 19200 bps (seleccionado) 0x33: 38400 bps 0x34: 57600 bps 0x35: 115200 bps (por defecto)
115
ParamID UF_SENSOR_INDEX = 0x68 Seleccin del Tipo de Lector de Huella utilizado por el mdulo.
ParamVAL [0x30..0x3A]: Compatibilidad con 11 tipos de lectores de huella (capacitivos, pticos y trmicos) 0x31: Atmel FingerChip, Trmico por Desplazamiento (seleccionado) 0x33: 1/104 (mnimo) 0x34: 1/105 (seleccionado y por defecto) 0x35: 1/106 0x36: 1/107 0x37: 1/108 0x30: Baja 0x31: Media (seleccionado y por defecto) 0x32: Alta 0x33: Mxima
UF_SECURITY_LEVEL = 0x66
Seleccin del FAR (Tasa de Falsas Aceptaciones). Al aumentar FAR (Nivel de Seguridad) se aumenta tb. FRR (Tasa de Falsos Rechazos). UF_ENROLL_QUALITY = 0x81 Seleccin del umbral de Calidad de la imagen de huella capturada en el lector, exigido por el mdulo. Si es muy elevado se rechazarn muchas entradas de huella, siendo menos operativo.
Paquete de Red: Este es el tipo de paquete utilizado por el mdulo al cambiar a su modo de red, en el cual, slo se cambia el campo de inicio (UF_START2=0x41) y se aade un nuevo campo de direccin (ModuleID) respecto al paquete estndar, manteniendo los mismos valores del protocolo de comandos para el resto de campos. Se emplea una vez establecida la conexin con el PC, al comprobar la direccin del dispositivo (igual a la del mdulo) recibida en el paquete de peticin de conexin, y durante el resto de la comunicacin externa.
Start Code
0x41
Module ID Command
2 bytes 1 byte
Param
4 bytes
Size
4 bytes
Flag/Error
1 byte
Checksum
1 byte
End Code
0x0A
Tabla 4.6: Campos del Paquete de Red (15 bytes) del Protocolo del Mdulo.
116
Paquetes de Conexin (PC-tCAB): Para establecer la conexin entre el PC y el dispositivo tCAB, desde el PC se transmite a todos los terminales de la red, primero, la Trama de Peticin de Conexin, seguida del Paquete de Peticin de Conexin. Este paquete corresponde al paquete estndar del comando Check User (Tabla 4.7), visto anteriormente en el protocolo del mdulo y reutilizado ahora para el protocolo de enlace; el cual fue elegido para encapsular la informacin dirigida al mC en el campo Param, y debido a que todos los paquetes enviados desde el PC pasan necesariamente por el mdulo. Entonces, el PC podr transmitir este paquete de forma Broadcast ya que se trata de un paquete estndar aceptado por todos los mdulos de cada tCAB al no estar todava en modo de red.
Trama de Peticin de Conexin: Transmisin de 1 Byte: [0xF0]. Provoca la interrupcin en los tCAB (puerto ICOM) de la red para que preparen la recepcin del paquete de peticin de conexin. Paquete de Peticin de Conexin: Direccin y Comando de tipo Gateway encapsulados en el campo Param del Paquete Estndar (13 bytes). Diferenciamos dos formas de establecer conexin con el tCAB, segn el valor del sub-campo de Comando de Configuracin (Config Command): (1) Conexin para Mltiples Operaciones: [NULL (0x00)], establecimiento de comunicacin normal en el que se permite la comunicacin directa entre el PC y el Mdulo, ordenando mltiples operaciones al mdulo mediante Comandos del Mdulo en Paquetes de Red; as como, la modificacin de los Parmetros de Configuracin del dispositivo mediante los llamados Paquetes de Configuracin (ver ms adelante). Se termina la comunicacin, volviendo el funcionamiento de usuario, cuando se enva el comando de Fin de Comunicacin al mC utilizando el ltimo tipo de paquetes. (2) Conexin Rpida: [Comando GATEWAY], se aprovecha el mismo sub-campo del paquete de peticin de conexin para realizar una de las dos operaciones de configuracin disponibles: (NTCALL_SEND_CONFIG_GATEWAY) Pide los valores actuales de los Parmetros de Configuracin del dispositivo que se enviarn en el paquete de reconocimiento de conexin; y, (NTCALL_SETMODULE2STANDALONE_GATEWAY) Ordena el retorno al Modo de Operacin Autnomo (Stand-Alone) del tCAB, cambiando el parmetro respectivo, [tflag_ntmode=0]. Despus de responder vuelve al funcionamiento normal o de usuario.
Param tCAB Address
(=Module ID) ej: 2034=0x07F2
Datos [Byte 1]: 0xF2 [Byte 2]: 0x07 [Byte 3]: (1) NULL (0x00) (2) Comandos Gateway:
NTCALL_SEND_CONFIG_GATEWAY = 0x11 NTCALL_SEND_STATE_GATEWAY = 0x12 (uso futuro) NTCALL_OPENDOOR_GATEWAY = 0x13 (uso futuro) NTCALL_SILENTALARM_GATEWAY = 0x14 (uso futuro) NTCALL_SETMODULE2STANDALONE_GATEWAY = 0x15
117
Start Code
0x40
Command
UF_COMMAND_CT
Param
4 bytes
Size
4 bytes
Flag/Error Checksum
1 bytes 1 bytes
End Code
0x0A
Tabla 4.7: Campos del Paquete Estndar (13 bytes) utilizado como Paquete
de Peticin de Conexin del Protocolo de Enlace. Direccin tCAB e Informacin contenida en el Campo Param (campos Size y Flag/Error no importa el valor).
Paquete de Establecimiento (o Reconocimiento) de Conexin: Si el paquete de peticin de conexin va dirigido a la direccin del tCAB responde con este paquete para confirmar el establecimiento de conexin al PC. Este paquete tiene la estructura de un paquete de red (15 bytes), como los Paquetes de Configuracin destinados al mC (ver ms adelante), por lo que la direccin del tCAB se especifica en el campo Module ID (ver Tabla 4.8), disponiendo de los 4 bytes del campo Param para transmitir la informacin de configuracin del dispositivo o confirmar el cambio al Modo de Operacin Autnomo, en el caso de Conexin Rpida (Comandos Gateway).
Param
Datos [Byte 1]: (a) Respuesta a Paq. Petic. Conexin Normal: NULL
(b) NTCALL_SEND_CONFIG_GATEWAY= 0x11 (c) NTCALL_SETMODULE2STANDALONE_GATEWAY = 0x15
[Byte 2]: (a) Respuesta a Paq. Petic. Conexin Normal: NULL (b) [Valor Actual: ttime_open] (c) NTCALL_SETMODULE2STANDALONE_GATEWAY = tCAB Config Command
0x15
[Byte 3]: (a) Respuesta a Paq. Petic. Conexin Normal: NULL (b) [Valor Actual: ttime_sensor] (c) NULL [Byte 4]: (a) Respuesta a Paq. Petic. Conexin Normal: NULL (b) NTCALL_IDENTIFICATION_MODE= 0x0A (ttflag_vui=0)
NTCALL_VERIFICATION_MODE= 0x0B (ttflag_vui=1)
(c) NULL
118
Paquetes de Configuracin tCAB: Paquete de Solicitud enviado desde el PC al tCAB pero con destino al mC, para modificar los Parmetros de Configuracin del Dispositivo; y, Paquete de Respuesta al PC enviado desde el mC, para confirmar el xito de la operacin. Tendrn la estructura de paquete de red (15 bytes) del protocolo del mdulo y en el campo Command se especificar el comando UF_COMMAND_CT, indicando que se trata de este tipo de paquetes de configuracin del protocolo de enlace (ver Tabla 4.8). La Direccin del tCAB estar contenida en el campo Module ID, disponiendo del campo Param para los comandos de cambio de parmetros del dispositivo: (a),(b) y (c). Adems de los comandos de: (d) envo al PC de los valores actuales de estos parmetros, (e) vuelta al Modo de Operacin Autnomo (Stand-Alone), y, (f) Fin de Comunicacin (2 bytes: 0xFFFF).
Paquete de Solicitud:
Param Datos [Byte 1]: Comandos: (a) NTCALL_CHANGE_TIMEOPEN= 0x21
(b) NTCALL_CHANGE_TIMESENSOR= 0x22 (c) NTCALL_CHANGE_OPERATIONMODE = 0x23 (d) NTCALL_SEND_CONFIG = 0x24 (e) NTCALL_SETMODULE2STANDALONE = 0x26 (f) NTCALL_KILL_MODULE = 0xFF
[Byte 2]: (a) [Nuevo Valor: ttime_open] (b) [Nuevo Valor: ttime_sensor] (c) [Nuevo Valor:
NTCALL_IDENTIFICATION_MODE= 0x0A (ttflag_vui=0) NTCALL_VERIFICATION_MODE= 0x0B (ttflag_vui=1) (d) NULL (0x00) (e) NULL (0x00) (f) NTCALL_KILL_MODULE = 0xFF
Paquete de Respuesta: Para todos los comandos excepto: (d) NTCALL_SEND_CONFIG, en caso de ejecutar el comando con xito se responder con el mismo paquete enviado desde el PC. Si ha habido algn error en el Byte 2 del paquete de respuesta se enviar el valor: 0xFF. A continuacin se muestra el paquete de respuesta para enviar al PC los valores actuales de los Parmetros de Configuracin.
Param [Byte 1]:
(d) NTCALL_SEND_CONFIG = 0x24
Datos
[Byte 2]: (d) [Valor Actual: ttime_open] [Byte 3]: (d) [Valor Actual: ttime_sensor] [Byte 4]: (d) NTCALL_IDENTIFICATION_MODE= 0x0A (ttflag_vui=0)
NTCALL_VERIFICATION_MODE= 0x0B (ttflag_vui=1)
119
Start Code
0x41
Module ID
tCAB Address
Command
UF_COMMAND_CT
Param
4 bytes
Size
4 bytes
Tabla 4.8: Campos del Paquete de Red (15 bytes) utilizado como Paquete de
Configuracin del Protocolo de Enlace. Informacin contenida en el Campo Param (campos Size y Flag/Error no importa el valor).
Host Int. [mC] Interrupcin ICOM
onexin ticin C Paq. Pe B] [Dir.tCA ND_CT]
MA
Mdulo
[UF_COM
[UF_COM
Paq. Re conocim ineto Co nexin [UF_COM MAND_ CT][Pa q. Red] dulo itud M q. R e d] DA][Pa
MAND_
uesta M
CESS][
Ejecucin Comando Config. -----------Si Comando NTCALL_ KILL_MODULE Fin Com (NTSR)
cin onfigura licitud C Paq. So . R e d] T][Paq AND_C M [UF_COM Paq. Res puesta C onfig [UF_COM MAND_ CT][Pa q. Red]
MAND_ CT][P
Figura 4.20: Campos del Paquete de Red (15 bytes) utilizado como Paquete
de Configuracin del Protocolo de Enlace. Informacin contenida en el Campo Param (campos Size y Flag/Error no importa el valor).
120
En el diagrama temporal de la figura 4.20 podemos ver el desarrollo de la comunicacin entre el PC y el dispositivo tCAB definida en el Protocolo de Enlace. Primero, el PC inicia la Secuencia de Establecimiento del enlace PC-tCAB o de Conexin, enviando a todos los dispositivos de la red tCAB (Broadcast) la trama y el paquete de peticin de conexin. Entonces, slo responder el tCAB que tenga la misma direccin de red que la enviada por el PC en el paquete de peticin de conexin. Si en este paquete se enva un Comando de tipo Gateway (Conexin Rpida), el dispositivo (mC) responder con la informacin pedida o el resultado de la operacin solicitada y terminar la comunicacin, como se indica en el diagrama. En caso contrario, el mC permitir la comunicacin directa entre el mdulo y el PC, empleando paquetes de red con comandos del protocolo del mdulo, para realizar operaciones, principalmente, relacionadas con la base de datos de usuarios del mdulo desde la aplicacin de gestin del PC (ver Apdo. 4.3). En esta aplicacin se centraliza la base de datos de usuarios de todos los dispositivos tCAB de la red y, mediante el protocolo de enlace, se podrn borrar usuarios y registrarlos, transfiriendo sus patrones de huella. En cualquier momento de la comunicacin, el PC podr enviar un paquete de configuracin para realizar cualquiera de las operaciones indicadas anteriormente y como se indica en el diagrama temporal. Una de las cuales es la de terminacin de la comunicacin para lo que el PC transmitir un paquete de configuracin con el comando: NTCALL_KILL_MODULE. La implementacin de la Secuencia de Establecimiento de Enlace del Protocolo, realizada en el programa del dispositivo, se puede ver repartida entre los siguientes flujogramas: Bucle Principal (Figs. 4.15[a]-[b]), desde donde el programa salta a la funcin de interrupcin p02_isr() al detectar la trama de peticin de conexin en ICOM, y donde se realiza la espera al paquete de conexin volviendo al funcionamiento normal en caso de no recibirlo; Funciones de Interrupcin, ISRs, (Fig. 4.16), en p00_isr() se recibe el paquete de peticin de conexin y se comprueba la direccin de red, si no corresponde al dispositivo volver al funcionamiento normal. En caso contrario, continuar la secuencia reiniciando el programa para saltar a la Funcin de Servicio de Red o NTSR, ntcall_SR(), la implementacin de este paso y de la NTSR, donde se acaba la secuencia de conexin y contina con la ejecucin de la gestin de la comunicacin PC-tCAB, se puede ver en las figuras 4.21[a] y 4.21[b] a continuacin del diagrama temporal del protocolo de enlace (Fig. 4.20).
INICIO main()
[tflag_vui=0]
No
ntcall_SR():
Rutina Servicio de Red tCAB (NTSR).
121
ntcall_SR()
Paq. Conexin
[BufferRX (Byte 0) NTCALL_SETMODULE2STANDALONE_GATEWAY]
No
Transmisin mC-MOD-PC Paquete de Red (15 bytes): Paq. Reconocimiento de Conexin o Enlace
BUCLE COM
Tipo de Enlace
[Gateway_ntcall=0]
Recepcin PC-MOD-PC Paquete de Red (15 bytes): Paquetes Respuesta del Md. durante Com. PC-MOD
No
Q3
Paq. para mC
[BufferRX (Byte 3) = UF_COMMAND_CT]
No
[Continue Com]
[BufferRX(Byte 4) =NTCALL_CHANGE_TIMEOPEN]
Si Error [BufferTX(Byte6)=0xFF]
[ttime_open=BufferRX(Byte5)]
[ttime_sensor=BufferRX(Byte5)]
Si Error [BufferTX(Byte6)=0xFF]
Si Error [BufferTX(Byte6)=0xFF]
[tflag_vui=BufferRX(Byte5)]
[End Com]
Q3
[End Com] No
[CCOM(P2.0)=1]: Com. mC-MOD Transmisin mC-MOD-PC Paquete de Red (15 bytes): Paq. Respuesta BufferTX(0-14) [CCOM(P2.0)=0]: Com. PC-MOD
BUCLE COM
GUARDAR Parms. Config. en Flash2 (utiliz. Funcs. Driver PSD) Si Error Escritura: [flag_fwrite_err=1](3 intentos)
[*(FLAG_FWRITE_FAILURE)=0x01]
Cambia a Com. Normal: uf_SystemWrite(UF_NETWORK_MODE, 0x30) [flag_ntcom=0] [CCOM(P2.0)=1]: Com. mC-MOD RETORNO
122
Por ltimo, cabe resaltar la diferencia entre los Modos de Operacin Autnomo (Stand-Alone) y en Red del dispositivo tCAB, y los Estados de Servicio, de Usuario y de Red, implementados en su programa. El dispositivo est pensado para funcionar inicialmente de forma autnoma, para lo que dispone de un Men de Configuracin accesible por el Administrador o Mster del sistema, como se vio, no teniendo necesidad de un sistema externo para configurarlo o realizar otras operaciones. Sin embargo, se quiso que tambin el dispositivo pudiese funcionar como terminal de una red gestionada desde un PC como maestro, en este caso, se decidi bloquear el acceso al men de configuracin de cada dispositivo conectado a la red, para evitar incoherencias en la base de datos de usuarios de todos ellos localizada en el PC. Estas dos maneras en las que el dispositivo puede trabajar se denominaron, respectivamente, Modo de Operacin Autnomo (en el programa: [tflag_ntmode=0]), y en Red (en el programa: [tflag_ntmode=1]). El dispositivo cambiar al modo de operacin en red automticamente al establecer conexin con el PC por primera vez, y ser slo ste, desde la aplicacin de gestin de la red, quien pueda volver a ponerlo en modo autnomo. En el programa los modos de operacin se indican mediante el parmetro de configuracin, tflag_ntmode En cambio, los estados de servicio sirven para diferenciar las dos posibles situaciones de funcionamiento del dispositivo que se dan cuando se encuentra en el Modo de Operacin en Red. La primera es cuando el dispositivo est funcionando normalmente, atendiendo a la tarea principal de control de acceso de usuarios, denominado Estado de Servicio de Usuario (flag_ntcom=0); y, la segunda es en el momento en que se est comunicando con el PC (en la Funcin NTSR) denominado Estado de Servicio de Red (flag_ntcom=1).
123
Memoria de Programa
[Flash 1aria: 256 Kb] 0x3FFFF Firmware tCAB [F7:32Kb] 0x38000 Firmware tCAB [F6:32Kb] Firmware tCAB [F5:32Kb] 0x28000 Firmware tCAB [F4:32Kb] 0x20000 Firmware tCAB [F3:32Kb] Firmware tCAB [F2:32Kb] 0x10000 Firmware tCAB [F1:32Kb] 0x8000 Firmware tCAB [F0:32Kb] 0x4000 0x2000 0x00 0x8000 0x7FFF 0x6000 0x100FF 0x10000 0xFFFF
Memoria de Datos
[Registro de Control PSD] [CSIOP: 256 bytes] [SRAM: 32 Kb]
0x30000
0x18000
[Flash 2aria: 32 Kb] No Mapeado [CSBOOT4:8Kb] No Mapeado [CSBOOT3:8Kb] Dir. tCAB+ Flag Error CSBOOT0 [CSBOOT1:8Kb] Parmetros de Config. tCAB [CSBOOT0:8Kb]
0x00
Recordemos que el mC no dispone de memoria de programa re-programable (programable slo por mscara), por lo que usamos la memoria externa PSD para el espacio de programa, adems de, para el espacio de datos. El mC es capaz de direccionar instrucciones de programa slo hasta un mximo de 128 Kb (denominado por el fabricante del mC: Code/Const Space). Entonces el programa y las constantes slo se mapean, en realidad, en los primeros 128 Kb de la Flash1 de la PSD, utilizando
124
el resto de sectores de la Flash1 para los datos de los mensajes y vocabularios compilados junto al programa, y que son slo de lectura. Por tanto, el cdigo binario tanto del programa como de sus mensajes y vocabularios, que constituyen el Firmware desarrollado para el dispositivo tCAB (en Espaol: VOFINGERPRINT_ES.HEX; en Ingls: VOFINGERPRINT_EN.HEX), se mapean en los 256 Kb de la Flash Primaria, en lo que denominamos espacio de Memoria de Programa. Respecto al espacio de Memoria de Datos de la PSD (Lectura/Escritura), que, como se puede ver en la figura 4.22, est compuesto fundamentalmente por la Flash Secundaria de 32 Kb (CSBOOT) y una memoria SRAM del mismo tamao actuando como RAM Externa del mC; se reserva para los parmetros de configuracin del dispositivo y otras variables del programa que no caban en la parte de la RAM Interna del mC dedicada al programa (slo 256 bytes de 4.8 Kb en total).
Archivo del Firmware del tCAB: Programacin en Flash1([F0..F7]: 256 Kb) de una de las dos versiones del firmware disponibles, correspondientes al idioma de la Interfaz de Voz de Usuario (VUI) incorporado:
Versin en Espaol: VOFINGERPRINT_ES.HEX Versin en Ingls: VOFINGERPRINT_EN.HEX
Archivo de la Direccin de Red del tCAB: La direccin de cada dispositivo se programa desde fbrica en los dos primeros bytes del sector CSBOOT1 (8Kb) de la Flash2 (0x2000-0x2001). Los archivos se nombran segn la direccin del dispositivo que contienen, como en los siguientes ejemplos:
Direccin tCAB [A] = 0xFF01*: mid_FF01.H07
*
Contenido de este archivo en formato Intel HEX (direccin en negrita): :0220000001FFDE :00000001FF
125
Contenido de este archivo en formato Intel HEX (direccin en negrita): :022000000100DE :00000001FF
Se trata, entonces, de dos parmetros del mdulo esenciales para el correcto funcionamiento de nuestro dispositivo, que son:
Baud Rate: Seleccin de de19200 bps para la Tasa de Transmisin Serie. Sensor Index: Seleccin del Lector de Huella de tipo Trmico por Desplazamiento (Atmel FingerChip).
Y otros dos, que normalmente vendrn configurados por defecto en el valor que nos interesa, aunque conviene revisarlos y fijarlos a los siguientes valores:
Security Level: Seleccin del Nivel de Seguridad de Autenticacin, o Tasa de Falsas Aceptaciones (FAR), en 1/105. Image Quality: Calidad de Imagen, capturada por el lector de huella, que el mdulo exigir para iniciar el proceso de autenticacin. Seleccin de Calidad Media.
Debido a que Baud Rate es el parmetro que determina la tasa de transmisin serie entre el mC y el mdulo, ste no se puede configurar durante la ejecucin del programa ya que por defecto el mdulo se encuentra a una tasa de 115200 bps. Adems como este parmetro siempre debe tener el mismo valor, se guardar de forma permanente en la memoria Flash interna del mdulo. Al igual que los valores seleccionados para los otros parmetros fijos. Para configurarlos se utilizar la aplicacin BioFinger y la placa de evaluacin del mdulo, conectada al PC por puerto serie. Entonces, mediante las opciones de esta aplicacin y eligiendo inicialmente la tasa de transmisin serie del PC a 115200 bps, coincidiendo con la que tendr el mdulo por defecto, se podrn seleccionar estos parmetros de funcionamiento. Igualmente, la versin 1.4 del Firmware del Mdulo, es la recomendada para su funcionamiento, puesto que con esta versin es con la que se desarroll el programa del dispositivo tCAB. Con versiones inferiores no se asegura la correcta comunicacin entre el mC y el mdulo, y en consecuencia, tampoco su funcionamiento. Un indicativo
126
de este tipo de fallo de comunicacin, es que al iniciar el dispositivo slo emite un tono, no dos como debe ser.
Motor de Reconocimiento y Lector ptico de Huella Dactilar: El propio fabricante del mdulo de autenticacin ofreca un SDK (Software Development Kit) para Windows en el que se incluyen los algoritmos de Reconocimiento de Huella Dactilar, como motor de reconocimiento, y una librera DLL accesible por medio de llamadas a un conjunto de funciones. As pues, en el cdigo fuente de la aplicacin se utilizaron estas funciones para implementar las tareas de autenticacin junto a la captura de huellas dactilares, realizada a travs de un lector de huella ptico con conexin al PC por puerto USB. Base de Datos de Usuarios y Terminales de la Red tCAB: Aqu es donde se guardan a todos los usuarios de la red, registrados, en principio, slo desde al propia aplicacin para luego Habilitarlos o Deshabilitarlos en cada terminal, que son operaciones anlogas a las opciones Aadir y Borrar del men de configuracin del dispositivo. Los Campos de Usuarios son:
Identificador del Usuario (PIN o UserID). Nombre del Usuario.
127
Patrones de Huella del Usuario para Dedo Habitual (2 templates) y Auxiliar (1 template). Terminales en los que el Usuario est Habilitado (registrado). Para poder gestionar los terminales de la red se guardaron tambin las caractersticas de cada uno de ellos en la base de datos creada. Los campos relevantes, que se mostrarn al usuario de la aplicacin, de cada terminal son: Direccin de Red del tCAB (ModuleID). Descripcin de la Puerta de Acceso del Terminal. Estado de la Conexin o Enlace con el tCAB: Desconectado, est en modo de op. autnomo o nunca se ha conectado; En Lnea, se puede realizar cualquier operacin normalmente; y, Fuera de Lnea, ha habido algn problema por lo que ser necesario reintentar la conexin. Parmetros del tCAB: Tiempos de Apertura y Sensor, Modo de Autenticacin, Nmero de Usuarios y Patrones de Huella. De forma similar al funcionamiento autnomo del dispositivo, donde slo el administrador puede acceder al men de configuracin despus de autenticarse como tal; esta aplicacin requerir tambin la autenticacin de un administrador antes de poder trabajar con ella, aunque ahora se permitir que tenga hasta un mximo de 10 administradores, indicando, eso s cual de ellos ha iniciado la sesin de trabajo. El conjunto de administradores ser guardado en la base de datos como usuarios especiales que, del mismo modo que los usuarios normales, se podrn habilitar para el acceso en cada terminal. Entonces, mediante esta base de datos, desarrollada a propsito para esta aplicacin empleando estructuras de datos o records (como se denominan en Pascal); se pudo organizar su visualizacin en las listas del Panel Principal (ver ms adelante), permitiendo mostrar la lista de terminales junto a su descripcin, as como, la lista completa de usuarios correspondiente a todos los terminales, indicando a qu terminales est asignado este usuario y si est o no habilitado en ellos. Tambin, para mayor comodidad del administrador que use la aplicacin, al seleccionar en la lista de terminales a uno de ellos se mostrar slo la lista de usuarios del terminal seleccionado.
Capa de Comunicaciones. Protocolo de Enlace: En una de las unidades de cdigo de la aplicacin se implement la capa de comunicaciones donde se aprovecharon los recursos de comunicaciones serie por el puerto COM accesibles por medio de llamadas a la API de Windows, y se definieron todas las funciones relacionadas con el protocolo de enlace de red y de comandos del mdulo para intercambiar los paquetes con los terminales conectados a la red tCAB. Estas funciones podan ser llamadas desde cualquier otra unidad de cdigo, a modo de interfaz con la capa de comunicaciones, para realizar las tareas de gestin de cualquier terminal de la red.
128
A continuacin se presenta la aplicacin desarrollada, VoFP_WinProx 1.0, a partir de las Ventanas de Dilogo, donde se realizarn operaciones o tareas concretas, as como, de su Panel Principal, desde donde se podr acceder a todas las opciones y tareas de esta aplicacin. Hay que hacer notar, tambin, que para esta primera versin se eligi el ingls como idioma por defecto de la aplicacin.
Figura 4.23: Aspecto de los Lectores de Huella Dactilar disponibles. El utilizado fue el de la izquierda que es slo lector de huella, mientras que el de la derecha es tambin un ratn; ambos con conexin USB.
129
Despus de pulsar el botn Login o la tecla F1 (tecla short-cut) en el cuadro de informacin de encima se indica al administrador o System Master que debe colocar su dedo en el lector de huella para ser autenticado y as poder iniciar la aplicacin en el Panel Principal. Al finalizar el proceso de identificacin, si el usuario es realmente un administrador del sistema entonces aparecer el Panel Principal inicindose la aplicacin y cargando la informacin de las listas de este panel desde la base de datos de la red almacenada en un archivo. En caso contrario se mostrar un mensaje de Acceso Denegado en mitad de la ventana. A su vez, la imagen de la huella capturada se mostrar en el recuadro de la derecha de la ventana, independientemente del resultado del proceso de autenticacin. En caso de no tener conectado el lector de huella ptico al PC, en el cuadro de informacin, se indica que se debe conectar el lector para proseguir. Este aspecto se repetir en todas las tareas que necesiten dicho lector pudiendo conectarlo en cualquier momento ya que se detecta de forma inmediata sin necesidad de reiniciar la aplicacin. Es importante comentar que, en la situacin de no haber registrado ningn administrador de sistema en la aplicacin, al presionar el botn de Login o F1 se iniciar normalmente la aplicacin pudiendo realizar cualquier tarea. Esto es as, para que al instalar la aplicacin pueda ser iniciada al no haber todava ningn administrador, pero lo primero que se recomienda hacer es registrar a una persona como administrador, lo que se recuerda con el mensaje Add System Master! en el cuadro inferior del panel principal donde, habitualmente, se indica el nombre del administrador que ha iniciado la sesin de trabajo. El botn de Exit es, simplemente, para cerrar esta ventana y salir de la aplicacin, de manera ms cmoda que con el icono clsico del formato de ventana para cerrarla.
130
elementos comentados en referencia a la parte o la vista del panel donde aparecen (Figs. 4.24[a]-[c]):
Panel de Navegacin [Navigator]: Situado a la izquierda del panel principal se representa el rbol de organizacin de la red tCAB, desglosada en dos niveles: Puntos de Acceso (Access Points), correspondientes a un nivel por cada terminal de la red; y, Usuarios en la red (Net Users). Al mismo nivel que la organizacin de la red se despliega la lista de Administradores con el rtulo System Masters, en las figuras del panel principal esta lista aparece vaca por no haberse registrado ningn administrador de sistema, por esta razn se muestra la advertencia Add System Master en el lugar donde normalmente se muestra el nombre del administrador que ha iniciado la sesin (cuadro de informacin inferior).
Por medio de la seleccin de cada nivel dentro del rbol de organizacin de la red, en el panel justo a la derecha del panel de navegacin, irn apareciendo las listas correspondientes de terminales o usuarios descritas a continuacin:
Lista de Terminales tCAB o Puntos de Acceso (Fig. 4.24[a]): Se muestra al seleccionar en el panel de navegacin el rtulo del nivel Access Points y, tambin, en la vista por defecto del panel principal al entrar en la aplicacin. En esta lista se detallan las caractersticas y parmetros de cada terminal o punto de acceso, incluyendo su respectiva Direccin de Red en la columna APaddress. Se listan segn el orden en que fueron conectados a la red por primera vez, operacin realizada en el dilogo Build Net como se ver posteriormente, e indicado por la columna APid donde tambin se muestra el Estado de Conexin: Desconectado (escudo rojo), En Lnea (escudo verde) o Fuera de Lnea (escudo amarillo). El resto de columnas corresponden a los parmetros de configuracin del terminal: Tiempo de Apertura / Open Time, Tiempo de Sensor / Sensor Time y Modo de Autenticacin / Operation Mode; y, al Nmero de Usuarios asignados al terminal / Users y su Capacidad para Usuarios Restante respecto a la Capacidad Total* / Available.
*
La Capacidad para Usuarios Total vara segn se vayan registrando los usuarios con 2 o 3 patrones de huella, puesto que la capacidad real del terminal es para el nmero de patrones de huella (1950 pat.) y no para usuarios. Entonces, la Capacidad para Usuarios Total siempre ser la suma de los registrados ms la Capacidad para Usuarios Restante (sin dedo auxiliar, i.e., si se registrasen slo con 2 patrones).
Lista de Usuarios por Terminal tCAB (Fig. 4.24[b]): Se muestra al seleccionar en el panel de navegacin el rtulo correspondiente a cada terminal o punto de acceso. En este rtulo se indica el estado de conexin del terminal, su ndice en la red configurada y la descripcin de la puerta de acceso que controla. Encabezando a la lista de usuarios del terminal seleccionado, se exhiben tambin las caractersticas detalladas de este terminal para mayor comodidad del administrador. Las columnas de la lista de usuarios del terminal reflejan, para cada usuario, su Nmero de Identificacin Personal (PIN) / User Id, su Nombre / User Name, si se registr con la huella de un Segundo Dedo (dedo auxiliar) / Second
131
Finger para poder autenticarse con l; y, las dos ltimas columnas donde se indica: los terminales a los que ha sido asignado y en los que el usuario podr ser habilitado y deshabilitado (Added to Access Points)* y, los terminales en los que actualmente est habilitado (Enabled on), tal y como aparece en la figura 4.24[b], si no est habilitado en ningn terminal se indica con el mensaje Disabled.
*
Hay que remarcar la diferencia entre Usuarios Asignados (Added) a los terminales y Usuarios Habilitados (Enabled) en los terminales. En el primer caso estos slo estn registrados en la base de datos del PC indicando los terminales o puntos de acceso a los que est asignado, para luego, en el segundo caso poder ser habilitados, o bien deshabilitados, en cada terminal a los que est asignado, y as puedan autenticarse para el acceso, o bien no se les permita el acceso en un momento dado. Las operaciones de habilitar o deshabilitar usuarios implica, enviar sus patrones de huella a cada terminal o borrarlos del terminal, respectivamente.
Lista de Usuarios en la Red tCAB (Fig. 4.24[c]): Se muestra al seleccionar en el panel de navegacin el rtulo del nivel Net Users. De este modo, se listarn a todos los usuarios de la red, es decir, que estn asignados a algn terminal o punto de acceso de la red. Las caractersticas de los usuarios que se muestran son las mismas que en las listas anteriores. Se puede observar que en el panel de navegacin, debajo de Net Users, aparece el Nmero Total de Usuarios de la red, mientras que, el icono del escudo junto a esta leyenda indicar si no hay usuarios cuando sea de color amarillo, o, en color rojo, si se ha alcanzado el lmite de usuarios para los terminales existentes en la red. Botones pertenecientes a la Barra Principal: En esta barra de botones, localizada en la parte superior del panel principal, se colocaron los correspondientes a las operaciones ms comunes o no asociadas directamente a las listas de terminales y de usuarios exhibidas en el panel de listas. [Build Net] (Ctrl+B): Abre una ventana de dilogo para detectar los nuevos terminales conectados a la red y aadirlos a la base de datos de la aplicacin (ver punto 4.3.3 / Fig. 4.25). [Sys Masters] (Ctrl+S): Sirve para registrar o sustituir a los Administradores del Sistema (System Masters) empleando las opciones de la ventana de dilogo correspondiente (ver punto 4.3.5 / Fig. 4.31). [Add Users] (Ctrl+A): Se utiliza para registrar a los usuarios de la red en la base de datos de la aplicacin. Por medio de las opciones de su ventana de dilogo desde aqu tambin se podr habilitar en los terminales elegidos despus de ser registrados (ver punto 4.3.4 / Fig. 4.28). [Identify] (Ctrl+I): Esta opcin se incluy para buscar usuarios en la lista de usuarios general despus de tomar la huella del usuario a localizar. Tambin se puede usar para comprobar que las huellas de un usuario recientemente aadido han sido correctamente capturadas (ver punto 4.3.5 / Fig. 4.32).
132
[LogOut] (Ctrl+L): Al presionar este botn se cierra temporalmente el panel principal mostrando seguidamente la ventana de autenticacin de administradores. De este modo, se utiliza para, en momentos, por ejemplo, de ausencia del administrador, proteger el acceso de un usuario no autorizado a la aplicacin y, en consecuencia, a la red. [Exit] (Ctrl+E): Botn para cerrar la aplicacin, realizando la operacin de salvar toda la informacin de la base de datos en un archivo de extensin: *.vfp. Botones pertenecientes a las Barras del Panel de Listas: Abren las ventanas de dilogo correspondientes para realizar operaciones relacionadas directamente con el tipo de lista que tienen justo debajo. En la Lista de Terminales o Puntos de Acceso (Fig. 4.24[a]), adems del botn duplicado [Build Net] incluido aqu por estar tambin relacionado con esta lista; aparecen dos nuevos botones que permiten realizar operaciones sobre cada terminal: [Configure] (Ctrl+C): Abre la ventana de dilogo para configurar individualmente cada terminal de la red mediante las opciones disponibles en la ventana (ver punto 4.3.3 / Fig. 4.26). [Transfer] (Ctrl+T): La ventana que abre este botn se utiliza para realizar operaciones de transferencia de usuarios con sus respectivos patrones de huella desde el Terminal a la Base de Datos de la aplicacin. Es decir, que sirve para importar a los usuarios que puedan existir en un dispositivo tCAB, por ejemplo, por haber trabajado, previamente, de forma autnoma (Stand-Alone). Si la aplicacin detecta que en un terminal existen usuarios previos a la conexin a la red, y que, por tanto, no tendr en su base de datos; en la lista de terminales aparecer junto al parmetro Available el smbolo [T] indicando que se debe Transferir, o bien Borrar, a dichos usuarios del terminal tCAB por medio de la operacin Transfer (ver punto 4.3.3 / Fig. 4.27).
En las Listas de Usuarios por Terminal, en la que tenemos duplicado el botn [Transfer], y la Lista General de Usuarios, donde se ha duplicado el botn [Add Users], (Fig. 4.24[b]) y (Fig. 4.24[c]) respectivamente; aparecen en ambas otros dos nuevos botones para realizar tareas sobre los usuarios que se listan debajo de ellos:
[Enable]: Presionando este botn emerge la ventana con las opciones necesarias para realizar la operacin de Habilitar Usuarios en los terminales que se indiquen (esta op. implica enviar los patrones de huella del usuario al terminal). Antes de abrir esta ventana el administrador deber seleccionar a los usuarios que desee habilitar, en la lista de abajo. En caso de no hacerlo, en la ventana se mostrar un mensaje para recordar al administrador que debe seleccionar a algn usuario de la lista (ver punto 4.3.4 / Fig. 4.29).
133
[Disable/Erase]: Similar a la ventana anterior sirve para Deshabilitar Usuarios (Disable) de cada terminal (esta op. implica borrar al usuario y todos sus patrones de huella del terminal), y tambin para eliminarlos completamente (Erase) de la base de datos de la aplicacin(ver punto 4.3.4 / Fig. 4.30).
Opcin de Archivo de la Base de Datos de la Red [Net File]: En la parte superior izquierda aparece el botn de un men desplegable donde la opcin Save Net as , sirve para guardar el archivo de la base de datos, correspondiente a toda la red, con un nombre determinado y con la extensin propia de la aplicacin, por ejemplo, como el archivo VoFP_NetworkDB_2 .vfp. Asimismo se podrn cargar bases de datos de otras redes tCAB mediante la opcin Load Net. De esta manera, se podrn tener almacenados varios archivos de base de datos en los que se incluyen las configuraciones y usuarios de cada red. Por tanto, despus de conectar el PC a una de estas redes, simplemente con cargar el archivo de la red a la que acaba de conectarse el PC se podr recuperar toda la informacin de la misma para gestionarla.
134
135
Figura 4.24[b]: Panel Principal de la aplicacin: Vista de la Lista de Usuarios por Terminal o Punto de Acceso.
136
137
138
Figura 4.25: Dilogo de la Opcin [Build Net]. Ventana de Dilogo: [Configure] (Fig. 4.26).
Utilizando este dilogo el administrador podr cambiar los Parmetros de Configuracin del terminal seleccionado, correspondiente a la seccin de la ventana titulada Door Control Parameters; as como, retornar al terminal al modo de trabajo Autnomo (Stand-Alone), operacin que se denomin Desconectar / Disconnect el terminal, y, opcionalmente, Eliminar al terminal y todos sus usuarios de la base de datos de la aplicacin, mediante el botn Delete. Esto ltimo se incluye en la seccin de la ventana titulada Disconnect/Delete Access Point Device, donde en la operacin de Desconectar al terminal se podr borrar a todos sus usuarios (Clean Device) y registrar a un Mster, de entre los administradores de la aplicacin, para su funcionamiento en Modo Autnomo. Estas operaciones se iniciarn en el momento de presionar sobre el botn que aparece en la parte inferior izquierda de la ventana, el cual, segn sea el estado de conexin del terminal seleccionado indicar una de las siguientes operaciones: Connect cuando el terminal est Desconectado o Fuera de Lnea, para reconectarlo o reparar la conexin respectivamente; y Refresh cuando est En Lnea y en caso de querer comprobar la conexin o funcionamiento del terminal (esta operacin implica el reenvo desde el terminal de todos sus parmetros).
139
140
La operacin de transferencia se inicia pulsando el botn Transfer de esta ventana, y durante el proceso se irn aadiendo los usuarios recin importados a la lista de arriba. En sta se indicar el nmero de usuario, que en caso de coincidir con alguno que ya exista en la aplicacin se le asignar uno diferente al que tena en el terminal; el nombre de usuario, en el que se escribe su antiguo nmero de usuario en el terminal y desde qu terminal ha sido transferido (en el terminal no se almacenan nombres de usuario); y, por ltimo, si el usuario importado dispone del patrn de huella correspondiente a un segundo dedo o dedo auxiliar.
141
se pedir la huella de un segundo dedo en el momento de capturarlas. El terminal en el que el usuario quedar registrado se seleccionar en la lista de terminales de la red que se despliega al pulsar sobre la pestaa y que aparece debajo del texto Add User to Access Point:. En caso de querer aadir al usuario en todos los terminales disponibles se marcar la casilla de Add to All. Una vez rellenados los campos del usuario descritos, se presionar el botn Add para iniciar el proceso de captura de huellas del usuario. Al finalizar, quedar registrado en la base de datos temporalmente lo que se indica en la lista de usuarios aadidos, encima de los botones de la ventana. En este momento se podr seguir registrando ms usuarios, repitiendo el proceso explicado; o bien, emplear el botn de Enable para habilitar a los usuarios que se seleccionen de la lista en todos los terminales en los que se ha registrado. Igualmente, seleccionando a los usuarios de la lista se les podr eliminar de la base de datos mediante el botn Remove. Toda las operaciones sern definitivas al pulsar el botn Done y para los usuarios que aparezcan en la lista temporal de la ventana. Otra caracterstica de esta opcin es que se podr aadir usuarios existentes en la lista general de usuarios, y que se quiera aadir a nuevos terminales, realizando la seleccin de varios usuarios antes de presionar el botn Add User o la tecla rpida (short-cut key) Ctrl+B. Los usuarios seleccionados en la lista general se mostrarn en la lista temporal de usuarios, pudiendo ahora elegir los nuevos terminales a los que se les quiere aadir.
142
143
144
145
mediante su huella dactilar, realizada en la ventana correspondiente al botn Identify, ser una buena forma de comprobar que las huellas de los usuarios registrados se han capturado y almacenado correctamente despus del proceso de aadir a nuevos usuarios; adems de servir para buscar a cualquier usuario en las lista general de usuarios, especialmente til si la lista es muy extensa. Para iniciar el proceso de identificacin se pulsar el botn Identify de la ventana, entonces, se mostrar el mensaje de colocar el dedo en el lector de huella para capturarla. Al finalizar la identificacin, en los campos bajo el rtulo User Data, se mostrarn los datos del usuario identificado si realmente se encuentra registrado en la base de datos. Adems en, este caso, tambin se iluminar el usuario identificado en la lista total de usuarios del panel principal. Al igual que en la ventana del dilogo anterior para registrar a un administrador, en esta ventana tambin se dispondr de la opcin de aadir a nuevos terminales el usuario identificado, despus de pulsar el botn Add, justo al lado del botn Identify, y por medio del dilogo Add User.
Figura 4.32: Dilogo de la Opcin [Identify]. Ventana de la Traza de la Aplicacin (Fig. 4.33).
Esta es la ventana de la Consola DOS que nunca se mostrar en la versin para el usuario final de esta aplicacin, pero que ser til para depurar futuras versiones de la aplicacin, ya que en ella van apareciendo todas las operaciones internas que realiza la aplicacin, y transparentes al usuario, a modo de traza de la misma. Sobretodo es importante para ver los paquetes enviados y recibidos durante la comunicacin con los terminales de la red tCAB, como se hizo durante el desarrollo de esta aplicacin para depurar el protocolo de enlace, y, por lo que, tambin, se podr usar para mejorar o ampliar este protocolo.
146
Figura 4.28: Ventana de la Consola para ver la traza de las operaciones internas realizadas en el aplicacin, utilizado para depurar la aplicacin.
Captulo 5
Pruebas de Prototipos y Conclusiones
Por ltimo, en este captulo se explicarn las tareas realizadas en la Tercera Fase del desarrollo del proyecto. En el primer apartado se comentan los aspectos ms relevantes de los prototipos construidos, adems de las pruebas y modificaciones realizadas en estos prototipos del dispositivo tCAB. Seguidamente, en el segundo apartado, se continuar con la descripcin de las pruebas llevadas a cabo pero ahora sobre la implementacin de la red tCAB, en la que se incluye tambin las pruebas de utilizacin de la aplicacin desarrollada para la gestin de la red. Finalmente, en el siguiente apartado, se presentan las conclusiones respecto a las tres fases del proyecto, as como, las posibles mejoras o ampliaciones del sistema como trabajo futuro.
148
Cara Top: se colocaron aqu los siguientes circuitos integrados: mC/Procesador de Voz (footprint: LQFP-100), Memoria Externa PSD Flash (PLCC-52), Puertas NAND(DIP-14), Transceiver (DIP-8) y Amplificador de Audio (DIP-8); los componentes ms voluminosos como: Potencimetros (footprint: SMD) de ajuste de las seales de audio de entrada y salida, Condensadores Electrolticos (SMD), Rel abre-puerta (DIP-10), Polyswitch (Thru-hole) y Oscilador (Thru-hole) externo del mC; y, los conectores Molex del JTAG y para las lneas de conexin externa, incluidas las de alimentacin. Cara Bottom: en la cara posterior se situaron las dos tiras de 15 pines thruhole donde se conectara el mdulo de autenticacin biomtrica, adems de colocar el resto de componentes menos voluminosos, y de footprint SMD, como los reguladores de tensin, varistores, diodos, condensadores de pequea capacidad y resistencias; precisamente, para evitar la cercana de los componentes de la placa a los del mdulo, que podran ocasionar problemas de sobre-calentamientos en alguno de los componentes del mdulo y, por ello, quedar daado. Aqu tambin se situaron los conectores de 2 pines thru-hole para el micrfono y altavoz areos. Capas Enterradas: en las dos capas situadas entre la anterior y posterior es donde se encuentran el Plano de Masa, que abarca toda la superficie de la PCB; y, los 2 Planos de Alimentacin, para 5V y 3.3V, dividiendo la superficie y justo debajo de los componentes que necesiten una u otra tensin de alimentacin. Problema de Densidad de Componentes en la Cara Top: como se acaba de comentar, se dispona de una superficie limitada para colocar los diversos componentes del prototipo, por lo que, una vez montados, se observ que algunos circuitos integrados estaban demasiado prximos entre s. Entonces, debido a que en principio se eligi un encapsulado DIP para algunos de ellos, como las puertas NAND, el Transceiver y el Amplificador de Audio, por motivos de disponibilidad de estos componentes; sera recomendable sustituirlos por los mismos componentes con encapsulados de menor footprint.
Con la intencin de realizar las pruebas de red se necesitaban por lo menos dos dispositivos para poder comprobar la efectividad del protocolo implementado en la aplicacin de gestin, y en cada dispositivo, de la red (ver Apdo. 4.2). Por tanto, despus de encargar la fabricacin de las PCB, se realiz la insercin de componentes para construir los dos prototipos de controlador de acceso que se necesitaban. A continuacin se exponen las pruebas que se realizaron, dentro de esta tercera fase de desarrollo, para comprobar el funcionamiento del dispositivo, as como, los cambios y correcciones como consecuencia de los errores e inconvenientes surgidos, tanto a nivel hardware como software:
149
Pruebas de Desarrollo del Programa del Dispositivo: Antes de construir los prototipos y durante el desarrollo del programa del controlador de acceso, se pudieron hacer pruebas para confeccionar la primera versin del firmware del dispositivo gracias a las placas de evaluacin del mC y del mdulo. Para la placa del mC se dispona adems de un Emulador, por lo que mientras se escriba el cdigo del programa se poda ir probando su ejecucin, despus de descargarlo en la memoria interna del emulador desde el entorno de desarrollo y compilador para el mC. De esta forma, gran parte del programa definitivo se pudo ir depurando ya que la parte relacionada con la Interfaz de Voz se pudo implementar en la placa del mC, que dispona de los elementos perifricos necesarios para probar su tecnologa de reconocimiento de voz. Y respecto a la parte de comunicacin serie con el mdulo, en la que se le ordenan las diversas tareas de autenticacin empleando el protocolo de comandos; se pudo realizar por medio de los puertos serie disponibles en cada placa de evaluacin, en principio, para comunicarse slo con el PC.
Prueba de Alimentacin del Prototipo: Despus de insertar los componentes del primer prototipo se revis la colocacin de los componentes y que no se hubiesen producido cortocircuitos al estaear los mismos. Una vez realizado esto lo alimentamos (prototipo sin firmware), comprobando primero que tenemos los 12V a la entrada de la regulacin y un consumo de corriente normal; seguidamente, se midieron las tensiones de alimentacin de los componentes, 3.3V y 5V, para revisar que la regulacin es estable a los niveles de tensin mencionados. Descarga del 1er Programa y Arranque del Prototipo: Para verificar que el mC en tandem con la memoria externa PSD, donde se descargar el firmware del dispositivo; puede direccionar, leer y ejecutar adecuadamente el programa de la PSD, se descarg por el puerto JTAG un programa sencillo que consista en la reproduccin de un tono repetidamente (programa Sputnik). En este punto, se descubri que exista un problema en la alimentacin del mC. En concreto, aunque el prototipo estaba correctamente alimentado y, aparentemente, tambin el mC, se vio que el problema resida en que las lneas de tierra del chip se haban ruteado errneamente al plano de alimentacin de 3.3V, por lo que no haba diferencia de tensin entre VDD y GND y, por tanto, no circulaba corriente por l. El problema se solucion cortando las pistas de las lneas GND del chip, y sacando cables desde cada pin GND del chip a la tierra del conector de lneas externas. Una vez solucionado el problema se observ que el programa de prueba Sputnik se ejecutaba correctamente.
150
Descarga de la 1 Versin del Programa del Dispositivo (Firmware): El programa del controlador de acceso se depur todo lo que se pudo mediante las placas de evaluacin, produciendo una versin aceptable para el prototipo, sobretodo, en relacin a la comunicacin con el mdulo y la interfaz de voz. Por tanto, se descarg la primera versin para poder empezar a ajustar el funcionamiento del dispositivo tanto a nivel Hardware, comprobando las seales de los puertos del mC y hardware perifrico relacionado con estas seales, como las de: control de puerta, entrada de audio desde el micrfono, salida de audio DAC del mC, y seales de comunicacin serie interna con el mdulo y transceiver; como a nivel Software, al tiempo que se comprobaba el hardware se depuraba el Firmware.
Depuracin del Firmware en Sistema: Gracias a la memoria PSD elegida, precisamente, para poder realizar la programacin en sistema o ISP por medio del puerto de programacin JTAG, la depuracin del cdigo del programa se pudo hacer de forma ms rpida y cmoda. El ajuste de las caractersticas de la Interfaz de Voz (VUI) fue una de las tareas ms recurrentes, junto a problemas en la recepcin del mC para recibir los paquetes de datos de mayor tamao, como los de patrones de huella y el de la lista de nmeros usuarios, debido sobretodo a que el mC no dispona de una UART hardware, recibindose las tramas serie por un puerto E/S de propsito general. Asimismo, en la VUI se fueron modificando palabras del vocabulario de reconocimiento, que al sistema le costaba reconocer, y mensajes de voz, para adecuar las secuencias de funcionamiento de la interfaz de voz a un uso lo ms sencillo posible.
Implementacin de Nuevos Elementos del Firmware: Despus de ajustar el funcionamiento de la VUI con la versin en Espaol, se desarrollaron los vocabularios y mensajes de voz para la versin en Ingls del Firmware. Tambin se desarroll una nueva parte del cdigo del programa para aadir la funcin de transmisin de los PIN de usuarios justo despus de autenticarse. Esto al no ser considerado en los objetivos de diseo iniciales, no se pudo incorporar en los prototipos ya construidos. Pero se pens que se podra desarrollar la parte del cdigo y aadir las lneas Wiegand a un nuevo diseo
151
esquemtico para prototipos posteriores. De este modo, los dispositivos tCAB tendran la posibilidad de integrarse en una red ms general con otro tipo de controladores de acceso de Fermax.
Modificaciones Hardware del Prototipo: Durante el transcurso de las pruebas del prototipo se fueron realizando cambios principalmente de pequeos componentes, y en relacin , por ejemplo, a circuitos de proteccin elctrica de los componentes integrados, que no afectaban directamente al funcionamiento; y a falta o exceso de alguno de estos componentes para mejorar dicho funcionamiento. Estos se reflejaron en un nuevo diseo esquemtico (versin B) en el que se recogieron los cambios realizados, sobre el diseo original (versin A) del prototipo. Tambin debido a que se decidi incorporar la transmisin Wiegand de los nmeros de usuarios autenticados para el acceso, se dise el acondicionamiento de las lneas para los puertos Wiegand de salida, y se aadieron al conector de lneas externas. Igualmente, se redise el esquema de interconexin de las lneas para la comunicacin serie interna y externa, al optimizar el nmero de puertas NAND que se necesitaban. Todo ello se incluy en un tercer esquema elctrico (versin C) para los nuevos prototipos.
En la siguiente serie de figuras se pueden ver las fotos correspondientes a la cara anterior (top) y posterior (bottom) del primer prototipo construido.
Figura 5.1: Prototipo del Controlador de Acceso Biomtrico (tCAB). Cara Anterior con el Mdulo de Autenticacin montado en la cara posterior.
152
153
Pruebas Finales de la Aplicacin de Gestin: Por ltimo, slo restaba probar el funcionamiento de la aplicacin desde el punto de vista del usuario. Aqu es donde se termin de corregir errores de la
154
aplicacin relacionados con todas las operaciones y opciones disponibles a travs de sus ventanas de dilogo, como, por ejemplo, el registro de usuarios y administradores mediante el lector ptico de huella dactilar en la base de datos, y operaciones sobre los terminales de acceso.
5.3. Conclusiones.
El proyecto se finaliz despus de completar las tres fases de desarrollo del mismo, que recordamos comprendan los siguientes aspectos. En la primera fase, se realiz el diseo hardware y software del dispositivo controlador de acceso biomtrico, y al que llamamos tCAB, descrito en los captulos 3 y 4 de esta memoria. Asimismo, en la segunda fase, expuesta tambin a lo largo de los captulos 3 y 4, se dise la estructura para la red de terminales de control de acceso, tanto a nivel de la capa fsica como de la capa de enlace, para la que se implement un protocolo de comunicacin entre el PC y los terminales de la red especfico de sta, a la que se denomin Red tCAB. Tambin, formando parte de esta segunda fase se desarroll la aplicacin de gestin sobre PC para la red tCAB, cuyo funcionamiento se present al final del captulo 4 (Apdo. 4.3). Finalmente, la Tercera Fase explicada aqu consisti en la construccin de dos prototipos del dispositivo tCAB, sobre el cual se realizaron una serie de pruebas para ajustar y depurar aspectos de diseo y funcionamiento. Igualmente, se puso en marcha una red tCAB mnima con estos dos prototipos, en la que tambin se realizaron las correspondientes pruebas. Ya finalizado el proyecto se plantearon posibles mejoras antes de pasar a la Fase de Industrializacin, la cual est fuera del alcance de este proyecto, en la que se fabrica una pre-serie de dispositivos para comprobar su funcionamiento y realizar test de calidad del mismo antes de ser comercializados y pasar a la Fase de Produccin. A continuacin se listan las posibles mejoras y ampliaciones del sistema desarrollado en este proyecto: Incorporar en los futuros dispositivos las lneas Wiegand que se disearon, y cuya parte software de transmisin de tramas Wiegand de 26 bits ya fue implementada en el firmware del dispositivo. Escalado y especificaciones reales de la red tCAB diseada. Como ampliacin de los objetivos iniciales del proyecto, se propuso que el dispositivo fuese capaz, adems de realizar Control de Accesos, tambin pudiese ejecutar el Control de Presencia de usuarios. Para ello, se plante que para el dispositivo, en principio, sera necesario aadir un reloj de sistema, con el que determinar la fecha y hora en las que se produjese el acceso de un usuario, adems de aumentar la memoria interna para almacenar temporalmente los datos del PIN y del momento del acceso (o salida) del inmueble. De este modo, se implementara el control de presencia en el dispositivo, y para el transmisin
155
peridica o bajo demanda externa de los datos de acceso (o salida) de los usuarios, se empleara el protocolo de comunicaciones diseado para la red tCAB.
Apndice A
Bibliografa
[1] R.O. Duda, P.E. Hart, and D.G. Stork, Pattern Classification (2nd edition), Wiley-Interscience, New York, 2000. [2] P.A. Devijver and J. Kittler, Pattern Recognition: A Statistical Approach, Prentice-Hall, Englewood, New Jersey, 1982. [3] D. Maltoni, D. Maio, A.K. Jain, S. Prabhakar, Handbook of Fingerprint Recognition, Springer, New York, 2003. [4] Ron Cole, et al., Survey of the State of the Art in Human Language Technology, Cambridge University Press and Giardini, 1997. [5] Ram Sathappan, DSP for Smart Biometric Solutions, Digital Signal Processor Group, Texas Instruments Inc., 2003. [6] B.I. (Raj) Pawate, Peter D. Robinson, Implementation of an HMM-based, Sepeaker-Independent Speech Recognition on the TMS320C2x and TMS320C5x, Speech and Image Understanding Laboratory, Computer Science Center, Texas Instruments Inc., 1996. [7] PSD854F2 Flash In-System Programmable (ISP) Peripherals for 8-bit MCUs Datasheet, ST Microelectronics, 2004.
157
Apndice B
Diagrama de Bloques [Arquitectura]
159
Apndice C
Interfaz de Usuario por Voz [VUI]
C.1. Mensajes de Voz del Dispositivo tCAB.
161
Nombre
Add1 "Add new user" "Aadir Segundo Dedo" Add2 "Add second finger" "Desplace su dedo sobre el lector de huella" Add3 "Slide your finger, over the fingerprint reader" "El nuevo usuario debe desplazar su dedo sobre el lector de huella" Add4 "The new user must slide his finger, over the fingerprint reader" "Desplace otra vez su dedo sobre el lector de huella" Add5 "Slide your finger, over the fingerprint reader again" "Usuario Aadido con el nmero de identificacin: " Add6 "User added with Identification number: " Mensajes de la Opcin: Borrar "Diga el identificador del usuario. Borrar Todo, para borrar a todos los usuarios" Erase1 "Say user identification number. Erase all, to erase all users" "Realmente desea borrar al usuario: ?" Erase2 "Do you really want to erase the user: ?" "Realmente desea borrar a todos los usuarios?" Erase3 "Do you really want to erase all users?" "Usuario borrado" User_erased "User erased" "Todos los usuarios borrados. Memoria Vaca" All_erased "All users erased. Empty memory" Mensajes de la Opcin: Tiempos "Diga apertura o sensor para cambiar sus tiempos" Time1 "Say open, or sensor, to change their time values" "Usted ha elegido cambiar el tiempo de: ?" Time2 "Have you chosen to change the time value of: ?" "Tiempo actual de apertura: " Time3 "Open door time value: " "Diga el nuevo tiempo de apertura del rel abrepuertas" Time4 "Say the new time value of the open door relay" "Tiempo mximo actual de puerta abierta: " Time5 "Maximum time value of opened door: " "Diga el nuevo tiempo mximo de puerta abierta" Time6 "Say the new maximum time value of opened door" "Realmente desea cambiar el tiempo a: ?" Time7 "Do you really want to change the time value to: ?" "Tiempo actualizado" Time8 "Updated time value" Seconds Segundos "Seconds"
162
Nombre
Voice1 "User identification by voice enabled" "Desea desactivarla?" Voice2 "Do you want to disable it?" "Preidentificacin de usuario por voz desactivada" Voice3 "User identification by voice disabled" "Desea activarla?" Voice4 "Do you want to enable it?" Mensajes de la Opcin: Segundo Dedo "Opcin Aadir Dedo Auxiliar activada" Finger1 "Add second finger option enabled" "Opcin Aadir Dedo Auxiliar desactivada" Finger2 "Add second finger option disabled" Mensajes de la Opcin: Identificar "Usuario Nmero: " Identify1 "User identification number: " "El Usuario no existe" Identify2 "User doesn't exist" "Identificar Usuario" Identify3 "Identify User" Mensajes de la Opcin: Master "Sustituir Master del Sistema" Master1 "Change system master" "Nuevo Master Aadido" Master2 "New master added" "No existe Master del sistema" Master3 "System master doesn't exist" "Aadir Master Inicial del Sistema" Master4 "Add initial system master"
163
Nombre
Timeout "Fingerprint time out" "Nmero de intentos superado" Try_finish "Number of tries finished" "Huella insuficiente" Bad_fingerprint "Fingerprint capture has failed" "Nmero de identificacin incorrecto" Bad_userid "Wrong identification number" "La Operacin ha fallado" op_fail "Operation failure" "Memoria Llena" Full_memo "Full memory" "Usuario no encontrado" User_notfound "User not found" "Nmero de usuarios: " Users_num "Number of users: " "Desea Cancelar la operacin?" Ask_cancel "Do you want to cancel the operation?" "Operacin Cancelada" Op_cancel "Canceled Operation" "Operacin Prohibida" Op_notallowed "Operation Not allowed" "Intntelo de nuevo" Try_again1 "Try it again" "Intntelo otra vez." Try_again2 "Try it again" "Eleve su voz" Speak_louder "Speak louder" "No lo he entendido" Notunderstand "I don't understand you" "Repita por favor" Repeat "Please Repeat" "Sistema Iniciado Correctamente" Init_ok "System initiated correctly" "Error del sistema. Reinicie por favor" Syserror "System failure. Please Reset the system" Nmeros cero, uno , dos , tres , cuatro , cinco , seis , siete , ocho , nueve 0,1,2,3,,9 zero, one , two , three , four , five , six , seven , eigth , nine Sonidos Alarm [Alarma de Puerta Abierta ]
164
Access_es
[No Reconocido] Cero Uno Dos Tres Cuatro Cinco Seis Siete Ocho Nueve Master Cancelar Borrar Todo
Access_en
[Not a Command] Zero One Two Three Four Five Six Seven Eigth Nine Master Cancel Erase All
Confirm_es
[No Reconocido] S No Cancelar
Confirm_en
[Not a Command] Yes No Cancel
Menuconfig_es
[No Reconocido] Anyadir Borrar Tiempos Voz Segundo Dedo Identificar Usuario Master Salir Ayuda Cancelar Adis
Menuconfig_en
[Not a Command] Add User Erase Time Voice Second Finger Identify Master Exit Help Cancel Quit
Menuconfig_es
[No Reconocido] Apertura Sensor Cancelar
Menuconfig_en
[Not a Command] Open Sensor Cancel
165