domingo, 24 de enero de 2010

SDR-IP ¿También se había pasado?

Hace apenas un mes decía que no podíamos pedir a SSMM los Reyes Magos la esperada SDR-IP.

Algo más recientemente hablaba sobre el tamaño "razonable" de una FPGA para la SDR que intento construir.

No creo que dejase en ninguno de los dos artículos sombre de duda sobre el trabajo de Pieter en este equipo. Poco después del primer artículo, los primeros días de 2010 han aparecido pruebas de que la SDR-IP existe y funciona perfectamente.

La prueba: dos vídeos en YouTube. El primero de ellos, del 1 de enero, muetsra el funcionamiento con SpectraVue y el uso de los dos mandos frontales, que permiten la configuración del equipo y la sintonía. Además, es posible ver su estructura interna. El segundo, más especutacular, permite ver el funcionamiento de la radio en el interior de un horno a 80ºC.

Me ha parecido interesante ver la estructura interna, ya que tiene relación con la segunda entrada que menciono al comienzo. En el circuito se aprecia un circuito FPGA en formato QFP (pines por los cuatro lados) de la serie Spartan de Xilinx. A principios de 2009, en un intercambio de correo, Pieter me hizo saber que estaba trabajando con una FPGA XC3SD3400A de Xilinx. (Superior aún a la del kit que había adquirido).

Pues bien, este modelo de FPGA no se fabrica en formato QFP, sino únicamente en BGA. A la vista del vídeo parece tratarse de una XC3S250D, la más grande que se fabrica en formato QFP.

¿Ha llegado Pieter a la misma conclusión tras sus pruebas?. En el vídeo se aprecia que la construcción del SDR-IP se realiza alrededor de tres tarjetas. Una de ellas, que podríamos llamar "tarjeta base" soporta los filtros de entrada, los interfaces de usuario junto a todos los conectores y alimentación. Otra montada sobre esta, contiene materiales que no llego a identificar ¿Circuitería de audio?. Y finalmente, una tercera contiene toda la circuitería digital, lo que incluye la FPGA, memoria y convertidores A/D y D/A.

Gracias a esta estructura, cambiando la tarjeta digital se pueden cambiar las prestaciones. ¿Se trata sólo de un prototipo o será así como salga el primer SDR-IP al mercado?. Por ahora, seguiremos esperando.

miércoles, 20 de enero de 2010

FPGA en DDC/DUC ¿Hace falta tanto?

La tecnología FPGA es uno de mis temas pendientes de estudio. Desde que hace casi 30 años trabajé con sencillos circuitos PAL, ni por mi profesión, ni por otras aficiones he tenido la oportunidad de profundizar en ella.

Sí que me he mantenido al día mediante la lectura de novedades y el seguimiento de sus características. Su uso en SDR me hizo indagar más a fondo, pero hasta ahora no había hehco ninguna práctica. Y digo hasta ahora porque en mi deseo de trabajar con estos dispositivos solicité un kit que me acaba de llegar.

Se trata de una tarjeta de evaluación de Xilinx. El dispositivo que incluye, el XC3SD1800A es una potente FPGA que aparte de soportar circuitos de una complejidad equivalente a 1,8 millones de puertas incluye 84 multiplicadores acumuladores como elementos prediseñados. Los multiplicadores/acumuladores son unidades básicas en la mayor parte de los procesos DSP.

Por supuesto, me está faltando tiempo para instalar todo el software de desarrollo y comenzar mi primer "DDC" o "DUC" (aún no lo he decidido). Esto me ha llevado a revisar la documentación relacionada con FPGA y SDR que he conseguido hasta ahora entre la que se incluye la relativa a otras implementaciones. Perseus usa una XC3S250E, que integra y el receptor multicanal de la universidad de twente emplea una XC3S500E ("por ser la más grande en cápsula soldable fácilmente" según su creador). Ambas son mucho más pequeñas, con 12 y 20 multiplicadores simples (sin acumulador) respectivamente.

