Тонкий клиент RS-485

 

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

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

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

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

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

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

  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 для выключения.

Индикация

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

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

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

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

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

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

ttyS2

Колодка расширения "ttyS2" напрямую передает контакты микрокомпьютера UART2 с CMOS уровнями (будьте осторожны при подключении и использовании!). В зависимости от конфигурации ядра linux, их так же можно использовать для ввода/вывода логических сигналов или для обслуживания каких-нибудь специфических протоколов (наподобии 1-wire).

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

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

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

Питание

Устройство потребляет от 9 до 16 вольт постоянного тока (напряжение питания клиентов проводится без потерь и соответствует входному) и максимально энергоэффективно (максимальные потери при интенсивной работе микрокомпьютера с дополнительной нагрузкой на USB около одного ватта), что позволяет использовать аккумуляторы для бесперебойного питания системы.

Рекомендуемая нагрузка по питанию +5В - не более 3А (включая компьютер и его обвес по USB).

Рекомендуемый источник питания - 12В 2А (3А максимум), с учетом передачи до 1А в линию устройств.

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

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

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

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

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

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

Расстояние между угловыми крепежными отверстиями: 89 мм. Диаметр отверстий: 3,2 мм.