• No se han encontrado resultados

Aplicaciones docentes para Microcontroladores PIC

N/A
N/A
Protected

Academic year: 2020

Share "Aplicaciones docentes para Microcontroladores PIC"

Copied!
101
0
0

Texto completo

(1)

(2)

(3) Hago constar que el presente Trabajo de Diploma fue realizado en la Universidad Central “Marta Abreu” de Las Villas como parte de la culminación de estudios de la especialidad de Ingeniería en Electrónica y Telecomunicaciones autorizando a que el mismo sea utilizado por la Institución, para los fines que estime conveniente, tanto de forma parcial como total y que además no podrá ser presentado en eventos, ni publicados sin autorización de la Universidad.. . Firma del Autor.. Los abajo firmantes certificamos que el presente trabajo ha sido realizado según acuerdo de la dirección de nuestro centro y el mismo cumple con los requisitos que debe tener un trabajo de esta envergadura referido a la temática señalada.. . Firma del Tutor.. . Firma del Jefe de Departamento donde se defiende el trabajo.. . Firma del Responsable de Información Científico-Técnica..

(4) Pen sam ien to. - I -.

(5) D ed icatoria. - II -.

(6) Agrad ecim ien tos. - III -.

(7) Tarea Técnica. TAREA TÉCNICA.. Para la consecución de los objetivos planteados en este Trabajo de Diploma se tomaron en cuenta las siguientes tareas técnicas:. Realización de una revisión bibliográfica de temas relacionados con los Microcontroladores PIC. Revisión, modificación y actualización de la literatura docente sobre el tema. Estudio, descripción y selección de herramientas de software para el montaje de prácticas relacionadas con el tema. Estudio y descripción de herramientas de hardware para montajes de prácticas relacionadas con el tema. Definir una metodología para el desarrollo de aplicaciones y elaboración de ejemplos. Redacción de un Informe Final.. . Firma del Autor.. . Firma del Tutor.. - IV -.

(8) Resu men. RESUMEN.. Con el presente Trabajo de Diploma se pretende dar una panorámica tanto teórica como práctica. acerca de los microcontroladores PIC con fines. docentes. Para lograr este objetivo se utiliza con los PIC de gama media de la Microchip Technology, Inc. y en especial el PIC 16F84, por estar considerado como uno de los mas representativos de la familia, de mayor popularidad y para el cuál existe un gran número de aplicaciones. Se realiza además. breves. descripciones. de. softwares. para. el. trabajo. con. microcontroladores así como de herramientas de hardware. Finalmente se define una metodología. para el desarrollo de aplicaciones y se brindan. ejemplos donde se emplean los editores, simuladores y dispositivos que fueron abordados.. - V -.

(9) Índ ice. ÍNDICE. PENSAMIENTO. .................................................................................. I DEDICATORIA.................................................................................. II AGRADECIMIENTOS. ...................................................................... III TAREA TÉCNICA. ............................................................................ IV RESUMEN. ......................................................................................... V INTRODUCCIÓN. ............................................................................... 1 Organización del informe. ................................................................ 2 CAPÍTULO I. Principales características de los microcontroladores PIC ........................................................................................................... 3 1.1. Microprocesadores vs. Microcontroladores. .......................... 4 1.2. Arquitectura de los Microcontroladores PIC. ........................ 6 1.2.1. Memoria de Programa ROM. .........................................10 1.2.2. Contador de Programa (PC) y la Pila. ............................11 1.2.3. Memoria de datos RAM. ................................................12 1.2.3.1. Área EEPROM de la memoria de datos. .....................14 1.2.3.2. Procesos de lectura y escritura en la EEPROM. .........15 1.2.4. Direccionamiento de la memoria de datos. .....................15 1.2.4.1. Direccionamiento directo. .........................................16 1.2.4.2. Direccionamiento indirecto .......................................17 1.2.5. Puertos de Entrada/Salida ............................................17 1.2.5.1. El Puerto A. ..............................................................18 1.2.5.2. El Puerto B. ..............................................................18 1.2.6. Contadores/Temporizadores. .........................................19 1.2.6.1. Temporizador/Contador TMR0. ................................20 1.2.6.2. El Perro Guardián (WDT). .......................................21 1.2.6.3. El Divisor de Frecuencia. ..........................................21 1.3. Repertorio Risc. ..................................................................22 1.3.1. Operaciones y tipos de formatos. ...................................23 1.3.2. Instrucciones que manejan registros. .............................24 1.3.3. Instrucciones que manejan bits. .....................................25 1.3.4. Instrucciones de salto condicional. .................................25 1.3.5. Instrucciones que manejan operandos inmediatos. .........26 1.3.6. Instrucciones de control y especiales. .............................26. - VI -.

(10) Índ ice. 1.4. Interrupciones y Reset. ........................................................28 1.4.1. Causas de interrupción. .................................................30 1.4.1.1. Interrupción externa INT. .........................................30 1.4.1.2. Interrupción por desbordamiento del TMR0. .............31 1.4.1.3. Interrupción por cambio de estado en las líneas RB7►4 del Puerto B. .............................................................................31 1.4.1.4. Interrupción por finalización de escritura en la EEPROM de datos. ....................................................................31 1.4.2. Reinicialización o Reset. ................................................32 1.5. Estado del Arte. ......................................................................33 1.5.1. Principales Productores. ...................................................33 1.5.2. Las familias de los PICs. ...................................................33 1.5.3. Características de los PICs modernos. ...............................34 1.5.4. PICs wireless. ...................................................................35 1.5.5. PICs para procesamiento digital de señales (dsPICs) .........35 1.5.6. PICs con puerto USB (USB PICs) ......................................35 1.5.7. Ethernet PICs. ..................................................................36 1.5.8. PICs más comúnmente usados. ..........................................36 1.5.9. PICs en Internet. ..............................................................36 1.5.10. Los PIC como tema de estudio a nivel mundial. ................37 CAPÍTULO II. Herramientas para el desarrollo de aplicaciones ..........38 2.1. Herramientas de software para el trabajo con PICs. ................39 2.1.1. PROTEUS. ....................................................................39 2.1.1.1. Breve descripción del ISIS. .......................................40 2.1.1.2. Breve descripción del ARES. .....................................41 2.1.2. MPLAB. ........................................................................43 2.1.3. Integración del PROTEUS y el MPLAB. .........................45 2.1.4. Herramientas de software basadas en Linux. ..................45 2.1.4.1. KTechlab 0.3. ...........................................................46 2.1.4.2. YaPIDE. ...................................................................47 2.1.4.3. PiKdev. .....................................................................48 2.1.5. Melabs Programmer. .....................................................49 2.2. Herramientas de hardware para el trabajo con PICs. ..............50 2.2.1. In-Circuit Serial Programmed (ICSP). ...........................50 2.2.2. Descripción de un circuito para grabar PICs..................52 2.2.3. Dos periféricos muy comunes Display y Teclado. ............53. - VII -.

(11) Índ ice. CAPÍTULO III. Diseño de aplicaciones ...............................................56 3.1. Metodología para el desarrollo de aplicaciones para microcontroladores. ........................................................................57 3.1.1. Desarrollo del Programa (Software). ..............................57 3.1.1.1. Especificación del programa......................................58 3.1.1.2. Diseño del programa. ................................................58 3.1.1.3. Edición y Ensamblaje. ...............................................58 3.1.1.4. Pruebas preliminares. ...............................................59 3.1.2. Desarrollo del hardware. ...............................................59 3.1.2.1. Especificación del hardware. .....................................59 3.1.2.2. Diseño del Hardware. ................................................59 3.1.2.3. Construcción del prototipo y pruebas preliminales. ...60 3.1.3. Integración y verificación.................................................60 3.2. Estructura básica de un Programa para microcontroladores PIC. ................................................................................................60 3.3. Ejemplos de aplicaciones desarrolladas. ................................61 3.3.1. Timbre musical. ...............................................................62 3.3.2. Reloj. ...............................................................................64 3.3.3. Aplicación con display LCD. ............................................66 CONLUSIONES Y RECOMENDACIONES. .........................................69 Conclusiones. ..................................................................................69 Recomendaciones. ...........................................................................69 REFERENCIAS BIBLIOGRÁFICAS. ..................................................70 LISTA DE FIGURAS. .........................................................................74 LISTA DE TABLAS............................................................................76 ANEXOS. ...........................................................................................77. - VIII -.