¿Me he pasado de frenada?. El receptor de la universidad de Twente recibe siete bandas simultáneamente. Si considero que su FPGA tiene 20 multiplicadores, no llegan a tres por banda. ¿Para qué quiero 84?. Espero que con más capacidad de proceso se puede ofrecer mayor funcionalidad, mejor calidad o ambas cosas al mismo tiempo. Al menos no me quedaré corto.

Por cierto, según me comentó Pieter (el creador del SDR-IP) a principios de 2009 su SDR-IP (del que por cierto hay novedades de las que hablaré pronto) equipaba un dispositivo aún mayor, casi un 30% más de capacidad que el que yo he elegido para mis pruebas. Aunque creo que finalmente ha cambiado de opinión. ¿En qué me baso? Por ahora sólo diré: "stay tuned"

lunes, 18 de enero de 2010

¿Mejor para un usuario, peor para SDR?


Este pasado fin de semana he dispuesto de un tiempo continuado para poder deciarlo al estudio.

Aunque ya he publicado un par de entradas en el nuevo blog (lo que significa dos experimentos) aún quedaba mucho por hacer. Cumplir con el autocompromiso de efectuar una nueva publicación cada semana exige un esfuerzo constante. Eso sin tener en cuenta que he aprovechado para poner un poco de orden y que el trabajo se puede ver con más claridad.

Pero este no era el tema ¿o sí?. En mis experimentos, estoy empleando Spectravue como sistema de visualización de los resultados. Se generan señales de audio a 96000 muestras por segundo en el KIT del DSP de TI (OMAP-L137) se sacan por la salida de línea y se inyectan en la entrada de línea del ordenador. Se configura SpectraVue para que procese dicha entrada y... voilà se puede ver inmediatamente el resultado (señal en el tiempo y espectro).

Mi primer contratiempo fue el de ver que, a pesar de que la tarjeta de audio del llamativamente nuevo ordenador que estaba empleando puede muestrear a 96KSPS, filtra todo lo que le entra a hasta 20 KHz con lo cual, señales por encima de este valor no son visibles. Este significaría que si intento emplear esta tarjeta de audio con un receptor de conversión en cuadratura (SDR-1000, PM-SDR o SoftRock entre otros) el ancho de banda se ve reducido a 40 KHz.

Pero hay algo aún peor. Experimentando con la generación de señales en cuadratura (I/Q) observé que el comportamiento era muy extraño. Tras varias pruebas puede descubir que el equipo aplica control automático de ganancia y que tiende a equilibrar el nivel de los dos canales.

Por si fuera poco, la salida la obtiene de una mezcla de las entradas de los canales y no de cada canal por separado. Y no he encontrado aún la solución (aparte de emplear una tarjeta externa).

Todo esto tal vez sea lo mejor para el que un usuario pueda emplear Skype sin esfuerzo, pero no para los experimentos que tenía planeados. De momento, empleo un convertidor externo con bus USB y puedo seguir adelante.

martes, 12 de enero de 2010

Minimalismo y CRAY-I

La SDR no sería posible sin potentes máquinas de cálculo. Varios millones de multiplicaciones por segundo de números de con una decena de cifras es una de las tareas de una SDR típica.

Aunque nos hemos acostumbrado a verlo como algo normal, y a disponer de capacidades de cálculo enormes en nuestro bolsillo, no siempre fue así.

