martes, 28 de febrero de 2012

Instalando arduino IDE

Hardware libre "Arduino"

El arduino es una plataforma de hardware libre, Fácil uso. Especialmente se utiliza para diferentes tipos de proyectos ya sean mas que nada para escolares o desarrolladores particulares.



Existen diferentes tipos  placas arduino:

Arduino uno: Es la placa de arduino convencional para uso de aplicaciones mas que nada escolasres basado en placa ATmega328.


Arduino mega: Es uno de las placas mas grandes y potentes con mejores componentes que tiene en cuestion Diecimila, Nano, Diecimila.


Arduino blouetooth:  El Arduino BT contiene un modulo bluetooth que permite comunicarse y programarse sin cables. Es compatible con los shields de Arduino.


Componentes del arduino

El arduino cuenta con entradas y salidas digitales y analogas
Es formada por una placa con un circuito impreso
Contiene un push botom para reiniciar la placa
Conector usb


Dependiendo los diferentes tipos de arduinos, la fuente de energía eléctrica puede variar .
Voltaje operativo  es de 5 V
Voltaje de entrada recomendada: 7-12 V
Voltaje de entrada Limite 6-20 V
Intensidad de corriente 40mA

Ejemplo de proyectos que se pueden hacer con arduino:

Se pueden hacer diferentes tipos de proyectos asta los mas fácil a lo mas complicado.

Se puede realizar comunicación de pc al arduino para registrar datos de entradas ya sean digitales o análogas del arduino.

Con tecnologías actuales como el arduino con bluetooth pueden hacer este tipo de cosas sin conexiones alambricas o mover distintos tipos de motores entre millones de cosas.



Instalar IDE de arduino

1-.Para poder instalar la IDE de arduino para ubuntu es necesario agregar el respostorio a la dirección de donde descargaría esto, esto se ase con la siguiente linea:

sudo add-apt-repository ppa:arduino-ubuntu-team


2-. Posteriormente haberla agregado es necesario actualizar:

sudo apt-get update

3-. Ya por finalizar instalamos la ide del arduino

sudo apt-get install arduino

Otra manera de instalarlo es descargar toda la IDE desde la pagina oficial: http://arduino.googlecode.com/files/arduino-0019.tgz

ya descargado lo descomprimimos y lo ejecutamos desde la terminal

$ ./arduino

y también nos ejecuta el mismo IDE de la misma manera que la otra forma.






ligas externas:
http://www.arduino.cc/es/



Cargar el programa al arduino:


Aquí tenemos un programa sencillo que ase que un led tenga puesto y perpade ciertos tiempos, para poder pasarlo a arduino lo único es necesario cargarlo vía usb, conectamos el arduino a la pc, posteriormente presionamos el penúltimo cuadro de la interfaz y esperamos que cargue, reseteamos el arduino y listo :)

jueves, 23 de febrero de 2012

Microcontroladores.

Que es un microcontrolador?
Un microcontrolador es un circuito integrado que nos ofrece las posibilidades de un pequeño computador. En su interior encontramos un procesador, memoria, y varios periféricos. El secreto de los microcontroladores lo encontramos en su tamaño, su precio y su diversidad. Su valor medio de seis euros, y su tamaño se reduce a unos pocos centímetros cuadrados.

Para que se usan?
Por nombrar varios ejemplos de aplicaciones, tenemos mandos a distancia, termómetros digitales, controles de acceso por puertas de seguridad, los sistemas ABS o EPS de los coches, control y sensórica de maquinaria, domótica del hogar, microrobótica, monederos electrónicos.

Realmente la dificultad no está en usar un microcontrolador para afrontar un proyecto hardware, sino en elegir el fabricante y el modelo adecuado para la aplicación. Con esto lo que tenemos que tener presente es que los microcontroladores nos solucionarán la vida en todos los temas, pero el objetivo es usar el mínimo número de ellos y con el menor coste por unidad.

