Индикатор интенсивности работы компьютера
Автор Trol   
18.08.2007 г.

Пришла как-то в голову мысль сделать светодиодный индикатор, который будет:

  • показывать интенсивность обращений к жесткому диску;
  • показывать интенсивность работы сетевой карты;
  • показывать интенсивность еще чего-нибудь (например, уровень загрузки процессора, его температуру, скорость вращения вентилятора или интенсивность работы 2й сетевой карты, если она появится в будущем).

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

 

Принципиальная схема получившегося устройства приведена на рис.1. и выполнена на основе микроконтроллера AT89C2051 подключенный по типовой схеме.

Принципиальная схема
Рис. 1. Принципиальная схема
 

Индикатор подключается к блоку питания ПК через разъемы Х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 высокий уровень, сменяя его затем низким на все время работы индикатора.

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

 


Добавить в любимые (0) | Просмотров: 53661

  Коментарии (1)
 1 Написал(а) Igor, в 20:10 16.03.2008
сигнал загруженности можно взять с каждого винта отдельно, на старых винтах даже есть площадки на платах контроллёров под распайку светодиода этого, на очень старых светодиод ваще на плате распаян. 
На новых можно найти в инете даташиты на микросхемы и определить какая ножка показывает загрузку блока шинного формирователя :)

Только зарегистрированные пользователи могут оставлять коментарии.
Пожалуйста зарегистрируйтесь или войдите в ваш аккаунт.