miércoles, 4 de diciembre de 2013


5.4. Aplicaciones de los microcontroladores

Cada vez existen más productos que incorporan un microcontrolador con el fin de aumentar sustancialmente sus prestaciones, reducir su tamaño y coste, mejorar su fiabilidad y disminuir el consumo.
Algunos fabricantes de microcontroladores superan el millón de unidades de un modelo determinado producidas en una semana. Este dato puede dar una idea de la masiva utilización de estos componentes.
Los microcontroladores están siendo empleados en multitud de sistemas presentes en nuestra vida diaria, como pueden ser juguetes, horno microondas, frigoríficos, televisores, computadoras, impresoras, módems, el sistema de arranque de nuestro coche, etc. Y otras aplicaciones con las que seguramente no estaremos tan familiarizados como instrumentación electrónica, control de sistemas en una nave espacial, etc. Una aplicación típica podría emplear varios microcontroladores para controlar pequeñas partes del sistema. Estos pequeños controladores podrían comunicarse entre ellos y con un procesador central, probablemente más potente, para compartir la información y coordinar sus acciones, como, de hecho, ocurre ya habitualmente en cualquier PC.




5.3. Características y uso de elementos del microcontrolador

Los microcontroladores son diseñados para reducir el costo económico y el consumo de energía de un sistema en particular. El tamaño de la unidad central de procesamiento, la cantidad de memoria y los periféricos incluidos dependerán de la aplicación. 
Puertos de comunicación
Puerto serie
Este periférico está presente en casi cualquier microcontrolador, normalmente en forma de UART (Universal Asynchronous Receiver Transmitter) o USART (Universal Synchronous Asynchronous Receiver Transmitter) dependiendo de si permiten o no el modo sincrónico de comunicación.
El destino común de este periférico es la comunicación con otro microcontrolador o con una PC y en la mayoría de los casos hay que agregar circuitos externos para completar la interfaz de comunicación. La forma más común de completar el puerto serie es para comunicarlo con una PC mediante la interfaz EIA-232 (más conocida como RS-232), es por ello que muchas personas se refieren a la UART o USART como puerto serie RS-232, pero esto constituye un error, puesto que este periférico se puede utilizar para interconectar dispositivos mediante otros estándares de comunicación.
SPI
Este tipo de periférico se utiliza para comunicar al microcontrolador con otros microcontroladores o con periféricos externos conectados a él, por medio de una interfaz muy sencilla. Hay solo un nodo controlador que permite iniciar cualquier transacción, lo cual es una desventaja en sistemas complejos, pero su sencillez permite el aislamiento galvánico de forma directa por medio de opto acopladores.
I2C
Cumple las mismas funciones que el SPI, pero requiere menos señales de comunicación y cualquier nodo puede iniciar una transacción. Es muy utilizado para conectar las tarjetas gráficas de las computadoras personales con los monitores, para que estos últimos informen de sus prestaciones y permitir la autoconfiguración del sistema de vídeo.



USB
Los microcontroladores son los que han permitido la existencia de este sistema de comunicación. Es un sistema que trabaja por polling (monitorización) de un conjunto de periféricos inteligentes por parte de un amo, que es normalmente un computador personal. Cada modo inteligente está gobernado inevitablemente por un microcontrolador.

Temporizadores y contadores
Son circuitos sincrónicos para el conteo de los pulsos que llegan a su poder para conseguir la entrada de reloj. Si la fuente de un gran conteo es el oscilador interno del microcontrolador es común que no tengan un pin asociado, y en este caso trabajan como temporizadores. Por otra parte, cuando la fuente de conteo es externa, entonces tienen asociado un pin configurado como entrada, este es el modo contador.
Los temporizadores son uno de los periféricos más habituales en los microcontroladores y se utilizan para muchas tareas, como por ejemplo, la medición de frecuencia, implementación de relojes, para el trabajo de conjunto con otros periféricos que requieren una base estable de tiempo entre otras funcionalidades. Es frecuente que un microcontrolador típico incorpore más de un temporizador/contador e incluso algunos tienen arreglos de contadores. Como veremos más adelante este periférico es un elemento casi imprescindible y es habitual que tengan asociada alguna interrupción. Los tamaños típicos de los registros de conteo son 8 y 16 bits, pudiendo encontrar dispositivos que solo tienen temporizadores de un tamaño o con más frecuencia con ambos tipos de registro de conteo.
Conversor analógico/digital
Como es muy frecuente el trabajo con señales analógicas, éstas deben ser convertidas a digital y por ello muchos microcontroladores incorporan un conversor analógico-digital, el cual se utiliza para tomar datos de varias entradas diferentes que se seleccionan mediante un multiplexor.
Las resoluciones más frecuentes son 8 y 10 bits, que son suficientes para aplicaciones sencillas. Para aplicaciones en control e instrumentación están disponibles resoluciones de 12bit, 16bit y 24bit.También es posible conectar un convertidor externo, en caso de necesidad




