Archivo de la Categoría 1.TECNOLOGÍAS (teórico)

Hoy un compañero, sin saberlo, me ha dado una idea, y voy a poner un pequeño artículo sobre el estándar IEC 60529. Es interesante, pues quien más o quien menos se ha encontrado o se va a encontrar con este estándar, y más dedicándonos a la electrónica.

Básicamente el estándar IEC60529 es un sistema de clasificación para los diferentes grados de protección de los contenedores de los dispositivos electrónicos.
 

No entiendo ¿qué quieres decir?

Hablando de forma más simple, si dispones de una electrónica la cual esta dento de una caja o de un molde de plástico o dentro de lo que sea, este estándar indica el grado de protección y estanqueidad ( frente agua y partículas ) de dicha caja o molde. En definitiva, indica cómo está de protegida la electrónica que guarda en su interior. Esto, los que no conozcáis todavía este estándar, lo veréis como requisito de dispositivos en multitud de proyectos y de concursos, sobre todo, de aquellas partes que deben instalarse a la intemperie.
 

¿Y cómo se define el grado de protección de una caja o contenedor?

Pues por ejemplo, podéis ver en algún datasheet que un determinado dispositivo tiene una protección IP55, IP65, IP67, … Estos valores, 55, 65, 67 o los que sean, tienen un significado. Por ejemplo, las cajas de Bopla (Bopla es una empresa de cajas que distribuye Matrix en España) que aparecen en la siguiente imágen:

Cajas estancas

(more…)

Hace ya hace mucho tiempo que no hablo sobre el Access Server de Bluegiga, que para quien no lo conozca, es un dispositivo muy utilizado por empresas integradoras para realizar sistemas de marketing bluetooth.

Hoy simplemente quiero hacer un pequeño pero interesante apunte a un artículo sobre la tendencia del tamaño de las pantallas de los teléfonos móviles. Este dato tiene cierta importancia en sistemas de marketing de proximidad, pues en ocasiones es necesario adaptar los contenidos que se envían a los móviles desde los Access Servers para que sean bien visualizados en los distintos tamaños de pantalla que componen el parqué de móviles. Hay que tener presente también que cada vez son más los teléfonos móviles que reescalan las imágenes automáticamente al tamaño de su propia pantalla, pero por el momento es interesante enviar los contenidos con el tamaño más adecuado posible para que no sea necesario que los telefonos reescalen la imagen, pues la calidad de reescalado, por el momento, es mejor si está hecha con Photoshop que si la hace el propio terminal.

El artículo al que quiero hacer referencia y que es interesante de leer lo podéis encontrar aquí:
http://sender11.typepad.com/sender11/2008/04/mobile-screen-s.html

(more…)

Hoy Sábado voy a hablar un poquito sobre CSR y sus soluciones bluetooth. CSR es la empresa más importante a nivel mundial de chips bluetooth y con casi con toda seguridad todos estamos utilizando algún chip de ellos, pues nada menos que el 70% de los equipos que tienen bluetooth, especialmente los móviles, tienen un chip CSR, los mejores.

CSR vende chips bluetooth, no módulos bluetooth. Decir que utilizar estos chips no es sencillo, es más, es muy complicado, absolutamente nada que ver con utilizar un módulo bluetooth como los módulos bluetooth de Bluegiga (que por cierto, tienen en su interior un chip de CSR). Los chips de CSR están pensados para aquellas empresas que pretendan vender grandes cantidades de equipos, es decir, cuando hablamos de más de 20.000/30.000 equipos al año, entonces sí sale a cuenta, económicamente hablando, meterse a nivel de chip. Cantidades más pequeñas no compensa y es mejor trabajar con módulos.
 

¿Y en qué consisten los chips bluetooth de CSR?

CSR fabrica los chips que llama Bluecore. Tiene varias familias de chips que han ido desarrollando a lo largo de los últimos años. Actualmente tienen el Bluecore3, Bluecore4, Bluecore5, cada uno de ellos con distintas variantes, y el nuevo Bluecore6 (únicamente versión ROM por el momento),

El Bluecore 3 y Bluecore 5 están más pensados para aplicaciones de audio, mientras que Bluecore 4 está más pensado para aplicaciones de datos y es algo más económico (pues no tiene DSP). Veamos un diagrama que muestra cómo es internamente uno de estos Bluecore. Veamos el Bluecore5.

Bluecore

(more…)

Hace ya unos meses puse unos post referentes a las tecnologías ETX y XTX.  Hoy voy a poner un breve post referente a otra tecnología la llamada COM Express, pues últimanente veo muchas aplicaciones industriales que se decantan por utilizar esta tecnología al utilizar un PC industrial.

COM Express en un standard de PICMG (un consorcio formado por unas 450 empresas). COM Express significa Computer-On-Module, es decir, un PC en módulo.
 
 
¿Un PC en módulo? ¿Es muy pequeño?

Pues sí. COM Express podemos encontrarlo en tres factores de forma. El llamado Compact, el Básico y el Extendido. Ambos tienen distintos tamaños, siendo el Compact el que tiene un tamaño inferior con unas dimensiones increiblemente pequeñas de 95×95 mm. Evidentemente al ser tan pequeño no soporta procesadores tan potentes (por consumo y tamaño) como los que puede soportar el modelo extendido (también de reducidas dimensiones pero no tanto).
 
 
¿Y qué buses soporta?

Bueno, los módulos COM Express disponen de un total de 440 pines, que son con los que se conectarán a la placa base donde los insertemos. Esta tecnología elimina por completo interfaces antiguos, como son los floppy (ya era hora :-) ), los teclados y ratones ps2, los puertos LTP (donde poníamos las impresoras antiguas) y los puertos RS232. Si queremos alguno de estos buses de antaño deberemos implementar la electrónica necesaria en la placa base que diseñemos para este módulo COM Express.

