UPS с нестандартным интеллектом

23 Мар 2016

Обзор источника бесперебойного питания Energenie EG-UPS-032

Разрабатывая программное обеспечение для экосистемы питания пер­со­наль­ных платформ важно понимать, где находится граница между об­ще­при­нятыми представлениями и реализацией. Если в качестве ба­зис­но­го подхода избрать Power Management API, рано или поздно мы стол­к­нем­ся с устройствами, которые «выпадают» из данной парадигмы. За примерами не ходить далеко – в одном из лучших обзоров источни­ков бесперебойного питания (материал слегка устарел, но не потерял ак­ту­аль­ность даже се­го­дня) приводится в качестве примера Lighthouse Pro 1000, который в среде ОС не обеспечивает своим аккумуляторным ба­та­ре­ям системный статус. Постараемся найти аналогичный UPS, по­ла­га­ю­щийся только на соб­ствен­ное программное обеспечение.

 

Источник бесперебойного питания Energenie EG-UPS-032

Не будем держать интригу – источник бесперебойного питания, выпускаемый компанией Gembird под брендом Energenie, вполне отвечает поставленной задаче. Ирония в том, что для этого ему нужно игнорировать требования, описанные стандартной моделью Microsoft API и особенностями обслуживания батарей в рамках интерфейса IOCTL. Ведь именно они лежат в основе принципа действия утилиты PowerInfo v0.09. Стендовые испытания подтвердили – USB-ресурсы бесперебойника Energenie EG-UPS-032 не совместимы с требованиями, установленными документом Smart Battery Data Specification.

Индикатор на передней панели Energenie EG-UPS-032 информирует о текущем состоянии UPS
Рис 1. Индикатор на передней панели Energenie EG-UPS-032 информирует о текущем состоянии UPS

Давайте разбираться, как видится данный UPS в операционной системе? Ведь подключение по USB-шине требует установки драйверов бесперебойника с последующим отражением его ресурсов в диспетчере устройств. Указанная процедура определяется документом USB Usage Tables for HID Power Devices, который нормирует программную модель SmartBattery-совместимой реализации. В таком качестве зачастую выступают HID-устройства, что имеет место и в нашем случае.

Здесь уместна легкая ирония по поводу классификации аккумуляторной батареи как человеко-машинного интерфейса. Практическая польза от Human Interface Devices, обладающего более широкой функциональностью, чем Microsoft API, состоит в том, что UPS не связан с ограничениями стандартной модели, а может получить любые наперед заданные параметры питания. В этом нам предстоит убедиться, ознакомившись с пакетом программного обеспечения, который у рассматриваемого семейства бесперебойников называется UPSmart.

Само собой разумеется, что в случае HID-модели, мониторинг систем UPS возможен только с помощью соответствующих датчиков, коль скоро ими оснащен источник бесперебойного питания. Для съема информации комплект софта использует программно-доступные ресурсы устройства.

В этом случае написание программного обеспечения для UPS, а равно и его поддержка операционной системой, могут быть реализованы следующим образом: набор параметров, определяемых документом Smart Battery Data Specification и набор методов для чтения данных параметров отображается на набор USB HID-дескрипторов и USB HID-запросов, по правилам, определенным в документе USB Usage Tables for HID Power Devices. Драйвер можно написать без какой-либо дополнительной информации от производителя периферийного USB-контроллера, хотя наличие такой информации только расширит функциональность. В результате, операционная система получит весь набор операций с аккумуляторной батареей, что обычно мы и видим в разделе «Электропитание».

Интерфейсная панель источника бесперебойного питания Energenie EG-UPS-032
Рис 3. Интерфейсная панель источника бесперебойного питания Energenie EG-UPS-032

Программное обеспечение UPSmart

Перед разработчиками бесперебойника Energenie EG-UPS-032 был выбор, о котором сказано в предыдущей главе, но они избрали свой путь – создать UPS с нестандартным интеллектом. Программное обеспечение UPSmart v1.5Для разработки софта была привлечена китайская компания IDBK Software Technology. Ее про­грам­мный продукт построен с использованием библиотек Nokia и Riverbed Technology. Обзор возможностей пакета UPSmart выходит за рамки нашей публикации, поэтому акцентируем внимание на особенностях коммуникации источника бесперебойного питания с хост-платформой.

Изюминка проекта состоит в том, что параметры UPS, будучи близкими к стандартному набору из документа Smart Battery, представлены в виде USB-дескрипторов неким произвольным образом, известном только производителю. Для написания драйвера такого UPS нужна информация об аппаратной платформе устройства или готовый драйвер, создающий «мостик» между нестандартным UPS и стандартными Power Management API. Такой симбиоз обеспечит работу и нашей утилиты Power Info, и системного программного обеспечения Windows.

Заметим, что в данном случае программная модель Energenie EG-UPS-032 определяется не только USB-контроллером, но и его прошивкой. Не секрет, что в виртуальных средах могут работать драйверы несуществующих батарей, например, с типом электрохимии VBOX. А реализацию UPS с нестандартным интеллектом мы увидели на примере источника бесперебойного питания Energenie EG-UPS-032 от компании Gembird.

Резюме

Хотя теоретически для каждого самодостаточного бесперебойника может быть написан драйвер, интегрирующий UPS в экосистему питания персональной платформы, значимость подобных решений выглядит сомнительно. На фоне экономического кризиса востребованы источники бесперебойного питания без мониторинга: пользователи ждут от производителей таких устройств, которые просто обеспечат работоспособность компьютера при скачках напряжения и кратковременных сбоях. На большее никто и не рассчитывает…

«Компостер» благодарен компании EDG Group
за предоставленный для исследований бесперебойник Energenie EG-UPS-032