Páginas

domingo, 19 de febrero de 2012

[Emb Comp Lab] Microcontroladores

Un microcontrolador (abreviado μC,UC o MCU) 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. Un microcontrolador incluye en su interior las tres unidades funcionales principales de una computadora: unidad central de procesamiento, memoria y periféricos de entrada y salida.

Al ser fabricados, la EEPROM del microcontrolador no posee datos. Para que pueda controlar algún proceso es necesario generar o crear y luego grabar en la EEPROM del microcontrolador algún programa, el cual puede ser escrito en lenguaje ensamblador u otro lenguaje para microcontroladores; sin embargo, para que el programa pueda ser grabado en la EEPROM del microcontrolador, debe ser codificado en sistema numérico hexadecimal que es finalmente el sistema que hace trabajar al microcontrolador cuando éste es alimentado con el voltaje adecuado y asociado a dispositivos analógicos y discretos para su funcionamiento.1

Microcontrolador



Componentes

  • Unidad de Procesamiento Central (CPU): Típicamente de 8 bits, pero también las hay de 4, 32 y hasta 64 bits con arquitectura Harvard, con memoria/bus de datos separada de la memoria/bus de instrucciones de programa, o arquitectura de Von Neumann, también llamada arquitectura Princeton , con memoria/bus de datos y memoria/bus de programa compartidas.
  • Memoria de Programa: Es una memoria ROM (Read- Only Memory), EPROM(Electrically Programable ROM), EEPROM (Electrically Erasable/Programable ROM) o Flash que almacena el código del programa que típicamente puede ser de 1 kilobyte a varios megabytes.
  • Memoria de Datos: Es una memoria RAM ( Random Access Memory)que típicamente puede ser de 1, 2, 4, 8, 16, 32 kilobytes.
  • Generador del Reloj: Usualmente un cristal de cuarzo de frecuencias que genera una señal oscilatoria de entre 1 a 40MHz, o también resonadores o circuitos RC.
  • Interfaz de Entrada/Salida: Puertos paralelos, seriales (UARTs, Universal Asynchronous Receiver/Transmitter), I2C(Inter- Integrated Circuit), Interfaces de Periféricos Seriales (SPIs, Serial Peripheral Interfaces), Red de Área de Controladores (CAN, Controller Área Network ), USB ( Universal Serial Bus).
  • Conversores Análogo-Digitales (A/D, analog - t o- digital ): para convertir un nivel de voltaje en un cierto pin a un valor digital manipulable por el programa del microcontrolador.
  • Moduladores por Ancho de Pulso (PWM,Pulse - Width Modulation): para generar ondas cuadradas de frecuencia fija pero con ancho de pulso modificable.


Características

  1. La arquitectura del procesador sigue el modelo Harvard.
  2. Se aplica la técnica de segmentación ("pipe-line") en la ejecución de las instrucciones.
  3. El formato de todas las instrucciones tiene la misma longitud.
  4. Procesador RISC (Computador de Juego de Instrucciones Reducido).
  5. Todas las instrucciones son ortogonales.
  6. Arquitectura basada en un banco de registros.
  7. Prácticamente todos los PIC se caracterizan por poseer unos mismos recursos mínimos.
  8. Modelos de arquitectura cerrada y de arquitectura abierta.
  9. Diversidad de modelos de microcontroladores.
  10. Amplio margen de alimentación y corrientes de salida elevadas.
  11. Herramientas de soporte potentes y económicas.


Arquitecturas


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.



Tipos de Microcontroladores



No existe una verdadera clasificación de Microcontroladores, debido a que cada vez aparecen microcontroladores adaptados a cierto tipo de situaciones, sin embargo, podemos agruparlo según ciertas características:

Familia de productos
  • PIC10
  • PIC12
  • PIC14
  • PIC16
  • PIC17
  • PIC18


Tipo de memoria
  • FLASH
  • OTP
  • ROM
  • EEPROM


Número de I/O
  • 4 - 17 patillas
  • 18 - 27 patillas
  • 28 - 44 patillas
  • 45 - 80 patillas


Tamaño de memoria (bytes)
  • 0.5K - 1K
  • 2K - 4K
  • 8K - 16K
  • 24K -32K
  • 48K - 64K
  • 96K - 128K


En la clasificación por familias, las principales diferencias radican en el número de instrucciones y su longitud, el número de puertos y funciones, lo cual se refleja en el encapsulado, la complejidad interna y de programación, y en el número de aplicaciones.

Proceso de desarrollo en un microcontrolador


Consiste en 3 etapas principalmente:

1. Desarrollo del software


En esta etapa consiste en escribir y compilar/ensamblar el programa que determinara las acciones del Microcontrolador y su funcionamiento.
Existen distintas maneras de desarrollar el programa, dependiendo del lenguaje inicial que se utiliza para escribir el programa:
  • Lenguaje Assembly -> Lenguaje de Maquina/Código/Objeto
  • [(.asm) -> ensamblador -> (.hex, .o, .bin, .coff )]
  • Lenguaje de Alto Nivel -> Lenguaje Assembly -> Lenguaje de Maquina/Código/Objeto
  • [(.c, .cpp) -> compilador -> (.asm) -> ensamblador -> (.hex, .o, .bin, .coff )]




2. Programación del Microcontrolador


Este proceso corresponde a utilizar un programa en el PC que toma el código ensamblado (.hex, .o, .bin, .coff )para el microcontrolador específico, y lo envía mediante algún puerto (serial, paralelo, USB, etc.) a un dispositivo que lo escribe en la memoria del microcontrolador.
Se acostumbra denominar programador tanto al software como al hardware involucrado para este propósito, lo cual puede prestarse a confusión. El software programador a veces recibe también el nombre de downloader, ya que su propósito es descargar o transferir desde el PC al microcontrolador el código ensamblado.



3. Pruebas y verificación


Una vez programado el microcontrolador, se puede instalar en el circuito final para comprobar su adecuado funcionamiento.
Existen herramientas de software que permiten simular el comportamiento de un microcontrolador, muy útiles cuando el programa alcanza cierta complejidad.
Para resolver problemas en un circuito real, el instrumento mas utilizado es el analizador lógico.



Esto es todo para la entrada, me sirvió bastante para entender la arquitectura de los microcontroladores, sin embargo, esto es un resumen de lo que pude leer, les comparto las referencias donde se habla mas ampliamente de los conceptos. Saludos.

Referencias

sábado, 18 de febrero de 2012

[MDE Lab] Android SDK Installation

Esta vez instalaremos el SDK para programar nuestras aplicaciones para Android, el lenguaje que utilizaremos es JAVA, y utilizaremos la IDE de ECLIPSE para codificar.

Siempre es necesario actualizar nuestros repositorios de Ubuntu, haciendo un apt-get update antes de comenzar cualquier instalación.