(12) In troducció n. INTRODUCCIÓN.. Los microcontroladores están conquistando al mundo. La vanguardia de esta expansión son los PIC Peripheral Interface Controller (Controlador de Interfaz de Periférico), originados en la Universidad de Harvard para un proyecto del Departamento de Defensa. Esta es una. invasión que recién. comienza, se espera que el siglo XXI vea la mayoría de los aparatos fabricados por los humanos gobernados por estos diminutos computadores. Importantes sectores e industrias actuales no se conciben sin la utilización de. los. microcontroladores.. Tal. es. el. caso. de. los. sistemas. de. comunicaciones, las diferentes líneas de equipos electrodomésticos, la instrumentación y la electromedicina, la industria informática e incluso la automovilística por solo citar algunas.. De todo lo anteriormente comentado se desprende la necesidad del estudio de estos dispositivos y es esta precisamente la principal premisa de este Trabajo de Diploma.. Entre los objetivos del presente trabajo está modificar y actualizar la literatura docente que será empleada en la docencia para. de esta forma. mejorar la comprensión de temas relacionados con los microcontroladoresPIC e incentivar la investigación en ese campo. Analizar y describir las herramientas de software y hardware para el trabajo con PICs y definir una metodología para el desarrollo de aplicaciones. Todo esto deviene en la creación de materiales de consulta acerca del tema.. Para asegurar el correcto cumplimiento de los objetivos planteados se ejecutaron las siguientes tareas: primero, búsqueda bibliográfica y análisis del estado del arte de los. PICs; segundo, estudio y utilización de. simuladores y dispositivos electrónicos para el trabajo con PICs; tercero,. - 1 -.

(13) In troducció n. elaboración. de. aplicaciones. de. ejemplo. utilizando. las. herramientas. estudiadas.. Organización del informe.. El presente Trabajo de Diploma se ha estructurado en tres capítulos con las siguientes temáticas:. Capítulo. I:. Se. realiza. una. descripción. de. los. aspectos. más. importantes de estructura y funciones de los microcontroladores PIC de la gama media de la Microchip Technology, Inc.. Capítulo II: Se analiza y describe brevemente las herramientas de software y hardware que responden a fines pedagógicos. Capítulo III: Se define una metodología para el desarrollo de aplicaciones en PICs y se brindan ejemplos elaborados con la utilización de las herramientas de software y hardware analizadas.. - 2 -.

(14) CAPÍTULO I.. Principales características de los microcontroladores PIC.

(15) Cap ítu lo I. CAPÍTULO I. Principales características de los microcontroladores PIC. 1.1. Microprocesadores vs. Microcontroladores.. Un microprocesador es un circuito integrado que contiene la parte más importante de la Unidad Central de Procesamiento (UCP) de un computador digital. En realidad según los modelos varía la estructura interna del microprocesador, pero la gran mayoría contienen la Unidad de Control y la Unidad Operativa. Figura 1.1.. Figura 1.1. Estructura de los microprocesadores.. Cuando con el microprocesador se implementa un sistema, hay que añadir uno o varios circuitos integrados para conformar la Memoria Principal y los Puertos de Entrada y Salida para que pueda enviar y/o recibir información del mundo exterior. Figura 1.2.. Figura 1.2. Sistema microprocesador.. - 4 -.

(16) Cap ítu lo I. Los avances de la tecnología MOS aplicados en la fabricación de circuitos integrados de alta densidad permitieron, antes del comienzo de la década de los 80, implementar en un solo chip todos los bloques funcionales que componen un microordenador. A dicho circuito integrado se le denomina microcontrolador.. Un microcontrolador es un circuito integrado programable que contiene todos los componentes de un computador. El microcontrolador es un computador dedicado. En su memoria solo reside un programa destinado a gobernar una aplicación determinada. Sus líneas de entrada y salida soportan el conexionado de los sensores y adaptadores de los dispositivos a controlar y todos los recursos complementarios disponibles tienen como única finalidad atender todos sus requerimientos.. Un microcontrolador consta de los siguientes elementos básicos: CPU Memoria de programas (ROM) Memoria de soporte de datos temporales (RAM) Puertos de Entrada / Salida. Temporizadores.. Las. características. determinadas por parámetros. y. cantidad. de. estos. elementos. básicos. están. las funcionalidades asignadas a cada modelo. Estos. suelen ser bastante parecidos en microcontroladores de la. misma familia.. Con carácter general, los microcontroladores se usan en sistemas de control que reúnan las siguientes propiedades:. El precio como factor crítico.. - 5 -.

(17) Cap ítu lo I. La capacidad de memoria necesaria es pequeña. El procesamiento se realiza en tiempo real. Se opera en decimal y se manipulan bits específicos. No se gobiernan muchos periféricos. Los sistemas son dedicados y siempre ejecutan el mismo programa de aplicación.. En. la. Figura. 1.3.. microcontroladora. se. presentan. los. componentes. de. una. pastilla. Se aprecia una memoria permanente tipo ROM o. EPROM, donde reside el programa fijo, que se repite con la finalidad de controlar la aplicación de los microcontroladores en el procesamiento de sucesos en tiempo real, y que exige un conjunto de interrupciones multinivel, potente y flexible.. Figura 1.3. Estructura del microcontrolador 8048 de INTEL.. 1.2. Arquitectura de los Microcontroladores PIC.. Los microcontroladores PIC para lograr una compactación de código óptima y una velocidad superior a la de sus competidores incorporan tres avanzadas características en su procesador: Arquitectura Harvard Procesador tipo RISC (Reduced Intruction Set Computer) Procesador segmentado. - 6 -.

(18) Cap ítu lo I. La incorporación en los PIC de estos recursos permite ejecutar en un ciclo todas las instrucciones excepto las. de salto, que tardan el doble. La. simetría y ortogonalidad es un requisito imprescindible en el formato de las instrucciones. De esta forma se consigue una compactación en el código de programa, por ejemplo para un PIC 16X84 2,24 veces superior a la de un 68HC05, funcionando a la misma frecuencia. El juego de instrucciones se reduce a 35 en la gama media y sus modos de direccionamiento se han simplificado al máximo.. Con la estructura segmentada se pueden realizar simultáneamente las dos fases en que se descompone cada instrucción. Al mismo tiempo que se desarrolla la fase de ejecución de una instrucción se realiza la fase de búsqueda siguiente.. La arquitectura Harvard es uno de los pilares que sustenta la organización de los PIC. Gracias a ella se puede acceder. de. forma. simultánea e. independiente a la memoria de datos y la de instrucciones. Figura 1.4.. Figura 1.4. Estructura del manejo de datos e instrucciones.. Este aislamiento y diferenciación de los dos tipos de memoria permiten que cada uno tenga independencia en cuanto a la longitud y el. tamaño más. adecuado.. - 7 -.

(19) Cap ítu lo I. Como se muestra en la Figura 1.5. la. Unidad Lógico-Aritmética (ALU). efectúa sus operaciones con dos operandos, uno que recibe desde el registro W (Work), que hace las veces de acumulador en los microprocesadores convencionales,. y otro que puede provenir de cualquier registro o del. propio código de la instrucción.. Figura 1.5. Arquitectura de la ALU.. El resultado de la operación puede almacenarse en cualquier registro o en W. Esta funcionalidad da un carácter completamente ortogonal a las instrucciones que pueden utilizar cualquier registro como operando fuente y destino.. La arquitectura interna de los PIC 16X84 es emblemática para este tipo de dispositivos. Algunas variaciones en ella tales como el aumento de la capacidad de las memorias, la inclusión de un mayor número de terminales de Entrada/Salida y de nuevas prestaciones son las que han originado la evolución hacia familias superiores. Por esta razón a partir de este momento nos referiremos fundamentalmente a dicha familia. Figura 1.6.. - 8 -.

(20) Cap ítu lo I. Figura 1.6. Arquitectura interna del microcontrolador PIC 16X84.. La arquitectura de los PIC 16X84 consta de siete bloques fundamentales que a continuación se mencionan: Memoria de programa EEPROM de 1K x 14 bits. Memoria de datos formada por dos áreas. Una RAM donde se alojan 22 registros de propósito específico (SFR) y 36 de propósito general (GPR), y otra de tipo EEPROM de 64 bytes. Camino de datos con una ALU de datos de ocho bits y un registro de trabajo W del que normalmente recibe un operando y envía el resultado. El otro operando puede provenir del bus de datos o del propio código de la instrucción (literal). Base de tiempo y circuitos auxiliares.. - 9 -.

