You are on page 1of 177

INGENIERA ELECTRNICA

PROYECTO FIN DE CARRERA

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

Tribunal: Presidente: Vocal 1:

Vocal 2:

Vocal 3:

CALIFICACIN: ................................. FECHA:

ndice
Resumen. Nota del Autor. 1. Introduccin. V VII 1

1.1. Objetivos. . 1 1.2. Justificacin. 3 1.3. Metodologa. ... 5

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

4. Funcionamiento y Desarrollo Software.

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

5. Pruebas de Prototipos y Conclusiones.

147

5.1. Pruebas de los Prototipos del Controlador de Acceso. . 147 5.2. Pruebas de la Red tCAB. .. 153 5.3. Conclusiones. 154

Apndices A. Bibliografa. B. Diagrama de Bloques [Arquitectura]. 157 159

II

C. Interfaz de Usuario por Voz [VUI].

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.

Nota del Autor


Debido a razones de Confidencialidad de la empresa Fermax Electrnica S.A.E., donde fue desarrollado este proyecto, en la memoria que se presenta se han realizado los siguientes cambios u omisiones: (i). Los Nombres Comerciales de algunos componentes del dispositivo diseado se han sustituido por nombres ficticios. (ii). Se han omitido las referencias bibliogrficas correspondientes a los Datasheets de los componentes afectados por el punto (i). (iii). No se han incluido en esta memoria, ni el Cdigo Fuente del Software desarrollado (Firmware del Dispositivo y Aplicacin de Gestin de Red); ni, tampoco, el Esquema Elctrico (Esquemtico) correspondiente al diseo del dispositivo.

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

Figura 2.1: Procesos de un Sistema de Autenticacin Biomtrica por Huella


Dactilar. Los algoritmos de reconocimiento de huella dactilar implementan las tareas mostradas en gris: Feature Extractor, extraccin de caractersticas de la huella dactilar para formar el patrn de huella; Matcher, comparacin estadstica del patrn de huella capturada con el o los patrones de huella almacenados en la base de datos del sistema (DB); y, Quality Checker, valoracin de la calidad de la huella dactilar capturada en el lector de huella.

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

Figura 2.3: Ejemplo de Imagen de Huella Dactilar en la que se indican las


Minucias, y que forman la Constelacin del patrn de huella extrado de la imagen de huella capturada (izqda.). Comparacin de Constelaciones entre dos imgenes de huella dactilar (drcha.).

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

Reconocimiento de Voz [1] [2] [4].

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.

Figura 2.4: Componentes principales de un Sistema de Reconocimiento de Voz tpico.

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

Fabricante Authentec Infineon Atmel BMF TST

Tipo Capacitivo Capacitivo Trmico Presin ptico

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.

18 Caractersticas hardware relevantes:

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.

8 Puertos Digitales E/S de Propsito General* (GPIO0-GPIO7).


* Configurables para controlar los principales eventos del proceso de autenticacin directamente, sin necesidad de utilizar el puerto serie y el protocolo de comandos.

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.

Rango de Temperatura de Operacin: -40C 85C. Tiempo de Acceso a Lectura*: 90 ns.


* Menor de 135 ns, que es el tiempo de acceso a memoria externa mximo permitido por el RESCUE-4128.

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.

3.1. Diseo Hardware del Dispositivo Controlador de Acceso.


Para empezar el diseo del esquema elctrico del dispositivo, se analizaron en profundidad los recursos disponibles del microcontrolador elegido, para as poder seleccionar los componentes adecuados y disear el resto de la circuitera de la placa base. Para ello, aparte de la documentacin tcnica correspondiente al microcontrolador, nos servimos de las herramientas de desarrollo proporcionadas por el fabricante. Entre stas, disponamos de una placa de evaluacin conectada a un emulador para el microcontrolador, que en combinacin con el entorno de desarrollo software, nos permita descargar programas de prueba en el emulador para as, empleando los diversos recursos implementados en la placa de evaluacin, ir familiarizndose tanto con las capacidades de la tecnologa de reconocimiento de voz, como con otras funciones de entrada/salida, comunicaciones serie, interrupciones, etc.

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.

Diagrama de Bloques de la Arquitectura del Controlador de Acceso: [Apndice B].

3.1.1. Microcontrolador del Sistema (mC) / Procesador de Voz.


El circuito integrado del procesador de voz y microcontrolador del sistema trabaja a una tensin de 3.3V, con 7 pines de alimentacin, VDD, y 8 pines de tierra, GND, para distribuir uniformemente el consumo de corriente en el interior chip. Como se vio en las caractersticas expuestas en el captulo 2, el microcontrolador necesita un cristal oscilador externo de 3.58 MHz. Internamente, el chip posee un PLL que cuadruplica su frecuencia, para as conseguir la de trabajo del procesador de voz, 14.32 MHz, cuando ejecute las funciones de reconocimiento de voz y reproduccin de audio. El pin de Reset o Reinicio del microcontrolador es activo por cero y est conectado a la red de 3.3V a travs del pequeo circuito mostrado abajo (extrado del esquema elctrico completo); de este modo, el sistema se resetear al apagarlo. La resistencia elevada limitar el consumo innecesario por este pin, y el condensador mantendr el nivel de tensin para, en caso de fluctuaciones de la tensin de alimentacin, no provocar un reseteo accidental del microcontrolador. Por otra parte, el diodo permitir su rpida descarga cuando realmente se produzca la desconexin.

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.

Figura 3.2: Diagrama de Bloques de la arquitectura interna y recursos del


mC/Procesador de Voz.

3.1.2. Memoria de Programa y Datos del Sistema.


Recordemos que la interfaz para el bus de memoria externa que posee el microcontrolador es del tipo de bus no-multiplexado, debido a no compartir ninguna de las 20 lneas de direcciones (palabra de direccin de 20 bits, [A0-A19]), con ninguna de las 8 lneas de la palabra de datos de 8 bits ([D0-D7]). Adems, sta dispone de lneas de control de memoria externa, con sus correspondientes seales, activas por cero, de seleccin de memoria de programa ( PSEN ), de escritura ( WR ) y de lectura ( RD ); que permitirn direccionar dos espacios de memoria independientes, de hasta 1 MB cada uno. Estos son, el espacio de memoria de programa, slo de lectura (Read-Only), y el espacio de memoria de datos, de lectura y escritura (Read/Write). Como la memoria PSD est pensada para ser compatible con gran nmero de microcontroladores de 8 bits, hay que adaptar su interfaz del bus de memoria al de nuestro microcontrolador. Esto se puede hacer gracias al programa de configuracin y descarga PSDsoft Express, que permite seleccionar las caractersticas concretas de la interfaz de memoria del microcontrolador, pudiendo asignar sus lneas de

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).

Lnea Bus Memo mC [A0-A15](Direcciones) [A16, A17](Direcciones) [D0-D7](Datos)


WR (Control)

Puerto PSD [ADIO0-ADIO15] [PB6, PB7] [PA0-PA7] CNTL0 CNTL1 CNTL2

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.

Seal JTAG(Puerto PSD) TMS(PC0) TCK(PC1) TSTAT(PC3)


RR (PC4)

Descripcin Mode Select Clock Status Error Flag Serial Data In Serial Data Out

TDI(PC5) TDO(PC6)

Tabla 3.2: Seales de los puertos JTAG de la memoria PSD.

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).

3.1.3. Mdulo de Autenticacin por Huella Dactilar. Comunicacin Interna y Externa.


El mdulo de autenticacin por huella dactilar estar montado sobre la placa base mediante 2 tiras de 15 pines cada una, y estar alimentado a la tensin 3.3V de su tecnologa CMOS. Dispone de un lector de huella de tipo trmico por desplazamiento, conectado a ste por medio de un cable Flex. El lector de huella ser parte imprescindible de la interfaz de usuario del dispositivo, realizando la captura de la imagen trmica de la huella de usuario, para luego transferirla al mdulo, por medio del bus de datos contenido en el cable Flex.

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.

Figura 3.5: Esquema de interconexin para dar soporte a la comunicacin interna y


externa del dispositivo controlador de acceso.

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).

Reposo Inicio 3.3V (Idle Bus) Trans. TX / RX

Start bit

8 Data bits

Stop bit

Fin Reposo Trans. (Idle Bus)

0
DE ( RE ) 0V

Figura 3.6: Ejemplo de Trama Comunicacin Serie Asncrona (10 bits). Se


representan los niveles lgicos aproximados de la seal de transmisin (TX) y recepcin (RX). Se representa, tambin, cmo el mdulo, mediante su lnea ENA_TX, activa la seal de habilitacin para transmitir del transceiver, DE (Driver Enable), igual a la de habilitacin del receptor, RE (Receiver Enable), slo cuando se entable comunicacin externa con el PC (CCOM 0).

3.1.4. Compatibilidad entre Componentes Digitales. Niveles Lgicos.


Un aspecto importante en el diseo elctrico del dispositivo controlador es la compatibilidad de los componentes digitales conectados entre s, que se refiere a la correcta interpretacin de los niveles lgicos definidos por los mrgenes de tensin especificados para cada componente. Igualmente, debe haber compatibilidad desde el punto de vista de las corrientes, para lo que, las corrientes de salida de un componente, correspondientes al nivel alto y bajo, sern siempre mayores y de signos opuestos a las de entrada del otro componente. La conexin entre los puertos de E/S de dos componentes ser compatible, siempre que, se cumpla la siguiente condicin para los parmetros de tensin que determinan los mrgenes de entrada y salida, para los niveles alto (H) y bajo (L) en cada componente: (VOH|mn)A (VIH|mn)B MRH (VOH|mn)A (VIH|mn)B 0; (VOL|mx)A (VIL|mx)B MRL (VIL|mx)B (VOL|mx)A 0; siendo:

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

Memoria Flash/SRAM [PSD854F2V] VIMAX VCC 3.6V 3.3V

mC Sistema [RSC-4128] VIMAX VDD VOH 3.6V 3.3V 3V 2.6V

Puertas NAND [74HC00]

Mdulo Autenticacin [OFM3010-FC] VIMAX 3.6V 3.3V 3V

VIMAX/VCC VOH

3.3V 3.2V

VCC VOH

VOH VIH

2.7V 2.3V

VIH

VIH

2.3V VIH 2V

VIL VIL VOL 0.45V


GND

0.95V VIL VOL 0.6V 0.5V 0V -0.3V

0.8V

VIL VOL

0.75V 0.5V VOL 0.1V 0V


GND

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]

mC Sistema [RSC-4128] VIMAX VDD VOH VIH 3.6V 3.3V 3V 2.6V

VOH VIH 2V VIH

2.4V VIH 2V 2.3V

VIL VIL VOL 0.75V 0.5V 0V -0.1V VIL VOL


GND

0.95V

VIL 0.6V 0.5V 0V -0.3V VOL VIMIN/GND

0.8V 0.4V VOL 0.1V 0V 0V VIMIN/GND

GND

VIMIN

VIMIN

[b]

Figura 3.7: Representacin grfica de los parmetros de tensin que determinan


los mrgenes de entrada y salida, para los niveles alto (H) y bajo (L), en los puertos digitales de los componentes. [a], [b]: Compatibilidad de Niveles Lgicos entre componentes adyacentes.

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

-8 (R) 0 (D, RE ) 100 (DE) 8 (R) -100 (D, RE ) 0 (DE)

-4 1 4 -1

Tabla 3.3: Parmetros de Corriente correspondientes a los niveles lgicos de los


puertos digitales de los componentes.

Arquitectura

41

3.1.5. Entrada y Salida de Audio.


