Raspberry Pi-based LXI.

Обычно я позиционируюсь как ярый противник всевозможных Ардуин, DEV-китов, и готовых модулей, поскольку считаю, что любой инженер-любитель с прямыми руками может и должен делать проекты только Bare Metal и только с нуля, причем на базе только своих разработок.

Однако недавно я столкнулся с нуждиком: сделать логгер для измерительной техники, который будет работать сутками автономно и выгружать на выходе CSV-шку.

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

Для этой задачи я применял Keysight BenchVue и Keithley KickStart, но у данного подхода есть три очевидных минуса:
1 – Каждое ПО поддерживает только свои брендированные инструменты.
2 – Для работы требуется постоянно включенный ПК, а это сотни киловатт энергии в месяц и постояный шум.
3 – Это ПО платное, и требует значительных вложений, особенно софт от Keysight.

Но хочется все-же некоторой универсальности и отсутствия этих минусов, а так-же поддержки сторонних датчиков. Было решено разработать такое решение самостоятельно.

Но если посмотреть внимательнее, то мы увидим, что современная измириловка – это умное железо, типично с поддержкой стандартизированного Ethernet-based интерфейса LXI служащего для управления и передачи данных с инструментария. То для данной задачи логично воспользоваться именно им. В обертку LXI без проблем заворачиваются команды языка программирования инструментов SCPI. И полученный тандем из Ethernet+LXI+SCPI позволяет управлять инструментом. Реализация такого тандема вызывает определенные сложности при Bare Metal кодинге для простых Cortex и подобных ядер.

Проанализировав массу вариантов, решено было использовать базу из Linux-based микро-ПК. Поскольку разводить плату под BGA-шки, паять их– достаточно проблемная задача, а адаптировать Linux ядро под собственную плату еще сложнее, и задача таких трудозатрат явно не стоит, то базой для этого был выбран одноплатник Raspberry Pi Zero W.

Это дает несколько преимуществ:
+ Готовый сетевой стек ядра.
+ Готовые либы для LXI.
+ Куча разносортных стандартных Linux библиотек.
+ Вафля на борту платы.
+ Поддержка компиляторов GCC, и большенства классического Linux ПО.
+ Малое потребление.
+ Низкий порог вхождения.
+ Универсальность и поддержка самодельных датчиков подключаемых к порту GPIO.

Первым подопытным выступил GPS-дисциплинированный стандарт времени и частоты HP Z3805A. Любительское ПО Lady Heather’s 6.14 – без проблем скомпилировалось под Linux Raspbian, и после небольшого тюнинга производительности Zero W, с его низко-производительным процессором, начал справляется с требуемыми вычислениями для нормальной работы этого ПО. Был настроен VNC-сервер для удаленного просмотра данных о работе стандарта.

Проведя несколько вечеров коддинга и тестирования, удалось написать программку “LXI Instruments Data Logger” которая обмениваясь SCPI командами с различными приборами загружает с них данные и сохраняет в CSV-файл. А сам файл после этого загружается на основной ПК через браузер по протоколу HTTP. После чего загружается в Excel и там всесторонне высчитывается мат. статистика о проведенных измерениях, такая как стандартные отклонения, зависимости, девиации, и строятся графики.

В результате при достаточно малом потреблении менее 1Вт (5В@0.18А) этот микро-компьютер способен снимать данные с любых LXI инструментов и стандарта частоты, без участия основного ПК потребляющего 200-300 Вт. Цена решения тоже не высока 47$ (20$ за Seeedstudio Raspberry Pi Zero W with Official Case, 27$ за накопитель Samsung PRO Endurance microSDHC 32 ГБ)
Решение мне понравилось, оно простое, достаточно гибкое, дешевое, и с высокой повторяемостью.

Так-же данный софт теперь поддерживает работу с высокоточными температурными датчиками Texas Instruments TMP117, чтобы на результаты измерений накладывать графики температурной зависимости. Датчик с флекс-платой добавляет к стоимости решения еще где-то около 30$, но это небольшая цена за привязку лога к температуре.

Итого, оборудование для логгера даже с учетом всех затрат и доставок не превышает психологический порог в 100$.

Законченное решение с датчиком выглядит так:

Ссылки по теме:
LXI
SCPI
LXI Instruments Data Logger
Raspberry Pi Zero W
Lady Heather’s