5.2. Conjunto de instrucciones y lenguaje ensamblador

Tipo
Instrucción del 8088
Comentarios
Aritmética
Lógica

Transferencia

Carga

Salto


Loop


Stack

Conteo

Comparación

Bandera
ADC, ADD, DIV, IDIV, IMUL, MUL, SBB, SUB
AND, NEG, NOT, OR, TEST, XOR

MOV, MOVS (MOVSB) (MOVSW)

LODS (LODSB) (LODSW), LAHF, LDS, LEA, LES

JA (JNBE), JAE (JNB) (JNC), JB, (JNAE) (JC), JBE (JNA), JCXZ, JE, (JZ), JG (JNLE), JGE (JNL), JL, (JNGE), JLE (JNG), JMP, JNE, (JNZ), JNO, JNP (JPO), JNS, JO, JP (JPE), IS

LOOP, LOOPE (LOOPZ), LOOPNE (LOOPNZ)


POP, POPF, PUSH, PUSHF

DEC, INC

CMP, CMPS, (CMPSB) (CMPSW)

CLC, CLD, CLI, CMC, STC, STD, STI
Estas instrucciones se utilizan para realizar operaciones aritméticas sobre los operandos fuente y destino.
Utilizadas para realizar operaciones lógicas sobre los operandos.
El movimiento del contenido del operando se realiza utilizando estas instrucciones. Cada instrucción se puede utilizar con diferentes modos de direccionemiento.
Se utiliza para cargar en los diferentes registros bytes o cadenas de bytes. Son específicas del registro.

Estas instrucciones transfieren el flujo del proceso al operando indicando. La transferencia puede ser incondicional o dependiente de la existencia de ciertas condiciones, en el momento que se ejecuta un salto.

Permite la transferencia, ya sea condicional o incondicional, del flujo del proceso a un destino hasta que el contador del loop se decrementa hasta cero.

Estas instrucciones proporcionan las localidades para colocar operandos y direcciones y retirarlos del stack.

Instrucciones empleadas para incrementar o decrementar el contenido de los contadores.

Utilizadas para comparar operandos. Afectan el estado de las banderas.

Afectan el estado de las banderas.

5.1. Organización del microcontrolador

Los microcontroladores son computadores digitales integrados en un chip que cuentan con un microprocesador o unidad de procesamiento central (CPU), una memoria para almacenar el programa, una memoria para almacenar datos y puertos de entrada salida. A diferencia de los microprocesadores de propósito general, como los que se usan en los computadores PC, los microcontroladores son unidades autosuficientes y más económicas.
Características que lo destacan
*      Es el encargado de ejecutar los programas, desde el sistema operativo hasta las aplicaciones de usuario; sólo ejecuta instrucciones programadas en lenguaje de bajo nivel, realizando operaciones aritméticas y lógicas simples, tales como sumar, restar, multiplicar, dividir, las lógicas binarias y accesos a memoria.

*      El microprocesador es el cerebro del ordenador. Se encarga de realizar todas las operaciones de cálculo y descontrolar lo que pasa en el ordenador recibiendo información y dando órdenes para que los demás elementos trabajen. Es el jefe del equipo y, a diferencia de otros jefes, es el que más trabaja. 

*      Los dispositivos de entrada pueden ser un teclado, un interruptor, un sensor, etc.
*      Los dispositivos de salida pueden ser LED's, pequeños parlantes, zumbadores, interruptores de potencia(tiristores, opto acopladores), u otros dispositivos como relés, luces, un secador de pelo, en fin.. lo que quieras

Unidad 5 Arquitecturas embebidas o micro controladores

4.4. Desempeño de las computadoras actuales

