Официально анонсирован проект по разработке программного фреймворка Sigrok, предназначенного для организации работы логических анализаторов. Фреймворк построен с использованием модульной архитектуры и позволяет гибко расширять и добавлять новые декодеры через плагины или модули. В Sigrok обеспечена поддержка различных протоколов и интерфейсов, которые позволяют подключаться к множеству логических анализаторов, выполняя функции записи и оценки измерений, визуализации полученных данных. Система также может применяться в процессе автоматизации проектирования электронных приборов (EDA - Electronic Design Automation).
Код проекта написан на языках C/C++ и распространяется под лицензией GPL. Модули и декодеры создаются на языке Python. Из платформ поддерживаются Linux, Mac OS X, FreeBSD и Windows. В настоящее время
доступны декодеры для протоколов I²C, I²S, JTAG, Wii Nunchuck, DCF77, LPC, UART и USB.
Несмотря на то, что сейчас в мире существует несколько малобюджетных логических анализаторов, в том числе поставляемых с открытым ПО, - все они выполняют одинаковую задачу: текущую запись, накопление, а также анализ цифровых сигналов и последовательностей. Главная же проблема в том, что каждый из них обычно поставляется со своим собственным протоколом и интерфейсом сопряжения, и, соответственно, каждый такой логический анализатор жестко завязан на предоставляемое вместе с ним программное обеспечение – на его функциональность, специфику и ограничения. Обычная ситуация в этой сфере такова, что в лучшем случае такое ПО работает лишь с одним семейством логических анализаторов от одной компании-производителя.
На этом фоне проект Sigrok ставит своей главной целью создание универсального программного окружения для любых типов и разновидностей логических анализаторов. Для реализации этого планируется создание драйверного модуля, который будет относительно прост для программирования и представлять доступ ко всему спектру возможностей фреймворка Sigrok. В частности, им можно будет управлять в том числе через графические фронтенды, написанные на GTK (sigrok-gtk) и Qt (sigrok-qt), а также через интерфейс командной строки (sigrok-cli). По сообщениям от разработчиков, на текущий момент версия интерфейса на базе GTK реализована более полно и качественно, пока работая более стабильно, чем аналог на базе Qt.
Согласно отчету проекта о поддержке аппаратного обеспечения различных логических анализаторов, Sigrok на данный момент полностью поддерживает 9 ведущих на рынке логических анализаторов, включая следующие наиболее известные из них: Open Bench Logic Sniffer, Salae Logic и Bus Pirate. В исходных текстах фреймворка также есть средства для работы со звуковыми картами через интерфейс ALSA. Сообщается, что поддержка ALSA уже почти готова, и будет полностью завершена в следующем релизе. Другие дополнительные модули, которые находятся сейчас в разработке, позволяют работать с популярным семейством логических анализаторов на базе Cypress FX2, например моделью USBee SX, для которой Sigrok содержит в себе необходимые микропрограммы для ПЗУ. В будущем запланирована реализация поддержки таких программируемых адаптеров, как PICkit 2.
Несмотря на логичную и полезную миссию проекта Sigrok, не все производители довольны подобной свободной разработкой, в качестве объяснения мотивов этого можно привести такой факт: многие производители очень хорошо продают свой специализированный софт для каждой конкретной модели логического анализатора. Их стоимость также зависит от включаемых возможностей, при этом в каждой из таких ниш им нет практически никакой конкуренции. Например, за 300 долларов продается программный пакет CWAV USBee Suite Pro, который предлагает расширенный набор декодеров и может использоваться с анализаторами от разных производителей, при этом пусть и с более узким охватом списка поддерживаемых производителей, он обеспечивает полную поддержку заявленного оборудования.
В этом плане предстоит выполнить ещё много работы, прежде чем Sigrok по-настоящему станет серьёзным конкурентом подобным коммерческим пакетам: на данный момент бета-версия Sigrok предоставляет собой лишь набор базовых возможностей и самые простые формы анализа, а с учётом того, что большинство протоколов в нём поддерживаются не до конца – серьёзный анализ данных на его базе пока весьма проблематичен.
|