May 19
Proyecto - Arduino: Sensor de Temperatura Proyecto de Arduino Colaboradora: •
Vanessa Salazar Salazar (ir a su Blog: http://cintegrado.blogspot.mx/ )
Este es nuestro último proyecto para la clase de Computo integrado, decidimos hacer un Detector de temperatura con arduino, el cual nos mostrará la temperatura ambiente que podemos encontrar encontrar a nuestro alrededor. alrededor.
Lo principal en este proyecto será el sensor de temperatura LM35, ya que es el “motor” para el funcionamiento funcionamiento de este proyecto proyecto con Arduino. Arduino. A continuación daré una pequeña explicación de este sensor, para que sea un poco mas entendible y sepan cuales son sus funciones. Características del sensor:
El sensor LM35 el cual nos mide una temperatura de -55ºC a 150ºC y una precisión de 0.5ºC a 25ºC; este sensor es suficientemente completo, se puede utilizar para realizar pequeños inventos inventos o proyectos proyectos y que pueden pueden ser realizados realizados en casa. Esquema del sensor:
Materiales • • • • • •
Sensor LM35 Placa Arduino Uno Protoboard Cables de conexión Pantalla LCD Potenciometro
Herramientas utilizadas • •
Arduino IDE Arduino Uno
El siguiente código que será mostrado, fue usado para el proyecto; lo primero que se hizo fue documentar el código, explicando las partes importantes, después se subio a la placa de Arduino para realizar las funciones funciones del sensor. sensor. Código
En el circuito se visualizan las conexiones que van del Arduino hacia el sensor lm35 y la pantalla LCD junto con el Potenciometro. Circuito (Echo con el programa Fritzing).
Materiales • • • • • •
Sensor LM35 Placa Arduino Uno Protoboard Cables de conexión Pantalla LCD Potenciometro
Herramientas utilizadas • •
Arduino IDE Arduino Uno
El siguiente código que será mostrado, fue usado para el proyecto; lo primero que se hizo fue documentar el código, explicando las partes importantes, después se subio a la placa de Arduino para realizar las funciones funciones del sensor. sensor. Código
En el circuito se visualizan las conexiones que van del Arduino hacia el sensor lm35 y la pantalla LCD junto con el Potenciometro. Circuito (Echo con el programa Fritzing).
Conexión del Sensor en el Circuito: •
El sensor tiene 3 pines, el pin de corriente va hacia 5V de arduino, el pin de tierra va hacia GND de arduino y la señal hacia la entrada analogica 0 de arduino (Puede basarse del esquema del sensor).
En las imágenes se muestra como esta el circuito ya terminado, se visualiza el sensor conectado, la pantalla mostrando la temperatura (en ese momento era de 22°C) y las demás conexiones. Imágenes del Sensor de Temperatura Mostrando temperatura:
Conexión con Arduino:
Conexión con el Potenciometro y con el sensor de temperatura:
Finalmente, aquí una muestra del funcionamiento del proyecto en el siguiente video, se visualiza como se detecta la temperatura ambiente, en ese momento era de 22°C y conforme se acercaba algo que desprendiera calor, aumentaba la temperatura; pasaba lo contrario si se acercaba algo frio. Vídeo
Publicado 19th May 2012 por Rene Camacho Etiquetas: Clase Computo Integrado
Computo Integrado 1. May 19
Proyecto - Arduino: Sensor de Temperatura Proyecto de Arduino Colaboradora: o
Vanessa Salazar (ir a su Blog: http://cintegrado.blogspot.mx/ )
Este es nuestro último proyecto para la clase de Computo integrado, decidimos hacer un Detector de temperatura con arduino, el cual nos mostrará la temperatura ambiente que podemos encontrar a nuestro alrededor.
Lo principal en este proyecto será el sensor de temperatura LM35, ya que es el “motor” para el funcionamiento de este proyecto con Arduino. A continuación daré una pequeña explicación de este sensor, para que sea un poco mas entendible y sepan cuales son sus funciones. Características del sensor:
El sensor LM35 el cual nos mide una temperatura de -55ºC a 150ºC y una precisión de 0.5ºC a 25ºC; este sensor es suficientemente completo, se puede utilizar para realizar pequeños inventos o proyectos y que pueden ser realizados en casa. Esquema del sensor:
Materiales o o o o o o
Sensor LM35 Placa Arduino Uno Protoboard Cables de conexión Pantalla LCD Potenciometro
Herramientas utilizadas o o
Arduino IDE Arduino Uno
El siguiente código que será mostrado, fue usado para el proyecto; lo primero que se hizo fue documentar el código, explicando las partes importantes, después se subio a la placa de Arduino para realizar las funciones del sensor. Código
En el circuito se visualizan las conexiones que van del Arduino hacia el sensor lm35 y la pantalla LCD junto con el Potenciometro. Circuito (Echo con el programa Fritzing).
Conexión del Sensor en el Circuito: o
El sensor tiene 3 pines, el pin de corriente va hacia 5V de arduino, el pin de tierra va hacia GND de arduino y la señal hacia la entrada analogica 0 de arduino (Puede basarse del esquema del sensor).
En las imágenes se muestra como esta el circuito ya terminado, se visualiza el sensor conectado, la pantalla mostrando la temperatura (en ese momento era de 22°C) y las demás conexiones. Imágenes del Sensor de Temperatura
Mostrando temperatura:
Conexión con Arduino:
Conexión con el Potenciometro y con el sensor de temperatura:
Finalmente, aquí una muestra del funcionamiento del proyecto en el siguiente video, se visualiza como se detecta la temperatura ambiente, en ese momento era
de 22°C y conforme se acercaba algo que desprendiera calor, aumentaba la temperatura; pasaba lo contrario si se acercaba algo frio. Vídeo
Publicado 19th May 2012 por Rene Camacho Etiquetas: Clase Computo Integrado 2. May 15
Arduino - practicando con un Display 7 segmentos En esta ocasión mostrare y explicare lo que realice con Arduino y un Display de 7 segmentos; la practica consiste en controlar el Display y mostrar una secuencia del 0 al 9 de manera ascendente. Material o
Arduino UNO
o o o o
Protoboard Cables Resistencia de 220 ohms un Display de 7 segmentos, cátodo común
Lo primero que hay que mencionar es, cuales serán las conexiones del Display hacia el Arduino, a continuación las conexiones:
Esquema
Conexiones: o o o o o o o
Pin "a" - Digital 7 Pin "b" - Digital 8 Pin "c" - Digital 9 Pin "d" - Digital 10 Pin "e" - Digital 11 Pin "f" - Digital 12 Pin "g" - Digital 13
Después de hacer las conexiones, si no es muy fácil de entender el esquema, enseguida se muestra el montaje del circuito.
Montaje de Circuito:
Enseguida mostrare el codigo del programa que sera subido al Arduino, en donde esta documentado para entender la sintaxis.
Código:
El código fue documentado, para visualizar bien las partes del código. A continuación se muestra el vídeo donde se visualiza la secuencia de números del 0 al 9. Vídeo
En el vídeo se ve claramente la secuencia que va de manera ascendente del 0 al 9 . Despues seran mostrados mas tutoriales donde sera utilizado el Arduino. Publicado 15th May 2012 por Rene Camacho 3. May 6
Arduino - Led RGB Como antes ya lo habia echo, publicando diferentes practicas que he realizado con arduino, aqui tengo una practica mas. En esta practica lo que se realizo fue controlar un LED RGB y donde se muestran 3 colores: verde, rojo y azul Material: o o o o o
Protoboard Cables Resistencias 220 LED RGB Arduino
Montaje de circuito
Enseguida mostrare el codigo del programa que sera subido al Arduino, en donde esta documentado para entender la sintaxis.
El codigo esta documentado como se muestra, y se menciona cuales colores fueron declarados y que seran mostrados en el LED RGB. A continuacion se muestra varias imagenes donde se muestran como quedo este pequeño ejemplo en Arduino.
Imagenes
Aqui se muestra como fue montado el circuito, se muestra el arduino y sus respectivas conexiones hacia el protoboard donde esta el LED RGB.
En las siguientes imagenes se muestran los diferentes colores que se generan con el LED RGB.
Rojo
Verde
Azul
Despues seran mostrados mas tutoriales donde sera utilizado el Arduino. Publicado 6th May 2012 por Rene Camacho 4. May 6
Arduino - Control de intensidad de un LED
Ahora en esta entrada mostrare la practica de "Control de intensidad de un LED", donde es usado una Mini fotocelda, el cual es usado para detectar luz. Esta practica consistira en controlar la intensidad de un LED y se usara la luz para demostrarlo. Material o o o o o o
Arduino UNO Una Mini fotocelda LED Cables Resistencias 220 y 10K Protoboard
Montaje de circuito
Enseguida mostrare el codigo del programa que sera subido al Arduino, en donde esta documentado para entender la sintaxis.
Se muestran los ciclos usados en el codigo para recibir los valores de la lectura analoga de la minifotocelda, luego se realiza una conversion y se muestran los datos obtenidos A continuacion se muestra un video donde se muestra como quedo este pequeño ejemplo en Arduino.
Video
En el video se distingue como funciona la mini fotocelda combinada con un LED; se muestra cuando hay luz y el LED baja su intensidad, pasa lo contrario cuando no hay luz, ya que sube la intensidad del LED. Despues seran mostrados mas tutoriales donde sera utilizado el Arduino. Publicado 6th May 2012 por Rene Camacho 5. Apr 29
Arduino - Generando Sonido Anteriormente realice una practica con arduino, la cual era prender y apagar un LED, aqui una nueva entrada, donde explicare como realice otra practica con arduino, el cual consiste en generar sonido con un Buzzer de 12mm y un Potenciomentro rotacional Lineal.
Material o o
Arduino Uno Un Buzzer 12 mm 2.048kHz
o o o
Potenciometro Cables Protoboard
Nuevamente, fue necesario hacer uso de un protobard para abarcar mas espacio para mas conexiones.
Montaje de Circuito:
Enseguida mostrare el codigo del programa que sera subido al Arduino, en donde esta documentado para entender la sintaxis.
En el codigo anterior se documento, donde se muestra donde estan declarados los puertos de entrada y salida, el ciclo que es usado para el potenciometro, la frecuencia y la duracion; al ultimo se indica donde termina el programa. A continuacion se muestra un video donde se muestra como quedo este pequeño ejemplo en Arduino. Video:
En el video se distingue cuando se usa el potenciometro y se genera el sonido en el buzzer, el cual puede ser fuerte o bajo el sonido. Despues seran mostrados mas tutoriales donde sera utilizado el Arduino. Publicado 29th April 2012 por Rene Camacho 6. Apr 25
Memoria Extra en Arduino La mayoría de los microcontroladores tienen una capacidad de memoria interna limitada. Por ejemplo, el corazón de la placa Arduino Mega posee una memoria EEPROM interna de 4Kbytes, lo que es algo limitado si se quiere trabajar con algo muy avanzado. A continuacion se mostrara las diferentes formas de agregar memoria externa al arduino:
Arduino - SD Card
Si tenes un proyecto que necesite trabajar con audio, vídeo, gráficos, almacenamiento de datos, etc., la mejor opción es utilizar algún tipo de medio de almacenamiento removible. Cualquier aplicación de las nombradas anteriormente necesitan como mínimo manejar 1Mbyte, para conseguir esto utilizaremos las tarjetas flash (SD, microSD),populares hoy en día y que se pueden encontrar en reproductores de música y cámaras fotográficas. Estás tarjetas permiten almacenar varios GBytes de datos en un espacio muy reducido, muchas veces más pequeño que una moneda. Hay algunas cosas útiles que puedes hacer con SD: o o o
o o
o o o o o
Si lo que desea es comprobar si existe un archivo, utilice SD.exists ("archivo.txt") , que devolverá verdadero o falso. Puede eliminar un archivo llamado SD.remove ("unwanted.txt") - ¡ten cuidado! Esto realmente va a borrar, y no hay 'basura' para salir de la. Usted puede crear un subdirectorio llamando SD.mkdir ("/ mynewdir") útil cuando se quiere meter archivos en una ubicación. No pasa nada si ya existe, pero usted siempre puede llamar SD.exists () encima de la primera Además, hay algunas cosas útiles que puedes hacer con el archivo de los objetos: Usted puede buscar () en un archivo. Esto moverá la lectura / escritura de puntero a una nueva ubicación. Por ejemplo, busca (0 ) le llevará al principio del archivo, que puede ser muy útil! Del mismo modo se puede llamar a la posición () que le dirá dónde se encuentra en el archivo. Si desea saber el tamaño de un archivo, llame a size () para obtener el número de bytes en el archivo. Directorios o carpetas de archivos especiales, se puede determinar si un archivo es un directorio llamando isDirectory () Una vez que tenga un directorio, puede empezar a ir a través de todos los archivos en el directorio llamando openNextFile () Usted puede terminar con la necesidad de conocer el nombre de un archivo, por ejemplo si se llama a openNextFile () en un directorio. En este caso, llame a nombre de () que devolverá un puntero a la matriz de caracteres en formato 8.3 puede directamente Serial.print () si lo desea.
Como quedaría la conexión:
Aqui un Tutorial para montar el Arduino con un SD Card: http://www.ladyada.net/products/microsd/ Arduino - EEPROM
Arduino tiene una memoria no volátil de tan sólo 512 bytes, que puede ser insuficiente en algunos casos. Pero podemos usar una EEPROM externa, serie 24LC256 que tiene una capacidad de 256 Kbit (32K x 8 bytes). La comunicación entre Arduino y la EEPROM se realiza mediante el bus I2C , que se trata de un bus de comunicaciones serie formado por dos lineas: una para los datos y otra para el reloj. La librería Wire permite manejar un bus I2C desde nuestro Arduino, y en este artículo del wiki encontramos 4 funciones que usando la librería anterior implementan la lectura/escritura en la EEPROM. El parámetro deviceaddress al que hacen referencia estas funciones en el caso de esta memoria se trata del 0×50.
Conexiones:
En cuanto a las conexiones de los pines: el pin 5 de la EEPROM (SDA) lo conectamos a la entrada analógica 4 de nuestro Arduino, el pin 6 (SCL) a la entrada analógica 5 (observar en la foto que los cables de color naranja se cruzan), el pin 8 a 5V y todos los demás a tierra. Los pines analógicos 4 y 5 de Arduino son los que usa la librería Wire.
Como quedaria la conexion:
Arduino - Spi RAM
Si necesitas más espacio de almacenamiento y sólo tendrás que conservar los datos, mientras que el Arduino se alimenta, solo faltaria añadir memoria RAM. El 23K256 es un chip de SRAM de 32K, que utiliza una interfaz SPI. Hay dos versiones de la SpiRAM biblioteca: Spi RAM 2:
Esta es la nueva versión.
Spi RAM: Esta es la versión original.
Ambas versiones de la biblioteca de implementar una clase llamada SpiRAM , que ofrece un montón de lectura / escritura de los métodos. El 23k256 tiene tres modos de funcionamiento: el modo Byte (r / w de un byte a la vez), el modo de página (R / W en las páginas de 32 bytes) y el modo de corriente (R / W abitrary número de bytes).
Codigo de Ejemplo
void setup() { Serial.begin(9600); } void loop() { char data_to_chip[17] = "Testing 90123456"; char data_from_chip[17] = " "; int i = 0; // Write some data to RAM
SpiRam.write_stream(0, data_to_chip, 16); delay(100); // Read it back to a different buffer
SpiRam.read_stream(0, data_from_chip, 16); // Write it to the serial port
for (i = 0; i < 16; i++) { Serial.print(data_from_chip[i]); }
Serial.print("\n"); delay(1000);
// wait for a second
}
Hay diferentes formas de agregar memoria, pero estas fueron las mas claras, y tal vez las mas usadas en cuestión cuando es necesario agregar mas espacio a un Arduino. Referencias: o o o
http://www.ladyada.net/products/microsd/ http://arduino.cc/playground/Main/SpiRAM http://kans01.wordpress.com/2008/03/13/usando-una-memoria-eepromdesde-arduino/
Publicado 25th April 2012 por Rene Camacho 7. Apr 18
Arduino - Prender un LED Anteriormente hice algunas publicaciones sobre Arduino y sus componentes, y algo de teoría; a continuación mostrare la primera practica que realice con Arduino, la cual fue la siguiente: Material: o o o o o
Arduino Uno Un LED Cables Resistencia 1K Protoboard
Fue necesario hacer uso de un protobard para abarcar mas espacio. El montaje del circuito fue el siguiente:
Enseguida se muestra el codigo del programa que sera subido al Arduino, en donde esta documentado para entender la sintaxis. Código:
En el codigo anterior se documento, donde se muestra donde estan declarados los puertos de entrada y salida, la funcion principal, el ciclo que es usado para el push button y al ultimo se indica donde termina el programa. A continuacion se muestra un video donde se muestra como quedo este pequeño ejemplo en Arduino. Video:
En el video se distingue cuando es oprimido el boton y donde se prende y apaga el LED. Despues seran mostrados mas tutoriales donde sera utilizado el Arduino. Publicado 18th April 2012 por Rene Camacho 8. Apr 9
Arquitectura von Neumann y arquitectura Harvard Hay dos arquitecturas distintas relacionadas con el uso y distribución de la memoria: Arquitectura de von Neumman y Arquitectura Harvard. Arquitectura de von Neumann : Tradicionalmente los sistemas con
microprocesadores se basan en esta arquitectura, en la cual la unidad central de proceso (CPU), está conectada a una memoria principal única (casi siempre sólo RAM) donde se guardan las instrucciones del programa y los datos. A dicha memoria se accede a través de un sistema de buses único (control, direcciones y datos).
En un sistema con arquitectura Von Neumann el tamaño de la unidad de datos o instrucciones está fijado por el ancho del bus que comunica la memoria con la CPU. Así un microprocesador de 8 bits con un bus de 8 bits, tendrá que manejar datos e instrucciones de una o más unidades de 8 bits (bytes) de longitud. Si tiene que acceder a una instrucción o dato de más de un byte de longitud, tendrá que realizar más de un acceso a la memoria. El tener un único bus hace que el microprocesador sea más lento en su respuesta,
ya que no puede buscar en memoria una nueva instrucción mientras no finalicen las transferencias de datos de la instrucción anterior. Las principales limitaciones que nos encontramos con la arquitectura Von Neumann son: o
o
La limitación de la longitud de las instrucciones por el bus de datos, que hace que el microprocesador tenga que realizar varios accesos a memoria para buscar instrucciones complejas. La limitación de la velocidad de operación a causa del bus único para datos e instrucciones que no deja acceder simultáneamente a unos y otras, lo cual impide superponer ambos tiempos de acceso
Los ordenadores con arquitectura Von Neumann constan de las siguientes partes:
La arquitectura Von Neumann realiza o emula los siguientes pasos secuencialmente: 1) Obtiene la siguiente instrucción desde la memoria en
la dirección indicada por el contador de programa y la guarda en el registro de instrucción. 2) Aumenta el contador de programa en la longitud de la instrucción para
apuntar a la siguiente. 3) Descodifica la instrucción mediante la unidad de control.
Ésta se encarga de coordinar el resto de componentes del ordenador para realizar una función determinada. 4) Se ejecuta la instrucción. Ésta puede cambiar el
programa, permitiendo así operaciones repetitivas. 5) Regresa al paso N° 1. Conclusión:
valor del contador del
* La mayoría de las computadoras todavía utilizan la arquitectura Von Neumann, propuesta a principios de los años 40 por John Von Neumann. * La arquitectura Von Neumann describe a la computadora con 4 secciones principales: la unidad lógica y aritmética (ALU), la unidad de control, la memoria, y los dispositivos de entrada y salida (E/S). * En este sistema, la memoria es una secuencia de celdas de almacenamiento numeradas, donde cada una es un bit, o unidad de información. La instrucción es la información necesaria para realizar, lo que se desea, con la computadora. Las celdas contienen datos que se necesitan para llevar a cabo las instrucciones, con la computadora. * El tamaño de cada celda y el número de celdas varía mucho de computadora a computadora, y las tecnologías empleadas para la memoria han cambiado bastante; van desde los relés electromecánicos, tubos llenos de mercurio en los que se formaban los pulsos acústicos, matrices de imanes permanentes, transistores individuales a circuitos integrados con millones de celdas en un solo chip.
Arquitectura Harvard: Este modelo, que utilizan los Microcontroladores PIC,
tiene la unidad central de proceso (CPU) conectada a dos memorias (una con las instrucciones y otra con los datos) por medio de dos buses diferentes.
Una de las memorias contiene solamente las instrucciones del programa (Memoria de Programa), y la otra sólo almacena datos (Memoria de Datos). Ambos buses son totalmente independientes lo que permite que la CPU pueda acceder de forma independiente y simultánea a la memoria de datos y a la de instrucciones. Como los buses son independientes estos pueden tener distintos contenidos en la misma dirección y también distinta longitud. Tambien la longitud de los datos y las instrucciones puede ser distinta, lo que optimiza el uso de la memoria en general. Para un procesador de Set de Instrucciones Reducido, o RISC (Reduced Instrucción Set Computer), el set de instrucciones y el bus de memoria de
programa pueden diseñarse de tal manera que todas las instrucciones tengan una sola posición de memoria de programa de longitud. Además, al ser los buses independientes, la CPU puede acceder a los datos para completar la ejecución de una instrucción, y al mismo tiempo leer la siguiente instrucción a ejecutar. Ventajas de esta arquitectura: * El tamaño de las instrucciones no esta relacionado con el de los datos, y por lo
tanto puede ser optimizado para que cualquier instrucción ocupe una sola posición de memoria de programa, logrando así mayor velocidad y menor longitud de programa. * El tiempo de acceso a las instrucciones puede superponerse con el de los datos, logrando una mayor velocidad en cada operación. Referencias: o o
monografias.com/trabajos28/arquitectura-von-neumann/arquitecturavon-neumann www.fing.edu.uy/tecnoinf/cursos/arqcomp/material/teorico/arqteorico05.pdf
Publicado 9th April 2012 por Rene Camacho 9. Mar 25
Proyecto Integrador 1: "Comparación de Números" Objetivo: o
Generar 2 números aleatorios e imprimirlos en 2 Displays y comparar cual es el numero mayor y cual es el numero menor mediante 2 LEDs .
Materiales:
Los componentes que se utilizaron para el proyecto fueron: o o o o o o
Microcontrolador PIC16F628A 2 Decodificadores bcd 7448
2 Displays de 7 segmentos, Cátodo Común 10 resistencias de carbón de 1/2 Watts 2 LEDs Un Protoboard (Placa de Pruebas)
Procedimiento para Armado de Circuito:
Lo Primero que se hizo fue armar el circuito, pero primero, se realizo el siguiente diagrama para iniciar: Diagrama del circuito:
Después de hacer el esquema, se empezó a realizar el circuito en el Protoboard, pero antes, tenemos que saber como va conectado el decodificador en conjunto con el Display y el PIC.
Trabajando en el armado del decodificador con el Display: o
Primero, se debe investigar cual es el diagrama del Decodificador, en este caso se utilizo el 4778, ya que es usado para Displays Cátodo Común, que fueron usados en este proyecto.
o
Primero fueron conectados las entradas A1, A2, A3 y A0 hacia el PIC, que son los que reciben los números binarios. La entrada A1 fue conectado al pin 7 del PIC, A2 fue conectado al pin 8, A3 fue conectado al pin 9 y el A0 fue conectado al pin 6.
Aquí la muestra de como quedaron conectados el PIC y el Decodificador:
o
o
o
Lo que hace el decodificador es: recibe los números binarios, se encarga en decodificarlos y los envía por los pines de salida, para después mostrarlos en el Display. Los pines de salida del 4778 son F, G, A, B, C y D, y fueron conectados a los pines del display, los cuales 7 corresponden a cada segmento, que son A, B, C, D, E, F, y G.
El pin F se conecto al segmento F del display, y asi sucesivamente (pin A con segmento A, pin B con segmento B, etc.)
Aquí la muestra de como quedaron conectados el decodificador y el Display:
o
Aquí el ejemplo de como quedaría la " Tabla de la verdad" donde se muestran como serian decodificadores los números binarios a decimal:
Después de tener los decodificadores conectados hacia los Displays, se realiza el paso de programar el PIC.
Programación del PIC:
Primero fue crear el código, se realizo en el lenguaje Basic y para compilarlo se utilizo Mikrobasic.
El código es el siguiente:
Primero se compila, luego se genera un el archivo .hex del código; esto se puede lograr con el IDE donde se realizara el código, que en este caso fue Mikrobasic PRO for PIC.
Después de esto, el PIC se programara con el "PIC-600" US - Burn, que es el siguiente:
Aquí un diagrama de lo que pasa al momento de compilar y pasar al código al PIC:
Alguna duda, aquí en el blog pregunten o por medio del correo de Gmail.
Aquí el Resultado del proyecto: o
Se demuestra cual es numero mayor, cuando se enciende el LED
o
4 es mayor que 2
o
8 es mayor que 0
o
6 es mayor que 3
Publicado 25th March 2012 por Rene Camacho Etiquetas: Clase Computo Integrado 10. Mar 17
Arquitectura RISC y CISC A que nos referimos a las Arquitecturas RISC y CISC ... Una de las primeras decisiones a la hora de diseñar un microprocesador es decidir cual será su juego de instrucciones. La decisión por dos razones; primero, el juego de instrucciones decide el diseño físico del conjunto; segundo, cualquier operación que deba ejecutarse en el microprocesador deberá poder ser descrita en términos de un lenguaje de estas instrucciones. Frente a esta cuestión caben dos filosofías de diseño; máquinas denominadas CISC y máquinas denominadas RISC.
Cuando hablamos de microprocesadores CISC, computadoras con un conjunto de instrucciones complejo, (del inglés complex instruction set computer), y procesadores RISC, computadoras con un conjunto de instrucciones reducido, (del inglés reduced instruction set computer), se piensa que los atributos complejo y reducido describen las diferencias entre los dos modelos de arquitectura para microprocesadores. Esto es cierto solo de forma superficial, pues se requiere de muchas otras características esenciales para definir los RISC y los CISC. Hasta hace solo algunos años, la división era tajante: RISC se utilizaba para entornos de red, mientras que CISC se aplicaba en ordenadores domésticos. Pero en la actualidad se alzan voces que afirman que CISC está agotando sus posibilidades, mientras otras defienden fervientemente que CISC ya ha alcanzado a RISC, adoptando algunas de sus principales características.
Arquitectura RISC
En la arquitectura computacional, RISC (del inglés reduced instruction set computer) es un tipo de microprocesador con las siguientes características fundamentales: o o
Instrucciones de tamaño fijo y presentadas en un reducido número de formatos. Sólo las instrucciones de carga y almacenamiento acceden a la memoria de datos.
El objetivo de diseñar máquinas con esta arquitectura es posibilitar la segmentación y el paralelismo en la ejecución de instrucciones y reducir los accesos a memoria.
Las máquinas RISC protagonizan la tendencia actual de construcción de microprocesadores. PowerPC, DEC Alpha, MIPS, ARM, SPARC... son ejemplos de algunos de ellos. RISC es una filosofía de diseño de CPU para computadora que está a favor de conjuntos de instrucciones pequeñas y simples que toman menor tiempo para ejecutarse. El tipo de procesador más comúnmente utilizado en equipos de escritorio, el x86, está basado en CISC en lugar de RISC, aunque las versiones más nuevas traducen instrucciones basadas en CISC x86 a instrucciones más simples basadas en RISC para uso interno antes de su ejecución. La idea fue inspirada por el hecho de que muchas de las características que eran incluidas en los diseños tradicionales de CPU para aumentar la velocidad estaban siendo ignoradas por los programas que eran ejecutados en ellas. Además, la velocidad del procesador en relación con la memoria de la computadora que accedía era cada vez más alta. Esto con llevó la aparición de numerosas técnicas para reducir el procesamiento dentro del CPU, así como de reducir el número total de accesos a memoria. Caracteristicas:
En pocas palabras esto significa que para cualquier nivel de desempeño dado, un chip RISC típicamente tendrá menos transistores dedicados a la lógica principal. Esto permite a los diseñadores una flexibilidad considerable; así pueden, por ejemplo: o
Incrementar el tamaño del conjunto de registros.
o o o o o o
Mayor velocidad en la ejecución de instrucciones. Implementar medidas para aumentar el paralelismo interno. Añadir cachés enormes. Añadir otras funcionalidades, como E/S y relojes para minicontroladores. Construir los chips en líneas de producción antiguas que de otra manera no serían utilizables. No ampliar las funcionalidades, y por lo tanto ofrecer el chip para aplicaciones de bajo consumo de energía o de tamaño limitado.
Las características que generalmente son encontradas en los diseños RISC son: o o
o o o
Codificación uniforme de instrucciones, lo que permite una de codificación más rápida. Un conjunto de registros homogéneo, permitiendo que cualquier registro sea utilizado en cualquier contexto y así simplificar el diseño del compilador. Modos de direccionamiento simple con modos más complejos reemplazados por secuencias de instrucciones aritméticas simples. Los tipos de datos soportados en el hardware no se encuentran en una máquina RISC. Los diseños RISC también prefieren utilizar como característica un modelo de memoria Harvard, donde los conjuntos de instrucciones y los conjuntos de datos están conceptualmente separados.
RISC Moderno:
Los diseños RISC han llevado a un gran número de plataformas y arquitecturas al éxito, algunas de las más grandes: o
o o
o
o
La línea MIPS Technologies Inc., que se encontraba en la mayoría de las computadoras de Silicon Graphics hasta 2006, y estuvo en las consolas ya descatalogadas Nintendo 64, PlayStation y PlayStation 2. Actualmente se utiliza en la PlayStation Portable y algunos routers. La serie IBM POWER, utilizado principalmente por IBM en Servidores y superordenadores. La versión PowerPC de Motorola e IBM (una versión de la serie IBM POWER) utilizada en los ordenadores AmigaOne, Apple Macintosh como el iMac, eMac, Power Mac y posteriores (hasta 2006). Actualmente se utiliza en muchos sistemas empotrados en automóviles, routers, etc, así como en muchas consolas de videojuegos, como la Playstation 3, Xbox 360 y Wii. El procesador SPARC y UltraSPARC de Sun Microsystems y Fujitsu, que se encuentra en sus últimos modelos de servidores (y hasta 2008 también en estaciones de trabajo). El PA-RISC y el HP/PA de Hewlett-Packard, ya descatalogados.
o o
o o
o
El DEC Alpha en servidores HP AlphaServer y estaciones de trabajo AlphaStation, ya descatalogados. El ARM – El paso de hardware de instrucciones x86 en operaciones RISC llega a ser significativo en el área y la energía para dispositivos móviles e integrados. Por lo tanto, los procesadores ARM dominan en PALM, Nintendo DS, Game Boy Advance y en múltiples PDAs, Apple iPods, Apple iPhone, iPod Touch (Samsung ARM1176JZF, ARM Cortex-A8, Apple A4), Apple iPad (Apple A4 ARM -based SoC), videoconsolas como Nintendo DS (ARM7TDMI, ARM946E-S), Nintendo Game Boy Advance (ARM7TDMI). El Atmel AVR usado en gran variedad de productos, desde mandos de la Xbox a los coches de la empresa BMW. La plataforma SuperH de Hitachi, originalmente usada para las consolas Sega Super 32X, Saturn y Dreamcast, ahora forman parte de el corazon de muchos equipos electrónicos para el consumo.SuperH es la plataforma base de el grupo Mitsubishi - Hitachi. Estos dos grupos, unidos en 2002, dejaron aparte la propia arquitectura RISC de Mitsubishi, el M32R. Los procesadores XAP usados en muchos chips wireless de poco consumo (Bluetooth, wifi) de CSR.
Entre las ventajas de RISC tenemos las siguientes: o o
o
La CPU trabaja mas rápido al utilizar menos ciclos de reloj para ejecutar instrucciones. Utiliza un sistema de direcciones no destructivas en RAM. Eso significa que a diferencia de CISC, RISC conserva después de realizar sus operaciones en memoria los dos operandos y su resultado, reduciendo la ejecución de nuevas operaciones. Cada instrucción puede ser ejecutada en un solo ciclo del CPU
Arquitectura CISC
En la arquitectura computacional, CISC (complex instruction set computer) es un modelo de arquitectura de computadora. Los microprocesadores CISC tienen un conjunto de instrucciones que se caracteriza por ser muy amplio y permitir operaciones complejas entre operandos situados en la memoria o en los registros internos, en contraposición a la arquitectura RISC.
Este tipo de arquitectura dificulta el paralelismo entre instrucciones, por lo que, en la actualidad, la mayoría de los sistemas CISC de alto rendimiento implementan un sistema que convierte dichas instrucciones complejas en varias instrucciones simples del tipo RISC, llamadas generalmente microinstrucciones. Los CISC pertenecen a la primera corriente de construcción de procesadores, antes del desarrollo de los RISC. Ejemplos de ellos son: Motorola 68000, Zilog Z80 y toda la familia Intel x86 usada en la mayoría de las computadoras personales actuales. Para realizar una sola instrucción un chip CISC requiere de cuatro a diez ciclos de reloj.
Entre las ventajas de CISC destacan las siguientes: o o o o o
Reduce la dificultad de crear compiladores. Permite reducir el costo total del sistema. Reduce los costos de creación de sftware. Mejora la compactación de código. Facilita la depuración de errores.
Ejemplo de microprocesadores basados en la tecnología CISC: o o
Intel 8086, 8088, 80286, 80386, 80486. Motorola 68000, 68010, 68020, 68030, 6840.
Ejemplo de microprocesadores basados en la tecnología CISC: o o o o
MIPS, Millions Instruction Per Second. PA-RISC, Hewlett Packard. SPARC, Scalable Processor Architecture, Sun Microsystems. POWER PC, Apple, Motorola e IBM.
Conclusión:
Hoy en día, los programas cada vez más grandes y complejos demandan mayor velocidad en el procesamiento de información, lo que implica la búsqueda de microprocesadores más rápidos y eficientes.