MICROCONTROLADORES

Historia
El primer microprocesador fue el Intel 4004 de 4 bits, lanzado en 1971, seguido por el Intel 8008 y otros más
capaces. Sin embargo, ambos procesadores requieren circuitos adicionales para implementar un sistema de
trabajo, elevando el costo del sistema total.

El Instituto Smithsoniano dice que los ingenieros de Texas Instruments Gary Boone y Michael Cochran
lograron crear el primer microcontrolador, TMS 1000, en 1971; fue comercializado en 1974. Combina memoria
ROM, memoria RAM, microprocesador y reloj en un chip y estaba destinada a los sistemas embebidos.2

Debido en parte a la existencia del TMS 1000,3 Intel desarrolló un sistema de ordenador en un chip optimizado
para aplicaciones de control, el Intel 8048, que comenzó a comercializarse en 1977.3 Combina memoria RAM y
ROM en el mismo chip y puede encontrarse en más de mil millones de teclados de compatible IBM PC, y otras
numerosas aplicaciones. El en ese momento presidente de Intel, Luke J. Valenter, declaró que el
microcontrolador es uno de los productos más exitosos en la historia de la compañía, y amplió el presupuesto de
la división en más del 25%.

La mayoría de los microcontroladores en este momento tienen dos variantes. Unos tenía una memoria EPROM
reprogramable, significativamente más caros que la variante PROM que era sólo una vez programable. Para
borrar la EPROM necesita exponer a la luz ultravioleta la tapa de cuarzo transparente. Los chips con todo opaco
representaban un coste menor.

En 1993, el lanzamiento de la EEPROM en los microcontroladores (comenzando con el Microchip PIC16x84)4
permite borrarla eléctrica y rápidamente sin necesidad de un paquete costoso como se requiere en EPROM, lo
que permite tanto la creación rápida de prototipos y la programación en el sistema. El mismo año, Atmel lanza
el primer microcontrolador que utiliza memoria flash.5 Otras compañías rápidamente siguieron el ejemplo, con
los dos tipos de memoria.

El costo se ha desplomado en el tiempo, con el más barato microcontrolador de 8 bits disponible por menos de
0,25 dólares para miles de unidades en 2009, y algunos microcontroladores de 32 bits a 1 dólar por cantidades
similares. En la actualidad los microcontroladores son baratos y fácilmente disponibles para los aficionados, con
grandes comunidades en línea para ciertos procesadores.

En el futuro, la MRAM podría ser utilizada en microcontroladores, ya que tiene resistencia infinita y el coste de
su oblea semiconductora es relativamente bajo.

Características
Esquema de un microcontrolador. En esta figura, vemos al microcontrolador metido dentro de un encapsulado
de circuito integrado, con su procesador (CPU), buses, memoria, periféricos y puertos de entrada/salida. Fuera
del encapsulado se ubican otros circuitos para completar periféricos internos y dispositivos que pueden
conectarse a los pines de entrada/salida. También se conectarán a los pines del encapsulado la alimentación,
masa, circuito de completamiento del oscilador y otros circuitos necesarios para que el microcontrolador pueda
trabajar.

Los microcontroladores son diseñados para reducir el costo económico y el consumo de energía de un sistema
en particular. Por eso el tamaño de la unidad central de procesamiento, la cantidad de memoria y los periféricos
incluidos dependerán de la aplicación. El control de un electrodoméstico sencillo como una batidora utilizará un
procesador muy pequeño (4 u 8 bits) porque sustituirá a un autómata finito. En cambio, un reproductor de
música y/o vídeo digital (MP3 o MP4) requerirá de un procesador de 32 bits o de 64 bits y de uno o más códecs
de señal digital (audio y/o vídeo). El control de un sistema de frenos ABS (Antilock Brake System) se basa
normalmente en un microcontrolador de 16 bits, al igual que el sistema de control electrónico del motor en un
automóvil.

Los microcontroladores representan la inmensa mayoría de los chips de computadoras vendidos, sobre un 50%
son controladores "simples" y el restante corresponde a DSP más especializados. Mientras se pueden tener uno
o dos microprocesadores de propósito general en casa (Ud. está usando uno para esto), usted tiene distribuidos
seguramente entre los electrodomésticos de su hogar una o dos docenas de microcontroladores. Pueden
encontrarse en casi cualquier dispositivo electrónico como automóviles, lavadoras, hornos microondas,
teléfonos, etc.

Un microcontrolador difiere de una unidad central de procesamiento normal, debido a que es más fácil
convertirla en una computadora en funcionamiento, con un mínimo de circuitos integrados externos de apoyo.
La idea es que el circuito integrado se coloque en el dispositivo, enganchado a la fuente de energía y de
información que necesite, y eso es todo. Un microprocesador tradicional no le permitirá hacer esto, ya que
espera que todas estas tareas sean manejadas por otros chips. Hay que agregarle los módulos de entrada y salida
(puertos) y la memoria para almacenamiento de información.

