Monitor FM-RDS

Construcción de un pequeño receptor de radio de FM con RDS, orientado al personal de mantenimiento de los centros emisores de radio. Este receptor está basado en el módulo RDA5807M, de bajo coste y altas prestaciones. La idea es construir un pequeño receptor de radio que decodifique la información más relevante del RDS, para poder controlar el correcto funcionamiento de la información que se está transmitiendo por la subportadora RDS de cada transmisor.

COMIENZOS DEL SISTEMA RDS (Radio Data System)

A mediados de los ’70, varias organizaciones europeas estaban trabajando en el desarrollo de un sistema para la explotación de subportadoras de FM, lo que llevó en 1978 a la Unión Europea de Radiodifusión (UER) a la definición de un estándar para la identificación de estaciones y programas. El grupo de trabajo partió de la idea de desarrollar un sistema compatible con ARI, ampliando sus prestaciones, y se fijaron los siguientes objetivos:

  • La recepción debería ser fiable en un área grande, al menos como el área de cobertura del programa principal.
  • La velocidad de transmisión debería cubrir las necesidades de identificación del programa, y disponer de capacidad adicional para futuros desarrollos.
  • El formato de los mensajes debería ser flexible, permitiendo realizar algunos cambios a los radiodifusores para adaptarse a sus requerimientos.
  • El sistema tiene que ser capaz de permitir la recepción por medio de equipos de bajo costo.

En base a estos requisitos, en 1984 fueron publicadas las especificaciones del sistema RDS, descritas en el documento técnico 3244 de la EBU.

Logo RDS Standard IEC 62106

En Ginebra, el año 1993 se fundó el RDS Forum, con el fin de compartir las experiencias y necesidades de todos sus miembros y poder adaptar la norma según las necesidades de cada momento, manteniendo la compatibilidad con los receptores RDS más antiguos.

Standard IEC 62106: publicado en el año 2000, está basado en el anterior documento europeo CENELEC EN 50067:1998, que también realizó el RDS Forum; y partiendo del documento 3244 que desarrolló la EBU (European Broadcasting Union) el año 1984. El año 2009 se publicó la versión 2.0: IEC 62106 ed2.0.

ESTRUCTURA DEL RDS

La unidad de información mínima a transmitir por la subportadora RDS, es el Grupo. Cada grupo RDS está compuesto por 104 bits, de los cuales sólo 64 bits son de información útil (61,5%). Los 40 bits restantes de cada grupo (4×10 bits), contienen la información para sincronizar y detectar errores a nivel de bloque.

Estructura del RDS

El algoritmo empleado para la detección de errores, le permite corregir ráfagas de un máximo de 5 bits erróneos por bloque. Si partimos de una velocidad binaria baja (1187,5 bps), con el fin de consumir el mínimo posible de los recursos del transmisor de FM (3% aprox.), y además reducimos la tasa de datos útiles en un 61,5%, la tasa binaria útil del RDS se reduce a 730 bps. En realidad esta capacidad no es la efectiva, ya que dentro de cada grupo tendremos que ocupar 5 bits para indicar al receptor el tipo de grupo y su variante. Esta información es una especie de índice, y es necesaria para poder transmitir la información secuenciada en el tiempo y sin orden preestablecido; su función es equivalente al número de página del Teletexto en TV.

El sistema RDS transmite la información estructurada en paquetes de datos de 104 bits, conocidos con el nombre de: Grupo RDS. La cadencia de envío de cada grupo es de 87,5 mSeg aproximadamente, ya que la velocidad de transmisión de este sistema es de 1187,5 bps. Un grupo RDS está compuesto por 4 bloques de 26 bits, de los cuales 16 bits (2 Bytes) están destinados al envío de información y 10 bits para la sincronización y corrección de errores del propio bloque. De esta forma, los receptores reciben la información de sincronización en intervalos de 26 bits, cada 21,9 mSeg. A pesar de que la sincronización del RDS sea a nivel de bloque, la información sólo se valida después de haber recibido un grupo completo; desde el primer bit del bloque 1 (MSB) hasta el último bit (LSB) del bloque 4 de un mismo grupo recibido, y sin errores en ninguno de sus 4 bloques. Aunque existan errores en un solo bloque, si no se pueden corregir, se perderá la información de todo el grupo.

