Тонкий клиент/малый сервер

 

Сделан на базе Orange Pi Zero. Кроме своей основной функциональности - обслуживания сети клиентских устройств по аппаратному протоколу RS-485, плата обеспечивает подачу контролируемого паразитного питания для них и имеет на борту: dc/dc преобразователь для питания микрокомпьютера и его периферии; схему обслуживания аккумулятора 12В; встроенный микрофон для приема голосовых команд и линейные выходы звука. Аналоговый выход видео распаян на плате, но его поддержка зависит от версии ядра установленной системы.

При подключении аккумулятора 12В с емкостью 7А/ч и подключенном винчестере с потреблением порядка 3 Ватт, система способна работать без подачи внешнего питания в течении двадцати часов на ресурсах батареи. Однако, для ее запуска внешнее питание все же требуется.

Контроль питания клиентов

Предельное значение тока, передаваемого в линию устройств, по умолчанию установлено в 1А и может быть изменено записью в регистр памяти 2. Режим отработки "предохранителя" задается в регистре 3 и имеет следующие варианты: 0 - средневзвешенное значение (за 64 прохода измерения), 1 - по мгновенному значению тока.

Амперметр возвращает (и устанавливается) значения с коэффициэнтом приблизительно 10 мА на единицу.

Питание

Устройство работает от внешнего стабилизированного источника питания постоянного тока с выходным напряжением 12..15В.

Часть его энергии расходуется на поддержание аккумулятора в заряженном состоянии. Потребление компьютера и всей автоматики платы обычно не превышает 600мА.

Для обслуживания устройств, критичных к наличию бесперебойного питания, прибор имеет выход промежуточного питания внутреннего преобразователя, который может обслуживать нагрузку до 3А. Однако, напряжение на этом разъеме не стабилизированно и зависит от источника (входное или аккумуляторное за вычетом потерь на диодах). Оно может меняться от девяти до четырнадцати вольт.

Рекомендуемый источник питания - 12В 5А, для передачи до 1А в линию устройств и обслуживания аккумулятора емкостью 7А/ч.

Обслуживание аккумулятора

Прибор рассчитан на работу с аккумуляторами с номинальным напряжением 12В и емкостью от 2.2А/ч до 7А/ч. Настройки схемы заряда позволяют тонко регулировать режимы его работы.

Основными параметрами являются пороговые напряжения (до какого значения заряжать и при каком нижнем пределе отключать аккумулятор для предотвращения критически низкого напряжения, ведущего к деградации пластин) и токи заряда при разном уровне.

Схема заряда позволяет отдельно управлять токами на участках пониженного, относительно источника питания, и повышенного напряжения, что дает возможность использования БП средней мощности, поскольку мы можем уменьшить значительно возрастающие токи при приближении к окончанию заряда батареи, при этом, относительно быстро выведя аккумулятор из зоны полного разряда.

Все значеня настроек хранятся в единицах АЦП, а не в значениях напряжения. Точный пересчет производится после калибровки вольтметров аккумулятора и блока питания. Размер - два байта.

Настройки схемы обслуживания аккумулятора имеют собственную индексацию внутри глобального регистра 0х80.

Минимальное напряжение, при котором питание от аккумулятора будет прервано для предотвращения его разрушения, записывается в регистр памяти 0.

Нормальное напряжение аккумулятора, выше которого подзарядка не требуется, хранится в регистре памяти 1.

Максимальное напряжение, до которого нужно заряжать аккумулятор содержится в регистре памяти 2.

Минимальное напряжение основного источника питания, при котором необходимо перейти на питание от аккумулятора, записывается в регистр памяти 3.

Напряжение потерь на выпрямительных диодах содержится в регистре 0x10.

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

Длинна передаваемых значений - два байта. Но сами значения находятся в диапазоне 0..255.

Множитель понижения напряжения - регистр 0x11.

Множитель повышения напряжения - регистр 0x12.

Константа при понижении - регистр 0x13.

Константа при повышении - регистр 0x14.

Порт расширения

Дополнительный порт расширения и программирования имеет следующие контакты:

  1. общий провод;
  2. +5В для питания плат расширения;
  3. сигнал принудительного сброса микроконтроллера;
  4. pin/output #3;
  5. pin/output #2;
  6. pin/output #1.