En su arquitectura, el procesador de voz dispone de bloques analgicos, o lo que habitualmente se conoce como AFE (Analog Front End), para realizar el proceso de digitalizacin de la seal de entrada de audio. ste consiste en, un Pre-Amplificador con Control Automtico de Ganancia (AGC) y un Conversor A/D (Delta-Sigma) de 16 bits. Para la salida de audio, se puede elegir que esta seal sea generada por su Conversor DAC (Red R-2R) de 10 bits, para ser amplificada externamente; o bien, por el PWM (Modulador de Tren de Pulsos) capaz de atacar directamente a un altavoz de 8, ofreciendo un volumen adecuado (ver fig. 3.2). Desde la entrada del micrfono, MIC_IN1, se pasa la seal de audio al pre-amplificador, el cual regula la amplitud de la seal para adaptarla a la entrada del conversor A/D. ste producir muestras de audio de 16 bits (formato complemento-2), a una frecuencia de muestro de 18638 Hz, y con un rango dinmico de 12.5 bits. Una vez digitalizada la seal, y usando los algoritmos de reconocimiento de voz, implementados en las libreras del firmware de esta tecnologa, se empieza el proceso de interpretacin de los comandos de voz en el bloque de Filtrado Digital, responsable de realizar la extraccin de caractersticas del espectro de la seal, correspondientes a la locucin o comando de voz del usuario (en la Banda de: [0 9.4 KHz]). stas sern analizadas en la CPU del microcontrolador, con la ayuda de un Multiplicador dedicado, ofreciendo, al fin, el resultado de interpretacin de la locucin. El bloque Audio Wakeup, que aparece en el diagrama de bloques de los recursos del procesador de voz (fig. 3.2), est destinado a pre-procesar la seal de audio proveniente de otra entrada para el micrfono, MIC_IN2, y que implementa la funcin de despertar al procesador de un estado de bajo consumo, por medio de la deteccin de sonidos bruscos (p.e., palmadas o silbidos). Aunque, esta entrada se conect al micrfono para poder disponer de esta funcin, finalmente, no se incluy en el programa de sistema de nuestro dispositivo. La salida de audio necesaria para emitir el conjunto de mensajes o sonidos, almacenados en la memoria externa grabados previamente en un formato determinado, y que servirn para guiar e informar al usuario durante su uso del dispositivo controlador, El procesador de voz tiene la capacidad de reproducir sonidos o mensajes grabados previamente, y almacenados en la memoria externa. Respecto a la salida de audio, se seleccion por programa el DAC, frente al PWM, por ofrecer mejor calidad de seal y para mayor control de su amplificacin. Por tanto, la seal de los mensajes o sonidos, almacenados previamente en la memoria externa y, reproducidos por el procesador, ser emitida por la salida DAC_OUT para luego amplificarla externamente. El conjunto de mensajes y sonidos, necesarios para guiar e informar al usuario durante su uso del dispositivo controlador, habrn sido grabados en un formato que pueda ser interpretado por el procesador. Esto ltimo se ver en el captulo siguiente, cuando se detalle el procedimiento de creacin de la tabla de mensajes y sonidos para la interfaz de usuario.

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.

3.1.6. Seales de Control de Puerta de Acceso.


Se dedicaron 3 puertos E/S del microcontrolador para implementar las siguientes funciones bsicas de control de la puerta de acceso (ver ap. A):
Actuacin de Apertura de la Puerta de Acceso:

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

3.1.7. Alimentacin y Consumo de Corriente del Dispositivo.


Para la operacin de los componentes del dispositivo se establecieron 2 redes de alimentacin de 5V y 3.3V. Estas tensiones de operacin se obtienen mediante la regulacin de la lnea de alimentacin externa de 12V DC/AC, en corriente continua o alterna (ver ap. A). Se utilizaron 2 Reguladores de Tensin LM317-EMP (National Semiconductor), ajustables mediante resistencias entre [1.2V-25V], para obtener, en serie a la lnea de +12V de alimentacin externa, niveles estables (Regulacin de Lnea: 0.01%/V) de las tensiones de operacin del dispositivo, primero de 12V a 5V y luego de 5V a 3.3V. Aunque preferiblemente el dispositivo debe alimentarse a 12V DC, tambin acepta 12V AC. Esto es debido a que, los reguladores pueden mantener la regulacin de lnea especificada anteriormente para variaciones de tensin, entre su entrada y salida, en un rango de: 3V (VINVOUT) 40V. Para ello, a la entrada del primer regulador (5V), slo ser necesario rectificar positivamente la corriente de alimentacin y utilizar un filtro capacitivo de promediado para minimizar la variacin de la tensin de alterna. Otros elementos incluidos en el circuito de regulacin son los Condensadores de Bypass a tierra, recomendados para aumentar la estabilidad de las tensiones de salida y el rechazo de rizado de las tensiones de entrada a los reguladores. Y un Polyswitch RXE050, a la entrada de alimentacin externa, para cortar corrientes excesivas producidas por la conexin de altas tensiones por error, o debidas a cortocircuitos internos (hasta mximos de 72V y 40A). De este modo, en el caso de mala conexin, se evita el dao de los componentes del dispositivo, pudiendo recuperar su funcionamiento normal despus del incidente; adems, previene del sobrecalentamiento que pueda producir esta corriente en ciertos componentes, hasta el punto de llegar a incendiarse el dispositivo. En las tablas 3.4 y 3.5, se detallan, respectivamente, el consumo mximo de corriente por componentes y la estimacin del consumo mximo del dispositivo. Como se puede ver en estas tablas, el consumo de corriente mximo depender de la actividad de ciertos componentes, por ello, se especifican estos consumos segn las condiciones de actividad o funcionamiento de estos componentes, que se darn en momentos diferentes durante la ejecucin del programa de sistema. Vemos tambin que, como debe ser, la demanda mxima de corriente del dispositivo, en la tabla 3.5, no excede la mxima de 1A que pueden ofrecer los reguladores a su salida. Por ltimo, se recomienda el empleo de una Fuente de Alimentacin Externa, 220V AC/12V DC, con 1A de corriente mxima de salida, suficiente para el consumo de nuestro dispositivo controlador de acceso.

46

Arquitectura

mC Sistema

Flash/SRAM

Md. Aut. HD

Transceiver

CI NANDs

Activo (Normal)

Recepcin (Normal)

Amp. Audio (RL=8) Reposo (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

Tabla 3.4: Consumos de Corriente Mximos de los componentes del dispositivo


controlador de acceso.

Condiciones de Func.:

Normal

Md. Aut. HD: Escan./Identif.

Transceiver: Transmis. Ext.

Amp. Audio: a Pot. Mx. (RL=8)

Rel AP: Activacin

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

3.2 Infraestructura de la Red de Terminales de Control de Acceso Biomtrico.


Para realizar, coordinadamente, el control de acceso biomtrico por huella dactilar en varias puertas de un inmueble determinado, se propuso formar una red con un dispositivo controlador por puerta de acceso, o terminal de control de acceso biomtrico (tCAB), en la que las bases de datos de huellas de usuario de cada dispositivo fueran gestionadas desde un PC, conteniendo la base de datos de usuarios de todo el sistema, y que, adems, realizara las tareas de configuracin de estos terminales de control de acceso, dentro de su papel de host central o gestor de la red. Es el momento, entonces, de detallar los aspectos de la infraestructura necesaria para construir nuestra red de terminales de control de acceso, a la que llamaremos, red tCAB, de forma abreviada. De esta manera, habiendo explicado, en el apartado anterior, el diseo para dar soporte a las comunicaciones externa e interna del dispositivo controlador de acceso, se terminar aqu de ofrecer la visin completa del establecimiento de las comunicaciones en todo nuestro sistema.

3.2.1. Capa Fsica de la Red. Protocolo RS-485.


Para implementar la capa fsica de nuestra red se eligi el estndar RS-485 para redes de comunicacin serie, el cual permite establecer, entre los dispositivos de la red, enlaces de comunicacin bidireccional en configuraciones de red multipunto. Los dispositivos pertenecientes a la red emplearn un integrado, llamado transceptor o transceiver, para transmitir y recibir datos de forma no simultnea o Half-Duplex a travs de un bus de 2 hilos, que transmitir la seal en modo diferencial. Para la transmisin y recepcin de datos de forma simultnea o Full-Duplex, se utiliza un bus RS-485 de 4 hilos y transceivers con dos pares de lneas diferenciales, uno para transmitir y otro para recibir. Como se puede ver en la figura 3.8, cada transceiver est conectado al bus RS-485 de canal Half-Duplex mediante sus lneas A y B, por las que recibir la seal diferencial y la convertir a los niveles TTL o CMOS de la lgica interna del dispositivo, el cual, a su vez, la obtendr por el puerto Rx del transceiver. Cuando ste acte como transmisor, realizar la conversin inversa, de la seal TTL o CMOS, proveniente de la lnea Tx, al par diferencial A-B. Este tipo de bus permite unas tasas y distancias de transmisin elevadas. Esto es gracias a que, los transceptores transmiten la seal de modo diferencial por medio de la conexin un bus de dos hilos en par trenzado, lo que ofrece una alta inmunidad al ruido externo, incremento del rechazo de tensiones de tierra en modo comn y otros efectos parsitos, como la diafona (crosstalk) que pudiera haber entre lneas de transmisin adyacentes.

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.

3.2.2. Estructura y Caractersticas de la Red tCAB.


Los dispositivos de nuestra red tCAB tendrn una organizacin Maestro/Esclavo, usual en sistemas de control de acceso, con un PC (host central) como Maestro para gestionar a mltiples Esclavos, que sern los terminales de nuestro sistema de control de accesos. Cada terminal tendr asignada una direccin para que el maestro pueda establecer un enlace de comunicacin de forma individual, lo que vendr especificado en el protocolo a nivel de enlace detallado ms adelante en este captulo. En la siguiente figura, se exponen las topologas de red recomendadas segn las especificaciones de la norma RS-485, como son la de rbol con stubs cortos (fig. 3.9[a])

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

Figura 3.10: Topologas de red errneas, o fuera de especificacin, del estndar


RS-485: [a] rbol con Stubs Largos; [b] Estrella.

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

55 Resistencias de Adaptacin o Terminacin del Bus: RT = [100-120] .

* 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).

Resistencia de Carga Diferencial Mnima por Transceiver*: RL = 54 .

Velocidad o Tasa de Transmisin*: 19.2 Kbps.


* Fijada por diseo en el tCAB.

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

Reposo (Idle Bus)

Inicio Trans.

Start bit

8 Data bits

Stop bit

Fin Trans.

Reposo (Idle Bus)

0
DE ( RE ) 0V 3.3V

485+ / A 485 / B 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).

V485+/A = V485+/A VREF1 V485/B = V485/B VREF1


/ REF1

Lnea 485+/A Lnea 485/B

V485+/A = V485+/A VREF2 V485/B = V485/B VREF2


REF2 /

Descargas elctricas y otras fuentes causan el flujo de corrientes de Tierra.

VREF1

VREF2

La Resistencia de Tierra a esta corriente causa una diferencia de potenciales de referencia: VREF2 VREF1.

Figura 3.16: Ejemplo de cmo, al emplear mltiples conexiones de masa, se


pueden producir interferencias y distorsin de los niveles de tensin en el bus de comunicaciones de la red tCAB.

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.

4.1. Funcionamiento del Controlador de Acceso Biomtrico.


Como ya se dijo, el proceso de autenticacin de los usuarios, a travs de sus huellas dactilares, se realiza ntegramente en el mdulo incorporado en nuestro dispositivo. ste dispone de una memoria interna en la que se almacenarn los patrones de huella (templates) de los usuarios (384 Bytes/Template), extrados previamente de la imagen de la huella capturada por el lector. La memoria est estructurada como una base de datos en la que a cada usuario se le asocia un ndice o nmero de identificacin que puede contener hasta 10 patrones de huella, teniendo una capacidad de 1910 patrones.

57

58

Funcionamiento y Desarrollo Software

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

Funcionamiento y Desarrollo Software

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).

[No Reconocido] Mensaje/Sonido Error

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>

