Un caso de estudio sobre el diseño embebido de radio por internet
La radio por internet refiere al método de retransmisión continua de las emisiones radiofónicas a través de Internet, de forma similar a como se hace por radio terrestre. Este artículo describe un proyecto de radio por Internet que también tiene la posibilidad de emitir audio en formato MP3 desde una tarjeta SD, por lo que resulta que se puede doblar como un reproductor MP3. El diseño también utiliza conectividad Ethernet y un display de LED. Este artículo cataloga las opciones de diseño realizadas durante el proyecto y las razones detrás de ellas.
Desde el punto de vista del ingeniero de desarrollo, el sistema es bastante complejo y se tienen que resolver muchos desafíos que plantea el software y hardware, para poder construir un prototipo plenamente operativo. La aplicación de radio por Internet está basada en un módulo central CM-BF537E de Bluetechnix, el cual contiene el procesador Blackfin ADSP-BF537 de Analog Devices. La familia Blackfin ha sido diseñada para aplicaciones industriales y multimedia, encajando perfectamente con esta aplicación. Los módulos centrales Bluetechnix ofrecen las funcionalidades clave para muchas de estas aplicaciones en pequeños módulos de hardware que pueden enchufarse o soldarse a una placa base personalizada.
Fuente: Farnell y Bluetechnix
Sistemas de ingeniería
El sistema de radio por internet puede construir usando un desarrollo estándar y las placas de extensión mostradas en la Figura 1. Ya sea para recuperar la información radiofónica a través de una conexión Ethernet o del puerto de la tarjera SD, la radio por Internet utiliza el CM-BF537E para procesar la información y el Audio Codec AD1836 para la salida de audio. La radio por Internet puede ser controlada por el usuario a través de un monitor TFT, botones o la combinación de ambos.
En general, el desarrollo de sistemas embebidos siempre consiste en un “co-desarrollo” de hardware y software para conseguir lanzar el producto al mercado más rápidamente. Pero esto requiere que los ingenieros de desarrollo del software tengan un hardware estable para empezar a desarrollar la aplicación, y los ingenieros encargados de desarrollar el hardware tengan los controladores de software para verificar su diseño. Por lo tanto, en el desarrollo de cualquier prototipo se acostumbra a reducir el riesgo, tiempo y coste del desarrollo mediante el uso de diseños de referencia y estructuras de desarrollo de hardware y software.
Hardware de radio por Internet
Como construir un diseño hardware personalizado basado en Blackfin desde cero usando los diseños de referencia y adaptando los códigos de muestra disponibles consume mucho tiempo y tiene sus riesgos, ya que la depuración del hardware y software no estable tiene muchas posibilidades de alargar los plazos del proyecto. Como alternativa a lo descrito anteriormente, el prototipo de radio por Internet fue construido usando plataformas de hardware modulares de Bluetechnix.
El prototipo inicial fue construido sin tener que diseñar un PCB: simplemente apilando las placas De extensión encima de la placa de desarrollo DEV-BF5xxDA-Lite y modificando las asignaciones de los pines de entrada/salida de las plazas con algunos cables. Esto permite el inicio de la fase de diseño de software sin interrumpir el diseño del nuevo hardware.
Las ventajas de realizar prototipos con estos módulos centrales basados en Blackfin y placas de desarrollo pueden resumirse en:
· Menor riesgo de fallo en el diseño del hardware con módulos probados.
· Evitar la producción y ensamblaje de prototipo PCB, incorporando pasos finos BGA.
· Las placas de extensión agilizan el proceso de desarrollo.
· El tamaño del modulo central de 31x36mm permite un prototipo tan pequeño como será el diseño final.
· Soporte de estructura uClinux y controlador BLACKSheep de base VDK.
En la segunda fase del prototipo, la placas de de extension y desarrollo se reducen a una simple placa base de dos capas, mientras que el módulo central CM-BF537E que comprende el transceptor de procesador, RAM, Flash y Ethernet fue reutilizado y enchufado a la placa base personalizada.
La propuesta de software
El diseño de este software de bajo nivel también puede ser un importante obstáculo en la implementación de cualquier aplicación con éxito. La primer decisión de diseño es escoger el sistema operativo apropiado, si fuera necesario, y desarrollar cualquier controlador de hardware que faltase. Para la radio por Internet, se pueden considerar son propuestas: una propuesta con base VDK e uClinux. uClinux fue la propuesta escogida en este caso, ya que ofrece las siguientes ventajas:
· Soporta todos los procesadores Blackfin como los modulo centrales Bluetechnix.
· Todos los controladores de dispositivo están disponibles, con pequeñas modificaciones
· uClinux suportq muchos protocolos de red y servidores web
· Soporta codecs MP3.
· Interfaces communes de control
Aunque se eligió uClinux para este proyecto, no siempre es esta opción la mejor solución; depende en gran medida de la aplicación de software y la “re-usabilidad” de los controladores del software. Además de núcleos a tiempo real con licencia (Quadros, etc), el núcleo a tiempo real VDK sin licencia de ADI junto con la estructura de controlador BLACKSheep son una solución alternativa viable con menor huella de memoria y tiempo de inicialización (uClinux y la aplicación tardan alrededor de 4 segundos).
Sin embargo, debido a las ventajas mencionadas más arriba, uClinux fue escogido por su capacidad de agilizar el tiempo de desarrollo.
El distribuidor oficial de uClinux en http://blackfin.uclinux.org contiene un núcleo Linux que está adaptado a las necesidades de los procesadores embebidos, así como a las herramientas y a los ejemplos de aplicación.
La Figura 2 muestra los módulos de software que necesita la aplicación. Todos los controladores de dispositivo fueron compilados en el núcleo y activados en modo núcleo. Los módulos sombreados en verde estaban disponibles en uClinux y soportados por el BSP
De los módulos centrales o las placas de extensión. Las modificaciones que se realizaron están sombreadas en naranja y en rojo, los módulos que tuvieron que ser escritos de cero.
Para recuperar la información de la conexión de Ethernet, se seleccionó el dispositivo ADSPBF537. Además del paquete de software usado por la configuración de red (dhcpcd, ifconfig, route), también están disponibles protocolos de red de alto nivel como SMB y sistemas de ficheros remotos NFS. Podrían usarse también controladores de dispositivo para memorias flash en placa y entradas GPIO listas para ser utilizadas. Sin embargo, el dispositivo de bloqueo de tarjeta SD/MMC tuvo que ser arreglado ya que era inestable.
Para la salida gráfica, se desarrolló un controlador de dispositivo para el TFT de color 320x240 de Hitachi, utilizando controladores de dispositivo similares como plantilla, y se implementó una biblioteca gráfica simple, pero suficiente.
Para el codec de audio AD1836A, ya existía un controlador de dispositivo para la necesaria salida estéreo, la cual podía permitir salida de sonido Surround 5.1 si así se especifica. Cualquier configuración requerida del codec se hizo a través del menú de configuración del núcleo. Se escogieron dos aplicaciones de software para gestionar la salida de audio y éstas fueron adaptadas ligeramente para encajar con los requerimientos de la aplicación; un reproductor MP3 con biblioteca de decodificación para emitir audio local y de red, con una aplicación de mezclador.
Finalmente, la lógica de funcionamiento de la radio por internet, la cual controla la interacción del usuario, fue desarrollada. Para su configuración, el software contiene un servicio web protegido con una contraseña desarrollada por las aplicaciones CGI. Funciona independientemente de la aplicación central en el servidor “boa” integrador.
Conclusión
El objetivo del desarrollo de radio por internet era reproducir retransmisiones de radio y ficheros de audio de nuestra red local y tarjeta SD, y los módulos centrales y placas de desarrollo de Bluetechnix ayuda a centrarse en desarrollos de aplicación, en lugar de hacerlo en problemas relacionados con el hardware. Usando uClinux, un sistema operativo plenamente funcional que ofrece una amplia gama de controladores, protocolos y aplicaciones de espacio de usuarios, reduce los plazos de desarrollo del software. Y gracias a todos estos factores, se pudo desarrollar un prototipo de radio por Internet totalmente operativo y desarrollado en su totalidad en pocas semanas.