Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: STM32, OFDM?
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
Veter0k
Стоит ли браться за реализацию программного приемопередатчика OFDM на STM32 с ядром Cortex-M4, с помощью его DAC и ADC? Частоты до 500кГц, кол-во поднесущих пока не известно, но скорость 1-2 Мб/с. Хватит ли его числодробилки? Будет ли успевать DAC?
Rst7
На LPC1768 делал гидроакустический модем с OFDM. Несущие - 500/1000кГц. Приемник был в виде квадратурного смесителя и гетеродина (гетеродин - таймеры микроконтроллера) для сноса на нулевую ПЧ, затем аудио стерео АЦП с частотой дискретизации 130кГц. Используемая полоса +-40кГц. Затем в софте делалось FFT и всякие разбирания. Передатчик - аналогично: IFFT, внешний двухканальный ЦАП (уже не аудио, только 12бит), он же являлся перемножителем, затем сумматор и выходной усилитель.

Скорость передачи была порядка 130кБит/с. При этом загрузка процессора (тактовая 100МГц) была порядка 35 процентов.
Veter0k
Цитата(Rst7 @ Mar 30 2014, 08:12) *
На LPC1768 делал гидроакустический модем с OFDM. Несущие - 500/1000кГц. Приемник был в виде квадратурного смесителя и гетеродина (гетеродин - таймеры микроконтроллера) для сноса на нулевую ПЧ, затем аудио стерео АЦП с частотой дискретизации 130кГц. Используемая полоса +-40кГц. Затем в софте делалось FFT и всякие разбирания. Передатчик - аналогично: IFFT, внешний двухканальный ЦАП (уже не аудио, только 12бит), он же являлся перемножителем, затем сумматор и выходной усилитель.

Скорость передачи была порядка 130кБит/с. При этом загрузка процессора (тактовая 100МГц) была порядка 35 процентов.


А какая внешняя обвязка была необходима? Я так понимаю поднесущих было всего 2? Ядро этого контроллера не имеет встреного FPU, а значит математика медленнее чем на Cortex-M4. И возможно ли справиться с встроенным одноканальным ЦАПом?
Rst7
QUOTE (Veter0k @ Mar 31 2014, 06:33) *
А какая внешняя обвязка была необходима?


Вас интересует конкретная комплектация?

Приемник:
LNA - AD8331
Смеситель - на ADшных ключах.
АЦП - AK5394.

В передатчике
АЦП (он же смеситель) - AD5449.
Выходной усилитель - на рассыпухе.

QUOTE
Я так понимаю поднесущих было всего 2?


Почему две? FFT там размером 256, из них использовалось 145 поднесущих для информации (по два бита на несущую) и 10 поднесущих для эквалайзера.

Каналы приема/передачи квадратурные, так что их два. Но это же не поднесущие.

А, или Вы имеете в виду цифры "500/1000"? Так то в одну сторону центральная частота была 500кГц, а в другую - 1МГц, ибо был полный дуплекс.

QUOTE
Ядро этого контроллера не имеет встреного FPU, а значит математика медленнее чем на Cortex-M4.


Весь код (в том числе FFT) был полностью целочисленный. На самом деле CM4 немного быстрее выполняет MAC 32*32=>64, так что выигрыш будет, но очень небольшой.

QUOTE
И возможно ли справиться с встроенным одноканальным ЦАПом?


Ну как Вы себе это видите? У Вас, кстати, как-то неверно исходные данные выглядят. Огласите центральную частоту канала и ширину полосы этого канала. А там уже посмотрим.
Veter0k
Цитата(Rst7 @ Mar 31 2014, 10:19) *
Почему две? FFT там размером 256, из них использовалось 145 поднесущих для информации (по два бита на несущую) и 10 поднесущих для эквалайзера.

Каналы приема/передачи квадратурные, так что их два. Но это же не поднесущие.

А, или Вы имеете в виду цифры "500/1000"? Так то в одну сторону центральная частота была 500кГц, а в другую - 1МГц, ибо был полный дуплекс.

Да, смутили эти цифры 500/1000.