(21) Cap ítu lo I. Direccionamiento de la memoria de programa en base al Contador de Programa ligado a una Pila de ocho niveles. Direccionamiento directo e indirecto de la memoria RAM. Diversos recursos conectados al bus de datos, tales como Puertos de entrada y salida, temporizador TMR0, etc.. Las operaciones de E/S con los periféricos la soportan los Puertos A y B. Existe un temporizador, TMR0, para encargarse de las funciones de control de tiempo. Existen también procesador. de. interesantes. unos circuitos auxiliares que dotan al posibilidades. de. seguridad,. reducción. de. consumo y reinicialización.. 1.2.1. Memoria de Programa ROM.. La arquitectura de los PIC gama media admite un mapa de memoria de programa capaz de contener 8 192 instrucciones de 14 bits cada una. Este mapa se divide en páginas de 2 048 posiciones. Se necesitan 13 bits para direccionar 8K. posiciones, que es la longitud que tiene el contador de. programa. Sin embargo, el PIC 16F84. solo tiene implementadas 1K. posiciones, por lo que ignora los tres bit de más peso del PC. El rango de direcciones que cubre el PIC 16F84 en su memoria de programa llega desde la 00h a la 3FFh, o sea un total de 1024 posiciones, Figura 1.7.. - 10 -.

(22) Cap ítu lo I. Figura 1.7. Memoria de programa.. En la gama media, el PIC 16C84 aporta la utilización de una memoria de programa del tipo EPROM, capaz de ser escrita y borrada eléctricamente. Lo mismo sucede con el PIC 16F84, cuya memoria de instrucciones es de tipo FLASH.. 1.2.2. Contador de Programa (PC) y la Pila.. Debido a que los PIC 16X84 Tienen 1K de palabras de 14 bits en la memoria de programa el PC, que dispone de 13 bits, emplea en el direccionamiento de la misma solo los 10 de menos peso. Como los bits ignorados son los tres de más peso, apuntar a la dirección 33h es lo mismo que hacerlo a la 433h, 833h, C33h, 1033h, 1433h o a la 1C33h.. Al igual que todos los registros específicos que controlan la actividad del procesador, el contador de programa está implementado sobre un par de posiciones de la memoria RAM. Cuando se escribe el contador de programa como resultado de una operación de la ALU, los ocho bits de menos peso del PC residen en el registro PCL, que ocupa, repetido, la posición de los dos bancos de memoria de datos.. - 11 -.

(23) Cap ítu lo I. Los bits de más peso PC <12:8>, reciben los cinco bits de menos peso del registro PCLATH que ocupa la posición 0Ah de los bancos de la memoria RAM.. La instrucción call y las interrupciones originan la carga del contenido PC en el nivel superior o cima de la Pila. El contenido del nivel superior se saca de la Pila al ejecutar las instrucciones. return, retlw, retfie. El. contenido del registro PCLATH no es afectado por la entrada o salida de la información de la Pila. Los PIC no disponen de instrucciones específicas push y pop para manejar directamente la Pila. Tampoco se dispone de ningún señalizador que indique cuando se produce el rebosamiento de los ocho niveles de la Pila.. 1.2.3. Memoria de datos RAM.. La memoria de datos del PIC 16F84 dispone de dos zonas diferentes:. Área de RAM estática o SRAM, donde reside el banco de Registros Específicos (SFR), y el banco de Registros de Propósito General (GPR). El primer banco tiene 24 posiciones de tamaño byte, aunque dos de ellas no son operativas, y el segundo 36. Área EEPROM de 64 bytes donde de manera opcional, se pueden almacenar datos que no se pierden al desconectar la alimentación. Soporta 1000 000 ciclos de escritura borrado y es capaz de guardar la información sin alteración por más de 40 años.. La zona de memoria RAM se halla dividida en dos bancos (BANCO 0 y BANCO 1) de 128 bytes cada uno. En el PIC 16C84 solo se hallan implementadas físicamente las 48 primeras posiciones de cada banco (en el PIC 16F84 son 80), de las cuales 12 primeras están reservadas a los registros de propósitos específicos, (SFR) que son los encargados del control del procesador y sus recursos. Algunos de dichos registros se hallan repetidos en la. - 12 -.

(24) Cap ítu lo I. misma dirección de los dos bancos, para simplificar su acceso (INDF, ESTADO, FSR, PCLATH e INTCON). La posición apuntada por la dirección 07h y la apuntada por la 87h no son operativas. Los 36 registros restantes de cada banco se destinan a Registros de Propósito General y en realidad solo son operativos los 36 del BANCO 0 porque los del BANCO 1 se mapean sobre el BANCO 0, es decir cuando se apunta a un registro general del BANCO 1, se accede al mismo del BANCO 0. Figura 1.8.. Figura 1.8. Memoria de Datos (RAM).. Para seleccionar el banco a acceder hay que manipular el bit cinco (RP0) del registro ESTADO (Anexo 1). Si RPO = 0 se selecciona con este fin el BANCO 0. Tras un Reset se accede automáticamente al BANCO 0. Para seleccionar un registro de propósito general hay que tener en cuenta el estado del bit RP0, porque al estar mapeado el BANCO 1 sobre el BANCO 0, cualquier direccionamiento del BANCO 1 corresponde al homólogo del BANCO 0. En el direccionamiento directo de los registros GPR se ignora el bit de más peso, que identifica el banco y sus direcciones están comprendidas entre el valor OxCh y Ox2Fh.. - 13 -.

(25) Cap ítu lo I. Los registros SFR se clasifican en dos grupos. En uno se incluyen aquellos que controlan el núcleo del microcontrolador (ESTADO, OPCION, INTCON, etc.) y en el otro los que caracterizan la operatividad de los recursos auxiliares y periféricos. La Tabla 1.1. presenta la estructura de los registros y los valores que toman después de un Reset valida para la familia PIC 16X8X.. Tabla 1.1. Especificaciones de los registros SFR de los bancos de la memoria de datos.. 1.2.3.1. Área EEPROM de la memoria de datos.. La memoria EEPROM no está mapeada en la zona de la memoria de datos donde se ubican los registros SFR y GPR. Para poder leerla y escribirla durante el funcionamiento normal del microcontrolador hay que utilizar cuatro registros del banco SFR: El registro EEADR, ubicado en la novena dirección del BANCO 0, se carga la dirección a acceder de la EEPROM de datos. El registro EREDATA, ubicado en la dirección ocho del BANCO 0, en él se depositan los datos que se leen o se escriben.. - 14 -.

(26) Cap ítu lo I. El registro EECON1, que ocupa la dirección 88h de la memoria de datos, o la dirección 08h del BANCO 1, tiene misiones de control de las operaciones en la EEPROM El registro EECON2 en realidad no está implementado físicamente. Al tenerlo todos sus bits son cero. Solo se emplea como un dispositivo de seguridad durante el proceso de escritura de la EEPROM, para evitar las interferencias en el largo intervalo de tiempo que precisa su desarrollo.. 1.2.3.2. Procesos de lectura y escritura en la memoria EEPROM.. Se inicia un ciclo de lectura colocando la dirección a acceder en el registro EEADR y poniendo el bit RD = 1 en el registro EECON1 (Anexo 4). El dato leído está disponible en el registro EEDATA en el siguiente ciclo y permanecerá en él hasta que se realice una nueva lectura o escritura en la EEPROM. Para escribir una posición de EEPROM de datos el usuario debe seguir una determinada secuencia de instrucciones en la que participe el registro EECON2. Este registro en realidad no se halla implementado físicamente solo asume funciones de seguridad en el proceso, cargándose en él dos valores concretos: 55h y AAh la duración típica de un ciclo de escritura es 10 ms que es notablemente larga en comparación con la velocidad del PIC. El ciclo de escritura comienza cargando en EEADR la dirección a escribir y en el registro EEDATA el valor a grabar.. 1.2.4. Direccionamiento de la memoria de datos.. En los PIC de la gama media la memoria de datos esta organizada para alojar un máximo de 4 bancos de 128 bytes cada uno pero el PIC 16C84 solo tiene implementados los 48 primeros bytes de los bancos 0 y 1. En el resto de los PIC de esta familia se destinan dos bits del registro ESTADO (RP0 y RP1) (Anexo 1) para determinar el banco y otros siete para elegir una de las 128 posiciones del banco seleccionado. Figura 1.9.. - 15 -.

(27) Cap ítu lo I. Figura 1.9. Organización de la memoria de datos.. Existen dos modos principales de direccionamiento en los PIC 16X84, el Direccionamiento directo y el indirecto. A continuación nos referiremos a ellos.. 1.2.4.1. Direccionamiento directo.. El operando que utiliza la instrucción en curso se referencia mediante su dirección que viene incluida en el código de operación de la misma, concretamente en los siete bits de menos peso. El banco a acceder lo determinan los bits RP0 y RP1 del registro ESTADO (Anexo 1). En el caso del PIC 16C84 sólo se usa el bit RP0. al tener implementados. únicamente dos bancos. Figura 1.10.. Figura 1.10. Direccionamiento directo en los PIC 16C84.. - 16 -.