Y aunque parezca innecesario, siempre es bueno verificar que cumplamos con los requisitos de sistema, podremos verificarlos en:


1. Instalación de Java y Eclipse


64 bits Operating Systems


Para evitar problemas en estos sistemas debemos antes que nada instalar algunas librerías de 32 bits, tecleando el siguiente comando en la terminal:

sudo apt-get install ia32-libs

Ahora instalaremos Java en nuestro sistema, para ello tenemos que abrir nuestra terminal y teclear:

sudo apt-get install openjdk-6-jdk

sudo apt-get install openjdk-6-jre



Una vez que instalamos el Java Developement Kit y Java Runtime Environment continuamos instalando la IDE Eclipse, para ello tecleamos desde nuestra terminal:

sudo apt-get install eclipse eclipse-platform

Una vez terminado el proceso de instalación, podremos accesar a la IDE en
Applications -> Programming -> Eclipse
(esto en Ubuntu 10.04, para escritorios Unity basta con teclear Eclipse en el Dash Launcher)

Eclipse Workspace Ubuntu 10.04


2. Instalación Android SDK


Teniendo nuestro sistema configurado, Java y Eclipse instalados, ahora tenemos que descargar el SDK correspondiente a nuestro sistema operativo de la siguiente página:


En mi caso seleccione el correspondiente a Linux, ahora sigue descomprimirlo tecleando:

tar -xzf android-sdk_[VERSION] (donde [VERSION] puede variar según cuál hayan descargado)

Ahora sigue configurarlo, para ello debemos ir a la ubicación [ANDROID SDK PATH]/tools/ y ejecutar el archivo android, lo podemos ejecutar desde la terminal tecleando:

sudo ./android

Entraremos al Android SDK Manager. Se abrirá una ventana como esta:


Es necesario instalar por lo menos 3 componentes:
  • Android SDK Tools
  • Android SDK Platform Tools
  • Por lo menos una plataforma de desarrollo

En mi caso (como pueden ver en la imagen) instalare las API's correspondientes a las versiones 2 y 4 de Android, y con ellos también vienen algunos ejemplos y documentación. Una vez seleccionados los componentes damos clic en Install Packages.
En la siguiente ventana damos clic en el radiobutton ACCEPT ALL y luego en INSTALL
Esperamos a que concluya la instalación.
En algunos casos nos pedirá una cuenta en la pagina de desarrolladores de algunos fabricantes, a mi me todo con Motorola (MOTOODEV) y HTC Developer, en este caso, como no tenia una, le di CANCEL. No se preocupen, solo se cancela la instalación de ese modulo, los demás continuaran instalándose.

3. ADT plugin para Eclipse

Este plugin convierte la sencilla interfaz de Eclipse en una poderosa IDE para programar Android, ya que nos proporciona opciones de autocompletar funciones y semi-automatizar los procesos de codificación, para ello:
  1. Iniciamos Eclipse.
  2. Dentro de la aplicación entramos al menú HELP -> INSTALL NEW SOFTWARE
  3. En la ventana que se abrió, localizamos el botón ADD y le damos clic.
  4. En la ventanita emergente introducimos la información:

    Name: ADT Plugin
    Location: https://dl-ssl.google.com/android/eclipse/

    Presionamos OK


  5. Seleccionamos el checkbox Developer Tools y damos clic en el botón NEXT
  6. En la siguiente ventana veremos la lista de características que serán instaladas, damos clic en el botón NEXT si estamos de acuerdo, deben ser 4 elementos.
  7. Algunos elementos tienen licencia, leemos los License Agreements y si estamos de acuerdo damos clic en FINISH
  8. Ahora solo basta esperar a que se descarguen e instalen los componentes, si nos sale alguna advertencia solo damos clic en OK
  9. Para finalizar reiniciamos Eclipse, botón RESTART NOW

Configurando ADT Plugin


Ahora es necesario configurar la IDE Eclipse con nuestro Android SDK. Para ello, iniciamos Eclipse y entramos al menú WINDOW -> PREFERENCES.
En la ventana emergente, del lado izquierdo seleccionamos Android y en la parte derecha en SDK Location damos clic en BROWSE.
Localizamos la ubicación donde descomprimimos el SDK de Android y la seleccionamos.
Para finalizar damos clic en OK



4. Probando la Instalación


Ahora, con todo correctamente instalado y configurado, podemos proceder a realizar algunos test y programar algo pequeño.

Abrimos Eclipse, y vamos a WINDOW -> AVD Manager, ahí damos clic en NEW para generar un nuevo dispositivo.
Yo lo creare con las características de un Samsung Galaxy Ace Plus

En AVD Manager podemos crear el dispositivo que queramos con las características que queramos (pantalla, almacenamiento, hardware). En la sección hardware podemos agregar muchas características físicas como acelerómetros, batería, cámara, etcétera. Esto lo agregamos haciendo clic en el botón NEW en la sección HARDWARE.



Con lo anterior ya podemos empezar a programar una aplicación de prueba, eso lo explicare en la próxima entrada, por ahora podemos juguetear un poco con los ejemplos incluidos en cada plataforma que descargamos. Saludos :)

Referencias

viernes, 17 de febrero de 2012

[MDE Lab] Android



"Android es un sistema operativo móvil basado en Linux, que junto con aplicaciones middleware, está enfocado para ser utilizado en dispositivos móviles como teléfonos inteligentes, tablets, Google TV y otros dispositivos. Es desarrollado por la Open Handset Alliance, la cual es liderada por Google. 

Fue desarrollado inicialmente por Android Inc., una firma comprada por Google en 2005. Es el principal producto de la Open Handset Alliance, un conglomerado de fabricantes y desarrolladores de hardware, software y operadores de servicio. Las unidades vendidas de teléfonos inteligentes con Android se ubican en el primer puesto en los Estados Unidos, en el segundo y tercer trimestres de 2010, con una cuota de mercado de 43,6% en el tercer trimestre."


Open Handset Alliance




La Open Handset Alliance (OHA) es una alianza comercial de 78 compañías para desarrollar estándares abiertos para dispositivos móviles. Algunos miembros son Google, HTC, Dell, Intel, Motorola, Qualcomm, Texas Instruments, Samsung, LG, T-Mobile, Nvidia y Wind River Systems.

La OHA se fundó el 5 de noviembre de 2007, liderada por Google con otros 34 miembros entre los que se incluían fabricantes de dispositivos móviles, desarrolladores de aplicaciones, algunos operadores de comunicaciones y fabricantes de chips.

Al mismo tiempo que se anunciaba la formación de la Open Handset Alliance el 5 de noviembre de 2007, la OHA presentó Android, una plataforma de código libre para teléfonos móviles basada en el sistema operativo Linux.1 Una beta del SDK fue lanzada para desarrolladores el 12 de noviembre de 2007. Basado en una licencia de código libre, compite contra otras plataformas móviles propietarias de Apple, Microsoft, Nokia, Palm, Research In Motion y Bada.

