Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Industrial Internet of Things >> Встроенный

Достижение высокоточных измерений температуры с продвинутыми кремниевыми датчиками

Электронная промышленность требует всё более высокой точности, и температурное измерение не исключение. Существует множество решений для измерения температуры, каждое со своими преимуществами и недостатками. Кремниевые датчики температуры, будучи довольно линейными, никогда не обеспечивали точность других решений. Однако недавние достижения в кремниевом температурном измерении позволяют достичь высокого разрешения и точности с кремниевым решением.

Новый морозильник

Был март 2020 года, и Великобритания вот-вот вводила локдаун. Мир закупал еду на случай закрытия супермаркетов, будущее выглядело неопределенно. Затем морозильник в доме Брэмбл перестал работать. Со словами песни Кенни Роджерса «Ты выбрал прекрасное время, чтобы покинуть меня…» в голове, мы пошли искать замену онлайн.

Через несколько дней пришел наш новый морозильник, полностью с цифровым дисплеем температуры на передней панели, как того желала миссис Брэмбл. Рекомендуемая настройка — -18°C, и через час прибор достиг правильной температуры и был готов к загрузке едой. Я скептически относился к точности показаний, но не заботился, пока он морозит еду. Одна проблема: инженерный ум не знает покоя, и после дней немигающего уверенного цифрового показания, вызывающего меня своей уверенностью, я сдался. Мне пришлось проверить заявления о точности этого нового члена нашей кухни.

Датчики температуры

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

Термопары

Термопары обеспечивают недорогой, умеренно точный способ измерения очень высоких температур. Они опираются на напряжение, генерируемое между двумя соединительными спайками, каждая из которых сделана из разных металлов, удерживаемых при разных температурах, как открыл Томас Зебек в 1821 году. В случае термопары типа K (из сплавов Хромель и Алюмель) она выдает напряжение около 41 мкВ/°C и может использоваться для измерения температур свыше 1000°C. Тем не менее, эффект Зебека опирается на температурную разницу между двумя спайками, поэтому, пока «горячая» спайка измеряет температуру интереса, «холодная» спайка должна быть удерживаема при известной температуре. Иронично, но для измерения этой разницы температур на холодной спайке требуется другой датчик температуры, и такие детали, как AD8494, идеально подходят для этого. Поскольку термопары физически малы, у них низкая тепловая масса, поэтому они дают быстрый отклик на изменения температуры.

RTD (сопротивление термометры)

Для измерения умеренных температур (<500°C) промышленность широко использует сопротивление термометры (RTD). Эти устройства состоят из металлического элемента, демонстрирующего положительное изменение сопротивления с температурой, чаще всего платины. Действительно, датчик PT-100 — самый широко используемый RTD в промышленности, и он получает свое название от того, что сделан из платины (PT) и имеет сопротивление 100 Ом при 0°C. Хотя эти устройства не измеряют такие высокие температуры, как термопары, они высоколинейны и их показания повторяемы. PT100 требует точного тока питания, создавая точное падение напряжения на датчике, пропорциональное температуре. Сопротивление соединительных проводов PT100 создает ошибку в измерении сопротивления датчика, поэтому обычно используется четырехпроводная схема (Кельвина), в результате чего получаются 3- или 4-проводные датчики.

Термисторы

Если требуется недорогое решение и диапазон температур низкий, термистор часто достаточно. Эти устройства высоконелинейны, с характеристикой, основанной на уравнении Стайнхарта-Харта, дающей уменьшение сопротивления с ростом температуры. Преимущество термистора в том, что изменение сопротивления велико при малых изменениях температуры, поэтому можно достичь высокой точности несмотря на нелинейность. Термисторы также обладают быстрым тепловым откликом. Индивидуальные нелинейности термисторов хорошо определены, поэтому их можно компенсировать калибровкой, используя компоненты вроде LTC2986.

Диоды, диоды повсюду, но ни одного падения (Vbe) для поглощения…