(28) Cap ítu lo I. 1.2.4.2. Direccionamiento indirecto.. Este modo de. direccionamiento se usa cuando en una instrucción se utiliza como. operando el registro INDF, que ocupa la posición cero de ambos bancos. En realidad el registro INDF no está implementado físicamente, y cuando se le hace referencia, se accede a la dirección de un banco especificada con los siete bits de menos peso del registro FSR. El bit de más peso de FSR junto al bit IRP del registro ESTADO (Anexo 1) se encargan de seleccionar el banco a acceder, mientras que los siete bits de menos peso apuntan a la posición Como sólo hay dos bancos en el PIC 16C84 en este modo de direccionamiento, el bit IRP =0 siempre. Figura 1.11.. Figura 1.11. Selección del banco y la posición Direccionamiento indirecto.. 1.2.5.. Puertos de Entrada/Salida.. El microcontrolador PIC 16F84 dispone de dos puertos de Entrada/Salida (E/S), el Puerto A y el Puerto B. Las líneas de ambos son configuradas por los registros TRIS A y TRIS B respectivamente, como entradas si están a uno y salida si están a cero. Al reinicializarse el PIC todos los bits de los registros TRIS quedan a uno. La información de y hacia los puertos es almacenada en los registros PUERTO A y PUERTO B. Con la instrucción movwf Puerto se lee en un puerto y con la instrucción movf Puerto, w se escribe en un puerto. También utilizan instrucciones para modificar el valor. - 17 -.

(29) Cap ítu lo I. de un bit particular correspondiente a una línea de un puerto o chequear su valor. Cuando se lee una línea de un puerto se recoge el nivel lógico que tiene. en. ese momento. Las líneas cuando actúan como salida. “latcheadas” lo que significa que sus pines. están. sacan el nivel lógico que se. haya cargado por última vez en los registros PUERTO A o PUERTO B. El proceso. de. escritura. de. un. puerto. implica. la. operación. “lectura/modificación/escritura”. Primero se lee en el puerto luego. se. modifica el valor y finalmente se escribe en el “LATCH” de salida.. 1.2.5.1. El Puerto A.. Las. líneas. RA3►0. admiten. niveles. CMOC. La línea RA4/T0CK dispone de que proporciona drenador. una buena. abierto. El pin RA4. inmunidad. de. entrada. TTL. y de salida. un circuito Schmitt Trigger al. ruido. multiplexa su función. y la salida de E/S. tiene. con. la. entrada de impulsos externos para el TMR0. Cada línea de salida puede suministrar una corriente máxima de 20 mA y si es. de entrada puede. absorber hasta 25 mA. Al existir una limitación en disipación máxima de la potencia al microcontrolador se le restringe la corriente máxima de absorción del Puerto A a 80 mA y la de suministro a 50 mA.. 1.2.5.1. El Puerto B.. Consta de 8 líneas bidireccionales de E/S, RB7►0. La línea RB0/INT tiene dos funciones multiplexadas, además de pin de E/S, actúa como pin para la petición de una interrupción externa, cuando se autoriza esta función mediante la adecuada programación de registro INTCON (Anexo 5). El Puerto B puede absorber un máximo de corriente de 150 mA, y suministrar un total de 100 mA.. - 18 -.

(30) Cap ítu lo I. A todas las líneas de este puerto se les permite conectar una resistencia pull-up de elevado valor con el positivo de la alimentación. Con este fin Hay que programar en el registro OPTION (Anexo 3) el bit RBPU# igual cero, afectando la conexión de la resistencia a todas las líneas. Con el Reset todas las líneas quedan configuradas como entradas si se desactivan las resistencias pull-up.. Las 4 líneas de los bits más significativos RB7►4 pueden programarse para soportar una misión especial, cuando actúan como entradas se les puede programar para generar una interrupción si alguna de ellas cambia su estado lógico. El estado de estos pines se compara con el valor antiguo que tenía y que se había “latcheado” durante la última lectura del PUERTO B. El cambio de estado en alguna de esas líneas origina una interrupción y la activación del señalizador RBIF.. La línea RB6 también se utiliza para la grabación serie de la memoria de programa y sirve para soportar la señal de reloj. La línea RB7 constituye la entrada de los datos en serie.. 1.2.6. Contadores/Temporizadores.. Una de las labores más dispositivos. habituales en los programas de control. suele ser determinar. intervalos. concretos. elemento encargado de realizarla recibe el nombre de (timer). También suele ser frecuente. contar. los. de. de tiempo y el temporizador. impulsos. que se. producen en el exterior del sistema y el elemento destinado a este fin se denomina contador. Si. las labores del. temporizador. o contador. la. asignamos al programa principal robarían mucho tiempo al procesador en detrimento de tareas más importantes Por este motivo se diseñan recursos específicamente orientados a estas misiones.. - 19 -.

(31) Cap ítu lo I. 1.2.6.1. Temporizador/Contador TMR0.. Los PIC 16X8X poseen un. temporizador/contador. de ocho bits llamados. TMR0 que actúa de dos maneras diferentes:. Como contador de sucesos que están representados por los impulsos que se aplican desborda advirtiendo. al. pin. RA4/TOCKL. Al llegar al valor. el contador y con el siguiente. impulso. FFh se. pasa. esta circunstancia activando un señalizador. a 00h, y/o. provocando una interrupción.. Como temporizador, cuando se carga en el registro que implementa al recurso un valor inicial. se incrementa con cada ciclo de. instrucción (FOSC/4) hasta que se desborda, o sea pasa de FFh a 00h y avisa poniendo a uno un. bit señalizador (bandera). y/o. provocando una interrupción. Figura 1.12.. Fig ura 1.12.Esquema simplif icado de un co ntado r t e mporiza dor.. El. TMR0. se comporta como un registro. de propósito especial. (SFR). ubicado en la primera dirección del BANCO 0 de la memoria de datos. El TMR0 puede ser leído y escrito en cualquier momento al estar conectado al bus de datos.. - 20 -.

(32) Cap ítu lo I. 1.2.6.2. El Perro Guardián (WDT).. Se. trata de un. contador interno. de ocho. bits. que origina. un Reset. cuando se desborda. Su control de tiempo es independiente del TMR0 y está basado en una simple red R-C. Su bloquearse para que. no funcione. actuación es opcional. programando el. bit. y puede. WDTE. de la. Palabra de Configuración (Anexo 2). La temporización nominal con la que se haya programado el Perro Guardián es de 18 ms, pero utilizando el divisor de frecuencia puede aumentarse hasta los 2,3 s.. La instrucción clrwdt borra al WDT y reinicia su cuenta. Sin embargo, la instrucción sleep, además de borrar WDT detiene al sistema y lo lleva a un estado de “reposo” o “de bajo consumo. Para desactivar al Perro Guardián hay que escribir. un cero en el bit dos (WDTE) de la Palabra. de Configuración (Anexo 2). En el registro ESTADO (Anexo 1) existe un bit denominado TO# que pasa a valer cero después del desbordamiento del WDT.. 1.2.6.3. El Divisor de Frecuencia.. A. menudo el TRM0. y el Perro. Guardián. precisan controlar. largos. intervalos de tiempo y necesitan aumentar la duración del reloj que les incrementa.. Para cubrir este requisito se dispone. de un registro. programable denominado Divisor de Frecuencia, que divide la frecuencia utilizada. por diversos. rangos. Para. programar el comportamiento. del. TRM0, el Perro Guardián (WDT) y el divisor de frecuencia se utilizan algunos bits. del registro. OPTION (Anexo 3) y una Palabra de. Configuración (Anexo 2). Figura 1.13.. - 21 -.

(33) Cap ítu lo I. F ig ura 1.13. Esq ue ma s imp lif icado de la s e cción d ed icada a l co ntro l de t ie mpo s de l a a rq u it e ctu ra de l P IC 1 6X 8X .. 1.3. Repertorio RISC.. Todos los modelos de microcontroladores PIC responden a la arquitectura RISC, que significa “Computador de Juego de Instrucciones Reducido”. Esto no sólo implica que el número de instrucciones máquina que es capaz de interpretar y ejecutar cuando el procesador es pequeño, como sucede en los PIC 16X8X, sea de. 35; sino también que posee las siguientes. características:. Las instrucciones son simples y rápidas. Las instrucciones son ortogonales. La longitud de las instrucciones y los datos es constante.. - 22 -.