La finalidad principal del sistema RDS, es la de mantener la sintonía en los receptores de radio y facilitar información rápida (87,5 mSeg) de su disponibilidad para dar información de tráfico y del tipo de contenido que se emite: música, deportes, noticias, etc.; permitiendo la búsqueda rápida del receptor (Scan).

Detalles de un grupo RDS

Por este motivo, TODOS los grupos RDS transmiten una información con asignación fija, en sus primeros 27 bits de información de cada grupo. La asignación del contenido de los 37 bits restantes, dependerá del código y versión de grupo que se esté transmitiendo en cada momento; cuyo valor se transmite en los primeros 5 bits del bloque 2 de todos los grupos. A modo de resumen, estas son las características principales de la estructura del RDS (ver los detalles en la imagen anterior):

  • La información del primer bloque de todos los grupos, está destinada al envío del código PI (Programme Identification).
  • En los primeros 4 bits del segundo bloque se envía el código de grupo, necesario para extraer la información que se envía en los 37 bits de asignación variable de dicho grupo. Con 4 bits, se pueden codificar 16 códigos diferentes, normalmente expresados en formato decimal (0…15).

El quinto bit del segundo bloque, a continuación del bit LSB del código de grupo, indica la versión del grupo. El bit de la versión de grupo se expresa con una letra, A=0 / B=1. La única diferencia que existe entre un grupo del mismo código pero diferente versión (A/B), es que en la versión B se sustituye la información asociada al Bloque 3, por una repetición del Bloque 1 (PI); de manera que el código PI se transmitirá 2 veces en todos los grupos de tipo B (Bloques 1 y 3). La repetición del código PI, versión B, agiliza los tiempos de respuesta en los receptores cuando tienen que realizar cambios de frecuencia. Para facilitar la detección del contenido del Bloque 3 cuando se repite el PI (versión B), independizándolo del código ‘versión’ del Bloque 2, se utilizan dos códigos Offset diferentes C/C’ en el Bloque 3. Se utiliza el código C cuando el grupo es de versión A, y C’ cuando la versión es B. El bit TP (Traffic Programme identification) y los 5 bits del PTY (Programme Type code) también ocupan un lugar fijo, dentro del Bloque 2 de todos los grupos.

SINCRONIZACIÓN, DETECCIÓN Y CORRECCIÓN DE ERRORES

En la trama del RDS, de los 26 bits que contiene cada bloque, 10 bits están dedicados a sincronizar la trama y permitir a los receptores la detección y corrección de errores. La información de los 10 bits de cada bloque se compone de una palabra de control (Checkword) sumada en módulo 2 (XOR, suma sin acarreo) con una palabra Offset, fija y diferente en cada bloque. La palabra de control es el resultado de multiplicar los 16 bits de información del bloque, por el siguiente generador polinomial de 10 bits:

g(x) = x10 + x8 + x7 + x5 + x4 + x3 + 1

Checkword del RDS

La palabra de desplazamiento (Offset) A, B, C (ó C’) y D se suma a los Bloques 1, 2, 3 y 4 respectivamente. Esta palabra tiene un valor escogido para no ser interpretada como ráfaga de errores igual o menor de 5 bits. Esto se hace así, porque el corrector de errores sólo puede detectar una ráfaga de errores de 5 bits como máximo. Si existen más de 5 errores obtendremos una palabra síndrome, pero no la esperada. Al sumar una palabra Offset diferente con la palabra de control, es posible realizar un circuito reversible en los receptores y sincronizar a nivel de bloque.

TIPOS DE GRUPO RDS: CÓDIGO Y VERSIÓN

El sistema RDS puede transmitir 16 tipos de grupo (0···15) y con 2 versiones (A/B). En la estructura básica de todos los grupos, se define una zona de información con asignación fija y otra variable. La información fija es imprescindible para que los receptores puedan diferenciar un programa de otro (PI), pero esta información tiene que ser complementada con el resto de requisitos que se fijaron en la norma: identificar la emisora (PS), permitir un cambio de sintonía rápido (AF) y dar las órdenes de información de tráfico al receptor (TA). El grupo que contiene toda la información básica, necesaria para un receptor de radio con RDS, es el Grupo: 0.

Grupo RDS del tipo: 0A