Por contra, este modelo de PC industrial tiene multitud de buses de última generación, como son buses PCI Express, PEG (PCI Express Graphics), SDVO, IDE, PCI, SATA, USB, I2C, LPC.   También disponen de Ethernet 100/1000, audio AC97, de salida de vídeo VGA, LVDS y TVOut y de 8 E/S de propósito general que podemos utilizar en nuestras aplicaciones.

Aquí tenéis un gráfico donde se puede ver perfectamente los distintos factores de forma y los conectores y buses que puedes tener en un COM Express:
 

COM Express

(more…)

Normalmente cuando elegimos un PC nos fijamos sobre todo en qué procesador lleva, que si un Celeron 1.8Ghz, que si un CoreDuo, … pero no siempre damos la importancia que merece al chipset de la placa. Esto para un PC de uso doméstico tal vez no tiene demasiada trascendencia, pero no es así cuando se está eligiendo un modelo de PC industrial para realizar una aplicación específica, ahí el chipset se tiene muy en cuenta.
 

Parece interesante, ¿pero qué es el chipset? ¿para qué sirve?

Pues como su propio nombre indica, chipset, es un “conjunto de chips”. Estos chips se encuentan siempre soldados en placa. Son fáciles de distinguir en una placa, pues son bastante voluminosos.

Intel Chipset

Los chipset se encargan de determinadas tareas, como es la de gestionar la comunicación del procesador con la memoria (con lo que en funciòn del chipset podremos controlar más o menos cantidad memoria, un tipo u otro de memoria, es decir, si es DDR y/o DDR2, el tiempo de refresco, el número de buses en paralelo, etc). También el chipset se encarga de gestionar los puertos de E/S, como el bus ISA, el bus PCI, el bus AGP, el bus PCIExpress, controlar los buses USB (USB1.1 o USB2.0), por ejemplo el número de discos y el tipo de bus usado con ellos (es decir, si la comunicación será bus IDE, bus SATA … ) también controlará la función RAID de los discos (sistemas de seguridad redundante) y marcará también las prestaciones disponibles de capacidad gráfica.

(more…)

¿Alguien recuerda alquellos tiempos del Moviline de Telefónica? Aquellos móviles enormes que pocas personas tenían, de hecho yo nunca tuve uno pues era demasiado pequeño en aquella época, pero sí recuerdo a un tío mío hablando desde el coche. Parecía increíble entonces. Desgraciadamente, aquellos móviles de primera generación analógicos (1G) conocidos también como TACS (Total Access Communications System) los cuales operaban en la banda de 900MHz, tenían unas bajísimas prestaciones y no era posible enviar datos, sólo voz. Además en cada país habían distintos sistemas lo que imposibilitaba el roaming.

moviline.jpg

Para solventar estos problemas nació un sistema común, el denominado sistema de segunda generación (2G), el que todos conocemos hoy en día por GSM (Global System for Mobile Communications). Qué voy a contar del éxito de esta tecnología que alguien no sepa. Ha sido una auténtica revolución en los últimos años. Sin embargo, como todo, esta tecnología también tiene sus limitaciones, sobre todo en lo referente a transmisiones de datos. Con GSM podemos transmitir datos sí, (comunicaciones CSD), pero a velocidades muy pequeñas de 9600bps.

Esta necesidad hizo aparecer hace ya algunos años una evolución del sistema GSM, el conocido sistema GPRS (General Packet Radio System), también conocido como 2.5G, que fue introducida en Europa y EEUU en el 2001 (Japón pasó directamente del 2G a 3G).  Supongo que una de las razones de que se impusiera 2.5G es que se pudo aprovechar gran parte de la infrastructura GMS ya instalada. A diferencia de GSM con GPRS se pueden utilizar un número simultáneo de slots con lo cual se pueden conseguir velocidades, en la práctica, de unos 80kbps en el mejor de los casos. Esto para muchas aplicaciones es más que suficiente (sistemas de telemetría, telecontrol, alarmas, …) , pero para otras muchas no lo es, como por ejemplo, aplicaciones multimédia, como aplicaciones de vídeo o el simple hecho de navegar por la Red de forma ágil.

gsm.jpg

Y es que los tiempos cambian. Antes las necesidades que teníamos eran las de hablar y las de enviar mensajitos SMS. Ahora queremos realizar videoconferencias con nuestros teléfonos, queremos navegar por Internet con nuestro portátil en el aeropuerto mientras esperamos el avión, mientras viajamos en el tren, … y queremos que vaya rápido. Es por ello que nació la tecnología UMTS (Universal Mobile Telecommunication System). Con UMTS se pueden conseguir altas velocidades de hasta 2Mbps de descarga.

3g.jpg

¿Qué diferencias hay entre GSM y UMTS?

El sistema GSM funciona por TDMA, es decir, se divide el tiempo en slots y a cada usuario se le asigna un slot, es decir, un espacio de tiempo por el que se puede transmitir los datos. Por lo tanto se comparte cada canal por un número determinado de usuarios.

El sistema UMTS es un sistema (WCDMA) acceso múltiple por división de código de banda ancha. En este sistema no hay slots temporales como en GPRS. Todos los usuarios transmiten a la vez por el canal, pero las señales de cada usuario están codificadas con un código único de tal forma, que pese a que podemos pensar que se forma una “señal indescifrable” al utilizar las mismas frecuencias a la vez, no es así, pues la estación base es capaz de decodificar y volver a separar perfectamente cada una de las comunicaciones recibidas de los distintos usuarios. Esto, evidentemente, implica un aprovechamiento mucho más alto del canal, al no compartirlo en tiempo.

 

gsm-umts.JPG

 

También UMTS permite a los operadores utilizar diferentes formas de tarificación, ancho de banda asimétrico en download y upload, configuración de calidad de servicio (QoS) etc etc.

UMTS define 4 categorías de calidad de servicio (QoS):

Conversacional: para llamadas de voz y videoconferencias. Importantísimo tener los mínimo retrasos en la comunicación.

Streaming: La fluctuación del retraso debe ser baja. Pensada para descarga de vídeos de Internet. Una vez llenado el buffer inicial, deberíamos poder ver una transmisión sin  cortes ni pausas.

