Diferencia Entre Un Microprocesador y Un Microcontrolador

Diferencia entre un Microprocesador y un Microcontrolador Muchas veces nos a caído la duda de cuál es la diferencia entr

Views 143 Downloads 3 File size 329KB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

Diferencia entre un Microprocesador y un Microcontrolador Muchas veces nos a caído la duda de cuál es la diferencia entre un microprocesador y un microcontrolador cual es la diferencia entre estos y cual será el mas idóneo para ocupar en algún proyecto. Bueno si se ha tenido la oportunidad de realizar un diseño con un Microprocesador, se puede observar que dependiendo del circuito se requerían algunos circuitos integrados adicionales además del Microprocesador como por ejemplo:    

RAM (para almacenar datos temporalmente y memorias) ROM (para guardar el programa encargado del proceso del equipo) Circuito integrado (para los puertos de entrada y salida) Descodificador de direcciones.

Figura 1.- Estructura de un sistema abierto basado en un Microprocesador. La disponibilidad de los buses permite que se configure a la medida de la aplicación.

En cambio un Microcontrolador es un sistema cerrado, es en definitiva un circuito integrado que incluye todos los componentes de un computador. Debido a su reducido tamaño es posible montar el controlador en el propio dispositivo al que gobierna. En éste caso el controlador recibe el nombre de controlador empotrado. En donde todas las partes del procesador están contenidas en su interior y sólo salen al exterior las líneas que gobiernan los periféricos. En conclusión las estas ventajas son reconocidas inmediatamente para aquellas personas que han trabajado con los Microprocesadores y después pasaron a trabajar con los Microcontroladores. Estas son las diferencias más importantes: Por ejemplo la configuración mínima básica de un Microprocesador estaba constituida por un Micro

de 40 Pines, Una memoria RAM de 28 Pines, una memoria ROM de 28 Pines y un decodificador de direcciones de 18 pines; pero un Microcontrolador incluye todo estos elementos en un solo Circuito Integrado por lo que implica una gran ventaja en varios factores: En el circuito impreso por su amplia simplificación de componentes, el costo para un sistema basado en Microcontrolador es mucho menor y, lo mejor de todo, el tiempo de desarrollo de su proyecto electrónico se disminuye considerablemente.

Intel 8088 El microprocesador Intel 8088 era una variante del Intel 8086. Introducido el 1 de julio de 1979, el 8088 tenía un bus de 8 bits de datos externo en lugar del bus de 16 bits del 8086 - Los registros de 16 bits y el rango de direcciones megabyte se mantuvieron sin cambios, sin embargo. La IBM PC original se basó en el 8088. Historia y descripción El 8088 estaba destinada a los sistemas económicos al permitir el uso de una ruta de datos de 8 bits y de 8 bits and chips periféricos, tarjetas de circuitos complejos eran todavía bastante engorroso y costoso cuando fue lanzado. La cola de captación previa del 8088 se acortó a cuatro bytes, a partir de los seis octetos de 8086, y el algoritmo de captación previa se modificó ligeramente para adaptarse al bus más estrecho. Estas modificaciones del diseño básico de 8086 fue uno de los primeros puestos de trabajo asignados a continuación, nueva oficina de diseño de Intel y de laboratorio de Haifa, Israel. Las variantes de la 8088 con más de 5 MHz de frecuencia de reloj máxima incluyen el 8088-2, que fue fabricado usando nuevo proceso nMOS mejorada de Intel llamado HMOS y especificado para una frecuencia máxima de 8 MHz. Más tarde seguido el 80C88, un diseño CHMOS totalmente estática, que podría funcionar con velocidades de reloj de 0 a 8 MHz. Había también varios otros, más o menos similares, las variantes de otros fabricantes. Por ejemplo, el NEC V20 era una variante compatible y un poco más rápido pin del 8088, diseñado y fabricado por NEC. Sucesivas 8.088 procesadores compatibles NEC corrían a velocidades de hasta 16 MHz. Cuando se anunció, el precio de lista del 8088 fue EE.UU. 124,80 dólares. Rendimiento Dependiendo de la frecuencia de reloj, el número de estados de espera de memoria, así como sobre las características del programa de aplicación en particular, el rendimiento promedio para el Intel 8088 varió de aproximadamente 0,33 hasta 1000000 de instrucciones por segundo. Mientras tanto, el mov reg, reg y ALU reg, reg instrucciones de tomar dos o tres ciclos produjo respectivamente un rendimiento máximo absoluto de entre 1/3 y 1/2 MIPS por MHz, es decir, en el rango de 3 a 5 MIPS lugar a las 10 MHz. Selección para su uso en la PC de IBM La PC original de IBM era el microordenador más influyente de utilizar el 8088 - Se utiliza una frecuencia de reloj de 4,77 MHz. Algunos de los ingenieros de IBM y otros empleados querían utilizar el procesador 801 de IBM, algunos habrían preferido que el nuevo Motorola 68000, mientras que otros abogaron por una pequeña y simple microprocesador, como el MOS Technology 6502 o el Zilog Z80, que se había utilizado en anteriores ordenadores personales. Sin embargo, IBM ya tenía una historia de uso de chips de Intel en sus productos y también había adquirido los derechos para fabricar la familia 8086. Otro factor fue que el 8088 permitió que el equipo se basa en un diseño de 8085 modificado, ya que podría interactuar fácilmente con la mayoría de los chips de nMOS con databuses 8 bits, es decir, existentes y maduras, y por lo tanto económica, componentes. Esto incluye circuitos integrados destinados originalmente para el apoyo

