SlideShare una empresa de Scribd logo
1 de 249
Descargar para leer sin conexión
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
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 Merchán
f.......................................................
Luís Alonso Chacón Buñay
C E R T I F I C O :
Haber revisado minuciosamente el Proyecto Final de Titulación, De los Sres.
Eduardo Mendoza Merchán, y Luís Chacón Buñay, que se ajusta a las normas
establecidas por la Universidad Politécnica Salesiana Sede Guayaquil, por tanto,
autorizo su presentación para los fines legales pertinentes.
………………………………….
Ing. Luís Córdova Rivadeneira
DIRECTOR DEL PROYECTO
Guayaquil, 30 de Abril del 2007
ACTA DE CESIÓN DE DERECHOS DEL PROYECTO FINAL
Conste por el presente documento la cesión de los derechos del Proyecto Final de
Titulación, de conformidad con las siguientes cláusulas:
PRIMERA.- El ing. Luís Córdova R. por sus propios derechos, en calidad de
Director de Proyecto Final, Eduardo Mendoza M. y Luís Chacón B., por sus propios
derechos, en calidad de autores de Proyecto Final.
SEGUNDA.-
UNO.- El Sr. Eduardo Mendoza M. y Luís Chacón B., realizaron El Proyecto Final
titulado “Aplicación de Lenguaje C para microcontroladores PIC y Visual C# en el
desarrollo de un Sistema de Control de Acceso Peatonal”, para optar por el Título de
Ingeniero en Electrónica, especialidad Sistemas Industriales en la Universidad
Politécnica Salesiana Sede Guayaquil.
DOS.- Es política de la Universidad que el Proyecto Final se apliquen y materialicen
en beneficio de la comunidad.
TERCERA.- Los comparecientes Ing. Luís Córdova R., en calidad de Director de
Proyecto Final, los Sres. Eduardo Mendoza M. y Luís Chacón B., como autores, por
medio del presente instrumento, tiene a bien ceder en forma gratuita sus derechos en
el Proyecto Final titulado “Aplicación 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 Politécnica Salesiana: y, conceden autorización para que la
Universidad pueda utilizar el proyecto en su beneficio y/o de la comunidad, sin
reserva alguna.
CUARTA.- Aceptación.- Las partes declaran que aceptan expresamente todo lo
estipulado en la presente cesión de derecho.
Para constancia suscriben la presente cesión de derechos, en la ciudad de Guayaquil,
a los treinta días de mes de Abril del año dos mil siete.
----------------------------------------
Ing. Luís Córdova Rivadeneira
DIRECTOR DE PROYECTO FINAL
-------------------------------------- -------------------------------------
Eduardo Mendoza Merchán Luís Chacón Buñay
AUTOR AUTOR
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 superación personal y profesional,
a mi hermano René, que me a brindado todo su
apoyo moral, y económico sin los cuales no
hubiese podido culminar mi carrera, y
principalmente a Dios que me dado la sabiduría
necesaria para la culminación 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 cariño a Dios y a mis
padres quiénes me han apoyado para alcanzar una
de mis metas anheladas, y así poder servir mejor a
quiénes el Señor me confíe. a mis sobrinos por
abrir un nuevo camino para esperarlos junto a mi
familia querida, a la Fuerza Aérea Ecuatoriana
que me apoyo con el trabajo. En fin a todos que
hoy no recuerdo y fueron una inspiración en su
momento, gracias a la vida por permitirme crecer,
espero devolver de alguna manera esta alegría.
Luís.
A G R A D E C I M I E N T O
A la Universidad Politécnica Salesiana sede Guayaquil,
que nos permitió formarnos como profesionales, crecer
como personas, y obtener un Título Académico. De
manera muy especial al Ingeniero Luís Córdova, por su
total colaboración en este trabajo, y al Ing. Raúl
Álvarez G. que gracias a su intervención se logró una
exitosa culminación. Además nuestra gratitud sincera
para aquellas personas que de una u otra manera
ayudaron en el desarrollo del presente trabajo.
Eduardo Mendoza M.
Luís Chacón B.
CONTENIDO
AUTORÍA
CERTIFICACIÓN
ACTA DE CESIÓN DE DERECHOS
DEDICATORIA
AGRADECIMIENTO
ÍNDICE GENERAL
ÍNDICE DE FIGURAS
ÍNDICE DE TABLAS
RESUMEN
OBJETIVOS
JUSTIFICACIÓN
METODOLOGÍA
INTRODUCCIÓN
1.- INTRODUCCIÓN 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.- ANÁLISIS DE COSTOS.
6.- CONCLUSIONES Y RECOMENDACIONES.
7.- BIBLIOGRAFÍA
8.- ANEXOS
9.- VOCABULARIO TÉCNICO
ÍNDICE GENERAL
Autoría I
Certificación II
Acta de sesión de derechos III
Dedicatoria IV
Agradecimiento V
Contenido VI
i.- Resumen 1
ii.- Objetivos 3
iii.- Justificación 3
vi.- Metodología 4
v.- Introducción 5
1.- CAPÍTULO I:
Sistemas de control de acceso
1.1.- Antecedentes: 7
1.2.- Nociones del Control de Acceso Discrecional. 8
1.2.1.- Autorización Positiva y Negativa. 8
1.2.2.- Autorización Fuerte y Débil. 6
1.2.3.- Autorizaciones Explícitas e Implícitas 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.- Análisis 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
1.4.1.- Control de Acceso basadas en teclados y bandas magnéticas 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 identificación biométrica 19
a) Falsa aceptación 21
b) Falso rechazo 21
1.4.5.- Lectores subcutáneos de huellas dactilares 22
i.- Funcionamiento: 23
1.4.6.- Otros controles de acceso 24
1.5.- Cerraduras Especiales 25
1.5.1.- Cerradura electromagnética 26
1.5.2.- Cerradura electromecánica (Multipla 2000) 26
1.5.3.- Cerradura electrónica Rench 27
1.5.4.- Cerradura electrónica para múltiples aplicaciones 28
2.- CAPÍTULO II
Microcontroladores PIC de gama media.
2.1.- Introducción: 29
2.2.- El microcontrolador PIC 30
2.2.1.- Juego de instrucciones y entorno de programación 31
2.2.2.- Programación del PIC 31
2.2.2.- Tamaño de palabra 33
2.2.3.- Características generales 33
2.2.4.- Variaciones del PIC 34
a).- PICs modernos 34
b).- Clones del PIC 34
c).- PICs WírelesS 34
e).- PICs para procesado de señal (dsPICs) 35
2.2.4.- PICs más comúnmente 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
2.3.1.- El procesador 38
2.2.2. Memoria de programa 40
i) ROM con máscara 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. Líneas de E/S para los controladores de periféricos 44
2.2.5. Recursos auxiliares 45
2.4.-Descripción del PIC 16F877 46
2.4.1.- Características del PIC 16F877 46
2.4.2- Descripción de los puertos 48
3.- CAPÍTULO 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.- Características y desventajas de Leguaje C 64
3.4.- El Compilador de C para PIC 65
3.4.1 Introducción 65
3.4.2.- La programación en PIC C 67
3.4.3.-Análisis de un problema sencillo 67
3.4.4.- Estructura de un programa en C 68
3.4.5.- Librerías y funciones 69
3.4.5.1.- la función main() 69
3.4.5.2.- Archivos de cabecera (#include) 70
3.4.5.3.- función 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.- librería LCD 78
3.4.5.13.- Librería 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 análogo a digital 85
3.4.5.18.- Generación de PWM 88
4.- CAPÍTULO IV
Análisis y desarrollo del Sistema de Control de Acceso.
4.1 Descripción de Sistema 91
4.2.- Selección de dispositivos y lenguajes de programación 96
4.2.1.- Selección del microcontrolador 97
4.2.2.- Selección del lenguaje de programación del microcontrolador 101
4.2.3.- Elección del software y hardware para el grabado del PIC . 105
4.2.4.- Selección del Lenguaje de programación del ordenador 107
4.3.- Análisis de los programas y librerías de los microcontroladores PIC. 107
4.3.1.- Programa microcontrolador esclavo 108
4.3.1.1.- La librería pantalla. 109
i).- Función beep() 109
ii).- Función alarma() 109
iii).- Función pantalla() 110
4.3.1.2.- La librería selapart.h 112
4.3.1.3.- La librería selclave.h 116
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.- Selección del lenguaje C# 142
4.3.3.2.- Selección de la base datos 142
4.3.3.3.- Análisis del código fuente proporcionado en C# 143
4.3.3.4.- Análisis de librería wcltextboxserial.dll 145
4.3.3.5.- Pasos para la comunicación serial en C# 146
4.3.3.6.- Pasos para la conexión 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.- Análisis del circuito eléctrico 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 energía 163
4.5.- Diseño de las placas de circuito impreso 165
CAPITULO V
Análisis de de costos
5.1.- Preliminares 173
5.2.- Determinación del costo del proyecto 173
5.2.1.- Cálculo del costo de mano de obra 173
5.2.2.- Cálculo del Costo de elementos y materiales 175
5.2.3.- Cálculo del Costo de fabricación de tarjetas 176
5.2.4.- Cálculo del costo por uso del ordenador 178
5.2.5.- Cálculo del costo neto del sistema de control de acceso 178
5.2.6.- Costo final del sistema 179
5.3.- Análisis de los costos en función del número de unidades fabricadas 179
5.4.- Análisis de sistemas análogos al control de acceso peatonal 183
5.4.1.- Control de acceso intemperie 183
5.4.2.- Teclado de combinación 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.- Bibliografía
7.1.- Libros 191
7.2.- Direcciones electrónicas 190
8. – Anexos
A) El Bus I2C (Inter Integrated Circuit) 194
B) Interfaz RS-232 199
C) El Circuito Integrado MAX-232 206
D) Migración del PIC16F87x a PIC16F87xA 208
E.- Manual de Usuario 216
9.- Vocabulario Técnico
9.1.- Glosario 222
9.2.- Vocabulario 227
ÍNDICE DE FIGURAS:
Capítulo I
1.1. Distintos mecanismos de control de acceso 7
1.2. Terminología utilizada en relación con seguridad y control de acceso 11
1.3. Cuatro mecanismos complementarios de un sistema de control de acceso 12
1.4. Tecnologías que apoyan el mecanismo de autenticación 14
1.5. a) Tarjeta chip, b) tarjeta magnética, 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 subcutáneos de huellas dactilares 23
1.13 Lector de huellas dactilares T4210 23
1.14 Detalle de la capa subcutánea de la piel 24
1.15 Reflexiones en lector subcutáneo de huellas dactilares 25
1.16 Controles de acceso peatonal y vehicular 26
1.15 Cerradura electromagnética. 26
1.16 Cerradura múltipla 2000 26
1.17 Cerradura electrónica Rench 27
1.18 Cerradura para múltiples aplicaciones 28
Capítulo 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 físicas del Microcontrolador PIC 16F877 53
Capítulo 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
Capítulo IV
4.1 Esquema general del sistema de Control de Acceso 91
4.2 Disposición física de los componentes del sistema 92
4.3 Pantalla del módulo LCD para ingreso de número de apartamento 94
4.4 Pantalla del módulo LCD para ingreso de clave 95
4.5 Pantalla del módulo LCD con mensaje de puerta abierta 95
4.6 Pantallas del módulo LCD si la clave ingresada es incorrecta 95
4.7 Pantalla del módulo 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 programación 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 conexión del altavoz del sistema 110
4.14 Foto del altavoz usado en el proyecto 110
4.15 Simulación de los mensajes mostrados por el LCD 111
4.16 Foto del módulo LCD usado en el proyecto 111
4.17 Conexión de los pines del módulo LCD 112
4.18 Diagrama de flujo de la librería sel-apart 113
4.19 Diagrama de flujo de la librería selclave 117
4.20 Diagrama de flujo del programa principal de los esclavos 122
4.21 Diagrama de flujo para la interrupción por I2C para los esclavos 123
4.22 Diagrama de flujo para la interrupción por desbordamiento del timer1 124
4.23 Diagrama de flujo del programa principal maestro 130
4.24 Diagrama de flujo de interrupción RS-232 131
4.25 Diagrama de flujo de interrupción por desbordamiento de timer0 132
4.26 Propiedades de textBox 145
4.27 Propiedades de textBox para la dll 146
4.28 Selección 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 Selección del menú mantenimiento 152
4.33 Menú mantenimiento 153
4.34 Diagrama de flujo del programa mantenimiento de base de datos 153
4.35 Selección del menú cambiar clave pic 154
4.36 Diagrama de flujo del programa cambiar clave pic 154
4.37 Selección 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 conexión 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 Selección del conector DB9 para PCB 167
4.48 Diseño final de la placa de circuito Maestro 167
4.49 Diseño final de la placa de circuito Esclavo 168
4.50 Diseño 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
Capítulo V
5.1 Relación costos fijos costos variables para una unidad 180
5.2 Relación costos fijos costos variables para producir 10 sistemas 181
5.3 Relación costos fijos costos variables para producir 100 sistemas 182
5.4 Relación costos fijos costos variables de los tres modelos 182
5.5 Variación de los precios debido al incremento de la producción 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 comunicación I2C 196
b.1 Estructura de una caracter que se trasmite a través de RS-232 204
c.1 Disposición física de las patillas en el MAX232 206
c.2 Circuito básico 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 Menús 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
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:
Capítulo II
2.1 Características del PIC 16F877 47
2.2 Descripción de los pines del PIC 16F877 50
Capítulo III
3.1 Resumen de instrucciones del lenguaje ensamblador 57
3.2 Formatos de salida para la función 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
Capítulo IV
4.1 Asignación de pines del LCD al microcontrolador 113
4.2 Número de apartamento y posiciones de memoria 116
4.3 Consumo de energía por elementos 164
4.4 Consumo de energía por circuito 164
Capítulo V
5.1 Costo de mano de obra 174
5.2 Costo de materiales 175
5.3 Costo de elaboración de tarjetas 176
5.4 Costo por uso de ordenador 178
5.5 Costo de elaboración de tarjetas 180
5.6 Costo por unidad para producir 10 sistemas 181
5.7 Costo por unidad para producir 1000 sistemas 181
Anexos
B1 Lista de señales RS-232 199
B2 Asignación de pines según EIA y CCITT 201
B3 Niveles de voltaje para 1 y 0 lógico 202
INTRODUCCIÓN
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
información valiosa. Vemos cómo los castillos y fortalezas fueron construidos de tal forma que
sus principales vías de acceso eran diseñadas con puentes que se elevaban o recogían
mediante mecanismos manuales, y muchas otras formas, de tal manera que la persona que
intentaba acceder a estas edificaciones además de identificarse con su nombre, debían
hacerle un reconocimiento visual de las características de ella/él o de un único elemento,
como por ejemplo un anillo.
En la actualidad, tecnológicamente 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 métodos para procesar la información y los mecanismos de
validación han sufrido modificaciones sustanciales y constantes. Hoy en día tenemos
controles biométricos, magnéticos, 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 electrónicos 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 programación de los microcontroladores se ha realizado desde su invención por medio de
lenguaje Ensamblador, por lo que en la actualidad la mayoría de programadores lo utilizan,
encontrándose gran cantidad de información tanto en textos como en el Internet. Desde hace
unos años atrás se han venido desarrollando nuevas plataformas de programación basadas
en lenguajes tradicionales de alto nivel, tales como Pascal, Basic, C, entre los principales. El
objetivo, es hacer que la programación de los microcontroladores se oriente a solucionar el
problema, dejando a un lado la laboriosa configuración de registros que se realiza en los
lenguajes ensambladores. La programación en estos lenguajes es de hecho más sencilla,
debido a que sus palabras reservadas y estructuras son similares al lenguaje natural en
idioma ingles, lo que hace fácil recordarlas y el nombre de estas nos sugiere su aplicación de
manera intuitiva. De igual forma su estructura y bucles son simples y de fácil aplicación, muy
similares a las utilizadas en los lenguajes de computadoras.
La programación en lenguaje C, es una de las más 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 más conocidos en Internet. Pic C es uno de los compiladores
de lenguaje C que más usuarios ha acaparado, debido principalmente a que utiliza C ANSI, la
sencillez con que gestiona las interrupciones, inserción de código en Ensamblador, la gran
cantidad de librerías 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 través 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 características principales del sistema
desarrollado, esta basado en las comunicaciones entre dispositivos, para lo cual se ha
implementado el Bus I2C para la comunicación entre microcontroladores y la interfaz de
comunicación RS-232 para la comunicación entre Microcontrolador y PC.
La elaboración del presente trabajo es la recopilación de un cúmulo de conocimientos
tecnológicos 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 Merchán
Luís Chacón Buñay
CAPÍTULO 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 protección se ha visto
motivada inicialmente por temor que personas ajenas al entorno, delincuentes o
enemigos puedan robar y/o extraer material valioso o información de acuerdo a
criterios personales, sociales, comerciales, etc. Muchas obras majestuosas como por
ejemplo palacios, bases militares, se caracterizaban por sus muy particulares
métodos de acceso, los cuales fueron construidos de tal forma que sus principales
vías de acceso eran diseñadas con puentes que se elevaban mediante mecanismos
especiales, quedando así abajo un círculo de agua y caimanes que rodeaban dicho
castillo o fortaleza. En tal sentido, el acceso a estas edificaciones no sólo era posible
suministrando un nombre. En efecto, las palabras claves (passwords), eran utilizadas
por algunas personas para acceder al castillo, así como señas de reconocimiento
visual, o algún 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 tecnología, pero en el fondo persisten las razones y motivos para
mantener mecanismos de control de acceso sobre áreas e información que se desea
proteger. Los mecanismos de validación han sufrido modificaciones: hoy en día
tenemos controles biométricos, magnéticos, visuales, etc. (ver figura 1.1).
Figura 1.1 Distintos mecanismos de control de acceso
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 autorización, que indican para
cada sujeto, las acciones que puede realizar sobre cada objeto del sistema.
Con esta estrategia, si un usuario desea realizar una operación sobre un objeto, se
busca en el sistema una regla de autorización que le dé permiso para realizar esa
operación 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 autorización de acceso a otros usuarios. La forma más
común 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 continuación se realiza un breve
análisis de las principales variantes de estas estrategias:
1.2.1.- Autorización Positiva y Negativa.
Según la autorización positiva, la existencia de la regla de autorización indica que se
puede realizar el acceso, mientras que la no existencia de la misma prohíbe el acceso.
En cambio mediante la autorización negativa, el acceso se permite sólo cuando no
existe una regla de autorización negativa, mientras que la existencia de la regla
prohíbe el acceso.
La principal diferencia es que en el caso de autorización positiva, si un sujeto no
tiene autorización, en algún momento se puede producir una propagación de
privilegios de tal forma que otro sujeto le ceda el acceso, en cuyo caso estaría
burlando el control de acceso. Eso no puede suceder con el mecanismo de
autorización negativa.
1.2.2.- Autorización Fuerte y Débil.
Autorizaciones fuertes, tanto positivas como negativas son aquellas que no pueden
ser invalidadas, mientras que las débiles sí pueden ser invalidadas por otras
autorizaciones fuertes o débiles, de acuerdo a unas reglas específicas.
1.2.3.- Autorizaciones Explícitas e Implícitas.
Las autorizaciones implícitas son automáticamente derivadas por el sistema desde el
conjunto de autorizaciones explícitas, de acuerdo a un conjunto de reglas. Por
ejemplo, una regla de derivación puede ser usada para expresar que un sujeto puede
acceder a un objeto dado sólo si otro sujeto tiene un acceso explícito denegado.
Existen diversas políticas de propagación de autorizaciones dependiendo entre otras
cosas del tipo de sujeto de que se trate. Por ejemplo, si se trata de roles que forman
una jerarquía, al asignar una autorización positiva, ésta se propagaría hacia todos los
roles superiores en la jerarquía, y si la autorización es negativa, se propagaría hacia
los roles inferiores en la jerarquía. En cambio, si se trata de grupos, la aproximación
más utilizada consiste en la propagación de la autorización, 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 más de sus
componentes. Por ejemplo, restringir el acceso de datos de personas que cobre más
de 50 millones al año.
Las bases de datos que utilizan esta política 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 clasificación 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 más 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
seguridad’ y un ‘conjunto de categorías’. Cada ‘nivel de seguridad’ es un elemento
de un conjunto jerárquicamente ordenado como ‘alto secreto’ (TS), ‘secreto’ (S),
‘confidencial’ (C) y ‘sin clasificar’ (U), donde TS > S > C > U. El conjunto de
categorías es un subconjunto de un conjunto desordenado, donde los elementos
pueden reflejar áreas funcionales o diferentes competencias como por ejemplo
‘finanzas’, ‘administración’, ‘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 gestión 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 podrían ser Cajero y Contable, donde
cada uno de ellos tiene un conjunto de privilegios. Algunos de estos privilegios
pueden ser como en este caso jerárquicos 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 técnica de control de acceso mucho más flexible que las anteriores, pero con
poca experiencia en su utilización 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 estáticas como
dinámicas, por ejemplo considerando factores como las horas del día en las que
estará vigente una autorización
1.3.- Análisis general de los sistemas de control de acceso.
El presente capítulo 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 demás
complementos que han ido evolucionando de forma paralela al avance de la
tecnología, 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 sesión 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 mínimo efecto sobre los costos y el esfuerzo
de uso.
Con el objeto de facilitar el entendimiento de los conceptos y terminología a ser
utilizadas en este capítulo, en la figura 1.2 se muestra la relación entre algunos de
los términos manejados. En este sentido, los “servicios de seguridad” podrían incluir:
integridad, confidencialidad, disponibilidad y control de acceso
Figura 1.2. Terminología utilizada en relación con seguridad y control de acceso
En la medida que se ha avanzado en los conceptos de seguridad, se puede observar
que nos vemos obligado a profundizar en términos tecnológicos. Es así como nuevas
condiciones deben ser identificadas para poder establecer los mejores mecanismos de
seguridad y de control de acceso a la información. En tal sentido, podemos reconocer
que existen, al menos, cuatro (4) mecanismos complementarios de un sistema de
control de acceso, a saber: (a) identificación de usuario, (b) autenticación de usuario,
(c) la verificación de la autenticación, y (d) re-autenticación.
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á diseñado 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
autentificación de un usuario, es decir, determinar que un usuario es quien dice ser.
Esto se realiza por medio de “algo que se conoce”, representado básicamente por: (a)
una contraseña o clave de acceso (password), (b) número de identificación 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
sólo 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 crédito o débito, (c) un token, (d) algún dato
como la cédula de identidad o pasaporte, entre otros.
1.3.3.- El tercer mecanismo de un sistema de control de acceso está diseñado
debido a la debilidad inherente que tiene una contraseña o clave de acceso
(password). Su propósito u objetivo es el probar la autenticidad del usuario mediante
la utilización de, por ejemplo, “algo que se es”, pudiendo utilizar características
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 verificación de autenticación.
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-
autenticación. Esto se puede llevar a cabo mediante procesos automáticos que se
“despiertan” según la permanencia del usuario que está interactuando con un
determinado sistema.
Cada uno de estos mecanismos esta apoyado por una “tecnología 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 tecnologías están presentes en una gran variedad
de “productos de seguridad”. La figura 1.4, muestra las diferentes tecnologías que
apoyan el mecanismo de autenticación de usuarios y su relación con la complejidad
de implantación.
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 tecnologías usadas, la
integración en red con ordenadores y bases de datos, etc.
Figura 1.4. Tecnologías que apoyan el mecanismo de autenticación
A continuación 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 magnéticas y Tarjetas Chip
• Tarjetas Inteligentes
• Etiquetas y Llaveros Inteligentes
• Lector de huellas dactilares o escáner
• Lectores subcutáneos de huellas dactilares
• Torniquetes, molinetes, puertas batientes
1.4.1.- Control de Acceso basadas en teclados, bandas magnéticas, y Tarjetas
Chip
Existen una infinidad de modelos de sistemas de control de acceso, sean estos
autónomos, o dependientes de un ordenador, los mas comunes en nuestro medio, y
que de cierta forman han comenzado a ser desplazados en los países desarrollados
por las nuevas tecnologías son los sistemas basados en teclados, tarjetas con banda
magnéticas y tarjetas chip, Aunque no están siendo desplazados del todo, puesto que
en muchos modelos se complementan con otras tecnologías para generar sistemas
mas eficaces.
Figura 1.5 a) Tarjeta chip, b) tarjeta magnética, 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 autónoma, 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 magnéticas contienen una banda magnética (llamada a veces magstripe
como abreviación de magnetic stripe) es toda aquella banda oscura presente en
tarjetas de crédito, abonos de transporte público o carnets personales que está
compuesta por partículas ferromagnéticas embebidas en una matriz de resina
(generalmente epoxi) y que almacenan cierta cantidad de información mediante una
codificación determinada que polariza dichas partículas. La banda magnética es
grabada o leída mediante contacto físico pasándola a través de una cabeza
lectora/escritora gracias al fenómeno de la inducción magnética.
Estas tarjetas contrastan con la nueva generación de tarjetas inteligentes que
contienen un chip con contactos metálicos, o tarjetas sin contacto que usan un campo
magnético o radiofrecuencia (RFID) para la lectura a una distancia media.
Las tarjetas chip, muy usadas hoy en día en la telefonía (tarjetas telefónicas),
contiene en su interior un número de serie que es único y que, además, es imposible
de modificar. Eso nos indica que la tarjeta además de ser único sobre todo el mundo
es imposible de alterar. Entonces, se aprovecha eso para diseñar sistemas de
seguridad capaz de leer la parte inicial de la tarjeta, comparar el número con los
almacenados en la memoria E2PROM interna del circuito y permitir o impedir el
acceso de la persona a determinado lugar o recinto.
De nada sirve que el sistema de lectura de la tarjeta explore profundamente en la
memoria para garantizar que el código es válido 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 zócalo lector
de la tarjeta debe estar montado por un lado y la circuitería 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
través de cualquier puerta conectada, a cualquier hora del día. Las personas sin el
nivel de seguridad suficiente no tendrán acceso a las zonas reservadas.
Figura 1.7 Control de acceso con tarjeta inteligente
Mediante la tecnología de las tarjetas inteligentes, los lectores de tarjetas están
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 magnética, las tarjetas
son leídas de forma automática en el instante en que la presente. EL lector leerá su
tarjeta a través de su cartera en ¼ de segundo.
La mayoría de las Tarjetas Inteligentes, utilizan la reconocida tecnología para la
lectura basada en Radio Frecuencia (RF). Esta proporciona una red de lectura
consistente que no está afectada por la mayoría de las condiciones externas.
Figura 1.8 Tarjetas Inteligentes
Cada lector de Tarjetas Inteligentes transmite un campo de frecuencia de 125 Khz.
(campo electromagnético), 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 rápidamente 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 metálica, podrá leer la tarjeta a través de ambos lados
del escáner. (Otra ventaja sobre las tarjetas de banda magnética).
Por otro lado, el microchip de la tarjeta Inteligente, es un dispositivo pasivo que
contiene un código de fábrica único y que no puede ser duplicado. Esto hace de las
tarjetas inteligentes un sistema muy seguro. Al entrar la tarjeta a una distancia de
entre 100mm y 150mm del lector, se activa automáticamente mediante la energía del
campo.
A pesar de que la tarjeta será leída con mayor velocidad dependiendo del ángulo, la
posición exacta de la tarjeta dentro del campo no es importante (al contrario que los
lectores de banda magnética). Una vez activada, la tarjeta responde transmitiendo su
número único de identificación mediante una señal de 125KHz. Los 34 billones de
combinaciones posibles hacen prácticamente imposible la duplicación. Cada número
de identificación de las tarjetas es testado para comprobar la seguridad y los datos,
garantizando que el número no se leerá de forma incorrecta.
Las tarjetas inteligentes no tienen batería. Esto significa que cada tarjeta tiene una
vida teóricamente infinita, independientemente del número de veces que se utilice.
1.4.3.- Etiquetas y Llaveros Inteligentes
Las etiquetas y llaveros inteligentes utilizan la misma tecnología basada en
microchips que las tarjetas inteligentes pero poseen una antena más pequeña
compuesta de bobina de cobre con un núcleo de ferrita de hierro. El chip y la antena
están sellados en una funda de cristal endurecido de alta calidad, similar a la utilizada
en los chips para la identificación de animales. Debido a que son más pequeños, la
distancia de lectura es también inferior. Los llaveros son de un tamaño reducido e
incorporan su número propio de identificación impreso en el exterior para remisión.
Figura 1.9 Llavero y tarjeta inteligente.
Los llaveros inteligentes están disponibles en todo tipo de formas y tamaños; siendo
muy populares por sus dimensiones y por lo práctico que resulta para llevarlos.
1.4.4.- Sistemas de control de acceso basados en huellas dactilares.
1.4.4.1.- La identificación biométrica
La identificación biométrica es la verificación de la identidad de una persona basado
en características 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 métodos de
identificación biométrica, como aquellos usados en las películas de James Bond, el
inolvidable agente 007, que nos parecían increíbles hace unos años, son ahora una
realidad.
Figura 1.10 Dedo pulgar y su huella dactilar
Aunque los estudios biométricos no son perfectos, sí son una herramienta muy
poderosa para identificar personas. De todos los sistemas de identificación
biométrica existentes, las huellas dactilares son las únicas legalmente reconocidas
como prueba fidedigna de identidad. Es un sistema que además de ser efectivo, es
cómodo de aplicar y la autenticación se obtiene rápidamente.
Las huellas digitales son características exclusivas de los primates. En la especie
humana se forman a partir de la sexta semana de vida intrauterina y no varían en sus
características a lo largo de toda la vida del individuo. Son las formas caprichosas
que adopta la piel que cubre las yemas de los dedos. Están constituidas por
rugosidades que forman salientes y depresiones. Las salientes se denominan crestas
papilares y las depresiones surcos interpapilares. En las crestas se encuentran las
glándulas sudoríparas. 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 facsímil 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 están menos propensos que los
pulgares a sufrir accidentes que dejen cicatriz.
Son únicas e irrepetibles aún en gemelos idénticos, debido a que su diseño no está
determinado estrictamente por el código genético, sino por pequeñas variables en las
concentraciones del factor del crecimiento y en las hormonas localizadas dentro de
los tejidos. Cabe señalar que en un mismo individuo la huella de cada uno de sus
dedos es diferente.
Para la identificación de huellas, es conveniente contar con la traza digital completa,
no obstante, pueden utilizarse fracciones de las mismas, con el inconveniente de que
mientras más pequeño 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 cómputo estándar. Envían información pre-procesada
al servidor.
• Servidor. Se encarga de la validación de la huella y del manejo de los
dispositivos ópticos que permiten almacenar y recuperar información
solicitada por el servidor.
• Software de aplicación. Basado en algoritmos para codificación y
comparación.
En el momento de la bioidentificación, 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.
¿Quién es la persona?
Este es el proceso de autenticación, es más técnico 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 escáner óptico, con aquella registrada previamente.
Cabe señalar que si el sistema usa las huellas digitales de los índices de ambas
manos, ofrecerá un mayor margen de seguridad.
La identificación biométrica por medio de huellas digitales tiene un grado de
seguridad tan alto debido a que nadie podría 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 aceptación.-
Cuando se acepta a alguien que No es; por ejemplo, alguien podría clonar una
credencial de identificación, o adueñarse de los números confidenciales de una
persona para hacer una transacción en perjuicio de su legítimo dueño y hasta
falsificar su firma.
b) Falso rechazo.-
Consiste en no aceptar a alguien que Sí es, pero su identificación no se pudo realizar.
Debido a múltiples motivos, como puede ser: que la imagen de la huella esté muy
dañada, 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.
Figura 1.11 lector de huellas dactilares
En lugar de las tradicionales llaves, por ejemplo los arrendatarios podrán escanear
sus huellas dactilares para acceder a su apartamento, un rascacielos en construcción
en el vecindario de Yaletown, situado en la parte baja de Vancouver."Esta tecnología
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
más barata, más solvente, y a todo el mundo al final le concierne la seguridad".
1.4.5.- Lectores subcutáneos de huellas dactilares
Se han desarrollado productos para el reconocimiento de las huellas dactilares
“Subcutáneas” las cuales se encuentran bajo la capa de piel muerta del individuo.
Esta tecnología, 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 electromagnéticas, similares a las ondas de
radio, en el tejido vivo y el flujo sanguíneo 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 tecnología de los
lectores de huellas subcutáneos le proporcionan mayor precisión 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 auténtica huella dactilar, todo en
menos de ½ segundo.
Figura 1.12 Lectores subcutáneos de huellas dactilares
Otros lectores de huellas dactilares basados en sistemas ópticos o de capacitancia no
funcionan en hasta un 30% de la población 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 pequeñas cantidades de grasa, tierra o marcas de rotulador.
El T4210 es un lector de huellas dactilares subcutáneos que se conecta directamente
en el puerto USB del PC. La sencillez de su diseño y la posibilidad de utilizarlo de
forma independiente lo convierten en una herramienta ideal para garantizar la
seguridad de su ordenador portátil 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
número de contraseñas necesarias. Simplemente con un dedo podrá acceder a la
información 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 rápido, intuitivo y no requiere un elevado conocimiento de
informática.
Figura 1.13 Lector de huellas dactilares T4210
Funcionamiento:
La gama de lectores biométricos subcutáneos utiliza una tecnología nueva que lee
debajo de la capa de piel (muerta) del individuo. Es en la capa subcutánea de la piel
donde reside la auténtica huella dactilar. El sistema funciona rebotando ondas
electromagnéticas, similares a las ondas de radio, en el tejido vivo y el flujo
sanguíneo bajo la piel de las personas.
Figura 1.14 Detalle de la capa subcutánea 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 subcutáneo 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 además de servir para
contabilizar el numero de individuos o vehículos que visitan dichos locales, generan
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
específicos y con funciones que se adaptan al las condiciones que se requieran. A
continuación 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 rápida
revisión 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 implementación depende en gran medida la eficacia del sistema.
1.5.1.- Cerradura electromagnética
Figura 1.5 Cerradura electromagnética.
Las cerraduras electromagnéticas 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 sujeción
para puertas de vidrio, madera, metal, etc. Entre sus principales características
podemos mencionar:
• Son altamente resistentes y duraderas.
• Su alimentación es de 12 V. DC (en la mayoría de los casos)
• Son ideales para lugares con alto nivel tránsito
1.5.2.- Cerradura electromecánica (Multipla 2000)
Figura 1.16 Cerradura múltipla 2000
Esta cerradura trabaja con un electroimán 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 características principales de esta cerradura son:
- Cierre más suave
- Traba más 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 fijación unificada
1.5.3.- Cerradura electronica Rench
Se trata de una cerradura electrónica accionada mediante un teclado. Utiliza 4 pilas
AA.
Figura 1.17 Cerradura electrónica 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 según
el modelo.
Las cerraduras Bancarias incluyen lo anterior más retardo, doble usuario, conexión a
alarma silenciosa e inhibición a distancia.
La Bancaria Plus incluye lo anterior más opciones de auditoria y display.
1.5.4.- Cerradura electrónica para múltiples aplicaciones
Figura 1.18 Cerradura para múltiples aplicaciones
Este tipo de cerradura es apta para múltiples aplicaciones: puertas de garajes,
ascensores, conexión y desconexión de sistemas de seguridad, etc. tiene siete códigos
para siete usuarios diferentes mas un master, Indicadores luminosos y sonoros: luz
verde es apertura, luz roja es pulsación incorrecta, alimentación 6 voltios (cuatro
pilas AA no incluidas) duración media estimada de las pilas, un año. Alimentación
desde el exterior de emergencia, indicador de batería baja Función apertura
inmediata
CAPÍTULO II
Microcontroladores PIC de gama media.
2.1.- Introducción:
Desde la invención del circuito integrado, el desarrollo constante de la electrónica
digital ha dado lugar a dispositivos cada vez mas complejos. Entre ellos los
microprocesadores y los microcontroladores, los cuales en la actualidad se
consideran básicos en las carreras de ingeniería electrónica.
Los “PIC” son una familia de microcontroladores tipo RISC fabricados por
Microchip Technology Inc. y derivados del PIC1650, originalmente desarrollado por
la división de microelectrónica de General Instruments. El nombre actual no es un
acrónimo, en realidad, el nombre completo es PICmicro, aunque generalmente se
utiliza como Peripheral Interface Controller (Controlador de Interfaz Periférico), 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 tenía 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
código simple almacenado en la ROM para realizar estas tareas; y aunque el término
no se usaba por aquel entonces, se trata de un diseño RISC que ejecuta una
instrucción cada 4 ciclos del oscilador.
En 1985, dicha división de microelectrónica de General Instruments se convirtió en
una filial y el nuevo propietario canceló casi todos los desarrollos, que para esas
fechas la mayoría estaban obsoletos. El PIC, sin embargo, se mejoró con EPROM
para conseguir un controlador de canal programable. Hoy en día multitud de PICs
vienen con varios periféricos incluidos (módulos de comunicación serie, UARTs,
núcleos de control de motores, etc.) y con memoria de programa desde 512 a 32.000
palabras (una palabra corresponde a una instrucción en ensamblador, y puede ser 12,
14 , 16 bits, 17 o 18 bits dependiendo de la familia específica 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 tamaño, suele ir incorporado en el propio dispositivo al que
gobierna. Esta última característica es la que le confiere la denominación de
«controlador incrustado» (embedded controller).
Figura 2.2 Tarjeta con microcontrolador PIC 16F84
El microcontrolador es un computador dedicado. En su memoria sólo reside un
programa destinado a gobernar una aplicación determinada; sus líneas de
entrada/salida soportan el conexionado de los sensores y actuadores del dispositivo a
controlar, y todos los recursos complementarios disponibles tienen como única
finalidad atender sus requerimientos. Una vez programado y configurado el
microcontrolador solamente sirve para gobernar la tarea asignada.
A continuación se realiza un breve resumen de los microcontroladores PIC:
2.2.1.- Juego de instrucciones y entorno de programación
El PIC usa un juego de instrucciones tipo RISC (Reduced Instruction Set Computer)
cuyo número 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 posición de memoria,
instrucciones de condicionamiento y de salto/retorno, implementación de
interrupciones y una para pasar a modo de bajo consumo llamada sleep.
Microchip proporciona un entorno de desarrollo freeware (de distribución gratuita)
llamado MPLAB que incluye un simulador software y un ensamblador. Otras
empresas desarrollan compiladores C y BASIC. Microchip también vende
compiladores para los PICs de gama alta ("C18" para la serie F18 y "C30" para los
dsPICs) y se puede descargar una edición para estudiantes del C18 que inhabilita
algunas opciones después de un tiempo de evaluación. Además del compilador C de
Microchip, existen otros compiladores tales como CCS C, Hi tech, MiKroC,.
Para Pascal existe un compilador de código abierto, JAL, lo mismo que PicForth para
el lenguaje Forth. GPUTILS es una colección 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.- Programación del PIC
Para transferir el código de un ordenador al PIC normalmente se usa un dispositivo
llamado programador, ver figura 2.3. La mayoría de PICs que Microchip distribuye
hoy en día incorporan ICSP (In Circuit Serial Programming, programación serie
incorporada) o LVP (Low Voltage Programming, programación a bajo voltaje), lo
que permite programar el PIC directamente en el circuito destino. Para la ICSP se
usan los pines RB6 y RB7 como reloj y datos y el MCLR para activar el modo
programación aplicando una tensión entre 11 a 14 voltios DC. Existen muchos
programadores de PICs, desde los más simples que dejan al software los detalles de
comunicaciones, a los más complejos, que pueden verificar el dispositivo a diversas
tensiones de alimentación 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 más simples es el TE20, que utiliza la línea
TX del puerto RS232 como alimentación y las líneas DTR y CTR para mandar o
recibir datos cuando el microcontrolador está en modo programación. El software de
programación puede ser el ICprog, muy común entre la gente que utiliza este tipo de
microcontroladores.
Figura 2.3 programador PICSTART
Se pueden obtener directamente de Microchip muchos programadores/depuradores, a
continuación 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)
Emuladores
• ICE2000 (puerto paralelo, convertidor a USB disponible)
• ICE4000 (USB)
• PIC EMU
• PIC CDlite
2.2.2.- Tamaño de palabra
El tamaño 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 deberían llamar microcontroladores de 8 bits. Pero a diferencia de la
mayoría de UCPs, el PIC usa arquitectura Harvard, por lo que el tamaño de las
instrucciones puede ser distinto del de la palabra de datos. De hecho, las diferentes
familias de PICs usan tamaños de instrucción distintos, lo que hace difícil comparar
el tamaño del código 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.- Características generales
Los PICs actuales vienen con una amplia gama de mejoras de hardware incorporadas:
• Núcleos de UCP de 8/16 bits con Arquitectura Harvard modificada
• Memoria de programa de hasta 128 kilobytes
• Puertos de E/S (típicamente 0 a 5,5 voltios)
• Temporizadores de 8/16 bits
• Tecnología Nanowatt para modos de control de energía
• Periféricos serie síncronos y asíncronos: USART, AUSART, EUSART ,USB
• Conversores analógico/digital de 8-10-12 bits, hasta 16 canales.
• Comparadores de tensión
• Módulos de captura y comparación PWM
• Controladores LCD
• Periférico MSSP para comunicaciones I2C, SPI, PSP.
• Memoria EEPROM interna con duración de hasta un millón de ciclos de
lectura/escritura
• Periféricos 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 están 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 todavía vende versiones PROM y
EPROM de la mayoría de los PICs para soporte de aplicaciones antiguas o grandes
pedidos, la nueva generación 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 disponían de
hasta cuatro bancos de memoria para organizar su memoria, otras ventajas como
mayor capacidad de direccionamiento, 77 instrucciones y más ventajas que se vera
más adelante en detalle.
b) Clones del PIC
Por todos lados surgen compañías que ofrecen versiones del PIC más baratas o
mejoradas. La mayoría suelen desaparecer rápidamente. Una de ellas que va
perdurando es Ubicorn (antiguamente Scenix) que vende clones del PIC que
funcionan mucho más rápido que el original. OpenCores tiene un núcleo del
PIC16F84 escrito en Verilog.
c) PICs wíreless
El microcontrolador rfPIC integra todas las prestaciones del PICmicro de Microchip
con la capacidad de comunicación wireless UHF para aplicaciones RF de baja
potencia. Estos dispositivos ofrecen un diseño muy comprimido para ajustarse a los
cada vez más demandados requerimientos de miniaturización en aparatos
electrónicos.
d) PICs para procesado de señal (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 añaden varias
operaciones de DSP implementadas en hardware, como multiplicación con suma de
acumulador (multiply-accumulate, o MAC), barrel shifting, bit reversion o
multiplicación 16x16 bits.
2.2.4.- PICs más comúnmente usados
• PIC12C508/509 (encapsulamiento reducido de 8 pines, oscilador interno,
popular en pequeños diseños como el iPod remote)
• PIC16F84 (Considerado obsoleto, pero imposible de descartar y muy
popular)
• PIC16F84A (Buena actualización 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 común 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 continuación se lista
las principales características de la mas reciente familia de PICs de Microchip:
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 módulos CCP, configurables como
o Entradas de captura de 16 bits de resolución
o Modo Comparador de 16 bits de resolución
o Salida PWM hasta 10 bits de resolución
 156Khz Max con 8 bits de resolución
 39Khz max con 10 bits de resolución
• 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
• Conversor Análogo Digital 10 bits, hasta 16 canales
• Detector de bajo voltaje programable (LVD) (genera interrupción)
• Comparadores analógicos
• Programación 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 Protección de Código
• Generales
o Alimentación: 2.0V - 5.5V
o Rango temperatura
 Comercial: 0-70ºC
 Industrial: -40ºC a 85ºC
 Extendido: -40ºC a 125ºC
o 18 a 80 pines
2.2.5.- PICs en Internet
Se puede encontrar mucha información y documentación 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
(televisión de pago, Play Station...), lo que atrae la atención de los crackers; y
segundo, porque el PIC16C84 fue uno de los primeros microcontroladores fácilmente
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 también podemos enfocar el tema de Internet a la posibilidad que se tiene de
desarrollar con estos, Sistemas SCADA vía Web debido a que pueden adquirir y
enviar datos al puerto serial de un computador utilizando transmisión UART, el
protocolo RS232, y USB, o la posibilidad de implementar el protocolo TCP/IP
directamente.
2.3.- Arquitectura interna de un microcontrolador PIC
Un microcontrolador posee todos los componentes de un computador, pero con unas
características fijas que no pueden alterarse. Las partes principales de un
microcontrolador son:
• Procesador
• Memoria no volátil para contener el programa
• Memoria de lectura y escritura para guardar los datos
• Líneas de E/S para los controladores de periféricos:
a) Comunicación paralelo
b) Comunicación serie
c) Diversas puertas de comunicación (bus l2C, USB, etc.)
• Recursos auxiliares:
a) Circuito de reloj
b) Temporizadores
c) Perro Guardián («watchdog»)
d) Conversores AD y DA
e) Comparadores analógicos
f) Protección ante fallos de la alimentación
g) Estado de reposo o de bajo consumo(sleep).
A continuación se pasa revista a las características más 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 seguían la arquitectura de von
Neumann. Esta última se caracterizaba porque la UCP (Unidad Central de Proceso)
se conectaba con una memoria única, donde coexistían datos e instrucciones, a través
de un sistema de buses1
(véase figura 2.6).
Figura 2.5 En la arquitectura de «von Neumann» la UCP se comunicaba a través 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, además de propiciar el paralelismo, permite la adecuación del tamaño
de las palabras y los buses a los requerimientos específicos de las instrucciones y de
los datos. También 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 máquina pequeño y simple, de forma que la mayor parte
de las instrucciones se ejecuta en un ciclo de instrucción.
1
Los temas tratados están basados en el libro titulado “Microcontroladores PIC diseño práctico de
aplicaciones” de José M. Angulo Usategui 3era edición.
Otra aportación frecuente que aumenta el rendimiento del computador es el fomento
del paralelismo implícito, que consiste en la segmentación del procesador (pipe-line),
descomponiéndolo en etapas para poder procesar una instrucción 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 conjunción de tres técnicas:
• Arquitectura Harvard
• Computador tipo RISC
• Segmentación
2.2.2.Memoria de programa
Es una memoria EEPROM, es decir, de lectura solamente (ROM = Read Only
Memory) que se programa por tensión (no necesita luz ultravioleta); es decir que
basta con introducir los datos con cierto nivel de tensión 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
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, sólo pueden ser
leídos, 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 interrupción”. Eso significa que, cuando se provoca un reset, el
microprocesador vuelve a la posición 0000 del programa y cuando se produce una
interrupción, a la posición 0004. Estos retornos forzados deben ser considerados al
diseñar el programa del microprocesador; es decir que el reset se produce porque la
señal externa pone el contador de programa en 000 y todo el programa se reinicia. En
cambio, cuando ingresa una señal por la pata de interrupción el contador de
programa va a 004 y la acción que, en general ocurre, es que se comienza a leer un
subprograma particular. Cuando este subprograma termina, el contador de programa
recupera el número que tenía en el momento de arribar la interrupción.
El microcontrolador está diseñado para que en su memoria de programa se
almacenen todas las instrucciones del programa de control. No hay posibilidad de
utilizar memorias externas de ampliación.
Como el programa a ejecutar siempre es el mismo, debe estar grabado de forma
permanente. Los tipos de memoria adecuados para soportar esta función admiten
cinco versiones diferentes:
a) ROM con máscara
En este tipo de memoria el programa se graba en el chip durante el proceso de su
fabricación mediante el uso de «máscaras». Los altos costes de diseño e instrumental
sólo aconsejan usar este tipo de memoria cuando se precisan series muy grandes.
b) EPROM
La grabación de esta memoria se realiza mediante un dispositivo físico gobernado
desde un computador personal, que recibe el nombre de grabador. En la superficie de
la cápsula 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 diseño y
depuración de los programas, pero su coste unitario es elevado.
c) OTP (Programable una vez)
Este modelo de memoria sólo 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 grabación aconsejan este tipo de
memoria para prototipos finales y series de producción cortas.
d) EEPROM
La grabación es similar a las memorias OTP y EPROM, pero el borrado es mucho
más sencillo al poderse efectuar de la misma forma que el grabado, o sea,
eléctricamente. Sobre el mismo zócalo del grabador puede ser programada y borrada
tantas veces como se quiera, lo cual la hace ideal en la enseñanza y en la creación de
nuevos proyectos. El fabuloso PIC16F84 dispone de 64 K palabras de memoria
EEPROM para contener instrucciones y también tiene algunos bytes de memoria de
datos de este tipo para evitar que cuando se retira la alimentación se pierda
información.
Aunque se garantiza 1.000.000 de ciclos de escritura/borrado en una EEPROM,
todavía su tecnología de fabricación tiene obstáculos para alcanzar capacidades
importantes y el tiempo de escritura de las mismas es relativamente grande y con
elevado consumo de energía.
e) FLASH
Se trata de una memoria no volátil, 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 sólo 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 vehículos.
Por sus mejores prestaciones está sustituyendo a la memoria EEPROM para contener
instrucciones. De esta forma Microchip comercializa dos microcontroladores
prácticamente iguales, que sólo 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 línea de
PIC con memoria Flash cada vez más 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 sólo tiene implementados las primeras 48
posiciones (desde 00 a 2F en hexadecimal). De estos 48 registros, los primeros 12
son fijos y cumplen un propósito determinado, en tanto que desde el 13 hasta el 48
son registros de propósito general, en donde el programa puede indicar que se
almacene un dato para ser tomado más tarde.
Los datos que manejan los programas varían continuamente, y esto exige que la
memoria que contiene debe ser de lectura y escritura, por lo que la memoria RAM
estática (SRAM) es la más adecuada, aunque sea volátil.
Hay microcontroladores que también disponen como memoria de datos una de
lectura y escritura no volátil, del tipo EEPROM. De esta forma, un corte en el
suministro de la alimentación no ocasiona la pérdida de la información, 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
eléctricamente. Sin necesidad de sacar el circuito integrado del zócalo del grabador
pueden ser escritas y borradas numerosas veces.
2.2.4. Líneas de E/S para los controladores de periféricos
A excepción de dos pines destinad0s a recibir la alimentación, otras dos para el
cristal de cuarzo, que regula la frecuencia de trabajo, y una más para provocar el
Reset, los restantes pines de un microcontrolador sirven para soportar su
comunicación con los periféricos externos que controla.
Las líneas de E/S que se adaptan con los periféricos manejan información en paralelo
y se agrupan en conjuntos de ocho, que reciben el nombre de Puertos. Hay modelos
con líneas que soportan la comunicación en serie; otros disponen de conjuntos de
líneas que implementan puertos de comunicación para diversos protocolos, como el
I2C, el USB, etc. A continuación se muestra el diagrama de bloques del PIC
16F877A2
2
LA imagen así como algunos criterios han sido tomados de la colección de libros titulado: “Curso
práctico sobre Microcontroladores”, de la empresa Cekit
Figura 2.8 Diagrama de bloques General De un PIC de gama media
2.2.5. Recursos auxiliares
Según 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 más comunes se citan a los siguientes:
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 Guardián («watchdog»), destinado a provocar una reinicialización cuando
el programa queda bloqueado.
d) Conversores AD , para poder recibir y enviar señales analógicas.
e) Comparadores analógicos, para verificar el valor de una señal analógica.
f) Sistema de protección ante fallos de la alimentación.
g) Estado de Reposo, (sleep) en el que el sistema queda «congelado» y el consumo
de energía se reduce al mínimo.
2.4.-Descripción del PIC 16F877
En el presente proyecto de titulación, el control de acceso peatonal, se basa en 3
microcontroladores PIC 16F877A, de muy similares características con el 16F877,
por lo que se hace un análisis 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.- Características 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 comunicación digital de diferentes dispositivos. El Pic 16f877 es un
microcontrolador de gama media fabricado por Microchip, este modelo posee varias
características que hacen a este microcontrolador un dispositivo muy versátil,
eficiente y practico para ser empleado en la aplicación que posteriormente será
detallada.
Algunas de sus principales características se muestran a continuación:
• Soporta modo de comunicación 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 electrónicamente (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 características más relevantes del microcontrolador
PIC 16F877
CARACTERÍSTICAS 16F877
Frecuencia máxima 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
Número de pines 40
Interrupciones 14
Timers 3
Módulos CCP 2
Comunicaciones Serie MSSP, USART
Comunicaciones paralelo PSP
Líneas de entrada de CAD de 10 bits 8
Juego de instrucciones 35 Instrucciones
Longitud de la instrucción 14 bits
Arquitectura Harvard
CPU Risc
Canales Pwm 2
Pila Harware -
Ejecución En 1 Ciclo Máquina -
Tabla 2.1 características del PIC 16F877
2.4.2- Descripción de los puertos:
El PIC 16F877 tiene un total de 40 pines, de los cuales utiliza 7 para alimentación,
reset y oscilador. Los 33 restantes se distribuyen en cinco puertos desde el A hasta
el Puerto E, Los dispositivos periféricos se listan a continuación:
Dispositivos periféricos:
 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 módulos de Captura, Comparación, PWM (Modulación de Anchura de
Impulsos).
 8 canales para Conversor A/D de 10 bits.
 Puerto Serie Síncrono 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
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 descripción de
cada uno de sus pines.
Figura 2.9 Diagrama de Bloques del Microcontrolador PIC 16F877
En la siguiente tabla se resume la función de cada uno de los pines que contiene el
Microcontrolador PIC 16F877
NOMBRE
DEL PIN
PIN TIPO
TIPO DE
BUFFER DESCRIPCIÓN
OSC1/CLKI
N
13 I ST/MOS Entrada del oscilador de cristal / Entrada
de señal 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 programación 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 analógica 0
RA1: puede ser salida analógica 1
RA2: puede ser salida analógica 2 o
referencia negativa de voltaje
RA3: puede ser salida analógica 3 o
referencia positiva de voltaje
RA4: puede ser entrada de reloj el
timer0.
RA5: puede ser salida analógica 4 o el
esclavo seleccionado por el puerto serial
síncrono.
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 interrupción
externo.
RB3: puede ser la entada de
programación de bajo voltaje
Pin de interrupción
Pin de interrupción
RB6/PGC
RB7/PGD
39
40
I/O
I/O
TTL/ST
TTL/ST
Pin de interrupción. Reloj de
programación 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
comparación o salida PWN
RC3 puede ser la entrada o salida serial
de reloj síncrono 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 asíncrono
USART o el reloj síncrono.
RC7 puede ser el receptor asíncrono
USART o datos síncronos
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
analógica 5
RE1: puede ser escritura de control para
el puerto paralelo esclavo o entrada
analógica 6
RE2: puede ser el selector de control para
el puerto paralelo esclavo o la entrada
analógica 7.
Vss 12.3
1
P - Referencia de tierra para los pines lógicos
y de I/O
Vdd 11.3
2
P - Fuente positiva para los pines lógicos y
de I/O
NC - - - No está conectado internamente
Tabla 2.2 Descripción 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 distribución física real de los pines, así como una breve descripción
de la función que cumple cada uno de los pines
Figura 2.10 Diagrama de Bloques del Microcontrolador PIC 16F877
Las dimensiones exteriores del encapsulado se muestran en la gráfica 2.12, donde
además constan las distancias entre pines, medidas entre pines, etc., que son
necesarias para el diseño de la placa donde residirá el integrado.
Figura 2.11 Dimensiones físicas del Microcontrolador PIC 16F877
CAPÍTULO III
Lenguaje Ensamblador y Lenguaje C
«Un microcontrolador es un computador metido dentro de un circuito integrado.»
Son computadores muy pequeños 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 teléfono móvil, el teclado y el ratón del computador, etc.
Además, al ser tan pequeños tienen una potencia limitada y sólo sirven para realizar
una tarea. En el siglo XXI la realización de proyectos para aplicar los
microcontroladores en el gobierno y automatización de multitud de productos y
procesos se presenta como una ingente labor que va a requerir la colaboración de
multitud de profesionales y va a ofrecer una oportunidad inigualable para quienes
estén preparados adecuadamente.
Los proyectos con microcontroladores exigen un trabajo con hardware consistente en
adaptar Los pines del microcontrolador a los periféricos externos que hay que
controlar. Además, también requieren la confección de un programa con las
instrucciones precisas para que su ejecución origine el procesamiento de la
información 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
computador digital sólo acepta instrucciones en código binario y el Ensamblador
facilita su escritura al programador permitiendo expresarlas mediante
«mnemónicos1
», que son tres o cuatro letras significativas que referencian en inglés,
la operación que conlleva la instrucción. Por ejemplo, una instrucción 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 lógicas AND, OR, XOR, también rotar un dato de 8 bits, moverlo
de un sitio a otro y muy poquito más. Si deseamos hacer una multiplicación 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 mnemónicos con los que se escriben las instrucciones a código binario
para que el procesador sea capaz de interpretarlas y ejecutarlas.
Los lenguajes de «alto nivel» tienen instrucciones más potentes: saben multiplicar,
sacar la raíz cuadrada y realizar funciones y operaciones mucho más complicadas
que las que pueden hacer las instrucciones de la máquina. Pero como la máquina es
la misma, la realización de esas instrucciones se tiene que hacer con programas de
instrucciones elementales. Cada instrucción 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 intérpretes que realizan
dicha traducción pero instrucción por instrucción, o sea, traducen una instrucción de
alto nivel en las correspondientes de bajo nivel que ejecuta el procesador y a
continuación pasan a la siguiente.
1
La definición del término mnemónico, puede ser revisado en el vocabulario técnico, al final de este
documento.
3.1.1.- Programa fuente en Lenguaje Ensamblador:
El programa fuente esta compuesto por una sucesión de líneas de programa. Cada
línea de programa esta compuesta por 4 campos separados por uno o más espacios o
tabulaciones. Estos campos son:
[Etiqueta] [Comando] [Operando(s)] [;Comentario]
La etiqueta es opcional. El comando puede ser un mnemónico 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 práctica considerarlo obligatorio para el
programador.
3.1.2.- Conjunto de instrucciones
El conjunto de instrucciones de los microprocesadores PIC 16C5X consiste en un
pequeño 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 algún 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 implícita o incluida literalmente en la
instrucción (literales). En tercer lugar se agrupan las instrucciones que operan sobre
bits individuales de los registros de la memoria interna. En cuarto lugar se clasifican
las instrucciones de control de flujo del programa, es decir las que permiten alterar la
secuencia lineal de ejecución de las instrucciones. Por último se agrupan unas pocas
instrucciones que llamaremos especiales, cuyas funciones o tipos de operandos son
muy específicos y no encajan en ninguna de las clasificaciones anteriores.
En la tabla 3.1 se ha resumido las 35 instrucciones de los microcontroladores PIC de
gama media, clasificados en los tres grupos antes mencionados, en donde se hace una
breve descripción de su función, se determina el numero de ciclos que necesita para
ser ejecutado por el microcontrolador, y se establece los bit de las banderas que serán
afectados en el registro status.
Instrucciones orientadas a byte:
Instrucciones orientadas a bit:
Instrucciones orientadas a literal y control:
Tabla 3.1 Resumen de instrucciones (clasificación según el fabricante en tres grupos):
3.1.3.- Herramientas de desarrollo. El MPLAB.
EL MPLAB es un “Entorno de Desarrollo Integrado “ (Integrated Development
Environment, IDE) que corre en “Windows “, mediante el cual Usted puede
desarrollar aplicaciones para los microcontroladores de las familias PIC 16/17/18.
EL MPLAB le permite a Usted escribir, depurar y optimizar los programas
(firmware) de sus diseños con PIC 16/17/18. EL MPLAB incluye un editor de texto,
un simulador y un organizador de proyectos. Además, el MPLAB soporta el
emulador PICMASTER y a otras herramientas de desarrollo de Microchip como el
PICSTART - Plus.
Fig. 3.1 Entorno de Desarrollo Integrado MPLAB
Con el MPLAB se puede:
• Depurar sus programas fuente.
• Detectar errores automáticamente en sus programas fuente para editarlos.
• Depurar los programas utilizando puntos de corte (breakpoints) mediante
valores de los registros internos.
• Observar el flujo del programa con el simulador MPLAB -SIM, ó seguirlo en
tiempo real utilizando el emulador PICMASTER.
• Realizar medidas de tiempo utilizando un cronómetro.
• Mirar variables en las ventanas de observación.
• Encontrar respuestas rápidas a sus preguntas, utilizando la ayuda en línea del
MPLAB.
Entre las herramientas del MPLAB se encuentran el Organizador de Proyectos
(Project Manager) es parte fundamental de MPLAB. Sin crear un proyecto Usted no
puede realizar depuración simbólica. Con el Organizador de Proyectos (Project
manager) puede utilizar las siguientes operaciones:
• Crear un proyecto.
• Agregar un archivo de programa fuente de proyecto.
• Ensamblar o compilar programas fuente.
• Editar programas fuente.
• Reconstruir todos los archivos fuente, o compilar un solo archivo.
• Depurar su programa fuente.
3.2.- El Lenguaje Basic
Aprender a manejar el lenguaje BASIC para computadoras es una labor muy sencilla,
tan simple como escribir (en inglés). En BASIC las instrucciones coinciden con el
nombre en inglés de la operación que se debe llevar a cabo. Por ejemplo, escribir o
visualizar un valor en la pantalla utiliza la instrucción PRINT; para introducir por el
teclado un valor se emplea la instrucción INPUT y si se desea realizar una suma
basta con poner el signo “+” de la misma.
Un lenguaje para una computadora es un conjunto de instrucciones y comandos, que
la máquina es capaz de interpretar y ejecutar. Fíjese en un programa en BASIC. Este
programa se entiende sólo. Se introduce por el teclado en primer lugar el valor de la
variable a, después se introduce por el mismo procedimiento el valor de b y,
finalmente, se visualiza el resultado de la operación a+b. Consiste en una sucesión
ordenada de las instrucciones que debe ejecutar el computador para ir procesando los
datos hasta alcanzar el resultado deseado.
10 INPUT R ‘Se introduce el radio
20 LET S=3.14*R*R ‘se calcula el área
30 PRINT S,R ‘se escribe S y R
40 END ‘fin del programa
Figura 3.2 Ejemplo de programa en Leguaje Basic
El lenguaje BASIC fue desarrollado en I960 por J. Kemeny y T. Kurtz con la
finalidad de simplificar la programación.
3.2.1.- Ventajas e inconvenientes
Se trata de un lenguaje muy sencillo que está orientado a las personas y por eso sus
instrucciones recuerdan las palabras inglesas con las que se describe la operación que
realizan. Dado su parecido con el álgebra elemental es muy útil para resolver
problemas técnicos de ingeniería, aunque también es muy cómodo en las
aplicaciones que manejan mucha información literal, típico en los negocios.
Las grandes ventajas del lenguaje BASIC desgraciadamente están acompañadas por
algunos defectos, que suelen empujar a los programadores profesionales a repudiarlo.
Como mayor defecto se dice que es un lenguaje «no estructurado» o «no
procedural», de lo cual la mayor culpa tiene la instrucción GOTO, que es capaz de
desviar el flujo de la ejecución de instrucciones a cualquier parte del programa,
impidiendo la posibilidad de dividir la tarea en trozos pequeños e independientes.
Las normas puristas de la programación proponen la confección del software en base
a un pequeño «programa principal», que se compone de llamadas a rutinas y
procedimientos autónomos e independientes en los que se descompone la tarea a
resolver. Para implementar esta estructura es necesario poder salir con facilidad del
programa principal a las rutinas traspasando algunos parámetros, así como también
poder regresar a dicho programa principal desde la rutina trayendo resultados
obtenidos en esta última. El lenguaje BASIC no soporta completamente estas
estructuras en los programas.
Ups gt000025
Ups gt000025
Ups gt000025
Ups gt000025
Ups gt000025
Ups gt000025
Ups gt000025
Ups gt000025
Ups gt000025
Ups gt000025
Ups gt000025
Ups gt000025
Ups gt000025
Ups gt000025
Ups gt000025
Ups gt000025
Ups gt000025
Ups gt000025
Ups gt000025
Ups gt000025
Ups gt000025
Ups gt000025
Ups gt000025
Ups gt000025
Ups gt000025
Ups gt000025
Ups gt000025
Ups gt000025
Ups gt000025
Ups gt000025
Ups gt000025
Ups gt000025
Ups gt000025
Ups gt000025
Ups gt000025
Ups gt000025
Ups gt000025
Ups gt000025
Ups gt000025
Ups gt000025
Ups gt000025
Ups gt000025
Ups gt000025
Ups gt000025
Ups gt000025
Ups gt000025
Ups gt000025
Ups gt000025
Ups gt000025
Ups gt000025
Ups gt000025
Ups gt000025
Ups gt000025
Ups gt000025
Ups gt000025
Ups gt000025
Ups gt000025
Ups gt000025
Ups gt000025
Ups gt000025
Ups gt000025
Ups gt000025
Ups gt000025
Ups gt000025
Ups gt000025
Ups gt000025
Ups gt000025
Ups gt000025
Ups gt000025
Ups gt000025
Ups gt000025
Ups gt000025
Ups gt000025
Ups gt000025
Ups gt000025
Ups gt000025
Ups gt000025
Ups gt000025
Ups gt000025
Ups gt000025
Ups gt000025
Ups gt000025
Ups gt000025
Ups gt000025
Ups gt000025
Ups gt000025
Ups gt000025
Ups gt000025
Ups gt000025
Ups gt000025
Ups gt000025
Ups gt000025
Ups gt000025
Ups gt000025
Ups gt000025
Ups gt000025
Ups gt000025
Ups gt000025
Ups gt000025
Ups gt000025
Ups gt000025
Ups gt000025
Ups gt000025
Ups gt000025
Ups gt000025
Ups gt000025
Ups gt000025
Ups gt000025
Ups gt000025
Ups gt000025
Ups gt000025
Ups gt000025
Ups gt000025
Ups gt000025
Ups gt000025
Ups gt000025
Ups gt000025
Ups gt000025
Ups gt000025
Ups gt000025
Ups gt000025
Ups gt000025
Ups gt000025
Ups gt000025
Ups gt000025
Ups gt000025
Ups gt000025
Ups gt000025
Ups gt000025
Ups gt000025
Ups gt000025
Ups gt000025
Ups gt000025
Ups gt000025
Ups gt000025
Ups gt000025
Ups gt000025
Ups gt000025
Ups gt000025
Ups gt000025
Ups gt000025
Ups gt000025
Ups gt000025
Ups gt000025
Ups gt000025
Ups gt000025
Ups gt000025
Ups gt000025
Ups gt000025
Ups gt000025
Ups gt000025
Ups gt000025
Ups gt000025
Ups gt000025
Ups gt000025
Ups gt000025
Ups gt000025
Ups gt000025
Ups gt000025
Ups gt000025
Ups gt000025
Ups gt000025
Ups gt000025
Ups gt000025
Ups gt000025
Ups gt000025
Ups gt000025
Ups gt000025
Ups gt000025
Ups gt000025
Ups gt000025
Ups gt000025
Ups gt000025
Ups gt000025

Más contenido relacionado

Similar a Ups gt000025

Electrónica: Sistema de identificación inalámbrica para el control de acceso
Electrónica: Sistema de identificación inalámbrica para el control de accesoElectrónica: Sistema de identificación inalámbrica para el control de acceso
Electrónica: Sistema de identificación inalámbrica para el control de accesoSANTIAGO PABLO ALBERTO
 
Microprocesadores pensum
Microprocesadores pensumMicroprocesadores pensum
Microprocesadores pensumNelson Guzman
 
Tesis sobre desinfectante
Tesis sobre desinfectanteTesis sobre desinfectante
Tesis sobre desinfectanteHome Care C.A
 
Microcontroladores: Construcción de un control de una cartelera digital para ...
Microcontroladores: Construcción de un control de una cartelera digital para ...Microcontroladores: Construcción de un control de una cartelera digital para ...
Microcontroladores: Construcción de un control de una cartelera digital para ...SANTIAGO PABLO ALBERTO
 
TESIS_TELEF_IP-QUINTANA_DIEGO_DISENO.pdf
TESIS_TELEF_IP-QUINTANA_DIEGO_DISENO.pdfTESIS_TELEF_IP-QUINTANA_DIEGO_DISENO.pdf
TESIS_TELEF_IP-QUINTANA_DIEGO_DISENO.pdfSANTOS400018
 
Mantenimiento de sistemas de microcomputo
Mantenimiento de  sistemas de microcomputoMantenimiento de  sistemas de microcomputo
Mantenimiento de sistemas de microcomputoOpcionesTecnicas
 
Desarrollo e implementación de una estación meteorológica mediante la platafo...
Desarrollo e implementación de una estación meteorológica mediante la platafo...Desarrollo e implementación de una estación meteorológica mediante la platafo...
Desarrollo e implementación de una estación meteorológica mediante la platafo...Alejandro Galvez
 
TRABAJO DE GRADO UCV - ING. JUAN FLEITAS - 20102006
TRABAJO DE GRADO UCV - ING. JUAN FLEITAS - 20102006TRABAJO DE GRADO UCV - ING. JUAN FLEITAS - 20102006
TRABAJO DE GRADO UCV - ING. JUAN FLEITAS - 20102006Juan Manuel Fleitas
 
Microcontroladores: Desarrollo de plataforma interactiva para la demostración...
Microcontroladores: Desarrollo de plataforma interactiva para la demostración...Microcontroladores: Desarrollo de plataforma interactiva para la demostración...
Microcontroladores: Desarrollo de plataforma interactiva para la demostración...SANTIAGO PABLO ALBERTO
 
Proyecto final facultad de ingeniería.pdf
Proyecto final facultad de ingeniería.pdfProyecto final facultad de ingeniería.pdf
Proyecto final facultad de ingeniería.pdfceranobrian52
 
0104 arquitectura-del-computador
0104 arquitectura-del-computador0104 arquitectura-del-computador
0104 arquitectura-del-computadorProfesorCorona
 
Mecatrónica y Arduino
Mecatrónica y ArduinoMecatrónica y Arduino
Mecatrónica y ArduinoGaby007_PCT
 
S7-200 GUIA DE PRACTICAS MUY BUENAS - copia.pdf
S7-200 GUIA DE PRACTICAS MUY BUENAS - copia.pdfS7-200 GUIA DE PRACTICAS MUY BUENAS - copia.pdf
S7-200 GUIA DE PRACTICAS MUY BUENAS - copia.pdfENRIQUE gonzalez
 

Similar a Ups gt000025 (20)

Digitales ii 2012
Digitales ii 2012Digitales ii 2012
Digitales ii 2012
 
Electrónica: Sistema de identificación inalámbrica para el control de acceso
Electrónica: Sistema de identificación inalámbrica para el control de accesoElectrónica: Sistema de identificación inalámbrica para el control de acceso
Electrónica: Sistema de identificación inalámbrica para el control de acceso
 
Microprocesadores pensum
Microprocesadores pensumMicroprocesadores pensum
Microprocesadores pensum
 
Tesis sobre desinfectante
Tesis sobre desinfectanteTesis sobre desinfectante
Tesis sobre desinfectante
 
Microcontroladores: Construcción de un control de una cartelera digital para ...
Microcontroladores: Construcción de un control de una cartelera digital para ...Microcontroladores: Construcción de un control de una cartelera digital para ...
Microcontroladores: Construcción de un control de una cartelera digital para ...
 
TESIS_TELEF_IP-QUINTANA_DIEGO_DISENO.pdf
TESIS_TELEF_IP-QUINTANA_DIEGO_DISENO.pdfTESIS_TELEF_IP-QUINTANA_DIEGO_DISENO.pdf
TESIS_TELEF_IP-QUINTANA_DIEGO_DISENO.pdf
 
PLC: Practicas de rslogix 5000
PLC: Practicas de rslogix 5000PLC: Practicas de rslogix 5000
PLC: Practicas de rslogix 5000
 
Mantenimiento de sistemas de microcomputo
Mantenimiento de  sistemas de microcomputoMantenimiento de  sistemas de microcomputo
Mantenimiento de sistemas de microcomputo
 
Temario diplomado
Temario diplomadoTemario diplomado
Temario diplomado
 
Micro1
Micro1Micro1
Micro1
 
Manual control digital (1)
Manual control digital (1)Manual control digital (1)
Manual control digital (1)
 
Desarrollo e implementación de una estación meteorológica mediante la platafo...
Desarrollo e implementación de una estación meteorológica mediante la platafo...Desarrollo e implementación de una estación meteorológica mediante la platafo...
Desarrollo e implementación de una estación meteorológica mediante la platafo...
 
TRABAJO DE GRADO UCV - ING. JUAN FLEITAS - 20102006
TRABAJO DE GRADO UCV - ING. JUAN FLEITAS - 20102006TRABAJO DE GRADO UCV - ING. JUAN FLEITAS - 20102006
TRABAJO DE GRADO UCV - ING. JUAN FLEITAS - 20102006
 
Microcontroladores: Desarrollo de plataforma interactiva para la demostración...
Microcontroladores: Desarrollo de plataforma interactiva para la demostración...Microcontroladores: Desarrollo de plataforma interactiva para la demostración...
Microcontroladores: Desarrollo de plataforma interactiva para la demostración...
 
Proyecto final facultad de ingeniería.pdf
Proyecto final facultad de ingeniería.pdfProyecto final facultad de ingeniería.pdf
Proyecto final facultad de ingeniería.pdf
 
0104 arquitectura-del-computador
0104 arquitectura-del-computador0104 arquitectura-del-computador
0104 arquitectura-del-computador
 
Mecatrónica y Arduino
Mecatrónica y ArduinoMecatrónica y Arduino
Mecatrónica y Arduino
 
Técnicas Digitales II
Técnicas Digitales IITécnicas Digitales II
Técnicas Digitales II
 
S7-200 GUIA DE PRACTICAS MUY BUENAS - copia.pdf
S7-200 GUIA DE PRACTICAS MUY BUENAS - copia.pdfS7-200 GUIA DE PRACTICAS MUY BUENAS - copia.pdf
S7-200 GUIA DE PRACTICAS MUY BUENAS - copia.pdf
 
Pfc open mrs-telerradiologia
Pfc open mrs-telerradiologiaPfc open mrs-telerradiologia
Pfc open mrs-telerradiologia
 

Último

Reporte de simulación de flujo del agua en un volumen de control MNVA.pdf
Reporte de simulación de flujo del agua en un volumen de control MNVA.pdfReporte de simulación de flujo del agua en un volumen de control MNVA.pdf
Reporte de simulación de flujo del agua en un volumen de control MNVA.pdfMikkaelNicolae
 
Calavera calculo de estructuras de cimentacion.pdf
Calavera calculo de estructuras de cimentacion.pdfCalavera calculo de estructuras de cimentacion.pdf
Calavera calculo de estructuras de cimentacion.pdfyoseka196
 
Fe_C_Tratamientos termicos_uap _3_.ppt
Fe_C_Tratamientos termicos_uap   _3_.pptFe_C_Tratamientos termicos_uap   _3_.ppt
Fe_C_Tratamientos termicos_uap _3_.pptVitobailon
 
Diapositiva de Topografía Nivelación simple y compuesta
Diapositiva de Topografía Nivelación simple y compuestaDiapositiva de Topografía Nivelación simple y compuesta
Diapositiva de Topografía Nivelación simple y compuestajeffsalazarpuente
 
Una estrategia de seguridad en la nube alineada al NIST
Una estrategia de seguridad en la nube alineada al NISTUna estrategia de seguridad en la nube alineada al NIST
Una estrategia de seguridad en la nube alineada al NISTFundación YOD YOD
 
Magnetismo y electromagnetismo principios
Magnetismo y electromagnetismo principiosMagnetismo y electromagnetismo principios
Magnetismo y electromagnetismo principiosMarceloQuisbert6
 
Topografía 1 Nivelación y Carretera en la Ingenierías
Topografía 1 Nivelación y Carretera en la IngenieríasTopografía 1 Nivelación y Carretera en la Ingenierías
Topografía 1 Nivelación y Carretera en la IngenieríasSegundo Silva Maguiña
 
Flujo potencial, conceptos básicos y ejemplos resueltos.
Flujo potencial, conceptos básicos y ejemplos resueltos.Flujo potencial, conceptos básicos y ejemplos resueltos.
Flujo potencial, conceptos básicos y ejemplos resueltos.ALEJANDROLEONGALICIA
 
TEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIAS
TEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIASTEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIAS
TEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIASfranzEmersonMAMANIOC
 
Manual_Identificación_Geoformas_140627.pdf
Manual_Identificación_Geoformas_140627.pdfManual_Identificación_Geoformas_140627.pdf
Manual_Identificación_Geoformas_140627.pdfedsonzav8
 
Polimeros.LAS REACCIONES DE POLIMERIZACION QUE ES COMO EN QUIMICA LLAMAMOS A ...
Polimeros.LAS REACCIONES DE POLIMERIZACION QUE ES COMO EN QUIMICA LLAMAMOS A ...Polimeros.LAS REACCIONES DE POLIMERIZACION QUE ES COMO EN QUIMICA LLAMAMOS A ...
Polimeros.LAS REACCIONES DE POLIMERIZACION QUE ES COMO EN QUIMICA LLAMAMOS A ...SuannNeyraChongShing
 
estadisticasII Metodo-de-la-gran-M.pdf
estadisticasII   Metodo-de-la-gran-M.pdfestadisticasII   Metodo-de-la-gran-M.pdf
estadisticasII Metodo-de-la-gran-M.pdfFlorenciopeaortiz
 
CICLO DE DEMING que se encarga en como mejorar una empresa
CICLO DE DEMING que se encarga en como mejorar una empresaCICLO DE DEMING que se encarga en como mejorar una empresa
CICLO DE DEMING que se encarga en como mejorar una empresaSHERELYNSAMANTHAPALO1
 
Flujo multifásico en tuberias de ex.pptx
Flujo multifásico en tuberias de ex.pptxFlujo multifásico en tuberias de ex.pptx
Flujo multifásico en tuberias de ex.pptxEduardoSnchezHernnde5
 
Normas para los aceros basados en ASTM y AISI
Normas para los aceros basados en ASTM y AISINormas para los aceros basados en ASTM y AISI
Normas para los aceros basados en ASTM y AISIfimumsnhoficial
 
2. UPN PPT - SEMANA 02 GESTION DE PROYECTOS MG CHERYL QUEZADA(1).pdf
2. UPN PPT - SEMANA 02 GESTION DE PROYECTOS MG CHERYL QUEZADA(1).pdf2. UPN PPT - SEMANA 02 GESTION DE PROYECTOS MG CHERYL QUEZADA(1).pdf
2. UPN PPT - SEMANA 02 GESTION DE PROYECTOS MG CHERYL QUEZADA(1).pdfAnthonyTiclia
 
Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...
Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...
Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...Francisco Javier Mora Serrano
 
CAP4-TEORIA EVALUACION DE CAUDALES - HIDROGRAMAS.pdf
CAP4-TEORIA EVALUACION DE CAUDALES - HIDROGRAMAS.pdfCAP4-TEORIA EVALUACION DE CAUDALES - HIDROGRAMAS.pdf
CAP4-TEORIA EVALUACION DE CAUDALES - HIDROGRAMAS.pdfReneBellido1
 
Centro Integral del Transporte de Metro de Madrid (CIT). Premio COAM 2023
Centro Integral del Transporte de Metro de Madrid (CIT). Premio COAM 2023Centro Integral del Transporte de Metro de Madrid (CIT). Premio COAM 2023
Centro Integral del Transporte de Metro de Madrid (CIT). Premio COAM 2023ANDECE
 
Voladura Controlada Sobrexcavación (como se lleva a cabo una voladura)
Voladura Controlada  Sobrexcavación (como se lleva a cabo una voladura)Voladura Controlada  Sobrexcavación (como se lleva a cabo una voladura)
Voladura Controlada Sobrexcavación (como se lleva a cabo una voladura)ssuser563c56
 

Último (20)

Reporte de simulación de flujo del agua en un volumen de control MNVA.pdf
Reporte de simulación de flujo del agua en un volumen de control MNVA.pdfReporte de simulación de flujo del agua en un volumen de control MNVA.pdf
Reporte de simulación de flujo del agua en un volumen de control MNVA.pdf
 
Calavera calculo de estructuras de cimentacion.pdf
Calavera calculo de estructuras de cimentacion.pdfCalavera calculo de estructuras de cimentacion.pdf
Calavera calculo de estructuras de cimentacion.pdf
 
Fe_C_Tratamientos termicos_uap _3_.ppt
Fe_C_Tratamientos termicos_uap   _3_.pptFe_C_Tratamientos termicos_uap   _3_.ppt
Fe_C_Tratamientos termicos_uap _3_.ppt
 
Diapositiva de Topografía Nivelación simple y compuesta
Diapositiva de Topografía Nivelación simple y compuestaDiapositiva de Topografía Nivelación simple y compuesta
Diapositiva de Topografía Nivelación simple y compuesta
 
Una estrategia de seguridad en la nube alineada al NIST
Una estrategia de seguridad en la nube alineada al NISTUna estrategia de seguridad en la nube alineada al NIST
Una estrategia de seguridad en la nube alineada al NIST
 
Magnetismo y electromagnetismo principios
Magnetismo y electromagnetismo principiosMagnetismo y electromagnetismo principios
Magnetismo y electromagnetismo principios
 
Topografía 1 Nivelación y Carretera en la Ingenierías
Topografía 1 Nivelación y Carretera en la IngenieríasTopografía 1 Nivelación y Carretera en la Ingenierías
Topografía 1 Nivelación y Carretera en la Ingenierías
 
Flujo potencial, conceptos básicos y ejemplos resueltos.
Flujo potencial, conceptos básicos y ejemplos resueltos.Flujo potencial, conceptos básicos y ejemplos resueltos.
Flujo potencial, conceptos básicos y ejemplos resueltos.
 
TEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIAS
TEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIASTEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIAS
TEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIAS
 
Manual_Identificación_Geoformas_140627.pdf
Manual_Identificación_Geoformas_140627.pdfManual_Identificación_Geoformas_140627.pdf
Manual_Identificación_Geoformas_140627.pdf
 
Polimeros.LAS REACCIONES DE POLIMERIZACION QUE ES COMO EN QUIMICA LLAMAMOS A ...
Polimeros.LAS REACCIONES DE POLIMERIZACION QUE ES COMO EN QUIMICA LLAMAMOS A ...Polimeros.LAS REACCIONES DE POLIMERIZACION QUE ES COMO EN QUIMICA LLAMAMOS A ...
Polimeros.LAS REACCIONES DE POLIMERIZACION QUE ES COMO EN QUIMICA LLAMAMOS A ...
 
estadisticasII Metodo-de-la-gran-M.pdf
estadisticasII   Metodo-de-la-gran-M.pdfestadisticasII   Metodo-de-la-gran-M.pdf
estadisticasII Metodo-de-la-gran-M.pdf
 
CICLO DE DEMING que se encarga en como mejorar una empresa
CICLO DE DEMING que se encarga en como mejorar una empresaCICLO DE DEMING que se encarga en como mejorar una empresa
CICLO DE DEMING que se encarga en como mejorar una empresa
 
Flujo multifásico en tuberias de ex.pptx
Flujo multifásico en tuberias de ex.pptxFlujo multifásico en tuberias de ex.pptx
Flujo multifásico en tuberias de ex.pptx
 
Normas para los aceros basados en ASTM y AISI
Normas para los aceros basados en ASTM y AISINormas para los aceros basados en ASTM y AISI
Normas para los aceros basados en ASTM y AISI
 
2. UPN PPT - SEMANA 02 GESTION DE PROYECTOS MG CHERYL QUEZADA(1).pdf
2. UPN PPT - SEMANA 02 GESTION DE PROYECTOS MG CHERYL QUEZADA(1).pdf2. UPN PPT - SEMANA 02 GESTION DE PROYECTOS MG CHERYL QUEZADA(1).pdf
2. UPN PPT - SEMANA 02 GESTION DE PROYECTOS MG CHERYL QUEZADA(1).pdf
 
Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...
Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...
Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...
 
CAP4-TEORIA EVALUACION DE CAUDALES - HIDROGRAMAS.pdf
CAP4-TEORIA EVALUACION DE CAUDALES - HIDROGRAMAS.pdfCAP4-TEORIA EVALUACION DE CAUDALES - HIDROGRAMAS.pdf
CAP4-TEORIA EVALUACION DE CAUDALES - HIDROGRAMAS.pdf
 
Centro Integral del Transporte de Metro de Madrid (CIT). Premio COAM 2023
Centro Integral del Transporte de Metro de Madrid (CIT). Premio COAM 2023Centro Integral del Transporte de Metro de Madrid (CIT). Premio COAM 2023
Centro Integral del Transporte de Metro de Madrid (CIT). Premio COAM 2023
 
Voladura Controlada Sobrexcavación (como se lleva a cabo una voladura)
Voladura Controlada  Sobrexcavación (como se lleva a cabo una voladura)Voladura Controlada  Sobrexcavación (como se lleva a cabo una voladura)
Voladura Controlada Sobrexcavación (como se lleva a cabo una voladura)
 

Ups gt000025

  • 1. 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
  • 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 Merchán f....................................................... Luís Alonso Chacón Buñay
  • 3. C E R T I F I C O : Haber revisado minuciosamente el Proyecto Final de Titulación, De los Sres. Eduardo Mendoza Merchán, y Luís Chacón Buñay, que se ajusta a las normas establecidas por la Universidad Politécnica Salesiana Sede Guayaquil, por tanto, autorizo su presentación para los fines legales pertinentes. …………………………………. Ing. Luís Córdova Rivadeneira DIRECTOR DEL PROYECTO Guayaquil, 30 de Abril del 2007
  • 4. ACTA DE CESIÓN DE DERECHOS DEL PROYECTO FINAL Conste por el presente documento la cesión de los derechos del Proyecto Final de Titulación, de conformidad con las siguientes cláusulas: PRIMERA.- El ing. Luís Córdova R. por sus propios derechos, en calidad de Director de Proyecto Final, Eduardo Mendoza M. y Luís Chacón B., por sus propios derechos, en calidad de autores de Proyecto Final. SEGUNDA.- UNO.- El Sr. Eduardo Mendoza M. y Luís Chacón B., realizaron El Proyecto Final titulado “Aplicación de Lenguaje C para microcontroladores PIC y Visual C# en el desarrollo de un Sistema de Control de Acceso Peatonal”, para optar por el Título de Ingeniero en Electrónica, especialidad Sistemas Industriales en la Universidad Politécnica Salesiana Sede Guayaquil. DOS.- Es política de la Universidad que el Proyecto Final se apliquen y materialicen en beneficio de la comunidad. TERCERA.- Los comparecientes Ing. Luís Córdova R., en calidad de Director de Proyecto Final, los Sres. Eduardo Mendoza M. y Luís Chacón B., como autores, por medio del presente instrumento, tiene a bien ceder en forma gratuita sus derechos en el Proyecto Final titulado “Aplicación 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 Politécnica Salesiana: y, conceden autorización para que la Universidad pueda utilizar el proyecto en su beneficio y/o de la comunidad, sin reserva alguna. CUARTA.- Aceptación.- Las partes declaran que aceptan expresamente todo lo estipulado en la presente cesión de derecho. Para constancia suscriben la presente cesión de derechos, en la ciudad de Guayaquil, a los treinta días de mes de Abril del año dos mil siete. ---------------------------------------- Ing. Luís Córdova Rivadeneira DIRECTOR DE PROYECTO FINAL -------------------------------------- ------------------------------------- Eduardo Mendoza Merchán Luís Chacón Buñay 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 superación personal y profesional, a mi hermano René, que me a brindado todo su apoyo moral, y económico sin los cuales no hubiese podido culminar mi carrera, y principalmente a Dios que me dado la sabiduría necesaria para la culminación 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 cariño a Dios y a mis padres quiénes me han apoyado para alcanzar una de mis metas anheladas, y así poder servir mejor a quiénes el Señor me confíe. a mis sobrinos por abrir un nuevo camino para esperarlos junto a mi familia querida, a la Fuerza Aérea Ecuatoriana que me apoyo con el trabajo. En fin a todos que hoy no recuerdo y fueron una inspiración en su momento, gracias a la vida por permitirme crecer, espero devolver de alguna manera esta alegría. Luís.
  • 6. A G R A D E C I M I E N T O A la Universidad Politécnica Salesiana sede Guayaquil, que nos permitió formarnos como profesionales, crecer como personas, y obtener un Título Académico. De manera muy especial al Ingeniero Luís Córdova, por su total colaboración en este trabajo, y al Ing. Raúl Álvarez G. que gracias a su intervención se logró una exitosa culminación. Además nuestra gratitud sincera para aquellas personas que de una u otra manera ayudaron en el desarrollo del presente trabajo. Eduardo Mendoza M. Luís Chacón B.
  • 7. CONTENIDO AUTORÍA CERTIFICACIÓN ACTA DE CESIÓN DE DERECHOS DEDICATORIA AGRADECIMIENTO ÍNDICE GENERAL ÍNDICE DE FIGURAS ÍNDICE DE TABLAS RESUMEN OBJETIVOS JUSTIFICACIÓN METODOLOGÍA INTRODUCCIÓN 1.- INTRODUCCIÓN 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.- ANÁLISIS DE COSTOS. 6.- CONCLUSIONES Y RECOMENDACIONES. 7.- BIBLIOGRAFÍA 8.- ANEXOS 9.- VOCABULARIO TÉCNICO
  • 8. ÍNDICE GENERAL Autoría I Certificación II Acta de sesión de derechos III Dedicatoria IV Agradecimiento V Contenido VI i.- Resumen 1 ii.- Objetivos 3 iii.- Justificación 3 vi.- Metodología 4 v.- Introducción 5 1.- CAPÍTULO I: Sistemas de control de acceso 1.1.- Antecedentes: 7 1.2.- Nociones del Control de Acceso Discrecional. 8 1.2.1.- Autorización Positiva y Negativa. 8 1.2.2.- Autorización Fuerte y Débil. 6 1.2.3.- Autorizaciones Explícitas e Implícitas 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.- Análisis 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 magnéticas 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 identificación biométrica 19 a) Falsa aceptación 21 b) Falso rechazo 21 1.4.5.- Lectores subcutáneos de huellas dactilares 22 i.- Funcionamiento: 23 1.4.6.- Otros controles de acceso 24 1.5.- Cerraduras Especiales 25 1.5.1.- Cerradura electromagnética 26 1.5.2.- Cerradura electromecánica (Multipla 2000) 26 1.5.3.- Cerradura electrónica Rench 27 1.5.4.- Cerradura electrónica para múltiples aplicaciones 28 2.- CAPÍTULO II Microcontroladores PIC de gama media. 2.1.- Introducción: 29 2.2.- El microcontrolador PIC 30 2.2.1.- Juego de instrucciones y entorno de programación 31 2.2.2.- Programación del PIC 31 2.2.2.- Tamaño de palabra 33 2.2.3.- Características generales 33 2.2.4.- Variaciones del PIC 34 a).- PICs modernos 34 b).- Clones del PIC 34 c).- PICs WírelesS 34 e).- PICs para procesado de señal (dsPICs) 35 2.2.4.- PICs más comúnmente 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 máscara 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. Líneas de E/S para los controladores de periféricos 44 2.2.5. Recursos auxiliares 45 2.4.-Descripción del PIC 16F877 46 2.4.1.- Características del PIC 16F877 46 2.4.2- Descripción de los puertos 48 3.- CAPÍTULO 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.- Características y desventajas de Leguaje C 64 3.4.- El Compilador de C para PIC 65 3.4.1 Introducción 65 3.4.2.- La programación en PIC C 67 3.4.3.-Análisis de un problema sencillo 67 3.4.4.- Estructura de un programa en C 68 3.4.5.- Librerías y funciones 69 3.4.5.1.- la función main() 69 3.4.5.2.- Archivos de cabecera (#include) 70
  • 11. 3.4.5.3.- función 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.- librería LCD 78 3.4.5.13.- Librería 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 análogo a digital 85 3.4.5.18.- Generación de PWM 88 4.- CAPÍTULO IV Análisis y desarrollo del Sistema de Control de Acceso. 4.1 Descripción de Sistema 91 4.2.- Selección de dispositivos y lenguajes de programación 96 4.2.1.- Selección del microcontrolador 97 4.2.2.- Selección del lenguaje de programación del microcontrolador 101 4.2.3.- Elección del software y hardware para el grabado del PIC . 105 4.2.4.- Selección del Lenguaje de programación del ordenador 107 4.3.- Análisis de los programas y librerías de los microcontroladores PIC. 107 4.3.1.- Programa microcontrolador esclavo 108 4.3.1.1.- La librería pantalla. 109 i).- Función beep() 109 ii).- Función alarma() 109 iii).- Función pantalla() 110 4.3.1.2.- La librería selapart.h 112 4.3.1.3.- La librería 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.- Selección del lenguaje C# 142 4.3.3.2.- Selección de la base datos 142 4.3.3.3.- Análisis del código fuente proporcionado en C# 143 4.3.3.4.- Análisis de librería wcltextboxserial.dll 145 4.3.3.5.- Pasos para la comunicación serial en C# 146 4.3.3.6.- Pasos para la conexión 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.- Análisis del circuito eléctrico 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 energía 163 4.5.- Diseño de las placas de circuito impreso 165 CAPITULO V Análisis de de costos 5.1.- Preliminares 173 5.2.- Determinación del costo del proyecto 173 5.2.1.- Cálculo del costo de mano de obra 173 5.2.2.- Cálculo del Costo de elementos y materiales 175 5.2.3.- Cálculo del Costo de fabricación de tarjetas 176 5.2.4.- Cálculo del costo por uso del ordenador 178 5.2.5.- Cálculo del costo neto del sistema de control de acceso 178 5.2.6.- Costo final del sistema 179 5.3.- Análisis de los costos en función del número de unidades fabricadas 179
  • 13. 5.4.- Análisis de sistemas análogos al control de acceso peatonal 183 5.4.1.- Control de acceso intemperie 183 5.4.2.- Teclado de combinación 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.- Bibliografía 7.1.- Libros 191 7.2.- Direcciones electrónicas 190 8. – Anexos A) El Bus I2C (Inter Integrated Circuit) 194 B) Interfaz RS-232 199 C) El Circuito Integrado MAX-232 206 D) Migración del PIC16F87x a PIC16F87xA 208 E.- Manual de Usuario 216 9.- Vocabulario Técnico 9.1.- Glosario 222 9.2.- Vocabulario 227 ÍNDICE DE FIGURAS: Capítulo I 1.1. Distintos mecanismos de control de acceso 7 1.2. Terminología utilizada en relación con seguridad y control de acceso 11
  • 14. 1.3. Cuatro mecanismos complementarios de un sistema de control de acceso 12 1.4. Tecnologías que apoyan el mecanismo de autenticación 14 1.5. a) Tarjeta chip, b) tarjeta magnética, 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 subcutáneos de huellas dactilares 23 1.13 Lector de huellas dactilares T4210 23 1.14 Detalle de la capa subcutánea de la piel 24 1.15 Reflexiones en lector subcutáneo de huellas dactilares 25 1.16 Controles de acceso peatonal y vehicular 26 1.15 Cerradura electromagnética. 26 1.16 Cerradura múltipla 2000 26 1.17 Cerradura electrónica Rench 27 1.18 Cerradura para múltiples aplicaciones 28 Capítulo 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 físicas del Microcontrolador PIC 16F877 53
  • 15. Capítulo 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 Capítulo IV 4.1 Esquema general del sistema de Control de Acceso 91 4.2 Disposición física de los componentes del sistema 92 4.3 Pantalla del módulo LCD para ingreso de número de apartamento 94 4.4 Pantalla del módulo LCD para ingreso de clave 95 4.5 Pantalla del módulo LCD con mensaje de puerta abierta 95 4.6 Pantallas del módulo LCD si la clave ingresada es incorrecta 95 4.7 Pantalla del módulo 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 programación 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 conexión del altavoz del sistema 110 4.14 Foto del altavoz usado en el proyecto 110 4.15 Simulación de los mensajes mostrados por el LCD 111 4.16 Foto del módulo LCD usado en el proyecto 111 4.17 Conexión de los pines del módulo LCD 112 4.18 Diagrama de flujo de la librería sel-apart 113 4.19 Diagrama de flujo de la librería selclave 117 4.20 Diagrama de flujo del programa principal de los esclavos 122 4.21 Diagrama de flujo para la interrupción por I2C para los esclavos 123 4.22 Diagrama de flujo para la interrupción por desbordamiento del timer1 124 4.23 Diagrama de flujo del programa principal maestro 130 4.24 Diagrama de flujo de interrupción RS-232 131 4.25 Diagrama de flujo de interrupción por desbordamiento de timer0 132 4.26 Propiedades de textBox 145
  • 16. 4.27 Propiedades de textBox para la dll 146 4.28 Selección 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 Selección del menú mantenimiento 152 4.33 Menú mantenimiento 153 4.34 Diagrama de flujo del programa mantenimiento de base de datos 153 4.35 Selección del menú cambiar clave pic 154 4.36 Diagrama de flujo del programa cambiar clave pic 154 4.37 Selección 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 conexión 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 Selección del conector DB9 para PCB 167 4.48 Diseño final de la placa de circuito Maestro 167 4.49 Diseño final de la placa de circuito Esclavo 168 4.50 Diseño 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. Capítulo V 5.1 Relación costos fijos costos variables para una unidad 180 5.2 Relación costos fijos costos variables para producir 10 sistemas 181 5.3 Relación costos fijos costos variables para producir 100 sistemas 182 5.4 Relación costos fijos costos variables de los tres modelos 182 5.5 Variación de los precios debido al incremento de la producción 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 comunicación I2C 196 b.1 Estructura de una caracter que se trasmite a través de RS-232 204 c.1 Disposición física de las patillas en el MAX232 206 c.2 Circuito básico 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 Menús 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: Capítulo II 2.1 Características del PIC 16F877 47 2.2 Descripción de los pines del PIC 16F877 50 Capítulo III 3.1 Resumen de instrucciones del lenguaje ensamblador 57 3.2 Formatos de salida para la función 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 Capítulo IV 4.1 Asignación de pines del LCD al microcontrolador 113 4.2 Número de apartamento y posiciones de memoria 116 4.3 Consumo de energía por elementos 164 4.4 Consumo de energía por circuito 164 Capítulo V 5.1 Costo de mano de obra 174 5.2 Costo de materiales 175 5.3 Costo de elaboración de tarjetas 176 5.4 Costo por uso de ordenador 178 5.5 Costo de elaboración 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 señales RS-232 199 B2 Asignación de pines según EIA y CCITT 201 B3 Niveles de voltaje para 1 y 0 lógico 202
  • 20. INTRODUCCIÓN 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 información valiosa. Vemos cómo los castillos y fortalezas fueron construidos de tal forma que sus principales vías de acceso eran diseñadas con puentes que se elevaban o recogían mediante mecanismos manuales, y muchas otras formas, de tal manera que la persona que intentaba acceder a estas edificaciones además de identificarse con su nombre, debían hacerle un reconocimiento visual de las características de ella/él o de un único elemento, como por ejemplo un anillo. En la actualidad, tecnológicamente 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 métodos para procesar la información y los mecanismos de validación han sufrido modificaciones sustanciales y constantes. Hoy en día tenemos controles biométricos, magnéticos, 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 electrónicos 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 programación de los microcontroladores se ha realizado desde su invención por medio de lenguaje Ensamblador, por lo que en la actualidad la mayoría de programadores lo utilizan, encontrándose gran cantidad de información tanto en textos como en el Internet. Desde hace unos años atrás se han venido desarrollando nuevas plataformas de programación basadas en lenguajes tradicionales de alto nivel, tales como Pascal, Basic, C, entre los principales. El objetivo, es hacer que la programación de los microcontroladores se oriente a solucionar el problema, dejando a un lado la laboriosa configuración de registros que se realiza en los lenguajes ensambladores. La programación en estos lenguajes es de hecho más sencilla,
  • 21. debido a que sus palabras reservadas y estructuras son similares al lenguaje natural en idioma ingles, lo que hace fácil recordarlas y el nombre de estas nos sugiere su aplicación de manera intuitiva. De igual forma su estructura y bucles son simples y de fácil aplicación, muy similares a las utilizadas en los lenguajes de computadoras. La programación en lenguaje C, es una de las más 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 más conocidos en Internet. Pic C es uno de los compiladores de lenguaje C que más usuarios ha acaparado, debido principalmente a que utiliza C ANSI, la sencillez con que gestiona las interrupciones, inserción de código en Ensamblador, la gran cantidad de librerías 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 través 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 características principales del sistema desarrollado, esta basado en las comunicaciones entre dispositivos, para lo cual se ha implementado el Bus I2C para la comunicación entre microcontroladores y la interfaz de comunicación RS-232 para la comunicación entre Microcontrolador y PC. La elaboración del presente trabajo es la recopilación de un cúmulo de conocimientos tecnológicos 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 Merchán Luís Chacón Buñay
  • 22. CAPÍTULO 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 protección se ha visto motivada inicialmente por temor que personas ajenas al entorno, delincuentes o enemigos puedan robar y/o extraer material valioso o información de acuerdo a criterios personales, sociales, comerciales, etc. Muchas obras majestuosas como por ejemplo palacios, bases militares, se caracterizaban por sus muy particulares métodos de acceso, los cuales fueron construidos de tal forma que sus principales vías de acceso eran diseñadas con puentes que se elevaban mediante mecanismos especiales, quedando así abajo un círculo de agua y caimanes que rodeaban dicho castillo o fortaleza. En tal sentido, el acceso a estas edificaciones no sólo era posible suministrando un nombre. En efecto, las palabras claves (passwords), eran utilizadas por algunas personas para acceder al castillo, así como señas de reconocimiento visual, o algún 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 tecnología, pero en el fondo persisten las razones y motivos para mantener mecanismos de control de acceso sobre áreas e información que se desea proteger. Los mecanismos de validación han sufrido modificaciones: hoy en día tenemos controles biométricos, magnéticos, 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 autorización, que indican para cada sujeto, las acciones que puede realizar sobre cada objeto del sistema. Con esta estrategia, si un usuario desea realizar una operación sobre un objeto, se busca en el sistema una regla de autorización que le dé permiso para realizar esa operación 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 autorización de acceso a otros usuarios. La forma más común 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 continuación se realiza un breve análisis de las principales variantes de estas estrategias: 1.2.1.- Autorización Positiva y Negativa. Según la autorización positiva, la existencia de la regla de autorización indica que se puede realizar el acceso, mientras que la no existencia de la misma prohíbe el acceso. En cambio mediante la autorización negativa, el acceso se permite sólo cuando no existe una regla de autorización negativa, mientras que la existencia de la regla prohíbe el acceso. La principal diferencia es que en el caso de autorización positiva, si un sujeto no tiene autorización, en algún momento se puede producir una propagación de privilegios de tal forma que otro sujeto le ceda el acceso, en cuyo caso estaría burlando el control de acceso. Eso no puede suceder con el mecanismo de autorización negativa. 1.2.2.- Autorización Fuerte y Débil. Autorizaciones fuertes, tanto positivas como negativas son aquellas que no pueden ser invalidadas, mientras que las débiles sí pueden ser invalidadas por otras
  • 24. autorizaciones fuertes o débiles, de acuerdo a unas reglas específicas. 1.2.3.- Autorizaciones Explícitas e Implícitas. Las autorizaciones implícitas son automáticamente derivadas por el sistema desde el conjunto de autorizaciones explícitas, de acuerdo a un conjunto de reglas. Por ejemplo, una regla de derivación puede ser usada para expresar que un sujeto puede acceder a un objeto dado sólo si otro sujeto tiene un acceso explícito denegado. Existen diversas políticas de propagación de autorizaciones dependiendo entre otras cosas del tipo de sujeto de que se trate. Por ejemplo, si se trata de roles que forman una jerarquía, al asignar una autorización positiva, ésta se propagaría hacia todos los roles superiores en la jerarquía, y si la autorización es negativa, se propagaría hacia los roles inferiores en la jerarquía. En cambio, si se trata de grupos, la aproximación más utilizada consiste en la propagación de la autorización, 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 más de sus componentes. Por ejemplo, restringir el acceso de datos de personas que cobre más de 50 millones al año. Las bases de datos que utilizan esta política 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 clasificación 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 más 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 categorías’. Cada ‘nivel de seguridad’ es un elemento de un conjunto jerárquicamente ordenado como ‘alto secreto’ (TS), ‘secreto’ (S), ‘confidencial’ (C) y ‘sin clasificar’ (U), donde TS > S > C > U. El conjunto de categorías es un subconjunto de un conjunto desordenado, donde los elementos pueden reflejar áreas funcionales o diferentes competencias como por ejemplo ‘finanzas’, ‘administración’, ‘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 gestión 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 podrían ser Cajero y Contable, donde cada uno de ellos tiene un conjunto de privilegios. Algunos de estos privilegios pueden ser como en este caso jerárquicos 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 técnica de control de acceso mucho más flexible que las anteriores, pero con poca experiencia en su utilización 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 estáticas como dinámicas, por ejemplo considerando factores como las horas del día en las que estará vigente una autorización
  • 26. 1.3.- Análisis general de los sistemas de control de acceso. El presente capítulo 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 demás complementos que han ido evolucionando de forma paralela al avance de la tecnología, 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 sesión 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 mínimo efecto sobre los costos y el esfuerzo de uso. Con el objeto de facilitar el entendimiento de los conceptos y terminología a ser utilizadas en este capítulo, en la figura 1.2 se muestra la relación entre algunos de los términos manejados. En este sentido, los “servicios de seguridad” podrían incluir: integridad, confidencialidad, disponibilidad y control de acceso Figura 1.2. Terminología utilizada en relación 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 términos tecnológicos. Es así como nuevas condiciones deben ser identificadas para poder establecer los mejores mecanismos de seguridad y de control de acceso a la información. En tal sentido, podemos reconocer que existen, al menos, cuatro (4) mecanismos complementarios de un sistema de control de acceso, a saber: (a) identificación de usuario, (b) autenticación de usuario, (c) la verificación de la autenticación, y (d) re-autenticación. 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á diseñado 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 autentificación de un usuario, es decir, determinar que un usuario es quien dice ser. Esto se realiza por medio de “algo que se conoce”, representado básicamente por: (a) una contraseña o clave de acceso (password), (b) número de identificación 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. sólo 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 crédito o débito, (c) un token, (d) algún dato como la cédula de identidad o pasaporte, entre otros. 1.3.3.- El tercer mecanismo de un sistema de control de acceso está diseñado debido a la debilidad inherente que tiene una contraseña o clave de acceso (password). Su propósito u objetivo es el probar la autenticidad del usuario mediante la utilización de, por ejemplo, “algo que se es”, pudiendo utilizar características 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 verificación de autenticación. 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- autenticación. Esto se puede llevar a cabo mediante procesos automáticos que se “despiertan” según la permanencia del usuario que está interactuando con un determinado sistema. Cada uno de estos mecanismos esta apoyado por una “tecnología 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 tecnologías están presentes en una gran variedad de “productos de seguridad”. La figura 1.4, muestra las diferentes tecnologías que apoyan el mecanismo de autenticación de usuarios y su relación con la complejidad de implantación. 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 tecnologías usadas, la integración en red con ordenadores y bases de datos, etc.
  • 29. Figura 1.4. Tecnologías que apoyan el mecanismo de autenticación A continuación 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 magnéticas y Tarjetas Chip • Tarjetas Inteligentes • Etiquetas y Llaveros Inteligentes • Lector de huellas dactilares o escáner • Lectores subcutáneos de huellas dactilares • Torniquetes, molinetes, puertas batientes 1.4.1.- Control de Acceso basadas en teclados, bandas magnéticas, y Tarjetas Chip Existen una infinidad de modelos de sistemas de control de acceso, sean estos autónomos, o dependientes de un ordenador, los mas comunes en nuestro medio, y que de cierta forman han comenzado a ser desplazados en los países desarrollados por las nuevas tecnologías son los sistemas basados en teclados, tarjetas con banda magnéticas y tarjetas chip, Aunque no están siendo desplazados del todo, puesto que en muchos modelos se complementan con otras tecnologías para generar sistemas mas eficaces.
  • 30. Figura 1.5 a) Tarjeta chip, b) tarjeta magnética, 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 autónoma, 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 magnéticas contienen una banda magnética (llamada a veces magstripe como abreviación de magnetic stripe) es toda aquella banda oscura presente en tarjetas de crédito, abonos de transporte público o carnets personales que está compuesta por partículas ferromagnéticas embebidas en una matriz de resina (generalmente epoxi) y que almacenan cierta cantidad de información mediante una codificación determinada que polariza dichas partículas. La banda magnética es grabada o leída mediante contacto físico pasándola a través de una cabeza lectora/escritora gracias al fenómeno de la inducción magnética. Estas tarjetas contrastan con la nueva generación de tarjetas inteligentes que contienen un chip con contactos metálicos, o tarjetas sin contacto que usan un campo magnético o radiofrecuencia (RFID) para la lectura a una distancia media. Las tarjetas chip, muy usadas hoy en día en la telefonía (tarjetas telefónicas), contiene en su interior un número de serie que es único y que, además, es imposible de modificar. Eso nos indica que la tarjeta además de ser único sobre todo el mundo es imposible de alterar. Entonces, se aprovecha eso para diseñar sistemas de seguridad capaz de leer la parte inicial de la tarjeta, comparar el número 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 código es válido 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 zócalo lector de la tarjeta debe estar montado por un lado y la circuitería 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 través de cualquier puerta conectada, a cualquier hora del día. Las personas sin el nivel de seguridad suficiente no tendrán acceso a las zonas reservadas. Figura 1.7 Control de acceso con tarjeta inteligente Mediante la tecnología de las tarjetas inteligentes, los lectores de tarjetas están 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 magnética, las tarjetas
  • 32. son leídas de forma automática en el instante en que la presente. EL lector leerá su tarjeta a través de su cartera en ¼ de segundo. La mayoría de las Tarjetas Inteligentes, utilizan la reconocida tecnología para la lectura basada en Radio Frecuencia (RF). Esta proporciona una red de lectura consistente que no está afectada por la mayoría de las condiciones externas. Figura 1.8 Tarjetas Inteligentes Cada lector de Tarjetas Inteligentes transmite un campo de frecuencia de 125 Khz. (campo electromagnético), 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 rápidamente 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 metálica, podrá leer la tarjeta a través de ambos lados del escáner. (Otra ventaja sobre las tarjetas de banda magnética). Por otro lado, el microchip de la tarjeta Inteligente, es un dispositivo pasivo que contiene un código de fábrica ú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 automáticamente mediante la energía del campo. A pesar de que la tarjeta será leída con mayor velocidad dependiendo del ángulo, la posición exacta de la tarjeta dentro del campo no es importante (al contrario que los lectores de banda magnética). Una vez activada, la tarjeta responde transmitiendo su número único de identificación mediante una señal de 125KHz. Los 34 billones de combinaciones posibles hacen prácticamente imposible la duplicación. Cada número de identificación de las tarjetas es testado para comprobar la seguridad y los datos, garantizando que el número no se leerá de forma incorrecta. Las tarjetas inteligentes no tienen batería. Esto significa que cada tarjeta tiene una vida teóricamente infinita, independientemente del número de veces que se utilice. 1.4.3.- Etiquetas y Llaveros Inteligentes Las etiquetas y llaveros inteligentes utilizan la misma tecnología basada en microchips que las tarjetas inteligentes pero poseen una antena más pequeña compuesta de bobina de cobre con un núcleo de ferrita de hierro. El chip y la antena están sellados en una funda de cristal endurecido de alta calidad, similar a la utilizada en los chips para la identificación de animales. Debido a que son más pequeños, la distancia de lectura es también inferior. Los llaveros son de un tamaño reducido e incorporan su número propio de identificación impreso en el exterior para remisión. Figura 1.9 Llavero y tarjeta inteligente.
  • 34. Los llaveros inteligentes están disponibles en todo tipo de formas y tamaños; siendo muy populares por sus dimensiones y por lo práctico que resulta para llevarlos. 1.4.4.- Sistemas de control de acceso basados en huellas dactilares. 1.4.4.1.- La identificación biométrica La identificación biométrica es la verificación de la identidad de una persona basado en características 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 métodos de identificación biométrica, como aquellos usados en las películas de James Bond, el inolvidable agente 007, que nos parecían increíbles hace unos años, son ahora una realidad. Figura 1.10 Dedo pulgar y su huella dactilar Aunque los estudios biométricos no son perfectos, sí son una herramienta muy poderosa para identificar personas. De todos los sistemas de identificación biométrica existentes, las huellas dactilares son las únicas legalmente reconocidas como prueba fidedigna de identidad. Es un sistema que además de ser efectivo, es cómodo de aplicar y la autenticación se obtiene rápidamente. Las huellas digitales son características exclusivas de los primates. En la especie humana se forman a partir de la sexta semana de vida intrauterina y no varían en sus características a lo largo de toda la vida del individuo. Son las formas caprichosas que adopta la piel que cubre las yemas de los dedos. Están 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 glándulas sudoríparas. 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 facsímil 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 están menos propensos que los pulgares a sufrir accidentes que dejen cicatriz. Son únicas e irrepetibles aún en gemelos idénticos, debido a que su diseño no está determinado estrictamente por el código genético, sino por pequeñas variables en las concentraciones del factor del crecimiento y en las hormonas localizadas dentro de los tejidos. Cabe señalar que en un mismo individuo la huella de cada uno de sus dedos es diferente. Para la identificación de huellas, es conveniente contar con la traza digital completa, no obstante, pueden utilizarse fracciones de las mismas, con el inconveniente de que mientras más pequeño 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 cómputo estándar. Envían información pre-procesada al servidor. • Servidor. Se encarga de la validación de la huella y del manejo de los dispositivos ópticos que permiten almacenar y recuperar información solicitada por el servidor. • Software de aplicación. Basado en algoritmos para codificación y comparación.
  • 36. En el momento de la bioidentificación, 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. ¿Quién es la persona? Este es el proceso de autenticación, es más técnico 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 escáner óptico, con aquella registrada previamente. Cabe señalar que si el sistema usa las huellas digitales de los índices de ambas manos, ofrecerá un mayor margen de seguridad. La identificación biométrica por medio de huellas digitales tiene un grado de seguridad tan alto debido a que nadie podría 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 aceptación.- Cuando se acepta a alguien que No es; por ejemplo, alguien podría clonar una credencial de identificación, o adueñarse de los números confidenciales de una persona para hacer una transacción en perjuicio de su legítimo dueño y hasta falsificar su firma. b) Falso rechazo.- Consiste en no aceptar a alguien que Sí es, pero su identificación no se pudo realizar. Debido a múltiples motivos, como puede ser: que la imagen de la huella esté muy dañada, 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 podrán escanear sus huellas dactilares para acceder a su apartamento, un rascacielos en construcción en el vecindario de Yaletown, situado en la parte baja de Vancouver."Esta tecnología 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 más barata, más solvente, y a todo el mundo al final le concierne la seguridad". 1.4.5.- Lectores subcutáneos de huellas dactilares Se han desarrollado productos para el reconocimiento de las huellas dactilares “Subcutáneas” las cuales se encuentran bajo la capa de piel muerta del individuo. Esta tecnología, 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 electromagnéticas, similares a las ondas de radio, en el tejido vivo y el flujo sanguíneo 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 tecnología de los lectores de huellas subcutáneos le proporcionan mayor precisión 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 auténtica huella dactilar, todo en menos de ½ segundo.
  • 38. Figura 1.12 Lectores subcutáneos de huellas dactilares Otros lectores de huellas dactilares basados en sistemas ópticos o de capacitancia no funcionan en hasta un 30% de la población 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 pequeñas cantidades de grasa, tierra o marcas de rotulador. El T4210 es un lector de huellas dactilares subcutáneos que se conecta directamente en el puerto USB del PC. La sencillez de su diseño y la posibilidad de utilizarlo de forma independiente lo convierten en una herramienta ideal para garantizar la seguridad de su ordenador portátil 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 número de contraseñas necesarias. Simplemente con un dedo podrá acceder a la información 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 rápido, intuitivo y no requiere un elevado conocimiento de informática. Figura 1.13 Lector de huellas dactilares T4210
  • 39. Funcionamiento: La gama de lectores biométricos subcutáneos utiliza una tecnología nueva que lee debajo de la capa de piel (muerta) del individuo. Es en la capa subcutánea de la piel donde reside la auténtica huella dactilar. El sistema funciona rebotando ondas electromagnéticas, similares a las ondas de radio, en el tejido vivo y el flujo sanguíneo bajo la piel de las personas. Figura 1.14 Detalle de la capa subcutánea 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 subcutáneo 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 además de servir para contabilizar el numero de individuos o vehículos 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 específicos y con funciones que se adaptan al las condiciones que se requieran. A continuación 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 rápida revisión 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 implementación depende en gran medida la eficacia del sistema.
  • 41. 1.5.1.- Cerradura electromagnética Figura 1.5 Cerradura electromagnética. Las cerraduras electromagnéticas 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 sujeción para puertas de vidrio, madera, metal, etc. Entre sus principales características podemos mencionar: • Son altamente resistentes y duraderas. • Su alimentación es de 12 V. DC (en la mayoría de los casos) • Son ideales para lugares con alto nivel tránsito 1.5.2.- Cerradura electromecánica (Multipla 2000) Figura 1.16 Cerradura múltipla 2000
  • 42. Esta cerradura trabaja con un electroimán 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 características principales de esta cerradura son: - Cierre más suave - Traba más 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 fijación unificada 1.5.3.- Cerradura electronica Rench Se trata de una cerradura electrónica accionada mediante un teclado. Utiliza 4 pilas AA. Figura 1.17 Cerradura electrónica 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 según el modelo. Las cerraduras Bancarias incluyen lo anterior más retardo, doble usuario, conexión a alarma silenciosa e inhibición a distancia. La Bancaria Plus incluye lo anterior más opciones de auditoria y display.
  • 43. 1.5.4.- Cerradura electrónica para múltiples aplicaciones Figura 1.18 Cerradura para múltiples aplicaciones Este tipo de cerradura es apta para múltiples aplicaciones: puertas de garajes, ascensores, conexión y desconexión de sistemas de seguridad, etc. tiene siete códigos para siete usuarios diferentes mas un master, Indicadores luminosos y sonoros: luz verde es apertura, luz roja es pulsación incorrecta, alimentación 6 voltios (cuatro pilas AA no incluidas) duración media estimada de las pilas, un año. Alimentación desde el exterior de emergencia, indicador de batería baja Función apertura inmediata
  • 44. CAPÍTULO II Microcontroladores PIC de gama media. 2.1.- Introducción: Desde la invención del circuito integrado, el desarrollo constante de la electrónica digital ha dado lugar a dispositivos cada vez mas complejos. Entre ellos los microprocesadores y los microcontroladores, los cuales en la actualidad se consideran básicos en las carreras de ingeniería electrónica. Los “PIC” son una familia de microcontroladores tipo RISC fabricados por Microchip Technology Inc. y derivados del PIC1650, originalmente desarrollado por la división de microelectrónica de General Instruments. El nombre actual no es un acrónimo, en realidad, el nombre completo es PICmicro, aunque generalmente se utiliza como Peripheral Interface Controller (Controlador de Interfaz Periférico), 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 tenía 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 código simple almacenado en la ROM para realizar estas tareas; y aunque el término no se usaba por aquel entonces, se trata de un diseño RISC que ejecuta una instrucción cada 4 ciclos del oscilador.
  • 45. En 1985, dicha división de microelectrónica de General Instruments se convirtió en una filial y el nuevo propietario canceló casi todos los desarrollos, que para esas fechas la mayoría estaban obsoletos. El PIC, sin embargo, se mejoró con EPROM para conseguir un controlador de canal programable. Hoy en día multitud de PICs vienen con varios periféricos incluidos (módulos de comunicación serie, UARTs, núcleos de control de motores, etc.) y con memoria de programa desde 512 a 32.000 palabras (una palabra corresponde a una instrucción en ensamblador, y puede ser 12, 14 , 16 bits, 17 o 18 bits dependiendo de la familia específica 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 tamaño, suele ir incorporado en el propio dispositivo al que gobierna. Esta última característica es la que le confiere la denominación de «controlador incrustado» (embedded controller). Figura 2.2 Tarjeta con microcontrolador PIC 16F84 El microcontrolador es un computador dedicado. En su memoria sólo reside un programa destinado a gobernar una aplicación determinada; sus líneas 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 continuación se realiza un breve resumen de los microcontroladores PIC: 2.2.1.- Juego de instrucciones y entorno de programación El PIC usa un juego de instrucciones tipo RISC (Reduced Instruction Set Computer) cuyo número 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 posición de memoria, instrucciones de condicionamiento y de salto/retorno, implementación de interrupciones y una para pasar a modo de bajo consumo llamada sleep. Microchip proporciona un entorno de desarrollo freeware (de distribución gratuita) llamado MPLAB que incluye un simulador software y un ensamblador. Otras empresas desarrollan compiladores C y BASIC. Microchip también vende compiladores para los PICs de gama alta ("C18" para la serie F18 y "C30" para los dsPICs) y se puede descargar una edición para estudiantes del C18 que inhabilita algunas opciones después de un tiempo de evaluación. Además del compilador C de Microchip, existen otros compiladores tales como CCS C, Hi tech, MiKroC,. Para Pascal existe un compilador de código abierto, JAL, lo mismo que PicForth para el lenguaje Forth. GPUTILS es una colección 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.- Programación del PIC Para transferir el código de un ordenador al PIC normalmente se usa un dispositivo llamado programador, ver figura 2.3. La mayoría de PICs que Microchip distribuye hoy en día incorporan ICSP (In Circuit Serial Programming, programación serie incorporada) o LVP (Low Voltage Programming, programación 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 programación aplicando una tensión entre 11 a 14 voltios DC. Existen muchos programadores de PICs, desde los más simples que dejan al software los detalles de comunicaciones, a los más complejos, que pueden verificar el dispositivo a diversas tensiones de alimentación 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 más simples es el TE20, que utiliza la línea TX del puerto RS232 como alimentación y las líneas DTR y CTR para mandar o recibir datos cuando el microcontrolador está en modo programación. El software de programación puede ser el ICprog, muy común entre la gente que utiliza este tipo de microcontroladores. Figura 2.3 programador PICSTART Se pueden obtener directamente de Microchip muchos programadores/depuradores, a continuación 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.- Tamaño de palabra El tamaño 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 deberían llamar microcontroladores de 8 bits. Pero a diferencia de la mayoría de UCPs, el PIC usa arquitectura Harvard, por lo que el tamaño de las instrucciones puede ser distinto del de la palabra de datos. De hecho, las diferentes familias de PICs usan tamaños de instrucción distintos, lo que hace difícil comparar el tamaño del código 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.- Características generales Los PICs actuales vienen con una amplia gama de mejoras de hardware incorporadas: • Núcleos de UCP de 8/16 bits con Arquitectura Harvard modificada • Memoria de programa de hasta 128 kilobytes • Puertos de E/S (típicamente 0 a 5,5 voltios) • Temporizadores de 8/16 bits • Tecnología Nanowatt para modos de control de energía • Periféricos serie síncronos y asíncronos: USART, AUSART, EUSART ,USB • Conversores analógico/digital de 8-10-12 bits, hasta 16 canales. • Comparadores de tensión • Módulos de captura y comparación PWM • Controladores LCD • Periférico MSSP para comunicaciones I2C, SPI, PSP. • Memoria EEPROM interna con duración de hasta un millón de ciclos de lectura/escritura
  • 49. • Periféricos 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 están 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 todavía vende versiones PROM y EPROM de la mayoría de los PICs para soporte de aplicaciones antiguas o grandes pedidos, la nueva generación 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 disponían de hasta cuatro bancos de memoria para organizar su memoria, otras ventajas como mayor capacidad de direccionamiento, 77 instrucciones y más ventajas que se vera más adelante en detalle. b) Clones del PIC Por todos lados surgen compañías que ofrecen versiones del PIC más baratas o mejoradas. La mayoría suelen desaparecer rápidamente. Una de ellas que va perdurando es Ubicorn (antiguamente Scenix) que vende clones del PIC que funcionan mucho más rápido que el original. OpenCores tiene un núcleo del PIC16F84 escrito en Verilog. c) PICs wíreless El microcontrolador rfPIC integra todas las prestaciones del PICmicro de Microchip con la capacidad de comunicación wireless UHF para aplicaciones RF de baja potencia. Estos dispositivos ofrecen un diseño muy comprimido para ajustarse a los
  • 50. cada vez más demandados requerimientos de miniaturización en aparatos electrónicos. d) PICs para procesado de señal (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 añaden varias operaciones de DSP implementadas en hardware, como multiplicación con suma de acumulador (multiply-accumulate, o MAC), barrel shifting, bit reversion o multiplicación 16x16 bits. 2.2.4.- PICs más comúnmente usados • PIC12C508/509 (encapsulamiento reducido de 8 pines, oscilador interno, popular en pequeños diseños como el iPod remote) • PIC16F84 (Considerado obsoleto, pero imposible de descartar y muy popular) • PIC16F84A (Buena actualización 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 común 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 continuación se lista las principales características 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 módulos CCP, configurables como o Entradas de captura de 16 bits de resolución o Modo Comparador de 16 bits de resolución o Salida PWM hasta 10 bits de resolución  156Khz Max con 8 bits de resolución  39Khz max con 10 bits de resolución • 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 Análogo Digital 10 bits, hasta 16 canales • Detector de bajo voltaje programable (LVD) (genera interrupción) • Comparadores analógicos • Programación 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 Protección de Código • Generales o Alimentación: 2.0V - 5.5V o Rango temperatura  Comercial: 0-70ºC  Industrial: -40ºC a 85ºC  Extendido: -40ºC a 125ºC o 18 a 80 pines 2.2.5.- PICs en Internet Se puede encontrar mucha información y documentación 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 (televisión de pago, Play Station...), lo que atrae la atención de los crackers; y segundo, porque el PIC16C84 fue uno de los primeros microcontroladores fácilmente 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 también podemos enfocar el tema de Internet a la posibilidad que se tiene de desarrollar con estos, Sistemas SCADA vía Web debido a que pueden adquirir y enviar datos al puerto serial de un computador utilizando transmisión 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 características fijas que no pueden alterarse. Las partes principales de un microcontrolador son: • Procesador • Memoria no volátil para contener el programa • Memoria de lectura y escritura para guardar los datos • Líneas de E/S para los controladores de periféricos: a) Comunicación paralelo b) Comunicación serie c) Diversas puertas de comunicación (bus l2C, USB, etc.) • Recursos auxiliares: a) Circuito de reloj b) Temporizadores c) Perro Guardián («watchdog») d) Conversores AD y DA e) Comparadores analógicos f) Protección ante fallos de la alimentación g) Estado de reposo o de bajo consumo(sleep). A continuación se pasa revista a las características más 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 seguían la arquitectura de von Neumann. Esta última se caracterizaba porque la UCP (Unidad Central de Proceso)
  • 54. se conectaba con una memoria única, donde coexistían datos e instrucciones, a través de un sistema de buses1 (véase figura 2.6). Figura 2.5 En la arquitectura de «von Neumann» la UCP se comunicaba a través 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, además de propiciar el paralelismo, permite la adecuación del tamaño de las palabras y los buses a los requerimientos específicos de las instrucciones y de los datos. También 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 máquina pequeño y simple, de forma que la mayor parte de las instrucciones se ejecuta en un ciclo de instrucción. 1 Los temas tratados están basados en el libro titulado “Microcontroladores PIC diseño práctico de aplicaciones” de José M. Angulo Usategui 3era edición.
  • 55. Otra aportación frecuente que aumenta el rendimiento del computador es el fomento del paralelismo implícito, que consiste en la segmentación del procesador (pipe-line), descomponiéndolo en etapas para poder procesar una instrucción 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 conjunción de tres técnicas: • Arquitectura Harvard • Computador tipo RISC • Segmentación 2.2.2.Memoria de programa Es una memoria EEPROM, es decir, de lectura solamente (ROM = Read Only Memory) que se programa por tensión (no necesita luz ultravioleta); es decir que basta con introducir los datos con cierto nivel de tensión 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, sólo pueden ser leídos, 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 interrupción”. Eso significa que, cuando se provoca un reset, el microprocesador vuelve a la posición 0000 del programa y cuando se produce una interrupción, a la posición 0004. Estos retornos forzados deben ser considerados al diseñar el programa del microprocesador; es decir que el reset se produce porque la señal externa pone el contador de programa en 000 y todo el programa se reinicia. En cambio, cuando ingresa una señal por la pata de interrupción el contador de programa va a 004 y la acción que, en general ocurre, es que se comienza a leer un subprograma particular. Cuando este subprograma termina, el contador de programa recupera el número que tenía en el momento de arribar la interrupción. El microcontrolador está diseñado para que en su memoria de programa se almacenen todas las instrucciones del programa de control. No hay posibilidad de utilizar memorias externas de ampliación. Como el programa a ejecutar siempre es el mismo, debe estar grabado de forma permanente. Los tipos de memoria adecuados para soportar esta función admiten cinco versiones diferentes: a) ROM con máscara En este tipo de memoria el programa se graba en el chip durante el proceso de su fabricación mediante el uso de «máscaras». Los altos costes de diseño e instrumental sólo aconsejan usar este tipo de memoria cuando se precisan series muy grandes.
  • 57. b) EPROM La grabación de esta memoria se realiza mediante un dispositivo físico gobernado desde un computador personal, que recibe el nombre de grabador. En la superficie de la cápsula 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 diseño y depuración de los programas, pero su coste unitario es elevado. c) OTP (Programable una vez) Este modelo de memoria sólo 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 grabación aconsejan este tipo de memoria para prototipos finales y series de producción cortas. d) EEPROM La grabación es similar a las memorias OTP y EPROM, pero el borrado es mucho más sencillo al poderse efectuar de la misma forma que el grabado, o sea, eléctricamente. Sobre el mismo zócalo del grabador puede ser programada y borrada tantas veces como se quiera, lo cual la hace ideal en la enseñanza y en la creación de nuevos proyectos. El fabuloso PIC16F84 dispone de 64 K palabras de memoria EEPROM para contener instrucciones y también tiene algunos bytes de memoria de datos de este tipo para evitar que cuando se retira la alimentación se pierda información. Aunque se garantiza 1.000.000 de ciclos de escritura/borrado en una EEPROM, todavía su tecnología de fabricación tiene obstáculos para alcanzar capacidades importantes y el tiempo de escritura de las mismas es relativamente grande y con elevado consumo de energía.
  • 58. e) FLASH Se trata de una memoria no volátil, 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 sólo 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 vehículos. Por sus mejores prestaciones está sustituyendo a la memoria EEPROM para contener instrucciones. De esta forma Microchip comercializa dos microcontroladores prácticamente iguales, que sólo 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 línea de PIC con memoria Flash cada vez más 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 sólo tiene implementados las primeras 48 posiciones (desde 00 a 2F en hexadecimal). De estos 48 registros, los primeros 12 son fijos y cumplen un propósito determinado, en tanto que desde el 13 hasta el 48 son registros de propósito general, en donde el programa puede indicar que se almacene un dato para ser tomado más tarde. Los datos que manejan los programas varían continuamente, y esto exige que la memoria que contiene debe ser de lectura y escritura, por lo que la memoria RAM estática (SRAM) es la más adecuada, aunque sea volátil.
  • 59. Hay microcontroladores que también disponen como memoria de datos una de lectura y escritura no volátil, del tipo EEPROM. De esta forma, un corte en el suministro de la alimentación no ocasiona la pérdida de la información, 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 eléctricamente. Sin necesidad de sacar el circuito integrado del zócalo del grabador pueden ser escritas y borradas numerosas veces. 2.2.4. Líneas de E/S para los controladores de periféricos A excepción de dos pines destinad0s a recibir la alimentación, otras dos para el cristal de cuarzo, que regula la frecuencia de trabajo, y una más para provocar el Reset, los restantes pines de un microcontrolador sirven para soportar su comunicación con los periféricos externos que controla. Las líneas de E/S que se adaptan con los periféricos manejan información en paralelo y se agrupan en conjuntos de ocho, que reciben el nombre de Puertos. Hay modelos con líneas que soportan la comunicación en serie; otros disponen de conjuntos de líneas que implementan puertos de comunicación para diversos protocolos, como el I2C, el USB, etc. A continuación se muestra el diagrama de bloques del PIC 16F877A2 2 LA imagen así como algunos criterios han sido tomados de la colección de libros titulado: “Curso práctico 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 Según 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 más 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 Guardián («watchdog»), destinado a provocar una reinicialización cuando el programa queda bloqueado. d) Conversores AD , para poder recibir y enviar señales analógicas. e) Comparadores analógicos, para verificar el valor de una señal analógica. f) Sistema de protección ante fallos de la alimentación. g) Estado de Reposo, (sleep) en el que el sistema queda «congelado» y el consumo de energía se reduce al mínimo. 2.4.-Descripción del PIC 16F877 En el presente proyecto de titulación, el control de acceso peatonal, se basa en 3 microcontroladores PIC 16F877A, de muy similares características con el 16F877, por lo que se hace un análisis 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.- Características 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 comunicación digital de diferentes dispositivos. El Pic 16f877 es un microcontrolador de gama media fabricado por Microchip, este modelo posee varias características que hacen a este microcontrolador un dispositivo muy versátil,
  • 62. eficiente y practico para ser empleado en la aplicación que posteriormente será detallada. Algunas de sus principales características se muestran a continuación: • Soporta modo de comunicación 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 electrónicamente (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 características más relevantes del microcontrolador PIC 16F877 CARACTERÍSTICAS 16F877 Frecuencia máxima 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 Número de pines 40 Interrupciones 14 Timers 3 Módulos CCP 2 Comunicaciones Serie MSSP, USART Comunicaciones paralelo PSP
  • 63. Líneas de entrada de CAD de 10 bits 8 Juego de instrucciones 35 Instrucciones Longitud de la instrucción 14 bits Arquitectura Harvard CPU Risc Canales Pwm 2 Pila Harware - Ejecución En 1 Ciclo Máquina - Tabla 2.1 características del PIC 16F877 2.4.2- Descripción de los puertos: El PIC 16F877 tiene un total de 40 pines, de los cuales utiliza 7 para alimentación, reset y oscilador. Los 33 restantes se distribuyen en cinco puertos desde el A hasta el Puerto E, Los dispositivos periféricos se listan a continuación: Dispositivos periféricos:  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 módulos de Captura, Comparación, PWM (Modulación de Anchura de Impulsos).  8 canales para Conversor A/D de 10 bits.  Puerto Serie Síncrono 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 descripción de cada uno de sus pines. Figura 2.9 Diagrama de Bloques del Microcontrolador PIC 16F877 En la siguiente tabla se resume la función de cada uno de los pines que contiene el Microcontrolador PIC 16F877
  • 65. NOMBRE DEL PIN PIN TIPO TIPO DE BUFFER DESCRIPCIÓN OSC1/CLKI N 13 I ST/MOS Entrada del oscilador de cristal / Entrada de señal 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 programación 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 analógica 0 RA1: puede ser salida analógica 1 RA2: puede ser salida analógica 2 o referencia negativa de voltaje RA3: puede ser salida analógica 3 o referencia positiva de voltaje RA4: puede ser entrada de reloj el timer0. RA5: puede ser salida analógica 4 o el esclavo seleccionado por el puerto serial síncrono. 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 interrupción externo. RB3: puede ser la entada de programación de bajo voltaje Pin de interrupción Pin de interrupción
  • 66. RB6/PGC RB7/PGD 39 40 I/O I/O TTL/ST TTL/ST Pin de interrupción. Reloj de programación 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 comparación o salida PWN RC3 puede ser la entrada o salida serial de reloj síncrono 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 asíncrono USART o el reloj síncrono. RC7 puede ser el receptor asíncrono USART o datos síncronos
  • 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 analógica 5 RE1: puede ser escritura de control para el puerto paralelo esclavo o entrada analógica 6 RE2: puede ser el selector de control para el puerto paralelo esclavo o la entrada analógica 7. Vss 12.3 1 P - Referencia de tierra para los pines lógicos y de I/O Vdd 11.3 2 P - Fuente positiva para los pines lógicos y de I/O NC - - - No está conectado internamente Tabla 2.2 Descripción 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 distribución física real de los pines, así como una breve descripción de la función 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 gráfica 2.12, donde además constan las distancias entre pines, medidas entre pines, etc., que son necesarias para el diseño de la placa donde residirá el integrado. Figura 2.11 Dimensiones físicas del Microcontrolador PIC 16F877
  • 69. CAPÍTULO III Lenguaje Ensamblador y Lenguaje C «Un microcontrolador es un computador metido dentro de un circuito integrado.» Son computadores muy pequeños 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 teléfono móvil, el teclado y el ratón del computador, etc. Además, al ser tan pequeños tienen una potencia limitada y sólo sirven para realizar una tarea. En el siglo XXI la realización de proyectos para aplicar los microcontroladores en el gobierno y automatización de multitud de productos y procesos se presenta como una ingente labor que va a requerir la colaboración de multitud de profesionales y va a ofrecer una oportunidad inigualable para quienes estén preparados adecuadamente. Los proyectos con microcontroladores exigen un trabajo con hardware consistente en adaptar Los pines del microcontrolador a los periféricos externos que hay que controlar. Además, también requieren la confección de un programa con las instrucciones precisas para que su ejecución origine el procesamiento de la información 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 sólo acepta instrucciones en código binario y el Ensamblador facilita su escritura al programador permitiendo expresarlas mediante «mnemónicos1 », que son tres o cuatro letras significativas que referencian en inglés, la operación que conlleva la instrucción. Por ejemplo, una instrucción 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 lógicas AND, OR, XOR, también rotar un dato de 8 bits, moverlo de un sitio a otro y muy poquito más. Si deseamos hacer una multiplicación 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 mnemónicos con los que se escriben las instrucciones a código binario para que el procesador sea capaz de interpretarlas y ejecutarlas. Los lenguajes de «alto nivel» tienen instrucciones más potentes: saben multiplicar, sacar la raíz cuadrada y realizar funciones y operaciones mucho más complicadas que las que pueden hacer las instrucciones de la máquina. Pero como la máquina es la misma, la realización de esas instrucciones se tiene que hacer con programas de instrucciones elementales. Cada instrucción 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 intérpretes que realizan dicha traducción pero instrucción por instrucción, o sea, traducen una instrucción de alto nivel en las correspondientes de bajo nivel que ejecuta el procesador y a continuación pasan a la siguiente. 1 La definición del término mnemónico, puede ser revisado en el vocabulario técnico, al final de este documento.
  • 71. 3.1.1.- Programa fuente en Lenguaje Ensamblador: El programa fuente esta compuesto por una sucesión de líneas de programa. Cada línea de programa esta compuesta por 4 campos separados por uno o más espacios o tabulaciones. Estos campos son: [Etiqueta] [Comando] [Operando(s)] [;Comentario] La etiqueta es opcional. El comando puede ser un mnemónico 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 práctica considerarlo obligatorio para el programador. 3.1.2.- Conjunto de instrucciones El conjunto de instrucciones de los microprocesadores PIC 16C5X consiste en un pequeño 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 algún 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 implícita o incluida literalmente en la instrucción (literales). En tercer lugar se agrupan las instrucciones que operan sobre bits individuales de los registros de la memoria interna. En cuarto lugar se clasifican las instrucciones de control de flujo del programa, es decir las que permiten alterar la secuencia lineal de ejecución de las instrucciones. Por último se agrupan unas pocas instrucciones que llamaremos especiales, cuyas funciones o tipos de operandos son muy específicos y no encajan en ninguna de las clasificaciones anteriores.
  • 72. En la tabla 3.1 se ha resumido las 35 instrucciones de los microcontroladores PIC de gama media, clasificados en los tres grupos antes mencionados, en donde se hace una breve descripción de su función, se determina el numero de ciclos que necesita para ser ejecutado por el microcontrolador, y se establece los bit de las banderas que serán afectados en el registro status. Instrucciones orientadas a byte: Instrucciones orientadas a bit: Instrucciones orientadas a literal y control: Tabla 3.1 Resumen de instrucciones (clasificación según el fabricante en tres grupos):
  • 73. 3.1.3.- Herramientas de desarrollo. El MPLAB. EL MPLAB es un “Entorno de Desarrollo Integrado “ (Integrated Development Environment, IDE) que corre en “Windows “, mediante el cual Usted puede desarrollar aplicaciones para los microcontroladores de las familias PIC 16/17/18. EL MPLAB le permite a Usted escribir, depurar y optimizar los programas (firmware) de sus diseños con PIC 16/17/18. EL MPLAB incluye un editor de texto, un simulador y un organizador de proyectos. Además, el MPLAB soporta el emulador PICMASTER y a otras herramientas de desarrollo de Microchip como el PICSTART - Plus. Fig. 3.1 Entorno de Desarrollo Integrado MPLAB Con el MPLAB se puede: • Depurar sus programas fuente. • Detectar errores automáticamente en sus programas fuente para editarlos. • Depurar los programas utilizando puntos de corte (breakpoints) mediante valores de los registros internos. • Observar el flujo del programa con el simulador MPLAB -SIM, ó seguirlo en tiempo real utilizando el emulador PICMASTER. • Realizar medidas de tiempo utilizando un cronómetro. • Mirar variables en las ventanas de observación.
  • 74. • Encontrar respuestas rápidas a sus preguntas, utilizando la ayuda en línea del MPLAB. Entre las herramientas del MPLAB se encuentran el Organizador de Proyectos (Project Manager) es parte fundamental de MPLAB. Sin crear un proyecto Usted no puede realizar depuración simbólica. Con el Organizador de Proyectos (Project manager) puede utilizar las siguientes operaciones: • Crear un proyecto. • Agregar un archivo de programa fuente de proyecto. • Ensamblar o compilar programas fuente. • Editar programas fuente. • Reconstruir todos los archivos fuente, o compilar un solo archivo. • Depurar su programa fuente. 3.2.- El Lenguaje Basic Aprender a manejar el lenguaje BASIC para computadoras es una labor muy sencilla, tan simple como escribir (en inglés). En BASIC las instrucciones coinciden con el nombre en inglés de la operación que se debe llevar a cabo. Por ejemplo, escribir o visualizar un valor en la pantalla utiliza la instrucción PRINT; para introducir por el teclado un valor se emplea la instrucción INPUT y si se desea realizar una suma basta con poner el signo “+” de la misma. Un lenguaje para una computadora es un conjunto de instrucciones y comandos, que la máquina es capaz de interpretar y ejecutar. Fíjese en un programa en BASIC. Este programa se entiende sólo. Se introduce por el teclado en primer lugar el valor de la variable a, después se introduce por el mismo procedimiento el valor de b y, finalmente, se visualiza el resultado de la operación a+b. Consiste en una sucesión ordenada de las instrucciones que debe ejecutar el computador para ir procesando los datos hasta alcanzar el resultado deseado.
  • 75. 10 INPUT R ‘Se introduce el radio 20 LET S=3.14*R*R ‘se calcula el área 30 PRINT S,R ‘se escribe S y R 40 END ‘fin del programa Figura 3.2 Ejemplo de programa en Leguaje Basic El lenguaje BASIC fue desarrollado en I960 por J. Kemeny y T. Kurtz con la finalidad de simplificar la programación. 3.2.1.- Ventajas e inconvenientes Se trata de un lenguaje muy sencillo que está orientado a las personas y por eso sus instrucciones recuerdan las palabras inglesas con las que se describe la operación que realizan. Dado su parecido con el álgebra elemental es muy útil para resolver problemas técnicos de ingeniería, aunque también es muy cómodo en las aplicaciones que manejan mucha información literal, típico en los negocios. Las grandes ventajas del lenguaje BASIC desgraciadamente están acompañadas por algunos defectos, que suelen empujar a los programadores profesionales a repudiarlo. Como mayor defecto se dice que es un lenguaje «no estructurado» o «no procedural», de lo cual la mayor culpa tiene la instrucción GOTO, que es capaz de desviar el flujo de la ejecución de instrucciones a cualquier parte del programa, impidiendo la posibilidad de dividir la tarea en trozos pequeños e independientes. Las normas puristas de la programación proponen la confección del software en base a un pequeño «programa principal», que se compone de llamadas a rutinas y procedimientos autónomos e independientes en los que se descompone la tarea a resolver. Para implementar esta estructura es necesario poder salir con facilidad del programa principal a las rutinas traspasando algunos parámetros, así como también poder regresar a dicho programa principal desde la rutina trayendo resultados obtenidos en esta última. El lenguaje BASIC no soporta completamente estas estructuras en los programas.