Схема. Блок индикации состояния компьютера
Существует большое число программ, в том числе свободно распространяемых, предоставляющих пользователям сведения о состоянии операционной системы и об использовании ресурсов компьютера. Но постоянное отображение этой информации на экране монитора, на мой взгляд, не всегда удобно. Выдача ее в отдельном окне приводит к загромождению экрана, а при мониторе, перешедшем в дежурный (при длительном отсутствии нажатий на клавиши и перемещений мыши) или в полноэкранный (на время игры или просмотра видеофильма) режим, доступ к необходимой информации теряется.
Предлагаемый блок совместно с управляющей программой постоянно информирует пользователя с помощью светодиодов (всего их 14) о превышении текущими значениями контролируемых параметров заданных значений. Можно контролировать загрузку центрального процессора (при наличии в компьютере нескольких физических или виртуальных вычислительных ядер — их суммарную загрузку), используемый объем оперативной памяти, объем файла подкачки, наличие и процент использования объема памяти локальных и съемных дисков, текущую языковую раскладку клавиатуры, подключение к Интернету, а также получить сигнал о наступлении заданной даты и времени.
Установленная в компьютере и запущенная управляющая программа PCMonitor постоянно наблюдает за текущими значениями параметров и передает блоку индикации команды на включение и выключение светодиодов. Связь компьютера с блоком — односторонняя через последовательный (СОМ) порт. Благодаря тому что для работы с последовательным портом программа PCMonitor использует только стандартные функции WinAPI, установка каких-либо дополнительных драйверов не требуется. Это дает возможность работать не только с физическими СОМ-портами, но и с виртуальными, создаваемыми переходниками USB—COM. Такой переходник потребуется в случае отсутствия в компьютере физического СОМ-порта.
Программа PCMonitor позволяет выбрать из числа предусмотренных контролируемый параметр для каждого светодиода и задать условие его включения. Любой параметр может быть назначен нескольким индикаторам одновременно.
Схема блока индикации изображена на рис. 1. Транзисторный оптрон U1 вместе с резистором R1 и диодом VD1 служат для инвертирования сигналов СОМ-порта компьютера и согласования их уровней с цепями микроконтроллера DD1, осуществляя при этом и гальваническую развязку между компьютером и микроконтроллером.
Во FLASH-память микроконтроллера необходимо загрузить программу, коды которой приведены в таблице. В нем должны быть запрограммированы (установлены равными нулю) разряды конфигурации микроконтроллера SPIEN, SUTO и CKSEL1, остальные оставлены незапрограммированными (равными единице).
Программа микроконтроллера написана на языке ассемблера AVRASM и отлажена в среде AVR Studio 4.14. Для ее трансляции необходим также файл tn2313def.inc, имеющийся в пакете, поставляемом с AVR Studio, и содержащий описания регистров и констант микроконтроллера.
В процессе инициализации эта программа конфигурирует вывод 2 микроконтроллера как вход приемника встроенного модуля USART, а выводы 3, 6—9,11—19 — как выходы сигналов управления светодиодами HL1—HL14. Модуль USART переводится в асинхронный режим приема со скоростью 9600 Бод при восьми информационных разрядах и одном стоповом без контроля четности. По окончании инициализации (начальное состояние всех светодиодов — выключенное) программа ожидает приема модулем USART команд компьютера и исполняет полученные.
Каждая команда состоит из двух байтов. Программа распознает их по значению старшего разряда: у первого байта — 0, у второго — 1. Семь младших разрядов первого байта задают состояния светодиодов HL1—HL7, а такие же разряды второго байта — светодиодов HL8—HL14. Единица в разряде соответствует включенному, а ноль — выключенному светодиоду. Например, прием байтов 00000011 и 11111000 приведет к включению светодиодов VD1, VD2, VD11 — VD14 и выключению остальных.
Если напряжение 5 В для питания блока снимается с какого-либо из имеющихся в компьютере разъемов PS/2 или USB, то после выключения компьютера без физического отключения его от сети это напряжение при некоторых настройках BIOS может остаться включенным. Чтобы в этой ситуации избежать «замораживания» блоком индикации последнего перед выключением компьютера состояния светодиодов, в программе микроконтроллера предусмотрено гашение всех светодиодов, если в течение 5 с новая команда компьютера не поступала.
Устройство собрано на односторонней печатной плате из фольгированного стеклотекстолита толщиной 1 мм, изображенной на рис. 2. Она рассчитана на установку резисторов МЛТ-0,125 и им подобных. Конденсатор С1 — К50-35 или аналогичный импортный, остальные — керамические К10-17. Вместо оптрона PC 123 можно применить TIL191 или TLP521, а диод КД522Б заменить другим малогабаритным кремниевым, например 1N4148. Светодиоды L-132XHD (красного цвета свечения диаметром 3 мм) могут быть заменены любыми подходящими. Х1 — кабельная розетка DB-9F, стыкующаяся с вилкой СОМ-порта на системном блоке компьютера. Кварцевый резонатор на 8 МГц может быть заменен резонатором на другую частоту. Но для сохранения прежней скорости работы USART необходимо будет изменить значение константы в строке
.equ const = 51
исходного текста программы и заново оттранслировать его. Новое значение можно вычислить с помощью программы, описанной в моей статье «Установка скорости работы USART микроконтроллера ATtiny2313» («Радио», 2009, № 5, с. 28).
В авторском варианте блок индикации размещен в свободном объеме корпуса стандартной клавиатуры компьютера (рис. 3), а напряжение 5 В взято с цепей ее интерфейса. Светодиоды вклеены в просверленные над верхним рядом клавиш отверстия и снабжены шильдиком с надписями, поясняющими их назначение (рис. 4).
Для работы с описанным блоком индикации необходимо установить на компьютере программу PCMonitor. Я разработал ее с помощью бесплатно распространяемого конструктора программ Might Assembler (HiAsm) www.hiasm.com .
Использовались стандартные компоненты HiAsm (версия 3.66 b169) и откорректированный компонент отображения загрузки процессора (CPUUsage). Программа скомпилирована с помощью также бесплатно распространяемого компилятора FreePascal, который доступен для скачивания по тому же адресу и после установки интегрируется в среду HiAsm.
Чтобы установить программу PCMonitor на компьютере, достаточно запустить на исполнение файл PCMonitor 1.0.0.0.ехе и следовать инструкциям инсталлятора. Наличие прав администратора операционной системы не требуется. Запуск программы и настройку можно выполнять и без блока индикации, поскольку в ее окне имеются индикаторы, повторяющие состояние светодиодов.
После запуска программа ищет в папке, где она установлена, файл инициализации Settings.ini. Если он не найден (например, при первом запуске программы), то программа создает его с настройками по умолчанию и открывает свое окно в режиме настройки (рис. 5). В этом режиме работа индикаторов в окне программы и в блоке индикации заблокирована.
По умолчанию предусматривается изменение числа включенных светодиодов (начиная с HL1) пропорционально текущей загрузке процессора. Очередной светодиод включается при возрастании загрузки на 7 % (HL14 — на 8 %). Команды выдаются в порт СОМ1 каждую секунду со скоростью 9600 Бод. Если этот порт уже использует другая программа, окно «Порт» будет пустым. Нажав в его правой части на кнопку со стрелкой, можно увидеть список доступных портов и выбрать свободный.
Настройка выполняется для каждого светодиода (индикатора) в отдельности. Выбирают светодиод переключателем справа от панелей индикаторов (номер панели совпадает с числом в позиционном обозначении светодиода на схеме рис. 1). Кнопкой со стрелкой в нижней части окна вызывают список возможных контролируемых параметров и выбирают один из них. В зависимости от типа параметра в правой части окна становится активной соответствующая панель установки условия подачи сигнала. Используя имеющиеся на ней элементы управления, задают условие.
Файл Settings.ini программа корректирует автоматически, но только после изменения условия выдачи сигнала. Это означает, что для смены контролируемого каким-либо светодиодом параметра нужно обязательно выполнить операцию установки условия подачи им сигнала, даже если подходит то, которое было задано ранее, или предлагаемое по умолчанию. Иначе контролируемый параметр изменен не будет.
Для перевода программы в рабочий режим по окончании настройки необходимо нажать на экранную кнопку «выход в рабочий режим». Окно примет вид, подобный показанному на рис. 6, а через выбранный СОМ-порт начнут подаваться команды блоку индикации. Индикаторы в окне станут дублировать состояние светодиодов. В такой режим программа переходит и сразу после запуска, если она нашла файл Settings.ini. Для перехода из рабочего режима в режим настройки достаточно нажать на экранную кнопку «настройки».
С целью снижения вероятности случайного закрытия программы PCMonitor стандартная экранная кнопка «закрыть» в верхнем правом углу «рамки» ее окна выполняет функцию его сворачивания в трей. Для закрывания программы предназначена аналогичная экранная кнопка внутри окна. Щелкнув один раз левой кнопкой мыши по иконке в трее, можно вновь развернуть окно.
В программе предусмотрена возможность вывести на экран окно с двоичными значениями двух байтов команды, подаваемой блоку индикации. Оно может оказаться полезным при налаживании блока. Для открывания и последующего закрывания такого окна предназначена экранная кнопка с двоичным кодом .
Чтобы программа PCMonitor автоматически запускалась вместе с операционной системой, достаточно отметить пункт «Запускать вместе с Windows».
Прилагаемые файлы: PCMonitor.zip
В. КЕЛЕХСАШВИЛИ, г. Волгодонск Ростовской обл.
«Радио» №6 2009г.