Настройка назначения (вход/выход) контактов порта расширения задается в регистре 0 одним байтом имеющим следующую битовую маску:

  1. направление pin 1 (0 - вход, 1 - выход);
  2. направление pin 2 (0 - вход, 1 - выход);
  3. направление pin 3 (0 - вход, 1 - выход).

Та же маска задает инверсию входов/выходов в регистре 1 (0 - без инверсии, 1 - инверсно).

Остальные биты игнорируются. Бит #0 всегда выход без инверсии и управляет подачей питания в линию клиентов. При включении или сбросе микроконтроллера, после измерения значения датчика тока, соответствующего нулю, микропрограмма производит попытку подачи питания в линию.

Как и остальные логические выходы, порт управления питанием может управляться программно, путем передачи в нужный номер порта длительности его включения в секундах (2 байта) или 0 для выключения.

Индикация

Плата имеет два светодиодных индикатора работы. Светодиод, расположеный рядом с колодкой линии, имеет следующее назначение цветов:

Постоянное свечение красного сигнализирует об отсутствии связи с клиентскими устройствами.

Индикаторы обмена с микрокомпьютером так же имеет три цвета, обозначающих:

Индикация так же настраиваема и содержит два байта: первый - разрешение, второй - яркость свечения. Их битовые маски:

  1. передача в линию устройств;
  2. ответ клиента;
  3. ошибка в линии RS-485;
  4. передача компьютеру;
  5. прием данных от компьютера;
  6. ошибка обмена с компьютером.

Остальные биты игнорируются.

Сводная таблица команд

Протокол обмена данными с устройством.

Запросы
команда данные описание
R   Полная перезагрузка устройства.
r   Сброс портов, перезагрузка базового значения амперметра и питания линии.
S   Сброс дополнительных портов в неактивное состояние (с учетом инверсии).
i   Запрос модели устройства.
p   Запрос состояния логических входов/выходов.
a   Запрос значения тока в линии клиентских устройств.
v   Запрос значений напряжения на аккумуляторе и источнике питания.
d   Запрос списка активных устройств.
o #вывода + 2 байта длительности
или 4х2 байта для всех портов
Изменение состояния вывода (включение) на длительность в секундах. Если длительность больше 65000, постоянное включение (до сброса или следующего изменения).
Порядок следования байт длительности - от старшего.
Порядок следования портов (для управления одним пакетом) - от 0 до 3, без указания номера порта.
M #регистра + значение Запись настроек в EEPROM.
0 - направление выводов + 1 байт маски.
1 - инверсия выводов + 1 байт маски.
2 - максимальная величина тока в линии + 2 байта - значение.
3 - метод замера тока для "предохранителя" + 1 байт (0 - средневзвешенное значение, 1 - мгновенное).
0х8000 - минимальное напряжение на аккумуляторе + 2 байта - значение.
0х8001 - нормальное напряжение на аккумуляторе + 2 байта - значение.
0х8002 - максимальное напряжение заряда + 2 байта - значение.
0х8003 - минимальное напряжение БП + 2 байта - значение.
0х8010 - напряжение потерь на диодах + 2 байта - значение.
0х8011 - множитель понижения + 2 байта - значение.
0х8012 - множитель повышения + 2 байта - значение.
0х8013 - константа понижения + 2 байта - значение.
0х8014 - константа повышения + 2 байта - значение.
l 1 байт маски
или 1 байт маски +
1 байт маски яркости
Настройка индикации.
Ответы
команда данные описание
A   Подтверждение успешного приема команды.
E   Ошибка в команде.
U   Команда не поддерживается
L   Неправильная длина принятых данных (не соответствует протоколу).
u 1 байт адреса Устройство активно (вышло на связь).
N 1 байт адреса Устройство не отвечает (выключено или отсутствует).
i LINE COORDINATOR UPS Ответ названия (типа) устройства.
p 1 байт - количество изменений
[1 байт - номер +1 байт - состояние]
Состояния изменений в логических входах/выходах. При старте или по запросу - текущее состояние всех контактов.
a 1 байт - количество изменений = 1
1 байт - индекс = 0
2 байта - значение
Значение датчика тока в линии клиентских устройств.
v 1 байт - количество изменений
1 байт - индекс
2 байта - значение
Значение датчика напряжения.

Геометрические размеры

200х100х22 мм.