Наконец, чтобы проверить правдивость нового члена домочадцев, я выбрал кремниевый датчик температуры. Они работают прямо из коробки, не требуют компенсации температуры холодной спайки или линеаризации, доступны с аналоговыми и цифровыми выходами и поставляются предварительно откалиброванными. Однако до недавнего времени они предлагали только умеренную точность. Хотя достаточно для индикации состояния электронного оборудования, они никогда не были достаточно точны для измерения, скажем, температуры тела, обычно требующей ±0.1°C (согласно стандарту ASTM E1112). Это изменилось с недавним выпуском кремниевых датчиков температуры ADT7422 и ADT7320, которые могут измерять с разрешениями ±0.1°C и ±0.2°C соответственно.

Кремниевый датчик температуры использует температурную зависимость база-эмиттерного напряжения Vbe транзистора, задаваемую уравнением Эберса-Молла, приближенно:

Достижение высокоточных измерений температуры с продвинутыми кремниевыми датчиками

где Ic — коллекторный ток, Is — обратный насыщающий ток транзистора, q — заряд электрона (1.602 x 10-19 Кл), k — постоянная Больцмана (1.38 x 10-23) и T — абсолютная температура.

Вышеприведенное выражение для коллекторного тока также верно для тока в диоде; так почему же каждая схема приложения использует транзистор, а не диод? В реальности ток в диоде также включает ток рекомбинации, возникающий при рекомбинации электронов с дырочными при прохождении через область выработки pn-перехода, и это представляет нелинейность тока диода по Vbe и температуре. Этот ток также появляется в биполярном транзисторе, но течет в базу транзистора, поэтому не появляется в коллекторном токе, следовательно, нелинейность намного меньше.

Преобразовывая вышеуказанное, получаем

Достижение высокоточных измерений температуры с продвинутыми кремниевыми датчиками

Is мало по сравнению с Ic, поэтому мы можем игнорировать член «1» в уравнении выше. Теперь мы видим, что Vbe меняется линейно согласно логарифмическому изменению Ic. Мы также видим, что если Ic и Is постоянны, то Vbe меняется линейно с температурой, так как k и q также постоянны. Легко заставить постоянный коллекторный ток течь через транзистор и измерить, как Vbe меняется с температурой.

Is связан с геометрией транзистора и имеет сильную зависимость от температуры. Как у многих кремниевых устройств, его значение удваивается с каждым повышением температуры на 10°C. Хотя эффект этого изменения тока снижен функцией ln, у нас все еще есть проблема: абсолютное значение Vbe меняется от транзистора к транзистору, поэтому нужна калибровка. Практические кремниевые датчики температуры используют два идентичных транзистора и загоняют коллекторный ток Ic в один и 10Ic в другой. Идентичные транзисторы и рациометрически точные токи легко реализовать в интегральной схеме, поэтому большинство кремниевых датчиков используют эту архитектуру. Логарифмическое изменение тока вызывает линейное изменение Vbe, и разница в Vbe затем измеряется.

Из вышеуказанного уравнения, для двух транзисторов удерживаемых при одной температуре, разница между их Vbe задается

Достижение высокоточных измерений температуры с продвинутыми кремниевыми датчиками

так как

Достижение высокоточных измерений температуры с продвинутыми кремниевыми датчиками

Мы видим, что

Достижение высокоточных измерений температуры с продвинутыми кремниевыми датчиками

Загоняя разные токи через каждый транзистор и измеряя разницу в Vbe, мы устранили нелинейный член Is, эффект разных абсолютных Vbe и все остальные нелинейные эффекты, связанные с геометрией транзистора. Поскольку k, q и ln10 все постоянны, изменение Vbe Прямо Пропорционально Абсолютной Температуре (PTAT). Для 10-кратной разницы токов разница в двух Vbe линейно меняется с температурой примерно на 198 мкВ/°C. Упрощенная схема для достижения этого показана на Рисунке 1.

Достижение высокоточных измерений температуры с продвинутыми кремниевыми датчиками
Рисунок 1. Базовая схема для измерения температуры.

Токи на Рисунке 1 должны быть тщательно выбраны. Если ток слишком высокий, значительный самонагрев и падения напряжения на внутренних сопротивлениях внутри транзистора исказят результат. Если ток слишком низкий, утеточные токи внутри транзистора добавят значительные ошибки.

Также стоит отметить, что уравнения выше относятся к коллекторному току транзистора, тогда как Рисунок 1 показывает загон постоянного эмиттерного тока в транзистор. Транзисторы могут быть спроектированы так, чтобы отношение коллекторного тока к эмиттерному было хорошо установлено (и близко к единице), поэтому коллекторный ток пропорционален эмиттерному.