De hecho, hace algo más de 30 años alguien diseñó una máquina revolucionaria, capaz de hacer una cantidad de cálculos científicos de alta precisión capz de dejar en ridículo a casi todos los ordenadores de la época. El Cray-1.
Hace poco localicé de forma casi casual el manual de servicio del Cray-1. Tras unos breves segundos estaba en mi poder (algo también difícil de intuir hace 30 años) y comencé a leerlo.
Ya no recordaba sus características, que tuve ocasión de conocer a través de un número especial de la versión española de la revista Scientific American (Investigación y Ciencia). En aquel número se hablaba de unos tipos de Xerox en Palo Alto que trabajaban (Creo recordar que con un PDP-11) en un terminal en el que se podían tener varios programas visibles gracias a que cada uno estaba en una "ventana", de un microcontrolador que lo tenía todo en una pieza y que se llamaba MCS51, de... bueno, volvamos al tema.
Cuando un microprocesador de la época funcionaba en torno a 1 MHz con palabras de 8 bits en CRAY 1 funcionaba con palabras de 64 bits a más de 80Mhz. Mientras un microprocesador con multiplicador de la época era capaz de multiplicar dos palabras de 8 bits en 1000ns, (uno estándar podía tardar entre 10 y cuatrenta veces este tiempo) el CRAY1 podía multiplicar dos número de coma flotante en 12,5 ns.
Para el cálculo de una multiplicación en coma flotante de 64 bits la relación de tiempos entre un micoprocesador de la serie MCS51 y un CRAY1 era de al menos 100000:1. Es decir, mientras un microprocesador hacía esta operación, el CRAY-1 había hecho 100000.
Este ordenador introdujo muchos conceptos de arquitectura (física y lógica) nuevos y aún en muchos DSP modernos se puede ver su influencia. La tecnología que ha permitido la integración en pequeños espacios ha solventado muchos de los problemas de este diseño original en el que las señales tenían que recorrer distancias "enormes" lo que suponía un problema añadido para el sincronismo de todas ellas y la velocidad de proceso.
Esta maravilla se diseñó con sólo tres tipos de circuitos integrados lógicos y un tipo de circuito de memoria. Puro minimalismo. Como en el proceso digital de señales se buscan algorimos que en base a repetir operaciones muy simples (sumas y productos) se puedan conseguir resultados asombrosos. También puro minimalismo.
Si seguimos el mismo ritmo, dentro de 30 años podremos tener sobre la mesa un SDR capaz de procesar TODO el espectro (O al menos de 0 a 10 GHz) identificando automáticamente los tipos de señales que previamente se le hayan instruido, interpretando las llamadas vocales en busca de un indicativo concreto y pasándonos una llamada concreta a cualquier punto en el que estemos. ¿Acabará esto con la radio? Creo que no, que los avances son inevitables, que hay muchas formas de hacer radio y que todas deben ser bienvenidas, y que la naturaleza impondrá límites y nuevos retos.
Mientras tanto gracias a todos los pioneros que trabajan en ir venciendo esos nuevos retos. Y como aún no conozco a muchos de ellos le daré las gracias a Seymour Cray por abrir nuevos caminos.

lunes, 4 de enero de 2010

AUDIO, USB, ETHERNET, FIREWIRE... ¿HDMI?

Si observamos las radios de aficionado con tecnología SDR nos encontramos en la mayor parte de los casos con una "caja" que convierte las señales de radio a señales en banda base (y a la inversa durante la transmisión) y un ordenador al que llegan (o del que parten) dichas señales.

Dependiendo de la radio que nos ocupe, tendremos diferentes formas de enlace para dichas señales.

La forma más clásica (audio analógico) empleada en los convertidores QDC ha ido dando paso a formas más sofisticadas y potentes. Incluso receptores QDC emplean sus propios convertidores ADC y entregan señales digitales para obtener mejores características.

El paso de información digital al ordenador se hace a través de interfaces clásicos de ordenador. Por ejemplo, SDR-14 y PERSEUS emplean USB, FlexRadio emplea "FireWire" (entre otros) y el ordenador a su vez puede intercambiar la información que recibe o transmite a través de redes ETHERNET (Como lo hace el SDR-IP).

Todos estos interfaces son interfaces clásicos de ordenador, no diseñados especialmente para SDR.

Recientemente, haciendo experimentos, me he visto en la necesidad de conectar un convertidor A/D de alta velocidad (2 canales a 1,5 MSPS) a un DSP. La conexión puede hacerse de dos formas: En serie o en paralelo. Dado que en el DSP me resultaba difícil disponer de las 20 líneas para la conexión paralelo, rápidamente me decidí por la serie.