Android se inició oficialmente el día 22 de octubre de 2008 en Estados Unidos, cuando fue lanzado el primer teléfono con Android a bordo, el G1 de T-Mobile que tenía un procesador a 528Mhz, 256MB de ROM y 192MB de RAM, su pantalla era de 3,2″ y 320×480 píxeles, cámara de 3,2 Megapíxeles, teclado QWERTY completo de 5 filas, TrackBall, Bluetooth 2.0, Wi-Fi 802.11 b/g, GPS, todo ello en unas medidas de 117.7×55.7×17.1mm y un peso de 158 gramos.

T-Mobile HTC G1


Novedades


La ventana de notificación desplegable. Fue la gran novedad que introdujo Android, apostó desde el principio por un sistema de notificación con el que tener toda la información a la vista y el tiempo le ha dado la razón ya que ha sido copiado por iOS en su última versión.

Widgets en la pantalla de inicio. Google tenía grandes planes para los widgets desde el principio y ya desde entonces ofrecía una gran variedad de widgets configurables para anclar al inicio, la pega: que los desarrolladores no podían crear sus propios widgets.

Integración de Gmail. Android 1.0 supuso la mejor experiencia de correo en el móvil que había en el mercado gracias al apoyo de Gmail a POP e IMAP.

Android Market. Era difícil imaginar un Smartphone sin tienda de aplicaciones, el primer Android Market salió sin apenas aplicaciones y con un diseño de una sola fila ubicada en la parte superior de la pantalla de inicio de la aplicación.

Curiosidades. La interfaz de usuario fue desarrollada con ayuda de The Astonishing Tribe, una firma de diseñadores suecos que es responsable de algunos conceptos de interfaz muy interesantes. En los primeros relojes analógicos incluidos en Android se podía leer “Malmö” en homenaje a la ciudad natal de TAT. La empresa actualmente trabaja para BlackBerry desarrollando la plataforma BBX.

Evolución del Sistema Operativo


Android 1.1



En febrero de 2009 llegó la primera actualización para Android, unos tres meses después del lanzamiento del G1. La versión 1.1 fue dedicada básicamente a reparar errores y a implementar las actualizaciones “over the air” que hasta ese momento ninguna plataforma estaba haciendo.

Android 1.5 "Cupcake"



Fue la primera versión en utilizar nombre de postres, cada versión después de Cupcake ha sido nombrada con un nombre de postre continuando el orden alfabético.

En esta versión hubo cambios en la interfaz de usuario. Las primeras versiones de Android no contaban con un teclado virtual, ya que el G1 disponía de un teclado físico, en la 1.5 se introdujo el teclado virtual coincidiendo con la salida del primer Android con pantalla táctil y sin teclado físico, el HTC Magic.

El primer teclado virtual integrado en Android fue considerado un poco malo, cosa que provocó que fabricantes como HTC se pusieran manos a la obra para desarrollar remplazos del mismo.

Se permitió que widgets de terceros estuvieran disponibles para los usuarios.

Se integró un portapapeles (copy-paste) por primera vez en esta versión y fue terminada en posteriores versiones.

La primera versión de Android no ofrecía la posibilidad de grabar vídeo ni de reproducción, si no que se integró con la 1.5.

En versiones anteriores no se podía eliminar ni archivar mensajes de correo electrónico en múltiples cuentas. Se agrega además soporte para subir vídeos a YouTube y Picasa. Finalmente se añade la sincronización a través de múltiples cuentas.

Android 1.6 "Donut"





Soporte para redes CDMA (Estados Unidos y Asia).

Posibilidad de correr el sistema operativo en múltiples resoluciones de pantalla y relaciones de aspecto.

Búsqueda rápida mejor conocida como búsqueda universal. (Buscar contenido en Internet y en el dispositivo)

Nuevo diseño de Android Market al estilo de la mascota de Android en color blanco y verde, introducción de listas de aplicaciones gratuitas y de pago. Nueva interfaz de la cámara con mejor integración en la galería.

Android 2.0 "Eclair"





Lanzado un año después del G1, a principios de noviembre de 2009.

Posibilidad de añadir varias cuentas en el mismo dispositivo con acceso al correo electrónico y a los contactos de cada una, además también se introdujo soporte para cuentas de Exchange.

Se agrega Google Maps Navigation que fue un paso adelante parar integrar un sistema de navegación de automóviles en el móvil con vistas en 3D, guía de voz e información de tráfico de forma completamente gratuita.

Eclair agregó una barra de contacto rápido, una barra de herramientas desplegable que se utiliza para realizar múltiples funciones de manera rápida (mandar email, mensajes, llamar, etc.)

Nuevas mejoras en el teclado, renovación del navegador (soporte HTML5), vídeo en pantalla completa, fondos de pantalla animados.

Los usuarios podían dictar a su teléfono y éste lo transcribía a texto (TTS).

Nueva pantalla de bloqueo, para desbloquear el teléfono o silenciarlo tan solo teníamos que deslizar el dedo por la misma en una dirección u otra. Android 2.1 cambió la pantalla de bloqueo y la hizo más al estilo iOS.

Y entonces llegó el Nexus One, el primer teléfono de Google fabricado por HTC y que estaba destinado a mostrar el más puro estilo Android 2.1 sin ninguna modificación. Fue uno de los primeros smartphones con procesador de 1GHz Qualcomm Snapdragon del mercado, además contaba con una pantalla AMOLED con resolución WVGA. Hoy en día se sigue utilizando y es aún un buen teléfono.

Android 2.2 "Froyo"





Lanzado a mediados de 2010 trajo una gran cantidad de cambios. La pantalla de inicio fue rediseñada, se ampliaron los 3 paneles existentes desde el inicio a 5 con un nuevo grupo de accesos directos dedicados y se agregaron unos puntos para saber en cada momento en la pantalla donde nos encontrábamos.

Froyo también introducía una galería completamente rediseñada con imágenes en 3D que aparecen al inclinar el teléfono. Además se introdujo soporte para hotspot móvil (compartir la conexión 3G), algo que muchas compañías decidieron desactivar o activarla con la opción de pagar un coste extra. Se mejoró también el soporte para copiar y pegar en Gmail.

En esta versión se agregó la posibilidad de poner una contraseña o PIN en la pantalla de bloqueo para los usuarios que no les gustaba el patrón de desbloqueo.

Android 2.3 "Gingerbread"





Con el Nexus S llegó la pantalla curvada y el fin del trackball, y con el Gingerbread que fue una actualización menor en muchos sentidos pero trajo algunos cambios importantes en la interfaz de usuario.

Mejor control en copiar y pegar: Se añade en esta versión la posibilidad de seleccionar el texto que queremos copiar y pegar. Anteriormente solo se podía copiar el contenido de las cajas completas. Se agregan unas pestañas para seleccionar el texto que queremos copiar.

