Когда впервые сталкиваешься с индуктивными датчиками положения, выполненными прямо на текстолите печатной платы, поначалу кажется, что это просто очередная вариация давно известных резольверов. И отчасти такое впечатление верно. Физический принцип, лежащий в основе, действительно роднит их с классическими синусно-косинусными вращающимися трансформаторами, где неподвижные обмотки взаимодействуют с подвижным ротором. Однако копнешь чуть глубже — и понимаешь, что перед тобой совершенно иной мир высокочастотных сигналов, требующий пересмотра привычных подходов к обработке.
Главный сюрприз, который преподносят эти устройства, — рабочие частоты. Если традиционные автомобильные резольверы спокойно функционируют в диапазоне от единиц до десятков килогерц, то их «плоские» наследники требуют возбуждения на частотах порядка двух-пяти мегагерц. Именно этот скачок на два порядка превращает вроде бы знакомую задачу декодирования в нетривиальный инженерный вызов. Мои прежние наработки, где я использовал связку ЦАП и АЦП микроконтроллера STM32 для генерации возбуждающего сигнала и синхронной демодуляции, оказались практически неприменимы. Слишком медленно, слишком грубо для мегагерцового диапазона. Пришлось признать, что простое масштабирование старого решения не сработает, и начать поиск принципиально иных путей.
Аналоговый путь: умножение до оцифровки
Первый и, пожалуй, самый прямолинейный метод, который приходит на ум при взгляде на проблему, — это перенос обработки в аналоговую область. Идея изящна в своей простоте: зачем мучить цифровую часть непосильной скоростью, если можно выполнить ключевую операцию еще до того, как сигнал попадет в АЦП? Речь идет об аналоговом перемножении. Мы берем наш опорный сигнал возбуждения Tx и умножаем его на принятые с обмоток сигналы Rx-cos и Rx-sin. В результате этой математической операции высокочастотная несущая исчезает, а на выходе остается низкочастотная огибающая, которая как раз и содержит заветную информацию об угловом положении мишени. После такого преобразования оцифровать сигнал можно любым, даже самым заурядным АЦП, а угол вычислить через функцию арктангенса двух аргументов — atan2.
На бумаге все выглядит безупречно, и ряд компаний уже предлагают готовые интегральные решения, реализующие эту схему «в кремнии». Но как только начинаешь прикидывать собственный путь, возникает дилемма. Можно пойти по пути наименьшего сопротивления и выбрать специализированную микросхему аналогового демодулятора, полностью доверившись чужой разработке. Это самое простое решение. Однако исследовательский зуд и желание полностью контролировать процесс заставляют рассматривать и альтернативы. Например, построить аналоговый умножитель на дискретных компонентах или использовать готовый высокочастотный перемножитель в отдельном корпусе, такой как AD835. Каждый из этих вариантов имеет свою цену — в прямом и переносном смысле, — и заставляет балансировать между сложностью схемотехники, стоимостью компонентов и конечной точностью измерений.
Цифровой захват и поиск лазейки
Другой подход, который я не мог обойти вниманием, — это синхронная цифровая демодуляция. Суть ее в том, чтобы оцифровывать принятый сигнал не абы когда, а в строго определенные моменты времени, идеально синхронизированные с максимумами волны возбуждения. Если удается «поймать» пик сигнала, то дальнейшая обработка значительно упрощается. Но здесь в игру вступает суровое требование к скорости аналого-цифрового преобразователя. Чтобы корректно работать с сигналами частотой до пяти мегагерц, АЦП должен обладать временем выборки как минимум на порядок меньшим, то есть быть способным делать десятки миллионов выборок в секунду. Это уже совсем другая лига контроллеров и совсем другой бюджет проекта.
Именно в этот момент размышлений у меня и родилась идея, которую я для себя называю «небольшой лазейкой». Мне очень хотелось добиться результата, используя самые простые и доступные компоненты, а не городить сложный аналоговый тракт или покупать дорогой высокоскоростной МК. Что, если попробовать обмануть систему и скрестить медленный, встроенный практически в любой микроконтроллер АЦП с быстрым внешним аналоговым ключом? Концепция заключается в использовании устройства выборки и хранения, построенного буквально на одном MOSFET-транзисторе. Этот крошечный элемент, управляемый тем же микроконтроллером, что формирует и сигнал Tx, способен на короткое мгновение «защелкнуть» текущее значение высокочастотного сигнала Rx и сохранить его на конденсаторе. А уже этот статичный, замерший во времени уровень напряжения можно спокойно, никуда не торопясь, оцифровать медленным АЦП со скоростью один-два мегавыборки в секунду.
Вся прелесть замысла в полной синхронности. Один и тот же таймер микроконтроллера может генерировать ШИМ-сигнал для возбуждения датчика на частоте в несколько мегагерц и одновременно с этим выдавать стробирующие импульсы на затвор MOSFET-ключа в моменты пиковых значений Rx. Конечно, я отдаю себе отчет, что такая архитектура не позволит получать данные о положении с космической скоростью. Частота обновления угла будет ограничена временем, необходимым для полного цикла захвата и преобразования. Но для огромного количества практических применений, где не требуется отслеживать положение на запредельных оборотах, этого окажется более чем достаточно. Это компромисс между скоростью, сложностью и стоимостью, который кажется мне крайне привлекательным.
Взгляд в будущее индуктивных измерений
Размышляя над всеми этими схемотехническими ухищрениями, невольно задумываешься о том, какое будущее ждет эту технологию. Отрадно видеть, что мои изыскания идут в русле мировых тенденций. Например, компания Renesas уже активно продвигает подобные индуктивные датчики на печатных платах в качестве прямой и более технологичной замены традиционным системам позиционирования ротора в автомобильной промышленности. А это, как известно, рынок с колоссальными объемами. Когда представляешь, что крошечная катушка на текстолите может заменить громоздкий и дорогой резольвер в электромобиле или гибридном авто, становится понятно, что потенциал у этой технологии поистине огромен. И пусть путь к идеальному декодеру еще не пройден до конца, сам процесс поиска элегантного и экономичного решения дарит ни с чем не сравнимое удовольствие от инженерного творчества.
В конечном счете, стремление сделать сложное простым, не потеряв при этом в функциональности, и есть главный двигатель прогресса в электронике. Будь то ремонт современного гаджета или проектирование измерительной системы с нуля, везде прослеживается одна и та же логика: найти наименее затратный и наиболее надежный путь к цели. И наблюдать, как из сочетания простого ШИМ-таймера, одного транзистора и встроенного АЦП рождается устройство, способное с высокой точностью определять положение, — это ли не маленькое инженерное чудо?