Тонкий клиент RS-485
Сделан на базе Orange Pi Zero. Кроме своей основной функциональности - обслуживания сети клиентских устройств по аппаратному протоколу RS-485, плата обеспечивает подачу контролируемого паразитного питания для них и имеет на борту dc/dc преобразователь для питания микрокомпьютера и его периферии.
Контроль питания клиентов
Предельное значение тока, передаваемого в линию устройств, по умолчанию установлено в 1А и может быть изменено записью в регистр памяти 2. Режим отработки "предохранителя" задается в регистре 3 и имеет следующие варианты: 0 - средневзвешенное значение (за 256 проходов измерения), 1 - по мгновенному значению тока.
Амперметр возвращает (и устанавливается) значения с коэффициэнтом приблизительно 55 мА на единицу.
Порт расширения
Дополнительный порт расширения, находящийся в непосредственной близости от главного микроконтроллера, имеет следующие контакты:
- общий провод;
- +5В для питания плат расширения;
- сигнал принудительного сброса микроконтроллера;
- pin/output #3;
- pin/output #2;
- pin/output #1.
Настройка назначения (вход/выход) контактов порта расширения задается в регистре 0 одним байтом имеющим следующую битовую маску:
- направление pin 1 (0 - вход, 1 - выход);
- направление pin 2 (0 - вход, 1 - выход);
- направление pin 3 (0 - вход, 1 - выход).
Та же маска задает инверсию входов/выходов в регистре 1 (0 - без инверсии, 1 - инверсно).
Остальные биты игнорируются. Бит #0 всегда выход без инверсии и управляет подачей питания в линию клиентов. При включении или сбросе микроконтроллера, после измерения значения датчика тока, соответствующего нулю, микропрограмма производит попытку подачи питания в линию.
Как и остальные логические выходы, порт управления питанием может управляться программно, путем передачи в нужный номер порта длительности его включения в секундах (2 байта) или 0 для выключения.
Индикация
Плата имеет два светодиодных индикатора работы. RGB светодиод, расположеный рядом с колодкой соединения линии, имеет следующие назначение цветов:
- синий - передача данных в линию (включая служебный трафик);
- зеленый - ответ клиентского устройства;
- красный - ошибка в обмене с клиентом.
Постоянное свечение красного сигнализирует об отсутствии связи с клиентскими устройствами.
Индикатор обмена с микрокомпьютером имеет два цвета, обозначающих:
- синий - идет обмен с компьютером;
- красный - ошибка в обмене (компьютер передает неверные сигналы управления или передача ведется с неправильной скоростью потока).
Индикация так же настраиваема и содержит два байта: первый - разрешение, второй - яркость свечения. Их битовые маски:
- ошибка обмена с компьютером;
- обмен данных с компьютером;
- ошибка в линии RS-485;
- передача в линию устройств;
- ответ клиента.
Остальные биты игнорируются.
ttyS2
Колодка расширения "ttyS2" напрямую передает контакты микрокомпьютера UART2 с CMOS уровнями (будьте осторожны при подключении и использовании!). В зависимости от конфигурации ядра linux, их так же можно использовать для ввода/вывода логических сигналов или для обслуживания каких-нибудь специфических протоколов (наподобии 1-wire).
Ее основное назначение - подключение дополнительного мастера сети клиентских устройств.
Назначение выводов (по ключу):
- общий провод;
- +5В для питания плат расширения;
- UART RX / PA1;
- UART TX / PA0;
- UART CTS / PA3;
- 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 мм.