Teclado mejorado, maximización de la batería y herramientas de gestión de desarrollo, por primera vez se agrega soporte para cámara frontal.

Apoyo a la tecnología NFC integrada en una antena incrustada en la tapa de la batería

Se dio más libertad a los desarrolladores para poder escribir código más rápido y desarrollar juegos con gráficos en 3D que hasta entonces no disponía Android. Google estaba perdiendo la batalla de los juegos con iOS y tenía que reaccionar.

Android 3.0 "Honeycomb"





Llega la versión de Android para tablets. Cambio de color, del verde típico de Android al azul que se utilizó para la batería, el widget del reloj, indicadores de señal y algunas otras características de la interfaz.

El final de los botones físicos, ya que se integra una barra en la parte inferior de la pantalla con una serie de botones virtuales que hacen que no se necesiten botones dedicados.

Multitarea mejorada, una nueva barra para las aplicaciones que es una barra permanente situada en la parte superior de cada aplicación que los desarrolladores pueden utilizar para mostrar las opciones de acceso frecuente, menús, etc. Es como una barra de estado dedicada a cada aplicación.

Android 3.1 y 3.2 fueron versiones de mantenimiento, prueba de ello es que Google no las renombró y continuaron llamándolas Honeycomb.

Android 4.0 "Ice Cream Sandwich"





Es la última versión del sistema operativo de Google, que ha sido lanzada junto con el Galaxy Nexus, fabricado por Samsung. Toma prestadas muchas características de Honeycomb como los botones virtuales o la transición de tonos verdes a azules, la multitarea con una lista desplegable de miniaturas y las barras de acción dentro de las aplicaciones.

Se modifica el tipo de letra, Roboto, que ha sido diseñada para aprovechar la mayor resolución de las pantallas de hoy en día.

El teclado virtual también ha sido modificado, esta vez incluye un sistema de corrección mucho más avanzado que subraya en color rojo las palabras mal escritas e incorpora también un diccionario.

La pantalla adopta muchos cambios de los que se introdujeron en Honeycomb pero añade además algunas características nuevas como la posibilidad de crear carpetas con solo arrastrar un icono a otro. Además la pantalla principal recibe una bandeja de favoritos que puede ser configurada por el usuario.

En Ice Cream Sandwich se busca potenciar el uso de NFC con una nueva característica para transferencia de datos entre dos teléfonos con solo tocarlos.

Además del bloqueo con contraseña y con patrón de desbloqueo se ha agregado la opción del desbloqueo facial.

Se añade un gestor para el uso de los datos en el que se informa de las aplicaciones que consumen más datos, se puede ver el uso total desglosado en un periodo de tiempo configurable por el usuario.

Nuevo calendario y aplicaciones de correo electrónico. El correo electrónico de Gmail ha sido revisado en Ice Cream Sandwich con nuevos diseños y con la incorporación de la barra de acción. El calendario está unificado, se pueden ver todos los eventos de todas las cuentas en el mismo calendario.

Futuro

Actualmente se encuentra en desarrollo la versión Jelly Bean, sin embargo, no se tienen mayores datos de esta.

Referencias

jueves, 16 de febrero de 2012

[MDE Lab] Comunicación Inalámbrica

Un beneficio de los dispositivos móviles es su conectividad. Prácticamente son dispositivos todo terreno, como una navaja suiza.
Y también pueden presumir que todas las tecnologías posibles de comunicación han pasado por ellos antes de generalizarse a otros dispositivos de mayor tamaño, hoy vamos a revisar algunos de estos métodos, o mejor dicho, estándares de comunicación.

1. Infrarrojo (IrDA)



Las ondas infrarrojas se usan mucho para la comunicación de corto alcance. Por ejemplo, en los años 70, Hewlett-Packard desarrolló su calculadora HP-41 que utilizaba un transmisor infrarrojo para enviar la información a una impresora térmica portátil.
La tecnología fue evolucionando hasta llegar a todos los controles remotos de los televisores, grabadores de vídeo y estéreos. Estos controles son direccionales, baratos y fáciles de construir, pero no tiene la capacidad de atravesar objetos sólidos.

Los estándares IrDA soportan una amplia gama de dispositivos eléctricos, informáticos y de comunicaciones, permite la comunicación bidireccional entre dos extremos a velocidades que oscilan entre los 9.600 bps y los 4 Mbps.

El estándar VFIR se encuentra en estudio, con unas velocidades teóricas de hasta 16 Mbps.

2. Radiofrecuencia



Las propiedades de las ondas de radio dependen de la frecuencia. A bajas frecuencias, las ondas de radio cruzan bien los obstáculos, pero la potencia se reduce drásticamente con la distancia a la fuente. A frecuencias altas, las ondas de radio tienden a viajar en línea recta y a rebotar en los obstáculos. También son absorbidas por la lluvia. Todas las ondas de radio están sujetas a interferencia por los motores y equipos eléctricos.

Infrarrojo vs. Radio Frecuencia
  • Las transmisiones de radio frecuencia tienen una desventaja: que los países están tratando de ponerse de acuerdo en cuanto a las bandas que cada uno puede utilizar. La transmisión Infrarroja no tiene este inconveniente por lo tanto es actualmente una alternativa para las Redes Inalámbricas.
  • El sistema infrarrojo no necesita de licencia del gobierno para operar en contraste con los sistemas de radio.
  • La comunicación con infrarrojo no se puede usar en exteriores porque el sol brilla con igual intensidad en el infrarrojo como en el espectro visible.
  • La comunicación con infrarrojo tiende a tener menor alcance que la comunicación por radio frecuencia.
  • Las transmisiones de radio frecuencia son omnidireccionales mientras que las transmisiones infrarrojas mejoran su alcance y calidad si se encuentran alineados el transmisor y el receptor.

3. Telefonía Móvil


Básicamente está formada por dos grandes partes: una red de comunicaciones (o red de telefonía móvil) y los terminales (o teléfonos móviles) que permiten el acceso a dicha red.

Los primeros sistemas de telefonía móvil civil empiezan a desarrollarse a partir de finales de los años 40 en los Estados Unidos. Eran sistemas de radio analógicos que utilizaban en el primer momento modulación en amplitud (AM) y posteriormente modulación en frecuencia (FM). Se popularizó el uso de sistemas FM gracias a su superior calidad de audio y resistencia a las interferencias. El servicio se daba en las bandas de HF y VHF.

3.0 0G


Los Mobile Radio Telephone ( Radio-Teléfono Móvil) fueron los primeros teléfonos móviles que existieron, que incluían las tecnologías PTT, MTS, IMTS y AMTS.