Para el resto de los grupos, del 1 al 15, inicialmente la norma asignó algunas aplicaciones que raramente se utilizan ahora, por ejemplo el grupo 7 para el  Paging (Buscapersonas). A partir de la revisión del año 1998, el sistema quedó más abierto, ya que se definió el grupo 3A (ODA: Open Data Applications) para transmitir el código de cualquier aplicación, presente o futura, junto con el código del grupo que el radiodifusor utilice para enviar dicha información. De esta forma, el RDS Forum asigna un código para cada aplicación que los fabricantes le soliciten, y la hace pública junto con los formatos y tipo de información que dicha aplicación transmitirá. Así los receptores (especiales y dedicados) buscarán el código de su aplicación en el grupo 3A, leerán el código de grupo por el que se transmite su información, y podrán extraer los datos utilizando ese grupo. El resultado final, es que algunos grupos que anteriormente estaban asignados a una aplicación determinada y ahora sin uso, el radiodifusor los puede reasignar con la información del grupo 3A, para transmitir cualquier tipo de información ODA.

La norma mantiene la asignación fija de todos los grupos RDS que transmiten información destinada a receptores de radio, no pudiendo reasignarlos el radiodifusor para transmitir otro tipo de información. La información ODA se recibe en receptores especiales, no son receptores para escuchar el programa de radio.

PI (Programme Identification)

El código de identificación del programa (PI) está compuesto por 16 bits (2 Bytes) y se transmite en el Bloque 1 de todos los grupos RDS; repitiéndose en el Bloque 3 de todos los grupos versión B. El código PI no se muestra en la pantalla de los receptores, pero es imprescindible para el correcto funcionamiento del RDS, ya que los receptores asocian el PI con el programa. Si algún radiodifusor utilizara el mismo PI de otro programa, como los receptores de radio con RDS sintonizan la frecuencia que reciban con menor tasa de errores RDS y mismo PI, no diferenciarían los dos radiodifusores y cambiarían de frecuencia alternando dos contenidos diferentes.

Código PI del RDS

Los 16 bits del código PI se dividen en tres grupos:

1 – Código del país: 4 bits fijos y definidos en la norma. Como hay más países que número de códigos disponibles (15), los códigos tienen que repetirse en más de un país, pero separados estratégicamente para evitar las zonas de cobertura solapada entre ellos.

2 – Área de cobertura: 4 bits configurables, para que el radiodifusor transmita el código más acorde al ámbito de cobertura de su programa. Cuando un radiodifusor transmite por una cadena programación nacional con desconexiones, debería modificar el código de área cuando cambia el programa, con el fin de que los receptores puedan diferenciar sus contenidos. Cuando existen más de 12 regiones a diferenciar, como es el caso de España, el radiodifusor tiene que repetir los códigos de área, pero comprobando que no existe cobertura solapada entre regiones con un mismo código de área. Para seleccionar el modo de seguimiento RDS que debe realizar un receptor de radio, los equipos disponen de dos modos configurables por el usuario:

Regional ON (REG On): El receptor mantiene la sintonía del programa regional. Verifica los 16 bits del PI antes de realizar un cambio de frecuencia (AF).

Regional OFF (REG Off): El receptor mantiene la sintonía de la cadena de radio, pudiendo cambiar entre emisoras de la misma cadena que estén transmitiendo diferente programación. El receptor omite la verificación de los 4 bits asociados al área de cobertura, comprueba los 12 bits restantes del PI antes de realizar un cambio de frecuencia.

3 – Referencia del programa: 8 bits fijos y definidos por el organismo competente de cada país, para asociar un código único e irrepetible, con una cadena de radio: Radiodifusor + Red.  Por ejemplo, el radiodifusor RNE transmite en FM por 5 redes diferentes, y transmite el RDS utilizando los siguientes códigos de programa:

  • E# 11  RNE 1
  • E2 12  RNE-CLAS
  • E2 13  Radio 3
  • E# 14  RNE 4
  • E# 15  RNE 5

PS (Programme Service name)

Con el fin de que los oyentes no tengan que buscar las frecuencias por las que emiten los radiodifusores en cada localidad, el sistema RDS transmite una ‘etiqueta de texto’, de tamaño fijo y compuesta por 8 caracteres alfanuméricos: Programme Service name (PS). A diferencia del código PI, que no se muestra en los receptores, el PS es el ‘texto por defecto’ que aparece en los receptores de radio con RDS, pasando la frecuencia de sintonía a segundo plano. Sin embargo, el contenido del PS es algo irrelevante para el receptor, sólo es una etiqueta de texto que cada radiodifusor asocia con su programa (código PI para el receptor). Así los radiodifusores pueden transmitir los 8 caracteres que quieran, enviando de forma secuencial los 8 Bytes (64 bits) codificados con alguna de las tablas de caracteres del RDS. El sistema RDS dispone de 3 tablas de caracteres, la principal G0 y las tablas auxiliares G1 y G2.