Figura 4.1: Ejemplo del procedimiento de uso de la Interfaz de Voz de Usuario


(VUI). Reconocimiento de Comandos de Voz o Palabras para un Vocabulario determinado. En Verde se muestran los posibles resultados de reconocimiento o interpretacin del comando, en Rojo si el sistema no reconoce ningn comando del vocabulario disponible.

60

Funcionamiento y Desarrollo Software

Cable Flex (Bus Com. Lector-Mdulo)

Lector Trmico de Huella Dactilar Soporte del Lector

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.

Funcionamiento y Desarrollo Software

61

4.1.1. Funcionamiento Normal del Controlador de Acceso.


Modos de Autenticacin de Usuarios por Huella Dactilar. El controlador de acceso dispone de dos modos de autenticacin para controlar el acceso de los usuarios, durante su funcionamiento normal. A continuacin se describen los procedimientos de acceso del usuario, correspondientes a cada modo de autenticacin: Modo de Identificacin (Fig. 4.3). El controlador de acceso espera, desde su estado de reposo, a que el usuario desplace su dedo por el lector para poder capturar la imagen de su huella dactilar mediante escaneo trmico. Entonces, el dispositivo iniciar el proceso de identificacin, comparando la huella de entrada con todas las de la memoria, para comprobar si el usuario est, o no, autorizado al acceso. El procedimiento de uso o secuencia de funcionamiento del controlador de acceso, para este modo de autenticacin, se muestra en la siguiente figura. Modo de Verificacin (Fig. 4.4). Al igual que en el modo de identificacin, el dispositivo espera la entrada de la huella del usuario para poder capturarla, pero despus de esto, se necesita que el usuario introduzca su nmero de identificacin personal (PIN Usuario: 4 Cifras) empleando la VUI, tal y como se explic anteriormente, pronunciando los nmeros del PIN uno a uno y dirigindose al micrfono. De este modo, se realizar la verificacin de la huella capturada por el lector con la seleccionada por el PIN en la memoria de huellas de usuarios autorizados. En la siguiente figura se expone en detalle el procedimiento de uso para este modo de autenticacin, donde se observa el bloque intermedio de pre-identificacin por voz del usuario, a diferencia del modo identificacin. Cambio de Modo de Autenticacin. Como se observa en las figuras anteriores, el Administrador o Mster del sistema podr acceder al men de configuracin del dispositivo mediante su dedo y, en el caso del modo de verificacin, diciendo seguidamente la palabra clave Mster para identificarse como tal. As pues, el administrador ser capaz de cambiar el modo de autenticacin seleccionando la opcin correspondiente del men, entre otras opciones disponibles. Estas opciones de configuracin, as como, la navegacin por el men de configuracin se especifica completamente en el siguiente apartado (fig. 4.10, Opcin Men: Voz). Por defecto el dispositivo funcionar en modo identificacin, el cual se recomienda para un nmero por debajo de 500 usuarios registrados. A partir de esta

62

Funcionamiento y Desarrollo Software

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.

[Aadir Mster Inicial o No Existe Mster]

MASTER

1 1
Entrada/Escaneo Huella Dactilar Mens. Error:
Tono Huella insuficiente, intntelo de nuevo

Extraccin Patrn Huella Dactilar

[Identificacin Negativa]** o [Puerta Bloqueada]

Mens. Info.:

3
Identificacin Huella Dactilar

ACCESO DENEGADO, **(intntelo otra vez) [Identificacin Positiva] (USUARIO)

Mens. Info.:
ACCESO AUTORIZADO [Identificacin Positiva] (MASTER)

Config

Mens. Info.:
ACCESO A MODO CONFIGURACIN

Figura 4.3: Procedimiento de uso del controlador de acceso: Modo Identificacin.

Funcionamiento y Desarrollo Software

63

[Aadir Mster Inicial o No Existe Mster]

MASTER

1 1
Entrada/Escaneo Huella Dactilar Mens. Error:
Tono Huella insuficiente, intntelo de nuevo

Extraccin Patrn Huella Dactilar

2
Mens. Info.:
Diga su nmero de identificacin, despus de la seal

Bucle de Entrada (4 veces) PIN Usuario [No Reconocido]

2
Mens. Error:
No lo he entendido, repita por favor Eleve su voz, repita por favor

Tono

Entrada Comando de Voz*


(Tiempo Espera = 3s)
*Vocabulario: *Vocabulario:

[Cancelar] Anlisis Comando de Voz Mens. Info.:

1
Verificacin Cancelada

0, 1, ,9 0, 1, ,9 Cancelar Cancelar Mster Mster

Ej. PIN Usuario (4 Cifras): 0-1-7-9

[<PIN>] (4 Cifras) [Mster]

Pre-Identificacin por Voz del Usuario

[Mx. Nm. Intentos = 3]

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)

ACCESO DENEGADO, **(intntelo otra vez)

Verificacin Huella Dactilar

Mens. Info.:
ACCESO AUTORIZADO [Verificacin Positiva] (MASTER)

Config

Mens. Info.:
ACCESO A MODO CONFIGURACIN

Figura 4.4: Procedimiento de uso del controlador de acceso: Modo Verificacin.

64

Funcionamiento y Desarrollo Software

SP [Cerrada] [t Tap] y SP [Cerrada] [t >Tap] y SP [Cerrada]

[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)

[t Tsen] y SP [Abierta] SP [Cerrada] SP [Cerrada] SP [Abierta]

[t >Tsen] y SP [Abierta] Temporizacin (t) Alarma Puerta Abierta

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

Figura 4.5: Secuencia de acciones de apertura y control de la puerta de acceso.

Funcionamiento y Desarrollo Software

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

Funcionamiento y Desarrollo Software

4.1.2. Configuracin del Controlador de Acceso.


A continuacin se expone el men de configuracin con todas las opciones disponibles y sus funciones, as como, se describe la forma de navegar por ste y por el interior de las diferentes opciones, despus de haber sido seleccionadas en el men principal. Del misma manera que en el punto anterior, de funcionamiento normal del controlador de acceso, podremos ver el procedimiento de uso y funcionamiento del modo configuracin en los sucesivos diagramas. Respecto a los diagramas de las figuras 4.3 a 4.12, hay que comentar que conservan una relacin de continuidad entre ellos, indicada por los puntos de conexin que all aparecen, facilitando as la visin general del funcionamiento del dispositivo.

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.

Funcionamiento y Desarrollo Software

67

Config

[Modo Operacin: Red (Network)]

1
Mens. Info:
Operacin Prohibida

[Modo Operacin: Autnomo (Stand-Alone)] Mens. Info.:


Nmero de Usuarios: < # # # >

5
Mens. Info.:

[No Reconocido]
Tono

5
Mens. Error:
No lo he entendido, repita por favor Eleve su voz, repita por favor

Diga un Opcin de Configuracin

[Ayuda] Mens. Info.:


OPCIONES DE CONFIGURACIN: Aadir, Borrar, Tiempos, Voz, Segundo Dedo, Identificar Usuario, Mster y Salir

Entrada Comando de Voz*

Anlisis (Tiempo Espera = 3s) Comando de Voz


*Vocabulario: *Vocabulario:

[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

Men Principal de Configuracin


SALIR

[Cancelar] Mens. Info.:

5
Operacin Cancelada

Mens. Info.:

Entrada Comando de Voz*

FINALIZACIN (Tiempo Espera = 1s) Comando DEL MODO CONFIGURACIN

Anlisis [No Reconocido] de Voz


Tono

[Mx. Nm. Intentos = 4]

Mens. Info.:

*Vocabulario: *Vocabulario:

Nmero de Intentos Superado. FINALIZACIN DEL MODO CONFIGURACIN

Cancelar Cancelar

Lmitacin de Intentos: Seleccin Opcin del Men

Cancelacin de la Operacin

Figura 4.6: Procedimiento de seleccin de las opciones del Men de


Configuracin empleando la Interfaz de Voz (VUI).

68

Funcionamiento y Desarrollo Software

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

Funcionamiento y Desarrollo Software

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

[Cancelar] Mens. Info.:


Aadir Nuevo Usuario

5
Mens. Info.:
Operacin Cancelada

[No Reconocido]

A1

Entrada Comando de Voz*


(Tiempo Espera = 1s)

*Vocabulario: *Vocabulario:

Anlisis Comando de Voz

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

Entrada/Escaneo Huella Dactilar


(Tiempo Espera = 10s)

Registro Patrn Huella Dactilar

[i] Mens. Info.:


AADIR SEGUNDO DEDO

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.

[ii] Mens. Info.:


USUARIO AADIDO con el Nmero de Identificacin: <PIN>

Figura 4.7: Opcin Men Configuracin: [Aadir]. Procedimiento de uso.

70

Funcionamiento y Desarrollo Software


[Mx. Nm. Intentos = 3] BORRAR

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

Bucle de Entrada (4 veces) PIN

[No Recdo.] Mens. Error:

B1

Tono

No lo he entendido, repita por favor Eleve su voz, repita por favor

B2
[i]

[Cancelar] Mens. Info.:

Entrada Comando de Voz*


(Tiempo Espera = 3s)
*Vocabulario: *Vocabulario:

Desea Cancelar la Operacin?

Anlisis Comando de Voz

[<PIN>] Mens. Info.:

[ii]

0, 1, ,9 0, 1, ,9 Borrar Todo Borrar Todo Cancelar Cancelar

Ej. PIN Usuario (4 Cifras): 0-1-7-9

Realmente desea Borrar al Usuario: <PIN>?

[Borrar Todo] Mens. Info.:

[iii]

Sub-Men Borrar Usuarios

Realmente desea Borrar a Todos los Usuarios?

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

Entrada Comando de Voz*


(Tiempo Espera = 3s)
*Vocabulario: *Vocabulario:

[No] para ([i]-[ii]-[iii]) [ii]-[iii] [Cancelar] [S] [ii]-[iii] [i] Mens. Info.:
Operacin Cancelada

Anlisis Comando de Voz

[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

Eliminar Huellas Usuario/s

4
Mens. Info.:
[ii] USUARIO BORRADO [iii] Todos los Usuarios Borrados. MEMORIA VACA

Figura 4.8: Opcin Men Configuracin: [Borrar]. Procedimiento de uso.

Funcionamiento y Desarrollo Software

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

Funcionamiento y Desarrollo Software

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.

TIEMPOS [Mx. Nm. Intentos = 3]

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

[Cancelar] Entrada Comando de Voz*


(Tiempo Espera = 3s)
*Vocabulario: *Vocabulario:

T1

Mens. Info.:
Desea Cancelar la Operacin?

Anlisis Comando de Voz

[Apertura] [Sensor] Mens. Info.:

T2

Apertura Apertura Sensor Sensor Cancelar Cancelar

[Apertura] Tiempo Actual de Apertura: <Tap> Segundos [Sensor] Tiempo Mx. Actual de Puerta Abierta: <Tsen> Segundos

Sub-Men Seleccin Tiempo de Control Puerta


TIEMPOS

[No Recdo.]

T1

Tono

Mens. Error:
No lo he entendido, repita por favor Eleve su voz, repita por favor Mens. Info.: Repita por favor

Entrada Comando de Voz*


(Tiempo Espera = 3s)
*Vocabulario: *Vocabulario:

[No]

Anlisis Comando de Voz

[Cancelar] [S] Mens. Info.:


Operacin Cancelada

S, No S, No Cancelar Cancelar

Confirmacin de Cancelar la Operacin

Figura 4.9: [a] Opcin Men Configuracin: [Tiempos]. Procedimiento de seleccin de la opcin del tiempo a modificar del sub-men: [Apertura]/[Sensor].

Funcionamiento y Desarrollo Software

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

Bucle de Entrada (2 veces) Tap/Tsen

[No Recdo.]
TIEMPOS

Mens. Error:

T3

Tono

No lo he entendido, repita por favor Eleve su voz, repita por favor

T4
[i]

[Cancelar] Mens. Info.:

Entrada Comando de Voz*


(Tiempo Espera = 3s)
*Vocabulario: *Vocabulario: 0, 1, ,9 0, 1, ,9 Cancelar Cancelar

Desea Cancelar la Operacin?

Anlisis Comando de Voz

[<Tap/Tsen>] Mens. Info.:

[ii]

Ej. Tap/Tsen (2 Cifras): (0-5) o (5)

Realmente desea Cambiar el Tiempo a: <Tap/Tsen> Segundos?

Sub-Men Cambiar Tiempos de Apertura / Sensor


TIEMPOS

[No Recdo.]

T4

Tono

Mens. Error:
No lo he entendido, repita por favor Eleve su voz, repita por favor

Mens. Info.:
Repita por favor

Entrada Comando de Voz*


(Tiempo Espera = 3s)
*Vocabulario: *Vocabulario:

[No] para ([i]-[ii]) [ii] [Cancelar] [S] [ii] [i] Mens. Info.:
Operacin Cancelada

Anlisis Comando de Voz

[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.

Mens. Info.: Actualizar Tiempo Apertura/Sensor


TIEMPO ACTUALIZADO

Figura 4.9: [b] Opcin Men Configuracin: [Tiempos] (Continuacin).


Procedimiento de modificacin del tiempo de Apertura/Sensor seleccionado previamente.

74

Funcionamiento y Desarrollo Software

Opciones de Configuracin: VOZ y 2 DEDO (Fig. 4.10).


[Mx. Nm. Intentos = 3] VOZ/2DEDO

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

Entrada Comando de Voz*


(Tiempo Espera = 3s)
*Vocabulario: *Vocabulario:

[No] [Cancelar] [S]

Anlisis Comando de Voz

S, No S, No Cancelar Cancelar

V2

Sub-Men Activar/Desactivar Opcs. [Voz]/[Segundo Dedo]

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.

Figura 4.10: Opciones Men Configuracin: [Voz] y [Segundo Dedo].


Procedimiento de Activacin/Desactivacin de: [Voz], Pre-identificacin de Usuario por Voz; y, [Segundo Dedo], Opcin de Aadir al usuario con Dedo Auxiliar.

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.

Funcionamiento y Desarrollo Software

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.

Opcin de Configuracin: IDENTIFICAR USUARIO (Fig. 4.11).

IDENTIFICAR

[Cancelar] Mens. Info.:


Identificar Usuario

5
Mens. Info.:
Operacin Cancelada

[No Reconocido] Entrada Comando de Voz*


(Tiempo Espera = 1s)

I1

*Vocabulario: *Vocabulario:

Anlisis Comando de Voz

Cancelar Cancelar

Cancelacin de la Operacin

I1
Mens. Info.:

Tono

Mens. Error:
Huella insuficiente, intntelo de nuevo

Desplace su dedo sobre el lector de huella

Mens. Error:
Tiempo de espera agotado, intntelo de nuevo Tono

Entrada/Escaneo Huella Dactilar


(Tiempo Espera = 10s)

Registro Patrn Huella Dactilar

Mens. Info.:
El Usuario No Existe

5
Mens. Info.:
Usuario Nmero: <PIN>

Figura 4.11: Opcin Men Configuracin: [Identificar Usuario]. Procedimiento


de uso.

Esta opcin del men de configuracin se utilizar, principalmente, para recuperar el PIN de un usuario autorizado identificndolo mediante su huella dactilar. Tambin

76

Funcionamiento y Desarrollo Software

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.

Opcin de Configuracin: MASTER (Fig. 4.12).


En caso de querer sustituir al administrador o mster del sistema se emplear esta opcin mediante el procedimiento expuesto en la figura 4.12. Como el sistema funciona, en principio, con un solo administrador, a la hora de ser sustituido deber ser el mster actual el que acceda al men de configuracin para poder registrar al nuevo mster, a modo de relevo. Para mayor seguridad el mster obligatoriamente ser registrado con 3 patrones de huellas en la memoria del controlador de acceso, de las cuales, dos corresponden al dedo principal o habitual, y otra a un segundo dedo o dedo auxiliar. El PIN asignado por defecto al mster siempre es el [9999], por lo que este PIN nunca podr ser asignado a un usuario normal. Del mismo modo, se podr aprovechar para registrar a 2 administradores en el sistema, el Mster Principal introducir sus huellas cuando el sistema pida el primer dedo, y en el momento de registrar la huella de un segundo dedo ser la del dedo del Mster Secundario. Durante el acceso del mster al men de configuracin mediante el modo verificacin, ambos emplearn la palabra Mster para pre-identificarse. El sistema no puede funcionar sin el administrador, por ello, en el caso de haber borrado completamente la memoria del dispositivo, como tambin se habr borrado al mster, siempre se pedir el registro del mster volviendo a la opcin Mster, en lugar de volver al funcionamiento normal, lo que no suceder hasta que se haya restaurado el mster del sistema.

Inicio por Primera Vez del Controlador de Acceso.


Al arrancar el dispositivo controlador de acceso por primera vez, ste tendr la memoria de usuarios vaca y tampoco tendr administrador como es lgico. Por tanto, una de las primeras cosas que hace es comprobar que el mster existe, en caso contrario, no iniciar su funcionamiento normal hasta que se haya registrado el Mster Inicial. En concreto, el sistema ir directamente a la opcin Mster para realizar la operacin de aadir al mster inicial del sistema (ver fig. 4.12). Si la operacin falla o no se completa con xito, el sistema volver al estado de espera de entrada de huella dactilar, y solamente cuando se desplace un dedo sobre el lector de huella volver a demandar que se aada el mster inicial. Una vez se complete la operacin y el sistema disponga de un administrador o mster, ste emitir un aviso de que el sistema se ha iniciado correctamente y volver al estado de espera, ahora, para su funcionamiento normal.

Funcionamiento y Desarrollo Software

77

[Mster Inicial o No Existe Mster] Mens. Info.:


MASTER

M1
No Existe Mster del Sistema. Aadir Mster Inicial del Sistema

[Sustituir Mster] [Cancelar] Mens. Info.:


Sustituir Mster del Sistema

5
Mens. Info.:
Operacin Cancelada

[No Reconocido] Entrada Comando de Voz*


(Tiempo Espera = 1s)

M1

*Vocabulario: *Vocabulario:

Anlisis Comando de Voz

Cancelar Cancelar

Cancelacin de la Operacin

Bucle de Entrada (2 veces) 2 Huellas Nuevo Mster Mens. Info.:

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

Entrada/Escaneo Huella Dactilar


(Tiempo Espera = 10s)

Registro Patrn Huella Dactilar

[i] Mens. Info.:


AADIR SEGUNDO DEDO

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.

[ii] Mens. Info.:


NUEVO MASTER AADIDO

M3

M2

[Sust. Mster] [Mster Inicial]

5 1

M3

[Sust. Mster]

4 1
Mens. Info.:
SISTEMA INICIADO CORRECTAMENTE

[Mster Inicial]

Figura 4.12: Opcin Men Configuracin: [Mster]. Procedimiento de uso.

78

Funcionamiento y Desarrollo Software

4.2. Programa del Controlador de Acceso Biomtrico (Firmware).


4.2.1. Estructura y Archivos del Firmware.
Antes de describir, en el siguiente punto, el programa principal del dispositivo, que es donde realmente se determina su funcionamiento, veremos aqu la estructura de todo el firmware, del que forma parte el programa principal, junto al resto de archivos necesarios que completan el desarrollo del firmware o programa del controlador de acceso biomtrico (tCAB). A continuacin se expone la estructura del firmware de nuestro dispositivo tCAB, en base a los archivos del cdigo fuente que componen el proyecto en el entorno de desarrollo software (Project-SE IDE de Phyton), el cual incluye el Compilador C y Ensamblador para el mC/Procesador de Voz del dispositivo.

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.

Funcionamiento y Desarrollo Software

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.

Generacin de los Vocabularios de la VUI.


En lo que respecta a la interfaz de voz del usuario, se desarrollaron dos versiones del firmware correspondientes a dos idiomas, Espaol Castellano e Ingls. En el esquema de la estructura del firmware anterior, se mostraron los archivos del cdigo fuente diferentes para cada idioma, aunque el cdigo del programa principal (VoFingerPrint.c) ser el mismo para ambos.

80

Funcionamiento y Desarrollo Software

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.

Generacin de los Mensajes de la VUI.


Igualmente, los mensajes se realizaron, completando as la interfaz de voz, en los mismos idiomas que los vocabularios. Para construir las Tablas de Mensajes y Sonidos, una para cada idioma, que iba a formar parte de la VUI del dispositivo se utiliz la aplicacin QuickSynthesis 4. Partiendo del conjunto de archivos, en formato WAV y con frecuencia de muestreo de 22050 Hz, correspondientes a los mensajes y sonidos elegidos, la aplicacin permita

Funcionamiento y Desarrollo Software

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.

Vocabulario/Grammar [1] Class


0 1 2 3 4 5 6 7 8 9 10 11 12 13

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

Funcionamiento y Desarrollo Software

Vocabulario/Grammar [2] Class


0 1 2 3

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.).

Vocabulario/Grammar [3] Class


0 1 2 3 4 5 6 7 8 9 10 11

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.

Vocabulario/Grammar [4] Class


0 1 2 3

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.

Funcionamiento y Desarrollo Software

83

4.2.2. Descripcin del Programa Principal. Flujogramas.


El funcionamiento del dispositivo tCAB viene determinado por el programa principal, correspondiente al archivo VoFingerPrint.c, gracias a la explotacin de los recursos del Procesador de Voz y mC, disponibles a travs de sus libreras y de los archivos desarrollados para la interfaz de voz, vocabularios y tabla de mensajes, descritos en el punto anterior. En este punto se realizar una descripcin progresiva del cdigo fuente del programa del dispositivo, en la que se presentan primero los esquemas donde se expone su estructura y elementos fundamentales, para luego continuar con la estructura del propio programa principal y, en ms detalle, especificar su ejecucin mediante diagramas de flujo. En la siguiente serie de figuras (4.13[a] - 4.13[c]) se expone dicha estructura y las diferentes partes del cdigo fuente siguiendo el orden en que fue desarrollado. ste se puede dividir en tres bloques, correspondientes cada uno de ellos a una figura, en la que se representan esquematizadamente las partes diferenciadas del cdigo as como su funcin dentro del programa:

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

Funcionamiento y Desarrollo Software

#include "Header_VoFP.h" #include "Header_VoFP.h"

Bloque de Header del Programa y Definiciones de Constantes

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).

Anulacin de Peticiones de Int. en el IRQ (Registro de Peticiones 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. Valores por Defecto Parmetros Configuracin*


* Parmetros de Configuracin del Disp. tCAB:

ver Bloque de Declaracin Variables.

Def. Comandos del Protocolo de Enlace (Red tCAB)*


* Ver Apartado 4.2.3 de Protocolos Com.

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.

Figura 4.13 [a]: Bloque de la Estructura del Cdigo Fuente VoFingerPrint.c:


Cabecera (Header) del Programa y Definiciones de Constantes de Sistema.

Funcionamiento y Desarrollo Software


Bloque de Declaraciones Declaracin Prototipos de Funciones Driver PSD* i) Funciones Driver para Flash2=CSBOOT: flash_boot_write_with_poll(address, data) Escribe 1 Byte en CSBOOT. flash_boot_erase_sector (sector_address) Borra Sector de CSBOOT. flash_boot_reset() Reinicia CSBOOT, utilizada en caso de fallo de escritura.
* Definicin de Funciones Driver en el archivo PSDdrivers_VoFP.c del Firmware.

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.

Figura 4.13 [b]: Bloque de la Estructura del Cdigo Fuente VoFingerPrint.c:


Declaracin de Prototipos de Funciones Driver PSD-Flash2 y Variables Globales.

86

Funcionamiento y Desarrollo Software

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).