Los teléfonos móviles que trabajaban bajo las tecnologías anteriormente mencionadas (denominados como 0G (Generación Cero)) eran un radio-teléfono disponible como un servicio comercial conectado a la red de telefonía fija, con sus propios números, eran una especie de red como la radio policíaca o el servicio de despacho de taxis.
Esos teléfonos móviles usualmente eran montados en autos o camionetas, aunque también se fabricaron modelos de bolsillo. Eran vendidos mediante WCC's (Wireline Common Carries) (en Castellano; Compañías Telefónicas), RCC's (Radio Common Carries) (en Castellano; Compañías de Telefonía Móvil Radial).
Los primeros usuarios fueron Constructores, Agentes Inmobiliarios y Celebridades.

3.1 Primera Generación (Análoga)


Uno de los estándares de 1G es el NMT (Nordic Mobile Telephone), usado inicialmente en los países Nórdicos, y luego también en Holanda, Europa del Este y Rusia, entre otros. Otros incluyen el AMPS usado en los Estados Unidos, TACS (Total Access Communications System) en el Reino Unido, C-450 en Alemania Oriental, Portugal y el Sur de África, Radiocom 2000 en Francia y RTMI en Italia. En Japón se implementaron múltiples sistemas; tres estándares, TZ-801, TZ-802, TZ-803, desarrollados por NTT, con un sistema de competencia operado por DDI usando el estándar JTACS.

3.1 Segunda Generación (GSM)



La telefonía móvil 2G no es un estándar o un protocolo sino que es una forma de marcar el cambio de protocolos de telefonía móvil analógica a digital.

GSM es un sistema estándar, libre de regalías, de telefonía móvil digital.
Un cliente GSM puede conectarse a través de su teléfono con su computador y enviar y recibir mensajes por correo electrónico, faxes, navegar por Internet, acceder con seguridad a la red informática de una compañía (red local/Intranet), así como utilizar otras funciones digitales de transmisión de datos, incluyendo el servicio de mensajes cortos (SMS) o mensajes de texto.

General Packet Radio Service (GPRS) o servicio general de paquetes vía radio es una extensión del Sistema Global para Comunicaciones Móviles (Global System for Mobile Communications o GSM) para la transmisión de datos no conmutada (o por paquetes). Permite velocidades de transferencia de 56 a 144 kbps.
Con GPRS se pueden utilizar servicios como Wireless Application Protocol (WAP) , servicio de mensajes cortos (SMS), servicio de mensajería multimedia (MMS), Internet y para los servicios de comunicación, como el correo electrónico y la World Wide Web (WWW).

EDGE es el acrónimo para Enhanced Data Rates GSM of Evolution (Tasas de Datos Mejoradas para la evolución de GSM). También conocida como EGPRS (Enhanced GPRS).
Es una tecnología de la telefonía móvil celular, que actúa como puente entre las redes 2G y 3G. EDGE se considera una evolución del GPRS (General Packet Radio Service). Esta tecnología funciona con redes GSM.
EDGE puede alcanzar una velocidad de transmisión de 384 Kbps en modo de paquetes, con lo cual cumple los requisitos de la ITU para una red 3G, también ha sido aceptado por la ITU como parte de IMT-2000, de la familia de estándares 3G.



3.1 Tercera Generación (3G)

  • Alta velocidad en transmisión de datos, hasta 144 Kb/s, velocidad de datos móviles (vehicular); hasta 384 Kb/s, velocidad de datos portátil (peatonal) y hasta 2 Mb/s, velocidad de datos fijos (terminal estático).
  • Transmisión de datos simétrica y asimétrica.
  • Servicios de conmutación de paquetes y en modo circuito, tales como tráfico Internet (IP) y video en tiempo real.
  • Calidad de voz comparable con la calidad ofrecida por sistemas alámbricos.
  • Mayor capacidad y mejor eficiencia del espectro con respecto a los sistemas actuales.
  • Capacidad de proveer servicios simultáneos a usuarios finales y terminales.
  • Incorporación de sistemas de segunda generación y posibilidad de coexistencia e interconexión con servicios móviles por satélite.
  • Voz en banda estrecha a servicios multimedia en tiempo real y banda ancha.
  • Servicios unificados de mensajes como correo electrónico multimedia.
  • Aplicaciones de comercio electrónico móvil, que incluye operaciones bancarias y compras móviles.
  • Aplicaciones audio/video en tiempo real como videoteléfono, videoconferencia interactiva, audio y música, aplicaciones multimedia especializadas como telemedicina y supervisión remota de seguridad


3.1 Cuarta Generación (4G)


La 4G esta basada completamente en el protocolo IP, siendo un sistema de sistemas y una red de redes, que se alcanza gracias a la convergencia entre las redes de cables e inalámbricas.
Esta tecnología podrá ser usada por modems inalámbricos, celulares inteligentes y otros dispositivos móviles. La principal diferencia con las generaciones predecesoras será la capacidad para proveer velocidades de acceso mayores de 100 Mbps en movimiento y 1 Gbps en reposo, manteniendo una calidad de servicio (QoS) de punta a punta de alta seguridad que permitirá ofrecer servicios de cualquier clase en cualquier momento, en cualquier lugar, con el mínimo coste posible.

El concepto de 4G trae unas velocidades mayores a las de 300 Mbps con un rating radio de 8.000 Khz; entre otras, incluye técnicas de avanzado rendimiento radio como MIMO y OFDM.

Dos de los términos que definen la evolución de 3G, siguiendo la estandarización del 3GPP, serán LTE (‘Long Term Evolution’) para el acceso radio, y SAE (‘Service Architecture Evolution’) para la parte núcleo de la red.

Los requisitos ITU y estándares 4G indican las siguientes características:
  • Para el acceso radio abandona el acceso tipo CDMA característico de UMTS.
  • Uso de SDR (Software Defined Radios) para optimizar el acceso radio.
  • La red completa prevista es todo IP.
  • Las tasas de pico máximas previstas son de 100 Mbps en enlace descendente y 50 Mbps en enlace ascendente (con un ancho de banda en ambos sentidos de 20Mhz).


4. Bluetooth




Bluetooth es una especificación industrial para Redes Inalámbricas de Área Personal (WPAN) que posibilita la transmisión de voz y datos entre diferentes dispositivos mediante un enlace por radiofrecuencia en la banda ISM de los 2,4 GHz.
Los principales objetivos que se pretenden conseguir con esta norma son:
  • Facilitar las comunicaciones entre equipos móviles y fijos.
  • Eliminar cables y conectores entre éstos.
  • Ofrecer la posibilidad de crear pequeñas redes inalámbricas y facilitar la sincronización de datos entre equipos personales.
Los dispositivos que con mayor frecuencia utilizan esta tecnología pertenecen a sectores de las telecomunicaciones y la informática personal, como PDA, teléfonos móviles, computadoras portátiles, ordenadores personales, impresoras o cámaras digitales.
Estos dispositivos se clasifican como "Clase 1", "Clase 2" o "Clase 3" en referencia a su potencia de transmisión, siendo totalmente compatibles los dispositivos de una clase con los de las otras.
  • Clase 1 con cobertura de hasta 100 metros
  • Clase 2 con cobertura de hasta 10 metros
  • Clase 3 con cobertura de hasta 1 metro