El rendimiento del procesador puede ser medido de distintas maneras, hasta hace pocos años se creía que la frecuencia de reloj era una medida precisa, pero ese mito, conocido como  mito de los mega hertzios se ha visto desvirtuado por el hecho de que los procesadores no han requerido frecuencias más altas para aumentar su potencia de cómputo.

Durante los últimos años esa frecuencia se ha mantenido en el rango de los 1,5 GHz a 4 GHz, dando como resultado procesadores con capacidades de proceso mayores comparados con los primeros que alcanzaron esos valores. Además la tendencia es a incorporar más núcleos dentro de un mismo encapsulado para aumentar el rendimiento por medio de una computación paralela, de manera que la velocidad de reloj es un indicador menos fiable aún. De todas maneras, una forma fiable de medir la potencia de un procesador es mediante la obtención de las Instrucciones por ciclo.

4.3. Las características de los chipsets actuales

635 Express: Intel Core II con los ICH8R o ICH8DH tecnología inter de virtualización 1.1 con 8 Gb de ancho de banda.
x38 Express :  Core II dúo e Core II quak, Pci express 2.0, 16 Gb de ando de banda, gráficos 16x
P956 Express :  Compatible con Core II dúo, Intel Pentium D y con tecnología H4 Intel Celeron zócalo LGA775 futuro procesador 3.5 veces en ancho de banda en interfaz AGP8x
x58 Express : Tecnología Quick-Path compatibilidad Core i7-965, i7-940 express 2.0 de 16 Gb/s
G41 Express : Compatibilidad Core II dúo e Intel Core II quack es PCI express 1.1 y 8Gb/s para gráficos 3D

4.2. Las mejoras en la evolución de los chipsets

Año

Descripción



1978



Intel 8086
Los Intel 8086 e Intel 8088 (i8086, llamado oficialmente iAPX 86, e i8088) son dos microprocesadores de 16 bits diseñados por Intel en 1978, iniciadores de la arquitectura x86. La diferencia entre el i8086 y el i8088 es que este último utiliza un bus externo de 8 bits, para poder emplear circuitos de soporte al microprocesador más económicos, en contraposición al bus de 16 bits del i8086.



1982



chipset 80186
Los Intel 80186 y 80188 (i80186 e i81088) son dos microprocesadores que fueron desarrollados por Intel alrededor de 1982. Los i80186 e i80188 son una mejora del Intel 8086 y del Intel 8088 respectivamente. Al igual que el i8086, el i80186 tiene un bus externo de 16 bits, mientras que el i80188 lo tiene de 8 bits como el i8088, para hacerlo más económico. La velocidad de reloj del i80186 e i80188 es de 6 MHz.


1983


chipset ARM2
La arquitectura del ARM2 posee un bus de datos de 32 bits y ofrece un espacio de direcciones de 26 bits, junto con 16 registros de 32 bits. Uno de estos registros se utiliza como contador de programa, aprovechándose sus 4 bits superiores y los 2 inferiores para contener los flags de estado del procesador.



1995



pentium pro
El Pentium Pro es la sexta generación de arquitectura x86 de los microprocesadores de Intel, cuya meta era remplazar al Intel Pentium en toda la gama de aplicaciones, pero luego se centró como chip en el mundo de los servidores y equipos de sobremesa de gama alta. Posteriormente Intel lo dejó de lado a favor de su gama de procesadores de altas prestaciones llamada Xeon.

4.1. Características de los primeros chipsets

Un chipset es el conjunto de circuitos integrados diseñados con base a la arquitectura de un procesador, permitiendo que ese tipo de procesadores funcionen en una placa base. Sirven de puente de comunicación con el resto de componentes de la placa, como son la memoria, las tarjetas de expansión, los puertos USB, ratón, teclado, etc.

Antiguamente estas funciones eran relativamente sencillas de realizar y el chipset apenas influía en el rendimiento del ordenador, por lo que el chipset era el último elemento al que se concedía importancia a la hora de comprar una placa base, si es que alguien se molestaba siquiera en informarse sobre la naturaleza del mismo. Pero los nuevos y muy complejos micros, junto con un muy amplio abanico de tecnologías en materia de memorias, caché y periféricos que aparecen y desaparecen casi de mes en mes, han hecho que la importancia del chipset crezca enormemente.

Unidad 4 - El Chipset, su evolución y la capacidad de una computadora

3.4. Entrada y salida de datos a dispositivos periféricos.

