b3 — НТЦ Метротек. Архив блога http://blog.metrotek.spb.ru заметки бывших разработчиков бывшего НТЦ Метротек Thu, 02 Oct 2025 13:52:15 +0000 ru-RU hourly 1 https://wordpress.org/?v=5.1.15 как прошивать Беркут-ET http://blog.metrotek.spb.ru/2013/06/09/kak-proshivat-berkut-et/ Sun, 09 Jun 2013 11:37:07 +0000 http://blog.metrotek.spb.ru/?p=4219 b3etx_photo обновление программного обеспечения (также известное как «прошивка») портативных анализаторов Беркут-E1, Беркут-ET, Беркут-ETX, которые мы выпускаем, работает по протоколу XMODEM. так уж сложилось. на момент написания первой версии это был самый простой и не требовательный к ресурсам алгоритм загрузки файлов.

современным пользователям часто сложно переключиться с режима «перетащить мышкой» на режим «выполнить последовательно несколько разных действий». то, что программистам кажется простым, обычному человеку принять тяжело.

поэтому при обновлении прошивки приборов иногда возникают проблемы. ведь, как это часто бывает, руководство по эксплуатации не читают. с другой стороны, может быть, в руководствах не всё корректно описано.

итак, попробуем помочь с решением проблемы обновления.

что нужно знать

  1. как перевести прибор в режим начального загрузчика (bootloader)
  2. где искать диагностическую информацию
  3. что загружать (bin, urom…)
  4. как загружать файлы

начальный загрузчик

во всех приборах линейки «b3» (это Беркут-E1, Беркут-ET, Беркут-ETX на боковой панели есть отверстие диаметром примерно полтора миллиметра. оно никак не подписано, но, тем не менее, это отверстие для аппаратного сброса (перезагрузки, ресета). в этом отверстии расположена кнопка, нажать на которую можно при помощи зубочистки или скрепки.

после ресета прибор должен переключиться в режим «начального загрузчика» (bootloader). только в этом режиме возможно обновление прошивки.

в некоторых приборах переход в загрузчик происходит автоматически, в некоторых — только при одновременном удерживании клавиши On/Off на клавиатуре прибора и нажатии на кнопку reset (см. предыдущий абзац).

диагностика в USB-консоли

загрузка и получение диагностической информации — на USB-консоли. прибор нужно подключить к компьютеру (драйверы для windows и mac — на сайте ftdichip.com) в режиме последовательного порта (COM-порта).

для работы с прибором по последовательному порту можно пользоваться любой доступной терминальной программой. например, в windows это putty или hyperterminal, в unix-подобных системах — minicom, cu, screen или kermit.

после ресета прибора на консоль будет выведена такая информация:

Bercut+ bootloader 0.0.13
Upgrade via XMODEM:
1) MCU
2) system FPGA
3) expansion FPGA #1
4) expansion FPGA #2
5) FS image
boot>

пример дан для прибора Беркут-ET. для Беркут-E1 и Беркут-ETX текст может отличаться.

теперь в течение двух секунд нужно успеть нажать соответствующую цифру на клавиатуре компьютера (не прибора!). для полного обновления прошивки нужно нажать «5».

после выбора прибор будет примерно раз в секунду выводить символ «C»: CCC

это значит, что он ожидает загрузку файла по протоколу XMODEM.

что загружать

теперь нужно отправить файл, пользуясь средствами коммуникационной программы (hyperterminal/minicom/putty/…).

протоколу XMODEM всё равно, какого формата файл. так же и прибору. загружайте соответствующие прошивки с нашего сайта из раздела Файлы и будет счастье от обновлённых версий с новыми функциями и исправленными ошибками.

с вопросами, как обычно, обращайтесь на support@metrotek.spb.ru.

]]>
Про старенькое. Беркут-E1. исправления ПО http://blog.metrotek.spb.ru/2012/05/07/pro-starenkoe-berkut-e1-ispravleniya-po/ Mon, 07 May 2012 12:00:03 +0000 http://blog.metrotek.spb.ru/?p=3113 решена небольшая проблема с неправильным приёмом данных для анализа протоколов в Беркут-E1. обновление доступно для скачивания с сайта. то есть, тут. списки изменений (Changes) лежат рядом.

]]>
про wireshark и беркут-e1. инструкции http://blog.metrotek.spb.ru/2012/04/19/pro-wireshark-i-berkut-e1-instruktsii/ Thu, 19 Apr 2012 09:13:59 +0000 http://blog.metrotek.spb.ru/?p=3005 как обещал, выкладываю ссылки на инструкции по обеспечению нормального взаимодействия Беркут-E1 и Wireshark.

если коротко, то нужно положить в каталог, в который установлен Wireshark, два Lua-скрипта и два bat-файла и после этого пользоваться программой Bercut-E1 Data Receiver, как обычно.

вот инструкция.

а вот прямая ссылка на скрипты и bat-файлы.

ps. описанный механизм, впрочем, работает и в unix-системах.