Versiones
  • Versión 1.2 hasta 1 Mbit/s
  • Versión 2.0 + EDR hasta 3 Mbit/s
  • Versión 3.0 + HS hasta 24 Mbit/s
  • Versión 4.0 hasta 24 Mbit/s

5. Wi-FI




Existen diversos tipos de Wi-Fi, basado cada uno de ellos en un estándar IEEE 802.11 aprobado. Son los siguientes:
  • Los estándares IEEE 802.11b, IEEE 802.11g e IEEE 802.11n disfrutan de una aceptación internacional debido a que la banda de 2.4 GHz está disponible casi universalmente, con una velocidad de hasta 11 Mbps , 54 Mbps y 300 Mbps, respectivamente.
  • El estándar IEEE 802.11a, conocido como WIFI 5, que opera en la banda de 5 GHz y que disfruta de una operatividad con canales relativamente limpios. La banda de 5 GHz ha sido recientemente habilitada y, además, no existen otras tecnologías que la estén utilizando, por lo tanto existen muy pocas interferencias. Su alcance es algo menor que el de los estándares que trabajan a 2.4 GHz (aproximadamente un 10%), debido a que la frecuencia es mayor (a mayor frecuencia, menor alcance).
  • Existe un primer borrador del estándar IEEE 802.11n que trabaja a 2.4 GHz y a una velocidad de 108 Mbps. Sin embargo, el estándar 802.11g es capaz de alcanzar ya transferencias a 108 Mbps, gracias a diversas técnicas de aceleramiento. Actualmente existen ciertos dispositivos que permiten utilizar esta tecnología, denominados Pre-N.
  • Existen otras tecnologías inalámbricas como Bluetooth que también funcionan a una frecuencia de 2.4 GHz, por lo que puede presentar interferencias con Wi-Fi. Debido a esto, en la versión 1.2 del estándar Bluetooth por ejemplo se actualizó su especificación para que no existieran interferencias con la utilización simultánea de ambas tecnologías, además se necesita tener 40.000 k de velocidad.


En la siguiente imagen se pueden apreciar mejor las diferencias entre estándares (dale clic).



6. Wi-MAX




Siglas de Worldwide Interoperability for Microwave Access (Interoperabilidad mundial para acceso por microondas), es una norma de transmisión de datos que utiliza las ondas de radio en las frecuencias de 2,3 a 3,5 Ghz.
Se le conoce como estándar 802.16 y puede alcanzar una velocidad de comunicación de más de 100 Mbit/s en un canal con un ancho de banda de 28 MHz (en la banda de 10 a 66 GHz), mientras que el 802.16a puede llegar a los 70 Mbit/s, operando en un rango de frecuencias más bajo (<11 GHz).

Características
  • Distancias de hasta 80 kilómetros, con antenas muy direccionales y de alta ganancia.
  • Velocidades de hasta 75 Mbps, 35+35 Mbps, siempre que el espectro esté completamente limpio.
  • Facilidades para añadir más canales, dependiendo de la regulación de cada país.
  • Anchos de banda configurables y no cerrados, sujetos a la relación de espectro.
  • Permite dividir el canal de comunicación en pequeñas subportadoras (dos tipos: guardias y datos).


Referencias

domingo, 12 de febrero de 2012

[Emb Comp Class] Tarea Intro: Lenguaje Ensamblador

Este es mi reporte sobre la Tarea Intro, programar en Lenguaje Ensamblador una rutina, y analizarla para entender un poco sobre las funciones de este lenguaje.

Para este reporte decidí realizar una rutina algo común, es un factorial recursivo. Lo siguiente es el código en C:



Después de eso, hay que compilarlo para obtener el código en Ensamblador, esto con la instrucción:
gcc -S factorial.c
Este es el resultado:



Después, lo siguiente fue optimizar el código, eliminando aquellas instrucciones que no fueran necesarias, la mayoría de las lineas que elimine fueron etiquetas debug y algunos movimientos de memoria innecesarios.
Cuando recién compilamos aparecerán muchas líneas basura, la mayoría comienzan con .cfi, todas esas líneas podemos eliminarlas.
Algunas etiquetas como .file, .type, tambien podemos suprimirlas
También elimine algunos intercambios de registros innecesarios, por ejemplo, el return de la función factorialRec realizaba los siguientes movimientos:
mov %eax, 12(%esp)
mov 12(%esp), %eax
Este procedimiento lo elimine porque no tenia sentido hacer ese intercambio.

El nuevo código en Ensamblador es el siguiente:



Lo siguiente son las diapositivas que explique en clase, lo dejo como evidencia y por si quieren visualizar algo, la mayoria de la informacion que les comparto se encuentra en la siguiente liga: Lenguaje Ensamblador Teoría



Cualquier comentario, sugerencia o aclaracion, dejen un comentario.

Referencias: AQUI

sábado, 11 de febrero de 2012

[Emb Comp Lab] Lenguaje Ensamblador (Assembly)

"Es un lenguaje de programación de bajo nivel. Implementa una representación simbólica de los códigos de máquina binarios y otras constantes necesarias para programar una arquitectura dada de CPU y constituye la representación más directa del código máquina específico para cada arquitectura legible por un programador. 
Esta representación es usualmente definida por el fabricante de hardware, y está basada en los mnemónicos que simbolizan los pasos de procesamiento (las instrucciones), los registros del procesador, las posiciones de memoria, y otras características del lenguaje. Un lenguaje ensamblador es por lo tanto específico a cierta arquitectura de computador física (o virtual).


Mnemónico: es un dato simbólico que identifica a un comando generalmente numérico (binario, octal, hexadecimal) de una forma más sencilla que su numeración original, lo cuál facilita radicalmente la memorización de este comando para el programador.

Características

  • Es un lenguaje de bajo nivel.
  • El lenguaje ensamblador es difícilmente portable. Al cambiar a una máquina con arquitectura diferente, generalmente es necesario reescribirlo completamente.
  • Los programas en lenguaje ensamblador son generalmente mucho más rápidos y consumen menos recursos del sistema (memoria RAM y ROM) que el programa equivalente compilado desde un lenguaje de alto nivel. Al programar cuidadosamente en lenguaje ensamblador se pueden crear programas que se ejecutan más rápidamente y ocupan menos espacio que con lenguajes de alto nivel.
  • Con el lenguaje ensamblador se tiene un control muy preciso de las tareas realizadas por un microprocesador por lo que se pueden crear segmentos de código difíciles y/o muy ineficientes de programar en un lenguaje de alto nivel, ya que, entre otras cosas, en el lenguaje ensamblador se dispone de instrucciones del CPU que generalmente no están disponibles en los lenguajes de alto nivel.
  • Por lo general, cada arquitectura tiene su propia "versión" de ensamblador, es muy probable que un código escrito para cierta arquitectura no pueda ser ejecutado en otras, sino que sera necesario reescribir todo el código.