Interactiva. No deben de haber grandes retardos, pero sí, en extremo, hay que asegurar la integridad de los datos. Este es el típico caso de la navegación web.

Background:  Los retardos no son importantes pero al igual que el caso anterior, es fundamental la integridad de los datos. Típica aplicación, el correo electrónico.

Espero que os haya resultado de interés. Otro día hablaré en detalle, y de forma práctica, de cómo utilizar los modems 3G de Siemens ;-)

 

Hoy voy a hablar un poquito de los leds de potencia. Sí, hoy toca teoría :-) … Y es que es importante. Estos leds de potencia (llamados normalmente power leds) substituirán en el corto plazo cualquier bombilla incandescente de las que conocemos hoy en día. De hecho ya hay algunos países como Francia o Suiza en los que en poco tiempo, por ley, todas las bombillas incandescentes deberán ser substituidas por led. Y es que la eficiencia energética de las lámparas led, así como la durabilidad no tiene comparación.

lamparas-led.jpg

Bueno, vamos a ver una serie de definiciones relacionadas con power leds. Están extraídas del catálogo de un fabricante, en concreto del catálogo de QLT (distribuidos en España por Matrix), un estupendo catálogo que además de dar información de sus productos tiene una parte teórica introductoria que está muy bien para adentrarse en este (hasta ahora) desconocido mundo de la iluminación led.
 

¿Qué es un LED?
Pues un led es un dispositivo semi-conductor que produce luz cuando circula corriente a través de una unión PN con unas caracteristicas adecuadas. Concretamente un led es un diodo que cuando se alcaza cierto umbral de tensión (< 5V) produce normalmente luz monocromática (es decir, de un color muy puro). Este color depende de la composición química del LED.
 

¿Cómo se alimenta un power led? (componente de las lámparas led)
Pues los leds de potencia se alimentan con una corriente constante, y la tensión varía dependiendo del color del LED, de la temperatura y de la tolerancia de fabricación del propio LED. Básicamente el papel del alimentador es proporcionar y controlar con precisión la corriente en el circuito, pues una corriente demasiado elevada puede destruir los led mientras que una corriente demasiado baja produce un rendimiento luminoso muy pobre. Utilizar una corriente adecuada (es decir, la fuente de alimentación adecuada) asegura la máxima luminosidad y máxima longevidad de los leds de potencia. Como comentábamos antes, se utilizan fuentes de corriente, por lo que todos los LED deben conectarse en serie
 

¿Y cuanto dura un led de potencia?
Pues la duración de vida depende de dos factores importantes: la temperatura de funcionamiento y la corriente de alimentación. Los power leds también se calientan, no son como los leds convencionales que estamos acostumbrados a ver en nuestros circuitos. Por ello la pequeña cantidad de calor generado por los led (o las lámparas led) se disipa por medio de un radiador de aluminio al que están soldados. Si no se usa un disipador y tenemos un funcionamiento en condiciones limites o falta una circulación de aire que impida una disipación suficiente del calor, puede provocar una elevación nociva de la temperatura, que como comentábamos en el párrafo anterior, recortaría fuertemente la vida de los led. Los limites de temperatura de los LED de potencia son relativamente bajos, entre 85 y 100°C medidos sobre el cuerpo del LED.
 

Si, eso está muy bien … ¿pero cuanto duran?
Pues depende del modelo, pero los power led duran del orden de unas 50.000 horas
 

¿Y se puede regular la luminosidad como hacemos con un dimmer?
Por supuesto que sí. Los alimentadores de leds de potencia, como se comentaba anteriormente, deben tener una salida de corriente constante pues de esta manera se asegura una larga vida a estos componentes. Por otro lado los power led tienen un umbral fijo de operación (tensión de conducción de la union PN del diodo) y por ello la regulación tiene que hacerse por PWM (Pulse Width Modulation, modulación de anchura de pulsos)

lampara-led.jpg

 ¿Cómo es el haz de luz que emiten los leds de potencia que están en una lámpara led?
Debido a la estructura del led-chip, la emisión es omnidireccional, por ello para concentrar la luz del haz se coloca durante la fase de fabricación una lente de plástico que proporciona un ángulo de 120°. De todas maneras esto también es posible regularlo, pues hay además lentes suplementarias que permiten una mayor concentración del haz: haz estrecho (8º-12°), haz intermedio (25º-30°), haz amplio (40º-45°).
  

Espero que encontréis de interés este post aquellos que desconocíais este tipo de dispositivos  ;-)

El otro día posteaba sobre el nuevo modelo de modem umts/hsdpa MTX-H15.  Si os acordáis, os dije que la conexión con este módem es necesario hacerla a través de un puerto USB, pues ese módem, por razones que atienden a la muy alta velocidad de transferencia de datos, no puede gestionarse con el habitual puerto RS232 con el que todos trabajamos normalmente con este tipo de dispositivos.  Por consiguiente el modem MTX-HC15 tampoco dispone de pila TCP/IP.

stack-tcp-ip.jpg


En ocasiones he oido que un modem tiene pila TCP/IP. ¿Qué significa esto de tener o no tener pila TCP/IP? ¿Cambia la forma de trabajar?

Cuando decimos que un modem dispone de pila tcp/ip (stack tcp/ip) significa que, hablando llanamente, el módem es capaz de, mediante comandos AT recibidos vía serie, establecer y gestionar los datos enviados y recibidos a través de una comunicación IP.

Cuando decimos que un modem es GPRS pero no dispone de pila tcp/ip, significa que para gestionar una comunicación IP es necesario disponer de un dispositivo (un sistema con procesador) que gestione el módem y que disponga de esa pila, es decir, de un dispositivo con cierta inteligencia que disponga de todas las funciones y librerías que forman lo que se conoce como pila o stack tcp/IP.
 
 
Muy bien, pero sigo sin entenderlo. ¿Algún ejemplo en concreto?