pps. этот способ — для online-анализа. для offline достаточно сохранить файл в формате pcap и открывать обычным wireshark’ом. без скриптов.

]]>
b3 и wireshark http://blog.metrotek.spb.ru/2012/04/18/b3-i-wireshark/ Wed, 18 Apr 2012 00:00:01 +0000 http://blog.metrotek.spb.ru/?p=2993 в позапрошлой заметке я упоминал о проблемах использования связки нашего Беркут-E1 и супер-декодера почти всех существующих протоколов Wireshark на новых версиях ms windows.

в двух словах, раньше оно как работало? по USB-интерфейсу Беркут-E1 передавал бинарные данные из ИКМ-потока в компьютер, затем специальная программа «Bercut-E1 Data Receiver» выделяла HDLC-пакеты и перенаправляла их или в файл, или в так называемый Microsoft Loopback adapter, из которого их читала и декодировала программа Ethereal. да, в то время, когда мы воплотили в жизнь идею простого, компактного и относительно недорогого анализатора протоколов, Wireshark назывался Ethereal.

для того, чтобы Wireshark Ethereal правильно идентифицировал протоколы сигнализации, мы слегка изменили библиотеку WinPcap и сам Ethereal, благо обе программы распространяются и в исходном коде. в общем, в течение нескольких лет всё работало и не вызывало проблем у пользователей.

но прогресс на месте не стоит и настал момент, что когда-то работающий механизм перестал функционировать. небольшие отличия версий Windows, WinPcap, Wireshark напомнили нам о себе.

пользователи стали, мягко говоря, жаловаться. а мы, в свою очередь, стали искать способ исправить ситуацию с минимумом затрат. первый пришедший на ум вариант был «наложить patch» на последние версии Wireshark и WinPcap, но оказалось, что за столько лет эти программы сильно изменились и их модификация потребует значительных усилий. а мы, как правильные разработчики, довольно-таки ленивы, чтобы так напрягаться для решения простых задач.

и сегодня вечером мы нашли простое решение проблемы.

итак, что выяснилось? всё не так сложно и самое главное, теперь не требуется никаких изменений в коде, и пересборка пакетов тоже не нужна.

можно использовать готовые инструменты, которые есть в комплекте замечательной программы Wireshark. это — язык Lua, на котором нужно составить короткий скрипт, после чего декодирование пакетов будет выполняться так, как нам нужно.

сам скрипт вместе с инструкциями мы выложим на сайт завтра.

за идею нужно поблагодарить Ивана Шевчука, нашего подающего большие надежды разработчика, а за реализацию — Пашу Курочкина.

ps. кстати, и тут снова пригодился интересный тезис из ТРИЗ об идеальном приборе, которого нет, а функция выполняется!

]]>
2D-акселератор http://blog.metrotek.spb.ru/2009/02/05/2d/ http://blog.metrotek.spb.ru/2009/02/05/2d/#comments Thu, 05 Feb 2009 09:02:50 +0000 http://blog.metrotek.spb.ru/?p=452 2d_graphicsМожет, кто забыл, но наши программисты в своё время сделали 2d графический ускоритель на FPGA для прибора Беркут-ЕТ. Это дало возможность не думать о том, что графики и диаграммы сложной структуры будут строиться слишком долго и тормозить работу основной части программы. Сейчас любой график отрисовывается практически мгновенно, чего не скажешь о графической подсистеме, например, Беркут-E1, где всё делает довольно медленный для такой задачи процессор.

Акселератор умеет строить прямые линии, прямоугольники и окружности (производительность в «попугаях», конечно, надо уточнить). А чего это стоило, ребята расскажут сами:

Сергей Колемагин:

Да, действительно, графический акселератор в Беркут-ET существует, и при этом даже работает на частоте 50 МГц, то есть позволяет рисовать 50 Mpix/с, что для дисплея Беркут-ET, имеющего размеры 320х240 — хороший показатель. Любой графический примитив отрисовывается за незаметное для человеческого глаза время.

Количество цветов на данный момент ограничено 8, но это связано только с объемом памяти, выделяемой под framebuffer. Сам акселератор без проблем сможет работать и с цветом большей глубины.

На данный момент акселератор может выполнять следующие операции:
— рисовать линии по алгоритму Брезенхема;
— рисовать закрашенные прямоугольники (без поворота);
— строить дуги произвольного размаха (аппаратно, с помощью драйвера на основе этого примитива рисуются окружности и сектора);
— выводить на экран текст, причем шрифты могут подгружаться в память прибора, и на данный момент Беркут-ET может рисовать на экране шрифты трех различных размеров.

Отмечу, что, к сожалению, функция рисования треугольника так и не была включена в список функций акселератора, несмотря на то, что для ее реализации было испробовано 2 алгоритма. Хотя, опираясь на уже накопленный опыт, сейчас ее реализовать особого труда не составит. Была бы только востребована…
Также есть возможность реализовать поворот примитивов, хотя бы на фиксированный угол (удобно было бы выводить текст, например, для подписей к графикам).

Так что, заканчивая вступление, скажу, что наш графический акселератор может, конечно, не все, но своего потенциала еще не исчерпал.
Если же у кого-то возникнут вопросы о том, как функционируют уже существующие его части — обращайтесь, мы обязательно ответим!

]]>
http://blog.metrotek.spb.ru/2009/02/05/2d/feed/ 3