Jump to content

    

Kluwer

Участник
  • Content Count

    310
  • Joined

  • Last visited

Everything posted by Kluwer


  1. Добрый день, коллеги! Проблема такая. На плисине собран проект, который шлёт оцифрованные данные udp-пакетами в Матлаб. Если пакеты принимаются на машине на базе Win XP, то пакеты видятся Варешарком, он говорит, что все контрольные суммы ок. Но до верхних приложоней они, похоже, не доходят. Матлаб ничего не видит. Написали даже программку для просмотра заданного порта, она тоже ничего не видит. Самое интересное, что на другом компе с Win XP - та же картина. На компах с семёркой, с восьмёркой в основном работает,хотя тоже глюки встречаются. С Линуксами та же беда, на некоторых версиях работает, на некоторых нет. Все антивирусы, пожстенки и прочие "службы безопасности" выключены напрочь. 'Control sum offload' на сетевухе не влияет. Может,кто сталкивался, помогите, плиз!
  2. Да с этим редактором праблем такой: я ему даю командную строку в виде %f -y%l, но на нужную строку он курсор не ставит. А без этой фичи внешний редактор бесполезен.
  3. Коллеги, никто не знает решения проблемы? В Квартусах, начиная с 11ой версии какая-то полная галиматья с отображением русских букв в текстовых файлах. Использую модули другого чела, котрый писал в Активе и много комментов на русском. Вебовские версии отображают неверную кодировку, а невебовские ещё и почему-то явно пытаются Юникод распознать. Дико не удобно!
  4. Ну барышня вы посмешили. Что ж проще LwIP, ну может разве что uIP? И что значит передача массива данных, вам всё равно какой-то стек IP нужен будет, или вы все уровни от сетевого до физического сами собрались руками писать? Да и наверное хотелось бы, что бы девайс на arp-запросы хотя бы отвечал (пинговался, например)? А загрузка процессора Азернетом :) в прямую зависит от сети к которой он подключён. Если вы в чистой "точка-точка", например, напрямую к компу подключены и на компе отключены всякие идиотские службы типа ДХЦП :) и прочей лабудени, то очень даже не много, буквально единицы процентов. А вот если вы его решили в конторскую сеть включить, или, тем паче, в И-нет, то тут да. Ибо бедному стеку придётся перелопачивать все входящие широковещательные, безадресные и (возможно) групповые пакеты. Кстати, что бы это предотвратить, можно ручками забраться в потроха LwIP (там всё понятно и просто) и вообще отключить обработку всех входящих пакетов. Но тогда устройство станет глухим как тетерев, даже на пинги ответить не сможет :), но слать вам данные будет исправно.
  5. Гель вовсе не обязателен. Во-первых, вы всю настойку перефирии можете вставить в свой код. Во-вторых (и это многократно проверялось) можно иногда вообще работать без настройки. При этом проект будет запускаться через раз, часто падать, потому что, например, тот же контроллер ДОЗУ неверно настроен, но работать в принципе можно. Тем более, что часто бывает так, что гель, слитый из И-нета для стартер кита работает, а для собственной платы, которая вроде бы точно передрана со стартер кита - нет. И в этом случае как раз что бы хоть как-то оживить плату помогает работа вообще без геля.
  6. А при чём тут СПМ? С какого момента мы вообще перешли на случайные сигналы? Вопрос товарища, по-сути, сводится к вопросу как вычислить мощность известного сигнала, пропущенного через фильтр с известной импульсной характеристикой. Разговоры про созвездие здесь вообще ни к чему, ибо в этом самом созвездии нас интересует только расстояние от начала координат, что даёт нам амплитуду конкретного парциального сигнала. А далее - теорема Парсеваля и элементарная формула для расчёта средней мощности комплексного спектра сигнала помноженного на АЧХ фильтра. В чём проблема?
  7. Всё, разобрались. В errata написано, что TSB и сам буфер должны быть в одной памяти, нельзя что бы буфер был, например, в sdram, а TSB - во внутренней.
  8. Коллеги, такая проблемка: организовали цепочечный ПДП (DMA) со SPORT'а в два буфера. Если буферы во внутренней памяти - всё работает зашибись, но у нас буферы довольно большие. При попыnке в TSB в поле IISP указать адрес буферов, уложенных во внешнюю память, DMA отрабатывает, но пишит в буфера нули. Прорыли даташит на Шарк уже в доль и поперёк, единственное, что нашли- это то, что у SPORTA поле IISP 28-разрядное и что из SPORT'а по ПДП можно писать в DDR. Наверняка многие сталкивались с таким, просим помощи!
  9. Так а в чём вопрос, просто пишите отдельные проги для 8-ми процессоров, организуя обмен руками через общий кэш или по межпроцам, грузите все 8 процессоров и - вперёд! Только без библиотеки гарантированно заколебётесь документацию разгребать.
  10. Если я правильно понял вашу задачу, то у меня было очень что-то близкое. Имелся угловой датчик положения, который оцифровывался с некоторой частотой. Поскольку частота оцифровки была в несколько раз больше чем скорость смены значений у датчика, то тоже получалась ступенчатая функция, а интересовала скорость вращения. Численное дифференцирование такой функции бессмысленно. Поэтому задача успешно решалась двумя способами. Первый - сглаживание нестационарным альфа-фильтром, при этом альфа являлась функцией от кол-ва "перескоков" датчика положения на заданном интервале времени. А второй - ещё проще, между перескоками датчика скорость полагалось постоянной и равной углу одного перескока датчика, делённого на кол-во отсчётов между ними. Недостаток второго способа в том, что крива скорости получается всё равно разрывной.
  11. STM32, OFDM?

    Ну, респект и уважуха! :) Кстати, последний вопросик, если позволите. Вы на мелководье или на глубине работали? К чему спрашиваю. Просто у нас на мелководье, правда, на частоте гораздо меньше вашей (около 40Кгц и ширине полосы около 4КГц), OFDM напрочь не пошёл. Выручил только ЛЧМ-сигнал. Мы даже теоретически обосновали почему это так и статью сделали :) А у вас, судя по всему, BPSK-модуляция поднесущих и спектральная эффективность аж больше трёх. Для подводных систем - просто супер. И, кстати, вы там писали про 35% загрузку Кортекса. Но, взятие БПФ - не самая "грузабельная" операция. Есть же ещё проблемы синхронизации, а там, в большинстве случаев нужен либо коррелятор либо СФ. А эти товарищи поболе, чем БПФ съедают, даже если предположить, что у вас символ синхронизации по длине равен OFDM-символу. Ну если только вы проблемы синхронизации "в лоб" не решаете (типа БПФ по окнам с перекрытиями).
  12. STM32, OFDM?

    Да, сорри, я понял,что речь идёт о расстоянии между поднесущими, и только сейчас заметил букву "К" перед Гц :) Оно не просто приличное, оно - жуткое! Поэтому, то, что у вас так весело получилось да ещё на такой весёлой скорости, удивляет. А, если не секрет, что за излучатели использовали?
  13. STM32, OFDM?

    Ну и что? Развязываете микруху MAC/PHY не трансом, а ёмкостями с защитными цепями. Ну, или той схемой, которую вы планируете использовать (вы-то ж сами как-то собираетсь подключаться к кабелю?). Не, дело ваше, а я бы реально попробовал азернет поднять.
  14. STM32, OFDM?

    А зачем вам реально OFDM, действительно, понадобился? OFDM хорош в средах, где присутствует серъёзное "затягивание" сигнала, чаще всего это происходит из-за наличия целого спектра переотражений, лежащих в диапазоне от 0 до некоторого T. Характерные темы - это распротранение на СВЧ в городской застройке (ряд версий Wi-Fi) или переотражения от ионосферы и земли в КВ. И то, если спектр задержек имеет ярко выраженную дискретность, то с OFDM начинают успешно конкурировать модуляции с искуственным расширением полосы (типа DSSS и пр.), т.к. степени сжатия сигналов на приёме вполне хватает, что бы разгребать эти задержки либо тупо логическими алгоритмами, либо (что ещё лучше) выравнивателями (для любителей иностранщины - "эквалайзерами"). Примеров - опять же туча, хотя бы те же 802.11 с непомню какими буквами. Если на проволоку, то я бы не заморачивался: у нас в конторе для этого используют VADSL-модемы, которые работают с QAM-модуляцией с разбиением всей полосы на подполосы. Возможно и вам что-то подобное имеет смысл использовать? Да и, кстати, а не проще попробовать тупо засандалить азернет обычный. Кабель - штука несимметричная, но, во-первых, можно несимметричность попробовать скомпенсировать схемотехнически, а, во-вторых, у вас всего два метра. Я думаю: итак пахать будет, скорость сильно упадет, но вам же 1Гбит, не 100 и даже не 10, а всего 1-2 нужно! Я извиняюсь, но выше у вас было написано, что "полоса 40КГц", а "несущие/поднесущие 500/1000Гц". Но тогда, простите, у вас должно было быть всего 20/10 поднесущих. Как у вас тогда 256 получилось? И, кстати, а что за подводный модем такой на частоте 500КГц/1МГц. Как человек неплохо знакомый с гидроакустикой, могу предположить, что дальность действия у такого модема будет, дай бог, метров 20.
  15. Коллеги! Имеется такая проблемка. Плата DE4 с 4-ым Стратиксом. В какой-то момент наотрез перестал заливаться софт в НИОС, говорит, что ошибка при заливке elf-файла. Смотрим лог: при проверке не может прочитать то, что записал начиная уже с самых младших адресов. Причём до этого никаких проблем не было. Никакие пляски с бубном не помогают. Ок. Берём вторую точно такую же плату, заливаем тот же проект, заливаем софт - всё работает. Никто не сталкивался с такой мистикой?
  16. Кстати, уважаемый thermit случайно не знает почему выбрана именно такая последовательность фаз в длинной преамбуле? Это какая-нибудь спецпоследовательность (типа ПСП)?
  17. М-да, это, кстати, логично и об этом я забыл. Спасибо за ответ.
  18. Вообще-то при постоянной скорости кода R и помухоустойчивость будет постоянной. Причём тут длина?
  19. Сорри за дубляж темы, но вроде её стоит обсудить в этом разделе. Вот такой вопросик. Конструируем КВ-радиосвязь с OFDM-сигналом, подсматривая в WiFi (802.11а). И вот в процессе этого подсматривания не смог понять одной вещи. И совокупность коротких преамбул (вступлений) и длинные преамбулы имеют ту же длительность, что и символ данных, использует те же поднесущие. Спрашивается, почему разработчики не боялись, что СФ, настроенный на преамбулы не "промажет" и не схватит что-нибудь похожее где-нибудь в середине посылки. Просто тут занимались подводной связью, так там (особенно при низких ОСШ) - это сплошь и рядом бывает, когда коррелятор "промахивается", не схватывая начало, но потом вдруг возбуждается где-нибудь в середине посылки.
  20. В 802.11 не предусмотрена передача преамбулы с повышенной мощностью. Ну, по-крайней мере, я такого в стандарте не нашёл.
  21. Это - да. Действительно, в коротком вступлении используется только каждая 4-ая поднесущая, начиная со второй. Но ведь, блин, при этом соотвественно в 16 раз (!) падает ОСШ. А ведь основное назначение преамбулы, всё-таки, - это обозначить факт начала пакета (а уже потом решить вопросы с синхронизацией). Или просто они считают, что при таком ОСШ всё равно связь с заданным BER при длине символа, определяемой стандартом, не обеспечить даже при 2-ФМ(BPSK)-модуляции? Да и к тому же, в коротком вступлении они всё равно используют номера поднесущих, которые есть и в символах данных. И, соотвественно, проблема не решается: мы опять можем "выдернуть" преамбулу из данных
  22. Коллеги! Вот такой вопросик. Конструируем КВ-радиосвязь с OFDM-сигналом, подсматривая в WiFi (802.11а). И вот в процессе этого подсматривания не смог понять одной вещи. И совокупность коротких преамбул (вступлений) и длинные преамбулы имеют ту же длительность, что и символ данных, использует те же поднесущие. Спрашивается, почему разработчики не боялись, что СФ, настроенный на преамбулы не "промажет" и не схватит что-нибудь похожее где-нибудь в середине посылки. Просто тут занимались подводной связью, так там (особенно при низких ОСШ) - это сплошь и рядом бывает, когда коррелятор "промахивается", не схватывая начало, но потом вдруг возбуждается где-нибудь в середине посылки.
  23. А при чём тут код Баркера? Раз речь про синхрослово, то, я так понимаю, задача низкоуровневой синхронизации уже решена к этому момента? Или вы хотите двух зайцев сразу пристрелить, т.е. и символьную и словную синхронизацию коррелятором сразу вытащить без слежения? Или у вас вообще беспрерывный поток данных валится и ваша задача начало и конец вытащить? Не до конца задача понятна.
  24. Во-первых, что такое у вас ||A||_2? Я так понимаю, вы хотели отнормировать матрицу, но тогда, вообще-то, надо указывать какая норма матрицы считается. Во-вторых, ваша итерационная процедура, если я её правильно понял, сойдётся в конце концов к диагональной матрице с собственными числами на диагонали. А причём тут собственные вектора? В-третьих, какой lapack, какой blas?! Вы вообще когда-нибудь програмили ЦПОСы для real-tim'а? Открою вам небольшой печальный секрет: на ЦПОС можно запрограмить "примерно в 100 строк за вечер" только то, что использует прилагаемую разработчиком математическую (или сигнальную) библиотеку. Ибо, всё иное либо: а) приведёт к совершенно не realному времени (а нахрена тогда нужен DSP'шник - считайте на калькуляторе), б) наём дорогостоящего программера, который вашу функцию будет ногами и руками упихивать в прокрустово ложе конкретной архитектуры на асме.