El convertidor debe ir en una tarjeta separada de la del DSP, conectada mediante cables. Dada la velocidad de datos (1,5M*2*16 bit = 48 Mbits/s) las conexiones deben ser cortas o ir "guiadas" a través de líneas de transmisión.

Aquí es dónde me aparece la pregunta: ¿Cuán lejos se pueden separar ambas tarjetas?. El número de conexiones entre ambas es de tres o cuatro señales de alta velocidad (Según el modo de trabajo), además de un interfaz I2C de baja velocidad para la configuración. Este es un interfaz típico entre un DSP y un convertidor A/D o D/A.

Esto significa montar un mazo de cables con cuatro líneas de transmisión independientes además de (al menos) tres cables extra. ¿Es posible que exista tal cable? ¡Existe!. Un cable HDMI tiene cuatro líneas de transmisión y al menos seis cables extra para señales de baja velocidad.

Por supuesto, no conozco ordenadores que vengan con este interfaz salvo dedicado a su uso original, la salida de vídeo, y no proponga introducir las señales por aquí. Lo que proponga es el empleo de este tipode conexión ya que el cable es estándar y de fácil localización, para separar la conversión del proceso (o al menos de parte del proceso) de señal y ésta del interfaz de usuario que de nuevo puede ser un ordenador.

Un receptor/transceptor SDR típico debe preparar la señal para ser transferida a través de un interfaz estándar (lo que provoca un retraso y no añade información) Tras viajar a través del medio, el ordenador remoto debe recoger la información en el formato que haya llegado, procesarla a través del sistema operativo para identificar su punto de destino y entregarla a la aplicación (nuevo retraso) y finalmente procesar la señal para obtrener una salida, compartiendo el tiempo de proceso con otras tareas (más retraso).

Lo que propongo es definir un "estándar" de interfaz para conectar señales digitales sin procesar a un procesador que las reciba directamente usando cables HDMI para evitar los retrasos y ofrecer toda la capacidad de proceso dedicada. Ya os contaré mis avances en este sentido.

sábado, 2 de enero de 2010

Año nuevo ¿New Life?

Comienza un año nuevecito del todo. Aunque realmente, en el momento de escribir estas llíneas ya se ha gastado el 0,46552% de 2010. ¡Hay que ver cómo pasa el tiempo!.

Casi ha pasado también un año desde que comencé a escribir entradas en este blog, aunque en mi mente parece que fue ayer. Revisando lo realizado en este tiempo he visto que al comenzar tenía muchas ideas y poco tiempo, muchas ganas de reunir información y experiencia, de aprender teoría y aplicarla en la práctica.

Este tiempo me ha servido para conseguir y estudiar abundante información, para ordenar ideas, para conocer nueva gente con inquietudes similares y en menor medida para practicar con ellas.

Sí, parece que fue ayer, pero visto con perspectiva, y a pesar del tiempo dedicado que siempre me parece escaso, el avance ha sido importante.

Ha llegado el momento de dar un nuevo salto. Pretendo que esa visión práctica sobre la que tan poco había avanzado comience a tomar forma. Esto afectará a la forma de presentarlo en internet, eso que los modernos llaman WEB 2.0.

Por supuesto, este blog segirá adelante, con más brío incluso, y se mantendrá el grupo creado el año pasado para el intercambio de información SDR. Pero para este enfoque práctico necesitaba una estructura nueva.

Por ello hay y habrá novedades. La primera es la incorporación de un blog dedicado únicamente a aspectos prácticos. La segunda es la creación de una página WEB que sirva de repositorio para alojar documentos y código asociados. La razón de iniciar una nueva página es simple: Esta nueva página será en inglés, pretendiéndose una mayor apertura al mundo.

Por cierto, para acceder al nuevo blog: http://dspradio.blogspot.com/. Desde aquí se encontrarán los enlaces necesarios para el acceso al resto de recursos.