Это только начало истории. Чтобы получить точность ±0.1°C с кремниевым датчиком температуры, нужна обширная характеристика и подстройка.

Это птица? Это самолет?

Нет, это супер-термометр. Да, они существуют. Неоткалиброванный кремниевый датчик температуры помещается в ванну с силиконовым маслом и нагревается до точной температуры, измеряемой супер-термометром. Эти устройства могут измерять с точностью лучше пяти десятичных знаков. Предохранители внутри датчика сгорают для настройки коэффициента усиления датчика температуры и таким образом линеаризации его выхода с использованием уравнения y = mx + C. Силиконовое масло обеспечивает очень равномерную температуру, поэтому многие устройства могут быть откалиброваны в одном цикле.

ADT7422 имеет точность ±0.1°C в диапазоне температур 25°C–50°C. Этот диапазон центрирован вокруг типичной температуры человеческого тела 38°C, что делает ADT7422 идеальным для точного мониторинга жизненных показателей. Для промышленных приложений ADT7320 откалиброван для точности ±0.2°C, но в более широком диапазоне -10°C–+85°C.

Достижение высокоточных измерений температуры с продвинутыми кремниевыми датчиками
Рисунок 2. ADT7422, установленный на печатной плате толщиной 0.8 мм

Калибровка кремниевого датчика температуры — не единственная проблема. Как и с экстремально точными опорными напряжениями, механические напряжения на кристалле могут испортить точность датчика, и термическое расширение печатной платы, выводимой рамы, пластиковой обвязки и открытых контактов все должны учитываться. Процесс пайки также добавляет свои проблемы. Процесс рефлоу-пайки повышает температуру детали до 260°C, заставляя пластиковую обвязку размягчаться и выводимую раму кристалла деформироваться, так что когда деталь остывает и пластик затвердевает, механическое напряжение застревает в кристалле. Инженеры Analog Devices потратили много человеко-месяцев тонких экспериментов, чтобы обнаружить, что толщина печатной платы 0.8 мм — идеальная «золотая середина», и точность ±0.1°C может быть достигнута даже после пайки.

Внутри программного обеспечения

Основная часть системного ПО занимается форматированием данных от ADT7320 и отображением их на ЖК-дисплее. Получение данных от ADT7320 тривиально. При инициализации процессора линии CS и SCLK устанавливаются в высокий уровень, а линия SCLK простаивает в высоком состоянии между преобразованиями. Линия CS затем переводится в низкий уровень для инициации транзакции данных. При SPI данные считываются в ADT7320 по нарастающему фронту SCLK и выдаются по спадающему. Код ниже детализирует рутину инициализации.

Для сброса последовательного интерфейса линия CS переводится в низкий уровень, линия DOUT — в высокий, и SCLK осциллирует 40 раз. Затем линия CS переводится в высокий уровень. Это загоняет 40 «единиц» в ADT7320, сбрасывая последовательный интерфейс. После сброса шины SPI нужна задержка не менее 500 мкс.

Следующий блок кода посылает командный байт ADT7320, сообщая, является ли транзакция чтением или записью и какой регистр адресовать. Строка

data = 0b00001000;

инструктирует ADT7320 записать в регистр 0x01. ADT7320 затем программируется на вывод данных с 16-битным разрешением строкой

data = 0b10000000;

Линия DOUT предустановлена в «0», старший бит байта данных опрашивается, и линия DOUT устанавливается в высокий уровень, если MSB — «1». Линия SCLK переводится в высокий уровень для затактирования данных в ADT7320.

void reset_adt7320(void) /* initialise ADT7320 */ { unsigned char n, data; /* reset the serial interface */ clearbit(PORTA, CS); setbit(PORTA, DOUT); for(n=40; n>0; n--) { clearbit(PORTA, SCLK); setbit(PORTA, SCLK); } setbit(PORTA, CS); delay_10ms(); /* must wait >500us after reset */ /* set to 16 bit mode */ clearbit(PORTA, CS); data = 0b00001000; /* clear bit 6 (write), reg #001 */ /* send command byte */ for(n=8; n>0; n--) { clearbit(PORTA, SCLK); clearbit(PORTA, DOUT); /* precondition DOUT */ if checkbit(data, (n-1)) { setbit(PORTA, DOUT); } setbit(PORTA, SCLK); /* clock data in on rising SCLK */ } data = 0b10000000; /* continuous conversion, 16 bits */ /* send data byte */ for(n=8; n>0; n--) { clearbit(PORTA, SCLK); clearbit(PORTA, DOUT); /* precondition DOUT */ if checkbit(data, (n-1)) { setbit(PORTA, DOUT); } setbit(PORTA, SCLK); } setbit(PORTA, CS); }

