YES_RDS

Проект по созданию RDS кодера.

 

Начать нужно с описания текущего положения вещей в RDS вещании в нашем "районе"...

Согласно стандарта на RDS передача информации происходит на 3-й гармонике пилот-тона, то есть наш (Российский) стандарт стерео вещания (полярная модуляция) для передачи RDS не пригоден (...хотя.... :-) )

У нас на сегодняшний момент вещает 8, станций в FM диапазоне (Ретро, Динамит, Европа, Русское, Авто,Радио-7, Общественное Российское радио, Шансон), и 6 в УКВ ( Радио России, Маяк, Авто, Европа, Наше, Love радио). При этом "Наше радио" стерео сигнал передает по стандарту с пилот-тоном.

RDS передают лишь три радиостанции из вышеперечисенных Европа, Авто, Радио-7.

А теперь самое интересное.... :-)

Рекомендации стардарта о процентном соотношении передаваемых групп не соблюдаются ни одной из перечисленных станций.

Две из трех радиотекст передают в поле (группе) предназначенной для передачи названия станции, что является нарушением стандарта.. "...The use of PS to transmit text other than a single eight character name is not permitted..."

Ну а со служебной информацией вообще "засада".. :-)

Альтернативные частоты какие угодно, есть даже частота телевизионного канала и частота 109,9... интересно для какого приемника.

Только на одной из трех станций установлен регион "Россия", на двух других "Италия" и "Люксембург".

В двух указатель режима трансляции программы (моно/стерео) установлен в "моно" ... а если бы приемник на это внимание "обращал"?

.... продолжать можно дальше...

Счастье, что автомагнитолы, да и большинство стационарных приемников с RDS служебную информацию только "принимают к сведению" и не отображают! !

Причина такого положения, на мой взгляд, кроется в некомпетентности обслуживающего персонала. Кодер (наверняка дорогущий) куплен, кое-как введен в эксплуатацию (с установками "по умолчанию"), приемник в машине директора станции чего-то показывает... и ладно. А тонкости со служебной информацией и соблюдением стандарта... да кому они нужны?... Грустно...

продолжение следует...

Что еще положительного было замечено. На тех станциях где звук "задран" (это слышно), достоверность RDS передачи от 25 до 65%, там же, где с уровнем все нормально, достоверность - 100%.

продолжение следует...

Кодер получает свое развитие... на сегодняшний (16.01.07г.) день кодер YES_RDS работает... то есть кодирует, модулирует и "выдает" комплексный RDS сигнал на TDA7330, выход которой подключен к СОМ порту... Результат анализируется с помощью программы RDS Decoder 3.0.

Следующий этап - подключение обвязки... часов, внешнего EEPROM'a для хранения текстовых сообщений.. Ну и связь с PC....

продолжение следует...

03.02.07г. Появилось время для написания нескольких строк... :-)

На сегоднящний день, программа кодера отлажена (я бы сказал - "вылизана"). На "столе" работает без сбоев, достоверность 100%, ошибок НЕТ.

Что же "передает" YES_RDS?

Кодер передает радиотекст (реализован режим бегущей строки), ПРАВИЛЬНУЮ служебную информацию (локализация, альтернативные частоты, тип радиопередачи моно/стерео и т.д.), дату и время.

Технические подробности:

Программные:

- передается три типа групп: основная группа, группа с дополнительными настройками (установками), группа с информацией о дате и времени.

Радиотекст, в нарушение стандарта, передается в группе, предназначенной для вывода названия радиостанции (см.начало статьи).

Этому послужили несколько причин....

- стандартом предусматривается вывод (передача) радиотекста блоками по 64 знака (символа). Для этого используется специальная группа. В группе передается 4 символа и место расположения этих 4-х символов в 64-х символьном блоке. То есть для передачи всего блока нужно передать 16 таких групп. И только после полного заполнения приемного буфера (64 знака), радитекст начнет выводиться на дисплей. Стандартом определена скорость повторения радиотекста (rate per sec), которая составляет 0,2 сообщения в секунду, то есть смена сообщения (64-символьного блока) происходит не чаще, чем через 5 сек. Но это при условии, что все группы сообщения приняты без ошибок. А если есть ошибки, то период приема увеличивается, или сообщение теряется (если блок передается один раз).

