Тонкий клиент RS-485 с поддержкой питания

 

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

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

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

Кроме стандартной сети устройств на линии RS-485, прибор предоставляет интерфейс для подключения по Dallas 1-wire (MicroLan) ликвидируя проблему перехода TTL/CMOS, характерную для SOC микрокомпьютеров.

Колодка питания

Включает (справа налево):

* следует учитывать мощность источника питания за вычетом внутреннего потребления устройства (не менее 150мА) и потребления линии устройств.

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

Колодка подключения линии устройств

Кроме защищенных клем A и B (от -7В до +12В), имеет контакты общего провода и вывода резервного питания.

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

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

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

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

ttyS2

Колодка расширения "ttyS2" напрямую передает контакты микрокомпьютера UART2 с CMOS уровнями (будьте осторожны при подключении и использовании!).

Ее основное назначение - подключение дополнительного мастера сети клиентских устройств.

Назначение выводов (по ключу):

  1. общий провод;
  2. +5В для питания плат расширения;
  3. UART RX / PA1;
  4. UART TX / PA0;
  5. UART CTS / PA3;
  6. UART RTS / PA2.

Конфигурационный файл робота имеет вид:

[/dev/ttyS1]
dtr=19
dsr=18

[/dev/ttyS2]
dtr=3
dsr=2

Dallas 1-wire

Прибор предоставляет возможность подключения сети клиентских устройств, работающих по протоколу MicroLan. Оно осуществляет преобразование уровней TTL/CMOS для комфортной работы стандартных чипов термометров реле и сенсоров, без подачи дополнительного питания +5В.

Мастер никак не задействован в логике опроса. Программное обслуживание линии осуществляется непосредственно драйвером ОС. Конфигурационный файл системы должен включать следующие строки:

overlays=analog-codec uart1 uart2 usbhost2 usbhost3 w1-gpio
param_w1_pin=PA06
param_w1_pin_int_pullup=1

Мультимедиа

На плате установлен микрофон для обработки компьютером голосовых команд.

Так же, на плате присутствует разъем выхода звука, имеющий активный ФНЧ второго порядка, эффективно убирающий шумы ЦАП выхода микрокомпьютера.

Вспомогательные выходы USB микрокомрьютера тоже обеспечены внешними разъемами.

Индикация

На плате установлены четыре светодиодных индикатора, описывающих текущее состояние прибора.

Состояние обмена с компьютером

Состояние аккумулятора

Режим питания

* синий светодиод дополняет текущее состояние источника питания и меняет цвета индикатора на бирюзовый и фиолетовый соответственно.

Линия устройств

* в данной модели "пустой" ответ устройства не отображается - индикация включается только при приеме пакета значимых данных.

Управление логическими выходами

Выходы с индексами от 0 до 3 получают команду на включение (изменение состояния) передачей значения длительности в секундах (2 байта). Если длительность превышает 6500 секунд, включение производится навсегда (до поступления новых данных или перезагрузки устройства).

Нулевой выход управляет резервным питанием линии и включается автоматически, после перезагрузки устройства.

Дополнительные логические датчики

Пин #4 отображает текущий режим заряда аккумулятора (1 - идет заряд).

Пин #5 сигнализирует о наличии и готовности аккумулятора (не запрещен).

Программное управление аккумулятором

Для эффективного обслуживания и горячей замены батареи, микропрограмма устройства принимает команду "D" с индексом 0 и одним байтом информации, имеющем значения:

  1. запрет обслуживания аккумулятора;
  2. отмена запрета;
  3. остановка заряда батареи (если напряжение больше минимума);
  4. принудительный старт заряда.

Сторожевой таймер

Устройство может управлять подачей питания микрокомпьютеру, прерывая ее через указанный интервал на заданую длительность.

Команда "W" с индексом 0 устанавливает количество секунд, через которое компьютер будет принудительно перегружен, если за это время не поступит повтор команды. Передача значения 0 отменяет действие таймера.

Команда "W" с индексом 1 указывает количество секунд, на которое питание компьютера будет снято. Если оно имеет нулевое значение, повторное включение компьютера возможно только после перезагрузки устройства.

Значения длительностей лежат в диапазоне 0-255 (один байт).

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

Аналоговые датчики

Значения тока и напряжения поступают со следующими индексами:

  1. линия связи;
  2. основное питание;
  3. аккумулятор.

Коэффициэнт пересчета для всех датчиков напряжения - 25мВ на единицу; датчиков тока - 12мА.

Нулевое значение датчика тока аккумулятора - 0x8000, что позволяет отслеживать токи заряда (положительные) и разряда (в минус).

Датчик температуры платы в области компонентов, обеспечивающих питание, имеет индекс 0. Внешний термометр, предназначеный для контроля состояния батареи, приходит под индексом 1.

Передаваемые значения - температура в Кельвинах, умноженая на 100 (a=-273,15; k=0,01).

 

Настройки