Un microcontrolador dispone normalmente de los siguientes componentes:
  • Procesador o UCP (Unidad Central de Proceso). 
  • Memoria RAM para Contener los datos. 
  • Memoria para el programa tipo ROM/PROM/EPROM. 
  • Líneas de E/S para comunicarse con el exterior. 
  • Diversos módulos para el control de periféricos (temporizadores, Puertas Serie y Paralelo, CAD: Conversores Analógico/Digital, CDA: Conversores Digital/Analógico, etc.). 
  • Generador de impulsos de reloj que sincronizan el funcionamiento de todo el sistema. 

¿Qué microcontrolador emplear?
A la hora de escoger el microcontrolador a emplear en un diseño concreto hay que tener en cuenta multitud de factores, como la documentación y herramientas de desarrollo disponibles y su precio, la cantidad de fabricantes que lo producen y por supuesto las características del microcontrolador (tipo de memoria de programa, número de temporizadores, interrupciones, etc.):

Costes. Como es lógico, los fabricantes de microcontroladores compiten duramente para vender sus productos. Y no les va demasiado mal ya que sin hacer demasiado ruido venden 10 veces más microcontroladores que microprocesadores.

Para que nos hagamos una idea, para el fabricante que usa el microcontrolador en su producto una diferencia de precio en el microcontrolador de algunas pesetas es importante (el consumidor deberá pagar además el coste del empaquetado, el de los otros componentes, el diseño del hardware y el desarrollo del software). Si el fabricante desea reducir costes debe tener en cuenta las herramientas de apoyo con que va a contar: emuladores, simuladores, ensambladores, compiladores, etc. Es habitual que muchos de ellos siempre se decanten por microcontroladores pertenecientes a una única familia.

Antes de seleccionar un microcontrolador es importante analizar los requisitos de la aplicación:

Procesamiento de datos: puede ser necesario que el microcontrolador realice cálculos críticos en un tiempo limitado. En ese caso debemos asegurarnos de seleccionar un dispositivo suficientemente rápido para ello. Por otro lado, habrá que tener en cuenta la precisión de los datos a manejar: si no es suficiente con un microcontrolador de 8 bits, puede ser necesario acudir a microcontroladores de 16 ó 32 bits, o incluso a hardware de coma flotante. Una alternativa más barata y quizá suficiente es usar librerías para manejar los datos de alta precisión.

Entrada Salida: para determinar las necesidades de Entrada/Salida del sistema es conveniente dibujar un diagrama de bloques del mismo, de tal forma que sea sencillo identificar la cantidad y tipo de señales a controlar. Una vez realizado este análisis puede ser necesario añadir periféricos hardware externos o cambiar a otro microcontrolador más adecuado a ese sistema.

Consumo: algunos productos que incorporan microcontroladores están alimentados con baterías y su funcionamiento puede ser tan vital como activar una alarma antirrobo. Lo más conveniente en un caso como éste puede ser que el microcontrolador esté en estado de bajo consumo pero que despierte ante la activación de una señal (una interrupción) y ejecute el programa adecuado para procesarla.

Memoria: para detectar las necesidades de memoria de nuestra aplicación debemos separarla en memoria volátil (RAM), memoria no volátil (ROM, EPROM, etc.) y memoria no volátil modificable (EEPROM). Este último tipo de memoria puede ser útil para incluir información específica de la aplicación como un número de serie o parámetros de calibración.

El tipo de memoria a emplear vendrá determinado por el volumen de ventas previsto del producto: de menor a mayor volumen será conveniente emplear EPROM, OTP y ROM. En cuanto a la cantidad de memoria necesaria puede ser imprescindible realizar una versión preliminar, aunque sea en pseudo-código, de la aplicación y a partir de ella hacer una estimación de cuánta memoria volátil y no volátil es necesaria y si es conveniente disponer de memoria no volátil modificable.

Ancho de palabra: el criterio de diseño debe ser seleccionar el microcontrolador de menor ancho de palabra que satisfaga los requerimientos de la aplicación. Usar un microcontrolador de 4 bits supondrá una reducción en los costes importante, mientras que uno de 8 bits puede ser el más adecuado si el ancho de los datos es de un byte. Los microcontroladores de 16 y 32 bits, debido a su elevado coste, deben reservarse para aplicaciones que requieran sus altas prestaciones (Entrada/Salida potente o espacio de direccionamiento muy elevado).

