Alex_2015
Участник-
Постов
21 -
Зарегистрирован
-
Посещение
-
HFSS и ЛПДА
Alex_2015 ответил Alex_2015 тема в RF & Microwave Design
По поводу различий возможно. Моделировал без кабеля и симметрирующего устройства. Здесь даже спорить не буду. Но слишком сильно от модели отличается. По кабелю имел ввиду, что измерял КСВ с разъёмами и затухание в кабеле могло привести к более низкому измеренному КСВ, чем есть у разъемов. По отчетам интересно, но не актуально. Суть в том, что считал модель почти 24 часа при обычных 8-10. Проблема в том, что значения размерных параметров модели я задаю через OptionDesign. В том числе и ширину микрополоска. Была задана 9,876мм. Считала около 9 часов. Изменил значение переменной на 9,674мм. Считала 24 часа и результат выдала для 9,876 и 9,674, хотя 9,876 была до того обновлена на 9,674. Значит 9,876 она где-то сохранила. -
HFSS и ЛПДА
Alex_2015 ответил Alex_2015 тема в RF & Microwave Design
Измерил я КСВ разъёмов на микрополоске. Получилось очень плохо. В верхнем пике до 4 достает. На кабеле могло быть лучше, потому, как измерял на кабеле длиной около 3 м (делал для подключения антенны к источнику). Заказал у http://mirradio разъемы, которые под кабель 402 и до 11 ГГц. Хочу верить, что ситуация улучшится. Возник вопрос по HFSS. Пробую моделировать антенну в попытках найти оптимальный результат и столкнулся с интересной особенностью. Считала почти сутки. Параметры модели задаю через DesignVariable и изменил ширину микрополоска. В результате просчтиала и для старого размера, и для нового. Где она старые размеры сохранила, как сделать, чтобы она их сразу забывала и в расчетах использовала только текущие. На вскидку не нашел. -
HFSS и ЛПДА
Alex_2015 ответил Alex_2015 тема в RF & Microwave Design
Спасибо. Была такая мысль. А какую длину микрополоска сделать, чтобы однозначно проверить идею. КСВ кабеля я измерял. Оно меняется от частоты условно говоря, по синусоиде, и в пиках поднимается до 1,25 в максимуме -
HFSS и ЛПДА
Alex_2015 опубликовал тема в RF & Microwave Design
День добрый всем. Не уверен, в каком из разделов открыть тему, но пока здесь. Решил окунуться в новую для меня тему в СВЧ антенны. Рассчитал и изготовил два экземпляра логопериодической антенны на диапазон 650-8000 МГц. Смоделировал предварительно в HFSS. По результатам все пристойно, КСВ в норме во всем диапазоне. Но на практике выше 3 ГГц КСВ растет до, примерно, 4 на верхней рабочей частоте. КСВ измеряю при помощи двухпортового анализатора ARINST VNA-DL 1-8800 MHz https://kroks.ru/shop/network-equipment/arinst-vna-dl-1-8800-mgcz-nastolnyj-dvuxportovyj-vektornyj-analizator-czepej/. Антенна изготовлена на материале ФАФ-4. Под него и расчет велся. Подскажите, как исправить ситуацию с ростом КСВ, в каком направлении копать. -
crc32 stm32
Alex_2015 ответил Alex_2015 тема в ARM, 32bit
Всем спасибо, кто откликнулся. Проблему я решил. Надо было изменить опции для команды checksum, а именно --checksum u32_ielftool_checksum:4,crc=0x04c11db7:Li,0xffffffff;0x08004000-u8_checksum_end+3 Опции Li вместо ir. Тогда расчёт через встроенный аппаратный модуль проца возвращает ноль в качестве результата. Иар версии 7.80. Возможно, в более ранних версиях было по другому https://www.iar.com/support/tech-notes/general/calculate-crc32-as-in-stm32-hardware-v.5.50-and-later/ https://www.cnblogs.com/shangdawei/p/4603924.html -
crc32 stm32
Alex_2015 ответил Alex_2015 тема в ARM, 32bit
Эту статью я читал. Я пробовал рассчитать контрольную сумму для одного слова (4 байта). Результат оказался верным, но побайтно отзеркаленным. Тут и получается, что не взирая на установку флага r результат остаётся неизменным. -
crc32 stm32
Alex_2015 опубликовал тема в ARM, 32bit
День добрый. Если кто сталкивался, подскажите. Посредством ИАР пытаюсь генерить контрольную сумму прошивки. Генерит, но она не совпадает с той, которую считает аппаратный модуль процессора. Несколько дней искал причину. В конечном счёте не работает перестановка байт при расчёте CRC. Использую в бат файле команду ielftool.exe --fill 0xFF;0x08004000-u8_checksum_end+3 --checksum u32_ielftool_checksum:4,crc=0x04c11db7:ir,0xffffffff;0x08004000-u8_checksum_end+3 --verbose %OUT% %OUT% Так вот, не работает опция r, которая указана после алгоритма ,crc=0x04c11db7. Что и где её может запретить. -
сниффер ком порта
Alex_2015 ответил Alex_2015 тема в Программирование
Попробовал DeviceIoControl попользовать. Ожидаемого результата не увидел. Видимо не реализована она на уровне драйвера или чтобы она работала правильно, надо что то ещё допилить, но пока не нашёл. А можно ли запрячь драйвер, чтобы он возвращал явном виде о событии Idle в линии данных. То есть об отсутствии данных судить не по отсутствию Rxchar, а чтоб драйвер об этом сообщил. Есть такая программка - Modbus Poll. Вот она как-то умудряется по паузам между сообщениями работать, причём при обработке сообщений, не являющимися в чистом виде Модбасовскими. Вот как она это делает, мне очень интересно. -
сниффер ком порта
Alex_2015 ответил Alex_2015 тема в Программирование
В моём случае пауза определяется временем опроса драйвера виртуального порта системой. Это время составляет 1 мс. Вот 2 мс это и есть граница. Если система будет загружена выполнением большого количества дополнительных задач, то в таком случае спайки и на 30 мс неожиданностью не станут. Особенность в том, что DeviceIoControl позволяет добавлять в поток дополнительные данные о статусе устройства. Делается это на уровне драйвера, как мне удалось понять. Но повторюсь, информация очень скудная и будет ли в ней прок, хотел посоветоваться со знающими людьми. Может быть и другим интересно будет. Упоминания об использовании этой функции в связке с IOCTL_SERIAL_LSRMST_INSERT находил преимущественно на зарубежных сайтах. У нас как-то об этом не упоминают или ни кто не пробовал с ней работать. -
сниффер ком порта
Alex_2015 ответил Alex_2015 тема в Программирование
День добрый всем. У меня появилась возможность вернуться к решению задачи о построении сниффера и частично я её решил. 2 мс между посылками в компьютерной программе ловлю на ура. Причём не пришлось повышать приоритеты ни процесса, ни потока. Теперь хочу закрепить результат и поймать паузы менее 2 мс. В связи с чем вопрос - с функцией DeviceIoControl применительно к виртуальному порту кто-нибудь упражнялся. А то на всех ресурсах описание её очень скудное. В выходные попробую реализовать и посмотреть её результат. Но может кто что скажет из опыта работы с ней. -
сниффер ком порта
Alex_2015 ответил Alex_2015 тема в Программирование
Я всё-таки внесу некоторые дополнения. Использую преобразователь USB-RS485. Провёл несколько экспериментов и выяснил, что данные из порта читаются пачками по 4-16 байт. Причём начало запроса всегда читается с начала, начало ответа читается вместе с хвостом запроса. Эксперименты с таймаутами мало что меняют. Здесь, я думаю, большую роль играет характер устройства (виртуальный порт). Так случилось, что преобразователь построен на основе FTDI микросхемы. У неё есть возможность работы через D2XX драйвер, который, если верить описанию, в большей степени позволяет мониторить события железки. Если кто работал с ним, насколько это так. Сейчас вынужден временно переключиться на другую задачу, поэтому по этой буду только инфу изучать в свободное время. -
сниффер ком порта
Alex_2015 ответил Alex_2015 тема в Программирование
Я не утверждаю, что MSDN врёт. Просто констатирую факты. Возможно ошибка есть более глубоко в моём коде и я её пока не вижу. Поэтому пытаюсь освежить информацию по работе с портом, возможно пока та самая ошибка не проявлялась за несколько лет работы проги. -
сниффер ком порта
Alex_2015 ответил Alex_2015 тема в Программирование
Читал я MSDN в своё время, когда осваивал программирование ком порта. Но это ни чего не даёт. Когда драйвер захочет вернуть данные пользовательской программе, тогда и вернёт. И совсем не в режиме реального времени. А с таймоутами я экспериментировал, результат далёк от желаемого. -
сниффер ком порта
Alex_2015 ответил Alex_2015 тема в Программирование
На тему конвертора мысли были. Но только на самый крайний случай. Сейчас пока используется модифицированный модбас, в котором есть признаки, позволяющие однозначно определять начало и конец посылок. Есть потребность перейти к стандартному модбасу и будет нужна прога, которая позволит в реальном времени отслеживать обмен между устройствами в целях отладки. Сегодня перечитывал старую информацию, которую использовал при освоении программирования ком порта и нашёл то, что пропустил. Есть в структуре DCB символ XOFCHAR, который позволяет определить конец посылки. Осталось непонятным, его записывает драйвер в массив приёма или этот символ должен быть записан передатчиком в конец сообщения. Интернет по этому поводу подробностей пока не дал. Буду пробовать экспериментально. Была ещё мысль отслеживать событие DCD data carrier detect, но боюсь оно ожидаемого результата не даст. Была мысль алгоритмически ловить конец посылки через подсчёт CRC, но вариант не самый красивый. Хотя должен привести к результату. -
сниффер ком порта
Alex_2015 ответил Alex_2015 тема в Программирование
Такой вариант я рассматривал, но здесь ключевая фраза, если принята без ошибок. Самый надёжный способ - именно ловить паузы. Эксперименты с таймаутом особо не помогают. При скорости 115200 время передачи байта составляет 95мкс, а таймауты устанавливаются в миллисекундах. Основную проблему я вижу в том, что драйвер подбирает у системы данные с некоторым периодом. Программа у драйвера запрашивает данные тоже с каким-то периодом. За это время фактически драйвер может взять у системы несколько байт. Причём может схватить хвост запроса и начало ответа. Отсюда и лезут проблемы.