Контроль температуры блока питания компьютера


П. ВЫСОЧАНСКИЙ, г. Рыбница, Приднестровье, Молдавия

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

Причиной превышения допустимой температуры блока питания компьютера может стать перегрузка при выполнении ресурсоёмких приложений, например, современных 3D игр. Но чаще это происходит из-за различного рода неисправностей, скажем, остановки охлаждающего блока питания вентилятора. Вовремя обнаружить это удается далеко не всегда. Поэтому важен контроль температуры с автоматическим уведомлением пользователя о превышении допустимого значения.

Для измерения температуры внутри блока питания было разработано устройство, схема которого показана на рис. 1. Поскольку датчик температуры ВК1 нельзя непосредственно подключить к шине USB, микроконтроллер DD1 служит "посредником" между ним и шиной. Диоды VD1 и VD2 предназначены для снижения напряжения 5 В, поступающего с линии Vbus, приблизительно до 3,6 В, что требуется для согласования уровней напряжения на выводах микроконтроллера и на сигнальных линиях USB.

Через резистор R2 на линию D- поступает напряжение, сигнализирующее компьютеру, что к нему подключено так называемое низкоскоростное USB-уст-ройство. Резисторы R5 и R6 подавляют "звон" на перепадах импульсных сигналов.

К линии РВО микроконтроллера подключен цифровой датчик температуры DS18B20 (ВК1), способный измерять температуру в интервале от -50 до +125 °С с абсолютной погрешностью ±0,5 °С. Датчик необходимо закрепить на одном из теплоотво-дов в блоке питания компьютера.

Программа микроконтроллера DD1 написана на языке BASIC в среде программирования BASCOM AVR (демонстрационная версия находится по адресу http://www.mcselec.com/ index.php?option=com_ docman&task=doc_download& gid=139<emid=54). В программе использован USB-драйвер "Virtual USB-port" (http://www.mcselec.com/index.php?option=com_ docman&task=doc_download&gid =231<emid=54).

Загрузка программы в микроконтроллер производилась с помощью утилиты AvrProg, входящей в состав среды разработки AVR Studio. Конфигурация микроконтроллера должна соответствовать показанной на рис. 2.

При подключении блока контроля температуры к одному из разъемов USB компьютера операционная система последнего опознает его как НID-устройство с именем "PC_TermoControl" и установит для него один из стандартных драйверов.

Разработанная и предлагаемая вниманию читателей программа PC_TermoControl.exe не только отображает на мониторе компьютера текущее значение контролируемой температуры, но и уведомляет пользователя о превышении ею установленного порога, а при необходимости самостоятельно выключает компьютер. Она создана в среде PureBasic версии 4.41 с использованием разработанной мной библиотеки функций "НЮ Lib", обеспечивающей взаимодействие с USB HID-устройствам и.

После запуска программа добавляет свой значок на панель задач Windows. Для настройки нужно щелкнуть правой кнопкой мыши по этому значку и выбрать в появившемся меню пункт "Настройки".

Откроется окно, показанное на рис. 3. В поле "Текущая температура" всегда отображается последнее измеренное датчиком значение температуры. Эту же информацию можно получить, наведя курсор мыши на значок программы на панели задач.

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

Чтобы программа следила за превышением допустимого порога температуры, следует отметить пункт "Включить слежение за температурой", иначе она будет работать как обычный термометр, измеряющий текущую температуру. В последнем случае в меню программы можно разрешить постоянное присутствие на экране полупрозрачного плавающего окна с текущим значением температуры. В поле "Максимально допустимая температура" должен быть указан допустимый предел

температуры, после превышения которого программа выполнит действия, указанные в области "Выполнить при превышении температуры". Например, можно включить уведомление пользователя об аварийной ситуации звуковым сигналом или появлением на экране окна, примерный вид которого показан на рис. 4.

Опция "Выключить компьютер" может быть полезна, если включенный компьютер часто остается без присмотра. Компьютер будет выключен через 10 с после установления факта превышения температуры. Это время можно увеличить до минуты, отметив соответствующий пункт. Автоматическое выключение компьютера позволит предотвратить возможные последствия такой неисправности, как остановка вентилятора в блоке питания. Ведь в дежурном режиме принудительное охлаждение не требуется

Если контроль температуры разрешен и она превышает заданный порог, программа переходит в аварийный режим работы. Выполняются все разрешенные в области "Выполнить при пре-

вышении температуры" (см. рис. 3) действия.

Двойной щелчок левой кнопкой мыши по значку на панели задач или закрывание окна с предупреждением (рис. 4) выключит защиту, выведет уведомление, показанное на рис. 5, и переведет программу в режим отображения текущей температуры, даже если она превышает допустимую. Защита будет снова включена лишь после снижения температуры ниже порога либо после перезапуска программы.

Предусмотрен еще один уровень защиты — выключение компьютера при температуре 120 °С. Это значение жестко задано в программе. Если оно превышено, откроется окно с уведомлением, раздастся непрерывный звуковой сигнал и через 10 с компьютер будет выключен. Эту защиту нельзя отключить. Предотвратить выключение компьютера можно немедленным снятием отметки с пункта "Включить слежение за температурой" в окне настроек программы PC_TermoControl или полным завершением работы этой программы.

При необходимости в программы (как для микроконтроллера, так и компьютерную) можно внести изменения, придав им новые свойства. Однако отредактирован-

ные исходные тексты программ придется компилировать заново.

Для безошибочной компиляции компьютерной программы нужно сначала установить библиотеку "HID Lib", распаковав содержимое архива HID_Lib_4.41.rar в папку с установленной средой PureBasic версии 4.40 или 4.41. При этом файлы из папок архива должны быть добавлены в одноименные папки PureBasic.

Компиляция программы микроконтроллера выполнялась в системе разработки программ BASCOM AVR версии 1.11.9.5. Предварительно файл swusb.LBX (библиотека драйвера USB) был помещен в папку LIB пакета BASCOM AVR.

От редакции. Исполняемые и загрузочные файлы, а также исходные тексты программы микроконтроллера и компьютерной программы PCJTermoControl находятся на нашем FTP-сервере по адресу <ftp://ftp.radio.ru/pub/2011/03/tguard.zip>

От автора:

В схеме устройства есть опечатка. Правый вывод резистора R5, должен быть соединён не с выводом 5 микроконтроллера, а с выводом 3, тогда устройство определяется компьютером и нормально работает. Если по какой-либо причине не желательна модификация схемы (скажем, не хочется резать печатные проводники на плате и ставить перемычки), то можно загрузить к микроконтроллер альтернативную версию прошивки.


Добавил:  Павел (Admin)  [email protected] | 

Автор:  П. ВЫСОЧАНСКИЙ (Радио №3, 2011 год)  Рейтинг@Mail.ru