Вы знали, что радиостанции посылают не только звук, но и текстовые данные (чиселки)? Существует бинарный протокол RDS (Radio Data System). Вся его спека 132 страницы. Протокол RDS многообещающий. В спецификации указано, что радиостанции могут посылать по протоколу RDS название станции, название песни, классификатор контента, дату и время и даже навигационные поправки для технологии GNSS RTK.
Пакеты крохотные: по 8 байт. RDS как мозаика. Текст принимается по кусочкам.
Попробуем разобраться, что же приходит из воздуха по RDS на самом деле.
Как прочитать RDS трафик?
RDS трафик я принимал при помощи чипа FM Tuner(а) Si4703
и отладочной платы от Olimex STM32-H407.
Payload от пакетов Basic Tuning, Text Frame, DateTime записывал на SD карту непрерывно 24 часа.
RDS можно также принять через USB-SDR-RTL +SDR#+ plugIns.
Какая битовая скорость RDS?
Пакеты крохотные по 8 байт приходят на некоторых радиостанциях до 1 раза в секунду. Получается в среднем 64 bit/s. Совсем мало.
Что полезного можно извлечь из RDS?
По факту в Москве RDS не используют даже на четверть. Присылают только название радиостанций. Номер телефона радиостанции, или название песни в пакете Radio Text.
Можно ли из RDS извлечь точное время?
Увы нет. В Москве никто толком не посылает точное время в RDS. Либо приходят пакеты TimeDate но там не валидное время. Для получения синхронизации точного времени из воздуха лучше ставить GNSS приемник.
Вывод
RDS это открытый протокол. Правда пользы от RDS по крайней мере в Москве особой нет. А песенку можно распознать и при помощи мобильного приложения Shazam. Хотя с RDS автоматизировать процесс считывания трека совсем просто. Большинство радиостанций и вовсе ничего не передают по RDS.
Как обстоят дела с RDS в вашем городе?
Кто-нибудь знает custom форматы пакетов конкретных радиостанций?