Un microcontrolador típico tendrá un generador de reloj integrado y una pequeña cantidad de memoria de
acceso aleatorio y/o ROM/EPROM/EEPROM/flash, con lo que para hacerlo funcionar todo lo que se necesita
son unos pocos programas de control y un cristal de sincronización. Los microcontroladores disponen
generalmente también de una gran variedad de dispositivos de entrada/salida, como convertidor analógico
digital, temporizadores, UARTs y buses de interfaz serie especializados, como I2C y CAN. Frecuentemente,
estos dispositivos integrados pueden ser controlados por instrucciones de procesadores especializados. Los
modernos microcontroladores frecuentemente incluyen un lenguaje de programación integrado, como el
lenguaje de programación BASIC que se utiliza bastante con este propósito.
Los microcontroladores negocian la velocidad y la flexibilidad para facilitar su uso. Debido a que se utiliza
bastante sitio en el chip para incluir funcionalidad, como los dispositivos de entrada/salida o la memoria que
incluye el microcontrolador, se ha de prescindir de cualquier otra circuitería

Microcontroladores - Sistemas microcontrolados
El diagrama de un sistema microcontrolado sería algo así

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, optoacopladores), u otros dispositivos como
relés, luces, un secador de pelo, en fin.. lo que quieras.

Aquí tienes una representación en bloques del microcontroador, para que te des
una idea, y puedes ver que lo adaptamos tal y cual es un ordenador, con su fuente
de alimentación, un circuito de reloj y el chip microcontrolador, el cual dispone
de su CPU, sus memorias, y por supuesto, sus puertos de comunicación listos
para conectarse al mundo exterior.

Definamos entonces al microcontrolador; Es un circuito integrado programable, capaz de ejecutar las órdenes grabadas en su
memoria. Está compuesto de varios bloques funcionales, los cuales cumplen una tarea específica. Sacado de un libro...!!!. En fin estas
son básicamente algunas de sus partes...

 Memoria ROM (Memoria de sólo lectura)
 Memoria RAM (Memoria de acceso aleatorio)
 Líneas de entrada/salida (I/O) También llamados puertos
 Lógica de control Coordina la interacción entre los demás bloques
Eso no es todo, algunos traen funciones especiales, ya hablaremos de ellas.

Microcontroladores PIC16CXX/FXX de Microchip
Me referiré a estos porque serán los que utilizaré aquí, (al menos por ahora). Estos micros pertenecen a la gama media y disponen de
un set de 35 instrucciones, por eso lo llaman de tipo RISC (Reduced Instruction Set Computer) en entendible sería "Computador con
Set de Instrucciones Reducido" pocas instrucciones pero muy poderosas, otras son de tipo CISC (Complex Instruction Set Computer -
Computador con Set de Instrucciones Complejo), demasiadas instrucciones, y lo peor, difíciles de recordar.

Esta familia de microcontroladores se divide en tres rangos según la capacidad de los microcontroladores. El más bajo lo compone la
familia 16C5X. El rango medio lo componen las familias 16C6X/ 7X/ 8X, algunos con conversores A/D, comparadores,
interrupciones, etc. La familia de rango superior lo componen los 17CXX.

Estas son las funciones especiales de las cuales disponen algunos micros...
 Conversores análogo a digital (A/D) en caso de que se requiera medir señales analógicas, por ejemplo temperatura, voltaje,
