Современная электроника №8/2019
ИНЖЕНЕРНЫЕ РЕШЕНИЯ 49 WWW.SOEL.RU СОВРЕМЕННАЯ ЭЛЕКТРОНИКА ◆ № 8 2019 узкой диаграмме можно рекомендо- вать применение в устройстве других, более дешёвых датчиков из семейства MLX90614, например MLX90614-ESF- DCF (угол 10°), MLX90614-ESF-DCC (угол 35°). Заметим, что при смене датчика пирометр не потребует никаких дора- боток, поскольку все перечисленные выше датчики имеют одинаковые интерфейс и набор команд. Номинальное напряжение питания датчика MLX90614-ESF-DCI составля- ет 3,0 В, а типовой ток потребления 1,3 мА. Заводская калибровка датчи- ка сделана при номинальном напря- жении питания. При питании датчи- ка напряжением 3,3 В, как это реали- зовано в предлагаемом устройстве, в результат измерений необходимо вносить поправку, о чём будет под- робнее сказано далее. Согласно заданным по умолча- нию заводским настройкам, датчик MLX90614-ESF-DCI выдаёт данные во внешнее устройство и принимает от него команды по двухпроводной шине SMBus (аналог шины I 2 C) в качестве ведомого. Адрес ведомого устройства на шине SMBus для датчиков семейства MLX90614 жёстко задан производите- лем и равен 0x5Ah. Поддерживаемый интерфейсом на- бор команд позволяет запрашивать и получать от датчика как итоговые (обработанные) результаты изме- рений для любого из каналов, так и «сырые» (необработанные). Помимо этого, набор команд позволяет про- изводить пользовательскую настрой- ку датчика, задавая, например, в каче- стве интерфейса вместо шины SMBus выход ШИМ, а также варьировать зна- чения констант пределов измерения, другие параметры измерителей и схем обработки. Однако необходимо заме- тить, что при изменении заводских настроек параметров конфигурации измерителей и схем обработки пользо- вателю потребуется проведение пере- калибровки датчика. Все пользовательские параметры дат- чика хранятся в доступной для чтения и записи встроенной энергонезави- симой памяти EEPROM с ресурсом не менее 10 000 циклов записи/стирания. Текущие результаты измерений для всех каналов могут читаться из встро- енной памяти RAM. Доступ к EEPROM и RAM осуществляется по шине SMBus. Пирометр использует вычисляе- мые датчиком значения температу- ры окружающей среды T A , а также температуры удалённого объекта T O . Точность измерения T O у датчика зави- сит от температуры окружающей сре- ды T A . Зависимость величины точно- сти измерения T O от значения T A , взя- тая из [4], показана на рисунке 5. Для того чтобы оценить точность измере- ния температуры объекта T O во всём диапазоне допустимых значений при заданной температуре окружа- ющей среды T A , следует провести на графике вертикальную линию через заданное значение T A , отсчитывае- мое по горизонтальной оси. Так, при T A =+25°C, точность измерения T O по всему диапазону будет варьировать- ся от ±0,5 до ±4°C. Из рисунка вид- но, что наилучшая достижимая точ- ность измерения T O , равная ±0,5°C, обеспечивается в диапазоне T A от 0 до +50°C. Несмотря на такую сравни- тельно невысокую типовую точность в широком диапазоне, датчики, содер- жащие в обозначении букву D, в том числе MLX90614-ESF-DCI, поддержива- ют повышенную точность измерения в сравнительно узком, так называемом «медицинском» диапазоне температур T O от +22 до +40°C, что иллюстрируется рисунком 6. Это позволяет использо- вать их в быту в медицинских целях – для измерения с приемлемой точно- стью температуры поверхности тела. Рекомендуемый производителем для внешнего устройства алгоритм получе- ния значения температуры окружаю- щей среды или удалённого объекта с помощью датчика семейства MLX90614 выглядит следующим образом. Текущее измеренное и обработан- ное датчиком значение температуры T A или T O в виде 16-разрядного слова считывается внешним устройством по шине SMBus из RAM датчика по адресу 0x06 или 0x07 соответственно с помо- щью команды RAM Access. При этом младший разряд прочитанного сло- ва соответствует дискрете темпера- туры, равной 0,02°C. Если в старшем разряде прочитанного слова имеется логическая единица, это значит, что полученные данные являются оши- бочными и не подлежат дальнейшей обработке. Для корректных данных T O с нулевым старшим разрядом зна- чение 16-разрядного слова, равное 0x27AD, соответствует значению тем- пературы − 70°C, а 0x7FFF – значению температуры +382,19°C. После этого прочитанное значение данных делит- ся на 50. Результатом будет значение температуры в К. И наконец, для полу- чения значения температуры в °C из полученного результата вычитается число 273. Если разность при этом получается отрицательной, значит, измеренная температура в °C являет- ся минусовой. В случае если питание датчика осу- ществляется напряжением U ПИТ , отлич- ным от 3,0 В, необходимо вычесть из результирующего значения темпера- туры поправку T СМ , определяемую по формуле: T СМ = ( U ПИТ –3) × 0,6 [°C] Для U ПИТ =3,3 В поправка T СМ =0,18 ≈ ≈ 0,2°C. Таким образом, для получе- ния значения температуры в °C при U ПИТ =3,3 В необходимо вычесть из результата деления на 50 число 273,2. Как было сказано ранее, заявленная производителем точность датчика не превышает 0,2°C, при том что его разре- шающая способность равна 0,02°C. По этой причине при разработке изме- рителя температуры не имеет смысла вычислять и отображать её значение с точностью до сотых долей °C, а вполне можно ограничиться десятыми долями. При получении измеренного зна- чения температуры по шине SMBus датчик передаёт во внешнее устрой- ство помимо двухбайтового значе- ния T A или T O ещё один байт – цикли- ческий избыточный код CRC (Cyclic Redundancy Code), значение которого вычисляется в датчике с использовани- ем образующего полинома X 8 +X 2 +X+1 из данных всей посылки. То есть для Рис. 6. Зависимость величины точности измерения температуры объекта T O от температуры окружающей среды T A в «медицинском» диапазоне T O , ° C T A , ° C ± 0,3 ± 0,3 ± 0,2 40 38 36 30 22 10 10 20 30 40 (1).
RkJQdWJsaXNoZXIy MTQ4NjUy