Некоторое время назад я опубликовал описание простой конструкции теплового датчика скорости воздушного потока на основе самоподогревающейся транзисторной пары Дарлингтона [1]. Датчик получился простым, чувствительным и твердотельным, но имеет радикально нелинейную реакцию на скорость потока, как показано на Рисунке 1.
![]() |
|
Рисунок 1. | Зависимость VOUT теплового датчика от скорости воздушного потока очень нелинейна. |
Ветеран конструкторских идей Джордан Димитров предложил элегантное численное решение проблемы, которое делает конечный результат почти идеально линейным. Он подробно описывает это в статье «Правильный подбор функции линеаризует анемометр на самоподогревающемся транзисторе с погрешностью менее 0.2%» [2].
Однако следствием выполнения линеаризации в цифровой области после аналого-цифрового преобразования является значительное увеличение требуемого разрешения АЦП, например, с 11 до 15 бит, и вот почему…
Для получения линейного сигнала скорости воздушного потока от 0 до 2000 pm (футов в минуту), с точностью до 1 fpm потребуется разрешение АЦП 1 к 2000, то есть 11 бит. Но рассмотрение кривой на Рисунке 1 показывает, что, хотя полный диапазон сигнала воздушной скорости составляет 5 В, изменение сигнала, связанное с увеличением воздушной скорости с 1999 fpm до 2000 fpm, составляет всего 0.2 мВ. Таким образом, чтобы сохранить масштаб первого при разрешении второго, необходимо минимальное разрешение АЦП:
1 к 5/0.0002 = 1 к 25,000 = 14.6 бит.
15-битные АЦП (и более высокого разрешения) не являются ни редкими, ни особенно дорогими, но обычно они не входят в состав внутренней периферии микроконтроллеров, как это упоминалось в статье г-на Димитрова. Таким образом, кажется правдоподобным, что создание АЦП с разрешением, адекватным его конструкции, может быть связано со значительными затратами. Я задался вопросом, какие могут существовать альтернативы.
Далее описана конструкция простого и дешевого АЦП высокого разрешения, построенного на основе старого, недорогого и широко доступного друга – микросхемы аналогового таймера 555.
Схема изображена на Рисунке 2.
Обработка сигнала начинается с того, что суммирующая цепь R2, R3, U1 объединяет входной сигнал от 0 до 5 В с прецизионным опорным сигналом 2.5 В микросхемы U1 для получения напряжения:
Напряжение V1 накапливается на конденсаторе C1 между циклами преобразования с постоянной времени:
Таким образом, для 16-битной точности требуется минимальное время установления:
Затем можно запустить фактический цикл преобразования, подав импульс команды ПРЕОБРАЗОВАНИЕ (амплитудой более 2.5 В и длительностью более 1 микросекунды) на вывод 6 THR (порог) микросхемы 555, как показано на Рисунке 3.
![]() |
|
Рисунок 3. | Цикл аналого-цифрового преобразования начинается с подачи на вход THR импульса ПРЕОБРАЗОВАНИЕ, который запускает на выходе OUT импульс длительностью TOUT = ln(V1/1.25 В)R1C1. |
Импульс на выходе OUT (низкий уровень) начинается с нарастающего фронта импульса ПРЕОБРАЗОВАНИЕ и совпадает с появлением на выводе 7 DCH (разряд) микросхемы 555 нулевого напряжения, инициирующего разряд конденсатора C1 от напряжения V1 до напряжения срабатывания таймера (VTRG = VU1/2 = 1.25 В) на выводе 7. (VTRG – напряжение на выводе 2 таймера, VU1 – опорное напряжение на катоде микросхемы U1). Длительность разряда конденсатора C1 и время TOUT, накапливаемые в цифровом виде (достаточно 16-разрядного счетчика с разрешением 1 мкс) подходящим микроконтроллером, определяются следующим образом:
По окончании импульса TOUT вывод DCH «отпускает» конденсатор, позволяя ему начать перезарядку, и результат преобразования
N = 1 МГц · TOUT
становится доступен для расчета линеаризации. Математика для декодирования и восстановления VIN выглядит следующим образом:
Последнее слово. Возможно, вы задаетесь вопросом. Ранее я говорил, что для количественного определения дельты VIN между 1999 и 2000 fpm потребуется разрешение 1 часть к 25000 или 14.6 бит. Так что же это за штука такая – 42850 = 15.4 бита?
Вопрос о числе 42850 возникает из-за того, что мгновенный наклон (скорость изменения dV/dT) кривой разряда конденсатора C1 пропорционален падению напряжения на резисторе R1 и, следовательно, току через него. Для максимального входного сигнала VIN = 5 В этот параметр изменяется в 3 раза с V1 = 3.75 В и 3.75 мкА в начале цикла преобразования до всего лишь 1.25 В и 1.25 мкА в конце. Это увеличение dV/dT вызывает пропорциональное, но противоположное изменение разрешения. Следовательно, для достижения желаемого разрешения 25000:1 при VIN = 5 В необходимо более высокое среднее разрешение.
Необходимое повышение коэффициента разрешения равно квадратному корню из 3, т.е. 1.732… Число 42850/25000 = 1.714 является грубым, но адекватным приближением к этому значению.
Ссылки
- Stephen Woodward. Нелинейности измерителя скорости воздушного потока и ПНЧ компенсируют друг друга
- Jordan Dimitrov. Правильный подбор функции линеаризует анемометр на самоподогревающемся транзисторе с погрешностью менее 0.2%