Особенности микропроцессоров в лаборатории физики
Микропроцессорная техника представляет собой очень большой сегмент современной электроники. Данные технологии используются фактически в любых аспектах нашей жизни, но сегодня я бы хотел поговорить об использовании этой технологии на примере исследовательской лаборатории квантовой и оптической физики Еврейского университета в Иерусалиме. Сердцем любой встраиваемой электронной системы является микропроцессор. Но что это? Какими характеристиками обладает микропроцессор? Какие задачи он может выполнять? Где используется? На что стоит обратить внимание при выборе микропроцессора для вашего проекта? Об этом и многом другом мы попросили рассказать инженера электронщика Петра Сафира, который возглавляет инженерный отдел в институте физики Раках Еврейского университета в Иерусалиме. Петр Сафир принимает участие в исследованиях в качестве инженера электронщика во многих исследовательских проектах, которые проводятся в его институте.
Что такое микропроцессор?
Микропроцессор - это основной элемент вычислительной системы. Он контролирует всю электронную систему выполняя арифметические и логические операции. Микропроцессоры - это универсальное решение для многих проектов, так как они дешевые и сочетают в себе всю основную архитектуру для почти любого проекта. Современные микропроцессоры занимают мало места и потребляют мало энергии, что позволяет их использовать в мобильных системах. Современные микропроцессоры работают на высоких частотах, что позволяет строить на их основе измерительные приборы для исследовательских лабораторий. Но мы поговорим о микроконтроллерах. Микроконтроллеры - это класс специализированных микропроцессоров, ориентированных на применение в качестве устройств или систем управления, встраиваемых в разнообразную измерительную (и не только) аппаратуру. Вся периферия микропроцессора (аналого-цифровой преобразователь, I2C и SPI поддержка протоколов и многое другое) собрана на одном кристалле.
Расскажите о ваших проектах проводимых в вашем институте, в которых вы используете микроконтроллеры?
Любые сложные системы, а микроконтроллеры относятся именно к таким, не работают сами по себе. Главная моя задача как инженера электронщика в процессе создания определенного проекта создать всю электронную периферию и написать контролирующий код для его корректной работы. Обычно для своих проектов я использую микропроцессоры, уже встроенные в специальные платы, на которых присутствует вся нужная периферия, такая как порты ввода и вывода, аналого-цифровые и цифро-аналоговые преобразователи, кнопки, дисплей и многое другое. Но, если для проекта нет нужной периферии на встроенной плате, я сам это создаю. Самые известные из готовых встроенных систем которые можно приобрести это Arduino, Raspberry Py, BeagleBoard и некоторые другие. Выбор соответствующей встраиваемой системы зависит от требования проекта. Все это можно программировать в соответствии поставленной задачей. Пример из моей практики, во многих моих проектах мне нужно создавать сеть из различных сенсоров, например таких как сенсор за контролем температуры, контроль за оборотом сервомотора, измерение магнитного поля. Все эти сенсоры нужно контролировать и синхронизировать с измерительной лабораторной аппаратурой. Очень часто нужно получать данные в виде сигналов от исследуемого объекта. И эти сигналы нужно обработать, потом визуализировать, чтобы ученые могли видеть получаемую информацию в удобном для них формате. И все это часть моих проектов, которые создаются на основе микропроцессоров.
Как вы выбираете с каким типом микропроцессоров вы будете работать в ваших проектах?
Любой проект прежде всего начинается с обсуждения с его участниками, тема исследования, какую измерительную аппаратуру можно купить, а какую мне придется создавать. Но не всегда я начинаю работать на старте исследования. Довольно часто меня приглашают когда исследование уже в процессе, но что-то идет не так или что нужно улучшить. В любом случае нужно понять техническую часть исследования, а уже на основе этого предлагать исследовательской группе свои решения. Очень важно чтобы у ученых, участвующих в исследовании, был определений опыт для работы со встраиваемыми системами, которые я предлагаю использовать в проекте. Например, недавно меня пригласили в уже действующее исследование для создания электроклапанов в вакуумную систему. Система электронных клапанов, которая была создана производителем, в ходе опыта была признана негодной из-за своей очень медленной работы и плохой синхронизации с основным микропроцессором. который использовался в эксперименте. Мне пришлось на основе уже выбранного и действующего микропроцессора создать новую программу для новых мною подобранных электронных клапанов и интегрировать это в действующий проект. После того как моя работа была проделана , исследования продолжились.
В чем главные отличия готовых встраиваемых систем типа Arduino от микрокомпьютера?
Микроконтроллеры созданы для одновременного выполнения одной задачи. Контроль за сенсорами и управление сервомоторами - вот их основная задача, и они замечательно с ней справляются. Микроконтроллеры хорошо использовать там где не требуется большая скорость выполнения команд и не нужно обрабатывать гигантские объёмы данных, например видео. Такие системы работают без операционных систем, таких как Linux. Микрокомпьютер - это другой класс процессоров. На них обычно установлена операционная система типа Linux, и они могут обрабатывать гигантские потоки данных, видео, аудио. Естественно они прекрасно справятся и с контролем за сенсорами, но они гораздо дороже микропроцессоров и нет большого смысла их использовать в этом качестве. Также существуют гибридные системы, где на одной плате установлены и процессор, и микроконтроллер.
Программирование микроконтроллеров для лабораторий физики это сложно?
Нужно иметь достаточно опыта, чтобы понимать специфику самой лаборатории и в какой области физики лаборатория проводит исследования. Для некоторых лабораторий достаточно запрограммировать сенсоры и настроить их корректную работу. Но большинство лабораторий хотят, чтобы они сами могли вносить свои изменения в работу самой системы на этапе эксперимента. И вот здесь тоже приходится сталкиваться с выбором языка программирования. Язык программирования должен быть доступен для всей исследовательской команды а не только для меня как инженера разработчика.
Беседовал Николай Федоров