- вывод информации осуществляется на 8-разрядный дисплей (есть приемники с 16-ти разрядным дисплеем, но я таких не видел... :-(... ). То есть, любое сообщение будет делиться на 8-ми символьные "куски", вне зависимости от смыслового значения:

ZDRAVSTVUYTE Y VASHA TETY ("Здравствуйте, я - ваша тетя"

ZDRAVSTV

UYTE Y V

ASHA TETY

, согласитесь - не здОрово...

При использовании для передачи радиотекста "основной" группы (ОА) с выводом бегущей строкой эти недостатки отсутствуют.

В любом случае, "прописать" обычный (не бегущая строка) вывод и/или использование "правильной" группы для вывода радиотекста возможно.

Других "отступлений" от требований стандарта нет.

....

Схемотехнические:

"Сердце" кодера YES_RDS - ATMega (Atmel).

Связь с "внешними" устройствами - по I2C. Внешние устройства - это, часы DS1307 и EEPROM типа 24Сxx. (пишется в настоящее время)

Синхнонизация по пилон-тону аппаратная.

В качестве устройства управления кодером будет применяться или контроллер, или РС. В случае управления от РС кодер будет дополняться устройством сопряжения (что-нибудь типа ATTiny), или I2C через LPT.

В автономном режиме кодер будет передавать текстовое сообщение, длина которого ограничена емкостью 24Схх, текущее время (DS1307, батарейное питание предусмотрено), ну и установки, записаные ранее.

.... все что написано со словом "будет", есть в планах и будет реализовано... однако если у Вас есть какие-либо замечания/пожелания, то милости прошу...

продолжение следует....

макетная плата....

рис.1

рис.2

11.02.07г. Еще раз убедился в ненужности говорить о своих планах... То что казалось простым - далось не без труда. Поэтому теперь только о результатах.... А результаты такие: YES_RDS работает в автономном режиме (внешняя винхронизация, на выходе кодера tda7330 и РС с программой декодировки RDS). При этом выводит бегущую строку и время.

DS1307 имеет резервное (батарейное) питание... Напряжение батарейки (она на фото вверху видна) еще до подключения, почему-то оказалось не 3, а 3,41 вольта... Странно...

...пока все... о планах НИ СЛОВА... :-)

19.02.07г. Кодер работает совместно с "синхронизатором-формирователем"...

...пока "напрямую", по проводам... без передачи-приема....

...полет нормальный... :-)

рис.

...из особенностей замечено весьма ощутимое влияние "разводки" платы на достоверность приема RDS сигнала..

20.02.07г. YES_RDS прошел проверку "эфиром", точнее "cordless"..... между приемником и передатчиком около метра, как видно на фото...

рис

...из особенностей... подтверждена необходимость комплексной (LC) нагрузки ЦАПа....

После настройки шумы от RDS в тракте приема-передачи обнаружить не удалось... :-)

Внимание! Всю настройку аналоговой части поводил Eger... За что ему большой RESPECT! Без его помощи проект вряд ли мог быть осуществлен...

15.03.07г. За прошедшее время было "опробовано" несколько вариантов ЦАП.

Сначала был применен последовательный ЦАП DAC0808...

"кусок" платы (104кб)

От его применения пришлось отказаться. Для работы этого, да и любого ЦАП с последовательным вводом, требуется "рабочее" время управляющего контроллера, а время установки данного ЦАП не такое уж и маленькое (3мкС).

Затем был успешно применен ЦАП с параллельным вводом (572ПА1).

Плата (87кб)

При опытной (без эфирной) проверке схема показала очень высокую устойчивость и стабильность в работе.

Далее в схему был "добавлен" блок "синхронизации"...

Плата (116кб)

Вид со стороны дорожек (114кб)

...и.. как это не прискорбно, снова наступило разочарование.... Блок синхронизации не удовлетворяет предъявляемым требованиям... (громоздок, не универсален, требует настройки и д.т.).. Поэтому в настоящее время занимаюсь созданием "нормального" блока синхронизации..

20.04.07г. Сегодня состоялась "опытная" проверка "обновленного" YES_RDS кодера.

Результаты экспериментов в течении месяца принесли положительные "плоды".

Кодер работоспособен, помеху не наводит (обнаружить не удалось), достоверность передачи сигнала (информации) не хуже, чем у "официальных" вещателей....

Фото

...работаем дальше..... :-)

01.05.07г.
".....Пока "ситуация" такая....
После долгих опытов с М48 на частоте 20МГц и с резистивным ЦАП было принято решение о применении интегрального ЦАП. Опыты показали, что при применении интегрального ЦАП частоту дискретизации (формирования) поднесущей RDS (57кГц), можно снизить до 114кГц.
Это, в свою очередь, позволило применить в качестве "головы" кодера - М8 (ATMega8) на частоте 16МГц. При этом применен внешний ЦАП с последовательным входом (SPI).