Obtener Assembly desde C

Desde la terminal tecleamos:
gcc -S nombreDelCodigo.c
Esto genera un archivo con terminacion .s que contiene el código en Assembly

Compilar Assembly

Desde la terminal tecleamos:
gcc -o nombreDelEjecutable nombreDelCodigo.c
Para ejecutar tecleamos:
./nombreDelEjecutable

Algunos conceptos


Stack



Stack Frame o en español Marco de Pila es un espacio en la memoria donde, de manera temporal, se almacena la información utilizada por una función para poder recuperarla después.

Principalmente, almacena 3 cosas:
  • Parámetros de una función
  • Variables locales
  • La dirección de retorno

Registros



os registros del procesador se emplean para controlar instrucciones en ejecución, manejar direccionamiento de memoria y proporcionar capacidad aritmética. Los registros son espacios físicos dentro del microprocesador con capacidad de 4 bits hasta 64 bits dependiendo de la arquitectura.

El registro %ebp (base pointer), apunta a la base del stack de la función que se esta ejecutando

El registro %esp (stack pointer), apunta a la cima del stack de la función que se esta ejecutando.

Registros de uso general

  • AX: Registro acumulador, dividido en AH y AL (8 bits cada uno).- Interviene en las operaciones aritméticas y lógicas, después de la operación arroja un resultado.
  • BX: Registro base, dividido en BH y BL.- Se utiliza en transferencias de datos entre la memoria y el procesador.
  • CX: Registro contador, dividido en CH y CL.- Se utiliza como contador en bucles(LOOP), en operaciones con cadenas(REP), y en desplazamientos(CL).
  • DX: Registro de datos, dividido en DH y DL.- Se utiliza en operaciones de multiplicación y división junto con Ax y en operaciones de entrada y salida de puertos, su mitad inferior DL contiene el número de puertos.

Registros de segmento

Un registro de segmento se utiliza para alinear en un limite de párrafo o dicho de otra forma codifica la dirección de inicio de cada segmento y su dirección en un registro de segmento supone cuatro bits 0 a su derecha. Un registro de segmento tiene 16 bits de longitud y facilita un área de memoria para direccionamientos conocidos como el segmento actual. Los registros de segmento son: CS (código), DS (datos), SS (pila), ES , FS y GS.

Registro Apuntador de instrucciones (IP)

El registro apuntador de instrucciones (IP) de 16 bits contiene el desplazamiento de dirección de la siguiente instrucción que se ejecuta.

Registro índice

Los registros SI y DI están disponibles para direccionamientos indexados y para sumas y restas. Que son las operaciones de punta.

Registro de bandera (EFLAGS)

Los registros de banderas sirven parar indicar el estado actual de la maquina y el resultado del procesamiento, Cuando algunas instrucciones piden comparaciones o cálculos aritméticos cambian el estado de las banderas.

Ejecución del Código


1. Push Parameters: Los parámetros de la función que fue llamada son empujados al stack, al mismo tiempo se lleva un registro de los bytes ocupados por los parámetros y se almacena el offset en donde se encuentran. Esto sirve para las labores de limpieza posteriores.

2. Call the function: El procesador empuja el registro %EIP (Instruction Pointer) dentro del stack, el cual apunta al primer byte después de la llamada a la función (instrucción CALL). Después de que termina la ejecución de la función, esta pierde el control y lo pasa a la función desde la cual fue llamada.

3. Guardar y actualizar el registro %ebp: Ahora estamos preparados para la nueva función, necesitamos reservar el stack local de la misma; lo anterior se logra guardando el %ebp que pertenece a la función anterior y que el apuntador %esp apunte al tope del nuevo stack. A esto se le llama prologo, sus instrucciones son:
push ebp mov ebp, esp
4. Guardar los registros del CPU: : Si la función necesita utilizar registros del CPU, se deben guardar los anteriores. Se empujan uno a uno a la pila. El compilador debe recordar este paso para poder recuperarlos después.

5. Reservar el espacio para las variables locales: A esto se le conoce como "enderezar la pila o alinear la pila". La función realiza una suma del espacio que utilizaran las variables (caracteres = 1byte, enteros = 4bytes), se suma su tamaño en bytes y la función decrementa el apuntador %esp en grupos de 4bytes hasta alcanzar el tamaño calculado. Entonces, las variables locales se alojan entre el registro %ebp y el registro %esp.

6. Ejecutar la tarea de la función: En este punto el stack ya esta construido, mas o menos asi:

La función es libre de utilizar todo registro dentro del stack, con ellos puede realizar todas las operaciones para las cuales fue creada.

7. Liberar el espacio temporal: Una vez que la función termina su ejecución primero debe liberar el espacio alojado por sus variables. Esto de logra con algunas operaciones POP.

8. Restaurar los registros guardados: Deben ser restaurados en el mismo orden en el cual fueron guardados, para ello se utilizan algunas operaciones POP.

9. Restaurar el puntero al registro base anterior: En el stack hemos guardado el puntero al registro %ebp del anterior stack, esto es hacer que %esp apunte a %ebp y despues hacemos POP a %ebp. Con ello destruimos el stack de la función recién concluida y restauramos el stack de la función anterior. A esto se le llama epílogo y las instrucciones son:
mov esp, ebp pop ebp
Que es equivalente a la instrucción
LEAVE
10. Regresar el control a la función anterior: La instrucción RET saca (POP) el registro %eip del stack y entonces la ejecución salta a esa ubicación, regresando el control a la función padre.

11. Limpiar los parámetros introducidos al inicio: Con algunas instrucciones POP, se sacan los parámetros introducidos en el stack. La función recuerda el offset de inicio y final para sacarlos a todos rápidamente.

Para entender un poco mejor estos conceptos les dejo el siguiente código en C. El código en ensamblador tiene comentarios para su mejor análisis.
Referencias

viernes, 10 de febrero de 2012

[MDE Lab] Historia y Evolucion de los Dispositivos Moviles



Definir lo que es un dispositivo móvil es una tarea difícil, se trata de un concepto bastante generalizado que abarca un gran conjunto de productos.

Pero a grandes rasgos podemos definir un dispositivo móvil como aquellos aparatos lo suficientemente ligeros para ser transportados cómodamente por una persona, y que disponen de una batería que les otorga autonomía para funcionar.
Normalmente tienen prestaciones muy limitadas. En este caso, una laptop o computadora cualquiera no se considera dispositivo móvil.