Diseño de la placa: la selección de un microcontrolador concreto condicionará el diseño de la placa de circuitos. Debe tenerse en cuenta que quizá usar un microcontrolador barato encarezca el resto de componentes del diseño.

Algunos microcontroladores.
Los microcontroladores más populares se encuentran, sin duda, entre las mejores elecciones:

8048 (Intel). Es el padre de los microcontroladores actuales, el primero de todos. Su precio, disponibilidad y herramientas de desarrollo hacen que todavía sea muy popular.

8051 (Intel y otros). Es sin duda el microcontrolador más popular. Fácil de programar, pero potente. Está bien documentado y posee cientos de variantes e incontables herramientas de desarrollo.

80186, 80188 y 80386 EX (Intel). Versiones en microcontrolador de los populares microprocesadores 8086 y 8088. Su principal ventaja es que permiten aprovechar las herramientas de desarrollo para PC.

68HC11 (Motorola y Toshiba). Es un microcontrolador de 8 bits potente y popular con gran cantidad de variantes.

683xx (Motorola). Surgido a partir de la popular familia 68k, a la que se incorporan algunos periféricos. Son microcontroladores de altísimas prestaciones.

PIC (MicroChip). Familia de microcontroladores que gana popularidad día a día. Fueron los primeros microcontroladores RISC.

Ejemplo de un pic:
Vemos que las patas llamadas RA0/1/2/3/4 y RB0/1/2/3/4/5/6/7 son puertos que se los puede configurar mediante la programación como Puertos de "entrada" o "salida" de información.

Despues tenemos la pata "Vss" que es la de alimentación, ahí tienen que entrar 5V y la pata 14 llamada VDD es donde tendríamos que conectar a "Tierra". 

También sabemos que Todo microprocesador o microcontrolador necesita de un circuito que le indique a qué velocidad debe trabajar. Este circuito es conocido como un oscilador de frecuencia. Este oscilador es como el motor del microcontrolador por lo tanto, este pequeño circuito no debe faltar. En el caso del microcontrolador PIC16F84 el pin 15 y el pin 16 son utilizados para introducir la frecuencia de reloj.

La "A" final de los modelos PIC16F873A, PIC16F874A, PIC16F876A y PIC16F877A indica que estos modelos cuentan con módulos de comparación analógicos.

Microchip Technology Inc. fabrica estos microcontroladores en encapsulados PDIP y SPDIP, SOIC,SSOP, PLCC, QFP y QFN.

Los dispositivos PIC16F870, PIC16F872, PIC16F873A y PIC16F876A se fabrican en encapsulados de 28 patitas en formatos PDIP, SOIC, SSOP y QFN, mientras que los dispositivos PIC16F871, PIC16F874A y PIC16F877A se fabrican en encapsulados de 40 patitas para formato PDIP, y en encapsulados de 44 patitas para formatos PLCC, QFP y QFN.

En los encapsulados de 28 patitas no está implementado el Puerto Paralelo Esclavo (PSP).

Entonces segun el formato que le den son las patitas que necesita el microcontrolador.
Muchas de las patitas o terminales de estos dispositivos, como suele ocurrir en la mayoria de microcontroladores, tienen más de una función (multiplexación), dependiendo de cómo se configuren internamente por software.

Cable ethernet

Cable par trenzado. 

El cable de par trenzado es un medio de conexión usado en telecomunicaciones en el que dos conductores eléctricos aislados son entrelazados para anular las interferencias de fuentes externas y diafonía de los cables adyacentes. Fue inventado por Alexander Graham Bell. 



Tipos.


Unshielded twisted pair o par trenzado sin blindaje: son cables de pares trenzados sin blindar que se utilizan para diferentes tecnologías de redes locales. Son de bajo costo y de fácil uso, pero producen más errores que otros tipos de cable y tienen limitaciones para trabajar a grandes distancias sin regeneración de la señal.