Программа была написана на АлгоритмБилдере. Но с переходом на М8, из-за увеличения объема flash'a, стало возможным писать программу на С.
В настоящий момент, написана программа формирующая огибающую 1187,5Гц с несущей 57кГц. Программа написана на С и ассемблере (компилятор ICC).
В МК "прописан" bootloader (через UART), и перепрограммирование производится без применения программатора. В последующем планируется использовать bootloader для проведения апдейта "прошивки".
Пока все..."

в общем это копия "поста" во вновь открытой теме на форуме (не на моем :-) )

...о самых свежих новостях буду писать туда... здесь (на сайте) буду выкладывать "состоявшиеся" реализации..

да... ну и конечно фото:

фото

6.05.07г.

...все на форуме

рис

 

08.05.07г.

плата

09.05.07г.

фото

фото

Буду рад любым конструктивным замечаниям/пожеланиям...

...принимаются заказы на изготовление

03.06.07г. началась эксплуатация серийных образцов :-) ...

12.06.07г.

Из "Истории":
Внимание! В настоящее время чтение SMS сообщений не реализовано в программе. Это оказалось не нужным. Однако, все "материалы" имеются если появятся желающие, то помогу чем смогу.. Пишите.. 07.11.07г.

"....
v.2.0 - 12.06.07г.
- добавлена возможность чтения SMS с телефона и передача их в RDS-кодер.
Автоопределение порта к которому подключен тлф. Работа программы проверена с
тлф M350. Длина SMS сообщения программно ограничивается 61 символом;
- радиотекст перед передачей в кодер "приводится" к верхнему регистру.
..."

Что еще....
Во-первых, кирилица на RDS - это ЧУДО.... Мало того, что выводится не пойми чего (даже на символы не похоже), так еще и все служебные символы на магнитоле начинают мигать беспорядочно..
НО такой результат ОЖИДАЛСЯ... я об этом писал в самом начале..
Во-вторых, принимая во внимае "во-первых", можно сделать вывод о НЕВОЗМОЖНОСТИ передачи тэгов по русски.. Только через RUS->LAT... Но и про это я говорил...
В-третьих, символы передаваемые в нижнем регистре, декодером автоматически преобразовываются к верхнену. В связи с этим, дабы избавить декодер от "работы" и возможных ошибок, в программу добавлено приведение передаваемого текста к верхнему регистру.

Про SMS.... Прога написана (блок в программе), отладка проводилась на МotoC350. Но при подключении MotoL6 чуда не произошло.... Возникли "тонкости" по перекодировке SMS... (L6 не "хочет" выдавать SMS в формате UTF8). Решение - будет создана база поддерживаемых программой ТЛФ с выбором нужного.
Длина сообшения ограничена (лишние "отбрасываются") 61 символом (+3 разделительных). Причин несколько... Во-первых, функция чтения SMS предназначалась для огранизации RDS-чата. Поэтому не предполагается присутствие "длинных" сообощений. Во-вторых, длинное сообщение необходимо "долго" читать (даже при скорости 2 сим/сек 64 символа - 30 сек) пропадет всякий интерес...
Далее... Пока ввод SMS осуществляется "вручную" (нажанием кнопки мыши)... Почему? ...На мой взгляд, для RDS-чата необходимо администрирование сообщений (что и реализовано).. Вдруг кто-то напишет:"Вещатель - дурак"... Как такое в эфир передавать?... Ну а автоматическую "передачу" обязательно добавлю...
Кстати, появилось намерение, читать SMS контроллером (не YES_RDS).. и в этом случае появится возможность дистанционного управления блоком передатчика...

02.07.07г.

По "просьбам трудящихся" .... фото YES_RDS:

Общий вид:

Общий вид

... кнопки..

 

кнопки

 

....разъем USB....

USB

11.09.07г.

В общем-то, на сегоднящний день проект завершен. Программы написаны. Все работает.

Дальнейшее развитие проекта возможно... но, по всей видимости, несколько в другой "форме". Во всяком случае, YES_RDS ЗАВЕРШЕН!!!

Если есть вопросы - пишите на почту.

P.S. Инструкция пользователя.

P.S.S. Инструкция по программированию кодера (docx) + в doc формате (в архиве конечно :-) )

 

(C)STAS633

05.01.07г.-10.05.08г.

 

 

На главную

Hosted by uCoz