UDLA Desarrollo de Software Radio TX/RX de FM CAPÍTULO 1 1. Contexto General Debido a que esta Tesis tiene como finalidad desarrollar un Transmisor y un Receptor de FM utilizando GNU Radio[19] y el Universal Software Radio Peripheral[5] es necesario iniciarnos en este proyecto conociendo los temas básicos que se muestran a continuación en este capítulo. 1.1. Software Radio (Hardware + Software system) 1.1.1. Definición El término de Software Radio fue acuñado por Joe Mitola en 1991 para referirse a las comunicaciones de radio reprogramables o reconfigurables. Donde la misma pieza de Hardware puede desarrollar diversas funciones en diferentes tiempos [1]. Software Radio refleja la convergencia de dos fuerzas tecnológicas desarrolladas en los años 90´s, comunicaciones digitales de radio y tecnología de software [2]. Se llama Software Radio a los sistemas de radio que en su implementación tienen una parte de Hardware y otra de Software, contrario a los sistemas de radio convencionales que se encuentran definidos únicamente por Hardware. Un sistema Software Radio realiza procesos similares a los de un sistema convencional, como se muestra en la Figura 1.1 y Figura 1.2. Partes como la antena, la sección de RF e incluso la parte de la conversión analógica se realizan en Hardware. Los procesos que involucran el uso de Software son la modulación / demodulación y la codificación / decodificación, hablando de un sistema básico de Radio. 1 UDLA Desarrollo de Software Radio TX/RX de FM En la Figura 1.1 se muestra un diagrama a bloques de un sistema de radio convencional y en la Figura 1.2 el diagrama de un sistema similar pero implementado en Software Radio. Antena RF FrontEnd A/D Conversión. D/A Conversión. Demodulación Decodificación Modulación Codificación Hardware Figura 1.1. Diagrama a bloques de un TX/RX de Radio convencional. USRP Universal Software Radio Peripheral Basic RX / Basic TX Tarjetas Secundarias Altera Antena RF FrontEnd A/D Conversión. D/A Conversión. Demodulación Decodificación Modulación Codificación Hardware Software Figura 1.2. Diagrama a bloques de un TX/RX de Software Radio. Software Radio tiene como finalidad el desarrollo de multisistemas para soportar distintos estándares de comunicación celular o distintas bandas de RF. Con esto se pretende lograr una interoperabilidad y adaptabilidad entre sistemas para poder brindar varios servicios en un mismo equipo en diferentes tiempos. 2 UDLA Desarrollo de Software Radio TX/RX de FM Podemos decir que Software Radio es una técnica que consta en poner el código de software lo más cerca posible de la antena, lo que hace que los problemas de radio en hardware se conviertan a problemas de radio en software. La característica fundamental de Software Radio es que las formas de onda transmitidas se definen por software, y este mismo software demodula la forma de onda recibida. Software Radio esta perfilando el diseño de sistemas de radio debido a la posibilidad de cambiar el sistema “on the fly” y crear nuevas opciones para el usuario. Los sistemas de Software Radio hacen lo mismo que un sistema de radio tradicional. La parte revolucionaria es la flexibilidad que el software nos ofrece, y el camino hacia un sistema universal de comunicación. “Podemos imaginar un dispositivo que funciona como teléfono celular y obtiene conectividad utilizando GPRS (General Packet Radio Service), 802.11 Wi-Fi (Wíreless Fidelity), 802.16 Wi-Max, enlace satelital, o el estándar emergente en aquel día.” [14] 1.1.2. Lógica Programable para Software Radio Para lograr implementar en software la parte de procesado de la señal es necesario utilizar sistemas de lógica programables como FPGA (Field Programmable Gate Array), DSP (Digital Signal Processor) y Microprocesadores, ya que con estos realizamos el procesado digital de señales, debido a la implementación en Software del procesado de la señal, es posible implementar diferentes tipos en el mismo sistema de radio. En el Apéndice C se muestra una lista de los FPGA´s que pueden ser utilizados en Software Radio. 3 UDLA Desarrollo de Software Radio TX/RX de FM 1.1.3. Inicios de Software Radio El concepto de Software Radio tuvo sus inicios en proyectos de las Fuerzas Armadas y el Departamento de Defensa de los Estados Unidos de Norteamérica como se muestra a continuación. 1.1.3.1 ICNIA - 70´s A finales de los años 70´s la Fuerza Aérea Norteamericana trabajó en un sistema conocido como Integrated Communications Navigation, Identification and Avionics system que corresponde a las siglas de ICNIA. Éste sistema utilizaba un DSP en el que se realizaban las funciones de programación y control para obtener una plataforma integrada para comunicaciones aéreas. La base de ICNIA era un procesador GPP (General Purpose Processor) de la serie 6800. Los esfuerzos capturaron la atención de otros servicios militares y rápidamente se desarrollo un radio programable con tres servicios, a este se le llamó más adelante SPEAKeasy. ICNIA fue el primer sistema de radio programable del que tenemos conocimiento. [6]. 1.1.3.2 TAJPSP - 80´s A finales de los años 80´s el Air Force Research Laboratory inició el proyecto llamado Tactical Anti-Jam Programmable Signal Processor (TAJPSP). Éste procesador fue desarrollado para ser capaz de operar con distintas formas de onda simultáneamente utilizando aproximación modular. TAJPSP evolucionó también en el programa SPEAKeasy [6]. 1.1.3.3 SPEAKeasy - finales de los 80´s, inicios de los 90´s El concepto de Software Radio apareció debido al natural desarrollo tecnológico de la milicia de los Estados Unidos, ahí fue donde surgió el proyecto SPEAKeasy 4 UDLA Desarrollo de Software Radio TX/RX de FM organizado por el Departamento de Defensa. Éste tenia como finalidad iniciar el desarrollo de un software programable para sistemas de radio que operara de los 2MHz a los 2GHz, empleando formas de onda seleccionadas en memoria, o extraídas de un floppy disk. El software programado de SPEAKeasy permitiría volver interoperable cualquier software de radio que había sido emulado. Esto se vuelve ventajoso cuando no es práctico o muy costoso tener tantos radios convencionales como se necesiten para comunicar en cada tipo de forma de onda [7]. Actualmente el proyecto de SPEAKeasy continúa en proceso, pero la parte fundamental de este trabajo del Departamento de Defensa es que sentó las bases de lo que ahora conocemos como Software Radio. 1.1.4. Mapas conceptuales de Software Radio La Figura 1.3 nos muestra un mapa conceptual sobre comunicaciones inalámbricas, primero observamos donde se utilizan las comunicaciones inalámbricas como en radio, satélites, entre otros, luego observamos su división por comportamiento y estructura. Por su comportamiento encontramos tipos de comunicaciones inalámbricas con distintos modos de propagación, interferencias, etc. Por su estructura tenemos actualmente los implementados por Hardware y los implementados por Software Radio (Hardware y Software), para ambos casos encontramos transmisores y receptores. 5 UDLA Desarrollo de Software Radio TX/RX de FM Comunicaciones Alámbricas Inalámbricas Radio, Comunicación Satelital, Televisión, GPS, Estructura Estructura Comportamiento Implementados Implementados por Hardware por Hardware Modos de Propagación, interferencia, etc. Interferencia Implementados Implementados por Software Software por Radio (HW+SW) (HW+SW) Transmisor Transmisor Transmisor Transmisor Receptor Receptor Receptor R eceptor Figura 1.3 Mapa conceptual sobre comunicaciones inalámbricas. La Figura 1.4 muestra un mapa conceptual poniendo detalle en el transmisor y el receptor en los cuales se muestran las partes que conforman a cada uno. 6 UDLA Desarrollo de Software Radio TX/RX de FM Estructura de comunicaciones inalámbricas Implementados por Software Radio (Hw+Sw) Implementados por Hardware Transmisor Receptor Transmisor Receptor Decodificador Antena Procesado (codificación y modulación) Antena Demodulador RF Section DAC RF Section DAC ADC RF Section ADC RF Section Modulador Antena Antena Codificador Procesado (demodulación y decodificación) Figura 1.4. Mapa conceptual de la estructura en un sistema de comunicaciones inalámbricas. La definición de los acrónimos se encuentra en el apéndice K. 7 UDLA Desarrollo de Software Radio TX/RX de FM En la siguiente Figura 1.5 se menciona el tipo de procesado que se utiliza para el desarrollo de Software Radio, como son ROM´s (Read Only Memory), FPGA´s o DSP´s, para este trabajo se utilizará la tarjeta USRP la cual cuenta con un procesador FPGA de la serie Altera Cyclone. Procesado (modulación / demodulación y codificación / decodificación) ROM´s FPGA´s DSP´s Read Only Memory Field Programmable Gate Array Digital Signal Processor USRP Universal Software Radio Peripheral Figura 1.5 Tipos de procesadores en un sistema de Software Radio. 8 UDLA Desarrollo de Software Radio TX/RX de FM 1.2. GNU: Gnu´s Not Unix GNU es un sistema operativo desarrollado completamente utilizando software libre, este sistema operativo es llamado GNU por el acrónimo recursivo Gnu´s Not Unix. Software Libre o Free Software en Inglés. Es importante, de inicio, aclarar a que se refiere “free”, ya que esta palabra suele tener dos connotaciones, libre y gratuito. Por lo que se puede confundir el significado de esta frase. El Software Libre no es necesariamente gratuito, ya que nos podemos valer de él para obtener ganancias enfocadas al desarrollo de software, como se menciona en la página de www.gnu.org en la sección de: Vender Software Libre.[9] Software Libre se refiera a la libertad que tenemos para ejecutar, copiar, distribuir, estudiar, cambiar y mejorar el software con el que contamos. [11] El proyecto GNU inició en 1983 como una forma de devolver el espíritu cooperativo que prevalecía en la comunidad computacional en aquellos días, es decir, hacer la cooperación posible al eliminar los obstáculos impuestos por los dueños de software privativo. En 1971, cuando Richard Stallman comenzó su carrera en el MIT (Instituto de Tecnología de Massachusetts), trabajó en un grupo que usaba software libre exclusivamente. Incluso compañías informáticas frecuentemente distribuían software libre. Los programadores eran libres de cooperar unos con otros, y frecuentemente lo hacían. En los 80, casi todo el software era privado, lo cual significa que tenía dueños que prohibían e impedían la cooperación entre usuarios. Esto hizo necesario el Proyecto GNU. 9 UDLA Desarrollo de Software Radio TX/RX de FM Cada usuario de computadoras necesita un sistema operativo; si no existe un sistema operativo libre, entonces no puedes ni siquiera comenzar a usar una computadora sin recurrir a un software privativo. Así que el primer elemento en la agenda del software libre era un sistema operativo libre. Un sistema operativo no es sólo el núcleo; sino que también las aplicaciones que incluyen compiladores, editores, formateadores de texto, software de correo y muchas otras cosas. Por todo esto, escribir un sistema operativo con aplicaciones preinstaladas es un trabajo complicado. [11] 1.3. GNU/Linux Al completarse el objetivo inicial de un sistema operativo libre parecido al Unix, es decir, ya se tenían encontrados o escritos los componentes principales, excepto uno: el núcleo. Entonces Linux, un núcleo libre, fue desarrollado por Linus Torvalds. Combinando Linux con el ya casi completo sistema GNU se consiguió un sistema operativo completo: un sistema GNU basado en Linux. Se estima que hay cientos de miles de personas que ahora usan sistemas GNU basados en Linux, incluyendo distribuciones como Debian, Red Hat y otros. [11] Existe una gran confusión entre un sistema operativo Linux y un núcleo Linux. Linux no es un sistema operativo, es el núcleo del sistema operativo, este núcleo se encarga de asignarle a la computadora los recursos para ejecutar los programas. El sistema operativo por lo tanto, en este caso, se debe llamar GNU/Linux y no solamente Linux. 10 UDLA Desarrollo de Software Radio TX/RX de FM 1.4.1 Distribuciones Una distribución no es otra cosa que el núcleo Linux con un conjunto de programas seleccionados, con herramientas específicas de configuración, empaquetamiento, documentación, etc. Prácticamente todas las distribuciones son comerciales, salvo Debian, Hay muchísimas distribuciones alrededor del mundo, pero sólo unas pocas son usadas ampliamente, estas distribuciones son: Mandriva [20]: Esta es la mejor opción para principiantes, es uno de los sistemas que más se ha esforzado en llegar al usuario hogareño. Por ejemplo algunas versiones traen una utilidad llamada “supermount”, la cual permite montar y desmontar, disquetes y CDs según se necesite en forma automática. Mandriva está basada en RedHat. La desventaja es que requiere un hardware más actualizado que otras distribuciones. SuSE [21]: Distribución que se caracteriza por contar con gran cantidad de software y documentación. Es bastante amigable y posee herramientas de configuración general llamadas YaST y YaST2 que están muy bien logradas. Hay que tener en cuenta que no sigue el modelo de RedHat y algunos comandos y ubicaciones de archivos son algo diferentes a otros sistemas linux. RedHat [22]: De alguna manera es la primera distribución de Linux que logró un tipo de instalación más sencilla en su época. La empresa RedHat es una de las más 11 UDLA Desarrollo de Software Radio TX/RX de FM grandes dentro del mercado del software libre. La distribución posee una herramienta de configuración que facilita las tareas del sistema llamada “linuxconf”. Muchas distribuciones se basan en ella, como por ejemplo la distribución brasileña Conectiva. Slackware [23]: Esta distribución es la más parecida al Sistema Operativo Unix. En slackware todo o casi todo está para ser configurado mediante la edición de archivos de texto o por medio de aplicaciones para terminales. Si bien es algo compleja de instalar para el usuario nuevo, para los expertos es una excelente opción ya que es sumamente flexible. Trae un sistema de instalación basado en paquetes .tar.gz el cual si bien es más personalizable no posee un sistema de chequeo de dependencias. De todas formas, como todas las distribuciones cuenta con entornos gráficos que reducen considerablemente la dificultad para operarla. Debian [24]: Definitivamente, considerada la distribución más dura para instalar y configurar. Posee su propio sistema de instalación de paquetes en formato “.deb”. Para muchos es la distribución más robusta, ideal para servidores. Debian adhiere fervorosamente a la causa del software libre, tal es así que los paquetes que no tengan la licencia GNU GPL se ponen en una categoría totalmente separada del resto. Las versiones de los programas se examinan rigurosamente, y cuenta con las actualizaciones más estables y no precisamente las más nuevas. [13] 12 UDLA Desarrollo de Software Radio TX/RX de FM 1.4.2 Ubuntu Según la enciclopedia libre Wikipedia, Ubuntu significa: “Ubuntu: es una regla ética o ideología sudafricana enfocada en la lealtad de las personas y las relaciones entre éstas. La palabra proviene de las lenguas zulú y xhosa. Ubuntu es visto como un concepto africano tradicional. Una traducción nada elaborada al español podría ser "humanidad hacia los demás." Otra traducción puede ser: "La creencia en un enlace universal de compartir que conecta a toda la humanidad.". Esta es una definición más larga y exacta: "Una persona con ubuntu es abierta y está disponible para los demás, afirma de los demás, no se siente amenazado cuando otros son capaces y están bien, porque es seguro de sí mismo ya que sabe que pertenece a una gran totalidad, que se disminuye cuando otras personas son humilladas o menospreciadas, cuando otros son torturados u oprimidos." Dicho por el arzobispo Desmond Tutu. Se ve a Ubuntu como uno de los principios fundamentales de la nueva república de Sudáfrica y está conectado con la idea de un Renacimiento Africano. Ubuntu es también un término usado entre los grupos jóvenes de la iglesia. La frase asociada con Ubuntu es "Yo soy porque nosotros somos".” Obtenido de "http://es.wikipedia.org/wiki/Ubuntu_%28Sud%C3%A1frica%29" Una definición de Ubuntu Linux es también encontrada en la enciclopedia libre Wikipedia como se muestra a continuación: “Ubuntu es una distribución de Linux de tipo escritorio, basada en Debian. El proyecto se encuentra patrocinado por Canonical Ltda. Económicamente se sostiene con aportaciones de la misma empresa que posee por dueño al sudafricano Mark Shuttleworth. Ubuntu debe su nombre al movimiento homónimo encabezado por el obispo Desmond Tutu, el cual ganó el Premio Nobel de la Paz en 1984 por su lucha en contra del Apartheid en Sudáfrica. Mark Shuttleworth, el mecenas del proyecto, es sudafricano y por lo tanto se encontraba muy familiarizado con la corriente. Tras ver similitudes entre los ideales de los Proyectos GNU, Debian y en general con el movimiento de software libre, decidió aprovechar la ocasión para difundir los ideales de ubuntu.” Obtenido de " http://es.wikipedia.org/wiki/Ubuntu_Linux" 13 UDLA Desarrollo de Software Radio TX/RX de FM Ubuntu es un sistema operativo basado completamente en Linux, libre, y disponible con soporte profesional y para la gran comunidad que lo desarrolla. La comunidad Ubuntu esta construida con los principios del Manifiesto Ubuntu; éste dice que el software debe ser disponible gratuitamente, las herramientas de este software deben ser utilizables por la gente en su lenguaje nativo y con cualquier tipo de discapacidades, y esta gente debe tener la libertad de modificarlo de acuerdo a sus necesidades particulares cualesquiera que sean éstas. Esta libertad es fundamental para hacer de Ubuntu un software diferente de cualquier software privativo. No solo las herramientas necesarias son libres de cualquier cargo, sino también tenemos los derechos para modificarlas de forma que cumplan con nuestras necesidades. El equipo detrás de Ubuntu hace el siguiente compromiso público con sus usuarios: • Ubuntu siempre será gratuito, y no existen cargos adicionales por la versión empresarial, hacemos nuestro mejor trabajo y lo ponemos a disposición de todos en los mismos términos de libertad. • Ubuntu viene con soporte comercial completo por parte de cientos de compañías alrededor del mundo. Ubuntu es relanzado regular y predeciblemente; un nuevo lanzamiento se realiza cada seis meses. Cada relanzamiento tiene el soporte de las actualizaciones para seguridad de los últimos 18 meses. • Ubuntu incluye lo mejor en traducciones e infraestructura de accesibilidad que el Free Software Community ofrece, esto, para hacer de Ubuntu un sistema utilizable por la mayor cantidad de gente posible. La colaboración va desde el 14 UDLA Desarrollo de Software Radio TX/RX de FM arreglo de problemas del sistema (bug fixing), hasta el compartir código (code sharing). • Ubuntu está completamente confiado en los principios de desarrollo de software libre, y animan a la gente a que utilice gratuita y libremente el código del software, mejorarlo y distribuirlo. Ubuntu esta disponible tanto para computadoras de escritorio y laptops como para servidores. El último lanzamiento de Ubuntu soporta arquitecturas PC (Intel x86), arquitecturas 64-bit PC (AMD64) y arquitecturas PowerPC (Apple iBook y Powerbook, G4 y G5) Ubuntu incluye más de 16,000 piezas de software, aunque el sistema operativo cabe en un solo CD. Ubuntu cubre cada una de las aplicaciones de escritorio, desde procesadores de texto y hojas de cálculo, hasta aplicaciones de acceso a Internet, software para servidores web, correo electrónico, lenguajes de programación, además de algunos juegos. Ubuntu introduce en cada uno de sus lanzamientos la última versión de Kernel y Gnome. “Kernel es la parte fundamental de un sistema operativo. Es el software responsable de facilitar a los distintos programas acceso seguro al hardware de la computadora o en forma mas básica, es la encargada de gestionar recursos, a través de servicios de llamada al sistema.” Obtenido de "http http://es.wikipedia.org/wiki/Kernel" “Gnome es un entorno de escritorio para sistemas operativos de tipo Unix bajo tecnología X Window, se encuentra disponible actualmente en más de 35 idiomas. Forma parte oficial del proyecto GNU.” Obtenido de " http://es.wikipedia.org/wiki/Gnome" 15 UDLA Desarrollo de Software Radio TX/RX de FM La instalación de Ubuntu 5.04 es indispensable para continuar con el proceso de este trabajo por lo que en el Apéndice B se explica claramente la forma correcta de llevar a cabo esta instalación. 16