249
UNIVERSIDAD POLITÉCNICA SALESIANA Sede Guayaquil FACULTAD DE INGENIERÍAS CARRERA: Ingeniería Electrónica Proyecto Final previa a la obtención del Título de: Ingeniero en Electrónica TEMA: Aplicación de Lenguaje C para microcontroladores PIC y Visual C# en el desarrollo de un Sistema de Control de Acceso Peatonal Autores: Eduardo Mendoza Merchán Luis Chacón Buñay Director: Ing. Luís Córdova Rivadeneira Guayaquil, 30 de Abril del 2007

Ups gt000025

Embed Size (px)

DESCRIPTION

Sistema de acceso de control peatonal. Programado en Visual C#

Citation preview

  • 1. UNIVERSIDAD POLITCNICA SALESIANA Sede Guayaquil FACULTAD DE INGENIERAS CARRERA: Ingeniera Electrnica Proyecto Final previa a la obtencin del Ttulo de: Ingeniero en Electrnica TEMA: Aplicacin de Lenguaje C para microcontroladores PIC y Visual C# en el desarrollo de un Sistema de Control de Acceso Peatonal Autores: Eduardo Mendoza Merchn Luis Chacn Buay Director: Ing. Lus Crdova Rivadeneira Guayaquil, 30 de Abril del 2007