Цитата(Rst7 @ Mar 31 2014, 10:19) *
Ну как Вы себе это видите? У Вас, кстати, как-то неверно исходные данные выглядят. Огласите центральную частоту канала и ширину полосы этого канала. А там уже посмотрим.

Верхний предел 500 кГц, нижний определяется эффективностью фильтрации от DC, но пускай 10 кГц. Сколько поднесущих можно всунуть в этот диапазон и какой вид манипуляции использовать?
А вообще я думал делать IFFT внутри контроллера, а полученные массивы суммировать им же и данные посылать в DAC.
Rst7
QUOTE
Верхний предел 500 кГц, нижний определяется эффективностью фильтрации от DC, но пускай 10 кГц.


У Вас какая среда передачи?
Veter0k
Цитата(Rst7 @ Mar 31 2014, 12:04) *
У Вас какая среда передачи?


Тостый медный кабель, длинной максимум метра 2
Rst7
QUOTE
Тостый медный кабель, длинной максимум метра 2


Зачем Вам там OFDM?
Veter0k
Цитата(Rst7 @ Mar 31 2014, 12:15) *
Зачем Вам там OFDM?

Необходима скорость в 1-2 Мб/с, вряд ли используя частоты до 500 кГц возможно добиться такой скорости. Да и с OFDM наверное этого не сделаешь. А частоты выше по электромагнитной совместимости не пройдут.
Rst7
QUOTE
Необходима скорость в 1-2 Мб/с, вряд ли используя частоты до 500 кГц возможно добиться такой скорости. Да и с OFDM наверное этого не сделаешь.


У Вас превратные представления об OFDM. Сам по себе OFDM только ухудшает результирующую битовую скорость канала из-за наличия межсимвольных промежутков и использование части поднесущих для работы эквалайзера.

Для того, чтобы передать 1..2Мб/с в полосе 500кГц нужно просто большее соотношение сигнал-шум. Но OFDM тут - ненужное усложнение.
Veter0k
Цитата(Rst7 @ Mar 31 2014, 12:37) *
Для того, чтобы передать 1..2Мб/с в полосе 500кГц нужно просто большее соотношение сигнал-шум. Но OFDM тут - ненужное усложнение.

Какое решение Вы можете порекомендовать?
Kluwert
Цитата(Veter0k @ Mar 31 2014, 16:03) *
Какое решение Вы можете порекомендовать?

А зачем вам реально OFDM, действительно, понадобился? OFDM хорош в средах, где присутствует серъёзное "затягивание" сигнала, чаще всего это происходит из-за наличия целого спектра переотражений, лежащих в диапазоне от 0 до некоторого T. Характерные темы - это распротранение на СВЧ в городской застройке (ряд версий Wi-Fi) или переотражения от ионосферы и земли в КВ. И то, если спектр задержек имеет ярко выраженную дискретность, то с OFDM начинают успешно конкурировать модуляции с искуственным расширением полосы (типа DSSS и пр.), т.к. степени сжатия сигналов на приёме вполне хватает, что бы разгребать эти задержки либо тупо логическими алгоритмами, либо (что ещё лучше) выравнивателями (для любителей иностранщины - "эквалайзерами"). Примеров - опять же туча, хотя бы те же 802.11 с непомню какими буквами.

Если на проволоку, то я бы не заморачивался: у нас в конторе для этого используют VADSL-модемы, которые работают с QAM-модуляцией с разбиением всей полосы на подполосы. Возможно и вам что-то подобное имеет смысл использовать?

Да и, кстати, а не проще попробовать тупо засандалить азернет обычный. Кабель - штука несимметричная, но, во-первых, можно несимметричность попробовать скомпенсировать схемотехнически, а, во-вторых, у вас всего два метра. Я думаю: итак пахать будет, скорость сильно упадет, но вам же 1Гбит, не 100 и даже не 10, а всего 1-2 нужно!

Цитата(Rst7 @ Mar 31 2014, 11:19) *
Почему две? FFT там размером 256, из них использовалось 145 поднесущих для информации (по два бита на несущую) и 10 поднесущих для эквалайзера.

Я извиняюсь, но выше у вас было написано, что "полоса 40КГц", а "несущие/поднесущие 500/1000Гц". Но тогда, простите, у вас должно было быть всего 20/10 поднесущих. Как у вас тогда 256 получилось?

