То, что информация о характере и количестве потребляемой энергии имеет большое значение, вряд ли нуждается в комментариях. Рассматривая систему в целом, важно знать ее суммарное потребление, что получить достаточно просто, так как почти всегда источник питания легко локализуется, и достаточно на линии питания установить счетчик-регистратор. Однако представляет большой интерес также определение потребления отдельных компонентов системы, например с целью оптимизации набора этих компонентов.
Переходя к конкретному примеру, к персональному компьютеру, можно выделить физически разделенные компоненты, потребляющие электроэнергию, начиная от розетки, к которой подключен компьютер: блок питания, системная плата, процессор, память, видеокарта, другие платы расширения, внутренние периферийные устройства (жесткие диски, приводы оптических дисков и т. д.), внешние периферийные устройства (накопители с интерфейсами USB, Power eSATA и прочие устройства, получающие питание от блока питания компьютера).
В случае блоков питания — их энергетические характеристики, в частности эффективность, определяются в ходе подробных тестов, представленных в разделе Корпуса и электропитание. Потребление периферийных устройств оценивается, например, при тестировании флэш-накопителей (раздел Носители информации). Кроме того, нами была разработана методика с использованием двухканального регистратора тока (см. статью «Двухканальный регистратор тока»), позволяющая определять характер потребления электроэнергии периферийными устройствами по двум линиям питания.
Вычленяя следующие составные части типичного персонального компьютера, мы переходим к системной плате и непосредственно связанным с ней устройствам. К сожалению, всё, что получает питание от системной платы, получает его через, как правило, многочисленные контакты в соответствующих разъемах, поэтому выделить линии питания (обозначенные красными стрелками на диаграмме выше) и использовать их для регистрации потребления не представляется возможным без использования специальных адаптеров-переходников. Таковыми мы не располагаем. Поэтому остается только одна возможность: отслеживание линий питания, идущих от блока питания к системной плате. При этом системная плата и подключенные к ней компоненты рассматриваются как единая платформа. Эффективность отдельных компонентов (под эффективностью подразумевается количество полезной работы на затраченную единицу энергии) платформы можно оценивать по изменению эффективности платформы в целом при замене компонентов.
В итоге задача определяется следующим образом: нужно регистрировать потребление (то есть напряжение и ток) по линиям 3,3 В, 5 В и 12 В в разъеме ATX, 12 В в разъеме дополнительного питания на системной плате и по линии 12 В в разъеме дополнительного питания на мощных видеокартах. Учитывая предполагаемую интеграцию в существующие методики исследования производительности, формулировка задачи свелась к следующей: определение количества энергии, затраченной на выполнение того или иного теста. Так как типичным способом запуска тестов является исполнение пакетного файла, то способ взаимодействия подразумевал использование командной строки и запись результата в текстовый файл для последующего анализа.
Регистрация низковольтного напряжения без необходимости в гальванической развязке реализуется без особых трудностей. Классическим вариантом определения значений тока является замер падения напряжения на сопротивлении (шунте) известного номинала, однако в случае низких напряжений падение напряжения на шунте может составлять заметную долю от входного напряжения, что не всегда допустимо. У нас был успешный опыт применения датчиков тока, основанных на эффекте Холла (см. статью «Двухканальный регистратор тока»), которые характеризуются минимальным падением напряжения. Для данного проекта мы также выбрали подобные датчики, но теперь производства компании Tamura серии L18P***D15. Эти датчики, к сожалению, требуют двуполярного питания, но зато фактически в одном форм-факторе выпускаются датчики с верхним пределом измерения тока от ±3 до ±60 А с одинаковым диапазоном выходного напряжения, что упрощает схемотехнику и дает возможность оперативного подбора датчика с требуемым диапазоном. Мы еще больше повысили унификацию, разместив датчики на промежуточных платах с одинаковыми контактными площадками.
Подобные сборки мы планируем использовать в нескольких проектах, что позволит быстро подбирать оптимальное для каждой задачи сочетание датчиков тока.
На долю аппаратной части мы решили оставить только регистрацию токов и напряжений, а всю обработку выполнять с помощью программной части комплекса. Побочным следствием этого стал некоторый отбор вычислительных ресурсов, требуемых на передачу потока данных и их обработку. В случае низкопроизводительных систем подобный отбор может повлиять на результаты тестов производительности, поэтому было принято решение обеспечить возможность регистрации и обработки с использованием второго компьютера, который мы обозначим как Сервер. Компьютер, на котором собственно выполняются тесты и потребление платформы которого нужно определять, мы обозначим как Платформа.
Взаимодействие между Платформой и Сервером заключается в следующем:
- С началом очередного теста Платформа посылает команду Серверу начать сбор данных.
- По завершении очередного теста Платформа посылает команду Серверу остановить сбор данных и записать результаты в указанный файл.
Взаимодействие Платформы и Сервера осуществляется через сеть передачи данных с использованием механизма именованных каналов Microsoft Windows.
Аппаратная часть регистратора состоит из двух плат, объединенных общим основанием и соединенных между собой. Зеленая плата — это источники двуполярного питания ±15 В и стабилизированного 5 В, схемы оцифровки и передачи значений тока и напряжений по USB на управляющий компьютер. Желтая плата — это коммутация с источником питания и нагрузкой, а также датчики тока.
Регистратор включается между блоком питания ATX и Платформой, потребление которой измеряется. Кабели ATX и 12 В CPU от блока питания подключаются к регистратору, а отходящие от регистратора кабели подключаются к соответствующим разъемам платформы. На Сервере запускается программа-сервер, опрашивающая регистратор; по окончании периода опроса результат записывается в файл. Программа-сервер управляется специальной утилитой. Типичное использование подразумевает, что управляющая утилита запускается на измеряемой Платформе в начале теста с ключом запуска опроса и в конце теста с ключом остановки опроса. При этом программа-сервер может работать как на самой Платформе, так и на внешнем компьютере — Сервере, при условии, что Платформа и внешний компьютер находятся в одной сети Microsoft Windows Network.
Текущая конфигурация регистратора | ||
Линия | Диапазон тока | Регистрация напряжения |
3,3 В ATX | 0—20 А | Есть |
5 В ATX | 0—10 А | Есть |
12 В ATX | 0—10 А | Нет |
12 В CPU | 0—20 А | Есть |
В текущей реализации регистратора каналы 12 В ATX и 12 В CPU разделены, но измерение напряжения выполняется только для канала 12 В CPU, так как подразумевается, что если напряжение на канале 12 В ATX и отличается, то этой разницей можно пренебречь. Предусмотрена возможность расширения функциональности за счет добавления до четырех каналов регистрации тока — для этого на зарезервированном месте нужно установить дополнительные модули двуполярного питания, группы компонентов аналогового ввода и разъемы, а также подключить дополнительную плату с датчиками тока и силовыми разъемами. Возможными вариантами расширения являются регистрация потребления мощных видеокарт по разъему дополнительного питания, периферийных устройств, а также тока по дежурному каналу 5 В.
Регистрация токов и напряжений не является непрерывной, а разделяется на циклы опроса с промежутками между ними, требуемыми на запись и предварительную обработку данных. Величина промежутков зависит от производительности и загруженности компьютера, но в целом сбор данных можно считать практически непрерывным. В секунду выполняется порядка 6 циклов опроса. На выходе каждого цикла получается усредненное по 1024 интервалам значение тока по каждому датчику и одно значение напряжения по каждой контролируемой линии. Эти данные сохраняются, и по завершении теста рассчитываются минимальные, максимальные, средние значения токов, напряжений и суммарной мощности, а также общее количество затраченной на тест энергии.
Кроме описанных ниже консольных программ, также был создан модуль к программе GelTreat.exe, позволяющий кроме расчета суммарных показателей сохранять зависимости токов и напряжений от времени и представлять их в графическом виде. Пока эти возможности используются только в целях отладки работы стенда.
Программа-сервер представлена файлом ps-ms.exe. Управляющая утилита — ps.exe. Для работы psm.exe требуется один конфигурационный файл, содержащий, помимо прочего, распределение каналов АЦП по датчикам и калибровочные коэффициенты.
Питание регистратора — внешнее, от стандартного разъема для дисковода на гибких магнитных дисках от БП ATX. Оцифровка напряжения производится относительно земли разъема питания регистратора, поэтому крайне желательно подключать регистратор к тому же БП, к которому подключена тестируемая Платформа. Так как Сервер через интерфейс USB имеет общую землю с Платформой, при запуске программы-сервера на отдельном компьютере этот компьютер (Сервер) и тестируемая Платформа должны иметь общую землю (например, через вилки с заземлением от их блоков питания, включенные в розетки с общей землей). Очень желательно наличие реального заземления.
Порядок работы:
- Подключить кабели ATX и CPU 12 В от БП Платформы к регистратору.
- Подключить питание регистратора.
- Подключить кабели ATX и CPU 12 В от регистратора к тестируемой Платформе.
- Включить тестируемую Платформу. На регистраторе должен загореться желтый светодиод в непрерывном режиме.
- Подключить регистратор по USB к Платформе или отдельному компьютеру (Серверу). При первом подключении нужно установить прилагаемый драйвер регистратора. Если драйвер установлен и регистратор опознан системой, то на плате регистратора должен загореться зеленый светодиод в непрерывном режиме.
- На Сервере (или на Платформе, если регистратор подключен к ней по USB — далее это не уточняется) запустить программу-сервер:
psm.exe conf_name
где conf_name — имя конфигурационного файла. Программа ps-ms.exe будет работать в фоне и по команде утилиты начинать и завершать опрос датчиков. - Для запуска опроса запустить утилиту ps.exe с параметрами:
ps.exe srv_name start
Где srv_name — имя сервера в сети Microsoft Windows Network или «.» (точка), если программа-сервер запущена на Платформе. Типичное использование — запуск опроса непосредственно перед запуском теста или сразу после запуска теста, энергетические затраты на который нужно определить. - Для остановки опроса запустить утилиту ps.exe с параметрами:
ps.exe srv_name stop log_file_name
где log_file_name — имя файла с результатом. Типичное использование — остановка опроса после окончания теста или непосредственно перед завершением теста, затраты на который нужно определить. - Пункты 7 и 8 повторяются для каждого теста.
- Для завершения работы программы-сервера можно запустить утилиту ps.exe с параметрами:
ps.exe srv_name exit
Схема слаботочной части стенда (зеленая плата) находится тут. Заметим, что на этой схеме приведен только один канал регистрации тока; добавление каждого следующего требует повторения элемента IC3 и его обвязки, а также разъема к датчику тока, при этом на каждую пару каналов по току требуется один источник двуполярного напряжения — элемент IC4. Сильноточная часть регистратора в схемах и комментариях особо не нуждается.
Файлы проекта микропрограммы регистратора, включая загрузчик обновления, находятся по этой ссылке. Проект создан в среде MPLAB IDE v8.50 с использованием библиотеки Microchip Solutions v2010-10-19. Файлы проекта программ ps.exe и ps-ms.exe находятся по этой ссылке. Проект создан в среде Microsoft Visual Studio 2010 Express с использованием библиотек OWLNext 6.32 и libusb-win32.