Записываются во FLASH память микроконтроллера и служат значениями по умолчанию при его старте.

Протокол обмена

Мастер сети способен обслуживать устройства как по основному, так и по упрощенному протоколам. Настройка режима работы записывается в регистр 4 (один байт) и имеет значения: 0 - стандартный; 1 - ускоренный протокол обмена.

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

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

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

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

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

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

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

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

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

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

Значения всех регистров записываются в абсолютных внутренних величинах (щелчках). При вводе, требуется пересчет в соответствии с коэффициэнтами датчиков.

Все значения имеют размер два байта.

Регистр 6 содержит минимальную величину напряжения, ниже которой начинается заряд батареи (по умолчанию 13,2В).

В регистре 7 содержится значение напряжения до которого следует заряжать батарею (по умолчанию 14,8В).

Максимальный ток, потребляемый от источника питания записывается в регистр 8 и, по умолчанию, имеет значение 2А.

Рекомендованый ток заряда аккумулятора содержится в регистре 9 (по умолчанию 500мА).

Таким образом, стандартные настройки предполагают использование импульсного блока питания 12В/3А и свинцового (гелевого) аккумулятора "12В" емкостью 2.4А/ч.

Фильтр аналогового отчета

Для уменьшения нагрузки на БД, данные по аналоговым датчикам можно игнорировать. Тем не менее, они будут доступны по прямому запросу системы.

Битовая маска фильтра:

  1. температура платы;
  2. температура аккумулятора;
  3. ток аккумулятора;
  4. напряжение БП;
  5. напряжение на аккумуляторе;
  6. напряжение питания линии;
  7. ток БП;
  8. ток в линии устройств.

Устанавливаемые значения: 1 - передавать автоматически.

Длительность провала питания микрокомпьютера

Значение по умолчанию записывается в регистр 11 и имеет размерность в один байт.

 

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

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

Запросы
команда данные описание
R   Полная перезагрузка устройства.
r   Сброс портов, перезагрузка базового значения амперметра и питания линии.
S   Сброс дополнительных портов в неактивное состояние (с учетом инверсии).
i   Запрос модели устройства.
p индекс пина
или пусто
Запрос состояния логических входов/выходов.
a индекс пина
или пусто
Запрос значения тока.
v индекс пина
или пусто
Запрос значения напряжения питания.
t индекс пина
или пусто
Запрос значений датчиков температуры.
d   Запрос списка активных устройств.
o #вывода + 2 байта длительности
или 4х2 байта для всех портов
Изменение состояния вывода (включение) на длительность в секундах. Если длительность больше 65000, постоянное включение (до сброса или следующего изменения).
Порядок следования байт длительности - от старшего.
Порядок следования портов (для управления одним пакетом) - от 0 до 3, без указания номера порта.
M #регистра + значение Запись настроек в EEPROM.
0 - направление выводов + 1 байт маски.
1 - инверсия выводов + 1 байт маски.
2 - максимальная величина тока в линии + 2 байта - значение.
3 - метод замера тока для "предохранителя" + 1 байт (0 - средневзвешенное значение, 1 - мгновенное).
4 - версия протокола + 1 байт.
5 - длительность в мс игнорирования превышения тока при подаче питания в линию устройств + 2 байта - значение.
6 - старт заряда аккумулятора + 2 байта - значение.
7 - максимальное напряжение заряда + 2 байта - значение.
8 - предельный ток потребления от БП + 2 байта - значение.
9 - номинальный ток заряда аккумулятора + 2 байта - значение.
10 - фильтр аналогового отчета + 1 байт маски.
11 - длительность по умолчанию провала питания + 1 байт.
W 1 байт индекс 0 - Сторожевой таймер.
1 - Длительность отключения питания компа.
D 1 байт индекс = 0 Режим аккумулятора:
0 - запрет;
1 - разрешение;
2 - останов заряда;
3 - принудительный запуск заряда.
Ответы
команда данные описание
A   Подтверждение успешного приема команды.
E   Ошибка в команде.
U   Команда не поддерживается
L   Неправильная длина принятых данных (не соответствует протоколу).
u 1 байт адреса Устройство активно (вышло на связь).
N 1 байт адреса Устройство не отвечает (выключено или отсутствует).
i LINE MASTER UPS Ответ названия (типа) устройства.
p 1 байт - количество изменений
[1 байт - номер +1 байт - состояние]
Состояния изменений в логических входах/выходах. При старте или по запросу - текущее состояние всех контактов.
a 1 байт - количество изменений
1 байт - индекс
2 байта - значение
Значение датчиков тока.
v 1 байт - количество изменений
1 байт - индекс
2 байта - значение
Значение датчиков напряжения.
t 1 байт - количество изменений
1 байт - индекс
2 байта - значение
Значение датчиков температуры.

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

Размеры платы с установленным микрокомпьютером: 186х64х24 мм.

Минимальная высота установки над внутренней поверхностью корпуса (крепежные стойки): 4 мм.