Shielded twisted pair o par trenzado blindado: se trata de cables de cobre aislados dentro de una cubierta protectora, con un número específico de trenzas por pie. STP se refiere a la cantidad de aislamiento alrededor de un conjunto de cables y, por lo tanto, a su inmunidad al ruido. Se utiliza en redes de ordenadores como Ethernet o Token Ring. Es más caro que la versión sin blindaje.

Foiled twisted pair o par trenzado con blindaje global: son unos cables de pares que poseen una pantalla conductora global en forma trenzada. Mejora la protección frente a interferencias y su impedancia es de 12 ohmios.

Características de la transmisión.


Está limitado en distancia, ancho de banda y tasa de datos. También destacar que la atenuación es una función fuertemente dependiente de la frecuencia. La interferencia y el ruido externo también son factores importantes, por eso se utilizan coberturas externas y el trenzado. Para señales analógicas se requieren amplificadores cada 5 o 6 kilómetros, para señales digitales cada 2 ó 3. En transmisiones de señales analógicas punto a punto, el ancho de banda puede llegar hasta 250 kHz. En transmisión de señales digitales a larga distancia, el data rate no es demasiado grande, no es muy efectivo para estas aplicaciones.

En redes locales que soportan ordenadores locales, el data rate puede llegar a 10 Mbps (Ethernet) y 100 Mbps (Fast-Ethernet).

En el cable par trenzado de cuatro pares, normalmente solo se utilizan dos pares de conductores, uno para recibir (cables 3 y 6) y otro para transmitir (cables 1 y 2), aunque no se pueden hacer las dos cosas a la vez, teniendo una trasmisión half-dúplex. Si se utilizan los cuatro pares de conductores la transmisión es full-dúplex.

Ventajas: 


  •  Bajo costo en su contratación. 
  •  Alto número de estaciones de trabajo por segmento. 
  •  Facilidad para el rendimiento y la solución de problemas. 
  •  Puede estar previamente cableado en un lugar o en cualquier parte. 

Desventajas:
  •  Altas tasas de error a altas velocidades. 
  •  Ancho de banda limitado. 
  •  Baja inmunidad al ruido. 
  •  Baja inmunidad al efecto crosstalk (diafonía) 
  •  Alto costo de los equipos. 
  •  Distancia limitada (100 metros por segmento). 

Ethernet


Ethernet es el estándar más popular para las LAN que se usa actualmente. El estándar 802.3 emplea una topología lógica de bus y una topología física de estrella o de bus. Ethernet transmite datos a través de la red a una velocidad de 10 Mbips por segundo.

La versión experimental de Ethernet tenía lo siguiente:
  • Una velocidad de transmisión de 2.94 Mbps 
  • Longitud de enlace de 1 segmento de 1 kilometro. 
  • Un número de nodos menor que 300. 
  • Características generales de Ethernet. 
  • Medio de transmisión más común: Cable coaxial. 
  • Técnica de acceso: Contiene topología de ducto 
  • Topología física: Estrella o ducto. 
  • Velocidades de transmisión: de 10 a 100 Mbips. 
  • Utiliza cable coaxial y a veces Fibra Óptica. Algunas ventajas inherentes al cable coaxial son las siguientes: 
  • Características eléctricas optimas. 
  • Amplia tecnología disponible. 
  • Bajo costo. 
  • Tecnología comprobada. 
  • Codificación: Código Manchester. 


Dentro del cable hay 8 cables coloreados y trenzados de unos colores determinados. Están trenzados por parejas, y cada una de las parejas tiene un color común. Cada uno de los colores tiene una pareja de color blanco. Estos cuatro pares de cables acaban en un conector especial llamado RJ45 que tiene la misma forma que un conector de teléfono normal, y de hecho son de la misma clase siendo los de teléfono del tipo RJ11.


La forma de hacer el conector viene en dos formas: un cable cruzado y un cable plano, donde la diferencia es simplemente como hagamos coincidir los hilos en cada punta. Un cable plano normalmente se utiliza para conectarse a un hub o a un switch, y un cable cruzado se utiliza para conectar dos dispositivos del mismo tipo. Algunos equipos de red pueden cruzar y descruzar un cable según se necesite.