Вызов функции для получения данных температуры аналогичен, как показано ниже. Строка

data = 0b01010000;

говорит ADT7320 прочитать регистр 2 для 16-битных данных.

Код затем ждет не менее 240 мс для выполнения ADT7320 преобразования температуры. 16 бит данных температуры затем вытактиваются, затем линия CS устанавливается в высокий уровень.

 clearbit(PORTA, CS); /* data = command byte */ data = 0b01010000; /* read mode, register 2 */ /* read ADT7320 */ for(n=8; n>0; n--) { clearbit(PORTA, SCLK); clearbit(PORTA, DOUT); /* precondition DOUT */ if checkbit(data, (n-1)) { setbit(PORTA, DOUT); } setbit(PORTA, SCLK); } delay_150ms(); /* temperature conversion */ delay_150ms(); /* read temperature data */ for(n=16; n>0; n--) { clearbit(PORTA, SCLK); if checkbit(PORTA, DIN) { setbit(temp, (n-1)); } setbit(PORTA, SCLK); } setbit(PORTA, CS);

Полный набор кода доступен здесь.

Насколько точно холодны мои сосиски?

ADT7320 оставляли внутри морозильника около 30 минут, чтобы увидеть, при какой температуре установился наш новый приобретение.

Рисунок 3 показывает температуру морозильника -18.83°C.

Достижение высокоточных измерений температуры с продвинутыми кремниевыми датчиками
Рисунок 3. Температура морозильника -18.83°C

Я считал это впечатляюще точным, учитывая, что еда не требует хранения с такой точностью температуры. Затем я измерил температуру в моем офисе летним днем в Великобритании. 22.87°C, как показано на Рисунке 4.

Достижение высокоточных измерений температуры с продвинутыми кремниевыми датчиками
Рисунок 4. Температура моего офиса 22.87°C

Заключение

Кремниевые датчики температуры прошли долгий путь, став крайне точными, позволяя мониторинг жизненных показателей с высоким уровнем точности. Хотя технология внутри них основана на проверенных принципах, подстройка для достижения субградусной точности требует значительных усилий. Даже если этот уровень точности достигнут, механические напряжения и пайка могут легко стереть достижения, полученные часами калибровки.

ADT7320 и ADT7422 представляют вершину лет характеризации для достижения субградусной точности даже после пайки на печатную плату.

Ссылки

Huijsing, Johan and Michiel Pertijis. Precision Temperature Sensors in CMOS Technology. Springer, 2006.
Horowitz, Paul and Winfield Hill. The Art of Electronics. Cambridge University Press, April 2015.
Analog Circuit Design, Volume 2, Chapter 32. Linear Technology, December 2012.
AD590 datasheet. Analog Devices, Inc., January 2013.
ADT5912 data sheet (to be released). Analog Devices, Inc.

Встроенный

  1. Кремний: свойства, производство и рыночный обзор
  2. Полное руководство по типам датчиков и их схемам
  3. Infineon представляет высокоточные AMR угловые сенсоры для авто и промышленности
  4. ams освещает Sensors Expo 2019 передовой демонстрацией оптических сенсоров
  5. Новые сенсоры Maxim: снижение потребления, размера и повышение точности для носимых медицинских устройств
  6. IBASE запускает rugged COM Express модули ET875 и ET870 с поддержкой -40°C..+85°C для IoT и промышленности
  7. Экономичная карта температур помещений с дешевыми датчиками
  8. Подключение нескольких DS18B20 1-Wire датчиков к Raspberry Pi для точного мониторинга температуры
  9. Как считывать температуру с DS18B20 на Raspberry Pi 2
  10. Измерение температуры на Raspberry Pi с датчиками Maxim 1-Wire и мостом DS2482 I2C