Por ejemplo, un módem Siemens TC65 o TC63 sí tienen pila TCP/IP. Esto significa que tan solo con un micro muy muy simple que únicamente tenga un puerto serie (por ejemplo algún PIC) podrá realizarse una comunicación TCP/IP a través de GPRS. Toda la complejidad de la gestión de las tramas IP será realizado por el propio módem. El micro, enviando simples comandos AT por el puerto serie, puede realizar conexiones IP a servidores remotos y enviar y recibir datos de los mismos. Por ejemplo, si ya tenemos un socket TCP conectado un servidor y nos ha enviado datos, simplemente enviando el comando “AT^SISR=0″ por el puerto serie, el modem nos devolverá los datos que tenga en el buffer de recepción del socket nº 0. Así de fácil.

Como he dicho antes, modems como por ejemplo el Siemens HC15 (umts) o un Siemens MC35iT (gprs) no disponen de pila tcp/ip por razones distintas (uno por razones de velocidad, otro simplemente por precio). Con estos modems realizar una conexión IP a través de GPRS no puede realizarse por un micro tan simple como el anterior sin pila TCP/IP, pues estos módems no contienen las funciones necesarias para gestionar las tramas recibidas. Actúan símplemente como modems. Estos módems deben ser controlados por procesadores con stack tcp/IP, que serán los que reciban “el chorro” de datos provinientes de los modems y analicen las cabeceras IP, los CRCs, etc etc.
 
 
¿Y cuando elegir un modem con pila TCP/IP o sin ella?

Pues depende. En ocasiones no se puede elegir debido a que no encontrarás modems con la pila, como el caso de modems UMTS/HSDPA. En caso en que sí puedas elegir, pues dependerá de si ya estás utilizando un micro que dispone de dicha pila o no. Si no dispone evidentemente deberás coger un módem con pila tcp/ip, y si dispone de ella pues tú eliges.  Personalmente yo siempre que pudiese eligiría un modem con stack tcp/IP, pues las aplicaciones normalmente te serán muchísimo más simples de implementar, sobre todo aquellas en las que no tengas que realizar envíos o recepciones masivas de datos. Si tienes que enviar montones de datos de forma masiva (aplicaciones de vídeo por ejemplo) pues sí, entonces mejor utilizar la pila tcp/IP del procesador, por cuestiones de velocidad.
 

Posiblemente ya sabías lo que significa en la práctica que un modem tenga stack tcp/ip o no. Si no es así, espero que este post te haya aclarado un poquito el concepto. ;-)

 

Vamos a hablar un poquito del sistema operativo Windows CE,  un sistema operativo en tiempo real (a diferencia de su homólogo ucLinux) de 32 bits diseñado para operar en dispositivos con mayores limitaciones que un PC convencional de sobremesa.

Windows CE es un sistema operativo bastante utilizado en procesadores embebidos (como pueden ser los módulos de Digi) y es por eso por lo que vamos a hablar un poco sobre él y sobre la evolución que ha tenido desde la versión Windows CE 1.0, nacida hace ya más de una década, hasta la última versión Windows CE 6.0 que apareció hace pocos meses.

windows-ce.jpg

Windows CE no nació en 1994 con ese nombre, sino con el nombre de “proyecto Pulsar”, el cual al final acabó convirtiéndose en este conocido Sistema Operativo.
 
 
Veamos un poquito de historia acerca de las distintas versiones de Microsoft Windows CE:

Windows CE 1.0.
 
Código fuente fue escrito desde cero y fue lanzado comercialmente en el año 1996.
Parcialmente compatible con el Windows tradicional pues soporta una parte de la famosa API Win32.
Independiente del hardware pues es compatible con las arquitecturas más comunes de  de 32 bits. 


Windows CE 2.0
 

Basado en la versión predecesora 1.0 vió la luz en 1997.
Se añadió soporte para procesadores Intel y AMD
Soporta pantallas con resolución de 24 bits
Conexión de red LAN
Soporte de tecnología ActiveX
Incorpora la máquina virtual java.
Soporte parcial MFC (Microsoft Foundatin Classes, una librería de clases en C++ para programación bajo Windows, incluida en MS. Visual C++)
Conectividad USB e infrarrojos
Soporte FAT e impresión
 

Windows CE 3.0
 
Esta versión salió al mercado en el año 2000 con el fin de comperir con el sistema operativo de PALM.
Incorporación de las interrupciones con prioridades.
Mayor eficiencia en la gestión de threats y en las comunicaciones entre procesos
Mayor capacidad de almacenamiento.
Es la base del sistema operativo PocketPC 2002, que se podía encontrar entonces en algunas PDA y teléfonos.
 

Windows CE 4.0

Esta nueva versión del sistema operativo apareció en Marzo del año 2002
Sistema operativo mucho más robusto y eficiente a nivel pultiproceso que la anterior versión.
Mayor grado de comunicación y sincronización con el sistema Windows tradicional.
De el nació en Junio del 2003 la conocida versión Windows Mobile 2003. Prácticamente fue un cambio de nombre y unas aplicaciones añadidas.
 

Windows CE 5.0

Penúltima versión de este sistema operativo lanzado en Mayo del año 2005.
Mejora del software ofimático y multimedia.
Mejoras en el stack bluetooth
De él nacio la versión Windows Mobile 5.0 disponible en multitud de teléfonos móviles y PDAs.
 

Windows CE 6.0

Última versión de este sistema operativo lanzado a principios de este año.
Un 30% superior en prestaciones a su predecesor Windows CE 5.0
Es posible acceder mediante API a un I/O en un ciclo de 100us
Los mayores cambios se encuentran en el Kernel.
La arquitectura del sistema operativo ha sido completamente revisada.
Cada proceso es capaz de direccionar 2GB (antes 32Mb)
El nº de procesos simultáneos han aumentado de 32 a 32.000

Espero que alguna vez pueda resultaros de utilidad esta breve historia sobre la evolución de Windows CE ;-)