Los periféricos de entrada/salida son los que utiliza el ordenador tanto para mandar como para recibir información. Su función es la de almacenar o guardar, de forma permanente o virtual, todo aquello que hagamos con el ordenador para que pueda ser utilizado por los usuarios u otros sistemas.
Son ejemplos de periférico de entrada/salida o de almacenamiento:
Periféricos de entrada
*       Teclado
*       Micrófono
*       Escáner
*       Ratón o mouse
*       Palanca de mando (Joystick)
*       Gamepad
*       Escáner de código de barras
*       Cámara web
*       Lápiz óptico
*       Cámara digital

Periféricos de salida
*       Visualizador
*       Monitor
*       Impresora
*       Fax
*       Tarjeta de sonido
*       Altavoz
*       Proyector digital
*       Auriculares


3.3. Tipos de puertos estándar



Cada máquina conectada a una red utilizando el protocolo TCP / IP, tiene asignado un grupo de 4 bloques de un máximo de 3 cifras que van del 0 al255 que la identifica como única en la red a la que esta conectada, de forma que pueda recibir y enviar información de y a otras máquinas en concreto. A este grupo de cifras se le denomina dirección IP. La petición, envío y recepción de información la realizan aplicaciones que están corriendo en las máquinas en red, con el fin de realizar diversas tareas. Para poder realizar varias de forma simultánea, la ip tiene asignados 65536 puntos de salida y entrada de datos, algunos de ellos asignados por un estándar, definido por IANA (”Internet Assigned Numbers Authority”) en el documento rfc1700, a unos servicios determinados (web, ftp, telnet, etc.)de forma que las aplicaciones sepan en todo momento en qué puerta encontrarán un tipo de información determinada. Éstos son los puertos que van del 0 al 1023 y se denominan “Puertos bien conocidos”. Por otra partelos puertos que van del 1024 al 65535 son conocidos como “Puerto sazarosos” y pueden ser utilizados libremente por las aplicaciones.

3.2. Evolución de los buses y el tamaño del dato.

Funciones que debe realizar un computador para ejecutar trabajos de entrada/salida:
*      Direccionamiento o selección del dispositivo que debe llevar a cabo la operación de E/S
*      Transferencia de los datos entre el procesador y el dispositivo (en uno u otro sentido).
*      Sincronización y coordinación de las operaciones.
Esta última función es necesaria debido a la diferencia de velocidades entre los dispositivos y la CPU y a la independencia que debe existir entre los periféricos y la CPU.
Una transferencia elemental de información es la transmisión de una sola unidad de información (normalmente un byte) entre el procesador y el periférico o viceversa. Para efectuar una transferencia elemental de información son precisas las siguientes funciones:
*      Comunicación física entre el procesador y el periférico para la transmisión de la unidad de información.
*      Control de los periféricos. Para realizar estas funciones la CPU gestionará las líneas de control necesarias.
Una operación de E/S es el conjunto de acciones necesarias para la transferencia de un conjunto de datos. Para la realización de una operación de E/S se deben efectuar las siguientes funciones:
*      Recuento de las unidades de información transferidas (normalmente bytes) para reconocer el fin de operación.
*      Sincronización de velocidad entre la CPU y el periférico.
*      Detección de errores (e incluso corrección).
*      Almacenamiento temporal de la información. Es más eficiente utilizar un buffer temporal específico para las operaciones de E/S que utilizan el área de datos del programa.



3.1. Buses y la transferencia de la información

Los ordenadores incluyen varias ranuras de expansión dentro de la placa madre para la instalación de dispositivos internos. Estas ranuras de expansión se comunican con el procesador a través de un bus (una línea de datos) más exactamente, el bus de datos comunica las ranuras de expansión con el chipset de la placa madre, el cual pasa los datos al procesador.

En el bus se encuentran dos pistas separadas, el bus de datos y el bus de direcciones. La CPU escribe la dirección de la posición deseada de la memoria en el bus de direcciones accediendo a la memoria, teniendo cada una de las líneas carácter binario. Es decir solo pueden representar 0 o 1 y de esta manera forman conjuntamente el número de la posición dentro de la memoria (es decir: la dirección). Cuantas más líneas haya disponibles, mayor es la dirección máxima y mayor es la memoria a la cual puede dirigirse de esta forma. En el bus de direcciones original había ya 20 direcciones, ya que con 20 bits se puede dirigir a una memoria de 1 MB y esto era exactamente lo que correspondía a la CPU.