flag_dooralarm=1 para Activar Alarma y Mensaje Puerta Abierta.

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

definido en el Apdo. 4.2.3.

Figura 4.13 [c]: Bloque de la Estructura del Cdigo Fuente VoFingerPrint.c :


Definicin de Funciones de Interrupcin, de Sistema y Programa Principal: main().

Funcionamiento y Desarrollo Software

87

Parmetros de Configuracin del Dispositivo tCAB.


Mediante el men de configuracin del dispositivo el administrador puede modificar ciertos parmetros de funcionamiento o configuracin a travs de la seleccin de algunas de las opciones disponibles de este men. Para guardar los diferentes parmetros de configuracin del dispositivo, se utilizan las siguientes variables globales del programa:

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

Funcionamiento y Desarrollo Software

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.

Funciones de Interrupcin ISR.


En el esquema la figura 4.13[c] se pueden ver las funciones donde se definen las rutinas de servicio de interrupcin (ISR vectorizadas) empleadas por el programa del dispositivo. Las acciones programadas en cada una de ellas se ejecutarn cuando se produzca su correspondiente evento de interrupcin, y al activarse el bit respectivo en el registro IRQ, de las siguientes fuentes:

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.

Funcionamiento y Desarrollo Software

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.

Funciones de Gestin del Mdulo de Autenticacin.


Las funciones del tipo, uf_<Nombre>( ), son utilizadas durante el programa para ordenar al mdulo de autenticacin, desde el mC, las diversas acciones necesarias para el funcionamiento del dispositivo tCAB. En la figura 4.13[c] se especifican sus nombres y objetivo, mientras que en los diagramas de flujo del programa, expuestos ms adelante en este punto, se ver cuando se emplean. Entonces para gestionar el mdulo, en cada una de estas funciones se implementa la comunicacin serie con el mdulo (enlace mC-MOD) utilizando el protocolo de comandos especfico de ste, el cual se describe en el siguiente punto. Un aspecto que cabe resaltar es la diferenciacin entre la comunicacin establecida entre el mC y el mdulo, durante la llamada a estas funciones y cuando el programa se encuentra en el bucle principal. En esta ltima situacin, la interrupcin del puerto de recepcin mC_RX est habilitada para que, mientras se espera de forma no-bloqueante la recepcin, y anlisis en p00_isr(), de los paquetes enviados desde el mdulo correspondientes a los eventos fundamentales de entrada de huella del usuario o, de establecimiento de comunicacin externa con el PC; se puedan atender otras tareas implementadas en el bucle principal. Lo que se puede ver en detalle en el flujograma de la Funcin de Interrupcin p00_isr() para el puerto mC_RX(P0.0), fig. 4.16.

90

Funcionamiento y Desarrollo Software

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.

Funcin de Transmisin Wiegand: wg_Send_UserID(userID).


En esta funcin se implementa la transmisin de tramas Wiegand 26-bit por los puertos WG_D0(P0.6) (para el Bit 0) y WG_D1(P0.7) (para el Bit 1), para lo que har uso del TIMER3 mediante su funcin de interrupcin. En particular slo se utilizar para transmitir el nmero de identificacin del usuario, userID o PIN, despus de haber sido autenticado con xito para el acceso, tanto en modo verificacin como en modo identificacin. Por tanto, esta funcin ser llamada nicamente en ese caso y desde las funciones: uf_FreeScan_Analyze() y uf_VerifyTemplate(userID); donde se determina si el usuario est autorizado, despus de analizar el paquete respuesta del mdulo que contiene el resultado del proceso de identificacin y verificacin, respectivamente (ver Flujogramas Figs. 4.15[a], 4.15[b]). El motivo de incorporar esta funcionalidad es para poder enviar el PIN del usuario autorizado para el acceso, a una Central Fermax desde la cual se gestiona otros dispositivos de control de acceso y que utiliza el protocolo de comunicacin Wiegand. De este modo, se podrn integrar las funciones de autenticacin biomtrica del tCAB en una red centralizada de Fermax, en la que existen otros tipos de controladores de acceso. Aunque, debido a que la incorporacin de esta caracterstica no formaba parte del plan de diseo inicial, y se consider despus de haber construido los prototipos de este proyecto; no se pudieron incorporar las lneas de salida Wiegand para los puertos WG_D0(P0.6) y WG_D1(P0.7), adems de su acondicionamiento, en los prototipos. Por tanto, slo se desarroll la parte del programa descrita arriba, no obstante, se pudo testear mediante el osciloscopio las tramas de salida Wiegand en sus puertos y se incluyeron estas lneas en un nuevo diseo del esquemtico de la arquitectura del dispositivo.

Funcin de Servicio de Red (NTSR): ntcall_SR().


Aqu es donde se implementa la gestin del mC sobre la comunicacin externa con el PC, despus de establecer la conexin con el dispositivo tCAB y durante lo que denominamos Estado de Servicio de Red.

Funcionamiento y Desarrollo Software

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.

Estructura y Ejecucin del Programa Principal: main(). Flujogramas.


En la figura 4.14 se muestra la Estructura del Programa Principal, el cual est formado esencialmente por una Secuencia de Inicio o Start-up, donde se realizan operaciones de habilitacin de interrupciones, actualizacin de los parmetros temporales de configuracin del dispositivo, as como, la seleccin de los modos de funcionamiento del mdulo; y, por la Mquina de Estados de Programa (PSM), a la que se pasa justo despus del Start-up, donde se lleva a cabo la ejecucin del programa que produce el propio funcionamiento del dispositivo tCAB. La Condicin de Inicio, justo al empezar el programa principal, sirve para saltar a la Rutina de Servicio de Red (NTSR) implementada en la funcin ntcall_SR(), en caso de que se produzca un reinicio o reset interno del programa, indicado por un bit de la variable SysStat del registro SFR, a consecuencia del establecimiento de conexin con el PC, lo que vendr determinado desde la funcin de interrupcin p00_isr(). Si lo anterior no se cumple el programa pasar a la Secuencia de Inicio para luego ejecutar la PSM. Entonces, en este caso, se puede tratar del Inicio Normal del dispositivo al encenderlo, o bien, otro tipo de reset interno debido a algn error de configuracin del dispositivo durante el Start-up. Esto siempre ser comprobado en el primer estado de la PSM, correspondiente al Bucle Principal, cambiando la siguiente variable [flag_syserr_reset: 01], slo si ha habido algn error indicado, en la secuencia de inicio, por el estado de ciertas variables de operacin que actan como flags de chequeo. Comentar adems que, en la secuencia de inicio, al asignar los parmetros de configuracin, guardados en el sector CSBOOT0 de Flash2, a los parmetros de configuracin temporales, con los que trabaja el programa; siempre se comprueba si ha habido algn fallo de escritura en este sector mediante el puntero al sector CSBOOT1 de Flash2: *(FLAG_FWRITE_FAILURE). En caso de fallo, en el momento de guardar los parmetros y despus de 3 intentos de escritura, se escribir [*(FLAG_FWRITE_FAILURE) =0x01]. Entonces, como no se puede garantizar unos valores correctos de los parmetros, lo que producira un mal funcionamiento del dispositivo, a partir de ese momento se asignarn los valores por defecto, definidos como constantes de programa, a los parmetros de configuracin temporales. La Direccin de Red del tCAB, almacenada en el sector CSBOOT1 y cuyo puntero es: *(MODULEID_FLASH2_ADDRESS), tambin se enviar al mdulo durante la secuencia de inicio, para que pueda identificar los paquetes del protocolo de enlace que van dirigidos a l durante la comunicacin con el PC. Como es lgico, la asignacin de la direccin tCAB al mdulo no se realizar cuando se ejecute la secuencia de inicio viniendo de la NTSR, despus de gestionar la comunicacin con el PC.

92
main()

Funcionamiento y Desarrollo Software

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]

[flag_startup=1] y Tono (SysBeep) de Finalizacin con xito Start-up.


Ejecucin del Programa Principal (PSM: Program State Machine)
state=1: Bucle Principal
[nextstate 1] [Interrup. Ext.]
[Interrup. Timers]

state>1:
Estados Intermedios

state=0: Salida o Retorno

ISRs: p00_isr(): mC_RX p02_isr(): ICOM timer2_isr(): Temporiz. Gral. timer3_isr(): Temp. Wiegand

Figura 4.14: Estructura Programa Principal: main().

Funcionamiento y Desarrollo Software

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)*.
*

Temporizacin por Interrup. Interna TIMER2 Llamadas: timer2_isr() (Fig.4.17).

SP(P0.3)=Abierta: Sensor de Puerta; y, [flag_dooralarm=1]: Tiempo Mx. de Puerta Abierta Agotado Emite Mensaje y Sonido Alarma*.
*

Temporizacin por Interrup. Interna TIMER2 Llamadas: timer2_isr() (Fig.4.17).

[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].
*

Temporizacin por Interrup. Interna TIMER3 Llamadas: timer3_isr() (Fig.4.15[b]).

[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

Funcionamiento y Desarrollo Software

[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)*.
*

Temporizacin por Interrup. Interna TIMER2 Llamadas: timer2_isr() (Fig.4.17).

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.

Funcionamiento y Desarrollo Software

95

PSM Estado 1: Bucle Principal


STATE 1 Mensaje: [Syserror] [No: Flag=Error] and [flag_dooralarm=0] Flags Config. Parms. Md. Ok S No S [flag_syserr_reset=1] [flag_startup=0] REINICIO Sistema [No] and [Interrup. Timer2] [Interrup. Timer2] timer2_isr() Fin Tiempo [time_select=0] [S] and [BS(P0.3)=Off] ESPERA INICIO main()

N Reinicios<3

Filtro Glitch BS(P0.3) Hab. TIMER2: timer2_isr() [utime=0]: Reset Contador [time_select= GLITCH_FILTER_TIMING]

Botn Salida [BS(P0.3)=On]

No

[S] and [SP(P0.4)= Pta. Cerrada]

[S] and [BS(P0.3)=On] [Interrup. Timer2] timer2_isr()

Hab. TIMER2: timer2_isr() [AP(P0.5) =1]: Rel AP On [utime=0]; [time_select=


OPEN_DOOR_RELAY_TIMING]

S Fin Tiempo [time_select=0]

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

[SP(P0.4)=Abierta] [Interrup. Timer2]

[flag_dooralarm=1] [S] Fin Tiempo [time_select=0]

Mensaje: [Access6]+[Alarm]

Hab. TIMER2: timer2_isr() [utime=0]; [time_select=


DOOR_OPEN_ALARM_TIMING]

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]

[scan_event=1] and[tflag_vui=1] (ModoVerif.) S

[userIDMASTER_ID ] Mens:[Access2] [userID=MASTER_ID] Mens:[Access1]

[nextstate=4] [nextstate=10]

[nextstate=2] No [scan_enabled=0] and[tflag_vui=1] (ModoVerif.) No S uf_ScanTemplate_Enable(): [scan_enabled=1] Q1

BUCLE PPAL.

Figura 4.15[a]: Flujograma Bucle Principal: PSM [state=1].

96

Funcionamiento y Desarrollo Software

PSM Estado 1: Bucle Principal (cont.)


BUCLE PPAL. [CCOM(P2.0)=0]: Cambio a Com. PC-MOD [ntcall_event=1] S Peticin Conexin Detectada en ICOM No [S: time_select=0] and [ntcall_event=2] [CCOM(P2.0)=1]: Vuelta a Com. mC-MOD [ntcall_event=0] Error Captura(Recep.) Paquete Respuesta Mdulo o Paquete Conexin Externa (PC) [Tono Largo] Si tflag_vui=1 scan_enabled=0 Hab. TIMER2: timer2_isr() [utime=0]; [time_select=
CONNECTION_TIMEOUT_TIMING]

[ntcall_event=2]