Se acaban las vacaciones para todos. Muchos decimos, “ufff, vuelta a madrugar, vuelta a trabajar … a ver si tengo suerte y me toca la lotería … “. De hecho la recaudación por loterías aumenta siempre en Septiembre de forma cosiderable. Hoy me han enviado un email con un link a un flash de esos que no dejan indiferente. Lo podéis ver aquí. Tras ver ese flash uno puede darse cuenta realmente de la suerte que tiene por tener que madrugar, por tener que trabajar … en definitiva la suerte que tenemos de haber nacido donde hemos nacido y de lo insignificantes que realmente son la mayoría de nuestros problemas y pequeños sacrificios cotidianos en comparación con esa tragedia. Espero y deseo que algún día Internet pueda llevar el conocimiento gratuito a toda esa gente, que es la base imprescindible para poder prosperar.

En fin … volviendo al temas más mundanos, hoy voy a empezar una serie de artículos relacionados con módulos embebidos (o embedded modules) bajo Linux embbeded. Los iré alternando con otros artículos de temática diversa. Como hay que basarse en algo, lo voy a hacer en módulos embebidos de Digi, concretamente en los modelos ConnectCore9C, ConnectCore9P o ConnectCoreWi9C. A aquellos que vayan a utilizar otra marca creo que también les puede servir, pues los conceptos son muy parecidos. Evidentemente a quien use los módulos de Digi (de los que he de reconocer que ha mejorado mucho la documentación) les resultará más útil e interesantes todos estos post. De hecho para estos capítulos me voy a basar en la documentación oficial de Digi.

digi-connectcore-wi9c.gif

¿Qué diferencias hay entre aplicaciones para PC convencional o para sistemas embebidos?

No es lo mismo desarrollar aplicaciones para un PC convencional que para un sistema embebido. El desarrollo de aplicaciones para sistemas embebidos implica tocar bastantes elementos además de la propia aplicación, como son el Sistema Operativo y sus posibles personalizaciones, los drivers, el sistema de ficheros, entre otros. Como he dicho antes nos vamos a basar en el S.O. Linux Embedded, muy extendido hoy en día en este tipo de dispositivos debido a la propia naturaleza de Linux, disponible para muchas arquitecturas de hardware que lo hacen un buen candidato para estos menesteres. Veamos algunos conceptos.
 

Cross-compilation  (compilación cruzada).

Siempre que desarrollemos el software para un dispositivo embebido en una plataforma con una arquitectura de procesador diferente, es necesario utilizar un entorno de desarrollo cruzado. Un compilador cruzado es un compilador que se ejecuta en el sistema de desarrollo, es decir, en  nuestro PC portátil o de sobremesa (Intel x86, por ejemplo) donde desarrollamos la aplicación para el módulo embebido, pero que el código que genera se ejecuta en otro procesador. En nuestro caso de los módulos de Digi, en procesadores ARM.
 
 
Boot loader.

El boot loader es un pequeño software que se ejecuta justo al encender un ordenador. Si hablamos de nuestro PC de sobremesa, este pequeño programa que reside en el MBR (Master Boot Record) de nuestro disco duro, se ejecuta una vez que la BIOS del ordenador ha inicializado todo el sistema. El boot loader entonces pasa información del sistema al Kernel, es decir, la partición del disco duro donde se montará la root y finalmente se ejecuta el propio kernel.

Pero si hablamos de sistemas embebidos esto es más complicado, ya que estos sistemas NO tienen BIOS que inicialicen el sistema y la inicialización del microprocesador, de los controladores de memoria, y en definitiva de todo el hardware de la placa debe hacerlo el programita de la boot antes de que se ejecute el Kernel del sistema.

Como mínimo el boot loader debe inicializar el hardware, especialmente los controladores de memoria y arrancar el sistema operativo con los parámetros adecuados, aunque también puede tener funcionalidades adicionales, como la lectura y escritura en memoria, y todas aquellas funcionalidades que permiten poder actualizar el firmware (sistema operativo, aplicaciones, …) en la memoria flash del equipo vía serie o ethernet.
 
 
El Kernel

El Kernel es la parte fundamental del sistema operativo, el núcleo del sistema. Es el responsable de la gestión de los recursos y las comunicaciones entre el harware y el software, proporcionando una abstracción de hardware y proporcionando una manera segura de acceder al sistema de memoria. También es el responsable del control de las interrupciones y de todas las operaciones de E/S (Entrada/Salida).
 
 
Modulos del Kernel.

Los módulos del kernel son pequeños programitas que son cargados y descargados por el kernel del sistema en función de las necesidades. A modo de ejemplo, un driver de un dispositivo lo podéis ver como un módulo del kernel, el cual permite a dicho kernel poder acceder al hardware conectado al sistema. Si no hubiera módulos tendrían que implementarse en el propio kernel y éste sería terriblemente largo y poco abierto. De esta manera cuando modifiquemos un módulo no tendremos la necesidad de recompilarlo todo de nuevo.
 
 
Root File System.

Como sabéis los Sistemas Operativos manejan ficheros y directorios.  El Root File System digamos que está en el techo del árbol de directorios y ficheros. Éste contiene ficheros y directorios críticos para las operaciones del sistema como pueden ser los programas de inicialización del sistema.
 
 
Aplicaciones.

Esto es lo que más conocéis todos, pues son los programas que utilizan los recursos de un procesador para realizar tareas. Las aplicaciones hacen uso de los dispositivos hardware, como hemos dicho a través de los drivers, los cuales son parte del kernel.
 
 
Espero que os haya resultado interesante esta primera introducción. ;-)

Tal vez en alguna ocasión hemos tenido que diseñar algún circuito en el que entre en juego el uso de la línea telefónica convencional. Un ejemplo puede ser un sistema de seguridad para llamadas de voz. Por ejemplo, imaginemos que queremos diseñar un equipo que nos permita realizar llamadas de voz utilizando la línea telefónica convencional y, automáticamente, en el caso de la caída de esta, que las llamadas de voz salgan a través de la línea GSM. Aplicación también útil para sistemas de alarmas, por ejemplo.