(34) Cap ítu lo I. 1.3.1. Operaciones y tipos de formatos. Para estudiar los diversos formatos que admiten las instrucciones del repertorio de los. PIC 16X8X se clasifican en cinco grandes grupos,. atendiendo al tipo de operación que desarrollan.. Operaciones orientadas a manejar registros de tamaño byte. Operaciones orientadas a manejar bits. Operaciones que manejan valores inmediatos. Operaciones incondicionales de control del flujo del programa. Operaciones de salto condicional.. Las instrucciones de los PIC de la gama media entre los que se encuentran los PIC 16X8X se divide en diferentes campos de bits, cada uno de los cuales referencia a operandos o elementos que maneja la instrucción en la operación que realiza en el procesador. Se describen dichos campos:. Campo del código de operación. Los bits de este campo sirven para definir la operación que realiza esta instrucción.. Campos de los operandos fuente (f) y destino (d). Estos campos de bits definen los registros que actúan con operandos en la instrucción. Suelen referenciar la dirección que ocupan en la memoria de datos. Se utiliza para realizar operaciones orientadas a manejar registros de tamaño byte. Figura 1.14.. Figura 1.14. Campos de los operandos fuente (f) y destino (d).. - 23 -.

(35) Cap ítu lo I. Campo de operando inmediato o literal (k). Es un campo de bits que contiene el valor de un operando inmediato. Es empleado en operaciones que manejan valores inmediatos. Figura 1.15.. Figura 1.15. Campo de operando inmediato o literal (k).. Campo que referencia a un bit (b). Suele ser un campo de tres bits que indica la posición de un bit concreto dentro de un registro de ocho bits. Las operaciones orientadas a manejar bits lo adoptan. Figura 1.16.. Figura 1.16. Campo que referencia a un bit (b).. Campo de la dirección del salto. En las instrucciones de salto call y goto hay un campo de bits que contiene la dirección de la siguiente instrucción que hay que ejecutar. Dicho campo de bits se carga en el PC en las operaciones de salto incondicional. En el caso de operaciones de salto condicional no se utiliza. Figura 1.17.. Figura 1.17. Campo de la dirección del salto.. 1.3.2. Instrucciones que manejan registros.. Responden a la sintaxis nemotécnica f,d, siendo f y d los dos operandos fuente y destino que se hallan implementados por registros de ocho bits de la memoria de datos. El registro f viene referenciado por la dirección de siete bits que ocupa, mientras que el destino sólo por uno, que si vale cero es el W y si vale uno es el registro fuente. En la Tabla 1.2. se muestran las instrucciones de este grupo con sus características más importantes.. - 24 -.

(36) Cap ítu lo I. Tabla 1.2. Instrucciones de los PIC 16X8X que manejan como operandos registros de ocho bits. 1.3.3. Instrucciones que manejan bits.. Sólo hay dos instrucciones en este grupo, pero son muy flexibles. Una de ellas pone a uno (bsf) cualquier bit de un registro, mientras que la otra los pone a cero (bcf). Tabla 1.3. Tabla 1.3. Características más relevantes de las instrucciones que manejan bits.. 1.3.4. Instrucciones de salto condicional.. Sólo hay cuatro instrucciones de salto condicional en los PIC de la gama media. Dos de ellas comprueban un bit de un registro y según valga uno o cero saltan o no, (sólo se salta a la instrucción siguiente a la condicional). Las otras dos instrucciones incrementan o decrementan un registro y la posibilidad de salto se efectúa si con esa operación el valor del registro ha llegado a cero. Cuando estas instrucciones no saltan porque no se cumple la. - 25 -.

(37) Cap ítu lo I. condición, tardan un ciclo de instrucción en ejecutarse. En caso que salten tardan el doble, Tabla 1.4.. Tabla 1.4. Características más relevantes de las cuatro instrucciones condicionales de salto.. 1.3.5. Instrucciones que manejan operandos inmediatos.. Se trata de media docena de instrucciones que realizan una operación con un valor inmediato de ocho bits, que se proporciona dentro del formato de la instrucción, el cual sólo tiene dos campos: el del código de operación (seis bits) y del operando inmediato (ocho bits). Tabla 1.5. Tabla 1.5. Características más relevantes de las instrucciones que manejan operandos inmediatos (k).. 1.3.6. Instrucciones de control y especiales.. En este grupo se incluyen las instrucciones que rompen la secuencia normal del. programa. porque. alteran. el. contenido. del. PC. y. también. las. instrucciones especiales. La instrucción de salto incondicional goto carga en el PC la dirección de la nueva instrucción. La instrucción call de llamada a subrutina, antes de cargar el PC con la dirección de la instrucción a saltar, salva la dirección de partida guardando en la cima de la Pila el - 26 -.

(38) Cap ítu lo I. valor actual del PC. De esta manera, al retornar de la subrutina se saca de la Pila la dirección de regreso del programa principal.. Para. realizar. un. retorno. de. una. subrutina. se. pueden. emplear. dos. instrucciones. La más habitual es return, que se limita a extraer de la cima de la Pila el valor que carga en el PC. Otra más compleja es retlw k, que, además de hacer lo mismo que return, carga en W el valor inmediato k que contiene. Es decir, devuelve un parámetro desde la subrutina. Para el final de las interrupciones hay otra instrucción cuyo nemotécnico es retfie. La operatividad de esta instrucción consiste en cargar en el PC el contenido de la cima de la Pila y poner el bit GIE=1, pues al comenzar la interrupción este bit se pone automáticamente a cero para evitar que cuando se atiende una interrupción se produzca otra.. En cuanto a las instrucciones especiales, se han incluido dos en este grupo: clrwdt y sleep. La primera pone a cero el contenido del Perro Guardián, es decir, lo refresca o reinicializa. El Perro Guardián si se desborda (pasa de 0xff a 0x00) provoca un Reset. La instrucción clrwdt hay que colocarla estratégicamente. en. ciertos. puntos. del. programa. para. evitar. la. reinicialización.. La instrucción sleep introduce al procesador en un modo de funcionamiento que se llama de Reposo o de Bajo Consumo. Detiene al oscilador y el procesador queda congelado, sin ejecutar instrucciones y manteniendo el mismo valor los puertos de E/S. También pone los bit PD#=0 y TO#=1 y borra al Perro Guardián y al Divisor de frecuencias. Tabla 1.6.. - 27 -.

(39) Cap ítu lo I. Tabla 1.6. Principales características de las instrucciones de control y especiales.. 1.4. Interrupciones y Reset.. Las interrupciones son desviaciones del flujo de control del programa originadas asincrónicamente por diversos sucesos que no se hallan bajo la supervisión de la instrucción. Dichos sucesos pueden ser externos al sistema, como la generación de un flanco o nivel activo en un pin del microcontrolador, o bien interno, como el desbordamiento de un contador.. El comportamiento del microcontrolador ante la interrupción es similar a la de la instrucción call de llamada a subrutinas. En ambos casos se detiene la ejecución del programa en curso, se salva la dirección actual del PC con una dirección, que en el caso de call viene acompañada de la propia instrucción, y en el caso de una interrupción es una dirección “reservada” de la memoria de códigos, llamada Vector de Interrupción.. En los PIC. 16X8X Existen cuatro causas diferentes de interrupción, pero. todas ellas desvían el flujo de control hacia el Vector de Interrupción en la dirección 0004h donde comienza la Rutina de Servicio de la Interrupción (RSI). En general, en dicho Vector se suele colocar una instrucción de salto incondicional (goto), que traslade el flujo de control a la zona de la memoria de código destinada a contener la rutina de atención a las interrupciones. Una de las tareas de la RSI es averiguar cual de las posibles. - 28 -.

(40) Cap ítu lo I. causas ha sido la responsable de la interrupción en curso. Para ello se exploran los señalizadores (banderas) de las fuentes de interrupción. Otro detalle importante en la RSI de los PIC 16X8X es la existencia del bit GIE (Global. Interrupt. Enable). que. al. valer. cero. prohíbe. todas. las. interrupciones y que al terminar la RSI pasa automáticamente a uno para volver a tener en cuenta las interrupciones. Este retorno de interrupción se realiza mediante la instrucción retfie.. En la Figura 1.18. se muestra un organigrama de las fases más importantes que se desarrollan durante el proceso de ejecución de una interrupción.. Figura 1.18. Organigrama de las operaciones principales de una interrupción en los PIC 16X8X.. La RSI suele comenzar guardando en la memoria de datos algunos registros específicos del procesador, concretamente aquellos de los cuales la RSI va a emplear su contenido, utilizando para este fin el registro de propósito general de la memoria de datos. Antes del retorno al programa principal se. - 29 -.