Este es el tutorial mas completo que encontré y simple para hacer un cable ethernet XD.

Este tambien es un tutorial muy bueno.



Bibliografias:

miércoles, 22 de febrero de 2012

Lab computo integrado Algunos microcontroladores

En esta ocasión hablaremos un poco de las diferentes tipos de arquitecturas que existen para microcontroladores y algunas herramientas para instalar en este caso mostrare como instalar mplab, para poder utilizar lenguaje anci c y pararlo a formato .hex para microcontroladores.

Hoy en día han existidos diferentes tipos de microcontroladores ya sean para computadoras u otro tipo de dispositivos electrónicos de diferentes tamaños y formas.


Uno de los pioneros en crear estos tipos de microcontrolador pues la empresa atmel sus micro-controladores estaban basados en ARM, Arm es una arquitectura de 32 bits creados para las primeras computadoras personales, pero hoy en la actualidad se utiliza también para comunicaciones u dispositivos móviles específicos.


Micro-controladores pic16cXXX

Estos tipos de microcontroladores son unos de los mas empleados con mayor exenciones de categorías, por lo general estos tipos de controladores se pueden dividir de la siguiente manera:

Primer rango: familias 16C5X
Segundo rango familias 16C6X/7X/8X
Tercer rango familias 17CXX

Controlador intel 8051

Es un microprocesador de 8 bits desarrollado por la compañía intel. Este tipo de controlador son miembros de los tipos de intel MCS-51 de la familia de 8 bits. Cuenta con dos temporizador de 16 bits, 4 puertos de entrada y cuatro mismo de salida y tiene 126 byte de memoria RAM


hoja de referencia
http://www.keil.com/dd/chip/2999.htm


Como instalar maplap para ubuntu

Antes que nada es necesario tener instalado java, ya que esta IDE trabaja para java
Se necesita instalar java, ya que esta IDE trabaja en java.

Podemos descargar los diferentes tipos de paquetes en la siguiente pagina:
recomendable descargar el compilador del pic 16 que es uno de los que se utiliza mas:

Posteriormente teniendo los paquetes .run es necesario instalarlos de la terminal.


Nos vamos directo desde la terminal donde tengamos los paquetes y ponemos lo siguiente:




Posteriormente de esto ya lo tendremos instalado y podremos verificarlo:


miércoles, 15 de febrero de 2012

Lenguaje Ensamblador. (Lab)

El lenguaje ensamblador, o assembler (assembly language en inglés) es un lenguaje de programación de bajo nivel para los computadoresmicroprocesadores, microcontroladores, y otros circuitos integrados programables. 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). Esto está en contraste con la mayoría de los lenguajes de programación de alto nivel, que, idealmente son portables.


Características
El código escrito en lenguaje ensamblador posee una cierta dificultad de ser entendido ya que su estructura se acerca al lenguaje máquina, es decir, es un lenguaje de bajo nivel.
El lenguaje ensamblador es difícilmente portable, es decir, un código escrito para un microprocesador, puede necesitar ser modificado, para poder ser usado en otra máquina distinta. Al cambiar a una máquina con arquitectura diferente, generalmente es necesario reescribirlo completamente.
Los programas hechos por un programador experto 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.
También se puede controlar el tiempo en que tarda una rutina en ejecutarse, e impedir que se interrumpa durante su ejecución.

Número de pasos
Hay dos tipos de ensambladores basados en cuántos pasos a través de la fuente son necesarios para producir el programa ejecutable.
Los ensambladores de un solo paso pasan a través del código fuente una vez y asumen que todos los símbolos serán definidos antes de cualquier instrucción que los refiera.
Los ensambladores del dos pasos crean una tabla con todos los símbolos y sus valores en el primer paso, después usan la tabla en un segundo paso para generar código. El ensamblador debe por lo menos poder determinar la longitud de cada instrucción en el primer paso para que puedan ser calculadas las direcciones de los símbolos.
La ventaja de un ensamblador de un solo paso es la velocidad, que no es tan importante como lo fue en un momento dado los avances en velocidad y capacidades del computador. La ventaja del ensamblador de dos pasos es que los símbolos pueden ser definidos dondequiera en el código fuente del programa. Esto permite a los programas ser definidos de maneras más lógicas y más significativas, haciendo los programas de ensamblador de dos pasos más fáciles leer y mantener.

 Importancia del lenguaje ensamblador