Hay dos formas de llevar a cabo esta aplicación. Una sería el diseño por nosostros mismos de los circutos de telefonía, lo que requiere de ciertos conocimientos específicos en la materia, de tiempo de diseño de los circuitos, de los pcb, de las pruebas, de las certificaciones, en definitiva, de una cantidad de requerimientos que se traducen en tiempo y dinero.

Y la otra forma, la más fácil y rápida, es utilizar dispositivos que existen ya en el mercado para estos menesteres, como son los interfaces de línea. Silver Telecom dispone de dichos interfaces. Podríamos clasificarlos en dos grupos. Por un lado tendríamos los SLIC, que serían unos dispositivos que digamos emularían la línea telefónica y por otro lado los COIC, que emularían a lo que serían los teléfonos conectados a la línea telefónica.

Hoy voy a comentar rápidamente los SLIC, otro día hablaré de los COIC y finalmente pondré un circuito ejemplo real de aplicación del uso combinado de ambos dispostivos.

ag1170-2.gif

El SLIC más utilizado de Silver Telecom es el ag1170. Podéis verlo en la fotografía superior.  Es un pequeño dispositivo que como decía anteriormente emula lo que sería la línea telefónica. Es decir, genera, a partir de los 5V (o 3.3V) de alimentación, todas las tensiones que genera la línea telefónica, generando por tanto el tono de espera, el ring (75V), etc …

Estas señales pueden generarse fácilmente a través de los pines de entrada del dispositivo (ver datasheet), que pueden ser controlados fácilmente desde cualquier microprocesador básico. También convierte de los dos hilos con los que digamos emula la línea telefónica (llamados TIP y RING) y a los cuales podríamos conectar cualquier teléfono convencional que tengamos por casa (o a una distancia de hasta 3Km :-) ), a cuatro hilos. Dos serían de entrada de audio y dos de salida de audio. Por supuesto, todo el tema de adaptación de impedancias puede programarse y es muy simple de implementar, pues basta utilizar unos pocos componentes externos, siguiendo las instrucciones del fabricante.

Todo el tema de protecciones también lo tiene resuelto el ag1170 de Silver Telecom. Por ejemplo, protecciones térmicas para el caso de cruce de las líneas TIP y RING, caso en el que el conversor interno DC/DC del dispositivo se encargaría de limitar, o protecciones contra sobrevoltajes.

ag1170-ejemplo.JPG

Cuando hablemos del coic y veáis un ejemplo de aplicación final, seguro que quedará todo más claro y veréis mejor la utilidad. Y es que desde mi punto de vista hoy en día la tendencia es a utilizar cada vez más módulos ya diseñados, pues el tiempo de colocación de un producto en el mercado es crucial. Nadie se pone a diseñar hoy en día un módem GSM (ni uno analógico) se compran módulos hechos y los integramos en nuestros diseños. Con los interfaces de línea ocurre cada vez más.


Espero que os pueda resultar interesante en algún momento este post. ;-)

Hoy en día cada vez las empresas dependen más de Internet, correo electrónico, búsqueda de información, etc. Y no digamos de aquellas empresas en los que en Internet  se basa parte de su negocio, como empresas de seguridad que controlen cámaras IP, servicios de telemantenimiento y telecontrol entre otros servicios.

A un particular, el hecho de quedarse si Internet a causa de un problema con una avería de la línea telefónica puede suponerle molestias ( y “cabreos” sí :-) ) pero normalmente ahí queda la cosa. A una empresa grande o de mediano tamaño puede suponerle unas pérdidas económicas importantes.
 

¿Y qué tiene que ver esto con el protocolo VRRP?

El protocolo VRRP es un protocolo que implementan en su firmware cada vez más routers y, en pocas palabras, permite que si un router “cae”, otro router tome el control.

vrrp.gif

El funcionamiento del protocolo VRRP se basa en el uso de lo que se llama un “Router Virtual“. Este router virtual lo simulan el conjunto de routers reales que tengamos en la instalación (y que dispongan del protocolo VRRP) y será también la IP de este router virtual la que tengan configurados los equipos de la red como gateway de salida hacia Internet.

Al router virtual se le asocia una dirección IP virtual y una MAC virtual. Esta IP y esta MAC nunca cambian con independencia del router real que se esté utilizando en un momento determinado. El sistema lo forma un router master (el router real que están utilizando en un momento dado los dispositivos de la LAN) y un conjunto routers de reserva llamados routers de backup.
 
 
¿Y cómo funciona el protocolo VRRP?

El funcionamiento del protocolo VRRP es el siguiente: el router master envía periódicamente a la dirección IP 224.0.0.18 (asignada por la IANA, Internet Assigned Number Authority) y utilizando el protocolo IP 112 (también establecido por la IANA) un paquete de datos en el cual indica su estado (si es correcto, el nº de prioridad del router, etc).

Si durante un tiempo determinado los routers de backup dejan de recibir este paquete del router master, entonces el router de backup de mayor prioridad pasa a convertirse en el nuevo router master del router virtual, es decir, todo el tráfico hacia Internet será enrutado por un router de backup reconvertido en router master.

Por último decir que el protocolo VRRP permite, si se desea, que el router de mayor prioridad pueda expropiar de la función de router master a un router de menor prioridad. Por ejemplo, esto puede ser muy útil para el caso de una instalación que disponga de un router ADSL convencional y de un router UMTS/HSDPA de backup. En caso de que la línea ADSL caiga por una avería, el router de backup UMTS/HSDPA toma el control. Cuando la avería se solucione, automáticamente el router ADSL, que lo tendríamos configurado con mayor prioridad, tomaría el control de la instalación y todo el tráfico dejaría de salír vía UMTS para salir por la línea telefónica. Esto supone un ahorro, pues el coste de la línea UMTS es por volumen de tráfico y sólo debería utilizarse cuando fuese necesario.

En unos días os presentaré un interesante Router UMTS / HSDPA con protocolo VRRP.