luminosidad, etc.
 Temporizadores programables (Timer's) Si se requiere medir períodos de tiempo entre eventos, generar temporizaciones o salidas
con frecuencia específica, etc.
 Interfaz serial RS-232. Cuando se necesita establecer comunicación con otro microcontrolador o con un computador.
 Memoria EEPROM Para desarrollar una aplicación donde los datos no se alteren a pesar de quitar la alimentación, que es un tipo de
memoria ROM que se puede programar o borrar eléctricamente sin necesidad de circuitos especiales.
 salidas PWM (modulación por ancho de pulso) Para quienes requieren el control de motores DC o cargas resistivas, existen
microcontroladores que pueden ofrecer varias de ellas.
 Técnica llamada de "Interrupciones", (ésta me gustó) Cuando una señal externa activa una línea de interrupción, el
microcontrolador deja de lado la tarea que está ejecutando, atiende dicha interrupción, y luego continúa con lo que estaba haciendo.
Todo esto, sólo para tener una idea de lo que son los micros, ahora vamos a un par de ellos en especial.

Presentación oficial! - PIC16C84/F84
El P1C16C84 está fabricado en tecnología CMOS, consume baja potencia, y
es completamente estático (si el reloj se detiene, los datos de la memoria no
se pierden). El 16F84 tiene las mismas características pero posee memoria
FLASH, esto hace que tenga menor consumo de energía, y como si fuera
poco tiene mayor capacidad de almacenamiento.

El encapsulado más común para estos microcontrolador es el DIP (Dual In
line Pin) de 18 pines, (el nuestro... ), y utiliza un reloj de 4 MHz (cristal de
cuarzo). Sin embargo, hay otros tipos de encapsulado, por ejemplo, el
encapsulado tipo surface mount (montaje superficial) es mucho + pequeño.

Terminales del microcontrolador y sus respectivas funciones:
Ésta sería la disposición de sus terminales y sus respectivos nombres...

(En la figura se representa un encapsulado DIP - PIC16C84/F84)
Patas 1, 2, 3, 17 y 18 (RA0-RA4/TOCKI): Es el PORT A. Corresponden a 5 líneas
bidireccionales de E/S (definidas por programación). Es capaz de entregar niveles
TTL cuando la alimentación aplicada en VDD es de 5V ± 5%. El
pin RA4/TOCKI como entrada puede programarse en funcionamiento normal o
como entrada del contador/temporizador TMR0. Cuando este pin se programa como
entrada digital, funciona como un disparador de Schmitt (Schmitt trigger), puede
reconocer señales un poco distorsionadas y llevarlas a niveles lógicos (cero y cinco
voltios). Cuando se usa como salida digital se comporta como colector abierto; por
lo tanto se debe poner una resistencia de pull-Up (resistencia externa conectada a un
nivel de cinco voltios, ...no te preocupes, más abajo lo entenderás mejor). Como salida, la lógica es inversa: un "0" escrito al pin del
puerto entrega a la salida un "1" lógico. Este pin como salida no puede manejar cargas como fuente, sólo en el modo sumidero.

Pata 4 (MCLR / Vpp): Es una pata de múltiples aplicaciones, es la entrada de Reset (master clear) si está a nivel bajo y también es la
habilitación de la tensión de programación cuando se está programando el dispositivo. Cuando su tensión es la de VDD el PIC
funciona normalmente.

Patas 5 y 14 (VSS y VDD): Son respectivamente las patas de masa y alimentación. La tensión de alimentación de un PIC está
comprendida entre 2V y 6V aunque se recomienda no sobrepasar los 5.5V.

Patas 6, 7, 8, 9, 10, 11, 12, 13 (RB0-RB7): Es el PORT B. Corresponden a ocho líneas bidireccionales de E/S (definidas por
programación). Pueden manejar niveles TTL cuando la tensión de alimentación aplicada en VDD es de 5V ± 5%. RB0 puede
programarse además como entrada de interrupciones externas INT. Los pines RB4 a RB7 pueden programarse para responder a
interrupciones por cambio de estado. Las patas RB6 y RB7 se corresponden con las líneas de entrada de reloj y entrada de datos
respectivamente, cuando está en modo programación del integrado.

Patas 15 y 16 (OSC1/CLKIN y OSC2/CLKOUT): Corresponden a los pines de la entrada externa de reloj y salida de oscilador a
cristal respectivamente.
Ahora un poco de electrónica:
Esto comienza a ponerse interesante, no crees...?, ok sigamos... Como estos dispositivos son de
tecnología CMOS, todos los pines deben estar conectados a alguna parte, nunca dejarlos al aire
porque se puede dañar el integrado. Los pines que no se estén usando se deben conectar a la
fuente de alimentación de +5V, como se muestra en la siguiente figura...

Capacidad de corriente en los puertos
La máxima capacidad de corriente de cada uno de los pines de los puertos en modo sumidero
(sink) es de 25 mA y en modo fuente (source) es de 20 mA. La máxima capacidad de corriente
total de los puertos es:






Así se vería la conexión para ambos modos de funcionamiento.



El oscilador externo
Es un circuito externo que le indica al micro la velocidad a la que debe trabajar. Este circuito, que se conoce como oscilador o reloj, es
muy simple pero de vital importancia para el buen funcionamiento del sistema. El P1C16C84/F84 puede utilizar cuatro tipos de reloj
diferentes. Estos tipos son:
 RC. Oscilador con resistencia y condensador.
 XT. Cristal.
 HS. Cristal de alta velocidad.
 LP. Cristal para baja frecuencia y bajo consumo de potencia.
En el momento de programar o "quemar" el microcontrolador se debe especificar qué tipo de oscilador se usa. Esto se hace a través de
unos fusibles llamados "fusibles de configuración" o fuses.

PUERTO A PUERTO B
Modo Sumidero 80 mA 150 mA
Modo Fuente 50 mA 100 mA

Aquí utilizaremos el cristal de 4 MHz, porque garantiza mayor precisión y un buen arranque del
microcontrolador. Internamente esta frecuencia es dividida por cuatro, lo que hace que la frecuencia
efectiva de trabajo sea de 1 MHz, por lo que cada instrucción se ejecuta en un microsegundo. El cristal
debe ir acompañado de dos condensadores y el modo de conexión es el siguiente...



Si no requieres mucha precisión en el oscilador, puedes utilizar una resistencia y un condensador, como
se muestra en la figura. donde OSC2 queda libre entregando una señal cuya frecuencia es la del OSC/4.







Según las recomendaciones de Microchip R puede tomar valores entre 5k y 100k, y C superior a 20pf.

Reset
El PIC 16C84/F84 posee internamente un circuito temporizador conectado al pin de reset que
funciona cuando se da alimentación al micro, se puede entonces conectar el pin de MCLR a la fuente
de alimentación. Esto hace que al encender el sistema el microcontrolador quede en estado de reset
por un tiempo mientras se estabilizan todas las señales del circuito (lo cual es bastante bueno, por eso
siempre la usaremos...).

Este último circuito, es por si deseas tener control sobre el reset del sistema, sólo le conectas un
botón y listo...


Ahora vamos al interior del micro
Estructura interna del Microcontrolador
Tranquilo que ya comenzaremos con lo que estas esperando, antes debemos saber dónde alojar nuestro programa,
como se va a ejecutar, y como configurar sus puertos.
Arquitectura interna del PIC:
Hay dos arquitecturas conocidas; la clásica de von Neumann, y la
arquitectura Harvard, veamos como son...

Arquitectura Von Neumann Dispone de una sola memoria principal
donde se almacenan datos e instrucciones de forma indistinta. A dicha
memoria se accede a través de un sistema de buses único (direcciones,
datos y control).
Arquitectura Harvard Dispone de dos
memorias independientes, una que contiene
sólo instrucciones, y otra que contiene sólo
datos. Ambas disponen de sus respectivos
sistemas de buses de acceso y es posible
realizar operaciones de acceso (lectura o
escritura) simultáneamente en ambas
memorias, ésta es la estructura para los PIC's.
Ahora vamos por partes, o creo que me voy a perder.


El procesador o UCP
Es el elemento más importante del microcontrolador. Se encarga de direccionar la memoria de instrucciones, recibir el
código OP de la instrucción en curso, decodificarlo y ejecutarlo, también realiza la búsqueda de los operandos y
almacena el resultado.
Memoria de programa
Esta vendría a ser la memoria de instrucciones, aquí es donde
almacenaremos nuestro programa o código que el micro debe
ejecutar. No hay posibilidad de utilizar memorias externas de
ampliación. Son 5 los tipos de memoria. pero sólo describiré dos:
 Memorias EEPROM. (Electrical Erasable Programmable Read
Only Memory - Memoria de sólo lectura Programable y borrable
eléctricamente) Común en el PIC 16C84. Ésta tarea se hace a través
de un circuito grabador y bajo el control de un PC. El número de veces
que puede grabarse y borrarse una memoria EEPROM es finito
aproximadamente 1000 veces, no es acaso suficiente...?. Este tipo de
memoria es relativamente lenta.
 Memorias FLASH. Disponible en el PIC16F84. Posee las
mismas características que la EEPROM, pero ésta tiene menor
consumo de energía y mayor capacidad de almacenamiento, por ello
está sustituyendo a la memoria EEPROM.
La memoria de programa se divide en páginas de 2,048 posiciones. El
PIC16F84A sólo tiene implementadas 1K posiciones es decir de 0000h
a 03FFh y el resto no está implementado. (es aquello que se ve en
gris)

Cuando ocurre un Reset, el contador de programa (PC) apunta a la dirección 0000h, y el micro se inicia nuevamente.
Por esta razón, en la primera dirección del programa se debe escribir todo lo relacionado con la iniciación del mismo
(por ejemplo, la configuración de los puertos...).

Ahora, si ocurre una interrupción el contador de programa (PC) apunta a la dirección 0004h, entonces ahí
escribiremos la programación necesaria para atender dicha interrupción.

Algo que se debe tener en cuenta es la pila o Stack, que consta de 8 posiciones (o niveles), esto es como una pila de
8 platos el último en poner es el primero en sacar, si seguimos con este ejemplo, cada plato contiene la dirección y los
datos de la instrucción que se está ejecutando, así cuando se efectúa una llamada (CALL) o una interrupción, el PC
sabe dónde debe regresar (mediante la instrucción RETURN, RETLW o RETFIE, según el caso) para continuar con la
ejecución del programa.

Recuerda, sólo 8 llamadas "CALL", ten en cuenta las "INTERRUPCIONES".

Memoria de datos
Tiene dos zonas diferentes:

1. RAM estática ó SRAM: donde residen los Registros Específicos (SFR)
con 24 posiciones de tamaño byte, aunque dos de ellas no son
operativas y los Registros de Propósito General (GPR) con 68 posiciones.
La RAM del PIC16F84A se halla dividida en dos bancos (banco 0 y banco
1) de 128 bytes cada uno (7Fh)

2. EEPROM: de 64 bytes donde, opcionalmente, se pueden almacenar
datos que no se pierden al desconectar la alimentación.
O.k., ahora unas cuantas palabras finales y comenzamos con lo más
emocionante.
Configuración de los puertos del PIC
Llegó el momento de ver como configurar los puertos del PIC. Para poder
hacerlo es necesario conocer la tabla de registros de la memoria de
datos, la cual como dijimos, está dividida en el BANCO 0 y BANCO 1.

Los registros importantes en la configuración de los puertos son:

STATUS dirección 0x3
PORTA dirección 0x5
PORTB dirección 0x6
TRISA dirección 0x5
TRISB dirección 0x6

Por defecto el PIC tendrá todos los I/O port's (es decir los puertos RA y RB), colocados como entrada de datos, y si
queremos cambiarlos habrá que configurarlos.

Al configurar los puertos deberás tener en cuenta que:

Si asignas un CERO (0) a un pin, éste quedará como salida y...
Si le asignas un UNO (1), quedará como entrada

Esta asignación se hace en:

TRISA para los pines del PUERTO A (5 bits)
TRISB para los pines del PUERTO B (8 bits)
Por Ejemplo:
Si TRISA es igual a 11110 todos sus pines serán entradas salvo RA0 que esta como salida

Si TRISB es igual a 00000001 todos sus pines serán salidas salvo RB0 que esta como entrada

Cuando el PIC arranca se encuentra en el BANCO 0, como TRISA y TRISB están en el BANCO 1 no queda otra,
deberemos cambiar de banco. Esto se logra a través del RegistroSTATUS

STATUS es un Registro de 8 bits u 8 casillas, en el cual la Nº 5 (RP0) define la posición del banco en donde nos
encontramos

Si pones un CERO (0) a RP0 estaremos en el BANCO 0
Si le pones un UNO (1) ya ves, estaremos en el BANCO 1

REGISTRO STATUS
7 6 5 4 3 2 1 0
IRP RP1 RP0 TO PD Z DC C

Listo, ahora ya sabemos cómo configurar los puertos, pero lo aclararemos con un ejemplo completo.

Vamos a escribir un código que configure todos los pines del puerto A como entrada y todos los del puerto B como
salida.

;---------------Encabezado-------------

list p=16f84 ; usaremos el PIC 16f84
radix hex ; y la numeración hexadecimal

;------------mapa de memoria---------

estado equ 0x03 ; Aquí le asignamos nombres a los
trisa equ 0x05 ; registros indicando la posición
trisb equ 0x06 ; en la que se encuentran

;-------Configuración de puertos-------

reset org 0x00 ; origen del programa, aquí comienzaré
; siempre que ocurra un reset
goto inicio ; salto a "inicio"
org 0x05 ; origen del código de programa
inicio bsf estado,5 ; pongo rp0 a 1 y paso al banco1
movlw b'11111' ; cargo W con 11111
movwf trisa ; y paso el valor a trisa
movlw b'00000000' ; cargo W con 00000000
movwf trisb ; y paso el valor a trisb
bcf estado,5 ; pongo rp0 a 0 y regreso al banco0

;------------------------------------------
end ; se acabó
;------------------------------------------
Descripción del código:
Todo lo que escribas luego de un ";" (punto y coma) será ignorado por el ensamblador, estos son los famosos
comentarios, y sirve para saber qué hace cada línea de código.

Dicho esto no queda más que describir el código, así que vamos por partes.
;---------------Encabezado-------------

list p=16f84 ; usaremos el PIC 16f84
radix hex ; y la numeración hexadecimal
Aquí le indicas al ensamblador para que microcontrolador estas codificando (PIC16F84). Y cuál será el sistema de
numeración que utilizarás (hexadecimal).

Nota que hay tres columnas, en este caso la primera está vacía. Respeta las tabulaciones para no confundir al
ensamblador.
;------------mapa de memoria---------

estado equ 0x03 ; Aquí le asignamos nombres a los
trisa equ 0x05 ; registros indicando la posición
trisb equ 0x06 ; en la que se encuentran
Recuerdas lo de la memoria de datos...? Bien, al registro STATUS, que está en la posición 0x03 de la memoria de
datos le puse la etiqueta "estado". equ es algo así comoooo...igual . (Es decir, le estoy asignando el nombre estado
al registro que está en la posición 0x03 de la memoria de datos).

Luego hice lo mismo con trisa y trisb. Ahora sigamos...
;-------Configuración de puertos-------

reset org 0x00 ; origen del programa, aquí comenzaré
; siempre que ocurra un reset
goto inicio ; salto a "inicio"
org 0x05 ; origen del código de programa
inicio bsf estado,5 ; pongo rp0 a 1 y paso al banco1
movlw b'11111' ; cargo W con 11111
movwf trisa ; y paso el valor a trisa
movlw b'00000000' ; cargo W con 00000000
movwf trisb ; y paso el valor a trisb
bcf estado,5 ; pongo rp0 a 0 y regreso al banco0
La directiva org indica el sitio de la memoria en donde se escribe una parte del programa. En este caso el contador de
programa apuntará a la dirección 0x00 (reset) entonces ejecutará la instrucción que sigue a continuación, (saltar a la
etiqueta inicio) y nuestro código de programa comienza en la dirección de memoria 0x05 (aquí salto por encima de la
interrupción 0x04)

BSF (SET FILE REGISTER), es la instrucción que pone un uno en el bit del registro especificado, en este caso pone a
uno el bit 5 del registro STATUS (el rp0), para pasar al banco 1.

movlw es algo así como... mueve el siguiente literal al Registro W.

W es el Registro de Trabajo, y lo usamos para almacenar momentáneamente los datos que queremos mover. una vez
hecho esto pasamos el dato a trisa, o a trisb, según el caso.

movwf es algo así como... mueve el contenido del registro W al registro f, en este caso f sería trisa o trisb.

BCF (BIT CLEAR FILE REGISTER), ésta instrucción limpia el bit del registro especificado, o lo pone a cero, en este caso
pone a cero el bit 5 del registro STATUS para regresar al banco 0.
;------------------------------------------
end ; se acabó
;------------------------------------------




COMUNICACIÓN POR FIBRA ÓPTICA
La comunicación por fibra óptica es un método de transmisión de información de un lugar a otro enviando señales de luz a través de
fibra óptica. La luz en forma de ondas electromagnéticas viajeras es modulada para transmitir información. Desarrollados en la década
de 1970, los sistemas de comunicación de fibra óptica han revolucionado la industria de las telecomunicaciones y han desempeñado
un papel importante en el advenimiento de la era de la información. Debido a sus ventajas sobre la transmisión eléctrica, la fibra óptica
ha sustituido en gran medida las comunicaciones mediante cables de cobre en las redes del mundo desarrollado.
El proceso de comunicación mediante fibra óptica implica los siguientes pasos:
Creación de la señal óptica mediante el uso de un transmisor; transmisión de la señal a lo largo de la fibra, garantizando que la señal
no sea demasiado débil ni distorsionada; recepción de la señal, lo que consiste en la conversión de ésta en una señal eléctrica.
La fibra óptica es usada por muchas compañías de telecomunicaciones para transmitir señales telefónicas, comunicación vía Internet y
señales de televisión por cable. Debido a su muy inferior atenuación e interferencia, la fibra óptica tiene grandes ventajas sobre el
cable de cobre. Por eso es utilizado en largas distancias y aplicaciones de alta demanda. Sin embargo, el desarrollo de infraestructura
dentro de las ciudades era relativamente difícil y los sistemas de fibra óptica eran complicados y costosos de instalar y operar. Debido
a estas dificultades, los sistemas de comunicación de fibra óptica, al principio, fueron instalados principalmente en aplicaciones de
larga distancia, donde podían utilizar su capacidad de transmisión al máximo, compensando el alto costo. Desde el 2002, los precios
de los materiales y procesos de instalación de las comunicaciones de fibra óptica se fueron reduciendo considerablemente. El precio
para el despliegue de fibra hasta el hogar resulta más rentable que el despliegue de una red basada en el cobre.
Desde 1990, cuando los sistemas de amplificación óptica se volvieron comerciales, la industria de telecomunicaciones ha establecido
una amplia red de comunicación interurbana y transoceánica de esta fibra. En 2002 se terminó una red intercontinental de 250 000 km
de comunicaciones por cable submarino, con una capacidad de 2,56 Tb/s, y aunque las capacidades específicas de una red son
información privilegiada, los informes de telecomunicaciones indican que la capacidad de redes se ha incrementado ampliamente
desde ese año.
Tecnología
Los sistemas modernos de fibra óptica generalmente incluyen: transmisores ópticos para convertir una señal eléctrica en una señal
óptica que se envía por la fibra óptica; cables de fibra óptica que contienen múltiples haces de fibras ópticas que se instalan a través de
conductos subterráneos y edificios; varios tipos de amplificadores y un receptor óptico para recuperar la señal como una señal
eléctrica. La información contenida suele ser comunicación digital generada por computadoras, telefonía digital y compañías de cable.
Transmisores
Los transmisores ópticos más comúnmente utilizados son dispositivos semiconductores como, por ejemplo, diodos emisores de luz
(led|leds o ledes, en plural) y diodos láser. La diferencia entre los diodos led y el láser es que los led producen una luz incoherente, la
cual se dispersa, y el láser produce una luz coherente, no dispersa. Para su uso en comunicaciones ópticas los transmisores ópticos
semicondutores deben ser diseñados para ser compactos, eficientes y confiables, mientras se opera en un rango de longitud de onda
óptima y directamente modulada en altas frecuencias.
En su forma más simple, un led es una unión de semiconductores PN polarizada, emitiendo luz a través de emisiones espontáneas, un
fenómeno conocido como electroluminiscencia. La luz emitida es incoherente, con un ancho espectral relativamente amplio de 30-60
nm, aunque la transmisión de luz led es también ineficiente, con sólo el 1% de la potencia de entrada. Sin embargo, debido a su diseño
relativamente sencillo los ledes son muy útiles para aplicaciones de bajo costo.
Las comunicaciones led se producen principalmente a partir de GaAsp o GaAs. Debido a que los ledes GaAsp operan a una mayor
longitud de onda que los ledes GaAs (1,3 micrómetros contra 0,81-0,87 µm), su espectro de salida es más ancho en un factor de
alrededor de 1,7 veces. El ancho de amplio espectro de los ledes causa una alta dispersión en la fibra, lo que limita considerablemente
su producto tasa de bits-distancia (medida común de utilidad). Los ledes son adecuados principalmente para aplicaciones de red de
área local con velocidades de 10 a 100 Mbit/s, y distancias de transmisión de unos pocos kilómetros. Los leds se han desarrollado para
usar varios pozos cuánticos para emitir luz en diferentes longitudes de onda en un amplio espectro, y actualmente están en uso en
redes de área local de multiplexado por división de longitud de onda.
Un láser semiconductor transmite luz a través de la emisión estimulada en vez de emisión espontánea, lo que da como resultado una
alta potencia de salida (~100 mW), así como otros beneficios de la luz coherente. La salida del láser es relativamente direccional, lo
que permite un acoplamiento de alta eficiencia (~50%) en fibras monomodo. La anchura espectral estrecha permite altas tasas de
transferencia de bits, ya que reduce el efecto de dispersión cromática. Los láseres semiconductores pueden ser modulados
directamente a altas frecuencias, debido a la recombinación de tiempo corto.
A menudo, los diodos láser se modulan directamente, que es la salida de luz controlada por una corriente aplicada directamente al
dispositivo. Para tasas de datos muy altas o enlaces de muy larga distancia, una fuente de láser puede ser de onda continua y la luz
modulada por un dispositivo externo como un modulador de electroabsorción.
Receptores
El principal componente de un receptor óptico es una célula fotoeléctrica, que convierte la luz en electricidad mediante el efecto
fotoeléctrico. El fotodetector es generalmente un fotodiodo basado en semiconductores. Hay varios tipos de fotodiodos, entre los que
se incluyen: fotodiodos PN, fotodiodo PIN y fotodiodos de avalancha. Los fotodetectores metal-semiconductor-metal (MSM) también
se utilizan debido a su idoneidad para la integración de circuitos regeneradores y multiplexores de longitud de onda.
Los convertidores ópticos eléctricos son, habitualmente, el agrupamiento de un amplificador de transimpedancia y un amplificador de
limitación para producir una señal digital en el dominio eléctrico de la señal óptica de entrada, que podrá ser atenuada y distorsionada
al pasar por el canal. Además de procesamiento de señales tales como la recuperación de reloj de datos (CDR) a cargo de un bucle de
enganche de fase, también puede aplicarse antes de que los datos se transmitan.
Fibra
Una fibra óptica consiste en un núcleo, un revestimiento y un buffer (una capa exterior de protección). El revestimiento guía la luz a lo
largo del núcleo mediante el método de reflexión interna total. El núcleo y el revestimiento, que tienen un menor índice de refracción,
son generalmente de vidrio de sílice, aunque pueden ser también de plástico. En la conexión de dos fibras ópticas se realiza el
empalme de fusión o empalme mecánico, y requiere habilidades especiales y la tecnología de interconexión debido a la precisión
microscópica necesaria para alinear los núcleos de fibra.
Hay dos tipos de fibra óptica utilizada en comunicaciones: la fibra óptica multimodo y monomodo. La multimodo tiene un núcleo más
grande (50 o 62,5 micrómetros), lo que permite menos precisión pero transmisores, receptores y conectores de menor costo. Sin
embargo, la fibra multimodo introduce distorsión multimodo, que a menudo limita el ancho de banda, y la longitud de enlace presenta
mayor atenuación. El núcleo de una fibra monomodo es más pequeño (8-10 micras) y requiere componentes más costosos y métodos
de interconexión más precisos, pero permitiendo enlaces de mayor rendimiento, lo que aumenta la tasa de transferencia y la distancia.
Amplificadores
La distancia de transmisión de un sistema de comunicación de fibra óptica ha sido limitada, tradicionalmente, por la atenuación de la
fibra y por la distorsión de la fibra. Mediante el uso de repetidores opto-electrónicos, estos problemas se han eliminados. Estos
repetidores convierten la señal óptica en una señal eléctrica, y luego usan un transmisor para enviar la señal de nuevo a una mayor
intensidad que la atenuada recibida. Debido a la alta complejidad con la moderna división de longitud de onda de multiplexación de
señales (como el hecho de que tienen que ser instalados cada pocas decenas de kilómetros) el coste de estos repetidores es elevado.
Un enfoque alternativo es usar un amplificador óptico, lo que amplifica la señal óptica directamente, sin tener que convertir la señal al
dominio electrónico. Los amplificadores en fibra son amplificadores ópticos que usan fibra dopada, normalmente con tierras raras.
Estos amplificadores necesitan de un bombeo externo con un láser de onda continua a una frecuencia óptica ligeramente superior a la
que amplifican. Típicamente, las longitudes de onda de bombeo son 980 nm o 1480 nm y para obtener los mejores resultados en
cuanto a ruido se refiere, debe realizarse en la misma dirección que la señal.1
Multiplexación por longitud de onda
La multiplexación por división de longitud de onda (WDM) es la práctica de la multiplicación de la capacidad disponible de una fibra
óptica mediante la adición de nuevos canales, cada canal en una nueva longitud de onda de la luz. El ancho de banda de una fibra
puede dividirse en 160 canales para apoyar a una velocidad de bits combinados en la gama del terabit por segundo. Esto requiere un
multiplexor de división de longitud de onda en el equipo de transmisión y un demultiplexor en el equipo receptor.
Producto ancho de banda-distancia
Debido a que el efecto de la dispersión aumenta con la longitud de la fibra, un sistema de transmisión de fibra se caracteriza a menudo
por el producto de su ancho de banda por la distancia, a menudo expresado en MHz· km. Este valor, producto de ancho de banda por
distancia, es debido a la relación entre el ancho de banda de la señal y la distancia que puede ser transportada.
A través de una combinación de avances en la gestión de la dispersión, la longitud de onda de multiplexión por división y
amplificadores ópticos, las fibras ópticas pueden llevar la información en torno a los 14 terabits por segundo a más de 160 km de fibra.
Dispersión
Para la fibra óptica de vidrio moderna, la distancia máxima de transmisión no está limitada por la absorción de materiales directos,
sino por varios tipos de dispersión o la propagación de pulsos ópticos en su viaje a lo largo de la fibra. La dispersión de las fibras
ópticas es causada por una variedad de factores. Dispersión intermodal, causada por las diferentes velocidades axiales de diferentes
modos transversales, limitando el rendimiento de la fibra multimodo. Debido a que la fibra monomodo sólo admite un modo
transversal, se elimina la dispersión intermodal.
En desempeño de la fibra monomodo es principalmente limitado por la dispersión cromática, que se produce porque el índice del
vidrio varía ligeramente dependiendo de la longitud de onda de la luz. La dispersión de modo de polarización es otra fuente de
limitación, se debe a que aunque la fibra monomodo puede sostener solamente un modo transversal, se puede llevar a este modo con
dos polarizaciones. Este fenómeno se denomina birrefrigencia de fibra y puede ser contrarestada por la polarización, y el
mantenimiento de la fibra.



VIDEO TUTORIALES

CURSO DE DISEÑO WEB
http://www.youtube.com/playlist?list=PLhSj3UTs2_yXDfpTsKGd2iZTXZnsOTC8h

TUTORIALES PARA ELECTRÓNICA EN GENERAL:
http://www.youtube.com/playlist?list=PL4087741F68558EAF

TUTORIAL PARA APRENDER A USAR LA PROTOBOARD:
TÍTULO: PROTOBOARD, COMO ARMAR CIRCUITOS
https://www.youtube.com/watch?v=HZlmIn1eh_M

EN EL SIGUIENTE LINK SE ENCUENTRA UN VIDEO DE COMO GRABAR EL PROGRAMA EN EL PIC EN ESTE CASO EL
PIC 16F84A:
TÍTULO DEL VIDEO:
GRABACIÓN DE PIC Y MONTAJE EN PROTOBOARD PASÓ A PASO
https://www.youtube.com/watch?v=_yKLOYoEzdo

CURSO PRACTICOS EN 3D
http://www.youtube.com/user/entivoo


CONTENIDO SOBRE ELECTRONICA DIGITAL

http://es.wikipedia.org/wiki/Electr%C3%B3nica_digital

http://www.simbologia-electronica.com/simbolos-electricos-electronicos/simbolos-electronica-digital.htm



CONTENIDO SOBRE 3D

http://es.wikipedia.org/wiki/Tridimensional

http://es.wikipedia.org/wiki/Gr%C3%A1ficos_3D_por_computadora

http://es.wikipedia.org/wiki/Impresora_3D

http://es.wikipedia.org/wiki/Impresi%C3%B3n_3D