y periféricas alrededor de los procesadores 8085 y otros similares que ya eran bien conocidos por muchos ingenieros, reduciendo aún más los costos. Los descendientes de los 8088 son la 80188, 80186, 80286, 80386, y más tarde los procesadores compatibles de software que están en uso hoy en día. Véase más abajo para una lista más completa. Periféricos 

Intel 8282/8283: Cierre 8-Bit



Intel 8284: generador de reloj



Intel 8286/8287: Conductor 8-Bit bidireccional



Intel 8288: Controlador de bus



Intel 8289: árbitro de bus o

Máquina de vapor de Watt, Condensador separado, La asociación de Matthew Boulton y James Watt, Mejoras posteriores, Motores vatios Conservas

o

Propulsión de naves espaciales, Requerimientos, Eficacia, Métodos, Propulsión Planetario y atmosférica, Métodos hipotéticos, Tabla de métodos, Pruebas

o

Vilfredo Pareto, Biografía, Sociología, Fascismo y distribución de energía, Conceptos económicos, Principales obras

o

PDP-11, Historia, Las características innovadoras, LSI-11, Disminución, Modelos, Los sistemas operativos, Periféricos, Utilizar

o

Interstellar Boundary Explorer, Carga útil, Parámetros de la misión, Lanzar, La recolección de datos, Resultados astronómicos

o

Textiles andinos, Orígenes, Armadura acolchada, Telar, Galería

o

DVD, Etimología, Historia, Especificaciones, Identificación, Diseño, Capacidad, DVD grabables y regrabables, De grabación de doble capa, DVD-Video, DVDAudio, Sucesores, Utilizar como medio de respaldo

o

Zij, Lista de zijes

o

Tarjeta inteligente, Historia, Diseño, Aplicaciones, Seguridad, Beneficios, Problemas

o

Teoría marxista de clase, Orígenes de la teoría de Marx, Estructura de clases, La naturaleza de las relaciones de clase: Conflicto, Inevitabilidad de la revolución socialista

o

Blanco Watson, Vida 1760-1800, Vida 1800-1835, Obras sobrevivientes, Publicaciones

o

Ley de Protección de los Refugiados y de Inmigración, Constitucionalidad

o

Giles de Roma, Primeros años, Controversia, Obras, La escuela Egidiana, Traducciones

o

Atracciones turísticas, Atracción de la novedad, Destino turístico

o

Electrón neutrino, Propuesta, Descubrimiento, Nombre