Unidad 3 Buses y Puertos Estándar

2.3. Tipos De Memorias

Memoria de acceso aleatorio
La memoria de acceso aleatorio (en inglés: random-access memory) se utiliza como memoria de trabajo para el sistema operativo, los programas y la mayoría del software. Es allí donde se cargan todas las instrucciones que ejecutan el procesador y otras unidades de cómputo. Se denominan «de acceso aleatorio» porque se puede leer o escribir en una posición de memoria con un tiempo de espera igual para cualquier posición, no siendo necesario seguir un orden para acceder a la información de la manera más rápida posible. Durante el encendido del computador, la rutina POST verifica que los módulos de memoria RAM estén conectados de manera correcta. En el caso que no existan o no se detecten los módulos, la mayoría de tarjetas madres emiten una serie de pitidos que indican la ausencia de memoria principal. Terminado ese proceso, la memoria BIOS puede realizar un test básico sobre la memoria RAM indicando fallos mayores en la misma.
Memoria de solo lectura
La memoria de solo lectura, conocida también como ROM (en inglés de read-only memory), es un medio de almacenamiento utilizado en ordenadores y dispositivos electrónicos, que permite sólo la lectura de la información y no su escritura, independientemente de la presencia o no de una fuente de energía.
Los datos almacenados en la ROM no se pueden modificar, o al menos no de manera rápida o fácil. Se utiliza principalmente en su sentido más estricto, se refiere sólo a máscara ROM -en inglés, MROM- (el más antiguo tipo de estado sólido ROM), que se fabrica con los datos almacenados de forma permanente y, por lo tanto, su contenido no puede ser modificado de ninguna forma. Sin embargo, las ROM más modernas, como EPROM y Flash EEPROM, efectivamente se pueden borrar y volver a programar varias veces, aun siendo descritos como "memoria de sólo lectura" (ROM). 
Memoria flash
La memoria flash derivada de la memoria EEPROM permite la lectura y escritura de múltiples posiciones de memoria en la misma operación. Gracias a ello, la tecnología flash, siempre mediante impulsos eléctricos, permite velocidades de funcionamiento muy superiores frente a la tecnología EEPROM primigenia, que sólo permitía actuar sobre una única celda de memoria en cada operación de programación. Se trata de la tecnología empleada en los dispositivos denominados memoria USB.



2.2. Acceso A Los Datos Y Temporización

Para afrontar esta necesidad, se definió un canal de acceso directo a la memoria denominada DMA (Direct Memory Access por sus siglas en inglés).
El canal DMA es un acceso a una ubicación RAM en el ordenador, al que una "Dirección de Inicio RAM" y una "Dirección de Fin" hacen referencia. Este método permite que un periférico utilice canales especiales que le den acceso directo a la memoria, sin involucrar al microprocesador. Esto permite que el microprocesador se libere de la necesidad de hacer este trabajo.
Un ordenador tipo PC cuenta con 8 canales DMA. Los primeros cuatro canales DMA poseen 8 bits mientras que los DMA que van del cuarto al séptimo poseen 16 bits. 
Normalmente, los canales DMA se asignan de la siguiente manera:
*       DMA0 - libre
*       DMA1 - (tarjeta de sonido)/ libre
*       DMA2 - controlador de disquetes
*       DMA3 - puerto paralelo (puerto de la impresora)
*       DMA4 - controlador del acceso directo a la memoria (redirigido a DMA0)
*       DMA5 - (tarjeta de sonido)/ libre
*       DMA6 - (SCSI)/ libre
*       DMA7 – disponible

Temporización
Reloj del Sistema
El reloj de una computadora se utiliza para dos funciones principales:
*       Para sincronizar las diversas operaciones que realizan los diferentes subcomponentes del sistema informático.
*       Para saber la hora. El reloj físicamente es un circuito integrado que emite una cantidad de pulsos por segundo, de manera constante. Al número de pulsos que emite el reloj cada segundo se llama Frecuencia del Reloj.

La frecuencia del reloj se mide en Ciclos por Segundo, también llamados Hertzios, siendo cada ciclo un pulso del reloj. Como la frecuencia del reloj es de varios millones de pulsos por segundo se expresa habitualmente en Megaherzios.