И, кстати, а что за подводный модем такой на частоте 500КГц/1МГц. Как человек неплохо знакомый с гидроакустикой, могу предположить, что дальность действия у такого модема будет, дай бог, метров 20.
Veter0k
Цитата(Kluwert @ Mar 31 2014, 16:07) *
А зачем вам реально OFDM, действительно, понадобился? OFDM хорош в средах, где присутствует серъёзное "затягивание" сигнала, чаще всего это происходит из-за наличия целого спектра переотражений, лежащих в диапазоне от 0 до некоторого T. Характерные темы - это распротранение на СВЧ в городской застройке (ряд версий Wi-Fi) или переотражения от ионосферы и земли в КВ. И то, если спектр задержек имеет ярко выраженную дискретность, то с OFDM начинают успешно конкурировать модуляции с искуственным расширением полосы (типа DSSS и пр.), т.к. степени сжатия сигналов на приёме вполне хватает, что бы разгребать эти задержки либо тупо логическими алгоритмами, либо (что ещё лучше) выравнивателями (для любителей иностранщины - "эквалайзерами"). Примеров - опять же туча, хотя бы те же 802.11 с непомню какими буквами.

Если на проволоку, то я бы не заморачивался: у нас в конторе для этого используют VADSL-модемы, которые работают с QAM-модуляцией с разбиением всей полосы на подполосы. Возможно и вам что-то подобное имеет смысл использовать?

Да и, кстати, а не проще попробовать тупо засандалить азернет обычный. Кабель - штука несимметричная, но, во-первых, можно несимметричность попробовать скомпенсировать схемотехнически, а, во-вторых, у вас всего два метра. Я думаю: итак пахать будет, скорость сильно упадет, но вам же 1Гбит, не 100 и даже не 10, а всего 1-2 нужно!

Ну мне казалось что таким образом я минимизирую электромагнитные помехи от такого провода. Ведь в спектре должны быть частоты ниже 500кГц. Езернет вряд ли. Этот кабель будет под выскоим постоянным напряжением.
Kluwert
Цитата(Veter0k @ Mar 31 2014, 17:22) *
Ну мне казалось что таким образом я минимизирую электромагнитные помехи от такого провода. Ведь в спектре должны быть частоты ниже 500кГц. Езернет вряд ли. Этот кабель будет под выскоим постоянным напряжением.

Ну и что? Развязываете микруху MAC/PHY не трансом, а ёмкостями с защитными цепями. Ну, или той схемой, которую вы планируете использовать (вы-то ж сами как-то собираетсь подключаться к кабелю?). Не, дело ваше, а я бы реально попробовал азернет поднять.
Rst7
QUOTE (Kluwert @ Mar 31 2014, 15:07) *
Я извиняюсь, но выше у вас было написано, что "полоса 40КГц", а "несущие/поднесущие 500/1000Гц". Но тогда, простите, у вас должно было быть всего 20/10 поднесущих. Как у вас тогда 256 получилось?


Простите, а где Вы увидели "500/1000Гц"?

QUOTE
И, кстати, а что за подводный модем такой на частоте 500КГц/1МГц. Как человек неплохо знакомый с гидроакустикой, могу предположить, что дальность действия у такого модема будет, дай бог, метров 20.


Без привлечения всяких потусторонних сил типа "бога" в районе 150 метров дальность. Да, затухание на этих частотах приличное, но еще терпимое.
Kluwert
Цитата(Rst7 @ Mar 31 2014, 17:45) *
Простите, а где Вы увидели "500/1000Гц"?

Без привлечения всяких потусторонних сил типа "бога" в районе 150 метров дальность. Да, затухание на этих частотах приличное, но еще терпимое.

Да, сорри, я понял,что речь идёт о расстоянии между поднесущими, и только сейчас заметил букву "К" перед Гц sm.gif

Оно не просто приличное, оно - жуткое! Поэтому, то, что у вас так весело получилось да ещё на такой весёлой скорости, удивляет. А, если не секрет, что за излучатели использовали?
Rst7
QUOTE
Оно не просто приличное, оно - жуткое!


