Interfaz Wiegand 26/Ethernet Facultad de Ingeniería – UNMDP Interfaz Wiegand 26/Ethernet Autor: Martín Gracián Director: Ing. Raúl Rivera Carrera: Ingeniería Electrónica -Mar del Plata, Septiembre 2009 Resumen—Este trabajo tiene por objeto comentar computarizados, su fragilidad y su alto costo de el mantenimiento. desarrollo de una Interfaz Wiegand 26/Ethernet que permite utilizar un dispositivo Los lectores para la identificación de personas utilizados con protocolo de salida específico, como es en la actualidad cuentan, en su mayoría con una salida Wiegand 26, dentro de una red informática. Ésta Wiegand 26. Por este motivo y la necesidad de permite que cualquier tipo de lector utilizado para desarrollar un equipo económico y contemporáneo, se el salida creo la Interfaz Wiegand 26/Ethernet. Esta última es la Wiegand 26, se pueda conectar a una red. El encargada de transmitir los datos que entrega el lector a sistema establece una conversión de protocolos a una PC mediante Ethernet. De esta manera los datos través de un microcontrolador PIC 18F97J60. Este provistos por el lector serán visualizados en la PC último mediante un programa instalado en ésta. reconocimiento cuenta de con un personas, con controlador Ethernet interno, el cual se encarga de la comunicaciones II-WIEGAND 26 de este tipo. La pila TCP/IP de Microchip utilizada del El protocolo Wiegand es ampliamente utilizado por la microcontrolador brinda una importante cantidad mayor parte de los fabricantes de lectores porque de funciones para utilizar en la aplicación, tales permite la transmisión de información a través de un par como de cobre acompañado por la alimentación para el para las comunicaciónes emplear al Ethernet microcontrolador como un servidor web; enviar mails; ser servidor o cliente dispositivo de lectura sin afectar por ello a los datos. en una conexión Cliente-Servidor, etc. Haciendo Como todo protocolo de comunicaciones, Wiegand uso de las herramientas presentadas y utilizando consta de dos partes fundamentales: una parte describe un programa servidor como terminal de salida se el modo en que físicamente se transmite la información desarrolló digital la Interfaz Wiegand 26/Ethernet. y la otra parte, la forma Resultando de esta manera un equipo sofisticado, numéricamente dicha información. económicamente Sistema de transmisión: accesible, utilizando de interpretar bajo costo La transmisión de datos Wiegand usa tres hilos. La línea a cubrir para enviar los unos lógicos o DATA1, la línea para hacer necesidades de control de personal como así lo propio con los ceros lógicos o DATA0 y la línea de también otras posibles utilidades para el mismo. masa de referencia de ambos o GND. Los niveles que se exclusivamente disponibles en componentes plaza, de aplicable usan son Bajo, a nivel de GND, o Alto a +5V o VCC. En estado de reposo, o sea sin transmitir, la línea de GND es I-INTRODUCCIÓN exactamente lo que es GND y siempre está en nivel bajo y las líneas DATA1 y DATA0 están en nivel alto, a nivel Se sabe que el recurso más valioso que tiene una de +5V ó VCC. empresa es su personal, por eso, hoy en día se ha hecho Para transmitir un Bit 1 se envía un pulso a Bajo, una necesidad imperiosa controlar su tiempo trabajado. normalmente de 50 useg (microsegundos) de duración, Ya han quedado en la historia los viejos relojes por la línea DATA1, mientras DATA0 permanece en Alto. mecánicos con tarjetas de cartulina, por su escasa Para transmitir un Bit 0 se envía un pulso a Bajo, información, la imposibilidad de automatizar procesos también de la misma duración 50 useg (microsegundos), Gracián Martín Página I Interfaz Wiegand 26/Ethernet Facultad de Ingeniería – UNMDP por la línea DATA0, mientras ahora es DATA1 la que La aplicación tiene como objetivo principal transmitir el permanece en Alto(Figura 1). código Wiegand a una PC, la cual muestre en pantalla los datos recibidos. Estos son enviados por el microcontrolador en una trama Ethernet. Los bits del código Wiegand ingresan al microcontrolador por dos pines del puerto B. Cada vez que se registre una lectura, el microcontroldor iniciará una conexión Cliente/Servidor Figura 1. Transmisión de bits con la PC encargada de mostrar el código recibido en pantalla. La dirección IP de la PC destinataria del código debe ser configurada a través de la página web alojada Interpretación de los Datos: en el microcontrolador. A ésta se ingresa mediante un El código Wiegand 26 está compuesto por 26 bits y la navegador web, ingresando el número IP de la Interfaz interpretación del mismo es la siguiente: Wiegand 26/Ethernet en la URL. Desde la página web se El primer Bit, B0, es la Paridad Par de los primeros configura la IP de la Interfaz, la IP de la PC destino y el 12 bits transmitidos (B1:12). Los 8 siguientes, B1:B8 son un Byte, un Entero de Los 16 siguientes: B9:B24 son dos Bytes, un puerto 8 bits, al que llaman Facility Code. la PC destino recibirá conexiones El programa instalado en la PC destino será el encargado de recibir el código enviado por el microcontrolador y Entero de 16 Bits, al que llaman User Code donde entrantes. mostrar el resultado en pantalla. En la Figura 3 se El último bit, B25, es la Paridad Impar de los muestra una captura del programa. últimos 12 bits transmitidos (B13:24). III-PILA TCP/IP DE MICROCHIP La pila TCP/IP de Microchip es una serie de programas que proveen servicio a las aplicaciones estándar de TCP/IP, o puede ser usada en una aplicación particular de TCP/IP. Está implementada de forma modular y con todos los servicios se crean capas independientes. Microchip divide sus tares en distintos archivos. Cada La función del programa es crear un servidor en un uno de estos realiza sus tareas y presta servicios a los puerto determinado para recibir conexiones entrantes. demás. Por esta razón un sistema operativo multitarea Estas sería ideal, pero al contar con un microcontrolador de 8 el esquema del enviadas por el Este programa se puede modificar fácilmente para distintas aplicaciones, como pueden ser: IV-DESCRIPCIÓN DE LA APLICACIÓN muestra son se muestra en pantalla en un textbox. para poder atender todas las tareas solicitadas. 2 entrantes luego enviar el código Wiegand. Una vez recibido éste, encargada de administrar los recursos del procesador Figura conexiones microcontrolador para establecer una conexión TCP y bits como es el PIC 18F97J60, la aplicación principal es la La Figura 3. Programa servidor Como la arquitectura de protocolos TCP/IP, la pila de sistema implementado. Se distinguen tres partes principales: un Lector, que es el encargado de registrar al personal y transmitir el correspondiente código Wiegand 26 (en este Almacenamiento de datos de personal Llave de acceso Registro de presencia Ordenamiento de equipajes Pero el objeto de este trabajo es la realización de la proyecto se utilizó un lector de proximidad), un Interfaz, por lo cual mostrar el código Wiegand en Microcontrolador PIC encargado de la conversión de pantalla es suficiente. protocolos y el Programa servidor que se encuentra en ejecución en la PC destino del código. V-CIRCUITO IMPLEMENTADO La Interfaz Wiegand 26/Ethernet fue desarrollada en base al microcontrolador PIC 18F97J60. La elección del mismo radica en el hecho de que cumple con las condiciones necesarias para el desarrollo de este Figura 2. Esquema proyecto, permitiendo además enviar y recibir datos a través de indispensable una red para Ethernet. lograr Este la recurso es comunicación Cliente/Servidor entre la Interfaz Wiegand 26/Ethernet y Gracián Martín Página II Interfaz Wiegand 26/Ethernet Facultad de Ingeniería – UNMDP la PC o la red. La Figura 4 presenta el circuito 3. Comunicación Cliente/Servidor implementado. 4. Comunicación entre la página web y la Interfaz Entre las partes constituyentes de este esquema se 5. La aplicación principal distinguen: el circuito de Reset, un switch para forzar el borrado de memoria, el reloj principal comandado por La Pila TCP/IP de Microchip, como se describió un cristal de 25MHz, las entradas/salidas y el conector anteriormente, es la encargada de manejar el flujo de RJ-45. datos Ethernet. En este proyecto la pila se encarga de brindar servicios a la página web del micro y a la LED’s de control LED V conexión Cliente/Servidor. Esta conexión es generada al +5v 1K Entradas 1K +5v finalizarse la adquisición del código Wiegand 26. Cada LED R RB4 RB6 DATA1 vez que se detecte un cambio en los pines RB4 o RB5 del 1K 1K RB5 RB7 DATA0 microcontrolador se dispara la Interrupción por arribo +3,3v de fichada, de esta forma se realiza la adquisición del PIC18F97J60 Borrado de memoria 10K 0,1uf RJ-45 +3,3v 470 +3,3v 49,9 RB4 Reset por cada identificación que se realice. El primer y último 49,9 RB5 RB6 4,7K 0,1uf 49,9 49,9 1K 0,1uf +3,3v 180 1M 180 0,1uf RB7 +3,3v 33pf 0,1uf 25MHz código. Como son 26 bits los que forman el código Wiegand 26, la interrupción se va a disparar 26 veces 0,1uf +3,3v 33pf bit se descartan, ya que son bits de paridad. Al detectarse el número de interrupción número 26, el código adquirido se transforma en un string, para luego ser enviado a través de una conexión TCP a la PC +3,3v destino. Dicha conexión es del tipo Cliente/Servidor, donde el cliente es la Interfaz y el servidor la PC destino. Figura 4. Circuito implementado A partir de un ciclo cerrado de programa se estarán El lector utilizado para este proyecto fue un lector de realizando tareas requeridas por la pila TCP/IP, como proximidad ID-20, por ser de tamaño reducido y de un puede ser el mantenimiento de la página web. Este será valor económico. Las salidas DATA 0 y DATA 1 de éste el medio por el cual se pueda configurar a la Interfaz se conectan a través de transistores al puerto B del Wiegand 26/Ethernet. La comunicación entre ambas se microcontrolador. realiza por mensajes HTTP. El programa encargado de la Además se acoplan dos LED’s al puerto B del micro para Comunicación entre la página web y la Interfaz indicar el estado de la Interfaz. detecta modificaciones realizadas en los parámetros de El conector hembra RJ-45 se conecta a las salidas del la página web y actúa en consecuencia. Un caso es, microcontrolador utilizadas para este fin. cuando se modifica la dirección IP de la Interfaz. Desde la página web se envía un formulario con esos datos y el VI-PROGRAMA programa los identifica y cambia el valor de IP de la El programa principal que se almacena en la Memoria de Interfaz Wiegand 26/Ethernet. Programa del microcontrolador, que es el que desarrolla La aplicación principal es la encargada de realizar las operaciones descriptas, fue escrito en lenguaje C, por actividades específicas de la Interfaz y distribuir los ser este el lenguaje en que se encuentra realizada la pila recursos del procesador a las distintas capas de la pila TCP/IP de Microchip. Además, el lenguaje C es más TCP/IP. Las tareas de este programa son: intuitivo y fácilmente migrable a otros microcontroladores. Almacenar datos en ROM El software utilizado para el desarrollo del programa fue Interactuar con los LED’s de control el MPLAB y para la compilación, el C18, ambos de Formular el código Wiegand Microchip. Para grabar los programas al microcontrolador se utilizó como plataforma el Pickit 2 y como medio físico Los datos almacenados en ROM son los modificados por para la grabación, el módulo Pickit 2. En la bibliografía se intermedio de la página web. La manera de realizar esta citan vínculos donde el lector puede obtener más grabación es a través de una serie de instrucciones en información sobre estas herramientas. assembler, descripta en el datashet del microcontrolador. Con referencia al programa en sí, el mismo fue Los LED’s de control, son los encargados de manifestar diagramado en una estructura donde se distinguen cinco el estado de la Interfaz; como es un estado de partes básicas: desconexión del cable de red, una imposibilidad de conexión con la PC destino o el procesamiento de los 1. Pila TCP/IP de Microchip datos recibidos por el lector. 2. Interrupción por arribo de fichada Gracián Martín Página III Interfaz Wiegand 26/Ethernet Facultad de Ingeniería – UNMDP El código Wiegand enviado a la PC destino consta de 24 bits, pero al momento de la finalización de la adquisición del código se poseen tres variables de 8 bits cada una. La razón de esto es por la necesidad de optimizar la adquisición de los datos, ya que de esta forma el código ejecutado por cada interrupción es menor. Por lo tanto [8]. MPLAB IDE. http://ww1.microchip.com/downloads/en/DeviceDoc/515 19B.pdf [9]. HTML. http://gias720.dis.ulpgc.es/Gias/Cursos/Tutorial_html/ind ice.htm se debe formular una variable de 24 bits a partir de tres de 8 bits, esta tarea es desarrollada en la aplicación principal. VII-CONCLUSIONES Un sistema de control de personal como de control de acceso son indispensables en cualquier empresa. La necesidad de obtener los mejores resultados hace que los mismos se encuentren en permanente evolución. Se ha trabajado en la disminución del fraude y además en la necesidad de concentrar la información para su más eficiente administración. Hoy Ethernet nos permite esa posibilidad. Por estos motivos el autor plantea la realización de una Interfaz Wiegand 26/Ethernet, ya que ésta permite la utilización de distintos dispositivos de lectura con salida Wiegand 26. Los lectores utilizados siempre serán más económicos que un reloj de control de personal o de acceso, pero las utilidades de la Interfaz Wiegand 26/Ethernet pueden ser otras. Este proyecto no solo cuenta con las utilidades planteadas sino dispone de muchas más, de acuerdo a lo que el cliente pueda requerir. Esto es así, pues el entorno programable del microcontrolador, como la página web y el programa servidor son fácilmente modificables para una aplicación particular. Las posibilidades de mejorar este sistema son muy amplias. Algunas de ellas van desde la utilización de este dispositivo como un control de personal o de acceso con la posibilidad de realizar un almacenamiento previo de la información en una memoria antes de enviarla al ordenador; hasta la detección de presencia de personas por intermedio de un medio biométrico con salida Wiegand 26. Otras mejoras pueden sucederse a partir de las necesidades específicas de una aplicación en particular. VIII-BIBLIOGRAFÍA [1]. Microcontroladores PIC. www.microchip.com [2]. Lenguajes de programación de Microcontroladores PIC. http://www.todopic.com.ar [3]. Curso de C++. http://www.conclase.net/c/curso/index.php [4]. Microchip TCP/IP Stack Help. Ayuda incluida en la pila TCP/IP de Microchip [5]. Wiegand 26. http://www.ucontrol.com.ar [6]. Visual Basic. http://www.lawebdelprogramador.com [7]. Control Winsock. http://www.programatium.com Gracián Martín Página IV