2. A U T O R A Las ideas y contenidos expuestos en el presente proyecto, son de exclusiva responsabilidad de los autores. f....................................................... Eduardo Vicente Mendoza Merchn f....................................................... Lus Alonso Chacn Buay 3. C E R T I F I C O : Haber revisado minuciosamente el Proyecto Final de Titulacin, De los Sres. Eduardo Mendoza Merchn, y Lus Chacn Buay, que se ajusta a las normas establecidas por la Universidad Politcnica Salesiana Sede Guayaquil, por tanto, autorizo su presentacin para los fines legales pertinentes. . Ing. Lus Crdova Rivadeneira DIRECTOR DEL PROYECTO Guayaquil, 30 de Abril del 2007 4. ACTA DE CESIN DE DERECHOS DEL PROYECTO FINAL Conste por el presente documento la cesin de los derechos del Proyecto Final de Titulacin, de conformidad con las siguientes clusulas: PRIMERA.- El ing. Lus Crdova R. por sus propios derechos, en calidad de Director de Proyecto Final, Eduardo Mendoza M. y Lus Chacn B., por sus propios derechos, en calidad de autores de Proyecto Final. SEGUNDA.- UNO.- El Sr. Eduardo Mendoza M. y Lus Chacn B., realizaron El Proyecto Final titulado Aplicacin de Lenguaje C para microcontroladores PIC y Visual C# en el desarrollo de un Sistema de Control de Acceso Peatonal, para optar por el Ttulo de Ingeniero en Electrnica, especialidad Sistemas Industriales en la Universidad Politcnica Salesiana Sede Guayaquil. DOS.- Es poltica de la Universidad que el Proyecto Final se apliquen y materialicen en beneficio de la comunidad. TERCERA.- Los comparecientes Ing. Lus Crdova R., en calidad de Director de Proyecto Final, los Sres. Eduardo Mendoza M. y Lus Chacn B., como autores, por medio del presente instrumento, tiene a bien ceder en forma gratuita sus derechos en el Proyecto Final titulado Aplicacin de Lenguaje C para microcontroladores PIC y Visual C# en el desarrollo de un Sistema de Control de Acceso Peatonal, a favor de la Universidad Politcnica Salesiana: y, conceden autorizacin para que la Universidad pueda utilizar el proyecto en su beneficio y/o de la comunidad, sin reserva alguna. CUARTA.- Aceptacin.- Las partes declaran que aceptan expresamente todo lo estipulado en la presente cesin de derecho. Para constancia suscriben la presente cesin de derechos, en la ciudad de Guayaquil, a los treinta das de mes de Abril del ao dos mil siete. ---------------------------------------- Ing. Lus Crdova Rivadeneira DIRECTOR DE PROYECTO FINAL -------------------------------------- ------------------------------------- Eduardo Mendoza Merchn Lus Chacn Buay AUTOR AUTOR 5. D E D I C A T O R I A Este trabajo est dedicado a mis padres, por quienes decid aprovechar esta valiosa oportunidad de superacin personal y profesional, a mi hermano Ren, que me a brindado todo su apoyo moral, y econmico sin los cuales no hubiese podido culminar mi carrera, y principalmente a Dios que me dado la sabidura necesaria para la culminacin de este importante proyecto, de manera especial a todas y cada una de las personas que me apoyaron en su momento. Eduardo Este trabajo dedico con cario a Dios y a mis padres quines me han apoyado para alcanzar una de mis metas anheladas, y as poder servir mejor a quines el Seor me confe. a mis sobrinos por abrir un nuevo camino para esperarlos junto a mi familia querida, a la Fuerza Area Ecuatoriana que me apoyo con el trabajo. En fin a todos que hoy no recuerdo y fueron una inspiracin en su momento, gracias a la vida por permitirme crecer, espero devolver de alguna manera esta alegra. Lus. 6. A G R A D E C I M I E N T O A la Universidad Politcnica Salesiana sede Guayaquil, que nos permiti formarnos como profesionales, crecer como personas, y obtener un Ttulo Acadmico. De manera muy especial al Ingeniero Lus Crdova, por su total colaboracin en este trabajo, y al Ing. Ral lvarez G. que gracias a su intervencin se logr una exitosa culminacin. Adems nuestra gratitud sincera para aquellas personas que de una u otra manera ayudaron en el desarrollo del presente trabajo. Eduardo Mendoza M. Lus Chacn B. 7. CONTENIDO AUTORA CERTIFICACIN ACTA DE CESIN DE DERECHOS DEDICATORIA AGRADECIMIENTO NDICE GENERAL NDICE DE FIGURAS NDICE DE TABLAS RESUMEN OBJETIVOS JUSTIFICACIN METODOLOGA INTRODUCCIN 1.- INTRODUCCIN A LOS SISTEMAS DE CONTROL DE ACCESO 2.- MICROCONTROLADORES PIC DE GAMA MEDIA. 3.- LENGUAJE ENSAMBLADOR, LENGUAJE C PARA PIC Y C#. 4.- DESARROLLO DEL SISTEMA DE CONTROL DE ACCESO. 5.- ANLISIS DE COSTOS. 6.- CONCLUSIONES Y RECOMENDACIONES. 7.- BIBLIOGRAFA 8.- ANEXOS 9.- VOCABULARIO TCNICO 8. NDICE GENERAL Autora I Certificacin II Acta de sesin de derechos III Dedicatoria IV Agradecimiento V Contenido VI i.- Resumen 1 ii.- Objetivos 3 iii.- Justificacin 3 vi.- Metodologa 4 v.- Introduccin 5 1.- CAPTULO I: Sistemas de control de acceso 1.1.- Antecedentes: 7 1.2.- Nociones del Control de Acceso Discrecional. 8 1.2.1.- Autorizacin Positiva y Negativa. 8 1.2.2.- Autorizacin Fuerte y Dbil. 6 1.2.3.- Autorizaciones Explcitas e Implcitas 9 1.2.4.- Autorizaciones basadas en el contenido 9 1.2.5.- Control de Acceso Obligatorio 9 1.2.6.- Control de Acceso basado en Roles 10 1.2.7.- Control de Acceso basado en Restricciones 10 1.3.- Anlisis general de los sistemas de control de acceso. 11 1.3.1.- El primer mecanismo 12 1.3.2.- El segundo mecanismo 12 1.3.3.- El tercer mecanismo 12 1.3.4.- El cuarto mecanismo 13 1.4.- Mecanismos de seguridad utilizados en los sistemas de control de acceso 14 9. 1.4.1.- Control de Acceso basadas en teclados y bandas magnticas 14 1.4.2.- Sistemas de Control de Acceso basados en Tarjetas Inteligentes. 16 1.4.3.- Etiquetas y Llaveros Inteligentes 18 1.4.4.- Sistemas de control de acceso basados en huellas dactilares. 19 1.4.4.1.- La identificacin biomtrica 19 a) Falsa aceptacin 21 b) Falso rechazo 21 1.4.5.- Lectores subcutneos de huellas dactilares 22 i.- Funcionamiento: 23 1.4.6.- Otros controles de acceso 24 1.5.- Cerraduras Especiales 25 1.5.1.- Cerradura electromagntica 26 1.5.2.- Cerradura electromecnica (Multipla 2000) 26 1.5.3.- Cerradura electrnica Rench 27 1.5.4.- Cerradura electrnica para mltiples aplicaciones 28 2.- CAPTULO II Microcontroladores PIC de gama media. 2.1.- Introduccin: 29 2.2.- El microcontrolador PIC 30 2.2.1.- Juego de instrucciones y entorno de programacin 31 2.2.2.- Programacin del PIC 31 2.2.2.- Tamao de palabra 33 2.2.3.- Caractersticas generales 33 2.2.4.- Variaciones del PIC 34 a).- PICs modernos 34 b).- Clones del PIC 34 c).- PICs WrelesS 34 e).- PICs para procesado de seal (dsPICs) 35 2.2.4.- PICs ms comnmente usados 35 2.2.5.- Familia de la serie PIC18 35 2.2.5.- PICs en Internet 37 2.3.- Arquitectura interna de un microcontrolador PIC 38 10. 2.3.1.- El procesador 38 2.2.2. Memoria de programa 40 i) ROM con mscara 41 ii) EPROM 42 iii) OTP (Programable una vez) 42 iv) EEPROM 42 v) FLASH 43 2.2.3. Memoria de datos 43 2.2.4. Lneas de E/S para los controladores de perifricos 44 2.2.5. Recursos auxiliares 45 2.4.-Descripcin del PIC 16F877 46 2.4.1.- Caractersticas del PIC 16F877 46 2.4.2- Descripcin de los puertos 48 3.- CAPTULO III Lenguaje Ensamblador y Lenguaje C 3.1.- El lenguaje Ensamblador 54 3.1.1.- Programa fuente en Lenguaje Ensamblador: 56 3.1.2.- Conjunto de instrucciones 57 3.1.3.- Herramientas de desarrollo. El MPLAB. 58 3.2.- El Lenguaje Basic 59 3.2.1.- Ventajas e inconvenientes 59 3.3.- Lenguaje C 61 3.3.1.- Historia del Lenguaje C (C, C++, C#) 61 3.3.2.- Caractersticas y desventajas de Leguaje C 64 3.4.- El Compilador de C para PIC 65 3.4.1 Introduccin 65 3.4.2.- La programacin en PIC C 67 3.4.3.-Anlisis de un problema sencillo 67 3.4.4.- Estructura de un programa en C 68 3.4.5.- Libreras y funciones 69 3.4.5.1.- la funcin main() 69 3.4.5.2.- Archivos de cabecera (#include) 70 11. 3.4.5.3.- funcin printf 70 3.4.5.4.- variables 72 3.4.5.5.- Constantes: 74 3.4.5.6.- Comentarios 74 3.4.5.7.- Funciones 75 3.4.5.8.- Palabras reservadas de C 76 3.4.5.9.- Directiva #asm y #endasm 77 3.4.5.10.- Manejo de la memoria EEPROM interna 77 3.4.5.11- Reloj del sistema #USE DELAY (CLOCK) 78 3.4.5.12.- librera LCD 78 3.4.5.13.- Librera KBD 79 3.4.5.14.- Interrupciones. (#INT_xxx) 80 3.4.5.15.- Bus de datos I2C 81 3.4.5.16.- Interfaz de comunicaciones RS-232 83 3.4.5.17.- Convertidor anlogo a digital 85 3.4.5.18.- Generacin de PWM 88 4.- CAPTULO IV Anlisis y desarrollo del Sistema de Control de Acceso. 4.1 Descripcin de Sistema 91 4.2.- Seleccin de dispositivos y lenguajes de programacin 96 4.2.1.- Seleccin del microcontrolador 97 4.2.2.- Seleccin del lenguaje de programacin del microcontrolador 101 4.2.3.- Eleccin del software y hardware para el grabado del PIC . 105 4.2.4.- Seleccin del Lenguaje de programacin del ordenador 107 4.3.- Anlisis de los programas y libreras de los microcontroladores PIC. 107 4.3.1.- Programa microcontrolador esclavo 108 4.3.1.1.- La librera pantalla. 109 i).- Funcin beep() 109 ii).- Funcin alarma() 109 iii).- Funcin pantalla() 110 4.3.1.2.- La librera selapart.h 112 4.3.1.3.- La librera selclave.h 116 12. 4.3.1.4.- programa principal esclavo 122 4.3.2.- Programa microcontrolador maestro 129 4.3.3.- Programa ordenador C# y SQL 141 4.3.3.1.- Seleccin del lenguaje C# 142 4.3.3.2.- Seleccin de la base datos 142 4.3.3.3.- Anlisis del cdigo fuente proporcionado en C# 143 4.3.3.4.- Anlisis de librera wcltextboxserial.dll 145 4.3.3.5.- Pasos para la comunicacin serial en C# 146 4.3.3.6.- Pasos para la conexin de c# con sql 148 4.3.3.7.- Pasos para abrir un archivo wav 149 4.3.3.8.- Programa principal de C# 150 i) Men abrir puertas desde ordenador 150 ii) Men mantenimiento de la base de datos 152 iii) Men cambiar claves en microcontrolador 153 iv) Men cambiar claves en el ordenador 155 4.4.- Anlisis del circuito elctrico del sistema de control de acceso 156 4.4.1.- Microcontrolador maestro 156 4.4.2.- Microcontroladores esclavos 159 4.4.3.- Lista de elementos 161 4.4.4.- Consumo de energa 163 4.5.- Diseo de las placas de circuito impreso 165 CAPITULO V Anlisis de de costos 5.1.- Preliminares 173 5.2.- Determinacin del costo del proyecto 173 5.2.1.- Clculo del costo de mano de obra 173 5.2.2.- Clculo del Costo de elementos y materiales 175 5.2.3.- Clculo del Costo de fabricacin de tarjetas 176 5.2.4.- Clculo del costo por uso del ordenador 178 5.2.5.- Clculo del costo neto del sistema de control de acceso 178 5.2.6.- Costo final del sistema 179 5.3.- Anlisis de los costos en funcin del nmero de unidades fabricadas 179 13. 5.4.- Anlisis de sistemas anlogos al control de acceso peatonal 183 5.4.1.- Control de acceso intemperie 183 5.4.2.- Teclado de combinacin para puertas 185 5.4.3.- Control de acceso AC-903 186 6.- Conclusiones y Recomendaciones 6.1.- Conclusiones 187 6.2.- Recomendaciones 189 7.- Bibliografa 7.1.- Libros 191 7.2.- Direcciones electrnicas 190 8. Anexos A) El Bus I2C (Inter Integrated Circuit) 194 B) Interfaz RS-232 199 C) El Circuito Integrado MAX-232 206 D) Migracin del PIC16F87x a PIC16F87xA 208 E.- Manual de Usuario 216 9.- Vocabulario Tcnico 9.1.- Glosario 222 9.2.- Vocabulario 227 NDICE DE FIGURAS: Captulo I 1.1. Distintos mecanismos de control de acceso 7 1.2. Terminologa utilizada en relacin con seguridad y control de acceso 11 14. 1.3. Cuatro mecanismos complementarios de un sistema de control de acceso 12 1.4. Tecnologas que apoyan el mecanismo de autenticacin 14 1.5. a) Tarjeta chip, b) tarjeta magntica, c) control de acceso con teclado 15 1.6. Lector de tarjeta chip 16 1.7. Control de acceso con tarjeta inteligente 16 1.8. Tarjetas Inteligentes 17 1.9. Llavero y tarjeta inteligente. 18 1.10 Dedo pulgar y su huella dactilar 19 1.11 Lector de huellas dactilares 22 1.12 Lectores subcutneos de huellas dactilares 23 1.13 Lector de huellas dactilares T4210 23 1.14 Detalle de la capa subcutnea de la piel 24 1.15 Reflexiones en lector subcutneo de huellas dactilares 25 1.16 Controles de acceso peatonal y vehicular 26 1.15 Cerradura electromagntica. 26 1.16 Cerradura mltipla 2000 26 1.17 Cerradura electrnica Rench 27 1.18 Cerradura para mltiples aplicaciones 28 Captulo II 2.1 Microcontrolador Pic 16F877 29 2.2 Tarjeta con microcontrolador PIC 16F84 30 2.3 Programador PICSTART 32 2.4 Microcontroladores de la familia PIC18 36 2.5 Arquitectura de Von Neumann 39 2.6 Arquitectura Harvard 39 2.7 Mapa de la Pila y memoria de programa del PIC 16F877A 40 2.8 Diagrama de bloques General De un PIC de gama media 45 2.9 Diagrama de Bloques del Microcontrolador PIC 16F877 49 2.10 Diagrama de Bloques del Microcontrolador PIC 16F877 53 2.11 Dimensiones fsicas del Microcontrolador PIC 16F877 53 15. Captulo III 3.1 Entorno de Desarrollo Integrado MPLAB 58 3.2 Ejemplo de programa en Leguaje Basic 60 3.3 Diagrama de flujo del programa media 68 Captulo IV 4.1 Esquema general del sistema de Control de Acceso 91 4.2 Disposicin fsica de los componentes del sistema 92 4.3 Pantalla del mdulo LCD para ingreso de nmero de apartamento 94 4.4 Pantalla del mdulo LCD para ingreso de clave 95 4.5 Pantalla del mdulo LCD con mensaje de puerta abierta 95 4.6 Pantallas del mdulo LCD si la clave ingresada es incorrecta 95 4.7 Pantalla del mdulo LCD que india que la alarma ha sido activada 95 4.8 Microcontrolador fabricado por Atmel 100 4.9 Entorno de desarrollo de CCS C Compiler ver 4.017 104 4.10 Entorno de programacin Ic-prog ver 1.05D 106 4.11 Programador utilizado en el proyecto de control de acceso 106 4.12 Diagrama de bloques del sistema de control de acceso peatonal 108 4.13 Circuito de conexin del altavoz del sistema 110 4.14 Foto del altavoz usado en el proyecto 110 4.15 Simulacin de los mensajes mostrados por el LCD 111 4.16 Foto del mdulo LCD usado en el proyecto 111 4.17 Conexin de los pines del mdulo LCD 112 4.18 Diagrama de flujo de la librera sel-apart 113 4.19 Diagrama de flujo de la librera selclave 117 4.20 Diagrama de flujo del programa principal de los esclavos 122 4.21 Diagrama de flujo para la interrupcin por I2C para los esclavos 123 4.22 Diagrama de flujo para la interrupcin por desbordamiento del timer1 124 4.23 Diagrama de flujo del programa principal maestro 130 4.24 Diagrama de flujo de interrupcin RS-232 131 4.25 Diagrama de flujo de interrupcin por desbordamiento de timer0 132 4.26 Propiedades de textBox 145 16. 4.27 Propiedades de textBox para la dll 146 4.28 Seleccin del men abrir puertas 151 4.29 Diagrama de flujo del programa principal 151 4.30 Recuadro para abrir puertas desde el ordenador 151 4.31 Diagrama de flujo para abrir puerta 152 4.32 Seleccin del men mantenimiento 152 4.33 Men mantenimiento 153 4.34 Diagrama de flujo del programa mantenimiento de base de datos 153 4.35 Seleccin del men cambiar clave pic 154 4.36 Diagrama de flujo del programa cambiar clave pic 154 4.37 Seleccin del men cambiar clave ordenador 155 4.38 Diagrama de flujo del programa cambiar clave ordenador 155 4.39 Diagrama de pines del PIC 16f877a 156 4.40 Diagrama de conexin del masterClear 157 4.41 Diagrama de microcontrolador maestro y MAX 232 158 4.42 Diagrama de microcontrolador Esclavo 160 4.43 Orden de los pines del teclado utilizado 161 4.44 Diagrama del Sistema de control de Acceso 162 4.45 Placas finalizadas con sus respectivos fotolitos 165 4.46 Vista superior de la insoladora con placa finalizada. 166 4.47 Seleccin del conector DB9 para PCB 167 4.48 Diseo final de la placa de circuito Maestro 167 4.49 Diseo final de la placa de circuito Esclavo 168 4.50 Diseo final de la placa de circuito Esclavo 168 4.51 Vista de la placa maestro desde las pistas 169 4.52 Placa terminada del microcontrolador maestro 169 4.53 Placa terminada del microcontrolador esclavo 2 170 4.54 Tarjeta esclavo con su LCD, teclado y parlante. 170 4.55 Sistema de control de acceso en fase de prueba. 171 4.56 Detalle del montaje del LCD, Teclado y Parlante 171 4.56 Prueba final de sistema de control de acceso. 172 17. Captulo V 5.1 Relacin costos fijos costos variables para una unidad 180 5.2 Relacin costos fijos costos variables para producir 10 sistemas 181 5.3 Relacin costos fijos costos variables para producir 100 sistemas 182 5.4 Relacin costos fijos costos variables de los tres modelos 182 5.5 Variacin de los precios debido al incremento de la produccin 183 Teclado de acceso 2 salidas s170132 184 Control de acceso por teclado s170130 185 Control de acceso AC-903 186 Anexos a.1 Diagrama general del Bus I2C 194 a.2 Microcontrolador comunicado por medio del Bus I2C 195 a.3 Formas de onda de SDA y SCL en la comunicacin I2C 196 b.1 Estructura de una caracter que se trasmite a travs de RS-232 204 c.1 Disposicin fsica de las patillas en el MAX232 206 c.2 Circuito bsico con el MAX232 206 c.3 Foto del circuito integrado MAX232 207 e.1 Pantalla principal del programa Control Acceso para PC 216 e.2 Mens en el panel principal 217 e.3 Men de mantenimiento 217 e.4 Submen de mantenimiento insertar 218 e.5 Submen de mantenimiento modificar 218 e.6 Submen de mantenimiento eliminar 218 e.7 Submen de mantenimiento imprimir 219 e.8 Submen de cambio de clave 219 e.9 Mensaje de clave incorrecta 219 e.10 Mensaje de departamento incorrecta 219 e.11 Mensaje de clave correcta 220 e.12 Recuadro para ingreso de nueva clave 220 e.13 Recuadro para abrir puerta 220 e.15 Mensaje para ingreso de clave 221 18. e.16 Mensaje de presencia en puerta 1 221 e.17 Mensaje de ingreso de persona 221 e.18 Mensaje de alarma en puerta 2 221 NDICE DE TABLAS: Captulo II 2.1 Caractersticas del PIC 16F877 47 2.2 Descripcin de los pines del PIC 16F877 50 Captulo III 3.1 Resumen de instrucciones del lenguaje ensamblador 57 3.2 Formatos de salida para la funcin printf() 71 3.3 Tipos de datos en C 73 3.4 Opciones del bus I2C 82 3.5 Opciones de interfaz RS-232 84 Captulo IV 4.1 Asignacin de pines del LCD al microcontrolador 113 4.2 Nmero de apartamento y posiciones de memoria 116 4.3 Consumo de energa por elementos 164 4.4 Consumo de energa por circuito 164 Captulo V 5.1 Costo de mano de obra 174 5.2 Costo de materiales 175 5.3 Costo de elaboracin de tarjetas 176 5.4 Costo por uso de ordenador 178 5.5 Costo de elaboracin de tarjetas 180 5.6 Costo por unidad para producir 10 sistemas 181 19. 5.7 Costo por unidad para producir 1000 sistemas 181 Anexos B1 Lista de seales RS-232 199 B2 Asignacin de pines segn EIA y CCITT 201 B3 Niveles de voltaje para 1 y 0 lgico 202 20. INTRODUCCIN Desde sus inicios, el ser humano y la sociedad se ha visto en la necesidad de restringir o controlar el acceso a ciertas reas. Esta necesidad es motivada inicialmente por temor a que personas inescrupulosas o delincuentes puedan robar y/o extraer bienes materiales o informacin valiosa. Vemos cmo los castillos y fortalezas fueron construidos de tal forma que sus principales vas de acceso eran diseadas con puentes que se elevaban o recogan mediante mecanismos manuales, y muchas otras formas, de tal manera que la persona que intentaba acceder a estas edificaciones adems de identificarse con su nombre, deban hacerle un reconocimiento visual de las caractersticas de ella/l o de un nico elemento, como por ejemplo un anillo. En la actualidad, tecnolgicamente han cambiado muchas cosas, pero en el fondo persisten las razones y motivos para mantener mecanismos de control de acceso sobre diferentes reas que se desea proteger. Los mtodos para procesar la informacin y los mecanismos de validacin han sufrido modificaciones sustanciales y constantes. Hoy en da tenemos controles biomtricos, magnticos, visuales, etc., que acoplados a los microcontroladores y a los ordenadores, generan sistemas muy efectivos para el control de acceso. Dentro de estos procesos, tienen un rol muy importante los microcontrolador, que son circuitos integrados programables que contiene todos los componentes de un computador personal, aunque de limitadas prestaciones. La cantidad de productos electrnicos que funcionan en base a uno o varios de estos microcontroladores aumenta de forma exponencial. No es aventurado pronosticar que en el siglo XXI habr pocos aparatos que carezcan de microcontroladores. La programacin de los microcontroladores se ha realizado desde su invencin por medio de lenguaje Ensamblador, por lo que en la actualidad la mayora de programadores lo utilizan, encontrndose gran cantidad de informacin tanto en textos como en el Internet. Desde hace unos aos atrs se han venido desarrollando nuevas plataformas de programacin basadas en lenguajes tradicionales de alto nivel, tales como Pascal, Basic, C, entre los principales. El objetivo, es hacer que la programacin de los microcontroladores se oriente a solucionar el problema, dejando a un lado la laboriosa configuracin de registros que se realiza en los lenguajes ensambladores. La programacin en estos lenguajes es de hecho ms sencilla, 21. debido a que sus palabras reservadas y estructuras son similares al lenguaje natural en idioma ingles, lo que hace fcil recordarlas y el nombre de estas nos sugiere su aplicacin de manera intuitiva. De igual forma su estructura y bucles son simples y de fcil aplicacin, muy similares a las utilizadas en los lenguajes de computadoras. La programacin en lenguaje C, es una de las ms populares, debido a la trayectoria como lenguaje de computadora, entre los compiladores mas conocidos se destacan Hi Tech, Mikro C, Pic C de la Ccs Inc entre los ms conocidos en Internet. Pic C es uno de los compiladores de lenguaje C que ms usuarios ha acaparado, debido principalmente a que utiliza C ANSI, la sencillez con que gestiona las interrupciones, insercin de cdigo en Ensamblador, la gran cantidad de libreras con que viene incorporado su compilador y otras funciones que se ver mas adelante con detalle. En el presente proyecto, el control de Acceso se basa principalmente en el uso de microcontroladores y ordenadores, gestionados a travs del lenguaje C, en sus formas Pic C compiler de la Ccs Inc para los microcontroladores PIC y Visual C# 2005, de Microsoft Corporation para el ordenador. Una de las caractersticas principales del sistema desarrollado, esta basado en las comunicaciones entre dispositivos, para lo cual se ha implementado el Bus I2C para la comunicacin entre microcontroladores y la interfaz de comunicacin RS-232 para la comunicacin entre Microcontrolador y PC. La elaboracin del presente trabajo es la recopilacin de un cmulo de conocimientos tecnolgicos muy importantes, a fin de que su contenido sea aprovechado por estudiantes de nuestra especialidad, o personas que se interesen o requieran de los conocimientos recopilados en este texto. Eduardo Mendoza Merchn Lus Chacn Buay 22. CAPTULO I SISTEMAS DE CONTROL DE ACCESO 1.1.- Antecedentes: Los controles de acceso son sistemas muy antiguos, que nacieron por la necesidad de proteger y controlar el acceso a ciertas reas y lugares. Esta proteccin se ha visto motivada inicialmente por temor que personas ajenas al entorno, delincuentes o enemigos puedan robar y/o extraer material valioso o informacin de acuerdo a criterios personales, sociales, comerciales, etc. Muchas obras majestuosas como por ejemplo palacios, bases militares, se caracterizaban por sus muy particulares mtodos de acceso, los cuales fueron construidos de tal forma que sus principales vas de acceso eran diseadas con puentes que se elevaban mediante mecanismos especiales, quedando as abajo un crculo de agua y caimanes que rodeaban dicho castillo o fortaleza. En tal sentido, el acceso a estas edificaciones no slo era posible suministrando un nombre. En efecto, las palabras claves (passwords), eran utilizadas por algunas personas para acceder al castillo, as como seas de reconocimiento visual, o algn objeto en particular, como por ejemplo un anillo o un sello. En la actualidad muchas cosas han cambiado, debido principalmente al incesante avance de la tecnologa, pero en el fondo persisten las razones y motivos para mantener mecanismos de control de acceso sobre reas e informacin que se desea proteger. Los mecanismos de validacin han sufrido modificaciones: hoy en da tenemos controles biomtricos, magnticos, visuales, etc. (ver figura 1.1). Figura 1.1 Distintos mecanismos de control de acceso 23. 1.2.- Nociones del Control de Acceso Discrecional. La estrategia de control de acceso est basada en la idea de que los sujetos acceden a los objetos en base a su identidad y a unas reglas de autorizacin, que indican para cada sujeto, las acciones que puede realizar sobre cada objeto del sistema. Con esta estrategia, si un usuario desea realizar una operacin sobre un objeto, se busca en el sistema una regla de autorizacin que le d permiso para realizar esa operacin sobre ese objeto, y si no se encuentra se le deniega el acceso. El motivo por el que a este mecanismo de control de acceso se le llama discrecional es porque el usuario puede otorgar la autorizacin de acceso a otros usuarios. La forma ms comn de administrar las autorizaciones es aplicando el concepto de propiedad, de forma que cada objeto pertenece a un propietario que es responsable de otorgar o revocar los derechos de acceso sobre los objetos. A continuacin se realiza un breve anlisis de las principales variantes de estas estrategias: 1.2.1.- Autorizacin Positiva y Negativa. Segn la autorizacin positiva, la existencia de la regla de autorizacin indica que se puede realizar el acceso, mientras que la no existencia de la misma prohbe el acceso. En cambio mediante la autorizacin negativa, el acceso se permite slo cuando no existe una regla de autorizacin negativa, mientras que la existencia de la regla prohbe el acceso. La principal diferencia es que en el caso de autorizacin positiva, si un sujeto no tiene autorizacin, en algn momento se puede producir una propagacin de privilegios de tal forma que otro sujeto le ceda el acceso, en cuyo caso estara burlando el control de acceso. Eso no puede suceder con el mecanismo de autorizacin negativa. 1.2.2.- Autorizacin Fuerte y Dbil. Autorizaciones fuertes, tanto positivas como negativas son aquellas que no pueden ser invalidadas, mientras que las dbiles s pueden ser invalidadas por otras 24. autorizaciones fuertes o dbiles, de acuerdo a unas reglas especficas. 1.2.3.- Autorizaciones Explcitas e Implcitas. Las autorizaciones implcitas son automticamente derivadas por el sistema desde el conjunto de autorizaciones explcitas, de acuerdo a un conjunto de reglas. Por ejemplo, una regla de derivacin puede ser usada para expresar que un sujeto puede acceder a un objeto dado slo si otro sujeto tiene un acceso explcito denegado. Existen diversas polticas de propagacin de autorizaciones dependiendo entre otras cosas del tipo de sujeto de que se trate. Por ejemplo, si se trata de roles que forman una jerarqua, al asignar una autorizacin positiva, sta se propagara hacia todos los roles superiores en la jerarqua, y si la autorizacin es negativa, se propagara hacia los roles inferiores en la jerarqua. En cambio, si se trata de grupos, la aproximacin ms utilizada consiste en la propagacin de la autorizacin, tanto si es positiva como si es negativa a todos los elementos del grupo. 1.2.4.- Autorizaciones basadas en el contenido. Condicionan el acceso a un objeto dado el contenido de uno o ms de sus componentes. Por ejemplo, restringir el acceso de datos de personas que cobre ms de 50 millones al ao. Las bases de datos que utilizan esta poltica de control de acceso son susceptibles de recibir ataques por parte de sujetos que aparentemente realicen un acceso correcto a los datos, pero que en realidad han recibido el permiso de acceso por parte de otro sujeto de forma fraudulenta. 1.2.5.- Control de Acceso Obligatorio. Consiste en la clasificacin de tanto los sujetos como los objetos en el sistema. Una clase de acceso es asignada a cada objeto y cada sujeto. Una clase de acceso es un elemento de un conjunto de clases parcialmente ordenadas. Mientras que la forma ms general de conjunto de clases de acceso es un conjunto de etiquetas, a veces se define como un conjunto formado por dos componentes, un nivel de 25. seguridad y un conjunto de categoras. Cada nivel de seguridad es un elemento de un conjunto jerrquicamente ordenado como alto secreto (TS), secreto (S), confidencial (C) y sin clasificar (U), donde TS > S > C > U. El conjunto de categoras es un subconjunto de un conjunto desordenado, donde los elementos pueden reflejar reas funcionales o diferentes competencias como por ejemplo finanzas, administracin, ventas y compras para sistemas comerciales. 1.2.6.- Control de Acceso basado en Roles. En RBAC (Role-Based Access Control), los permisos se asocian con roles, y a los usuarios se les hace miembros de los roles. De este modo los usuarios consiguen permisos. Esto simplifica considerablemente la gestin de permisos. Los roles representan a cada grupo funcional de las organizaciones, agrupando en cada uno de ellos a aquellos usuarios que realizan funciones y tienen responsabilidades similares. Por ejemplo, los roles en una entidad bancaria podran ser Cajero y Contable, donde cada uno de ellos tiene un conjunto de privilegios. Algunos de estos privilegios pueden ser como en este caso jerrquicos y compartidos. Mediante este simple mecanismo es muy sencillo llevar a cabo ciertas acciones, como por ejemplo, intercambiar a los usuarios de un rol a otro, o incluir nuevos permisos en los roles, o sustraer permisos en los roles, etc. 1.2.7.- Control de Acceso basado en Restricciones. Una tcnica de control de acceso mucho ms flexible que las anteriores, pero con poca experiencia en su utilizacin es la conocida como Control de Acceso Basado en Restricciones, donde las restricciones expresadas en un lenguaje formal son usadas para especificar asociaciones generales entre los usuarios y sus autorizaciones. Esta estrategia permite tener tanto restricciones estticas como dinmicas, por ejemplo considerando factores como las horas del da en las que estar vigente una autorizacin 26. 1.3.- Anlisis general de los sistemas de control de acceso. El presente captulo tiene por objeto analizar de forma general los distintos tipos de controles de acceso que existen en la actualidad y la diversidad de mecanismos que existen para verificar la identidad del usuario, su nivel de accesibilidad y dems complementos que han ido evolucionando de forma paralela al avance de la tecnologa, as como a los constantes cambios que sufren debido a los nuevos requerimientos y exigencias de las empresas y usuarios. En la actualidad, cada computador que se adquiere en una tienda, por lo general ya viene equipado con alguna forma o mecanismo de control de acceso el cual es provisto y configurado en el sistema operativo, como por ejemplo en Windows Xp se configura inicios de sesin para cada usuario, en el cual se puede optar por una clave cada vez que inicie su cuenta de usuario. Partiendo de esta base, siempre existir un esquema (framework) sugerido que mejore el nivel de seguridad que existe para un momento determinado, y que tiene un mnimo efecto sobre los costos y el esfuerzo de uso. Con el objeto de facilitar el entendimiento de los conceptos y terminologa a ser utilizadas en este captulo, en la figura 1.2 se muestra la relacin entre algunos de los trminos manejados. En este sentido, los servicios de seguridad podran incluir: integridad, confidencialidad, disponibilidad y control de acceso Figura 1.2. Terminologa utilizada en relacin con seguridad y control de acceso 27. En la medida que se ha avanzado en los conceptos de seguridad, se puede observar que nos vemos obligado a profundizar en trminos tecnolgicos. Es as como nuevas condiciones deben ser identificadas para poder establecer los mejores mecanismos de seguridad y de control de acceso a la informacin. En tal sentido, podemos reconocer que existen, al menos, cuatro (4) mecanismos complementarios de un sistema de control de acceso, a saber: (a) identificacin de usuario, (b) autenticacin de usuario, (c) la verificacin de la autenticacin, y (d) re-autenticacin. Tal como hemos mencionado anteriormente, existen al menos cuatro (4) diferentes mecanismos que pueden estar inmersos en un sistema de control de acceso (Ver figura 1.3). Figura 1.3. Cuatro mecanismos complementarios de un sistema de control de acceso 1.3.1.- El primer mecanismo de un sistema de control de acceso est diseado para identificar a un usuario que se encuentra registrado en un determinado sistema. Esto se realiza mediante un User ID. 1.3.2.- El segundo mecanismo de un sistema de control de acceso consiste de la autentificacin de un usuario, es decir, determinar que un usuario es quien dice ser. Esto se realiza por medio de algo que se conoce, representado bsicamente por: (a) una contrasea o clave de acceso (password), (b) nmero de identificacin personal (PIN), (c) entrada asociativa, en la que el sistema autentica al usuario mediante la secuencia de palabras o conceptos asociados que el sistema debe almacenar, y (d) respuesta desafiante, en la que el sistema proporciona una o varias preguntas que 28. slo el usuario identificado puede presumiblemente responder. Asimismo, este mecanismo se puede caracterizar por algo que el usuario posee, como por ejemplo: (a) tarjetas inteligentes, (b) tarjetas de crdito o dbito, (c) un token, (d) algn dato como la cdula de identidad o pasaporte, entre otros. 1.3.3.- El tercer mecanismo de un sistema de control de acceso est diseado debido a la debilidad inherente que tiene una contrasea o clave de acceso (password). Su propsito u objetivo es el probar la autenticidad del usuario mediante la utilizacin de, por ejemplo, algo que se es, pudiendo utilizar caractersticas inherentes al cuerpo del agente externo o usuario, a saber: (a) tono de voz, es decir, el reconocimiento de la voz, (b) las huellas dactilares, (c) patrones de la retina o iris del ojo, (d) el ADN, el reconocimiento de los surcos de los labios, (e) reconocimiento facial, entre otros. Este mecanismo se refiere a la verificacin de autenticacin. 1.3.4.- El cuarto mecanismo de un sistema de control de acceso contempla los procesos que aseguran que un usuario permanece autenticado, mediante la re- autenticacin. Esto se puede llevar a cabo mediante procesos automticos que se despiertan segn la permanencia del usuario que est interactuando con un determinado sistema. Cada uno de estos mecanismos esta apoyado por una tecnologa de seguridad, por ejemplo: palabras claves (passwords), los tokens inteligentes o de seguridad, certificados digitales, los dispositivos de reconocimiento de huellas digitales, palma de la mano, iris del ojo, etc. Estas tecnologas estn presentes en una gran variedad de productos de seguridad. La figura 1.4, muestra las diferentes tecnologas que apoyan el mecanismo de autenticacin de usuarios y su relacin con la complejidad de implantacin. 1.4.- Mecanismos de seguridad utilizados en los sistemas de control de acceso Existen una infinidad de tipos y modelos de control de acceso, que dependen del nivel de seguridad, la magnitud del campus que controlen, las tecnologas usadas, la integracin en red con ordenadores y bases de datos, etc. 29. Figura 1.4. Tecnologas que apoyan el mecanismo de autenticacin A continuacin se ha realizado un breve resumen de los sistemas de control de acceso, vistos desde el punto de vista de los mecanismos de seguridad. Control de Acceso basadas en: Teclados, bandas magnticas y Tarjetas Chip Tarjetas Inteligentes Etiquetas y Llaveros Inteligentes Lector de huellas dactilares o escner Lectores subcutneos de huellas dactilares Torniquetes, molinetes, puertas batientes 1.4.1.- Control de Acceso basadas en teclados, bandas magnticas, y Tarjetas Chip Existen una infinidad de modelos de sistemas de control de acceso, sean estos autnomos, o dependientes de un ordenador, los mas comunes en nuestro medio, y que de cierta forman han comenzado a ser desplazados en los pases desarrollados por las nuevas tecnologas son los sistemas basados en teclados, tarjetas con banda magnticas y tarjetas chip, Aunque no estn siendo desplazados del todo, puesto que en muchos modelos se complementan con otras tecnologas para generar sistemas mas eficaces. 30. Figura 1.5 a) Tarjeta chip, b) tarjeta magntica, c) control de acceso con teclado Cuando un control de acceso se basa en un teclado, en el microprocesador se almacenan usuarios, y cada uno de los cuales contiene una clave cambiable y que se almacena en alguna memoria generalmente de tipo eeprom, puede ser autnoma, es decir que funciona sin necesidad de estar interconectado a un ordenador o puede ser parte de un sistema de control de acceso. Las tarjetas magnticas contienen una banda magntica (llamada a veces magstripe como abreviacin de magnetic stripe) es toda aquella banda oscura presente en tarjetas de crdito, abonos de transporte pblico o carnets personales que est compuesta por partculas ferromagnticas embebidas en una matriz de resina (generalmente epoxi) y que almacenan cierta cantidad de informacin mediante una codificacin determinada que polariza dichas partculas. La banda magntica es grabada o leda mediante contacto fsico pasndola a travs de una cabeza lectora/escritora gracias al fenmeno de la induccin magntica. Estas tarjetas contrastan con la nueva generacin de tarjetas inteligentes que contienen un chip con contactos metlicos, o tarjetas sin contacto que usan un campo magntico o radiofrecuencia (RFID) para la lectura a una distancia media. Las tarjetas chip, muy usadas hoy en da en la telefona (tarjetas telefnicas), contiene en su interior un nmero de serie que es nico y que, adems, es imposible de modificar. Eso nos indica que la tarjeta adems de ser nico sobre todo el mundo es imposible de alterar. Entonces, se aprovecha eso para disear sistemas de seguridad capaz de leer la parte inicial de la tarjeta, comparar el nmero con los almacenados en la memoria E2PROM interna del circuito y permitir o impedir el acceso de la persona a determinado lugar o recinto. 31. De nada sirve que el sistema de lectura de la tarjeta explore profundamente en la memoria para garantizar que el cdigo es vlido si cualquiera con un martillo o destornillador puede quitar de su lugar el dispositivo lector y puentear los cables que accionan la apertura de la puerta o la traba. Para que esto no suceda el zcalo lector de la tarjeta debe estar montado por un lado y la circuitera por el otro, haciendo que si un malintencionado quita el lector no logre accionar el sistema puenteando cables. Figura 1.6 Lector de tarjeta chip 1.4.2.- Sistemas de Control de Acceso basados en Tarjetas Inteligentes. Los sistemas para el control de acceso basados Tarjetas Inteligentes permiten gestionar de forma sencilla la seguridad del acceso, ya sea para una puerta, o para un entorno de red de varios edificios. Tendr el control sobre quien tendr acceso a travs de cualquier puerta conectada, a cualquier hora del da. Las personas sin el nivel de seguridad suficiente no tendrn acceso a las zonas reservadas. Figura 1.7 Control de acceso con tarjeta inteligente Mediante la tecnologa de las tarjetas inteligentes, los lectores de tarjetas estn colocados fuera del alcance de la vista - No tendr que sacar la tarjeta de su cartera o bolso para utilizarla. Al contrario que los sistemas de banda magntica, las tarjetas 32. son ledas de forma automtica en el instante en que la presente. EL lector leer su tarjeta a travs de su cartera en de segundo. La mayora de las Tarjetas Inteligentes, utilizan la reconocida tecnologa para la lectura basada en Radio Frecuencia (RF). Esta proporciona una red de lectura consistente que no est afectada por la mayora de las condiciones externas. Figura 1.8 Tarjetas Inteligentes Cada lector de Tarjetas Inteligentes transmite un campo de frecuencia de 125 Khz. (campo electromagntico), el cual es recibido por la antena dentro de la tarjeta inteligente. El lector posee don bandas de lectura dentro de este campo; una banda interna y una externa, y estas son controladas y osciladas rpidamente mediante el microprocesador interno del lector. El campo del lector tiene la apariencia de dos circunferencias, una en la parte frontal del lector y otra en la parte posterior. Esto significa que si monta el lector sobre cristal o cualquier superficie no metlica, podr leer la tarjeta a travs de ambos lados del escner. (Otra ventaja sobre las tarjetas de banda magntica). Por otro lado, el microchip de la tarjeta Inteligente, es un dispositivo pasivo que contiene un cdigo de fbrica nico y que no puede ser duplicado. Esto hace de las 33. tarjetas inteligentes un sistema muy seguro. Al entrar la tarjeta a una distancia de entre 100mm y 150mm del lector, se activa automticamente mediante la energa del campo. A pesar de que la tarjeta ser leda con mayor velocidad dependiendo del ngulo, la posicin exacta de la tarjeta dentro del campo no es importante (al contrario que los lectores de banda magntica). Una vez activada, la tarjeta responde transmitiendo su nmero nico de identificacin mediante una seal de 125KHz. Los 34 billones de combinaciones posibles hacen prcticamente imposible la duplicacin. Cada nmero de identificacin de las tarjetas es testado para comprobar la seguridad y los datos, garantizando que el nmero no se leer de forma incorrecta. Las tarjetas inteligentes no tienen batera. Esto significa que cada tarjeta tiene una vida tericamente infinita, independientemente del nmero de veces que se utilice. 1.4.3.- Etiquetas y Llaveros Inteligentes Las etiquetas y llaveros inteligentes utilizan la misma tecnologa basada en microchips que las tarjetas inteligentes pero poseen una antena ms pequea compuesta de bobina de cobre con un ncleo de ferrita de hierro. El chip y la antena estn sellados en una funda de cristal endurecido de alta calidad, similar a la utilizada en los chips para la identificacin de animales. Debido a que son ms pequeos, la distancia de lectura es tambin inferior. Los llaveros son de un tamao reducido e incorporan su nmero propio de identificacin impreso en el exterior para remisin. Figura 1.9 Llavero y tarjeta inteligente. 34. Los llaveros inteligentes estn disponibles en todo tipo de formas y tamaos; siendo muy populares por sus dimensiones y por lo prctico que resulta para llevarlos. 1.4.4.- Sistemas de control de acceso basados en huellas dactilares. 1.4.4.1.- La identificacin biomtrica La identificacin biomtrica es la verificacin de la identidad de una persona basado en caractersticas de su cuerpo o de su comportamiento, utilizando por ejemplo su mano, el iris de su ojo, su voz o su cara en el reconocimiento facial. Los mtodos de identificacin biomtrica, como aquellos usados en las pelculas de James Bond, el inolvidable agente 007, que nos parecan increbles hace unos aos, son ahora una realidad. Figura 1.10 Dedo pulgar y su huella dactilar Aunque los estudios biomtricos no son perfectos, s son una herramienta muy poderosa para identificar personas. De todos los sistemas de identificacin biomtrica existentes, las huellas dactilares son las nicas legalmente reconocidas como prueba fidedigna de identidad. Es un sistema que adems de ser efectivo, es cmodo de aplicar y la autenticacin se obtiene rpidamente. Las huellas digitales son caractersticas exclusivas de los primates. En la especie humana se forman a partir de la sexta semana de vida intrauterina y no varan en sus caractersticas a lo largo de toda la vida del individuo. Son las formas caprichosas que adopta la piel que cubre las yemas de los dedos. Estn constituidas por rugosidades que forman salientes y depresiones. Las salientes se denominan crestas 35. papilares y las depresiones surcos interpapilares. En las crestas se encuentran las glndulas sudorparas. El sudor que stas producen contiene aceite, que se retiene en los surcos de la huella, de tal manera que cuando el dedo hace contacto con una superficie, queda un residuo de sta, lo cual produce un facsmil o negativo de la huella. Las huellas digitales se toman de los dedos ndices de ambas manos, tanto por la comodidad al capturarlas, como porque estos dedos estn menos propensos que los pulgares a sufrir accidentes que dejen cicatriz. Son nicas e irrepetibles an en gemelos idnticos, debido a que su diseo no est determinado estrictamente por el cdigo gentico, sino por pequeas variables en las concentraciones del factor del crecimiento y en las hormonas localizadas dentro de los tejidos. Cabe sealar que en un mismo individuo la huella de cada uno de sus dedos es diferente. Para la identificacin de huellas, es conveniente contar con la traza digital completa, no obstante, pueden utilizarse fracciones de las mismas, con el inconveniente de que mientras ms pequeo sea el marcado, menor es el margen de seguridad. El equipo requerido para el manejo del sistema consta de: Lector de huella dactilar. Los hay de varios modelos, permiten el ingreso de la huella ya sea para registrarla o para validarla. Terminales, equipo de cmputo estndar. Envan informacin pre-procesada al servidor. Servidor. Se encarga de la validacin de la huella y del manejo de los dispositivos pticos que permiten almacenar y recuperar informacin solicitada por el servidor. Software de aplicacin. Basado en algoritmos para codificacin y comparacin. 36. En el momento de la bioidentificacin, el sistema debe responder a dos preguntas: Es la persona quien dice ser? Para ello checa si los datos de la persona a identificar, corresponden con los guardados en una base de datos. Quin es la persona? Este es el proceso de autenticacin, es ms tcnico que el anterior, ya que incluye varias comparaciones con aquellas huellas que le sean similares, contenidas en muchas bases de datos, con el fin de poder diferenciarlas. Para ello compara la huella que la persona registra en un escner ptico, con aquella registrada previamente. Cabe sealar que si el sistema usa las huellas digitales de los ndices de ambas manos, ofrecer un mayor margen de seguridad. La identificacin biomtrica por medio de huellas digitales tiene un grado de seguridad tan alto debido a que nadie podra sustraer, copiar o reproducir los elementos usados en ella, ya que son elementos inherentes a su portador, sin embargo puede estar sujeta a errores de: a) Falsa aceptacin.- Cuando se acepta a alguien que No es; por ejemplo, alguien podra clonar una credencial de identificacin, o aduearse de los nmeros confidenciales de una persona para hacer una transaccin en perjuicio de su legtimo dueo y hasta falsificar su firma. b) Falso rechazo.- Consiste en no aceptar a alguien que S es, pero su identificacin no se pudo realizar. Debido a mltiples motivos, como puede ser: que la imagen de la huella est muy daada, o a que tenga una capa de cemento o de pintura, o a que el lector no tenga la calidad suficiente para tomar correctamente la lectura. 37. Figura 1.11 lector de huellas dactilares En lugar de las tradicionales llaves, por ejemplo los arrendatarios podrn escanear sus huellas dactilares para acceder a su apartamento, un rascacielos en construccin en el vecindario de Yaletown, situado en la parte baja de Vancouver."Esta tecnologa se est utilizando en edificios de finanzas, gobiernos o para aplicaciones de alta seguridad", explic el promotor del proyecto, James Schouw. "Pero va a llegar a ser ms barata, ms solvente, y a todo el mundo al final le concierne la seguridad". 1.4.5.- Lectores subcutneos de huellas dactilares Se han desarrollado productos para el reconocimiento de las huellas dactilares Subcutneas las cuales se encuentran bajo la capa de piel muerta del individuo. Esta tecnologa, combinada con sistemas para monitorizar el Tiempo de Asistencia y el Control de Acceso aportar una gran seguridad a las empresas. El sistema funciona rebotando ondas electromagnticas, similares a las ondas de radio, en el tejido vivo y el flujo sanguneo bajo la piel de las personas. Estas reflexiones son grabadas para luego construir la imagen de la huella, que es utilizada posteriormente para confirmar la identidad del individuo. La tecnologa de los lectores de huellas subcutneos le proporcionan mayor precisin y seguridad, debido a que la superficie de la huella est contaminada con suciedad o grasa, el sistema investiga bajo la capa de piel donde se encuentra la autntica huella dactilar, todo en menos de segundo. 38. Figura 1.12 Lectores subcutneos de huellas dactilares Otros lectores de huellas dactilares basados en sistemas pticos o de capacitancia no funcionan en hasta un 30% de la poblacin debido a su dependencia en la capa externa de piel. Condiciones normales de la piel como la sequedad o el desgaste no permiten a estos sistemas contrastar las huellas correctamente. Estos sistemas son sensibles incluso a pequeas cantidades de grasa, tierra o marcas de rotulador. El T4210 es un lector de huellas dactilares subcutneos que se conecta directamente en el puerto USB del PC. La sencillez de su diseo y la posibilidad de utilizarlo de forma independiente lo convierten en una herramienta ideal para garantizar la seguridad de su ordenador porttil o su entorno de red; controlando el acceso de lo ordenadores a la red. El lector de huellas dactilares T4210 incrementa la seguridad a la vez que reduce el nmero de contraseas necesarias. Simplemente con un dedo podr acceder a la informacin confidencial de su PC o su entorno de red. Para acceder, introduzca su nombre y presente su dedo en el sensor del T4210. En menos de un segundo la huella presentada ser comparada con la huella almacenada en el registro del sistema. El registro de usuarios es rpido, intuitivo y no requiere un elevado conocimiento de informtica. Figura 1.13 Lector de huellas dactilares T4210 39. Funcionamiento: La gama de lectores biomtricos subcutneos utiliza una tecnologa nueva que lee debajo de la capa de piel (muerta) del individuo. Es en la capa subcutnea de la piel donde reside la autntica huella dactilar. El sistema funciona rebotando ondas electromagnticas, similares a las ondas de radio, en el tejido vivo y el flujo sanguneo bajo la piel de las personas. Figura 1.14 Detalle de la capa subcutnea de la piel Estas reflexiones son grabadas para luego construir la imagen de la huella, que es utilizada posteriormente para confirmar la identidad del individuo. Figura .1.15 Reflexiones en lector subcutneo de huellas dactilares 1.4.6.- Otros controles de acceso Existe otros tipos de control de acceso, que no han sido mencionado, tales como Torniquetes, molinetes, puertas batientes, etc., que son muy utilizados en centros comerciales, terminales terrestres, aeropuertos, etc. y que adems de servir para contabilizar el numero de individuos o vehculos que visitan dichos locales, generan 40. tarjetas en donde consta la fecha y hora para luego sirve para determinar como por ejemplo el costo por garaje. Existen diversidad de estos controles de acceso, creados para locales o lugares especficos y con funciones que se adaptan al las condiciones que se requieran. A continuacin se muestran fotos de algunos modelos y tipos de estos conocidos controles de acceso. Figura 1.16 Controles de acceso peatonal y vehicular 1.5.- Cerraduras Especiales En lo respecto a los controles de acceso de personal, es conveniente hacer una rpida revisin de algunos modelos y tipos de cerraduras, que al fin y al cabo son el elemento final de toda la cadena de seguridad implementado en un sistema de control de acceso y de su implementacin depende en gran medida la eficacia del sistema. 41. 1.5.1.- Cerradura electromagntica Figura 1.5 Cerradura electromagntica. Las cerraduras electromagnticas son ideales para Sistemas de Control de Acceso y puertas para salida de emergencia, Resisten entre 300 y 600 kg al empuje y el montaje es muy sencillo ya que por lo general se entregan con herrajes de sujecin para puertas de vidrio, madera, metal, etc. Entre sus principales caractersticas podemos mencionar: Son altamente resistentes y duraderas. Su alimentacin es de 12 V. DC (en la mayora de los casos) Son ideales para lugares con alto nivel trnsito 1.5.2.- Cerradura electromecnica (Multipla 2000) Figura 1.16 Cerradura mltipla 2000 42. Esta cerradura trabaja con un electroimn que acciona un pistillo en el sistema de la cerradura, el cual dispara un mecanismo que permite retraer los bloques que aseguran la puerta, sus caractersticas principales de esta cerradura son: - Cierre ms suave - Traba ms segura - Pistillo autobloqueante - Volts: 8 / 12 (opc. 24) - Reversible - Distancia de entrada posterior graduable de 50 a 70 mm - Cerradero graduable en altura - Distancia entre agujeros de fijacin unificada 1.5.3.- Cerradura electronica Rench Se trata de una cerradura electrnica accionada mediante un teclado. Utiliza 4 pilas AA. Figura 1.17 Cerradura electrnica Rench Los modelos disponibles se agrupan en: Hogar-Hotel (2 claves), Comerciales, Bancarias y Bancarias Plus. Las cerraduras Comerciales poseen cierre de pistillo programable y operan con una clave maestra y diferente cantidad de usuarios segn el modelo. Las cerraduras Bancarias incluyen lo anterior ms retardo, doble usuario, conexin a alarma silenciosa e inhibicin a distancia. La Bancaria Plus incluye lo anterior ms opciones de auditoria y display. 43. 1.5.4.- Cerradura electrnica para mltiples aplicaciones Figura 1.18 Cerradura para mltiples aplicaciones Este tipo de cerradura es apta para mltiples aplicaciones: puertas de garajes, ascensores, conexin y desconexin de sistemas de seguridad, etc. tiene siete cdigos para siete usuarios diferentes mas un master, Indicadores luminosos y sonoros: luz verde es apertura, luz roja es pulsacin incorrecta, alimentacin 6 voltios (cuatro pilas AA no incluidas) duracin media estimada de las pilas, un ao. Alimentacin desde el exterior de emergencia, indicador de batera baja Funcin apertura inmediata 44. CAPTULO II Microcontroladores PIC de gama media. 2.1.- Introduccin: Desde la invencin del circuito integrado, el desarrollo constante de la electrnica digital ha dado lugar a dispositivos cada vez mas complejos. Entre ellos los microprocesadores y los microcontroladores, los cuales en la actualidad se consideran bsicos en las carreras de ingeniera electrnica. Los PIC son una familia de microcontroladores tipo RISC fabricados por Microchip Technology Inc. y derivados del PIC1650, originalmente desarrollado por la divisin de microelectrnica de General Instruments. El nombre actual no es un acrnimo, en realidad, el nombre completo es PICmicro, aunque generalmente se utiliza como Peripheral Interface Controller (Controlador de Interfaz Perifrico), ver figura 2.1. . Figura 2.1 Microcontrolador Pic 16F877 El PIC original se dise para ser usado con la nueva UCP (Unidad Central de proceso) de 16 bits CP16000. Siendo en general una buena UCP, sta tena malas prestaciones de E/S, y el PIC de 8 bits se desarroll en 1975 para mejorar el rendimiento del sistema quitando peso de E/S a la UCP, El PIC utilizaba micro cdigo simple almacenado en la ROM para realizar estas tareas; y aunque el trmino no se usaba por aquel entonces, se trata de un diseo RISC que ejecuta una instruccin cada 4 ciclos del oscilador. 45. En 1985, dicha divisin de microelectrnica de General Instruments se convirti en una filial y el nuevo propietario cancel casi todos los desarrollos, que para esas fechas la mayora estaban obsoletos. El PIC, sin embargo, se mejor con EPROM para conseguir un controlador de canal programable. Hoy en da multitud de PICs vienen con varios perifricos incluidos (mdulos de comunicacin serie, UARTs, ncleos de control de motores, etc.) y con memoria de programa desde 512 a 32.000 palabras (una palabra corresponde a una instruccin en ensamblador, y puede ser 12, 14 , 16 bits, 17 o 18 bits dependiendo de la familia especfica de PICmicro). 2.2.- El microcontrolador Pic Es un circuito integrado programable que contiene todos los componentes de un computador. Se emplea para controlar el funcionamiento de una tarea determinada y, debido a su reducido tamao, suele ir incorporado en el propio dispositivo al que gobierna. Esta ltima caracterstica es la que le confiere la denominacin de controlador incrustado (embedded controller). Figura 2.2 Tarjeta con microcontrolador PIC 16F84 El microcontrolador es un computador dedicado. En su memoria slo reside un programa destinado a gobernar una aplicacin determinada; sus lneas de entrada/salida soportan el conexionado de los sensores y actuadores del dispositivo a controlar, y todos los recursos complementarios disponibles tienen como nica 46. finalidad atender sus requerimientos. Una vez programado y configurado el microcontrolador solamente sirve para gobernar la tarea asignada. A continuacin se realiza un breve resumen de los microcontroladores PIC: 2.2.1.- Juego de instrucciones y entorno de programacin El PIC usa un juego de instrucciones tipo RISC (Reduced Instruction Set Computer) cuyo nmero puede variar desde 35 para PICs de gama baja a 77 para los de gama alta. Las instrucciones se clasifican entre las que realizan operaciones entre el acumulador y una constante, entre el acumulador y una posicin de memoria, instrucciones de condicionamiento y de salto/retorno, implementacin de interrupciones y una para pasar a modo de bajo consumo llamada sleep. Microchip proporciona un entorno de desarrollo freeware (de distribucin gratuita) llamado MPLAB que incluye un simulador software y un ensamblador. Otras empresas desarrollan compiladores C y BASIC. Microchip tambin vende compiladores para los PICs de gama alta ("C18" para la serie F18 y "C30" para los dsPICs) y se puede descargar una edicin para estudiantes del C18 que inhabilita algunas opciones despus de un tiempo de evaluacin. Adems del compilador C de Microchip, existen otros compiladores tales como CCS C, Hi tech, MiKroC,. Para Pascal existe un compilador de cdigo abierto, JAL, lo mismo que PicForth para el lenguaje Forth. GPUTILS es una coleccin de herramientas distribuidas bajo licencia GNU que incluye ensamblador y enlazador, y funciona en Linux, MacOS y Microsoft Windows. GPSIM es otra herramienta libre que permite simular diversos dispositivos hardware conectados al PIC. 2.2.2.- Programacin del PIC Para transferir el cdigo de un ordenador al PIC normalmente se usa un dispositivo llamado programador, ver figura 2.3. La mayora de PICs que Microchip distribuye hoy en da incorporan ICSP (In Circuit Serial Programming, programacin serie incorporada) o LVP (Low Voltage Programming, programacin a bajo voltaje), lo que permite programar el PIC directamente en el circuito destino. Para la ICSP se 47. usan los pines RB6 y RB7 como reloj y datos y el MCLR para activar el modo programacin aplicando una tensin entre 11 a 14 voltios DC. Existen muchos programadores de PICs, desde los ms simples que dejan al software los detalles de comunicaciones, a los ms complejos, que pueden verificar el dispositivo a diversas tensiones de alimentacin e implementan en hardware casi todas las funcionalidades. Muchos de estos programadores complejos incluyen ellos mismos PICs preprogramados como interfaz para enviar las rdenes al PIC que se desea programar. Uno de los programadores ms simples es el TE20, que utiliza la lnea TX del puerto RS232 como alimentacin y las lneas DTR y CTR para mandar o recibir datos cuando el microcontrolador est en modo programacin. El software de programacin puede ser el ICprog, muy comn entre la gente que utiliza este tipo de microcontroladores. Figura 2.3 programador PICSTART Se pueden obtener directamente de Microchip muchos programadores/depuradores, a continuacin se lista los programadores mas usuales y conocidos: Programadores PICStart Plus (puerto serie) Promate II (puerto serie) MPLAB PM3 (puerto serie y USB) ICD2 (puerto serie y USB) PICKit 1 (USB) IC-Prog 1.05 Depuradores integrados ICD2 (USB) 48. Emuladores ICE2000 (puerto paralelo, convertidor a USB disponible) ICE4000 (USB) PIC EMU PIC CDlite 2.2.2.- Tamao de palabra El tamao de palabra de los microcontroladores PIC es fuente de muchas confusiones. Todos los PICs (excepto los dsPIC) manejan datos en trozos de 8 bits, con lo que se deberan llamar microcontroladores de 8 bits. Pero a diferencia de la mayora de UCPs, el PIC usa arquitectura Harvard, por lo que el tamao de las instrucciones puede ser distinto del de la palabra de datos. De hecho, las diferentes familias de PICs usan tamaos de instruccin distintos, lo que hace difcil comparar el tamao del cdigo del PIC con el de otros microcontroladores. Por ejemplo, pongamos que un microcontrolador tiene 6144 bytes de memoria de programa: para un PIC de 12 bits esto significa 4096 palabras y para uno de 16 bits, 3072 palabras. 2.2.3.- Caractersticas generales Los PICs actuales vienen con una amplia gama de mejoras de hardware incorporadas: Ncleos de UCP de 8/16 bits con Arquitectura Harvard modificada Memoria de programa de hasta 128 kilobytes Puertos de E/S (tpicamente 0 a 5,5 voltios) Temporizadores de 8/16 bits Tecnologa Nanowatt para modos de control de energa Perifricos serie sncronos y asncronos: USART, AUSART, EUSART ,USB Conversores analgico/digital de 8-10-12 bits, hasta 16 canales. Comparadores de tensin Mdulos de captura y comparacin PWM Controladores LCD Perifrico MSSP para comunicaciones I2C, SPI, PSP. Memoria EEPROM interna con duracin de hasta un milln de ciclos de lectura/escritura 49. Perifricos de control de motores Soporte de interfaz USB Soporte de controlador Ethernet Soporte de controlador CAN Soporte de controlador LIN 2.2.4.- Variaciones del PIC a) PICs modernos Los viejos PICs con memoria PROM o EPROM se estn renovando gradualmente por chips con memoria Flash. As mismo, el juego de instrucciones original de 12 bits del PIC1650 y sus descendientes directos ha sido suplantado por juegos de instrucciones de 14, 16 y 18 bits. Microchip todava vende versiones PROM y EPROM de la mayora de los PICs para soporte de aplicaciones antiguas o grandes pedidos, la nueva generacin de PIC18 trae nuevas mejoras con respecto de sus antecesoras, como por ejemplo tiene memoria plana, es decir toda la memoria de programa es un solo bloque a diferencia de las anteriores versiones que disponan de hasta cuatro bancos de memoria para organizar su memoria, otras ventajas como mayor capacidad de direccionamiento, 77 instrucciones y ms ventajas que se vera ms adelante en detalle. b) Clones del PIC Por todos lados surgen compaas que ofrecen versiones del PIC ms baratas o mejoradas. La mayora suelen desaparecer rpidamente. Una de ellas que va perdurando es Ubicorn (antiguamente Scenix) que vende clones del PIC que funcionan mucho ms rpido que el original. OpenCores tiene un ncleo del PIC16F84 escrito en Verilog. c) PICs wreless El microcontrolador rfPIC integra todas las prestaciones del PICmicro de Microchip con la capacidad de comunicacin wireless UHF para aplicaciones RF de baja potencia. Estos dispositivos ofrecen un diseo muy comprimido para ajustarse a los 50. cada vez ms demandados requerimientos de miniaturizacin en aparatos electrnicos. d) PICs para procesado de seal (dsPICs) Los dsPICs son el ltimo lanzamiento de Microchip, comenzando a producirlos a gran escala a finales de 2004. Son los primeros PICs con bus de datos inherente de 16 bits. Incorporan todas las posibilidades de los anteriores PICs y aaden varias operaciones de DSP implementadas en hardware, como multiplicacin con suma de acumulador (multiply-accumulate, o MAC), barrel shifting, bit reversion o multiplicacin 16x16 bits. 2.2.4.- PICs ms comnmente usados PIC12C508/509 (encapsulamiento reducido de 8 pines, oscilador interno, popular en pequeos diseos como el iPod remote) PIC16F84 (Considerado obsoleto, pero imposible de descartar y muy popular) PIC16F84A (Buena actualizacin del anterior, algunas versiones funcionan a 20 MHz, compatible 1:1) PIC12F629/675 PIC16F628 La familia PIC16F87X (los hermanos mayores del PIC16F84, con cantidad de mejoras incluidas en hardware. Bastante comn en proyectos de aficionados) 2.2.5.- familia de la serie PIC18 La serie de microcontroladores PIC18 es una mejora de la arquitectura presente en la familia PIC16 y PIC17, tiene un PC (Contador de programa) de 21 bits, lo que le permite direccionar hasta 2Mbytes de memoria de programa, a continuacin se lista las principales caractersticas de la mas reciente familia de PICs de Microchip: 51. Figura 2.4 Microcontroladores de la familia PIC18 77 instrucciones Arquitectura orientada al uso de Lenguaje C Memoria de programa lineal hasta 2Mbytes Memoria de datos hasta 4Kbytes Capacidad de proceso hasta 10MIPS, clock: DC - 48Mhz Instrucciones de 16 bits y datos de 8 bits Multiplicador por hardware de 8x8 bits Pines soportan hasta 25mA en modo sink/source Hasta 4 pines para interrupciones externas Hasta 3 timers de 16 bits y hasta 2 timers de 8 bits Timer 1 con oscilador LP Hasta 5 mdulos CCP, configurables como o Entradas de captura de 16 bits de resolucin o Modo Comparador de 16 bits de resolucin o Salida PWM hasta 10 bits de resolucin 156Khz Max con 8 bits de resolucin 39Khz max con 10 bits de resolucin Puerto MSSP que puede ser configurado como o Puerto Serial SPI - 3 hilos. Soporta los 4 modos o Puerto I2C Master y Slave Puerto serial USART direccionable Puerto Paralelo PSP 52. Conversor Anlogo Digital 10 bits, hasta 16 canales Detector de bajo voltaje programable (LVD) (genera interrupcin) Comparadores analgicos Programacin Serial en Circuito (ICSP) Protecciones o Power On Reset (POR) o Power Up Timer (PWRT) o Oscilator Start Up Timer (OST) o WatchDog timer con oscilador RC propio o Proteccin de Cdigo Generales o Alimentacin: 2.0V - 5.5V o Rango temperatura Comercial: 0-70C Industrial: -40C a 85C Extendido: -40C a 125C o 18 a 80 pines 2.2.5.- PICs en Internet Se puede encontrar mucha informacin y documentacin sobre PICs en Internet principalmente por dos motivos: el primero, porque han sido muy usados para romper los sistemas de seguridad de varios productos de consumo mayoritario (televisin de pago, Play Station...), lo que atrae la atencin de los crackers; y segundo, porque el PIC16C84 fue uno de los primeros microcontroladores fcilmente reprogramables para aficionados. Hay muchos foros y listas de correo dedicados al PIC en los que un usuario puede proponer sus dudas y recibir respuestas. Pero tambin podemos enfocar el tema de Internet a la posibilidad que se tiene de desarrollar con estos, Sistemas SCADA va Web debido a que pueden adquirir y enviar datos al puerto serial de un computador utilizando transmisin UART, el protocolo RS232, y USB, o la posibilidad de implementar el protocolo TCP/IP directamente. 53. 2.3.- Arquitectura interna de un microcontrolador PIC Un microcontrolador posee todos los componentes de un computador, pero con unas caractersticas fijas que no pueden alterarse. Las partes principales de un microcontrolador son: Procesador Memoria no voltil para contener el programa Memoria de lectura y escritura para guardar los datos Lneas de E/S para los controladores de perifricos: a) Comunicacin paralelo b) Comunicacin serie c) Diversas puertas de comunicacin (bus l2C, USB, etc.) Recursos auxiliares: a) Circuito de reloj b) Temporizadores c) Perro Guardin (watchdog) d) Conversores AD y DA e) Comparadores analgicos f) Proteccin ante fallos de la alimentacin g) Estado de reposo o de bajo consumo(sleep). A continuacin se pasa revista a las caractersticas ms representativas de cada uno de los componentes del microcontrolador. 2.3.1.- El procesador La necesidad de conseguir elevados rendimientos en el procesamiento de las instrucciones ha desembocado en el empleo generalizado de procesadores de arquitectura Harvard frente a los tradicionales que seguan la arquitectura de von Neumann. Esta ltima se caracterizaba porque la UCP (Unidad Central de Proceso) 54. se conectaba con una memoria nica, donde coexistan datos e instrucciones, a travs de un sistema de buses1 (vase figura 2.6). Figura 2.5 En la arquitectura de von Neumann la UCP se comunicaba a travs de un sistema de buses En la arquitectura Harvard son independientes la memoria de instrucciones y la memoria de datos y cada una dispone de su propio sistema de buses para el acceso. Esta dualidad, adems de propiciar el paralelismo, permite la adecuacin del tamao de las palabras y los buses a los requerimientos especficos de las instrucciones y de los datos. Tambin la capacidad de cada memoria es diferente (figura 2.7). Figura 2.6 Arquitectura harvard El procesador de los modernos microcontroladores responde a la arquitectura RISC (Computadores de Juego de Instrucciones Reducido), que se identifica por poseer un repertorio de instrucciones mquina pequeo y simple, de forma que la mayor parte de las instrucciones se ejecuta en un ciclo de instruccin. 1 Los temas tratados estn basados en el libro titulado Microcontroladores PIC diseo prctico de aplicaciones de Jos M. Angulo Usategui 3era edicin. 55. Otra aportacin frecuente que aumenta el rendimiento del computador es el fomento del paralelismo implcito, que consiste en la segmentacin del procesador (pipe-line), descomponindolo en etapas para poder procesar una instruccin diferente en cada una de ellas y trabajar con varias a la vez. l alto rendimiento y elevada velocidad que alcanzan los modernos procesadores, como el que poseen los microcontroladores PIC, se debe a la conjuncin de tres tcnicas: Arquitectura Harvard Computador tipo RISC Segmentacin 2.2.2.Memoria de programa Es una memoria EEPROM, es decir, de lectura solamente (ROM = Read Only Memory) que se programa por tensin (no necesita luz ultravioleta); es decir que basta con introducir los datos con cierto nivel de tensin para que stos borren el programa anterior y graben uno nuevo, en la figura 2.8 se aprecia el mapa de memoria de programa del PIC 16F877A. Figura 2.7 Mapa de la Pila y memoria de programa del PIC 16F877A 56. Se llama ROM porque para grabarla se debe conectar el PIC al programador; luego de que el PIC coloca estos datos en la plaqueta del dispositivo, slo pueden ser ledos, ya que entonces forman el programa del PIC. Esta memoria tiene una longitud De memoria que varia del dispositivo desde 512 bytes hasta 128 Kbytes en dispositivos mas avanzados como de la familia PIC18, con palabras de 14 , 16 y 18 bits. Digamos que tiene un ancho de 14 bits y una altura de 1.000 Bytes o que es una memoria de 1.000 x 14. Observe que dos de las posiciones de memoria tienen las indicaciones vector de reset y vector de interrupcin. Eso significa que, cuando se provoca un reset, el microprocesador vuelve a la posicin 0000 del programa y cuando se produce una interrupcin, a la posicin 0004. Estos retornos forzados deben ser considerados al disear el programa del microprocesador; es decir que el reset se produce porque la seal externa pone el contador de programa en 000 y todo el programa se reinicia. En cambio, cuando ingresa una seal por la pata de interrupcin el contador de programa va a 004 y la accin que, en general ocurre, es que se comienza a leer un subprograma particular. Cuando este subprograma termina, el contador de programa recupera el nmero que tena en el momento de arribar la interrupcin. El microcontrolador est diseado para que en su memoria de programa se almacenen todas las instrucciones del programa de control. No hay posibilidad de utilizar memorias externas de ampliacin. Como el programa a ejecutar siempre es el mismo, debe estar grabado de forma permanente. Los tipos de memoria adecuados para soportar esta funcin admiten cinco versiones diferentes: a) ROM con mscara En este tipo de memoria el programa se graba en el chip durante el proceso de su fabricacin mediante el uso de mscaras. Los altos costes de diseo e instrumental slo aconsejan usar este tipo de memoria cuando se precisan series muy grandes. 57. b) EPROM La grabacin de esta memoria se realiza mediante un dispositivo fsico gobernado desde un computador personal, que recibe el nombre de grabador. En la superficie de la cpsula del microcontrolador existe una ventana de cristal por la que se puede someter al chip de la memoria a rayos ultravioletas para producir su borrado y emplearla nuevamente. Es interesante la memoria EPROM en la fase de diseo y depuracin de los programas, pero su coste unitario es elevado. c) OTP (Programable una vez) Este modelo de memoria slo se puede grabar una vez por parte del usuario, utilizando el mismo procedimiento que con la memoria EPROM. Posteriormente no se puede borrar. Su bajo precio y la sencillez de la grabacin aconsejan este tipo de memoria para prototipos finales y series de produccin cortas. d) EEPROM La grabacin es similar a las memorias OTP y EPROM, pero el borrado es mucho ms sencillo al poderse efectuar de la misma forma que el grabado, o sea, elctricamente. Sobre el mismo zcalo del grabador puede ser programada y borrada tantas veces como se quiera, lo cual la hace ideal en la enseanza y en la creacin de nuevos proyectos. El fabuloso PIC16F84 dispone de 64 K palabras de memoria EEPROM para contener instrucciones y tambin tiene algunos bytes de memoria de datos de este tipo para evitar que cuando se retira la alimentacin se pierda informacin. Aunque se garantiza 1.000.000 de ciclos de escritura/borrado en una EEPROM, todava su tecnologa de fabricacin tiene obstculos para alcanzar capacidades importantes y el tiempo de escritura de las mismas es relativamente grande y con elevado consumo de energa. 58. e) FLASH Se trata de una memoria no voltil, de bajo consumo, que se puede escribir y borrar en circuito al igual que las EEPROM, pero suelen disponer de mayor capacidad que estas ltimas. El borrado slo es posible con bloques completos y no se puede realizar sobre posiciones concretas. En las FLASH se garantizan 100.000 ciclos de escritura-borrado. Son muy recomendables en aplicaciones en las que sea necesario modificar el programa a lo largo de la vida del producto, como consecuencia del desgaste o cambios de piezas, como sucede con los vehculos. Por sus mejores prestaciones est sustituyendo a la memoria EEPROM para contener instrucciones. De esta forma Microchip comercializa dos microcontroladores prcticamente iguales, que slo se diferencian en que la memoria de programa de uno de ellos es tipo EEPROM y la del otro tipo Flash. Se trata del PIC 16C84 y el PIC 16F84, respectivamente. En la actualidad Microchip tiene abierta una lnea de PIC con memoria Flash cada vez ms extensa y utilizada. 2.2.3.- Memoria de datos La RAM (Random Acces Memory o traducido Memoria de Acceso Aleatorio) es una memoria de lectura y escritura de 128 posiciones (en las nuevas versiones dispone de hasta 4096 posiciones), pero que slo tiene implementados las primeras 48 posiciones (desde 00 a 2F en hexadecimal). De estos 48 registros, los primeros 12 son fijos y cumplen un propsito determinado, en tanto que desde el 13 hasta el 48 son registros de propsito general, en donde el programa puede indicar que se almacene un dato para ser tomado ms tarde. Los datos que manejan los programas varan continuamente, y esto exige que la memoria que contiene debe ser de lectura y escritura, por lo que la memoria RAM esttica (SRAM) es la ms adecuada, aunque sea voltil. 59. Hay microcontroladores que tambin disponen como memoria de datos una de lectura y escritura no voltil, del tipo EEPROM. De esta forma, un corte en el suministro de la alimentacin no ocasiona la prdida de la informacin, que est disponible al reiniciarse el programa. El PIC16C84, el PIC16F83 y el PIC16F84 disponen de 64 bytes de memoria EEPROM para contener datos, el PIC 16F877 dispone de 256 bytes de memoria EEPROM, y existen algunos modelos sobretodo en la familia PIC18 que disponen de 1024 bytes de capacidad. La memoria tipo EEPROM y la tipo Flash pueden escribirse y borrarse elctricamente. Sin necesidad de sacar el circuito integrado del zcalo del grabador pueden ser escritas y borradas numerosas veces. 2.2.4. Lneas de E/S para los controladores de perifricos A excepcin de dos pines destinad0s a recibir la alimentacin, otras dos para el cristal de cuarzo, que regula la frecuencia de trabajo, y una ms para provocar el Reset, los restantes pines de un microcontrolador sirven para soportar su comunicacin con los perifricos externos que controla. Las lneas de E/S que se adaptan con los perifricos manejan informacin en paralelo y se agrupan en conjuntos de ocho, que reciben el nombre de Puertos. Hay modelos con lneas que soportan la comunicacin en serie; otros disponen de conjuntos de lneas que implementan puertos de comunicacin para diversos protocolos, como el I2C, el USB, etc. A continuacin se muestra el diagrama de bloques del PIC 16F877A2 2 LA imagen as como algunos criterios han sido tomados de la coleccin de libros titulado: Curso prctico sobre Microcontroladores, de la empresa Cekit 60. Figura 2.8 Diagrama de bloques General De un PIC de gama media 2.2.5. Recursos auxiliares Segn las aplicaciones a las que orienta el fabricante cada modelo de microcontrolador, incorpora una diversidad de complementos que refuerzan la potencia y la flexibilidad del dispositivo. Entre los recursos ms comunes se citan a los siguientes: 61. a) Circuito de reloj, encargado de generar los impulsos que sincronizan el funcionamiento de todo el sistema. b) Temporizadores, orientados a controlar tiempos. c) Perro Guardin (watchdog), destinado a provocar una reinicializacin cuando el programa queda bloqueado. d) Conversores AD , para poder recibir y enviar seales analgicas. e) Comparadores analgicos, para verificar el valor de una seal analgica. f) Sistema de proteccin ante fallos de la alimentacin. g) Estado de Reposo, (sleep) en el que el sistema queda congelado y el consumo de energa se reduce al mnimo. 2.4.-Descripcin del PIC 16F877 En el presente proyecto de titulacin, el control de acceso peatonal, se basa en 3 microcontroladores PIC 16F877A, de muy similares caractersticas con el 16F877, por lo que se hace un anlisis de los que constituye este dispositivo programable, las diferencias que existen con el 16f877A , se detallan en un documento al final de esta obra, como parte de los anexos, pero para este proyecto, las diferencias existentes entre estos microcontroladores no son de relevancia. 2.4.1.- Caractersticas del PIC 16F877 Se denomina microcontrolador a un dispositivo programable capaz de realizar diferentes actividades que requieran del procesamiento de datos digitales y del control y comunicacin digital de diferentes dispositivos. El Pic 16f877 es un microcontrolador de gama media fabricado por Microchip, este modelo posee varias caractersticas que hacen a este microcontrolador un dispositivo muy verstil, 62. eficiente y practico para ser empleado en la aplicacin que posteriormente ser detallada. Algunas de sus principales caractersticas se muestran a continuacin: Soporta modo de comunicacin serial (I2C, RS232, SPI ). Amplia memoria para datos y programa Memoria reprogramable: La memoria en este PIC es la que se denomina FLASH; este tipo de memoria se puede borrar electrnicamente (esto corresponde a la F en el modelo). Set de instrucciones reducido (tipo RISC), pero con las instrucciones necesarias para facilitar su manejo. En la tabla 2.1 se resumen las caractersticas ms relevantes del microcontrolador PIC 16F877 CARACTERSTICAS 16F877 Frecuencia mxima DX-20MHz Memoria de programa flash palabra de 14 bits 8KB Posiciones RAM de datos 368 Posiciones EEPROM de datos 256 Puertos E/S A,B,C,D,E Nmero de pines 40 Interrupciones 14 Timers 3 Mdulos CCP 2 Comunicaciones Serie MSSP, USART Comunicaciones paralelo PSP 63. Lneas de entrada de CAD de 10 bits 8 Juego de instrucciones 35 Instrucciones Longitud de la instruccin 14 bits Arquitectura Harvard CPU Risc Canales Pwm 2 Pila Harware - Ejecucin En 1 Ciclo Mquina - Tabla 2.1 caractersticas del PIC 16F877 2.4.2- Descripcin de los puertos: El PIC 16F877 tiene un total de 40 pines, de los cuales utiliza 7 para alimentacin, reset y oscilador. Los 33 restantes se distribuyen en cinco puertos desde el A hasta el Puerto E, Los dispositivos perifricos se listan a continuacin: Dispositivos perifricos: Timer0: Temporizador-contador de 8 bits con preescaler de 8 bits Timer1: Temporizador-contador de 16 bits con preescaler que puede incrementarse en modo sleep de forma externa por un cristal/clock. Timer2: Temporizador-contador de 8 bits con preescaler y postescaler. Dos mdulos de Captura, Comparacin, PWM (Modulacin de Anchura de Impulsos). 8 canales para Conversor A/D de 10 bits. Puerto Serie Sncrono Master (MSSP) con SPI e I2C (Master/Slave). USART/SCI (Universal Syncheronus Asynchronous Receiver Transmitter) con 9 bit. Puerta Paralela Esclava (PSP) solo en encapsulados con 40 pines 64. En la figura 2.10, se muestra el diagrama de bloques del Microcontrolador PIC 16F877, a la derecha se muestran los cinco puertos con una breve descripcin de cada uno de sus pines. Figura 2.9 Diagrama de Bloques del Microcontrolador PIC 16F877 En la siguiente tabla se resume la funcin de cada uno de los pines que contiene el Microcontrolador PIC 16F877 65. NOMBRE DEL PIN PIN TIPO TIPO DE BUFFER DESCRIPCIN OSC1/CLKI N 13 I ST/MOS Entrada del oscilador de cristal / Entrada de seal de reloj externa OSC2/CLK OUT 14 O - Salida del oscilador de cristal MCLR/Vpp/ THV 1 I/P ST Entrada del Master clear (Reset) o entrada de voltaje de programacin o modo de control high voltaje test RA0/AN0 RA1/AN1 RA2/AN2/ Vref- RA3/AN3/Vr ef+ RA4/T0CKI RA5/SS/AN4 2 3 4 5 6 7 I/O I/O I/O I/O I/O I/O TTL TTL TTL TTL ST TTL PORTA es un puerto I/O bidireccional RAO: puede ser salida analgica 0 RA1: puede ser salida analgica 1 RA2: puede ser salida analgica 2 o referencia negativa de voltaje RA3: puede ser salida analgica 3 o referencia positiva de voltaje RA4: puede ser entrada de reloj el timer0. RA5: puede ser salida analgica 4 o el esclavo seleccionado por el puerto serial sncrono. RBO/INT RB1 RB2 RB3/PGM RB4 RB5 33 34 35 36 37 38 I/O I/O I/O I/O I/O I/O TTL/ST TTL TTL TTL TTL TTL PORTB es un puerto I/O bidireccional. Puede ser programado todo como entradas RB0 pude ser pin de interrupcin externo. RB3: puede ser la entada de programacin de bajo voltaje Pin de interrupcin Pin de interrupcin 66. RB6/PGC RB7/PGD 39 40 I/O I/O TTL/ST TTL/ST Pin de interrupcin. Reloj de programacin serial RCO/T1OS O/T1CKI RC1/T1OS1/ CCP2 RC2/CCP1 RC3/SCK/S CL RC4/SD1/SD A RC5/SD0 RC6/Tx/CK RC7/RX/DT 15 16 17 18 23 24 25 26 I/O I/O I/O I/O I/O I/O I/O I/O ST ST ST ST ST ST ST ST PORTC es un puerto I/O bidireccional RCO puede ser la salida del oscilador timer1 o la entrada de reloj del timer1 RC1 puede ser la entrada del oscilador timer1 o salida PMW 2 RC2 puede ser una entrada de captura y comparacin o salida PWN RC3 puede ser la entrada o salida serial de reloj sncrono para modos SPI e I2C RC4 puede ser la entrada de datos SPI y modo I2C RC5 puede ser la salida de datos SPI RC6 puede ser el transmisor asncrono USART o el reloj sncrono. RC7 puede ser el receptor asncrono USART o datos sncronos 67. RD0/PSP0 RD1/PSP1 RD2/PSP2 RD3/PSP3 RD4/PSP4 RD5/PSP5 RD6/PSP6 RD7/PSP7 19 20 21 22 27 28 29 30 I/O I/O I/O I/O I/O I/O I/O I/O ST/TTL ST/TTL ST/TTL ST/TTL ST/TTL ST/TTL ST/TTL ST/TTL PORTD es un puerto bidireccional paralelo REO/RD/AN 5 RE1/WR/AN RE2/CS/AN7 8 9 10 I/O I/O I/O ST/TTL ST/TTL ST/TTL PORTE es un puerto I/O bidireccional REO: puede ser control de lectura para el puerto esclavo paralelo o entrada analgica 5 RE1: puede ser escritura de control para el puerto paralelo esclavo o entrada analgica 6 RE2: puede ser el selector de control para el puerto paralelo esclavo o la entrada analgica 7. Vss 12.3 1 P - Referencia de tierra para los pines lgicos y de I/O Vdd 11.3 2 P - Fuente positiva para los pines lgicos y de I/O NC - - - No est conectado internamente Tabla 2.2 Descripcin de los pines del PIC 16F877 El Microcontrolador PIC 16F877 tiene algunas presentaciones, de las cuales se utiliza el encapsulado tipo DIP tal como se muestra en la figura 2.11, en la misma que se muestra la distribucin fsica real de los pines, as como una breve descripcin de la funcin que cumple cada uno de los pines 68. Figura 2.10 Diagrama de Bloques del Microcontrolador PIC 16F877 Las dimensiones exteriores del encapsulado se muestran en la grfica 2.12, donde adems constan las distancias entre pines, medidas entre pines, etc., que son necesarias para el diseo de la placa donde residir el integrado. Figura 2.11 Dimensiones fsicas del Microcontrolador PIC 16F877 69. CAPTULO III Lenguaje Ensamblador y Lenguaje C Un microcontrolador es un computador metido dentro de un circuito integrado. Son computadores muy pequeos y baratos por lo que se utilizan para controlar muchos productos comunes en los que se halla incrustado dentro de los mismos, como sucede con el telfono mvil, el teclado y el ratn del computador, etc. Adems, al ser tan pequeos tienen una potencia limitada y slo sirven para realizar una tarea. En el siglo XXI la realizacin de proyectos para aplicar los microcontroladores en el gobierno y automatizacin de multitud de productos y procesos se presenta como una ingente labor que va a requerir la colaboracin de multitud de profesionales y va a ofrecer una oportunidad inigualable para quienes estn preparados adecuadamente. Los proyectos con microcontroladores exigen un trabajo con hardware consistente en adaptar Los pines del microcontrolador a los perifricos externos que hay que controlar. Adems, tambin requieren la confeccin de un programa con las instrucciones precisas para que su ejecucin origine el procesamiento de la informacin para obtener los resultados apetecidos. Para construir los programas de los microcontroladores se usan principalmente tres lenguajes: El lenguaje Ensamblador El lenguaje Basic El Lenguaje C 3.1.- El lenguaje Ensamblador Se dice que el lenguaje Ensamblador es de bajo nivel porque sus instrucciones son exactamente las que el procesador sabe interpretar y ejecutar. En realidad, el 70. computador digital slo acepta instrucciones en cdigo binario y el Ensamblador facilita su escritura al programador permitiendo expresarlas mediante mnemnicos1 , que son tres o cuatro letras significativas que referencian en ingls, la operacin que conlleva la instruccin. Por ejemplo, una instruccin que mueve un dato de un sitio (A) a otro (B), en Ensamblador se escribe MOV A,B. El problema surge en el Ensamblador por la poca potencia de las instrucciones que es capaz de ejecutar el procesador. Normalmente las correspondientes a los microcontroladores de 8 bits que manejamos en este libro, consisten en sumar, restar, hacer operaciones lgicas AND, OR, XOR, tambin rotar un dato de 8 bits, moverlo de un sitio a otro y muy poquito ms. Si deseamos hacer una multiplicacin hay que realizar una subrutina que repita las sumas necesarias hasta conseguir el resultado. Es un lenguaje de bajo nivel. El programa Ensamblador lo nico que hace es traducir los mnemnicos con los que se escriben las instrucciones a cdigo binario para que el procesador sea capaz de interpretarlas y ejecutarlas. Los lenguajes de alto nivel tienen instrucciones ms potentes: saben multiplicar, sacar la raz cuadrada y realizar funciones y operaciones mucho ms complicadas que las que pueden hacer las instrucciones de la mquina. Pero como la mquina es la misma, la realizacin de esas instrucciones se tiene que hacer con programas de instrucciones elementales. Cada instruccin de alto nivel se convierte en un subprograma de instrucciones de bajo nivel. Por eso para que el procesador pueda ejecutar las instrucciones de un lenguaje de alto nivel precisa otro programa que las descomponga en las instrucciones de bajo nivel correspondientes. A estos programas se les llama compiladores. Los compiladores se encargan de traducir un programa confeccionado con instrucciones de alto nivel a otro equivalente con instrucciones de bajo nivel. Hay una variante de estos programas que reciben el nombre de intrpretes que realizan dicha traduccin pero instruccin por instruccin, o sea, traducen una instruccin de alto nivel en las correspondientes de bajo nivel que ejecuta el procesador y a continuacin pasan a la siguiente. 1 La definicin del trmino mnemnico, puede ser revisado en el vocabulario tcnico, al final de este documento. 71. 3.1.1.- Programa fuente en Lenguaje Ensamblador: El programa fuente esta compuesto por una sucesin de lneas de programa. Cada lnea de programa esta compuesta por 4 campos separados por uno o ms espacios o tabulaciones. Estos campos son: [Etiqueta] [Comando] [Operando(s)] [;Comentario] La etiqueta es opcional. El comando puede ser un mnemnico del conjunto de instrucciones. El operando esta asociado al comando, si no hay comando no hay operando, e inclusive algunos comandos no llevan operando. El comentario es opcional para el compilador aunque es buena prctica considerarlo obligatorio para el programador. 3.1.2.- Conjunto de instrucciones El conjunto de instrucciones de los microprocesadores PIC 16C5X consiste en un pequeo repertorio de solo 33 instrucciones de 12 bits, los de gama media contiene hasta 35 instrucciones y la gama alta (PIC 17 y PIC 18) contiene hasta 77 instrucciones, que pueden ser agrupadas para su estudio en tres a cinco grupos. Si se las divide en tres grupos, se tiene en primer lugar el grupo de las instrucciones que operan con bytes y que involucran algn registro de la memoria interna. En segundo lugar se analizaran las instrucciones que operan solo sobre el registro W y que permiten cargarle una constante implcita o incluida literalme