Unidad Unidad I, Arquitectura de mic rocont roladores Generalidade Generalidades s (definici ones, arquitecturas y puertos) Programa: secuencia Programa: secuencia o listado de instrucciones necesarias para realizar una tarea específica Instrucción: datos ordenados en una secuencia que el procesador debe ejecutar (asociada a comandos) Código de operación: parte de una instrucción que especifica una operación a ejecutar Operador: símbolo que indicará como se llevará a cabo una operación, tiene una función predefinida (pueden ser matemáticos o lógicos) Operando: entrada, Operando: entrada, argumento o valor de un operador Operación: orden ya ejecutada Ejemplo (programa en su totalidad) de brazo robótico (pseudocódigo: (pseudocódigo: descripción informal de un programa) INICIO Tomar objeto Levantar 45º Girar base 90º Bajar 45º Mostrar en pantalla “Hola” Mostrar en pantalla (= 2 + 1) Soltar objeto Mostrar en pantalla (= Sensor1 + Sensor2 Sensor2))
Toma objeto Se levanta 45º Gira la base en 90º Baja 45º Hola en pantalla 3 en pantalla Soltó objeto Sensor 1 + Sensor 2 en pantalla
FIN
Características básicas de un sistema basado en microprocesador: Microprocesador; Unidad de memoria, memoria, dispositivo s de entrada y salida; Buses de Dirección, datos y co ntrol Los microprocesadores son microprocesadores son circuitos integrados que contienen millones de transistores en su interior, los cuales crean circuitos complejos encargados de realizar diferentes tareas. También se los denomina unidad de procesamiento central o CPU, CPU, ya que muchos de ellos pueden actuar como el “cerebro “cerebro”” de un sistema computacional, administrando todas las tareas que este realice y llevando a cabo las operaciones con los datos.
Esquema de un microprocesador El elemento principal es la AL la AL U (unidad aritmética lógica), que se encarga de llevar a cabo todas las operaciones lógicas y aritméticas que requieran los procesos que se ejecuten (suma, resta, multiplicación, división, and, or, not desplazamiento de bits), el computador sólo sabe sumar, la resta la hace sumando en complemento 2
El Registro temporal es para almacenar información o datos de forma temporal mientras se necesite para ejecutar una operación, datos que están contenidos por la memoria de programa y que son cargados en el bus de datos , el acumulador es el encargado de almacenar el resultado de las operaciones realizadas por la ALU siempre y cuando estas no sean almacenadas en una unidad de memoria, este registro también puede ser utilizado como un operando, lo que permite ganar tiempo en ejecución El código de la operación se almacena en el Registro de instrucciones , luego esas instrucciones se decodifican en el Decodificador de instrucciones para poder ser interpretadas, así el bloque de control le indicará a la ALU la opera ción a realizar permitiéndole la entrada y salida de datos, la unidad de control también enviará señales de lectura por el bus de control a la memoria de programa para saber qué es lo que se debe hacer El contador de programa es un contador que se incrementa para volver a buscar la siguiente instrucción, siempre que se ejecute una instrucción sumará 1 para buscar la dirección en la memoria de programa de la siguiente instrucción a través del bus de direcciones, este contador se inicializa en cero después de un reset o se puede fijar en otro valor para crear saltos hacia rutinas que estén en lugares específicos
Suma de dos datos, 2 + 3
Memoria de programa Memoria externa al microprocesador donde se aloja el programa, es quién le indica al microprocesador instrucción por instrucción los pasos que debe cumplir, no debe perder su contenido cuando el sistema carece de energía. Normalmente, se utilizan memorias ROM de solo lectura para grabar un programa (PROM), porque poseen esta característica tan preciada, aunque tienen la desventaja de que solo pueden ser escritas un a sola vez. Gracias al avance de la tecnología, hoy podemos utilizar memorias EEPROM (Puede borrarse y regrabarse eléctricamente) y Flash (mejora de las EEPROM, más rápidas y de mayor ca pacidad) para almacenar código, con la ventaja adicional de que es posible borrar su contenido eléctricamente. Memoria de datos Es también una memoria externa al microprocesador, pero que se encarga de almacenar la información que precisa el procesador para ejecutar las operaciones que le indiquemos (temporal ). El tipo de memoria que se emplea para los datos es la RAM (memoria de acceso aleatorio), porque puede almacenar datos temporales que pueden ser escritos y leídos una infinidad de veces. También es posible querer almacenar datos que no se pierdan luego de que el sistema se quede sin alimentación. En este caso, se pueden utilizar memorias no volátiles, como las EEPROM de baja capacidad, ideales para guardar contraseñas o nombres de usuarios. Circuitería de interfaces y disposit ivos periféricos Transistores o circuitos integrados utilizados para adaptar señales o niveles d e tensión, como es el caso de un transistor que activará un relé para encender un motor eléctrico de 220 V o un amplificador operacional para recibir una señal de 4 a 20 mA de un transmisor de presión Los periféricos de entrada se encargarán de codificar los mensajes o señales del exterior para que el microprocesador pueda interpretarlos (teclados o sensores), los periféricos de salida permiten observar los resultados arrojados por el procesador de una manera más cómoda que si se presentaran como unos y ceros (pantallas, display, impresoras, actuadores como motores y relés)
Estructura Von Newman y estructura Harvard Definen el manejo de la memoria y la cantidad de buses que se utilizan para comunicarlas con el microprocesador, son modelos generales de hardware En la memoria de un ordenador, un microcomputador o un microcontrolador, se almacenan instrucciones y datos. Las instrucciones deben pasar secuencialmente a la CPU para su descodificación y ejecución, en tanto que algunos datos en memoria son leídos por la CPU y otros son escritos en la memoria desde la CPU. Puede intuirse que la organ ización de la memoria y su comunicación con la CPU son dos aspectos que influyen en el nivel de prestaciones del ordenador Von Newman
Toma el nombre del matemático John von Newman, utiliza una memoria única para programa (instrucciones) y datos, es decir, por el mismo bus se localizan (direccionan) y transitan instrucciones y datos, la misma señal que emite la CPU para leer un dato sirve para leer una instrucción, es una señal única, memoria ROM y RAM forman un conjunto único La arquitectura von Newman requiere de menos líneas entre la conexión d e la CPU y la memoria dando simpleza en su hardware, sin embargo es imposible manejar datos e instrucciones al mismo tiempo Harvard
Toma el nombre del lugar donde Howard Aiken diseñó los ordenadores Mark, los que fueron los primeros en utilizar memorias separadas, es así que la memoria de programa tiene su p ropio bus de direcciones, instrucciones y control. Para la memoria de datos sucede lo mismo, tiene su propio bus de direcciones, datos y control. La arquitectura Harvard requiere de más conexiones en su hardware, pero al manejar instrucciones y datos de forma simultánea, gana velocidad en la ejecución de programas Esta arquitectura es la utilizada en microcontroladores, debido a que todos los componentes vienen dentro del circuito integrado, por lo tanto, no es un problema el manejar más conexiones entre el microprocesador y las memorias (caso que tiende a discrepar en su mayoría con los microcomputadores, donde las conexiones son externas a cada componente) Programación de mic roprocesadores La programación de microprocesadores puede realizarse entre tres tipos de niveles básicos de lenguajes: en código máquina, ensamblador y de alto nivel.
Fabricantes, modelos conoc idos y características -
-
-
Microchip: Con su línea PIC de 8 bits, aunque en la actualidad cuenta con dispositivos de gamas mayores, uno de sus dispositivos conocidos es el PIC 16F84A, dispositivo simple y de fácil manejo, por otra parte, también está el PIC 16F88, dispositivo con más memoria que el 16F84A y cuenta con puerto serial, conversores A/D y oscilador interno (será utilizado en la asignatura) At mel: Conocida por la fabricación de microcontroladores incorporados en las placas de desarrollo Arduino (Atmega 328) y por la elaboración de semiconductores como memorias EEPROM Intel: Fabricación de microprocesadores y microcontroladores, fabrica el primer microprocesador comercial, el Intel i4004, y en los 80 fabrica el microcontrolador P8051, modelo que hoy es base de otros fabricantes
Circuito d e entradas y salidas discretas El microcontrolador PIC: Características, memorias; niveles de voltaje, asignación de terminales, Puertos de Entrada y salida, Oscilador, protección de códigos, terminal de reset o Master Clear, bancos d e la memori a de datos Los PIC16F son unas de las familias de microcontroladores de 8 bits más populares en el mercado. Son fabricados por la firma Microchip y se ofrecen con una amplia gama de funcionalidades, destacándose por su sencillez y bajo consumo Los microcontroladores PIC16F pertenecen a la familia de rango medio de los micros de 8 bits de Microchip. Poseen un repertorio de 35 instrucciones, procesador de filosofía RISC (Set de instrucciones reducidas), buses de arquitectura Harvard, construidos en pastillas de tecnología CMOS, frecuencia de operación hasta 20MHz, hasta 8KB de memoria Flash de programa, conversores A/D integrados y manejo de interrupciones. Estos microcontroladores PIC son ideales para aprender las bases de la programación de estos dispositivos. Su nivel de tensión es TTL, se alimenta con 5V (Vss con 0V y Vdd con 5V), el cero lógico se considera con una tensión de 0V, mientras que el uno lógico se considera con 5V Cuenta con puertos digitales, en los cu ales los pines se pueden definir como de entrada o salida, como es el caso del puerto A y el puerto B (RAX y RBX), cuenta también con canales analógicos (ANX), puerto serial (TX y RX), puede utilizar osciladores externos como también su oscilador interno para dejar dos pines más para entradas o salidas
Los tres modos LP, XT y HS usan un cristal resonador externo, la diferencia sin embargo es la ganancia de los drivers internos, lo cual se ve reflejado en el rango de frecuencia admitido y la potencia consumida.
Conexión de un cristal oscilador al microcontrolador para pulsos de reloj Las formas más comunes para hacer un reset son: Quitar y volver a establecer la alimentación del microcontrolador. Cuando se conecta la alimentación se produce automáticamente un reset. Este tip o de reset se lo conoce como Power-On Reset (POR). La segunda opción es aplicar un nivel lógico bajo en el terminal MCLR (Master Clear Reset). Mediante este terminal podemos provocar externamente un reset en el momento que queramos, sin necesidad de desconectar el microcontrolador de su alimentación. Par introducir un nivel bajo en este pin debemos colocar un pulsador que lleve al pin MCLR a ese estado lógico.
Entradas y salidas Resistencias pull-up y pull-down Estas resistencias comúnmente son utilizadas en dispositivos de entrada e n electrónica para que se pueda asegurar el nivel lógico de esta cuando está en reposo, de lo contrario quedaría en un estado indeterminado ya que cualquier perturbación se puede inducir, una resistencia pull-up asegurará que se tenga un 1 lógico en estado de reposo y una resistencia pull-down asegurará que se tenga un 0 lógico en reposo
Pull-down en reposo y activa, pull-up activa y en reposo Algunos microcontroladores las incluyen, para poder quedar habilitadas se debe ir al registro que corresponda para activarlas, por lo general los microcontroladores PIC incluyen resistencias pull-up en el puerto B, las cuales se habilitan en el registro OPTION_REG en el bit ̅ RBPU asignándole un valor de 0
Led y transistores para salidas de relé El microcontrolador entregará en el pin asignado como salida una tensión de 5V o 3,3V dependiendo del dispositivo, sin embargo, para mandar señales a periféricos se deberá tener en cuenta las características que tenga, si es el caso de un dispositivo de señalización similar a un led se podrá utilizar una resistencia en serie
Conexionado de un LED, en la resistencia el pin, en el cátodo del led GND
Si el dispositivo a manejar es un motor eléctrico (de corriente alterna o continua) el microcontrolador no podrá activarlo directamente, por lo tanto, se deberá utilizar un transistor y un relé para energizarlo
Relé activado por un transistor En la resistencia va conectado el pin de salida del microcontrolador, el emisor va a tierra (NPN) y el diodo que va en paralelo al relé es para que cuando este último se desactive, la carga que queda se extinga y no dañe al transistor La resistencia de base se calcula por la siguiente expresión:
− 0,7 ℎ El voltaje (en volts) es el que entrega el pin del microcontrolador, 0,7 es el voltaje base – emisor del transistor, normalmente se considera 0,7 si es de silicio (el cálculo será más preciso si se ve la hoja de datos del dispositivo). La corriente (en amperes) es aquella que circula entre colector y emisor, es decir, la corriente que consume la carga, y hFe es la ganan cia del transistor, también aparece como β en las hojas de datos, si hay varios valores disponibles, nor malmente se elige el más bajo Ejemplo A través de un relé conectado al microcontrolador se desea alimentar la partida de un motor trifásico de 5 HP, el relé consume 0,5 mA y el microcontrolador entrega en e l pin 5V, el transistor utilizado es un 2N2222 (β = 50) Solución: Datos: Corriente: 0,5 mA = 0,0005 A Voltaje: 5V Β = hFe = 50
− 0,7 5 − 0,7 = = 430000 Ω = 430 Ω 0,0005 ℎ 50 Si no se encuentra la resistencia precisa, se debe acudir a la más cercana comercialmente
Circuito de entradas analógicas De las entradas analógicas, la más común es la que entrega un potenciómetro, de la cual los extremos van con la alimentación y el terminal del medio es el que entrega la tensión según el recorrido que se tenga, sabe destacar que la alimentación en los extremos del potenciómetro no debe superar la máxima tensión que puede admitir un microcontrolador (5V en la mayoría de los casos, depende del dispositivo, ver hoja de datos)
Potenciómetro como entrada analógica Por otra parte, también se puede encontrar el divisor de tensión, del cual se puede leer una señ al que supere la entrada máxima de tensión del microcontrolador, para esto, es necesario lograr la combinación de resistencias que asegure que la máxima tensión que saldrá por Vout, sea la máxima que puede recibir el microcontrolador
Divisor de tensión Otra utilización de resistencias es colocar una de 250Ω en la entrada del microcontrolador para leer una señal normalizada de 4 a 20 mA (quedará convertida de 1 a 5V), a pesar que generará una caída de tensión notoria, esta resistencia se puede reducir y la señal resultante amplificarla con un amplificador operacional para hacerla ingresar a la entrada analógica del microcontrolador.
Ap li cac io nes (co nt ro l, d atal og ger , SCADA y RTU) Control Un microcontrolador puede cumplir tareas similares a las de un PLC si se le adicionan los componentes adecuados para conectarse a los periféricos de control, como es el caso de optoacopladores para leer señales de 24 VDC o puentes rectificadores y reguladores de tensión para señales de corriente alterna, mientras que para las salidas se puede hacer uso de transistores (para salidas de corriente continua), transistores y relés (para corriente alterna y continua) y triacs (para corriente alterna), dentro de todo, esto es lo que tiene un PLC en su interior y en sus tarjetas (en caso de ser modular) SCADA Complementando la función anterior, los microcontroladores incluyen (en algunos casos) distintos puertos de comunicación, principalmente serial, lo que le permitiría comunicación con otros dispositivos similares e incluso convertir sus tramas de datos a protocolos industriales, como es el caso de Arduino con la Ethernet Shield que permite comunicarse a t ravés de Modbus TCP/IP con plataformas SCADA e incluso con equipos indus triales como es el caso de PLC RTU Las unidades terminales remotas pueden captar información y transmitirlas a unidades centrales que la puedan procesar, las RTU tienen en su interior microcontroladores y drivers p ara el manejo de señales como también para las comunicaciones Dataloggers Los registradores pueden guardar información para posteriormente extraerla y analizarla, esta información puede ser almacenada en la memoria interna del equipo o en unidades extraíbles, por lo general estos equipos se montan en lugares remotos, por lo que necesitan dispositivos adicionales para poder operar, como es el caso de unidades solares para el abastecimiento de energía. Los dataloggers tienen gran importancia en distintos tipos de estudio, como es el caso de los ciclos hidrológicos para determinar el precio de la energía eléctrica o en las futuras explotaciones de un parque eólico, donde se registra la velocidad y dirección del viento
Fuentes bi bliográficas: [1] USERS. (2011). Microcontroladores funcionamiento, programación y usos prácticos. Argentina: Fox Andina SA. [2] Valdés F., Pallás R. (2007). Microcontroladores: fundamentos y aplicaciones con PIC. Barcelona (España): Marcombo. [3] Hernández A. (2017). Resistencias pull up y pull down en circuitos digitales. 25/01/2018, de Tallerdeelectrónica.com Sitio web: https://tallerelectronica.com/2017/03/13/resistencias-pulluppull-down-en-circuitos-digitales/ [4] Hernández L. (2017). Qué es el divisor de tensión en Arduino. 25/01/2018, de Programafacil.com Sitio web: https://programarfacil.com/blog/divisor-de-tension-en-arduinomultiplica-tus-entradas-digitales/