La importancia del lenguaje ensamblador radica principalmente que se trabaja directamente con el microprocesador; por lo cual se debe de conocer el funcionamiento interno de este, tiene la ventaja  de que en él se puede realizar cualquier tipo de programas que en los lenguajes de alto nivel no lo pueden realizar. Otro punto sería que los programas en ensamblador ocupan menos espacio en memoria.

 Ventajas y desventajas del Lenguaje Ensamblador

Ventajas
Como trabaja directamente con el microprocesador al ejecutar un programa, pues como este lenguaje es el más cercano a la máquina la computadora lo procesa más rápido.

Eficiencia de tamaño.- Un programa en ensamblador no ocupa mucho espacio en memoria  porque no tiene que cargan librerías y demás como son los lenguajes de alto nivel

Flexibilidad.- Es flexible porque todo lo que puede hacerse con una máquina, puede hacerse en el lenguaje ensamblador de esta máquina; los lenguajes de alto nivel tienen en una u otra forma limitantes para explotar al máximo los recursos de la máquina. O sea que en lenguaje ensamblador se pueden hacer tareas específicas que en un lenguaje de alto nivel no se pueden llevar a cabo porque tienen ciertas limitantes que no se lo permite 

Desventajas

Tiempo de programación .- Como es un lenguaje de bajo nivel requiere más instrucciones para realizar el mismo proceso, en comparación con un lenguaje de alto nivel. Por otro lado, requiere de más cuidado por parte del programador, pues es propenso a que los errores de lógica se reflejen más fuertemente en la ejecución.

Programas fuente grandes .- Por las mismas razones que aumenta el tiempo, crecen los programas fuentes; simplemente requerimos más instrucciones primitivas para describir procesos equivalentes. Esto es una desventaja porque dificulta el mantenimiento de los programas, y nuevamente reduce la productividad de los programadores.

Peligro de afectar recursos inesperadamente .- Que todo error que podamos cometer, o todo riesgo que podamos tener, podemos afectar los recursos de la maquina, programar  en este lenguaje lo más común que pueda pasar es que la máquina se bloquee o se reinicialice. Porque con este lenguaje es perfectamente posible (y sencillo) realizar secuencias de instrucciones inválidas, que normalmente no aparecen al usar un lenguaje de alto nivel.

Falta de portabilidad.- Porque para cada máquina existe un lenguaje ensamblador; por ello, evidentemente no es una selección apropiada de lenguaje cuando deseamos codificar en una máquina y luego llevar los programas a otros sistemas operativos o modelos de computadoras.