Espero que os haya resultado interesante. ;-)

 

Hace poco más de una década Intel desarrolló el bus PCI y fue adoptado por la industria como un estandard dirigido por el grupo PCI SIG (PCI Special Interest Group). Este bus nació con el objetivo de superar las limitaciones de velocidad que tenían los ordenadores de la época con el bus ISA. Acordémonos de los ordenadores de entonces que sólo tenían este tipo de BUS. Poco a poco los equipos cada vez tuvieron menos buses ISA, hasta llegar a la actualidad, en que es casi imposible (por lo menos en los ordenadores convencionales de sobremesa) encontrar equipos con este tipo de bus.

El bus PCI, de 32 ó 64 bits con una frecuencia de bus de 33 ó 64MHz consiguiendo velocidades de datos de entre 132 y 512 MB/seg, desbancó por completo al bus ISA. Sin embargo a día de hoy esa velocidad resulta insuficiente para muchas aplicaciones y por ello Intel ha diseñado el nuevo estandard PCI Express, que como en su día el PCI, se está imponiendo poco a poco.

La arquitectura en este caso es diferente. Si bien con PCI el bus se comparte por el conjunto de tarjetas y dispositivos a él conectado, en este caso lo que se comparte es un switch. Es decir, antes cada dispositivo PCI colgaba del bus. Con PCI Express eso deja de ser así y todos estos dispositivos cuelgan de un switch. Esta es la característica más importante de PCI Express. El hecho de dejar de compatir el bus y realizar conexiones punto a punto entre los dispositivos PCI Express y el switch evita tener que dividir el ancho de banda disponible entre los distintos dispositivos, como ocurre con dispositivos PCI. En este caso es el switch el encargado de routear toda la información de un dispositivo PCIe a otro con lo que se garantiza el ancho de banda máximo para cada dispositivo.

arquitectura-pci-express.gif

La comunicación de los dispositivos PCI Express se realiza a través de Líneas. Cada Línea la forman un conjunto de 4 señales. Dos señales RX y otras dos TX. Esto es porque se utiliza un sistema diferencial. La comunicación es full duplex. Una de las características más importantes de PCI Express es que pueden agruparse líneas con el fin de aumentar el ancho de banda. Por ejemplo, veamos el siguiente dibujo:

link-pci-express.gif

En el ejemplo, tenemos un LINK (nombre que decibe la conexión de un dispositivo PCI Express con el switch) x4, es decir, los dispositivos PCIe del ejemplo se comunican a través de un LINK formado por 4 Líneas. De esta manera es posible incrementar el ancho de banda de la comunicación, consiguiendo velocidades extraordinariamente altas. Cada línea tiene un ancho de banda de 250MBytes/seg. Pueden unirse hasta 32 líneas, por lo que la velocidad máxima que se puede conseguir con un dispositivo PCIExpress es de 250×32 = 8GBytes/seg. Como véis con estas velocidades PCI Express va a permitir reemplazar no sólo a los buses PCI, sino también al resto de buses, como el bus AGP

Las líneas pueden agruparse en el formato x1, x2, x4, x8, x16 y x32, aunque las agrupaciones más comunes de líneas (las que suelen tener los ordenadores de hoy en día) son: de x1, x4, x8 y x16.

placa-base-pciexpress.gif

Otras características de PCIExpress son que mantiene la compatibilidad en software con PCI (aunque no en hardware, obviamente), se permite la conexión en caliente y además dispone de gestión integrada de errores e implementa funcionalidades de ahorro energético, aunque para para poder utilizar estas nuevas características es preciso que el Sistema Operativo sea capaz de hacerlo.

En la foto de la placa base que os he puesto salen tres buses PCI estandard. Veremos con toda seguridad con el tiempo como se va reduciendo este número hasta llegar a desaparecer por completo, tal y como ocurrió con el ya obsoleto bus ISA.

Espero que os haya gustado. ;-)

El lector de este blog que use habitualmente dispositivos RF sabrá que una de las características más importantes de cualquier dispositivo de transmisión / recepción RF es el alcance de las comunicaciones.

En el catálogo de cualquier fabricante de módulos RF, como pueden ser Maxstream, Coronis, Jennic, Nordic, etc, etc, etc encontraréis que siempre se indica la máxima distancia a la que se pueden comunicar un equipo emisor y receptor.

Los datos que nos indican en los catálogos son ciertos, pero tenemos que saberlos interpretar para no llevarnos sorpresas desagradables. Los datos proporcionados por los fabricantes de alcance máximo RF son siempre bajo ciertas condiciones idóneas. Estas condiciones idóneas son básicamente:

1.- Utilización de antenas correctas. No vale utilizar una antena de 868Mhz para un dispositivo de 2.4Ghz.
2.- Ausencia de condiciones climatológicas adversas (en el caso de comunicaciones outdoor (exteriores)).
3.- Visión directa entre dispositivos radio, es decir, sin obstáculos entre medio.
4.- Altura correcta donde se colocarán las antenas para respetar la primera zona de Fresnel.

Es este importantísimo punto nº4, relativo a las zonas de Fresnel, un tanto desconocido, es del que voy a hablar un poco.
 
 
¿Y qué son las zonas de Fresnel?

Hablando un poco académicamente “zona de Fresnel se le llama al volumen de espacio entre emisor y receptor RF de manera que el desfase entre las ondas en dicho volumen no supere los 180º.”  Uffffff :-)

fresnel2.gif

Es decir, cuando transmitimos algo en tierra (es decir, no estamos en el espacio) tenemos rebotes en el suelo. Los rebotes pueden contribuir positivamente a la recepción de la señal en el caso de que lleguen en fase y negativamente si llegan en contrafase.

