Просто осциллограф Часть 1
Просто осциллограф Часть 1
Автор: Валерий Яценков
Развитая функциональность современного компьютера замечательно способствует экономии места на рабочем столе, особенно если потребности пользователя выходят за рамки тривиального воспроизведения аудио- и видеофайлов. Использование компьютера в качестве «мозгового центра» настольной измерительной лаборатории экономит не только место, но и деньги. Когда мой старенький двухлучевой осциллограф, переживший вместе со мной лучшие годы молодости, начал окончательно дряхлеть, я серьезно задумался о том, чтобы найти ему на замену прибор, максимально использующий компьютер.
Оптимальным решением выглядит приобретение многофункционального цифрового осциллографа, подключаемого к компьютеру в виде внешнего устройства. Обычно используется подключение через USB, быстродействия которого зачастую достаточно для измерений в режиме реального времени. Устройство, о котором я хочу вам сейчас рассказать, не отличается выдающимися техническими характеристиками или необычными конструкторскими решениями. Тем не менее, рискну обратить на него ваше внимание по ряду причин. Во-первых, это достаточно нетривиальный случай, когда процесс разработки устройства и программной оболочки можно наблюдать поэтапно и даже самому в нем участвовать [Аналогия с чисто «софтовым» открытым проектом здесь неуместна, однако от помощи в любой форме разработчик не откажется]. Во-вторых, это типичный самофинансируемый проект, на бизнес-жаргоне именуемый bootstrap - поднимающий сам себя, как барон Мюнхгаузен. Наконец, устройство имеет уникально низкую цену, не будучи сделанным в Китае.
Разработчиком проекта (http://usb-osc.narod.ru) является Сергей Малык [Да, один человек. Если один программист может написать хорошую популярную программу, то почему бы одному инженеру не разработать несложный популярный прибор?], проживающий в Киеве. Узнав, что я пишу для «КТ», Сергей охотно ответил на мои вопросы, но предоставить образец для тестирования не смог, поскольку все права на производство и продажу изделия в России продал тульской компании «Трейд-М» (www.motor-master.ru). Нынешние правообладатели откликнулись столь же доброжелательно, хотя возникла небольшая задержка, связанная с несвоевременной поставкой комплектующих для производства. Впрочем, когда пришла посылка, мне как раз понадобился осциллограф для отладки очередной схемы. Поэтому тестирование происходило во вполне боевых условиях.
С отчетом тут же возникла проблема: у тульского изделия нет индивидуальной торговой марки. Оно называется просто - «USB осциллограф». Представьте, что в вашем паспорте, в графе «Фамилия» написано «Человек разумный». С этим все согласны, однако непонятно, как же вас выделять среди остальных особей данного вида. Делать нечего, будем использовать предложенное название, помня, что данный осциллограф не единственный в своем роде.
«USB осциллограф» разрабатывался, как прибор начального уровня для любительской лаборатории. Со слов Сергея, в основной своей массе радиолюбители даже 65 долларов считают верхней границей цены [Не только в Киеве. Насколько могу судить по собственным наблюдениям, в нашей стране сейчас большинство радиолюбителей - либо мужики старше 40, либо парни младше 20. У тех и других избытка денег обычно нет]. Соответственно, кто хотел предельно дешевый прибор, тот его и получил. Другой вопрос, чем приходится компенсировать дешевизну. На данный момент - невысокими входными параметрами, полный перечень которых приведен на упомянутых сайтах, и набором мелких недочетов, о которых чуть позже. Впрочем, для прибора начального уровня частоты дискретизации 200 кГц, разрядности АЦП 10 бит и диапазона входных напряжений ±20 вольт, на мой взгляд, достаточно.
Несмотря на вполне приличную картинку внешнего вида, помещенную на сайте производителя, оставалось опасение получить изделие, собранное на коленке. Нормальная розничная упаковка несколько развеяла сомнения, но прибор я первым делом разобрал. Боялся зря - внутри оказалась обычная по современным технологическим меркам плата с SMD компонентами. Её можно было бы сделать еще меньше, но нужды особой нет. И без того корпус чуть меньше пачки сигарет, отчего два входных разъема едва уместились на торце. Практически сразу с разъемов, которыми подключаются щупы, свалились резиновые чехольчики, а провода болтаются в обжимке. Сложно винить в этом производителя - щупы как раз китайские и предельно дешевые (по заявкам трудящихся!). Нормальные щупы стоят немного дешевле остального устройства. Диалектика…
Аппаратная часть осциллографа основана на микроконтроллере C8051F320, имеющем встроенный АЦП и поддержку протокола USB. К моменту разработки схемы это был весьма передовой кристалл, но сейчас доступны более совершенные микроконтроллеры. Ожидается, что следующая аппаратная версия будет на связке из популярного контроллера Cypress или SiLabs плюс отдельные быстрые АЦП, что позволит поднять частоту дискретизации до 50-100 МГц и увеличить число каналов. Следовательно, характеристики прибора значительно улучшатся.
Кроме снятия осциллограмм по двум каналам, устройство работает как логический анализатор (8 или 16 входов) и логический генератор (8 выходов). Здесь функциональность аппаратной части заканчивается и в дело вступает программная оболочка, запускаемая на «большом» компьютере. Оболочка имеет несколько режимов, переключаемых закладками. Забегая вперед, скажу: перечень функций настолько обширен, что для подробного пересказа не хватит объема статьи. Интерфейс программы интуитивно понятен и продуман. Практически все органы управления снабжены подсказками. Во всяком случае, у человека знакомого с «железными» радиотехническими приборами трудности вряд ли возникнут. Результаты любых измерений можно сохранить как в виде файла данных, так и в виде графического растрового или векторного файла.
На режиме осциллографа останавливаться не буду, он вполне обычен и честно выполняет свою работу. Отдельно выделю возможность наложения произвольного входного фильтра, характеристику которого можно настраивать в окне специального редактора. В режиме анализатора спектра возможно вычисление коэффициента нелинейных искажений и наложение экранных функций БПФ: Хамминга, Ханнинга, Блэкмана и Блэкмана-Харриса. Отдельной закладкой реализован режим самописца для анализа длительных медленно меняющихся сигналов, длительность записи до 24 часов. Здесь я сразу отметил отсутствие возможности вычисления площади сигнала под кривой. Это опция нужная, с ее помощью, например, можно измерить энергию одиночного импульса (к режиму осциллографа тоже относится). Сергей обещал, что в следующей версии оболочки эта функция обязательно появится.
Следующий режим - логический анализатор и логический генератор, чрезвычайно удобные при отладке цифровых устройств. Аппаратная часть может использоваться в качестве 16-канального анализатора, либо 8-канального анализатора и 8-канального генератора. При этом выходные сигналы генератора можно задать как таблично, так и при помощи визуального редактора, буквально перетаскивая мышкой фронты импульсов по оси времени. Реализован поиск заданных последовательностей, синхронизация по заданному импульсу и прочие нужные опции. Особо следует отметить такую замечательную функцию программы, как анализатор протоколов обмена. На данный момент доступен анализатор протоколов UART, SPI, I2C и 1-Wire. Вы подключаете линии логического анализатора к шине анализируемого устройства и после запуска сканирования получаете расшифрованный протокол обмена, где показано все - команды, данные, адреса и т.п. В силу своей испорченности могу предположить, что эта функция полезна не только при отладке собственных схем, но и при «обратной разработке» чужих. Кроме того, для интерфейса I2C реализован режим терминала, когда наш прибор может имитировать либо ведущее устройство шины, либо ведомое. Тоже очень удобно при разработке. Откровенно говоря, при тестировании устройства на реальной схеме, я почти не использовал осциллограф, сосредоточившись на функциях логического анализатора.
В последней версии оболочки добавлена закладка «Мотор-тестер». Это модифицированный вариант осциллографа с синхронизацией по первому цилиндру, предназначенный для диагностики систем зажигания карбюраторных двигателей (разумеется, большей частью отечественных). Компания «Трейд-М» занимается выпуском приборов для диагностики автомобилей, поэтому вполне закономерно позиционирует «USB осциллограф», как базовый для создания автомобильного измерительного комплекса. Действительно, в обычном автомобиле практически невозможно найти сигналы, с отображением которых не справился бы (при наличии соответствующих адаптеров) рассматриваемый прибор. Однако тут во мне замолкает инженер и просыпается маркетолог, которому искренне жаль все остальные замечательные возможности цифрового осциллографа, при таком смещении акцентов остающиеся в тени.
Теперь пришло время… нет, скорее не поругать за недостатки, а дружески пожурить. Про более мощную элементную базу мы уже говорили, переход на нее - дело времени. Стремление производителя снизить стоимость устройства балансирует на грани допустимого, причем основные претензии - к «обвесу» от сторонних производителей. Если сейчас лишь изредка встречаются нарекания на нестабильность работы устройства по причине низкого качества кабеля USB [Отмечено на сайте производителя], то при повышении скорости обмена однозначно придется задуматься о закупке более качественных кабелей. Уже упомянутые саморазбирающиеся BNC-разъемы тоже не украшают продукт, равно как и наклейки, отвалившиеся от сигнальных шлейфов анализатора на второй день. Сами шлейфы могли бы быть длиннее. Недостаточно фильтруется наводка от импульсного источника питания компьютера. Это проявляется в виде помехи на осциллограмме и паразитного пика на спектрограмме. Сомнительно выглядит идея вывести питающее напряжение от встроенного источника контроллера на один из щупов логического анализатора. Вероятно, это для питания выносных адаптеров, но случайная подача встречного напряжения на щуп однозначно погубит прибор, одновременно аннулируя гарантию.
Оболочка производит впечатление несколько тяжеловесной и временами неповоротливой. При переключении входного делителя или частоты развертки во время циклических измерений, она впадает в ступор на пару-тройку секунд, загружая процессор на 100%. Причина этого недостатка разработчику известна и будет устранена в следующих версиях. Файл помощи порадовал подробностью и наглядностью, однако, не в обиду Сергею, наполнен опечатками и профессиональными жаргонизмами. Можете считать, что я придираюсь к мелочам, но в серьезном проекте таким недочетам не место.
На сайте «Трейд-М» весьма запутанно описан процесс оплаты покупки и расчета окончательной стоимости (разве это должен делать покупатель?). Читая инструкции, невольно чувствуешь себя Юстасом, переводящим Штирлицу деньги на подкуп Гитлера. Когда при помощи несложного PHP-скрипта генерируется заполненный бланк Сбербанка ПД-4, который можно напечатать и отнести в ближайшую сберкассу, для массового потребителя это намного удобнее.
На момент написания этих слов я жду из Германии посылку с другим USB осциллографом, под названием «USBscope50». Результаты испытаний и сравнительные выводы незамедлительно изложу во второй части.