Tabla de caracteres GO, para el RDS

La tabla GO incluye la mayoría de los caracteres utilizados por las diferentes lenguas de la zona EBU, sin embargo, no incluye los caracteres griegos ni árabes. Por defecto, los receptores de radio traducen los 8 Bytes del PS utilizando la tabla de caracteres G0. En caso de que el radiodifusor quisiera transmitir los caracteres de otra tabla (G1/G2) tendría que insertar un comando de control al inicio del PS, compuesto por 2 Bytes. De esta forma, el radiodifusor tendría que enviar 10 Bytes para transmitir los 8 caracteres del PS. La norma no permite codificar un PS utilizando más de una tabla, pero es posible secuenciar ‘N’ etiquetas PS y utilizar una tabla de caracteres diferente para cada uno de ellos. Esta opción, pensada para facilitar el cambio de tabla, es utilizada por muchos radiodifusores para transmitir información y publicidad utilizando el PS, haciendo caso omiso de los consejos de la norma. Aunque el sistema RDS disponga de medios más adecuados y eficientes para transmitir publicidad (Radio Texto), para los radiodifusores es más atractivo utilizar el PS; ya que todos los receptores de radio con RDS decodifican el PS, y además es lo primero que muestran en su pantalla.

¿Necesitas fabricar un PCB?

Actualmente hay muchas empresas que se dedican a fabricar circuitos impresos, pero no en todas podemos conseguir pequeñas tiradas a buen precio. Por suerte, ahora disponemos de Internet y es mucho más fácil que antes. Podemos buscar empresas en cualquier parte del mundo, y es más fácil encontrar un fabricante que haga nuestros prototipos (PCB) a buen precio. Una de las empresas más grandes del sector es PCBWay. Hasta un 30% de descuento para PCBs especiales, con fabricación en 24 horas.

Logo: PCBWay

https://www.pcbway.es/

Ahora el servicio de montaje en PCBWay por 30$, con envío GRATUITO mundial:
https://www.pcbway.es/quotesmt.aspx

Construcción del receptor FM-RDS

Este sencillo receptor de radio está basado en el módulo RDA5807M, de bajo coste y altas prestaciones. Este módulo incluye en su interior todo el receptor de radio, incluso el decodificador Estéreo, el decodificador RDS y un pequeño amplificador de audio. Para controlar este módulo, he utilizado el micro-controlador ATMEGA328P (Arduino).

Esquema: Radio LCD

Caja y mecanizado

Para montar este receptor de radio, he utilizado una caja de plástico estándar de 100 x 60 x 25mm. La tapa frontal la he mecanizado con la ayuda de la CNC, y la carátula y serigrafía está fabricada con PLA de color negro, con la ayuda de una impresora 3D. Los archivos se incluyen junto con la descarga del firmware.

Frontal de la Radio LCD

Descarga de ficheros

El firmware y librerías que necesitas para programar el ATMEGA328P, junto con los ficheros para mecanizar y fabricar la carátula 3D, los puedes descargar desde el siguiente enlace: Radio_LCD.rar

6 comentarios en «Monitor FM-RDS»

    1. Son muy interesantes tus montajes. En relación a la fecha y hora del RDS, te informo que todas las emisoras de RNE en FM transmiten la fecha y hora con gran precisión. Todos los codificadores RDS se sincronizan con el reloj patrón de RNE 24 veces al día (cada hora). Si necesitas algún detalle acerca del RDS, pregúntamelo por correo.

  1. Hola, he seguido tus videos y realmente sabes bastante de RDS. Necesito configurar una Audemat FMB80. Lo conoces? Me puedes ayudar? Saludos
    Carlos

    1. Conozco bastante bien el FMB80. Lo puede programar a través de su interface Ethernet, pero es más cómodo hacerlo con su software especifico, mediante alguno de sus puertos serie. El fabricante Audemat-Aztec tiene un para programarlo (Conf_SPB.exe). Este software funciona con licencia, si no lo tienes deberías conseguirlo a través del fabricante.

    1. Con el kit del interface de la cámara se incluyen todos los conectores y el cableado. Si necesitas más longitud de cable, lo puedes comprar en cualquier tienda de componentes electrónicos.

Si tienes alguna duda o sugerencia, deja un comentario.