Fresnel definió una zona que hay que tener en cuenta además de tener, como indicaba en el punto 3), visibilidad directa entre antenas. Realmente definió una serie de zonas. La zona 1 contribuye positivamente a la propagación de la onda, la segunda negativamente, la tercera positivamente, la cuarta negativamente, y así sucesivamente. Es decir, las impares contribuyen positivamente y las pares negativamente. Además, la primera zona concentra el 50% de la potencia de la señal  por lo que debemos procurar que llegue lo más integra posible al receptor.
 
 
¿Y cómo puedo llevar a la práctica la teoría de Fresnel para conseguir el máximo alcance de mis dispositivos RF?

Pues es sencillo. Debemos mantener despejado, al menos, el 80% de la primera zona de Fresnel. Fijémonos en el siguiente dibujo:

fresnel.gif

En color gris se representa a la primera zona de fresnel. Es decir para conseguir comunicarnos a una distancia D con una señal portadora de frecuencia f, debemos conseguir que la altura r de la primera zona de Fresnel (o al menos el 80% de r) esté libre de obstáculos. 

O visto desde otro escenario, imáginemos que estamos en el desierto en ausencia de cualquier tipo de edificio, árbol u obstaculo entre emisor y receptor. El fabricante nos dice que el alcance máximo de un dispositivo son X metros. ¿Cual es la distancia respecto al suelo a la que hemos de colocar las antenas para conseguir no entorpecer al menos el 80% de la primera zona de fresnel y conseguir el máximo alcance?

r = 17.32  \sqrt{{D} \over {4 f}}

Pues si aplicamos la fórmula de ahí arriba (D en Km, r en metros, f en Ghz) nos sale que si un fabricante nos dice que la distancia máxima de su dispositivo que trabaja por ejemplo a 2.4Ghz es de:

300 metros, implica que las antenas tienen que estar como mínimo a 2.45 metros de altura respecto al suelo.
1.6 kilómetros, implica que las antenas tienen que estar por lo menos a 5.65 metros de altura respecto al suelo.
8 kilómetros, implica que las antenas tienen que estar por lo menos a 12.64 metros de altura respecto al suelo.
16 kilómetros, implica que las antenas tienen que estar por lo menos a 17.88 metros de altura respecto al suelo.

Espero que encontréis de utilizadad este post para vuestros diseños RF ;-)

Ayer Sábado hablaba de la tecnología ETX para PCs industriales. En el post de hoy voy a hablar de la evolución de ETX, que es XTX (eXtended Technology for ETX).

XTX es una evolución del muy conocido y usado estandard ETX, al cual se le añaden toda una serie de nuevas tecnologías de Entradas/Salidas. A día de hoy el bus ISA apenas se usa, es una tecnología podríamos decir ya obsoleta (posiblemente la mayoria de los lectores de este blog no tengan ya ninguna tarjeta ISA instalada en su PC, y si no es así, deberías ir pensando en cambiar de PC … ;-)   ). Si dáis un vistazo al post anterior podréis ver que en el conector X2 estaban todas las señales E/S del bus ISA. Pues bien, con XTX este conector X2 cambia de función. De esta manera se han podido añadir un gran número de buses de alta velocidad, como pueden ser los buses PCIExpress y Serial ATA (abajo tenéis las definiciones de qué son estos buses).

conectoresxtx.gif

El resto de conectores, X1, X3 y X4 que comenté ayer se mantienen invariables, es decir, cumplen el estandard ETX (Rev 2.7) y por tanto son compatibles con la tecnología anterior ETX. De hecho si algún día queremos utilizar un módulo XTX en lugar de un ETX nos servirá la placa base que ya tengamos diseñada. Eso sí, siempre que no utilicemos (lo más normal) el bus ISA, que como decía, ya no existe en XTX.

Si se está utilizando un PC embebido ETX y estamos usando el BUS ISA y queremos evolucionar a XTX tenemos dos opciones.  Una, utilizar un bridge PCI-ISA que tendríamos que incluir en el diseño de nuestra placa base (donde insertaremos el módulo embebido XTX). La otra opción (si la anterior es muy cara de implementar por implicar rediseño) puede ser utilizar el bus LPC (Low Pin Count) que corresponde aproximadamente a un bus ISA serializado.

insercionxtx2.gif

¿Pero qué nuevos buses tenemos en el conector X2?

Pues tenemos buses PCIExpress, ExpressCard, Serial ATA, USB, Interfaz de Audio digital y un bus LPC.
Veamos ahora en qué consisten estos buses.
 

PCI Express.

XTX dispone de 4 líneas para PCI Express. Estas líneas que pueden configurarse como 4×1, 2×2, 1×4 permiten conectar hasta 4 dispositivos externos. El ancho de banda de cada una de estas líneas es de 2.5Gbps. Con estas 4 líneas PCI Express pueden utilizarse dispositivos periféricos que requieran de un gran ancho de banda, como puede ser un dispositivo Gigabyte Ethernet.
 
 
Serial ATA.

XTX ofrece 4 buses Serial ATA. Serial ATA es una evolución del bus ATA paralelo, el cual mejora en velocidad. Serial ATA tiene una velocidad de 150 MBytes/seg y puede ser aumentada hasta 600Mbytes/seg para futuros desarrollos. Serial ATA es completamente compatible a nivel de software con parallel ATA.
 
 
ExpressCard.

XTX soporta hasta dos expressCard, que es el sucesor de PCMCIA, con un menor tamaño.
 
 
Bus LPC.

Este bus, como comentaba antes, se suministra como substituto al bus ISA, pues corresponde aproximadamente a un bus ISA serializado pero con un número muy reducido de señales.
 
 
Bus USB.

XTX ofrece dos buses USB 2.0 adicionales, lo que permite el poder conectar hasta 6 dispositivos USB 2.0 a nuestro equipo.
 
 
Interfaz digital de audio.

Además de el soporte para audio estandard (Line-in, Line-out, Mic) XTX ofrece las siguientes características: Audio DVD, Capacidad multistreaming, VoIP para telefonía, Dolby 5.1/6.1/1.1, etc …
Si necesitáis más información sobre XTX, podéis visitar www.xtx-standard.org o leer directamente el PDF del estandard XTX en el siguiente link.
 
 
Espero que os haya resultado de interés ;-)