(41) Cap ítu lo I. recuperan los valores guardados y se restaura completamente el estado del procesador. 1.4.1. Causas de interrupción.. Los PIC 16X8X tienen cuatro causas o fuentes posibles de interrupción: Activación de la pin RB0/INT Desbordamiento del temporizador TMR0 Cambio de estado en una de los cuatro pines de más peso (RB7►4) del Puerto B. Finalización de escritura en la EEPROM de datos.. Cuando ocurre uno de los cuatro sucesos antes mencionados se origina una petición de interrupción, que si se acepta y atiende comienza depositando el valor de PC actual en la Pila, poniendo el bit GIE=0 y cargando en el PC el valor 0004h, que es el Vector de Interrupción donde se desvía el flujo de control.Cada fuente de interrupción dispone de un señalizador o bandera, que es un bit que se pone automáticamente a uno cuando se produce. Además cada fuente de interrupción tiene otro bit de permiso, que su valor prohíbe o permite la realización de dicha interrupción. Figura 1.19.. Figura 1.19. Lógica de control para la generación de una interrupción en los PIC 16X8X.. 1.4.1.1. Interrupción externa INT.. Esta. fuente. de. interrupción. es. sumamente. importante. para. atender. acontecimientos externos en tiempo real. Cuando ocurre alguno de ellos. - 30 -.

(42) Cap ítu lo I. activa el pin RB0/INT y se hace una petición de interrupción. Entonces, de forma automática, el bit INTF=1 y, si el bit de permiso INTE=1, se autoriza el desarrollo de la interrupción. Mediante el bit seis, llamado INTDEG, del registro OPTION (Anexo 3) se puede seleccionar cual será el flanco activo en RB0/INT.. 1.4.1.2. Interrupción por desbordamiento del TMR0.. Cuando el TMR0 se desborda y pasa del valor FFh al 00h, el señalizador T0IF se pone automáticamente a uno. Si además, el bit de permiso de la interrupción. del. TMR0,. T0IE=1. y. el. bit. de. permiso. global. de. interrupciones GIE=1, se produce una interrupción.. 1.4.1.3. Interrupción por cambio de estado en las líneas RB7►4 del Puerto B.. Esta interrupción está diseñada específicamente para detectar la pulsación de una tecla correspondiente a un teclado matricial que se explora con cuatro líneas de E/S. Para esta función se exploran las líneas RB7►4 del Puerto B, que cada vez que cambia el estado lógico de una de ellas fuerza al señalizador RBIF a ponerse a uno, y si los bits de permiso RBIE=GIE=1 se autoriza la interrupción.. 1.4.1.4.. Interrupción por finalización de escritura en la EEPROM de. datos.. El tiempo típico que tarda en desarrollarse una operación de escritura en EEPROM de datos es de 10 ms, que es considerable comparado con la velocidad a la que el procesador ejecuta instrucciones. Para asegurarse que se ha completado la escritura y puede continuarse con el flujo de control del programa es aconsejable manejar la interrupción que se origina al finalizar. - 31 -.

(43) Cap ítu lo I. la escritura, que pone automáticamente el señalizador EEIF a uno y se autoriza siempre que los bits de permiso EEIE=GIE=1.. Cuando se describió el proceso de escritura de la EEPROM de datos se indicó que se usaba un registro no real para asegurar la misma. Se trataba del EECON2, en el que se graban dos valores, el 55h y el AAh. Durante la escritura de este registro debe prohibirse la aceptación de interrupciones para salvaguardar la operación de escritura, por eso en ese módulo se pone GIE=0.. 1.4.2. Reinicialización o Reset.. Los PIC 16X8X tienen cinco causas que provocan la reinicialización del sistema, que consiste en cargar al PC con el valor 0000h (Vector de Reset) y poner el estado de los bits de los registros específicos (SFR) con un valor conocido.. Conexión de la alimentación. POR (Power on Reset). Activación. de. la. pata. MCLR#. (Master. Clear. Reset). en. funcionamiento normal. Activación de la pata MCLR# en estado de reposo. Desbordamiento del Perro Guardián en funcionamiento normal. Desbordamiento del Perro Guardián en estado de reposo.. En la Tabla 1.7. se presenta el estado lógico que adquieren los bits de los registros SFR de la memoria de datos cuando se provoca un Reset por una de las cinco causas posibles.. - 32 -.

(44) Cap ítu lo I. Tabla 1.7. Valores que adquieren los bits de los registros SFR y el W después de producirse un Reset por una de las cinco causas posibles.. La redacción de los acápites anteriores se realizó utilizando como fuentes fundamentales las conferencias acerca del tema redactadas por el MSc. Ing. Carlos Alberto Bazán Prieto (Bazán, 2004) y los materiales de la Microchip Technology, Inc. (Microchip Technology, Inc, 1997, 1998). 1.5. Estado del Arte. 1.5.1. Principales Productores.. En la actualidad existen variedad de productores de microcontroladores. Entre todas la empresas se destacan cuatro compañías: National, Philips, Motorola y Microchip. Esta última es la más reconocida a nivel mundial en este renglón. Las características de los PICs producidos por estos gigantes son muy similares así como sus prestaciones. (Vallejo, 2002).. 1.5.2. Las familias de los PICs.. Los PICs. están normalmente divididos en familias de forma tal que se. agrupen por sus cualidades. Cada productor tiene sus propias divisiones. En el caso de la Microchip Technology, Inc. las familias oscilan desde la 12XXX (gama baja), pasando por la 16XXX (gama media) hasta la 18XXX - 33 -.

(45) Cap ítu lo I. (gama alta). El número de pines del encapsulado varía; en la gama baja es de ocho pines mientras que en la media es de 18 hasta 40 y en la alta de 28 a 40 pines. También difieren la cantidad de recursos disponibles en cada microcontrolador, entiéndase temporizadores, puertos de E/S, convertidores A/D, capacidad de memoria etc.. 1.5.3. Características de los PICs modernos.. Los PICs actuales vienen con una amplia gama de mejoras hardware incorporadas: Núcleos de UCP de 8/16 bits con Arquitectura Harvard modificada Memoria Flash y ROM disponible desde 256 bytes a 256 Kbytes. 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. Conversores analógico/digital de 10-12 bits. Comparadores de tensión. Módulos de captura y comparación PWM. Controladores LCD. Periférico MSSP para comunicaciones I2C, SPI, y I2S. 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. Soporte de controlador Irda. (Wikipedia.org., 2006) - 34 -.

(46) Cap ítu lo I. 1.5.4. PICs wireless.. El microcontrolador rfPIC integra todas las prestaciones del PICmicro de Microchip Technology Inc. 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. (Microchip Technology, Inc, 2002a). 1.5.5. PICs para procesamiento digital de señales (dsPICs). Los dsPICs son el último lanzamiento de Microchip Technology, Inc., 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. (Microchip Technology, Inc, 2002b). 1.5.6. PICs con puerto USB (USB PICs). La mayoría de microcontroladores USB están optimizados para aplicaciones del mercado de consumo y del PC más que para diseños industriales. Las nuevas familias de microcontroladores PIC USB de Microchip Technology, Inc. ofrecen los beneficios del USB 'Full Speed' para un amplio rango de aplicaciones que pueden operar en entornos duros, industriales y conectados a ordenadores personales. El objetivo de las aplicaciones para estos productos incluye el mercado del automóvil, aplicaciones industriales, médicas así como aplicaciones de consumo avanzadas y otros dispositivos conectados al PC o alimentados por baterías. (Microchip Technology, Inc, 2006) - 35 -.

(47) Cap ítu lo I. 1.5.7. Ethernet PICs.. También la Ethernet ha sido conquistada por los microcontroladores PIC. El PIC18F452 de la Microchip Technology, Inc. Este tipo de PIC es generalmente incorporado en una tarjeta con memoria externa y conectores RS232 u otros. Sus aplicaciones tipicas incluyen Servidores de Web http, cientes de correo, conversión de Ethernet a interfaz RS232, control remoto por sevidor de Web entre otras. (Microchip Technology, Inc., 2002c).. 1.5.8. PICs más comúnmente usados.. PIC 12C508/509 (encapsulamiento reducido de 8 pines, oscilador interno, popular en pequeños diseños como el iPod remote) PIC 16F84 (Considerado obsoleto, pero imposible de descartar y muy popular) PIC 16F84A (Buena actualización del anterior, algunas versiones funcionan a 20 MHz, compatible 1:1) PIC 12F629/675 PIC 16F628 La familia PIC 16F87X (los hermanos mayores del PIC 16F84, con gran cantidad de mejoras incluidas en hardware.) PIC 18F452. (Wikipedia.org., 2006). 1.5.9. 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 etc.), lo que atrae la atención de los crackers; y segundo, porque el PIC 16C84 fue uno de los primeros microcontroladores fácilmente reprogramables para aficionados. - 36 -.

(48) Cap ítu lo I. Hay muchos foros y listas de correo dedicados al PIC en los que un usuario puede proponer sus dudas y recibir respuestas. (Wikipedia.org., 2006). 1.5.10. Los PIC como tema de estudio a nivel mundial.. Los microcontroladores PIC son actualmente estudiados en un gran número de. centros. educacionales relacionados. con. la. ingeniería. electrónica,. automática o de telecomunicaciones. Como ejemplo podemos citar la Escuela Superior de Ingenieros de Sevilla (España), la Universidad de Kent (Reino Unido) y la Universidad de Oxford (Reino Unido) entre otros. No solamente mediante clases presenciales se lleva a cabo le enseñanza acerca del. tema.. La. publicación. de. libros. con. autoría. de. profesores. de. universidades, la presencia en los sitios en Internet de este tipo de instituciones y el abundante respaldo de softwares y materiales técnicos generalmente suministrado por los fabricantes hacen a los PIC dispositivos muy populares y seguidos por los interesados en los últimos avances tecnológicos. (Morton,. 2006),. (Electronic. Technology. Group,. 2006). (Electronic Systems Design Center, 2006).. - 37 -.

(49) CAPÍTULO II.. Herramientas para el desarrollo de aplicaciones.

(50) Cap ítu lo II. CAPÍTULO II. Herramientas para el desarrollo de aplicaciones. 2.1. Herramientas de software para el trabajo con PICs.. Para el trabajo con los microcontroladores PIC existen gran variedad de herramientas de software. En el presente capítulo se hará una breve descripción de algunas de ellas que se adecuan a la pedagogía.. 2.1.1. PROTEUS.. El PROTEUS es un software que permite el diseño y desarrollo de circuitos eléctricos con gran variedad de elementos, incluyendo microcontroladores. Brinda también la posibilidad de una simulación en tiempo real e interactivo donde son incluidos componentes tales como pantallas LED, interruptores, etc. Esta es una cualidad que lo hace particularmente novedoso y muy útil. El PROTEUS está compuesto por dos elementos fundamentales: ISIS Schematic Capture Program y. ARES (Advanced. Routing and Editing Software). Su ultima versión es compatible con Windows 98/Me/2k/XP y superiores. Acompañan a este producto una gran cantidad de materiales complementarios tales como ayudas, tutoriales y ejemplos que facilitan su aprendizaje y eficaz utilización.. Dentro del núcleo del PROTEUS se encuentran los siguientes recursos: ISIS ARES ProSPICE Professional Mixed Mode circuit simulator. PROTEUS VSM SDK, una herramienta para crear nuevos modelos de componentes electrónicos. Una. biblioteca. de. cerca. de. 6000. modelos. de. componentes. electrónicos.. - 39 -.

(51) Cap ítu lo II. Una biblioteca de modelos interactivos incluidos interruptores, pantallas, LEDs etc. Bibliotecas de modelos de CPU para PIC, 8051, HC11 y procesadores AVR. Modelos de instrumentos virtuales, incluidos osciloscopio, generador de señales, voltímetro y amperímetro. (Labcenter Electronics, 2004a).. 2.1.1.1. Breve descripción del ISIS.. ISIS Schematic Capture Program aporta los ambientes amigables y herramientas de diseño, compilación y simulación en el PROTEUS. La simulación la ejecuta en tiempo real y de forma interactiva. Este programa es plenamente compatible con el trabajo en redes de computadoras. En la Figura 2.1. se muestra la apariencia de espacio de trabajo del ISIS. F ig ura 2.1. Apa r ien c ia d e l es pac io d e t raba jo d e l IS IS. - 40 -.

(52) Cap ítu lo II. Entre las principales posibilidades ofrecidas por ISIS se encuentran:. Modelos de CPU de microcontroladores populares, PICs y series 8051. Modelos de periféricos interactivos. Incluye pantallas LED y LCD, un universal matrix keypad y un terminal RS232. Gráficos en pantalla (son colocados en el diseño como cualquier otro elemento, pueden ser maximizados a pantalla completa para análisis y mediciones) Análisis basados en gráficos (Graph Based Análisis) tales como transiente, frecuencia, ruido, distorsión, componentes AC y DC y transformada de Fourier. Soporte directo para componentes análogos en formato SPICE. Arquitectura abierta para la inserción de modelos creados en C++ u otros. lenguajes.. Estos. pueden. ser. eléctricos,. gráficos. o. combinaciones de ambos. Generación de listado de componentes a usar en el PBC. (Labcenter Electronics, 2004b).. 2.1.1.2. Breve descripción del ARES.. ARES (Advanced Routing and Editing Software) forma parte del módulo del sistema PROTEUS para el diseño de PBC y ofrece. listados de. componentes basados en estos, esto es completado con un amplio arsenal de herramientas de diseño automático. Entre las principales posibilidades ofrecidas por ARES se encuentran:. Una base de datos de alta precisión de 32 bit que aporta una resolución lineal de 10nm, y angular de 0.1° y un tamaño máximo de PBC de 10m.. - 41 -.

(53) Cap ítu lo II. ARES soporta 16 placas de cobre, dos pantallas de seda, cuatro placas mecánicas más la de soldadura y la de pegado de las máscaras. Listado de componentes basado en la integración con el ISIS. Reportes de chequeo de reglas físicas y de conectividad. Una poderosa edición de rutas incluyendo opciones de líneas curvas y auto-trazado. Trazado 2D con una biblioteca de símbolos. Salida a una amplia gama de impresoras y plotters. Formatos de salida .DXF, .EPS, .WMF y .BMP a teclado o archivo. Auto-Placer, Auto-Routing, Gate-Swap automático y optimización. (Labcenter Electronics,2004c). En la Figura 2.2. se muestra la apariencia de espacio de trabajo del ARES. F ig ura 2.2. Apa r ien c ia d e l es pac io d e t raba jo d e l AR ES.. - 42 -.

(54) Cap ítu lo II. 2.1.2. MPLAB.. MPLAB IDE (Integrated Development Environment) es un software para computadora que permite desarrollar aplicaciones para microcontroladores de Microchip. Este software pertenece a la Microchip Technology, Inc. pero su adquisición es gratuita por razones obviamente comerciales. Posee una gran cantidad de materiales complementarios para su estudio y explotación.. Los principales elementos de diseño del MPLAB son: Editor (Editor). Es un editor de texto de programa que también compila. Gestor de Proyecto (Project Manager). Aporta la organización, integración y comunicación entre el IDE y las Herramientas del Lenguaje. Ensamblador/. Enlazador. y. Herramientas. del. Lenguaje. (Assembler/Linker and Language Tools). El ensamblador puede ser utilizado para un solo archivo o conjuntamente con el enlazador para proyectos. El enlazador es el encargado de recopilar y posicionar los elementos y códigos necesarios. Depurador (Debugger). Brinda la posibilidad de establecer puntos de ruptura (breakpoints), corridas paso a paso, mostrar valores de posiciones de memoria etc. Trabaja conjuntamente con el Editor. Máquinas de Ejecución (Execution Engines). Son softwares de simulación para todos los. PICmicro y dsPIC. Utilizan la PC para. simular las instrucciones y algunas funciones periféricas.. El principio de funcionamiento de forma general del MPLAB IDE se puede describir a través de su ciclo de desarrollo. Figura 2.3. (Microchip Technology, Inc, 2004).. - 43 -.

(55) Cap ítu lo II. Fig ura 2.3. C iclo de desarro llo en MPLA B IDE.. El ambiente de trabajo del MPLAB es bastante amigable y de fácil manejo Figura 2.4.. F ig ura 2.4. Apa r ien c ia d e l es pac io d e t raba jo d e l M P LAB ID E.. - 44 -.

(56) Cap ítu lo II. 2.1.3. Integración del PROTEUS y el MPLAB.. La integración del PROTEUS y el MPLAB para el estudio de los microprocesadores PIC es una opción muy a tener en cuenta ya que se complementan. perfectamente.. El. punto. fuerte. del. MPLAB. es. la. programación y ofrece en ese sentido una gran cantidad de facilidades en cuanto al trabajo y visualización de registros. También en compilación y depurado de códigos el MPLAB presta muy buenos servicios. En cuanto al proceso de montaje y simulación de circuitos con microprocesadores PIC es el PROTEUS el programa más poderoso. La simulación en tiempo real, la interactividad y la inclusión de una gran variedad de modelos electrónicos no solamente de PICs hace al PROTEUS inigualable en ese campo. Su opción de importar fuentes de código permite un enlace con el MPLAB a través de archivos de extensión .HEX previamente creados en este último. De esta manera se puede perfectamente diseñar una aplicación, programarla en MPLAB y montarla y simularla en PROTEUS para mayor comodidad y aprovechamiento de cada una de estas herramientas de software.. 2.1.4. Herramientas de software basadas en Linux.. Una variante en la explotación de programas de diseño y programación de aplicaciones para microcontroladores es el software libre. En la actualidad existen varias plataformas de este tipo (GNUs) que abarcan una gran gama de aplicaciones disponibles. Posiblemente la más conocida es el Linux. La liberación y publicación de los códigos de los programas de estas plataformas hace que el acceso a él sea completamente gratis y brinda la ventaja de un rápido mejoramiento del mismo gracias a las comunidades de desarrollo existentes. La migración hacia plataformas basadas en software libre es. una tendencia mundial. A continuación se analizan opciones. sustitutivas a las herramientas tradicionales, que están disponibles.. - 45 -.

(57) Cap ítu lo II. 2.1.4.1. KTechlab 0.3.. KTechlab es un IDE (Integrated Development Environment) para trabajar con circuitos electrónicos y microcontroladores. Con el se pueden ejecutar simulaciones de gran variedad de componentes (lógicos, integrados, lineales, no lineales y reactivos) y también de microcontroladores PIC. Además posibilita el depurado (debugging) y posee enlaces con lenguajes complementarios de alto nivel: FlowCode y Microbe. Este software es de fácil manejo, permite la realización de mediciones, diversos dispositivos de salidas: pantallas de LEDs, de ocho segmentos etc. y puede soportar un compilador de C para PICs. En la Figura 2.5. se muestra la apariencia de uno de los espacios de trabajo del KTechlab. (Saxton, 2006). F ig ura 2.5. Apa r ien c ia d e uno de lo s espa cios de t raba jo del KTechlab.. - 46 -.

(58) Cap ítu lo II. 2.1.4.2. YaPIDE.. El YaPIDE es un IDE que tiene propósito llegar a ser un simulador para Linux plenamente compatible con los PIC de la Microchip Technology, Inc. Resulta excelente en la edición y compilación de programas y ofrece una interfaz práctica y agradable. Se prevé su expansión a otras plataformas y un aumento del número de dispositivos en sus bibliotecas. Es importante señalar que el YePIDE es un programa bastante joven, por lo cual es posible que no todo trabaje según lo esperado. Uno de los espacios de trabajo del simulador se muestra en la Figura 2.6. (Toussaint, 2006).. Fig ura 2.6. U no de lo s espacio s de t rabajo del YaPID E. - 47 -.

(59) Cap ítu lo II. 2.1.4.3. PiKdev.. El PiKdev es un IDE para el desarrollo de aplicaciones basadas en microcontroladores PIC. Soporta lenguaje ensamblador, lenguaje C y servicios de la familia PIC 18XXX. PiKdev es una herramienta desarrollada en C++ sobre plataforma Linux. Algunos de sus componentes son: Editor de programa con gran cantidad de facilidades. Interfaces con el ensamblador gpasm, el enlazador (linker) gplink y el compilador en lenguaje C cpic para PIC 18XXX Gestor de proyecto con funcionalidades estándar. Posibilidad de programación de PICs a través del puerto paralelo. La gama de PICs. con la que trabaja el PiKdev es limitada pero a la vez. extensa. Incluye PICs de las familias desde la 10FXX hasta la 18FXX. Existen numerosas versiones de este programa, cada cual con características propias que. pueden ser aprovechadas según las necesidades del usuario.. En la Figura 2.7. se muestran ambientes de trabajo del PiKdev. (w3.org., 2006).. Fig ura 2.7. A mbient es de t raba jo del PiKdev.. - 48 -.

(60) Cap ítu lo II. 2.1.5. Melabs Programmer.. Melabs Programer es el software utilizado por el kit para el grabado de los códigos deseados en la memoria de los microcontroladores PIC, compatible con Windows 98/ME/NT/2000/XP. Las posibilidades conjuntas kit-software de. quemado. de. datos. microcontroladores. PIC.. abarcan. una. En. documentación. su. gran. cantidad. de. aparecen. modelos. de. debidamente. listados así como las modificaciones pertinentes a realizar en casos específicos. Este programa importa un archivo de extensión .HEX creado previamente por algún compilador. Las principales operaciones que realiza son las siguientes: Grabado. en. memoria.. Se. observará. una. ventana. con. un. desplazamiento progresivo a medida que se efectúa la grabación del microcontrolador. Borrado de la memoria. El software borrará el contenido actual del microcontrolador. Chequeo del borrado. El software revisa el contenido de la memoria para asegurar que la memoria ha quedado borrada. Lectura. de. la. memoria.. El. software. lee. el. contenido. del. microcontrolador que se halla ingresado en el kit. Se puede observar lo leído accediendo a View|Configuration|Code. (microEngineering Labs, Inc, 2005). Fig ura 2.8. Apa r iencia M e labs Prog ramer. - 49 -.

(61) Cap ítu lo II. 2.2. Herramientas de hardware para el trabajo con PICs.. 2.2.1. In-Circuit Serial Programmed (ICSP).. La inmensa mayoría de los microcontroladores PIC pueden ser programados mediante ICSP. Este método consiste en la utilización de un total de cinco terminales del PIC para lograr. el flujo de datos en modo serie hacia o. desde él. Los pines utilizados son:. MCLR (VPP): Entrada Master Clear (Reset) / Entrada de voltaje de programación. Esta entrada es un Reset en bajo. VDD: Entrada de voltaje positivo para la lógica y pines de Entrada/Salida. VSS: Referencia de tierra para la lógica y pines de Entrada/Salida. RB6: Pin Entrada/Salida de interrupción por cambio de estado. Reloj en programación serie. RB7: Pin Entrada/Salida de interrupción por cambio de estado. Datos en programación serie. (Microchip Technology, Inc, 1998). En el caso del. PIC 16F84, este pasa al modo Programación/Verificación. manteniendo los pines RB6 y RB7 en bajo mientras MCLR sube de V I L a V I H (V S S ≤ V I L ≤ 0.2 V D D ; 0.85V ≤ V I H ≤ V D D ) llegando posteriormente a V P P (V=13V), teniendo además a V D D alimentado (generalmente 5V). En este modo RB6 pasa a ser Entrada del Reloj de Programación y RB7 Entrada/Salida de Datos de Programación. Ambos constituyen entradas schmitt trigger en este modo y RB7 pasa a ser una salida CMOS cuando se realiza el proceso de lectura. (Microchip Technology, Inc, 1997a). - 50 -.

(62) Cap ítu lo II. En los PIC 16F8X debe transcurrir un tiempo de más de 100ns. desde el. arribo de MCLR a V P P para que comience la atención a pulsos de reloj en RB6. Este mismo tiempo ha de ser el período a utilizar para los pulsos de reloj y el código de transmisión de datos que es un bipolar con retorno a cero con los valores de 0, 2.5 y 5V.. Al pasar el dispositivo al modo. Programación/Verificación después del. Reset por MCLR el Contador de Programa (PC) está en la dirección 0000h. A continuación se pasan seis bit al PIC por RB7 utilizando como sincronismo la señal de reloj que llega por RB6. Estos seis bit direccionan la posición de memoria a leer o escribir. La línea de datos permanece en alta impedancia un período de tiempo que depende de la operación a realizar. Durante este tiempo el reloj está apagado. Finalmente los datos (14 bits) ingresan o salen del PIC. En la Figura 2.9. se muestra un esquema de las principales características de la ICSP en los PIC 16F8X. (Vallejo, 2002).. F ig ura 2.9. P r in c ipa le s ca ract e r ístic as de la ICS P en lo s P IC 16 f8X .. - 51 -.

Figure

Figura 1.1. Estructura de los microprocesadores.
Figura 1.3. Estructura del microcontrolador 8048 de INTEL.
Figura 1.4. Estructura del manejo de datos e instrucciones.
Figura 1.5. Arquitectura de la ALU.
+7

Referencias

Documento similar

In medicinal products containing more than one manufactured item (e.g., contraceptive having different strengths and fixed dose combination as part of the same medicinal

Products Management Services (PMS) - Implementation of International Organization for Standardization (ISO) standards for the identification of medicinal products (IDMP) in

Products Management Services (PMS) - Implementation of International Organization for Standardization (ISO) standards for the identification of medicinal products (IDMP) in

This section provides guidance with examples on encoding medicinal product packaging information, together with the relationship between Pack Size, Package Item (container)

Package Item (Container) Type : Vial (100000073563) Quantity Operator: equal to (100000000049) Package Item (Container) Quantity : 1 Material : Glass type I (200000003204)

&#34;No porque las dos, que vinieron de Valencia, no merecieran ese favor, pues eran entrambas de tan grande espíritu […] La razón porque no vió Coronas para ellas, sería

Cedulario se inicia a mediados del siglo XVIL, por sus propias cédulas puede advertirse que no estaba totalmente conquistada la Nueva Gali- cia, ya que a fines del siglo xvn y en

No había pasado un día desde mi solemne entrada cuando, para que el recuerdo me sirviera de advertencia, alguien se encargó de decirme que sobre aquellas losas habían rodado