Fin de Espera Paquete Conexin

No [capture_failure=1] [capture_failure=1] S or [ntcall_event=3]

No [ntcall_event=3] Q1

Direccin Paq. Conex.Dir. tCAB [CCOM(P2.0)=1]: Vuelta a Com. mC-MOD 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

[nextstate=10] or [nextstate=80] (Acceso a Men (No Existe Mster: Configuracin) flag_master=0)

STATE 1

No: [tflag_vui = 1] (Modo Verif.)

T. Escner Normal (10s): flag_scantimeout = uf_SystemWrite(UF_SYS_TIME_OUT, 0x3A);

Evento Interrup. Externo: [mC_RX(P0.0)]

Evento Interrup. Interno: Timer2

p00_isr() : Recepcin Puerto mC_RX de:


Paquetes Escaneo Huella (Com. mC-MOD) Paq. Conexin con tCAB (Com. PC-MOD) Evento Interrup. Externo: [ICOM(P0.2)]

timer2_isr() : Temporizacin de
Seales Control de Puerta + Otras Temp. Evento Interrup. Interno: Timer3

timer3_isr() : Cuenta atrs [utime - -]


para Transm. Wiegand de userID (slo desde wg_Send_UserID(userID))

p02_isr() : Deteccin Puerto ICOM de


Trama Pet. Conex.[ntcall_event=1]

Salto a Rutinas de Servicio de Interrupcin (ISR)

Figura 4.15[b]: Flujograma Bucle Principal: PSM [state=1] (Continuacin).

Funcionamiento y Desarrollo Software

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]

TONO Huella Capturada

Recepcin 2 Paquete Estndar (13 bytes) Fin Procesamiento Huella*: UF_SUCCESS


*Para M. Identif. (tflag_vui=0): 2Paq. contiene Resultado Identif. Usuario

No

[tflag_vui=1] and
[BufferRX (Byte 10)= UF_SUCCESS]

Recepcin Paquete: Patrn Huella Usuario (User TEMPLATE = 384 bytes)

[No] and [tflag_vui=0]

[capture_failure=0] [scan_event=1]

[flag_master=0] No Existe Mster

[S] and [tflag_ntmode=0]

[capture_failure=0] [scan_event=0] [nextsatate=80]

No

RETORNO

Recepcin Paq. del Mdulo: Lectura o Escaneo Huella Uuario

Paq. Conexin
[BufferRX (Byte 1)= UF_COMMAND_CT]

[capture_failure=0] [connect_mid=BufferRX(Bytes 2-3)] : Direccin de Conexin Enviada

No No Comprobacin S Dir. tCAB=Dir. Enviada [moduleID=connect_mid]

[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

RETORNO INICIO main()

Recepcin Paq. del PC: Peticin de Conexin o Enlace a tCAB

Figura 4.16: Flujograma de ISR Recepcin Puerto Serie mC_RX: [p00_isr()].

98

Funcionamiento y Desarrollo Software

ISR TIMER2: Temporizacin Disp. tCAB timer2_isr()


Q2 [utime++] RETORNO

[utime= ttime_open*350]or [SP(P0.4)=Abierta] time_select= OPEN_DOOR_RELAY_TIMING No

[AP(P0.5) =0] : Rel AP Off [utime=0]; [time_select=


DOOR_OPEN_ALARM_TIMING]

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]

[utime= ttime_sensor* 350] [SP(P0.4)=Cerrada] or[utime=(T.Espera Repet. Alarma)] time_select= DOOR_OPEN_ALARM_TIMING No

[flag_dooralarm =0] [time_select=0]

[utime=(T.Espera Conexin)] time_select= CONNECTION_TIMEOUT_TIMING No

[time_select=0]

[utime=(T.Espera Seal Activada)] time_select= GLITCH_FILTER_TIMING No

[time_select=0]

Figura 4.17: Flujograma de ISR Temporizacin del tCAB: [timer2_isr()].

Funcionamiento y Desarrollo Software

99

PSM Estados [2-3]: Entrada PIN (VUI) + Verificacin Usuario


STATE 2

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):

Error Escan. HuellaMens:[Bad_fingerprint]

Verificacin Negativa Mens:[Access3] Usuario Autorizado (Verificacin Positiva):


Transm. Wiegand:wg_Send_UserID(userID)

[nextstate=0]

[userIDMASTER_ID ] Mens:[Access2]
[userID=MASTER_ID] Mens:[Access1]

[nextstate=4]

[nextstate=10]

PSM Estado 4: Apertura de Puerta Acceso


STATE 4

[ttime_sensor=0] Puerta Bloqueada

No

Hab. TIMER2: timer2_isr() [AP(P0.5) =1]: Rel AP On [utime=0]; [time_select=


OPEN_DOOR_RELAY_TIMING]

[Interrup. Timer2]
[SP(P0.4)= Abierta]and [repeat=0]

Mensaje: [Access3]

timer2_isr()

Mensaje: [Access5] repeat++

No

[time_select=0] [No] and Fin Tiempo Puerta Abierta [Interrup. Timer2] o Puerta Cerrada
S
STATE 0

Figura 4.18[a]: Flujogramas de Entrada PIN Usuario y Resolucin del Proceso


de Verificacin de Usuario: PSM [state=2]+[state=3]; y, de Apertura de Puerta de Acceso: PSM [state=4].

100
STATE 10

Funcionamiento y Desarrollo Software


PSM Estados [10-80]: Men de Configuracin tCAB

[tflag_ntmode=1] S Acceso Configuracin Bloqueado

Mensaje: [op_notallowed] [nextsatate=0]

STATE 0

No

Mensaje: [users_num] + [<Nm. Usuarios>] [nextsatate=11]

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)

Mensaje: [help_options] [nextsatate=11]

[Aadir]

STATE 20

Proceso Opc: AADIR (Fig. 4.7) Func. Mdulo: uf_Enroll(autoID, userID) Si [tflag_finger2=1] Aadir 2Dedo

[Borrar]

STATE 30

Proc. Opc: BORRAR (Fig. 4.8) Vocabs: [Access_es/en],[Confirm_es/en] Funcs. Md:uf_Delete(userID),uf_DeleteAll()

[Tiempos]

STATE 40

Proc. Opc.: TIEMPOS (Fig. 4.9) Vocabs:[Menutime_es/en],[Access_es/en], [Confirm_es/en] Modifica Params:[ttime_open],[ttime_sensor]

[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

Proc. Opc: IDENTIFICAR US. (Fig. 4.11) Func. Md:uf_Identify( )

[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].

Funcionamiento y Desarrollo Software

101

STATE 0

PSM Estado 0: Salida y Retorno a Bucle Principal (Estado 1)

N Intentos Superado: [Entrada Voz PIN>3] or [Opc. Men Config..>4]

Mensaje: [Try_finish]+[Try_again2]

No [nextstate = 1]

Salida del Men Configuracin

GUARDAR Parms. Config. en Flash2 (utiliz. Funcs. Driver PSD) Si Error Escritura: [flag_fwrite_err=1](3 intentos)
[*(FLAG_FWRITE_FAILURE)=0x01]

No

Comprobacin Mster: flag_master=uf_CheckID(MASTER_ID)

[tflag_vui = 0] (Modo Identif.)

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

No: [tflag_vui = 1] (Modo Verif.)

[tflag_vui = 1] (Modo Verif.)

[scan_enabled=0] Rehabilitar Escner

No Habilita Interrups: mC_RX(P0.0)+ICOM(P0.2) STATE 1

Figura 4.19: Flujograma Estado de Salida o Retorno al Bucle Principal: PSM


[state=0].

102

Funcionamiento y Desarrollo Software

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

Funcionamiento y Desarrollo Software

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

Implementado en: uf_SystemWrite(paramID, paramVAL)

104

Funcionamiento y Desarrollo Software

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

Implementado en: uf_SystemRead(paramID)

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

Funcionamiento y Desarrollo Software

105

Paquetes de Respuesta (para (1) y (2)):

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

Huella de Usuario Escaneada en el Lector

Identificacin Completada

106

Funcionamiento y Desarrollo Software

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.

Funcionamiento y Desarrollo Software

107

Diagrama Temporal:
Host [mC] UF_C Mdulo
OMM AN D

_ST

ESS SUCC A N_ C UF_S SS CCE F_SU U E] L AT EMP RT [USE

Huella de Usuario Escaneada en el Lector

Trans. Pat. Huella Completada

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

Funcionamiento y Desarrollo Software

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

Implementado en: uf_VerifyTemplate(userID) Diagrama Temporal:


Host [mC] Mdulo
UF_C OMM A ND _VT [USE [User R TE ID] MPL ATE]

C _SUC SCAN UF_ ESS UC C UF_S

ESS

Recepcin Patrn de Huella

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)

Funcionamiento y Desarrollo Software

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

1 Huella de Usuario Escaneada en el Lector


CC N_SU _SCA UF CESS _SUC UF ESS

Registro 1 Huella Completado

CC N_SU _SCA UF CESS _SUC UF

ESS

2 Huella de Usuario Escaneada en el Lector

Registro Completado

110

Funcionamiento y Desarrollo Software

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

Implementado en: uf_Delete(userID)

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

Implementado en: uf_DeleteAll()

Funcionamiento y Desarrollo Software

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

Paquete de la Lista de Usuarios (No Estndar):


UserID 1 [4 bytes] UserID 1 [4 bytes]

UserID N [4 bytes]

UserID N [4 bytes]

UserID N [4 bytes]

End Code [1 byte]

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

e] ta Siz S [Da ES UCC UF_S IST] Ds L ER_I [ US

Trans. Lista Completada

112

Funcionamiento y Desarrollo Software

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

Funcionamiento y Desarrollo Software

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

Funcionamiento y Desarrollo Software

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)

Funcionamiento y Desarrollo Software

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.

Protocolo de Enlace de Red tCAB.


Este protocolo se dise para realizar la comunicacin externa del PC con los dispositivos tCAB pertenecientes a la red formada por estos. Como se vio en el captulo anterior, en concreto en al apartado 3.1.3, la arquitectura est orientada a la comunicacin directa entre el PC y el mdulo de autenticacin del dispositivo, que es con quien el PC tiene que realizar la mayor parte de operaciones. Sin embargo, es el mC quien coordinar la comunicacin externa gracias a este protocolo y al puerto del mC, CCOM, dedicado a conmutar entre comunicacin interna y externa. Por tanto, el protocolo de red se fundament en el tipo de paquetes del protocolo de comandos del mdulo. Los Paquetes de Red utilizados son los siguientes:

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

Funcionamiento y Desarrollo Software

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

tCAB Config Command

[Byte 4]: NULL

Funcionamiento y Desarrollo Software

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

Funcionamiento y Desarrollo Software

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

tCAB Config Command