Clasificación

  • 1. Teléfonos: Son los mas pequeños y portátiles. Su función principal es la de ofrecer un medio de comunicación continua para realizar llamadas y recibir mensajes. Actualmente existe una gama alta de teléfonos denominados Smartphones que proporcionan herramientas mas especializadas y una conectividad completa.
  • 2. Asistentes Personales: Su funcionalidad principal era la de servir como organizadores de agenda, eventos, calendario, contactos, etcétera. Actualmente han sido rebasados por los smartphones y las tabletas.
  • 3. Videojuegos: Esta clasificación es relativamente nueva, sin embargo, se ha decido integrar ya que las consolas de ultima generación proporcionan una buena conectividad a Internet, funciones organizadoras y aplicaciones.
  • 4. Tablets: Son productos relativamente nuevos, es un mercado emergente orientado a un grupo especial de personas que buscan algo mas que un smartphone sin llegar a una laptop. Su principal desventaja es su alto precio. Proporcionan las mismas funciones que un teléfono inteligente, pero combinan una pantalla mas grande.


Un poco de historia...




Para mucha gente, el primer dispositivo portatil fue un asistente personal llamado Newton. Fue la primera platafoclasicorma móvil desarrollada por Apple justo por detrás de iOS. En su momento fue un gran producto, tan revolucionario, que fracaso completamente debido al selecto mercado existente.

El siguiente paso se considera que lo dieron las calculadoras fabricadas por HP y Casio. Estas calculadoras tenían capacidades de sincronización con computadoras de escritorio y poseían capacidades gráficas y accesorios.

El siguiente paso lo hicieron las llamadas PocketPC o PDA, un segmento de los dispositivos móviles que en su momento PALM lidero. Pero en realidad, el éxito de estos dispositivos fue su alta conectividad con Windows, las tareas de sincronización eran sencillas y poseían una buena conectividad, desde el clásico IrDA hasta el Wi-Fi, pasando por el Bluetooth.


Sin embargo, los reyes de los dispositivos moviles son los telefonos.



El teléfono móvil se remonta a la época de la Segunda Guerra Mundial cuando Motorola desarrollo un equipo de comunicación llamado Handie Talkie H12-16, básicamente fue un sistema de comunicación por medio de ondas de radio, que comunicaba a los soldados en el campo de batalla.



En la actualidad, es mas fácil resumir la historia de los teléfonos móviles si los clasificamos por generaciones:

Generación 0

Es el comienzo de todo, y existe cierto discernimiento si en realidad los dispositivos de esta generación son en realidad dispositivos móviles. Son aparatos que utilizan las ondas de radio para comunicarse, como los Walkie Talkie.
Los estándares de comunicación en esta generación son:
  • PTT: Siglas de Push To Talk, pulsar para hablar
  • IMTS: Improved Mobile Telephone System.


Motorola DynaTac



Surgidos a partir de 1973 y con un tamaño y peso inmanejable, los móviles de primera generación funcionaban de manera analógica, es decir que la transmisión y recepción de datos se apoyaba sobre un conjunto de ondas de radio que cambiaban de modo continuo.
El hecho de que fueran analógicos traía consigo una serie de inconvenientes, tales como que solo podían ser utilizados para la transmisión de voz o su baja seguridad, la cual hacia posible a una persona escuchar llamadas ajenas con un simple sintonizador de radio o, incluso hacer uso de las frecuencias cargando el importe de las llamadas a otras personas.
A pesar de todo, esta fue la primera generación considerada realmente como de teléfonos móviles.
Estándares más utilizados:
  • NMT: Nordic Mobile Telephone
  • AMPS: Advaced Mobile Phone System


Al contrario de lo que pasa en otras generaciones, la denominada ”segunda generación” no es un estándar concreto, sino que marca el paso de la telefonía analógica a la digital, que permitió, mediante la introducción de una serie de protocolos, la mejora del manejo de llamadas, más enlaces simultáneos en el mismo ancho de banda y la integración de otros servicios adicionales al de la voz, de entre los que destaca el Servicio de Mensajes Cortos (Short Message Service).
Estos protocolos fueron implementados por diversas compañías, siendo este hecho el origen de uno de los principales problemas de esta generación la incompatibilidad entre protocolos, debido a que el radio de utilización del teléfono quedaba limitado al área en el que su compañía le diera soporte.

Esta generación quedo marcada por el gran avance en los dispositivos móviles. Las empresas comenzaron a fabricar un sin numero de equipos con capacidades nunca imaginadas. Esto trajo consigo el boom de la telefonía móvil dado en el 2000.

Generacion 2.5G: Como tal no existe ningún estándar ni tecnología a la que se pueda llamar 2.5G o 2.75G, pero suelen ser denominados así a algunos teléfonos móviles 2G que incorporan algunas de las mejoras y tecnologías del estándar 3G como es el caso de GPRS y EDGE en redes 2G y con tasas de transferencia de datos superiores a los teléfonos 2G regulares pero inferiores a 3G.

Estándares más utilizados:
  • GSM: Global System for Mobile Communications - Sistema Global para Comunicaciones Móviles.
  • CDMA: Code Division Multiple Access - Acceso Múltiple por División de Código
  • GPRS: General Packet Radio Service - Servicio General de Radio por Paquetes


3G nace de la necesidad de aumentar la capacidad de transmisión de datos para poder ofrecer servicios como la conexión a Internet desde el móvil, la videoconferencia, la televisión y la descarga de archivos. En este momento el desarrollo tecnológico ya posibilita un sistema totalmente nuevo: UMTS (Universal Mobile Telecommunications System).

Esta es la generación dominante en la actualidad, trajo el mejoramiento de la conectividad y un gran incremento en el consumo de datos, la creación de dispositivos con mayores funciones y capacidades de procesamiento mas altas, los smartphones.
Pantallas mas grandes a color y táctiles, celulares con procesadores y gran poder gráfico, conectividad totalmente cubierta, dispositivos multifuncionales.

Sin embargo, esta generación se caracteriza por no quedarse solo para los dispositivos móviles, existen una gran cantidad de modems 3G que permiten conectar cualquier equipo a la red.

La generación 4 Generacion o 4G será la evolución tecnológica que ofrecerá al usuario de telefonía móvil un mayor ancho de banda que permitirá, entre muchas otras cosas, la recepción de television en Alta Definición.
Hoy en día no hay ningún sistema de este nivel que esté claramente definido, pero a modo de ejemplo podemos echar un vistazo a los sistemas LTE (Long Term Evolution).









Video-evolución de los celulares


Les comparto un vídeo bastante entretenido de la compañia Vodafone sobre la evolución de los celulares.

Evolucion de los Dispositivos Moviles (Infografia)


Esta imagen esta bastante grande como para embeberla en la entrada, sin embargo, den click en el siguiente enlace donde podran ver una excelente inforgrafia que explica la evolucion de las computadoras y dispositivos moviles.

-> Infografia Historia de las Computadoras

Referencias