Ну не жуткое. 250дБ/км при несущей 1МГц. На 200 метров всего 50дБ. Узкий луч, 10 градусов раскрыв, вполне вменяемые мощности получаются для получения вменяемого соотношения С/Ш.

QUOTE
А, если не секрет, что за излучатели использовали?


Пьезокерамика. В виде дисков. Готовая, покупная. С демпфированием для расширения полосы.
Kluwert
Цитата(Rst7 @ Mar 31 2014, 18:52) *
Пьезокерамика. В виде дисков. Готовая, покупная. С демпфированием для расширения полосы.

Ну, респект и уважуха! sm.gif

Кстати, последний вопросик, если позволите. Вы на мелководье или на глубине работали? К чему спрашиваю. Просто у нас на мелководье, правда, на частоте гораздо меньше вашей (около 40Кгц и ширине полосы около 4КГц), OFDM напрочь не пошёл. Выручил только ЛЧМ-сигнал. Мы даже теоретически обосновали почему это так и статью сделали sm.gif А у вас, судя по всему, BPSK-модуляция поднесущих и спектральная эффективность аж больше трёх. Для подводных систем - просто супер.

И, кстати, вы там писали про 35% загрузку Кортекса. Но, взятие БПФ - не самая "грузабельная" операция. Есть же ещё проблемы синхронизации, а там, в большинстве случаев нужен либо коррелятор либо СФ. А эти товарищи поболе, чем БПФ съедают, даже если предположить, что у вас символ синхронизации по длине равен OFDM-символу. Ну если только вы проблемы синхронизации "в лоб" не решаете (типа БПФ по окнам с перекрытиями).
Rst7
QUOTE (Kluwert @ Mar 31 2014, 17:31) *
Ну, респект и уважуха! sm.gif

Кстати, последний вопросик, если позволите. Вы на мелководье или на глубине работали?


Ну у нас глубины начиная с 5 метров примерно. У нас не всенаправленное антенное хозяйство, так что практически проблем с многолучевым распространением нет.

QUOTE
К чему спрашиваю. Просто у нас на мелководье, правда, на частоте гораздо меньше вашей (около 40Кгц и ширине полосы около 4КГц), OFDM напрочь не пошёл. Выручил только ЛЧМ-сигнал. Мы даже теоретически обосновали почему это так и статью сделали sm.gif


А дайте статью почитать. А то у нас есть другой канал связи, там как раз 40 и 25кГц, и там практически MSK, но есть проблемы - из-за переотражения от дна/поверхности есть эффект зависимости дальности от глубины.

QUOTE
А у вас, судя по всему, BPSK-модуляция поднесущих и спектральная эффективность аж больше трёх.


QPSK на поднесущих.

QUOTE
И, кстати, вы там писали про 35% загрузку Кортекса. Но, взятие БПФ - не самая "грузабельная" операция. Есть же ещё проблемы синхронизации, а там, в большинстве случаев нужен либо коррелятор либо СФ. А эти товарищи поболе, чем БПФ съедают, даже если предположить, что у вас символ синхронизации по длине равен OFDM-символу. Ну если только вы проблемы синхронизации "в лоб" не решаете (типа БПФ по окнам с перекрытиями).


У нас все проще - передатчик молотит постоянно. Не надо искать начало символа все время, надо просто удерживать синхронизацию. Отставание/опережение определяется по двум соседним несущим (в предположении, что различные помехи, в том числе многолучевость не приведут к сильным искажениям, частоты-то очень близки), ПИД-регулятор и все. Эта петля вместе с эквалайзером вполне справляется и с Доплером тоже, хотя для красоты надо бы скомпенсировать его до конца, путем домножения квадратур на комплексную экспоненту, соответствующую доплеровскому сдвигу.

Ну а в начале естественно происходит поиск сигнала. Причем в наглую, тем же алгоритмом - принимается символ, производится попытка детектирования, если в процессе детектирования все вменяемо - то считается, что все окей, сигнал найден. Если нет (ересь в эквалайзере, не совпала контрольная сумма), то происходит сдвиг на один отсчет и все повторяется сначала. Все по пионерски, никаких изысков.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.