[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

[Byte 3]: NULL (0x00) [Byte 4]: NULL (0x00)

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

tCAB Config Command

[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)

Funcionamiento y Desarrollo Software

119

Start Code
0x41

Module ID
tCAB Address

Command
UF_COMMAND_CT

Param
4 bytes

Size
4 bytes

Flag/ End Checksum Error Code


1 byte 1 byte 0x0A

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

Host Ext. [PC]


Trama Pet. Conex.[0xFF]

Secuencia Establecimiento de Enlace PC-tCAB

[UF_COM

in n C one x . Petici Paq CAB] T][Dir.t AND_C


M

[moduleID =Dir.tCAB] Conexin Inicio NTSR


Si Comando Gateway Fin Com (NTSR)

[UF_COM

Paq. Re conocim ineto Co nexin [UF_COM MAND_ CT][Pa q. Red]

Paq. Re conocim ineto Co nexin [UF_COM MAND_ CT][Pa q. Red] dulo itud M q. R e d] DA][Pa

Mltiples Operaciones (en mC y Mdulo)

c Paq. Soli [UF_COM

Comunicacin PC-tCAB. Intercambio Paquetes de Red

MAND_

Paq. Res p [UF_SUC

uesta M

CESS][

dulo Paq. Red ]

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]

racin Configu Solicitud Paq. a q. R e d] D_CT][P MMAN [UF_CO

Paq. Res p [UF_COM

MAND_ CT][P

uesta Co nfig aq. Red]

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

Funcionamiento y Desarrollo Software

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]

Desactivar Escner (Free Scan): uf_SystemWrite(UF_FREESCAN, 0x30);

[SysStat(Bit 4)=1]and S [flag_syserr_reset1]


[tflag_vui=1] Desactivar Escner(Scan Template): uf_Cancel();

No

Start-up: Secuencia Inicio tCAB PSM: Ejecucin Programa Ppal.

ntcall_SR():
Rutina Servicio de Red tCAB (NTSR).

Condicin de Inicio: Establecimiento de Conexin PC- tCAB (NTSR)

Figura 4.21[a]: Flujograma de la Condicin de Inicio del Programa: Llamada a


NTSR durante la Secuencia de Establecimiento de Enlace o Conexin PC-tCAB.

Funcionamiento y Desarrollo Software

121

ntcall_SR()
Paq. Conexin
[BufferRX (Byte 0) NTCALL_SETMODULE2STANDALONE_GATEWAY]

Rutina de Servicio de Red tCAB


NTSR: Network Service Routine
S Modo Op. en Red tCAB [tflag_ntmode=1]

No

Cambia a Comunicacin por Red : uf_SystemWrite(UF_NETWORK_MODE, 0x31) [flag_ntcom=1]

Transmisin mC-MOD-PC Paquete de Red (15 bytes): Paq. Reconocimiento de Conexin o Enlace

[CCOM(P2.0)=0]: Cambio a Com. PC-MOD

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)]

[BufferRX(Byte 4) =NTCALL_CHANGE_TIMESENSOR] [BufferRX(Byte 4) =NTCALL_CHANGE_OPERATIONMODE]


[BufferRX(Byte 4) =NTCALL_SEND_CONFIG]

[ttime_sensor=BufferRX(Byte5)]
Si Error [BufferTX(Byte6)=0xFF]

Si Error [BufferTX(Byte6)=0xFF]

[tflag_vui=BufferRX(Byte5)]

[BuffertTX(Byte4 -7)= (Parms. Config. Actuales)]

[BufferRX(Byte 4) =NTCALL_SETMODULE2STANDALONE] [BufferRX(Bytes 4 - 5)=NTCALL_KILL_MODULE]

Modo Op. Autnomo [tflag_ntmode=0]

[End Com]

Configuracin Parmetros tCAB desde PC


S

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

Figura 4.21[b]: Flujograma de la Funcin de Servicio de Red, NTSR:


ntcall_SR().

122

Funcionamiento y Desarrollo Software

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).

Funcionamiento y Desarrollo Software

123

4.2.4. Mapa de Memoria y Programacin del Dispositivo.


Mapa de Memoria Externa PSD Flash.
En la figura 4.22 de abajo se puede ver la composicin de la memoria externa PSD formada por los bancos primario y secundario de memoria Flash, una memoria SRAM, y el conjunto de registros internos (CSIOP). En estos registros es donde se almacena la configuracin particular de los puertos de direcciones del chip de la memoria PSD, as como, de la distribucin o mapeo de los rangos de direcciones para los espacios de memoria de programa y datos; todo ello realizado mediante la aplicacin PSDsoft Express proporcionada por el fabricante.

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

Variables del Programa tCAB [RS0:32Kb]

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

Figura 4.22: Mapa de Memoria. Espacios de Programa y Datos en la PSD.

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

Funcionamiento y Desarrollo Software

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).

Programacin ISP/JTAG de la Memoria PSD Flash.


Segn se coment en el captulo 2, a la hora de elegir una memoria externa para nuestro dispositivo, uno de los factores predominantes fue que tuviese una forma fcil y rpida de ser programada. Esto mismo es, por tanto, lo que permite la memoria PSD elegida, en la que se pudo descargar el Firmware desarrollado para el dispositivo por medio del Interfaz Serie de Programacin JTAG, conforme al Estndar IEEE 1149.1, y con el cual se realiza la denominada Programacin en Sistema, ISP, gracias al conector JTAG macho montado sobre la placa (ver Fig. 3.3), el cual se usar como puerto de programacin de fbrica, una vez est el dispositivo construido y funcionando. As pues, la descarga del Firmware se realiza desde la misma aplicacin comentada antes, PSDsoft Express, a travs del Programador RLINK-ST, conectado en un extremo a un puerto USB del PC, y en el otro, al puerto JTAG de programacin del dispositivo. Pero antes, en una de las etapas de programacin de esta aplicacin, se seleccionarn los siguientes archivos de cdigo binario, en formato Intel HEX, a descargar en la PSD del dispositivo:

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

Funcionamiento y Desarrollo Software

125

Direccin tCAB [B] = 0x0001*: mid_0001.H07


*

Contenido de este archivo en formato Intel HEX (direccin en negrita): :022000000100DE :00000001FF

Pre-configuracin del Mdulo de Autenticacin por Huella Dactilar.


Como se coment en el punto anterior 4.2.3, cuando se especific el protocolo de comandos del mdulo, existen ciertos parmetros de funcionamiento del mdulo que por sus caractersticas necesitan ser configurados o seleccionados fuera de lnea, es decir, antes de ejecutar el programa del dispositivo a modo de programacin en fbrica.

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

Funcionamiento y Desarrollo Software

de este tipo de fallo de comunicacin, es que al iniciar el dispositivo slo emite un tono, no dos como debe ser.

4.3. Aplicacin de Gestin de la Red tCAB.


Esta aplicacin es la que se ejecuta en el PC para gestionar la red de terminales de control de acceso biomtrico, o red tCAB, que, recordemos, estaba formada por el PC como maestro, y cada dispositivo controlador de acceso diseado, como terminal de la red, y por lo que fue denominado tCAB. Se eligi el entorno de desarrollo software (IDE) Delphi7 para implementarla, el cual dispone de bastantes componentes grficos para el desarrollo visual de la aplicacin, y cuyo compilador de cdigo fuente es Pascal Orientado a Objetos (OOP). El objetivo fundamental de la aplicacin es contener a todos los usuarios en una Base de Datos centralizada en el PC, incluyendo, por supuesto, los patrones de huella dactilar de cada usuario, de forma que un administrador del sistema pueda dar de alta o registrar las huellas del usuario en esta base de datos. Posteriormente estos usuarios podrn ser registrados en los terminales de acceso elegidos, enviando los patrones de huella de los usuarios a travs de la red y mediante el protocolo de enlace implementado tanto en la aplicacin como en cada terminal. Por ello, tambin fue necesario incorporar en esta base de datos a los terminales de control de acceso existentes en la red, y en la que se recoge las caractersticas de cada uno de ellos, incluyendo, sobretodo, la direccin de cada tCAB y sus parmetros de configuracin. Asimismo, en la aplicacin se incorporan otras funcionalidades que se vern ms adelante junto a las ventanas de dilogo y del panel principal pertenecientes a la interfaz grfica de usuario. Ahora se exponen los elementos bsicos que se implementaron para dar soporte a dichas funcionalidades y a otras opciones ofrecidas por la aplicacin:

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.

Funcionamiento y Desarrollo Software

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

Funcionamiento y Desarrollo Software

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.

4.3.1 Dilogo de Autenticacin del Administrador por Huella Dactilar.


La aplicacin exigir la autenticacin mediante la huella dactilar del administrador que inicie la sesin de trabajo con la aplicacin de gestin de la red de controladores de acceso. Por tanto, el primer dilogo que aparece al iniciar la aplicacin ser el que se puede ver en la siguiente figura.

Figura 4.23: Dilogo de Inicio de la aplicacin mediante Autenticacin por


Huella Dactilar.

Funcionamiento y Desarrollo Software

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.

4.3.2 Panel Principal.


A la hora de desarrollar la apariencia del Panel Principal y la estructura de las listas de usuarios y terminales de esta aplicacin se intent conservar la de la aplicacin WinProx de Fermax para redes de otro tipo de terminales de control de acceso. De esta forma, se facilita el uso de esta nueva aplicacin a los antiguos usuarios familiarizados con WinProx. Como se muestra ms adelante en la serie de figuras de las Vistas del Panel Principal, ste lo forman, fundamentalmente, las Listas de Terminales de Acceso, denominados en la aplicacin como Access Points o Puntos de Acceso en una nomenclatura menos tcnica; y, los dos tipos de Listas de Usuarios, general y por cada terminal, adems de, la Lista de Administradores (System Masters) y los Botones para iniciar las diversas tareas que permite realizar la aplicacin, abriendo si procede la ventana de dilogo correspondiente. Seguidamente se describen las caractersticas de los

130

Funcionamiento y Desarrollo Software

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

Funcionamiento y Desarrollo Software

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

Funcionamiento y Desarrollo Software

[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).

Funcionamiento y Desarrollo Software

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

Funcionamiento y Desarrollo Software

Figura 4.24[a]: Panel Principal de la aplicacin: Vista de la Lista de Terminales


de Acceso.

Funcionamiento y Desarrollo Software

135

Figura 4.24[b]: Panel Principal de la aplicacin: Vista de la Lista de Usuarios por Terminal o Punto de Acceso.

136

Funcionamiento y Desarrollo Software

Figura 4.24[c]: Panel Principal de la aplicacin: Vista de la Lista General de


Usuarios en la red tCAB.

Funcionamiento y Desarrollo Software

137

4.3.3 Dilogos Asociados a Operaciones sobre los Terminales.


Ventana de Dilogo: [Build Net] (Fig. 4.25).
En la siguiente figura se pueden ver las opciones disponibles en la ventana para construir la red. En esta ventana se dispuso una serie de cuadros de texto para introducir la Direccin de Red del Terminal o Punto de Acceso (Access Point), junto a la Descripcin de la puerta de acceso que controle dicho terminal. En esta ventana se restringe a 10 el nmero de terminales que se pueden conectar a la red, aunque, en principio, el nmero de terminales que puede contener la red de protocolo fsico RS-485 viene limitado por ste en 256 terminales, como se coment al describir las caractersticas de la arquitectura de red en al apartado 3.2.2. Entonces la red de la aplicacin se limit provisionalmente a 10 para que, posteriormente en una fase de industrializacin fuera del alcance de este proyecto, se especificasen ms precisamente las caractersticas de la red tCAB, y, por tanto, el nmero mximo real de terminales, por medio de pruebas con distancias, cables y conectores reales, as como, un nmero elevado de terminales. Continuando con la descripcin de los elementos ms importantes de esta ventana, una vez introducidas las direcciones de red de los terminales, se pulsar el botn Connect para conectar a cada terminal a la red y registrarlo en la base de datos de la aplicacin. Durante el proceso de conexin, implementado mediante el protocolo de enlace desarrollado, se ir indicando el estado de conexin resultante en la columna de iconos led, ahora en color gris, cambiando su color segn el cdigo de colores comentado anteriormente; y tambin se reforzar esta informacin en el cuadro de informacin inferior. Al finalizar la operacin y si todo es correcto se pulsar el botn Done para guardar la configuracin de la red y salir. Si se quiere deshacer la configuracin por alguna razn, despus del proceso de conexin, se deber pulsar el botn Undo. Comentar adems que, para todas las ventanas que irn mostrndose, el botn (o en general cualquier otra opcin de ventana) que aparezca ensombrecido en color gris, como el botn Done de la figura 4.25, significa que la opcin correspondiente no est habilitada en ese momento de uso del dilogo.

138

Funcionamiento y Desarrollo Software

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).

Funcionamiento y Desarrollo Software

139

Figura 4.26: Dilogo de la Opcin [Configure].

Ventana de Dilogo: [Transfer] (Fig. 4.27).