Relación entre el código binario y el lenguaje ensamblador
En el código binario se utilizan ceros y unos, mientras que el lenguaje ensamblador es una colección de símbolos mnemónicos que representan: operaciones, nombres simbólicos, operadores y símbolos especiales.
La relación entre estos dos lenguajes sería que el binario es el lenguaje que la máquina entiende y el ensamblador se acerca más lenguaje de esta.
Manejo de la memoria: Direccionamiento (interno y externo)
El manejo de la memoria depende de que procesador tenga la máquina, entre los cuales a continuación se mencionan los siguientes:
·        Memoria de Programa
·        Memoria Externa de Datos
·        Memoria Interna de Datos
·        Registros de Funciones Especiales
·        Memoria de Bit.
El espacio de la Memoria de Programa contiene todas las instrucciones, datos, tablas y cadenas de caracteres (strings) usadas en los programas. Esta memoria se direcciona principalmente usando el registro de 16 bits llamado Data Pointer. El tamaño máximo de la Memoria de Programa es de 64 Kbytes.
La Memoria Externa de Datos contiene todas las variables y estructuras de datos que no caben en la memoria interna del Microprocesador. Esta memoria se direcciona principalmente por el registro de 16 bits Data Pointer, aunque también se puede direccionar un banco de Memoria Externa de Datos de 256 bytes usando los dos primeros registros de propósito general .
El espacio de Memoria Interna de Datos funcionalmente es la memoria de datos más importante, ya que ahí es donde residen cuatro bancos de registros de propósito general; la pila o stack del programa; 128 bits de los 256 bits de un área de memoria direccionable por bit y todas las variables y estructuras de datos operadas directamente por el programa. El tamaño máximo de la Memoria Interna de Datos es de 256 bytes.
Contiene un espacio para los denominados Registros de Funciones Especiales destinado para los puertos de entrada/salida, temporizadores y puerto serie del circuito integrado. Estos registros incluyen al Stack Pointer; al registro de la palabra de estado del programa y al Acumulador. La cantidad máxima de Registros de Funciones Especiales es 128.
Todos los Registros de Funciones Especiales tienen direcciones mayores a 127 y se ubican en los 128 bytes superiores de la Memoria Interna de Datos. Estas dos áreas de la Memoria Interna de Datos se diferencian por el modo de direccionamiento usado para accesarlas. Los Registros de Funciones Especiales solo se pueden accesar usando el modo de direccionamiento Directo, mientras que los 128 bytes superiores solo se pueden accesar con el modo de direccionamiento Indirecto.
Por otra parte, el espacio de Memoria de Bit se usa para almacenar variables y banderas de un bit. El tamaño máximo de la Memoria de Bit es de 256 bits, 128 de los bits comparten su espacio con 16 bytes del espacio de la Memoria Interna de Datos y los otros 128 bits lo hacen con los Registros de Funciones Especiales.

Si deseas saber más acerca de las variables que maneja este lenguaje esta es la dirección.

Bibliografías:

martes, 14 de febrero de 2012

Lab computo integrado

Cableado estructurado:

Existe hoy en día varios tipos de sistemas para el cableado de una tipologias de redes para sus conexiones ya sea por medio de diferentes tipos de cableados ya sea cableado directo o cableado cruzado




Significado de los colores de los cables estructurales(funciones)


Color del cable:     Función

Blanco-Verde       Transmiten datos     
Blanco-Naranja    Transmiten datos
Azul                    Datos de teléfono
Blanco-Azul         Datos de teléfono
Naranja               Recibe datos
Verde                 Recibe datos
Blanco-Marron     Respaldo de datos
Marron                Respaldo de datos


Para los cables directos se utilizan para las conexiones de diferentes tipos de dispositivos por ejemplo una computadora con un hub o de una computadora a switch o entre un hub y un switch. Para esto se utliza este tipo de cables.


Conexión:



Blanco-Naranja    Blanco-Naranja
Naranja               Naranja
Blanco-Verde       Blanco-Verde
Azul                    Azul
Blanco-Azul         Blanco-Azul
Verde                 Verde
Blanco-Marron      Blanco-Marrón
Marrón               Marrón





En caso de que se quiera conectar un hub con un hub o una maquina con otra maquina, cualquier dispositivo que se queira conectar a otra del mismo tipo de arquitectura es necesario hacer la conexión con el cable cruzado.



Blanco-Naranja    Blanco-Verde
Naranja               verde
Blanco-Verde       Blanco-Naranja
Azul                    Azul
Blanco-Azul         Blanco-Azul
Verde                 Naranja
Blanco-Marron      Blanco-Marron
Marrón                Marron

miércoles, 8 de febrero de 2012

Computo integrado

 Hoy en día existen diferentes tipos de procesadores ya sea de computadoras,calculadoras o supercomputadoras  y cada una de ellas con sus diferentes tipos de procesadores pero que hace que estas funcionen o que tengan la capacidad de ejecutar, estos lenguajes que hacen posible son el lenguaje maquina.

Cada uno de los procesadores existente tienen su propio lenguaje maquina o ensamblador, lo que hace estos tipos de lenguaje de bajo nivel por su increíble complejidad que estos tienen, y casi nada portátiles por las versatilidades y existencia de los diferentes tipos de procesadores.

