Прецизионное измерение температуры в промышленных системах контроля
Датчик температуры является составной частью любой промышленной системы контроля. В статье описывается, как создать систему прецизионного измерения температуры с помощью термодатчиков, диодов, термисторов и термопар. Мы обсудим, на что следует обратить внимание, проектируя такую систему.
Прежде всего, для реализации возможности эффективного и точного измерения температуры следует выбрать правильные датчики, а также схемы формирования сигнала и его оцифровки. Прежде чем перейти к рассмотрению системы измерения температуры, давайте рассмотрим преимущества и недостатки каждого из часто употребляемых температурных датчиков.
Термопары
Для измерения температуры с помощью термопары используются два проводника из разнородных материалов, соединенных на одном конце и образующих часть устройства. В результате разных температур между точкой соединения (горячим спаем) и другими точками (холодным спаем) возникает ЭДС, которую можно измерить с помощью соответствующей цепи. На рисунке 1 показана схема термопары.
Рис. 1. Исходная схема термопары
Фактическое напряжение, генерируемое термопарой, зависит от температуры и типа металлов, входящих в состав этого устройства. Диапазоны чувствительности и рабочей температуры термопары также зависят от сплавов, которые классифицируются следующим образом: тип В (платина/родий), тип J (железо/константан) и тип К (хромель/алюмель). Тип термопары выбирается с учетом требований конкретного приложения.
К основным преимуществам термопары относятся ее прочность, широкий диапазон рабочей температуры (–270…3 000°С), быстрое срабатывание, исполнение в нескольких типах корпусов и низкая стоимость. К числу недостатков можно отнести невысокую точность и большой шум.
Термодатчики
Работа термодатчика основана на принципе изменения электрического сопротивления металла при изменении его температуры. Каждый металл однозначно характеризуется собственным удельным сопротивлением, которое прямо пропорционально длине проводника и обратно пропорционально поперечной площади его сечения.
Выбор металла для создания термодатчика определяет точность измерения температуры. В термодатчиках используются платина, никель или медь, причем с помощью платины достигаются наиболее точные и надежные измерения. Изготовленные из нее датчики также менее восприимчивы загрязнению окружающей среды, что влияет на их стабильность и воспроизводимость измерений. Широкий температурный диапазон (–250…900°С), высокая точность и линейная характеристика — главные преимущества термодатчиков. К числу их ограничений можно отнести высокую стоимость и медленное срабатывание.
Термисторы
Как и термодатчики, термисторы работают по тому же принципу изменения сопротивления с температурой. Однако у термисторов, как правило, отрицательный температурный коэффициент. Основным преимуществом термисторов является их низкая стоимость и достаточно хорошая точность, а недостатком — небольшой температурный диапазон и нелинейность. Однако учитывая, что многие современные микроконтроллеры оснащены встроенной флэш-памятью, для частичной компенсации этого недостатка используется справочная таблица. При измерении температуры в диапазоне –100…300°С термисторы обеспечивают надежные и точные показания.
Системы измерения температуры
Во всех системах контроля температуры датчик преобразует ее в электрический сигнал, который затем формируется и поступает в АЦП. Системе также требуются внешние устройства связи для интерфейса с другими системами и обеспечения обратной связи, а также встроенная флэш-память для регистрации полученных значений и дисплей. На рисунке 2 представлена базовая блок-схема системы измерения температуры.
Рис. 2. Блок-схема системы измерения температуры
Несмотря на то, что на рисунке 2 сигнал подвергается обработке перед АЦП, может понадобиться его последующая обработка в зависимости от того, какая система — аналоговая или цифровая. Суммарная точность зависит от шума, напряжения смещения и отклонения коэффициента усиления от идеального значения из-за цепи предварительной обработки сигнала и АЦП. В системах промышленной автоматизации используется сбор данных о температуре с удаленных узлов в реальном времени. Эти системы поддерживают протоколы последовательной связи UART и I2C для передачи данных в главный контроллер.
Повышение точности термопары
Термопары наиболее широко применяются в системах промышленной автоматизации за счет очень большого диапазона рабочих температур. При этом предполагается, что температура холодного спая в точности равна 0°С. Однако в реальных приложениях такая температура недостижима. Для точного измерения требуется метод компенсации холодного спая.
В этом методе система для точного измерения температуры оснащается дополнительным термодатчиком, который устанавливается на точку холодного спая. Наиболее часто применяемым датчиком в таких случаях является термистор, т.к. у него низкая стоимость и достаточно широкий диапазон рабочих температур. Для измерения напряжения с помощью этого метода прежде всего определяется температура холодного спая, а затем — ЭДС термопары. Суммарная величина ЭДС и напряжения холодного спая определяет соответствующую искомую температуру.
По той причине, что ЭДС термопары составляет всего несколько микровольт, измерения с ее помощью чувствительны к шуму. Кроме того, прежде чем сигнал поступит в АЦП, его необходимо усилить, за счет чего возникают шум и напряжение смещения. Чтобы устранить НЧ-шум и смещение на этапе формирования сигнала, в прецизионном измерении используется метод коррелированной двойной дискретизации (Correlated Double Sampling, CDS).
АЦП работает как НЧ-фильтр, отсекая ВЧ-шум. Однако фильтр с бесконечной импульсной характеристикой (БИХ) на выходе АЦП позволит далее ослабить шум в полосе пропускания АЦП. Предлагаемые на рынке контроллеры смешанного сигнала оснащены цифровыми фильтрами, которые выполняют фильтрацию аппаратными, а не программными методами и не требуют поддержки ЦП. На рисунке 3 показана схема системы контроля температуры на основе термопары с использованием устройств PSoC3 и PSoC5 от компании Cypress Semiconductors. Эти устройства оснащены встроенным 20-разрядным АЦП DelSig, буфером с программируемым усилением и блоком цифрового фильтра (DFB). Данная измерительная система обладает высокой степенью интеграции, однако ей может понадобиться дополнительный каскад усиления на основе имеющейся в схеме термопары. Эта функция обеспечивается инструментальным усилителем, который реализуется с помощью встроенных усилителей с программируемым усилением (PGA).
Точное измерение температуры в системах промышленного контроля
В системе (см. рис. 3) аналоговые мультиплексоры AMuxCDS и AMuxCDS_1 используются для переключения положительного входа АЦП между отрицательным и положительным выводами выходного сигнала датчика для реализации метода CDS. Возникает вопрос, как установить ноль шкалы для обеих цепей датчика, если используется один и тот же АЦП. У термистора и термопары разные диапазоны рабочего напряжения и, следовательно, им требуется разное усиление. АЦП в устройствах PSoC3 и PSoC5 имеет несколько конфигураций, которые можно изменять в процессе эксплуатации. При разных параметрах усиления смещение разное. Требуется, чтобы метод CDS был реализован для обеих цепей датчика, чтобы устранить смещение во всей цепочке аналогового сигнала. Мультиплексор AMux используется для выбора датчика между термопарой и термистором. DMA считывает значение АЦП и записывает его в блок цифровой фильтрации (DFB) для последующей фильтрации шума.
Рис. 3. Измерительная система с использованием термопары
Термодатчики и термисторы
Измерение температуры с помощью термодатчика и термистора требует измерения сопротивления, способ которого определяет точность системы. Для прецизионного измерения сигнала необходимо использовать дифференциальные входы, которые устраняют синфазный шум и обеспечивают чувствительность порядка мкВ (несимметричные входы позволяют добиться чувствительности величиной в несколько мВ). Рассмотрим два способа подключения вывода «–» АЦП в дифференциальном режиме (см. рис. 4).
Рис. 4. Два разных способа подключения вывода «–»
Схема, показанная в правой части рисунка 4, лучше схемы слева. Сигнал на вывод «–» в правой схеме непосредственно подается с резисторного делителя. Цепь справа уменьшает шум в измеренном сигнале и ошибки, связанные с определенным сопротивлением проводников платы и проводов.
Система измерения температуры на основе термистора представляет собой расширенную комбинацию схем, представленных на рисунках 3 и 4. Рассмотрим измерительную систему с использованием термодатчика. Падение напряжения на нем измеряется, что и на термисторе, тем же способом, известном под названием двухпроводного метода. Если термодатчик и измерительная система соединены с помощью достаточно длинного кабеля, его сопротивление становится главным источником ошибки измерения. Она возникает в том случае, если в качестве схемы возбуждения применяется источник напряжения. На рисунке 5 показана разница между методами 2- и 4-проводного измерения.
Рис. 5. Схемы 2- и 4-проводного соединения
В 2-проводной схеме сопротивление термодатчика (Rтд) измеряется в соответствии с уравнением (1). Однако видно, что существует и другое сопротивление — Rпр, которое приводит к ошибке измерений:
Rтд = (Rоп + Rпр)∙(V2 – V1)/(V – V2) (1)
С другой стороны, сопротивление Rтд в 4-проводной схеме измерения определяется уравнением (2). Поскольку у измерительной системы очень высокий входной импеданс, по ней не протекает ток и потому наличие последовательных сопротивлений между каскадами резисторного делителя и измерительной системой никак не сказывается на точности измерений. Уравнение (2) получается путем приравнивания тока, протекающего через Rоп и сопротивление Rтд:
Rтд = Rоп ∙ (V2 – V1)/(V4 – V3) (2)
Исходя из этих уравнений, можно сделать вывод, что точность измерений зависит от точности измерения Rоп. Чтобы решить эту проблему, термодатчики возбуждаются с помощью источника постоянного тока, а не напряжения. При этом падение напряжения на Rтд зависит только от его сопротивления и величины постоянного тока. Однако точность измерений с использованием источника постоянного тока зависит от его точности. Для прецизионных измерений ток ЦАП должен быть откалиброван. На рисунке 6 показана возможная схема измерительной системы на основе термодатчика и устройств PSoC3 и PSoC5. Эти устройства имеют встроенный источник тока, который устраняет необходимость в другой аналоговой цепи на базе операционного усилителя. Кроме того, эти устройства имеют встроенную цепь, с помощью которой выполняется калибровка IDAC.
Выводы
Для построения прецизионных систем измерения температуры необходимо учесть следующие соображения.
1. Каждое конкретное приложение диктует использование определенного датчика.
2. Метод коррелированной двойной дискретизации позволяет выполнить точные измерения с помощью датчика и избежать ошибок путем устранения НЧ-шума.
3. В системах на основе термопары для устранения шума используются фильтры.
4. Схема возбуждения током позволяет повысить точность системы, устранив из цепи неточно измеренное сопротивление Rоп.
5. При использовании источника напряжения в качестве схемы возбуждения необходима 4-проводная система измерений.
6. Суммарная точность системы определяется точностью и разрешением цепи сигнала. По этим причинам рекомендуется использовать дельта-сигма АЦП высокой точности и разрешения.
7. Для того чтобы при изменении требованиям к проекту не происходило ухудшение точности измерений, рекомендуется использовать комплект базовых схем обработки смешанных сигналов.
Блок измерения температуры является важной частью многих промышленных или встраиваемых систем. Мы обсудили вопросы прецизионного измерения и методы повышения точности, которые в равной мере можно применять и в других интерфейсах датчиковых цепей.
Ответственный подход к измерению относительной влажности
Этой статьей мы продолжаем рассказывать о датчиках от швейцарской компании IST. Не так давно были опубликованы посты о датчиках электрической проводимости воды и датчиках скорости потока жидкостей и газов, сегодня очередь дошла до относительной влажности.
Статья посвящена высокоточным датчикам серии HYT. Приводится описание устройства датчика и чувствительного элемента, подробно разбирается порядок сопряжения датчика с микроконтроллером, приводится пример разработки.
1. Обзор
Стандартные модели HYT — это три датчика для измерения температуры и относительной влажности, построенные на базе одного и того же чувствительного элемента, но выполненные в разных корпусах.
О других вариантах корпусировки поговорим ниже, а пока приведем основные характеристики датчиков HYT.
2. Чувствительный элемент
Как и большинство современных датчиков относительной влажности, датчики HYT имеют емкостный чувствительный элемент. Принципы работы преобразователей «влажность-емкость» и их преимущества описаны в огромном количестве источников, напомню главное.
Емкостный датчик представляет собой керамическую подложку, на которой последовательно располагаются нижний проводящий электрод, абсорбирующий влагу полимер и верхний электрод. Выходная характеристика преобразователя определяется типом полимера, а также его толщиной и площадью:
εo — Электрическая постоянная. Мне лень даже приводить её значение, суть в том что оно является константой εr — Диэлектрическая проницаемость полимера, изменяющаяся пропорционально количеству поглощенной влаги A — Площадь полимера d — Толщина полимера
В зависимости от назначения чувствительного элемента выпускаются преобразователи с различными характеристиками, выполненные на базе полимеров с различными параметрами.
Например, для метеозондов и некоторых других приложений важным требованием является высокое быстродействие. Сокращение времени отклика чувствительного элемента достигается за счет уменьшения толщины полимера, таким образом у датчика P14 Rapid обеспечивается время отклика менее 1.5 сек. Другой пример — датчики MK33, предназначенные для работы с маслами. Здесь за счет увеличения площади чувствительного элемента увеличивается крутизна выходной характеристики, а значит и разрешение датчика.
IST выпускает около десятка различных емкостных преобразователей. Интересующихся приглашаю пройти по ссылке на их обзор, а мы возвращаемся к цифровым датчикам HYT.
3. Структура датчиков HYT
Использование «голого» чувствительного элемента оправдано в очень немногих случаях. Как правило, проще и выгоднее использовать интегральный модуль, в котором помимо емкостного преобразователя уже предусмотрены датчик температуры, схемы термокомпенсации и обработки сигнала, а также цифровой или аналоговый интерфейс. Такие цифровые датчики имеют заводскую калибровку и не требуют дополнительной настройки.
Цифровые датчики температуры и относительной влажности производятся в разных ценовых сегментах. Датчик, подходящий под описание из предыдущего абзаца, может стоить и 2 доллара, и 150 долларов. Такая разница между дорогими и дешевыми датчиками объясняется тем, что цифровые датчики различаются не только точностью, быстродействием и повторяемостью результатов измерений, но и другими характеристиками, обеспечить которые не так просто. Это долговременная стабильность работы, возможность применения датчика при очень низкой или очень высокой влажности и устойчивость к воздействиям внешней среды. Чтобы понять, почему перечисленные характеристики оказывают большое влияние на стоимость компонента, обратимся к особенностям производства.
Одной из главных сложностей производства цифровых датчиков относительной влажности является несовместимость некоторых процессов производства емкостного чувствительного элемента и полупроводникового производства (создания КМОП-структуры, содержащей датчик температуры, схему обработки сигнала и т.п). Технологии не позволяют полностью сохранить характеристики емкостного преобразователя, если он выполнен не отдельно, а на той же подложке, что и полупроводниковая структура. Поэтому изготовление датчика, совмещающего емкостный элемент и цифровую схему, всегда подразумевает компромисс между стоимостью производства и характеристиками конечного изделия.
При производстве датчиков HYT емкостный SMD-преобразователь и интегральная схема изготавливаются отдельно друг от друга, отдельно тестируются, и только после этого устанавливаются на общей подложке и соединяются проводами.
За счет уменьшения взаимного влияния ИС и емкостного датчика, использования почти не поглощающих влагу материалов, золотых проводников, а также применения других мер по повышению качества, на цифровом модуле удается добиться точности, близкой к точности отдельного преобразователя «влажность-емкость».
4. Калибровка датчиков HYT
Подобные модификации мало влияют на цену и сроки поставки и, что особенно приятно, доступны для малотиражных изделий.
5. Корпус датчиков HYT
Приведем описание датчиков серии HYT.
Самый простой модуль — HYT 271 — имеет размер 5 на 10 мм и состоит из емкостного преобразователя, залитой «кляксой» интегральной схемы и дополнительных конденсаторов. В отсутствии защитного фильтра достигаются максимальное быстродействие и минимальная цена.
Цифровой датчик HYT 221 имеет ту же начинку, что и HYT 271, но покрыт защитным фильтром, который позволяет использовать датчик в том числе при наличии брызг воды.
Датчик HYT 939 также отличается только типом защитного фильтра — компоненты помещаются под круглый металлический корпус, на верхней стороне которого расположено закрытое мембраной отверстие. Для заказа доступен модуль HYT 939, устойчивый к давлению до 16 бар.
В соответствии с требованиями заказчика могут быть изменены и структура, и габаритные размеры датчика. Вместо стандартного интерфейса I2C датчик может быть оснащен 5-выводным SPI, а дополнительно к цифровому интерфейсу могут быть добавлены дополнительные квазианалоговые линии. Выводы датчика могут быть удлинены, оснащены коннектором. Производятся датчики в специализированных корпусах, например как на фото.
Заказ датчиков с модифицированными размерами или нестандартной конфигурацией возможен в том числе для мелкосерийного производства.
4. Порядок сопряжения датчика и управляющего контроллера
Стандартным интерфейсом подключения датчика HYT к управляющему микроконтроллеру является шина I2C. Контроллер является мастером, датчик — ведомым узлом.
В аппаратных характеристиках интерфейса датчика нет ничего примечательного — поддерживаются скорости от 100 до 400 кГц и стандартный 7-битный адрес на шине. Адрес датчика по умолчанию — 0x28, адрес может быть изменен на значение от 0x00 до 0x7F. Данные передаются в режиме MSB, т.е. сначала идут старшие биты.
Не вижу смысла приводить описание порядка работы самой шины I2C. Также упускаю описание типовой схемы включения, требований модуля HYT по таймированию на I2C, описание процедуры смены адреса датчика. Всё это можно найти в википедии и документации.
Остановимся на процедуре сбора данных с датчика HYT — последовательности из двух команд для управления модулем. В отсутствии запросов от микроконтроллера, датчик находится в режиме сна. По приходу команды ‚Measuring Request‘ (MR) он просыпается, начинает цикл измерений и формирует посылку с данными для управляющего контроллера. Подготовка данных занимает от 60 до 100 мс, после этого на датчик должна поступить команда ‚Data Fetch‘ (DF), по которой данные из выходного регистра датчика передаются на микроконтроллер.
Команда ‚Measuring Request‘ не подразумевает ни чтения, ни записи данных. Команда содержит только из заголовочного пакета — адреса ведомого узла и бита RW, выставленного в «0», т.е. на запись.
Команда ‚Data Fetch‘ (DF) служит для чтения данных. В заголовочном файле содержится адрес датчика и бит RW, установленный в «1», т.е. на чтение.
Максимальное количество байт, которые должны быть приняты на микроконтроллере — четыре. Первые два байта содержат данные об относительной влажности, третий и четвертый — о температуре.
Микроконтроллер может запросить только два первых байта (только данные о влажности) или три первых байта (данные о влажности и старшие биты значения температуры).
Обработка принятой посылки состоит в вычислении значений температуры и относительной влажности из входных данных. Сначала маскируются статусные биты, далее из полученных данных вычисляются абсолютные значения температуры и относительной влажности:
От теории к практике. Рассмотрим задачу опроса датчика HYT с отладочной платы EFM32ZG-STK3200 от Silicon Labs, подробнейшее описание которой приводилось в одной из предыдущих статей.
В этот раз на отладочной плате нам понадобятся встроенный ЖК-дисплей, механическая кнопка и 20-контактный разъем, на котором доступны сигналы I2C, питание и земля.
Подключаем линии в соответствии с распиновкой датчика и разъема платы.
Для работы шины I2C на обеих её линиях должны быть предусмотрены подтягивающие резисторы. В документации на датчик HYT указаны номиналы 2.2 кОм, и превоначально схема была собрана с использованием двух отдельных сопротивлений. Однако в процессе отладки выяснилось, что для опроса датчика, подключенного на короткие выводы, достаточно использовать встроенные подтягивающие резисторы микроконтроллера EFM32. Их номинал равен 40 кОм.
В данном случае датчик питается от линии питания МК (3.3 В), но допустимы и пятивольтовые уровни.
Для работы с отладочной платой EFM32ZG-STK3200 используется среда Simplicity Studio — платформа, содержащая IDE, примеры программ, документацию и различные утилиты для разработки приложения. Её описание также можно найти в предыдущих статьях, здесь я просто скажу что это бесплатная программа, которую SiLabs распространяет для работы с SiLabs-овскими же контроллерами.
При создании программы используется готовый драйвер I2C от SiLabs и библиотека glib, предназначенная для работы со встроенным на плану ЖКИ. Для коммуникации с дисплеем используются интерфейс SPI и часы реального времени, однако работа с этим модулями скрыта в недрах glib.
Программа реализует простейший аглоритм опроса датчика HYT — по нажатию на кнопку PB1 мы получаем от датчика данные о температуре и влажности, пересчитывам полученные значения в градусы Цельсия и проценты и выводим их на экран. В случае, если при приёме данных произвошла ошибка, выводится соответствующее сообщение.
Полные исходники программы доступны наgithub. Ниже разберем лишь ту часть программы, которая имеет отношение к опросу датчика, т.е. к коммуникации по I2C. В основном используются стандартные функции библиотек от Silicon Labs — основной пакет em_i2c и его надстройка i2cspm.
Для коммуникации с датчиком, т.е. реализации команд Measuring Request и Data Fetch, служат одноименные функции.
Каждая из них содержит операции по формированию пакета для I2C и команду отправки пакета. Для формирования пакета используется структура типа I2C_TransferSeq_TypeDef, содержащая адрес датчика, значение бита RW, и формат регистров для приема (buf[0]) и передачи (buf[1]) данных по I2C.
Функция performDFCommand, помимо указания на прием четырехбайтного пакета с записью данных в массив I2CdataToRead, содержит алгоритм обработки принятой посылки. В результате преобразования в переменные temperature и humidity записываются искомые значения.
При работе с готовыми библиотечными функциями для I2C от SiLabs существует два основных способа испортить себе жизнь:
Способ 1: Посчитать, что в HYT_ADDR следует записывать 0x28, т.е. указанный в документации адрес датчика. Напомню, что адрес на шине I2C — это семь бит, т.е. под 0x28 в документации подразумевается 010 1000. Логично было бы дополнить это число старшим битом «0» и всё ещё имееть 0x28, однако библиотечная функция почему-то считает, что адресом являются не младшие, а старшие 7 бит. Таки образом, вместо следует указывать или
Способ 2: Посчитать, что I2C_FLAG_READ — это «0», а I2C_FLAG_WRITE — это «1», что предусмотрено протоколом шины. То есть на самом деле всё так и есть, в заголовочном байте посылки I2C предусмотрен один-единственный бит RW, который выставляется в «0» для записи данных и в «1» для чтения данных. Однако в недрах библиотеки em_lib прячутся вот такие коварные дефайны: Так что не стоит при формировании структуры I2C_TransferSeq_TypeDef выставлять нули и единицы самостоятельно.
В остальном претензий к em_i2c и другим пакетам em_*** не возникало.
Между вызовами функций performMRCommand() и performDFCommand() должна быть предусмотрена задержка, за которую датчик формирует посылку с результатами измерений.
Функцию ReceiveDataAndShowIt(), выполняющую опрос датчика и вывод результатов измерений, мы вызываем из обработчика прерываний, который приведен ниже.
Здесь важно отметить, что данная программа выполняет весьма тривиальную задачу. Для измерения температуры и влажности воздуха, которые почти не изменяются во времени, подойдет любой недорогой датчик.
Выдающиеся характеристики серии HYT гораздо лучше иллюстрируются в динамике. На приведенном ниже видео показано насколько быстро датчик HYT-271 откликается на изменение влажности воздуха.
Если вы имели честь когда-нибудь наблюдать с какой скоростью реагирует на изменения влажности условный DHT22, то, конечно, почувствуете разницу.