DMA El acceso directo a memoria (DMA, del inglés direct memory access) permite a cierto tipo de componentes de una computadora acceder a la memoria del sistema para leer o escribir independientemente de la unidad central de procesamiento (CPU) principal. Muchos sistemas hardware utilizan DMA, incluyendo controladores de unidades de disco,tarjetas gráficas y tarjetas de sonido. DMA es una característica esencial en todos los ordenadores modernos, ya que permite a dispositivos de diferentes velocidades comunicarse sin someter a la CPU a una carga masiva de interrupciones. Una transferencia DMA consiste principalmente en copiar un bloque de memoria de un dispositivo a otro. En lugar de que la CPU inicie la transferencia, la transferencia se lleva a cabo por el controlador DMA. Un ejemplo típico es mover un bloque de memoria desde una memoria externa a una interna más rápida. Tal operación no ocupa al procesador y, por ende, éste puede efectuar otras tareas. Las transferencias DMA son esenciales para aumentar el rendimiento de aplicaciones que requieran muchos recursos. Cabe destacar que aunque no se necesite a la CPU para la transacción de datos, sí se necesita el bus del sistema (tanto bus de datos como bus de direcciones), por lo que existen diferentes estrategias para regular su uso, permitiendo así que no quede totalmente acaparado por el controlador DMA. El acceso directo a memoria es simplemente eso, un acceso a memoria que se crea al particionar la memoria en bloques del mismo tamaño.

Watchdog timer (WDT) El propósito del watchdog timer (WDT) es producir un reset del microcontrolador PIC cada cierto período de tiempo con lo cual se reinicia la ejecución del programa, con la finalidad de evitar que el dispositivo entre en un lazo infinito (se “cuelgue”) o se quede en una espera muy prolongada por un determinado evento que no ocurre. Durante la operación normal, el watchdog timer (conocido en español como perro guardián) genera un reset del microcontrolador PIC después del final de su período (período WDT). El reset puede evitarse si se reinicia el watch dog timer por medio de la ejecución de la instrucción CLRWDT antes del final de su período. Si el dispositivo está en modo

Sleep, el watch dog timer ocasiona que se despierte el microcontrolador PIC y continúe con la operación normal (sin producir reset), esto se conoce como despertar WDT. El usuario tiene la posibilidad de emplear un prescaler para el watchdog timer (prescaler de 16 bits) y para el Timer0 (prescaler de 8 bits) al mismo tiempo. El período WDT puede extenderse hasta 268 segundos, usando el prescaler de 16 bits y el postscaler (prescaler de 8 bits) simultáneamente, cuando el bit PSA del registro OPTION_REG es igual a 1 (prescaler de 8 bits asignado al watch dog timer). 

Un postscaler es un circuito que reduce la frecuencia de generación de interrupciones (o reset por WDT) de un temporizador / contador.

Oscilador watch dog timer del microcontrolador PIC El watch dog timer obtiene su base de tiempo del oscilador INTRC de 31.25 kHz. El valor del registro WDTCON es „---0 1000‟ (prescaler de 16 bits, 1:512) en todos los resets. Esto da una base nominal de 16,38ms, que es compatible con la base de tiempo generada en versiones anteriores del microcontrolador PIC 16. Cuando el OST es invocado, el WDT se mantiene en reset, debido a que el contador del WDT es empleado por el OST para realizar el conteo. Cuando finaliza el conteo OST, el WDT empezará a contar (si está habilitado). Se ha añadido un nuevo prescaler para el perro guardián (figura 6.2). Este prescaler es de 16 bits y puede ser programado con los bits WDTPS del registro WDTCON (figura 6.3), para dividir el oscilador RC para 32 hasta 65536, dándole a la base de tiempo del WDT un rango nominal de 1ms hasta 2,097s .

Figura 6.2 Diagrama de bloques del WDT (Postscaler es el prescaler de 8 bits del Timer0)