Nasm es un ensamblador libre para la arquitectura x86 para ubuntu o sistemas msdos.
Este sistema tiene la capacidad de poder compilar archivos en ensamblador para esta arquitectura con extención .asm. Para instalarlo es sencillo solo en la terminal se teclear:


sudo apt-get install nasm


También se puede utilizar GNU de ubuntu para poder crear archivos con extenciónn  .s que significa que esta codificado en lenguaje ensamblador. Este paquete por lo genera ya viene incluido en las instalaciones de ubutnu y ya no es necesario descargar algún paquete adicional.


Se puede crear un archivo en c y posteriormente pasarlo con la instrucción gcc -S hola.c

martes, 7 de febrero de 2012

Consideraciones de usabilidad en sistemas integrados. (LAB)

 ¿Que es usabilidad?
La usabilidad hacer referencia al grado de facilidad con que una aplicación, sitio web , periférico o sistema, se adapta a sus usuarios (incluso a usuarios con capacidades disminuidas, ver Tecnología de Asistencia).
Como podemos ver esto no es usable ya que como le haremos para servir lo que contenga esta tetera XD.


¿Que es un sistema integrado?
Es un sistema de computadora de propósito especial diseñado para llevar a cabo una función específica.

A diferencia de las computadoras de propósito general, como las computadoras personales, un sistema integrado lleva a cabo una o unas pocas tareas predefinidas, generalmente con requerimientos muy específicos, y a menudo incluye hardware específico para cada tarea, y partes mecánicas que no se encuentran en computadoras de propósito general.

Como el sistema está dedicado a una tarea específica, los ingenieros de diseño pueden optimizarlo, reduciendo su tamaño y costos. Los sistemas integrados generalmente son producidos en masa.

Físicamente, los sistemas integrados pueden ser desde dispositivos portátiles como relojes digitales, reproductores de MP3, a grandes instalaciones como semáforos, controladores de fábricas o sistemas de control de plantes de energía nuclear.

Los teléfonos celulares y computadoras handheld, comparten algunos elementos con los sistemas integrados, como sistemas operativos y microprocesadores, pero no son verdaderos sistemas integrados en sí mismo, porque tienden a ser más de propósito general, permitiendo que diferentes aplicaciones se ejecuten y que puedan conectarse periféricos.

La usabilidad incluye consideraciones como:
  •   ¿Quiénes son los usuarios, cuáles son sus conocimientos, y qué pueden aprender?
  •   ¿Qué quieren o necesitan hacer los usuarios?
  •   ¿Cuál es la formación general de los usuarios?
  •   ¿Cuál es el contexto en el que el usuario está trabajando?
  •   ¿Qué debe dejarse a la máquina? ¿Qué al usuario? 

Las respuestas a estas preguntas pueden conseguirse realizando análisis de usuarios y tareas al principio del proyecto.
Otras consideraciones incluyen:
  •   ¿Pueden los usuarios realizar fácilmente sus tareas previstas? Por ejemplo, ¿pueden los usuarios realizar las tareas previstas a la velocidad esperada?
  •   ¿Cuánta preparación necesitan los usuarios?
  •   ¿Qué documentación u otro material de apoyo están disponible para ayudar al usuario? ¿Puede éste hallar las respuestas que buscan en estos medios?
  •   ¿Cuáles y cuántos errores cometen los usuarios cuando interactúan con el producto?
  •   ¿Puede el usuario recuperarse de los errores? ¿Qué han de hacer los usuarios para recuperarse de los errores? ¿Ayuda el producto a los usuarios a recuperarse de los errores? Por ejemplo, ¿muestra el software mensajes de error informativos y no amenazantes?
  • ¿Se han tomado medidas para cubrir las necesidades especiales de los usuarios con discapacidades? (Es decir, ¿se ha tenido en cuenta la accesibilidad?)

Ejemplos de técnicas para hallar respuesta a estas y otras cuestiones son: análisis de requisitos enfocado al usuario, construcción de perfiles de usuarios y pruebas de usabilidad.

Bibliografias: