Download Microcontroladores Parte3 [Modo de
Document related concepts
no text concepts found
Transcript
Escuela Técnica de Ingenieros de Telecomunicación Departamento de Tecnología Electrónica Universidad de Vigo Microcontroladores SISTEMAS ELECTRÓNICOS DIGITALES BLOQUE 3 MICROCONTROLADORES (PARTE 3) DESARROLLO DE SISTEMAS ELECTRÓNICOS DIGITALES BASADOS EN UN MICROCONTROLADOR HERRAMIENTAS HARDWARE Y SOFTWARE Enrique Mandado Pérez María José Moure Rodríguez Escuela Técnica de Ingenieros de Telecomunicación Departamento de Tecnología Electrónica Universidad de Vigo Microcontroladores DESARROLLO DE SISTEMAS ELECTRÓNICOS BASADOS EN MICROCONTROLADORES Los microcontroladores son sistemas digitales complejos que se caracterizan por el hecho de que, en general, antes de realizar un prototipo es conveniente comprobar su funcionamiento de acuerdo con las especificaciones. Esto da lugar a que su proceso de diseño se pueda dividir de forma simplificada en cuatro fases: Descripción del sistema Es la fase en la que se especifica la función que debe realizar el sistema. En ella hay que utilizar métodos que faciliten la documentación del sistema y la posterior verificación de su funcionamiento. Diseño del hardware y del software Utilización de herramientas de hardware y software para desarrollar el sistema Verificación del funcionamiento del sistema Fase en la que se comprueba el correcto funcionamiento del sistema y se optimiza su diseño sin que sea imprescindible proceder a la realización de un prototipo. Implementación del sistema Fase en la que se lleva a cabo el tratamiento de la información obtenida en la fase de descripción y se realiza físicamente el sistema mediante alguno de los tipos de circuitos integrados que los fabricantes de los mismos ponen a disposición de los diseñadores de sistemas electrónicos. Escuela Técnica de Ingenieros de Telecomunicación Departamento de Tecnología Electrónica Universidad de Vigo INICIO DESCRIPCIÓN FUNCIONAL DEL SISTEMA REALIZACIÓN DEL ESQUEMA DEL HARDWARE EDICIÓN DEL PROGRAMA Microcontroladores DESARROLLO DE SISTEMAS ELECTRÓNICOS BASADOS EN MICROCONTROLADORES SIMULACIÓN DEL PROGRAMA ¿Resultado Correcto? NO SI IMPLEMENTACIÓN EN UNA PLACA DE DESARROLLO GRABACIÓN DEL PROGRAMA EN EL MICROCONTROLADOR VERIFICACIÓN NO Ordinograma del proceso de diseño e implementación de un ¿Resultado Correcto? sistema electrónico basado en microcontroladores. SI SI MÍNIMO HARDWARE NO IMPLEMENTACIÓN DEL PROTOTIPO EN CIRCUITO IMPRESO VERIFICACIÓN NO ¿Resultado Correcto? SI FABRICACIÓN INSTALACIÓN EN UNA CAJA FIN Escuela Técnica de Ingenieros de Telecomunicación Departamento de Tecnología Electrónica Universidad de Vigo Microcontroladores DESARROLLO DE SISTEMAS ELECTRÓNICOS BASADOS EN MICROCONTROLADORES Sistema o Entorno de desarrollo de un microcontrolador Conjunto de recursos utilizados para desarrollar el sistema físico y el programa, transferir éste a la memoria del microcontrolador y verificar su funcionamiento. Está formado por un conjunto de herramientas de hardware y herramientas de software. Herramientas de hardware Facilitan la prueba real de los programas y el desarrollo rápido de prototipos en aquellos casos en los que no es imprescindible minimizar la complejidad del hardware. Las principales herramientas hardware son: – Placas de prototipos o entrenadores – Grabadores o programadores – Depuradores en el sistema – Emuladores Herramientas de software Facilitan el diseño del programa, la verificación de su funcionamiento y su transferencia a la memoria del microcontrolador. Las principales herramientas de software son: – Editores y compiladores – Simuladores – Grabadores o programadores Escuela Técnica de Ingenieros de Telecomunicación Departamento de Tecnología Electrónica Universidad de Vigo Microcontroladores DESARROLLO DE SISTEMAS ELECTRÓNICOS BASADOS EN MICROCONTROLADORES Placas de prototipos o entrenadores Son sistemas electrónicos de los que forma parte el microcontrolador. Pueden tener o no un conjunto de periféricos adecuados para realizar operaciones de entrada/salida. Si no los tienen se le debe poder conectar una placa con periféricos. Un ejemplo de placa de prototipos que no posee periféricos es la placa de la figura. Un ejemplo de placa con periféricos es SiDePIC- USB cuyo esquema de bloques se presenta en la figura de la diapositiva siguiente. PLACA DE PROTOTIPOS O ENTRENADOR DEL MICROCONTROLADOR CY7C68013 DEL DEPARTAMENTO DE TECNOLOGÍA ELECTRÓNICA Escuela Técnica de Ingenieros de Telecomunicación Departamento de Tecnología Electrónica Universidad de Vigo Microcontroladores DESARROLLO DE SISTEMAS ELECTRÓNICOS BASADOS EN MICROCONTROLADORES SISTEMAS DE DESARROLLO Conector de expansión Barra de expansión RB7_P Amplificadores (Drivers) m Periféricos internos m m RB6_P n Comunicación vía USB RB7 RB7_U Interfaz USB (PIC 16C745) RB6_U Circuito de control RB6 MCLR/Vpp Zócalos para microcontroladores PIC 16F84 y 16F87x RB4 – RB5 2 12VCA ó 15VCC Fuente de Alimentación 13VCC 5VCC 13VCC 5VCC Puesta a cero 5VCC m = n + RB6_P + RB7_P + masa + 5VCC ESQUEMA DE BLOQUES DEL ENTRENADOR SiDePIC-USB de los microcontroladores PIC. Escuela Técnica de Ingenieros de Telecomunicación Departamento de Tecnología Electrónica Universidad de Vigo Microcontroladores DESARROLLO DE SISTEMAS ELECTRÓNICOS BASADOS EN MICROCONTROLADORES SISTEMAS DE DESARROLLO ENTRENADOR SiDePIC-USB de los microcontroladores PIC. Escuela Técnica de Ingenieros de Telecomunicación Departamento de Tecnología Electrónica Universidad de Vigo Microcontroladores DESARROLLO DE SISTEMAS ELECTRÓNICOS BASADOS EN MICROCONTROLADORES Grabadores o programadores Son sistemas electrónicos que transfieren el programa a la memoria de instrucciones del microcontrolador. Suelen estar asociados a un programa grabador que se ejecuta en un computador personal Cuando la memoria de instrucciones utilizada es del tipo EPROM, son siempre sistemas independientes que poseen un zócalo en el que se inserta el microcontrolador. Cuando la memoria de instrucciones es de tipo FLASH, el grabador puede ser también independiente o estar incorporado en el sistema de desarrollo, como es el caso de la placa del microcontrolador CY7C68013 adjunta o el sistema SiDePIC-USB de la fotografía de la siguiente diapositiva. PLACA DE PROTOTIPOS O ENTRENADOR DEL MICROCONTROLADOR CY7C68013 QUE TAMBIÉN ES UN GRABADOR Escuela Técnica de Ingenieros de Telecomunicación Departamento de Tecnología Electrónica Universidad de Vigo Microcontroladores DESARROLLO DE SISTEMAS ELECTRÓNICOS BASADOS EN MICROCONTROLADORES GRABADORES O PROGRAMADORES ENTRENADOR SiDePIC-USB de los microcontroladores PIC que también es un grabador Escuela Técnica de Ingenieros de Telecomunicación Departamento de Tecnología Electrónica Universidad de Vigo Microcontroladores DESARROLLO DE SISTEMAS ELECTRÓNICOS BASADOS EN MICROCONTROLADORES GRABADORES O PROGRAMADORES Conector de expansión Barra de expansión RB7_P Amplificadores (Drivers) m Periféricos internos m m RB6_P n Comunicación vía USB RB7 RB7_U Interfaz USB (PIC 16C745) RB6_U Circuito de control RB6 MCLR/Vpp Zócalos para microcontroladores PIC 16F84 y 16F87x RB4 – RB5 2 12VCA ó 15VCC Fuente de Alimentación 13VCC 5VCC 13VCC 5VCC Puesta a cero 5VCC m = n + RB6_P + RB7_P + masa + 5VCC PLACA DE PROTOTIPOS SiDePIC-USB de los microcontroladores PIC que también es un grabador. Depuradores en el sistema (In-System Debuggers) Escuela Técnica de Ingenieros de de Telecomunicación Son sistemas que facilitan la prueba real un sistema digital basado en microcontroladores. Se pueden realizar de dos formas principales: Departamento de Tecnología Electrónica Microcontroladores Universidad de Vigo DESARROLLO DE SISTEMAS ELECTRÓNICOS BASADOS EN MICROCONTROLADORES Depuradores en el sistema (In-System Debuggers) Son sistemas que facilitan la prueba real del funcionamiento del programa de un sistema digital basado en un microcontrolador. Los dos sistemas electrónicos indicados anteriormente se pueden utilizar como depuradores. Los terminales de entrada/salida del microcontrolador de la placa adjunta se pueden conectar a distintos periféricos. La placa SiDePIC-USB tiene varios perifericos incorporados y además es expansible. En ambas placas se puede grabar y borrar el programa del microcontrolador innumerables veces y probar de esta forma diferentes programas inmediatamente. PLACA DESARROLLO DEL MICROCONTROLADOR CY7C68013 QUE TAMBIÉN ES UN GRABADOR Escuela Técnica de Ingenieros de Telecomunicación Departamento de Tecnología Electrónica Universidad de Vigo Microcontroladores DESARROLLO DE SISTEMAS ELECTRÓNICOS BASADOS EN MICROCONTROLADORES Editores y compiladores Los lenguajes de programación de los microcontroladores más utilizados son el ensamblador y el C. La programación en lenguaje ensamblador resulta ardua para el principiante pero permite desarrollar programas muy eficientes, porque proporciona al programador el dominio absoluto del sistema. La programación en un lenguaje de alto nivel (como por ejemplo C) disminuye el tiempo de desarrollo pero el programa en lenguaje máquina obtenido suele ser menos eficiente que el obtenido a partir del ensamblador. Para el desarrollo del programa del microcontrolador se utilizan programas editores que constituyen herramientas que facilitan la utilización de los lenguajes de programación. Los programas editores suelen ser distribuidos de forma gratuita por el fabricante. Los compiladores son programas que se encargan de traducir el programa escrito en un lenguaje de alto nivel a lenguaje máquina. Las versiones más potentes suelen ser caras, aunque para las familias de los microcontroladores más populares se suelen encontrar compiladores gratuitos. Escuela Técnica de Ingenieros de Telecomunicación Departamento de Tecnología Electrónica Universidad de Vigo Microcontroladores DESARROLLO DE SISTEMAS ELECTRÓNICOS BASADOS EN MICROCONTROLADORES Simuladores Son programas capaces de ejecutar en un computador personal programas diseñados para ser ejecutados en un microcontrolador. Proporcionan información sobre la ejecución del programa y son ideales para depurarlo como paso previo a su introducción en la memoria del microcontrolador de un modo seguro y poco costoso. Su gran inconveniente es la dificultad para simular la entrada y salida de datos del microcontrolador. Además, no proporcionan información de los problemas que surgen al ejecutar el programa en el prototipo real. La combinación de un simulador con un un entrenador que posea un microcontrolador con memoria Flash y un circuito de programación incorporado es una herramienta de diseño de sistemas basados en un microcontrolador de gran eficacia. Escuela Técnica de Ingenieros de Telecomunicación Departamento de Tecnología Electrónica Universidad de Vigo Microcontroladores DESARROLLO DE SISTEMAS ELECTRÓNICOS BASADOS EN MICROCONTROLADORES ÓRDENES DEL LENGUAJE ENSAMBLADOR ASM51 Las órdenes o pseudoinstrucciones (Directives) de un lenguaje ensamblador especifican las acciones que debe ejecutar el programa ensamblador cuando traduce el programa fuente. ORG valor : actualiza el contador de programa. Símbolo EQU valor: Asocia el símbolo con un valor numérico u otro símbolo ya definido. Símbolo BIT valor : Dirección de bit. Símbolo DATA valor: Dirección de dato en la RAM interna con direccionamiento directo. Símbolo XDATA valor: Dirección de un dato en la RAM externa. Símbolo CODE valor: Dirección del programa. DB valor : genera la combinación binaria equivalente al valor indicado. DB ‘c’: genera la combinación binaria equivalente al carácterASCII indicado entre comillas. DB “cadena”: genera la combinación binaria correspondiente a la cadena indicada. DB ‘c’, valor, “cadena”: genera la combinación binaria correspondiente a los parámetros separados mediante comas. END : final del archivo. Escuela Técnica de Ingenieros de Telecomunicación Departamento de Tecnología Electrónica Universidad de Vigo Microcontroladores DESARROLLO DE SISTEMAS ELECTRÓNICOS BASADOS EN MICROCONTROLADORES ESTRUCTURA DEL PROGRAMA EN LENGUAJE ENSAMBLADOR tabla XDATA 0 valor EQU FFh ORG 0 AJMP inicio ORG 100h Inicio: clr a mov DPTR,#tabla movx a,@DPTR sjmp inicio END ;definición de etiquetas ;primera instrucción que se ejecuta ; dirección de comienzo del programa ; programa cíclico ; fin Escuela Técnica de Ingenieros de Telecomunicación Departamento de Tecnología Electrónica Universidad de Vigo Microcontroladores DESARROLLO DE SISTEMAS ELECTRÓNICOS BASADOS EN MICROCONTROLADORES PROGRAMACIÓN DE LOS PUERTOS DE ENTRADA/SALIDA Los puertos de E/S se pueden direccionar de dos formas: • Completa (byte) Cada puerto tiene asignada una dirección dentro del conjunto de registros especiales (SFR). Se accede a ellos mediante una instrucción de transferencia de datos. • Bit a bit Se puede trabajar con cada bit de los puertos por separado mediante las instrucciones de manejo de bits. Para direccionar un bit la sintaxis es Px.y en la que "x" es el número del puerto e "y" el bit seleccionado (0 a 7). Escuela Técnica de Ingenieros de Telecomunicación Departamento de Tecnología Electrónica Universidad de Vigo Microcontroladores DESARROLLO DE SISTEMAS ELECTRÓNICOS BASADOS EN MICROCONTROLADORES PROGRAMACIÓN DE LOS PUERTOS DE ENTRADA/SALIDA Durante la inicialización del microcontrolador, el contenido de los puertos de E/S semibidireccionales es FFh y los bidireccionales se ponen en el tercer estado. La situación de los bidireccionales se ha de tener en cuenta cuando se utilice uno de los puertos como salida ya que la salida está en estado alto al menos todo el tiempo de la fase de "RESET" del microcontrolador y no pasa al estado deseado por el usuario hasta que se ejecuta una instrucción de escritura en el registro correspondiente al puerto del que forma parte esa salida. Por el contrario, cuando el terminal de un puerto semibidireccional debe ser utilizado como entrada, este estado inicial es indispensable para una buena recepción de la información externa. Si por el contrario se encuentra en estado bajo, impide los cambios de nivel de la señal externa. Por tanto, para utilizar un terminal de un puerto semibidireccional de entrada, es imprescindible asegurarse de que el bit que le corresponde en el registro del puerto está en el estado 1, tal como es puesto en la inicialización del microntrolador. Escuela Técnica de Ingenieros de Telecomunicación Departamento de Tecnología Electrónica Universidad de Vigo Microcontroladores DESARROLLO DE SISTEMAS ELECTRÓNICOS BASADOS EN MICROCONTROLADORES ACOPLAMIENTO DE DIODOS LUMINISCENTES Los diodos luminiscentes son dispositivos controlados por corriente. Para que se iluminen se pueden conectar a un puerto bidireccional del microcontrolador como indican las figuras: R µC R El diodo se ilumina cuando la salida está en el nivel “1” lógico µC El diodo se ilumina cuando la salida está en el nivel “0” lógico: +Vcc Si la corriente que debe pasar a través del diodo luminiscente es superior a la máxima que puede proporcionar el microcontrolador hay que utilizar un transistor RC µC Al conectar un diodo a un puerto semibidireccional no hay que poner Una resistencia en serie con el diodo. RB Escuela Técnica de Ingenieros de Telecomunicación Departamento de Tecnología Electrónica Universidad de Vigo Microcontroladores DESARROLLO DE SISTEMAS ELECTRÓNICOS BASADOS EN MICROCONTROLADORES ACOPLAMIENTO DE INTERRUPTORES Y PULSADORES • Para detectar la activación de un pulsador éste debe generar un “0” lógico en un puerto semibidireccional de entrada del microcontrolador. +Vcc R µC • Los rebotes que se producen en la señal de entrada se pueden eliminar por: – Software: el programa no responde a activaciones sucesivas de la misma entrada hasta que transcurre un tiempo que debe ser superior a la duración de los rebotes. – Hardware: Utilizando un circuito antirrebotes que realice la función de un filtro pasabajo . Escuela Técnica de Ingenieros de Telecomunicación Departamento de Tecnología Electrónica Universidad de Vigo Microcontroladores DESARROLLO DE SISTEMAS ELECTRÓNICOS BASADOS EN MICROCONTROLADORES VISUALIZADORES DE 7 SEGMENTOS • • • • Están formados por diodos luminiscentes individuales, uno por cada segmento. Existen dos modelos: – Cátodo común, que se debe conectar a masa (GND). – Ánodo común, que se debe conectar a +Vcc. Es necesaria una resistencia limitadora para cada diodo luminiscente. Se suele utilizar un circuito decodificador del código BCD natural al de 7 segmentos pero la conversión se puede hacer por programa. Terminal del cátodo Terminales chip LED Escuela Técnica de Ingenieros de Telecomunicación Departamento de Tecnología Electrónica Universidad de Vigo Microcontroladores DESARROLLO DE SISTEMAS ELECTRÓNICOS BASADOS EN MICROCONTROLADORES ACOPLAMIENTO DE VISUALIZADORES DE 7 SEGMENTOS Dos tipos de control µC Control estático BCD/7seg Cada segmento se controla de forma independiente. BCD/7seg 4 4 Control dinámico o multiplexado Menor complejidad pero mayor consumo para obtener la misma intensidad de luz. µC BCD/7seg 4 Escuela Técnica de Ingenieros de Telecomunicación Departamento de Tecnología Electrónica Universidad de Vigo Microcontroladores DESARROLLO DE SISTEMAS ELECTRÓNICOS BASADOS EN MICROCONTROLADORES ACOPLAMIENTO SERIE DE UN VISUALIZADOR LCD • • • • Los circuitos controladores utilizan un canal de comunicación en serie con 3 señales: – Una señal de datos (DAT) – Una señal de reloj (CLK) – Una señal de control (LOAD) El dato presente en la señal DAT se almacena en un registro de desplazamiento del controlador en cada flanco de bajada de la señal de reloj CLK. Un flanco de bajada en la señal LOAD hace que el LCD visualice el dato almacenado en el registro de desplazamiento o ejecute una órden (command). Lista de órdenes 100a4a3a2a1a0 Pon el cursor en la posición a4a3a2a1a0. Posición inicial 0 1010 Oculta el cursor 1011 Muestra el cursor 1100 Activa el modo INSERTAR 1101 Desactiva el modo INSERTAR 1110 Borra el carácter apuntado por el cursor y desplaza los que se encuentran a la derecha 1111 Borra toda la pantalla y pone el cursor en la dirección 0 Escuela Técnica de Ingenieros de Telecomunicación Departamento de Tecnología Electrónica Universidad de Vigo Microcontroladores DESARROLLO DE SISTEMAS ELECTRÓNICOS BASADOS EN MICROCONTROLADORES PROGRAMACIÓN DE MÁQUINAS DE ESTADOS Definición de variables ;Definición de estados ESTADO0 EQU 0 ESTADO1 EQU 1 ;Imagen de entrada/salida MARCHA BIT 0 PARO BIT 1 Q BIT 3 ; Estado interno ESTADO DATA 40h E0 Q=0 PARO=1 MARCHA=0 MARCHA=1 E1 Q=1 Escuela Técnica de Ingenieros de Telecomunicación Departamento de Tecnología Electrónica Universidad de Vigo Microcontroladores DESARROLLO DE SISTEMAS ELECTRÓNICOS BASADOS EN MICROCONTROLADORES PROGRAMACIÓN MÁQUINAS DE ESTADOS Programa principal ORG 0 JMP inicio ORG 100h inicio: MOV ESTADO,ESTADO0 ; Condiciones iniciales bucle: CALL ENT_SAL CALL MAQ_EST JMP bucle Escuela Técnica de Ingenieros de Telecomunicación Departamento de Tecnología Electrónica Universidad de Vigo Microcontroladores DESARROLLO DE SISTEMAS ELECTRÓNICOS BASADOS EN MICROCONTROLADORES PROGRAMACIÓN DE MÁQUINAS DE ESTADOS Subrutina de entrada/salida ; Subrutina para actualizar salidas y leer entradas ; MARCHA=P0.0 PARO = P0.1 Q=P3.0 ENT_SAL: MOV C,Q MOV P3.0,C MOV A,P0 MOV C,ACC.0 MOV MARCHA,C MOV C,ACC.1 MOV PARO,C RET Escuela Técnica de Ingenieros de Telecomunicación Departamento de Tecnología Electrónica Universidad de Vigo Microcontroladores DESARROLLO DE SISTEMAS ELECTRÓNICOS BASADOS EN MICROCONTROLADORES PROGRAMACIÓN DE MÁQUINAS DE ESTADOS Subrutina de la máquina de estados MAQ_EST: MOV A, ESTADO CJNE A,#ESTADO0,NESTADO0 CLR Q JNB MARCHA,SAL_MAQ MOV ESTADO,#ESTADO1 JMP SAL_MAQ NESTADO0: CJNE A,#ESTADO1,SAL_MAQ SETB Q MOV C,MARCHA CPL C ANL C,PARO JNC SAL_MAQ MOV ESTADO,#ESTADO0 SAL_MAQ: RET END