Como se explic al presentar el botn Transfer del panel principal (punto 4.3.2), aqu se realizar la operacin de importar o transferir usuarios, y sus patrones de huella, desde un terminal recin conectado a la red y que contiene usuarios, normalmente, de un funcionamiento previo en modo autnomo, no registrados en la base de datos de la aplicacin. Esta operacin slo se podr realizar si en el parmetro del terminal Available aparece el smbolo [T], adems, es necesario hacerlo puesto que mientras aparezca ese smbolo, no se permitir aadir a nuevos usuarios en la base de datos de la aplicacin, bloqueando el botn Add Users y en su lugar mostrando un mensaje de advertencia. Esto ser as para evitar sobre-escrituras de usuarios que pudiesen tener el mismo nmero de identificacin (User Id) en el terminal.

140

Funcionamiento y Desarrollo Software

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.

Figura 4.27: Dilogo de la Opcin [Transfer].

4.3.4 Dilogos Asociados a Operaciones sobre los Usuarios.


Ventana de Dilogo: [Add Users] (Fig. 4.28).
Esta es la operacin para registrar a los usuarios y aadirlos a la base de datos de la aplicacin. Como se observa en la figura 4.28, el dilogo permite asignar el nmero de usuario (User Id), de forma manual o automtica si se marca la casilla Auto User Id, el nombre de usuario (User Name) y, si se marca la otra casilla Second Finger

Funcionamiento y Desarrollo Software

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.

Ventana de Dilogo: [Enable] (Fig. 4.29).


La operacin de Habilitar Usuarios en los terminales de acceso se realizar a travs de este dilogo, en el que esencialmente tenemos la lista de usuarios, previamente seleccionados de las listas de usuarios del panel principal, que contiene a aquellos que sern habilitados en los terminales indicados al iniciar este proceso despus de presionar el botn de la ventana Enable. El progreso de la operacin se indicar en el cuadro de informacin que se puede ver a mitad de la ventana, as como, se podr ver el resultado de la operacin en la lista de usuarios de encima de este cuadro. Esta operacin tiene dos formas de habilitar a los usuarios, en la primera, si se selecciona a uno o varios usuarios de una de las Listas de Usuarios por Terminal, en el panel principal, y luego se presiona el botn Enable, justo encima de esta lista; los usuarios que se muestren en la lista de usuarios a habilitar de esta ventana, slo se habilitarn en el terminal correspondiente a la lista de usuarios del panel principal, donde fueron seleccionados. La segunda es realizar el mismo proceso de seleccin de usuarios pero ahora de la Lista general de usuarios, por tanto, la operacin Enable habilitar a los usuarios seleccionados, en todos los terminales a los que pertenezca cada uno de ellos, indicado bajo el rtulo Added to Access Points:.

142

Funcionamiento y Desarrollo Software

Figura 4.28: Dilogo de la Opcin [Add Users].

Figura 4.29: Dilogo de la Opcin [Enable].

Funcionamiento y Desarrollo Software

143

Ventana de Dilogo: [Disable/Erase] (Fig. 4.30).


Por medio de este dilogo se realizan dos tipos de operacin. La primera es la operacin de Deshabilitar Usuarios, la cual se produce de la misma forma que la operacin de Habilitar Usuarios explicada en el punto anterior, y con los mismos mtodos de seleccin de usuarios, en este caso, para deshabilitarlos de los terminales correspondientes. La segunda operacin como tambin se indica en el propio botn del panel principal es Erase, es decir, eliminar al usuario o usuarios seleccionados de la base de datos. Esto se realizar marcando las casillas de los usuarios que se quiera eliminar, en la lista de esta ventana junto a los nmeros de usuario, y despus de presionar el botn Disable/Erase. Comentar, adems, que en esta ventana no se permitir nunca eliminar a un usuario que previamente no haya sido deshabilitado en todos sus terminales. Esto es as, justamente, para evitar la situacin incoherente en la que permanezcan usuarios habilitados, aunque sea en un terminal, mientras que ya no se encuentran registrados en la base de datos de la aplicacin.

Figura 4.30: Dilogo de la Opcin [Disable/Erase].

144

Funcionamiento y Desarrollo Software

4.3.5 Otras Ventanas de Dilogo.


Ventana de Dilogo: [Sys Masters] (Fig. 4.31).
Aqu es donde se registran los administradores del sistema, y como se muestra en la imagen de la ventana, ser necesario introducir sus datos de forma similar a un usuario normal, aunque ms sencilla al no tener que indicar ningn terminal de destino. Tambin es distinto que el administrador no podr elegir su nmero o ndice dentro de la lista de administradores, vendr asignado por orden de registro automticamente. El inicio de la captura de huellas, necesario para registrarlo en la base de datos, se produce al pulsar el botn Add Master, y slo despus de haber rellenado todos los datos pedidos en la ventana. Del mismo modo que en la operacin de registrar usuarios, la operacin no ser definitiva hasta pulsar el botn Done, pudiendo cancelar la operacin en cualquier momento. Tambin vemos que, al lado del botn Add Master, tenemos otro con el nombre Add; ste es un botn de acceso a la operacin de aadir o registrar usuarios, y que abre la misma ventana que el botn Add Users, precisamente para aadir al administrador como usuario normal en cualquier terminal siguiendo el mismo procedimiento que se describi para esta operacin. En esta caso, se le tendr que asignar un nmero de identificacin de usuario, conservando, obligatoriamente, el nombre del administrador para convertirse, tambin, en usuario de la red.

Figura 4.31: Dilogo de la Opcin [Sys Masters].

Ventana de Dilogo: [Identify] (Fig. 4.32).


Los motivos para incluir esta operacin en la aplicacin ya fueron expuestos anteriormente, aunque se recuerda aqu que la operacin de Identificacin de Usuario

Funcionamiento y Desarrollo Software

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

Funcionamiento y Desarrollo Software

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.

5.1. Pruebas de los Prototipos del Controlador de Acceso.


A partir del diseo del esquema elctrico del dispositivo controlador de acceso, se pas a realizar el diseo de la Placa de Circuito Impreso (PCB) sobre la que posteriormente se montaran los componentes y circuitos integrados especificados, despus de ser fabricada. El diseo de la PCB se tuvo que restringir a unas dimensiones concretas, debido a que el prototipo estaba pensado para ir embarcado en un modelo de caja determinado, correspondiente al de un Amplificador 4+N de Fermax, para, de este modo, poder integrarlo en el mueble de un placa de calle del modelo Fermax City de Videoportero. Como sta la PCB tiene las siguientes caractersticas principales: Dimensiones PCB: 6cm x 9.5cm. PCB de 4 Capas: cara Top (Anterior) y Bottom(Posterior); y, 2 capas enterradas correspondientes a los planos de masa y alimentacin. 147

148

Pruebas de Prototipos y Conclusiones

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:

Pruebas de Prototipos y Conclusiones

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

Pruebas de Prototipos y Conclusiones

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

Pruebas de Prototipos y Conclusiones

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

Pruebas de Prototipos y Conclusiones

Figura 5.2: Prototipo del Controlador de Acceso Biomtrico (tCAB).


Cara Posterior con Mdulo de Autenticacin montado.

Figura 5.3: Prototipo del Controlador de Acceso Biomtrico (tCAB).


Cara Posterior sin el Mdulo de Autenticacin montado.

Pruebas de Prototipos y Conclusiones

153

5.2. Pruebas de la Red tCAB.


Continuando con la tercera fase de desarrollo, quedaba por realizar las pruebas de la red tCAB diseada. En este momento ya se dispona de dos prototipos necesarios, como mnimo, para testear dicha red, gestionada desde el PC mediante la aplicacin desarrollada en la segunda fase, y gracias al protocolo de enlace implementado. A continuacin se describen las pruebas y modificaciones realizadas: Test de las Tramas RS-485 en la Red tCAB: Con el la red compuesta por los dos prototipos como terminales de acceso, y conectados al PC, donde se ejecuta la aplicacin de gestin de estos terminales; se comprob que las tramas se reciban y transmitan correctamente. Para ello, se utilizaron paquetes de prueba con unos datos determinados y conocidos, de forma que, tanto en el PC como en cada terminal se poda verificar su recepcin fcilmente. Asimismo, se midieron mediante el osciloscopio los niveles de tensin de las tramas RS-485, y para estos paquetes de prueba, en los cables de red, as como, tambin se midieron los niveles de tensin de estas tramas una vez convertidos por el transceiver a los niveles CMOS de la lgica interna del dispositivo. Depuracin del Protocolo de Enlace: El siguiente paso fue comprobar que el intercambio de los paquetes correspondientes ya al protocolo especificado se produca de forma satisfactoria, lo que implicaba que se estableciese con xito la conexin con cada terminal, adems de, las operaciones determinadas por todos los paquetes definidos en este protocolo. Estas pruebas sirvieron para depurar la implementacin del protocolo de enlace de red realizada en la capa de comunicaciones de la aplicacin, como parte crucial del cdigo fuente de la aplicacin ya que ofrece el servicio de comunicacin con cada terminal para el resto de esta aplicacin. Conjuntamente, se termin de depurar la parte del cdigo del dispositivo tCAB correspondiente al protocolo, corrigiendo fallos que no se pudieron ver hasta que se realizaron estas pruebas con la red mnima en funcionamiento y compuesta por dos terminales, y el PC como maestro o host central ejecutando la aplicacin de gestin de la red.

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

Pruebas de Prototipos y Conclusiones

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

Pruebas de Prototipos y Conclusiones

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.

Tabla de Mensajes y Sonidos Nombre MESSAGES_ES (Espaol Castellano) MESSAGES_EN (English)


Mensajes de Acceso (Modos Identificacin y Verificacin) "Acceso a Modo Configuracin" Access1 "Access to Configuration Mode" "Acceso Autorizado" Access2 "Authorized Access" "Acceso Denegado" Access3 "Denied Access" "Diga su nmero de identificacin, despus de la seal" Access4 "Say your identification number, after the beep" "Puerta abierta. Por favor, cierre despus de entrar Access5 "Door Opened. Please, close it after get in" "Puerta Abierta. Cierre la Puerta" Access6 "Door Opened. Close the door" "Verificacin Cancelada" Cancel_verif "Canceled Verification" Mensajes del Men de Configuracin (Seleccin de Opcin, Ayuda y Salir) "Diga una opcin de Configuracin" Say_option "Say a configuration option" Help_options "Opciones de Configuracin: Aadir, Borrar, Tiempos, Voz, Segundo Dedo, Identificar Usuario, Master y Salir" "Configuration Options: Add user, Erase, Time, Voice, Second Finger, Identify, Master and Exit" "Finalizacin del modo configuracin" Exit_config "Finish configuration mode"

161

Nombre

MESSAGES_ES (Espaol Castellano) MESSAGES_EN (English)


Mensajes de la Opcin: Aadir "Aadir nuevo usuario"

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

MESSAGES_ES (Espaol Castellano) MESSAGES_EN (English)


Mensajes de la Opcin: Voz "Preidentificacin de usuario por voz activada"

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

MESSAGES_ES (Espaol Castellano) MESSAGES_EN (English)


Mensajes de Informacin General y Error "Tiempo de espera agotado"

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

C.2. Vocabularios del Dispositivo tCAB.


Vocabulario/Grammar [1] Class
0 1 2 3 4 5 6 7 8 9 10 11 12 13

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

Vocabulario/Grammar [2] Class


0 1 2 3

Confirm_es
[No Reconocido] S No Cancelar

Confirm_en
[Not a Command] Yes No Cancel

Vocabulario/Grammar [3] Class


0 1 2 3 4 5 6 7 8 9 10 11

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

Vocabulario/Grammar [4] Class


0 1 2 3

Menuconfig_es
[No Reconocido] Apertura Sensor Cancelar

Menuconfig_en
[Not a Command] Open Sensor Cancel

165

You might also like