Figura 6.3 Bits del registro WDTCON Control del watchdog timer Cuando el bit WDTEN de la palabra CONFIG1 es igual a 1 (WDT habilitado), el WDT funciona continuamente y el bit SWDTEN del registro WDTCON no tiene ningún efecto. Si se borra el bit WDTEN (WDT deshabilitado), entonces el bit SWDTEN puede ser empleado para encender y apagar el WDT en el instante deseado de forma muy precisa. PIC16F88 en C (mikroC PRO) - Ejemplo Estos ejemplos corresponden al microcontrolador PIC16F88 en mikroC PRO. El código fuente para los microcontroladores PIC16F628A y 16F877A se encuentra en las carpetas correspondientes que acompañan a este libro. (16F88) Este primer ejemplo muestra cómo programar el WDT para que produzca un reset cada cierto tiempo. Debe notarse que el prescaler de 16 bits permanece en su valor inicial (1:512), por lo que la base de tiempo es de 16,38 ms, mientras que el prescaler de 8 bits (postscaler) se programa con un valor de 1:32, lo que da un período WDT = 16,38 x32 = 524,16 ms (aproximadamente 0,5 s). Otra característica importante de este ejemplo es cómo se puede añadir código ensamblador por medio de la declaración asm. El perro guardián permanece deshabilitado en la palabra CONFIG1 (WDTEN=0). Revisar por medio del comando Project>Edit Project y seleccionar Watchdog Timer: Off. Así el encendido/apagado del WDT se realiza de forma precisa por medio del bit SWDTEN del registro WDTCON. (16F628A y 16F877A) El prescaler está asignado inicialmente al WDT y se lo ha programado con un valor de 1:32 lo que da un período WDT=18x32=576 ms (aproximadamente 0,5 s). El WDT se debe encender por medio del bit WDTE de la palabra de configuración CONFIG. Ejemplo-WDT1.c: El microcontrolador PIC se pone en modo de bajo consumo. El despertar se producirá cada vez que el WDT concluya su período, en ese momento se producirá un incremento de un contador que se visualizará en la pantalla y nuevamente volverá al modo de bajo consumo. El proceso debe repetirse cada medio segundo aproximadamente (circuito de la figura 3.2). //WDT1.c //OPTION_REG tiene todos sus bits en 1 después de cualquier

//reset y no cambia al despertar por WDT o interrupción, por lo tanto //el Timer0 actúa como contador, incrementa en transición //descendente y el prescaler está asignado al WDT. //Declaración de las 12 variables necesarias para la conexión //del módulo LCD. sbit LCD_RS at RB4_bit; sbit LCD_EN at RB5_bit; sbit LCD_D4 at RB0_bit; sbit LCD_D5 at RB1_bit; sbit LCD_D6 at RB2_bit; sbit LCD_D7 at RB3_bit; sbit LCD_RS_Direction at TRISB4_bit; sbit LCD_EN_Direction at TRISB5_bit; sbit LCD_D4_Direction at TRISB0_bit; sbit LCD_D5_Direction at TRISB1_bit; sbit LCD_D6_Direction at TRISB2_bit; sbit LCD_D7_Direction at TRISB3_bit; // Fin de declaración de variables de conexión. char texto[4], contador=0; void main(){ OSCCON=0x40; //Oscilador interno a 1MHz. while (OSCCON.IOFS==0);//Esperar mientras el oscilador está inestable. ANSEL=0x00; //Bits AN6:AN0 como E/S digital. Lcd_Init(); //Inicializa el LCD. Lcd_Cmd(_LCD_CLEAR); //Borra el display. Lcd_Cmd(_LCD_CURSOR_OFF); //Apaga el cursor. WDTCON=0x08; //Prescaler 1:512 (Base de tiempo 16,38 ms). OPTION_REG=0xFD; //Postscaler 1:32 (Período WDT = 524,16 ms). SWDTEN_bit=1; //WDT encendido. while (1) { ByteToStr(contador,texto); Lcd_Out(1,6,texto); asm SLEEP //Modo de bajo consumo durante 524.16 ms. contador++; } } Temas relacionados que también encontrarás en este libro:          

Reset Reset maestro #MCLR Reset al encendido (Power-on Reset POR) Temporizador de encendido (Power-up Timer PWRT) Temporizador de encendido del oscilador (Oscilator Start-up Timer OST) Reset por desvanecimiento (Brown-out Reset BOR) Secuencia general de encendido Modo de bajo consumo (Sleep) Despertar (Wake-up from Sleep) Otros ejemplos de programación