Индикатор интенсивности работы компьютера

Идея создания этого устройства возникла после того, как в компьютере начали разом «стучать» оба жестких диска, причиной чего, как выяснилось, послужил блок питания. В итоге, был приобретен новый БП помощнее, а старый АТХ-овый БП поставлен в другую машину, вместо имевшегося в ней AT-шного БП. Корпус у этого компьютера был еще эпохи 486-х и имел помимо кнопки «Reset» кнопку «Turbo» (которая когда-то позволяла понижать тактовую частоту процессора) и выключатель питания. В итоге, «Turbo» была «переквалифицирована» в включатель питания ATX, а на месте старого выключателя образовалась унылая дыра, которая прямо-таки просила, чтобы ее чем-то заделали. Вот, собственно, для затыкания этой дыры и пришла в голову мысль сделать светодиодный индикатор, который будет а) показывать интенсивность обращений к жесткому диску; б) показывать интенсивность работы сетевой карты; в) показывать интенсивность еще чего-нибудь (например, уровень загрузки процессора, его температуру, скорость вращения вентилятора или интенсивность работы 2й сетевой карты, если она появится в будущем). Принципиальная схема получившегося устройства приведена на рис.1. и выполнена на основе микроконтроллера AT89C2051 включенного по типовой схеме.

Индикатор работы компьютера - схема

Индикатор подключается к блоку питания ПК через разъемы Х1-Х2. Вход HDD.IN подключается к одному из выводов светодиода, светящемуся во время работы жесткого диска (точнее, к тому выводу, на котором напряжение относительно "земли" в моменты загорания светодиода меньше). В момент зажигания светодиода на этом выводе напряжение понижается, что приводит к открытию транзистора VT1. Вход HDD.IN управляет первой линейкой светодиодов – LED1-LED8. Вторая линейка (LED9-LED16) управляется со входа RESERVE.IN и была зарезервирована для дальнейшего использования. Третья линейка индикатора (LED17-LED24) отображает активность сетевого интерфейса. Вход NET.IN подключен непосредственно к одной ножке светодиода «Link», расположенного на сетевой карте.

В моменты сетевой активности этот светодиод гаснет, и напряжение на интересующем нас выводе уменьшается с ~2В до ~0В, закрывая транзистор VT2 и зажигая светодиод LED25, выведенный на переднюю панель и горящий в моменты активности сетевой карты (т.е., когда светодиод «Link» на самой сетевухе гаснет). Экспериментирование с таким подключением к сетевой карте показало следующее: в момент включения ПК на светодиод подается напряжение ~5В и удерживается в течении примерно секунды, после чего уменьшается до ~2В. При этом, если этот вывод подключить к точке NET.IN, без резисторов R3, R4, то сетевая карта не будет правильно инициализирована: сетевое подключение будет определено как 10 мегабитное (вместо 100 мегабитного), при этом, сеть работать отказывается. Это было замечено для карты Compex Ready Link RE100ATX/WOL, и справедливость этого момента для других карт остается под вопросом. Резисторы R3 и R4, подключенные ко выходу P3.3 микроконтроллера, служат для того, чтобы в момент включения схемы (т.е., включения самого компьютера) установить на входе NET.IN высокий уровень для корректной инициализации сетевого адаптера. Для этого в течении секунды после запуска микроконтроллер удерживает на выходе P3.3 высокий уровень, сменяя его затем низким на все время работы индикатора.

Управляющая программа написана на ассемблере под компилятор ASEM51 в среде TrolMobileStudio. Исходники программы и скомпилированный код а также схему и печатную плату в формате Eagle можно скачать по ссылкам ниже. В файле 8051.mcu описываются константы портов микроконтроллера, файл macroses.mcu содержит описания нескольких макросов для работы с 2х-байтовыми переменными (инкремент, декремент, сложение, вычитание и сравнение). Сам код программы находится в файле indicator.a51. Программа в таймере опрашивает состояния входов устройства и в зависимости от него увеличивает/уменьшает счетчики активности. Так же вычисляется, как долго находится входы в одном и том же состоянии. В зависимости от этого подпрограммы calc_hdd_level, calc_net_level и calc_reserve_level вызываются для пересчета показаний счетчика в величину уровня (т.е., число горящих светодиодов). Когда при включении/перезагрузки ПК светодиод HDD горит непрерывно, управляющая программа определяет это и сбрасывает счетчик HDD-активности, предотвращая ложные показания индикатора. Фотография системного блока с индикатором показана на рис.2.

Индикатор работы компьютера - внешний вид

Файлы:

DownloadПрошивка и исходники

DownloadСхема и плата для Eagle

Рейтинг: 
0
Голосов еще нет