Прошивка для плат СУЭ-П1 на базе ATmega128rfa1.
На физическом уровне устройства соединены по интерфесу RS485. С помощью преобразователя RS485 to TTL осуществляется подключение к интерфесу UART. Скорость UART выставлена на уровне 9600.
Между собой устройства соединяются кабелем Ethernet:
кор. - земля МК кор.-бел. - питание МК (+3.3В) син. - не используется (подключен к земле с одной стороны) син.-бел. - сигнальная земля зел. - земля силовая зел.-бел. - питание силовое (+12В) орн. - сигнальный B- орн.-бел. - сигнальный A+
В зависимости от типа устройства, к ним может быть подключен внешний прибор (стрелка, кнопка, светофор). Для стрелки и светофора в разрыв подключена земля. Подключение кнопки отличается.
От устройства до внешнего прибора идет 4-х жильный кабель:
** для стрелки и светофора кр. - питание (+12В) * для стрелки син. - управляющий центральным сегментом бел. - управляющий левым сегментом зел. - управляющий правым сегментом * для светофора син. - управляющий красным сегментом [квадрат] бел. - управляющий зеленым сегментом [крест] зел. - не задействован ** для кнопки кр. - не задйствован (потому что ей не требуется 12В) син. - земля бел. - питание светодиода (+3.3В) зел. - питание кнопки (+3.3В)
make all ST=ARW SA=3
ST - тип устройства
Возможнные варианты:
ARW (0x01)- световой указатель направления (стрелка)BTN (0x02)- ручной пожарный извещатель (кнопка)LHT (0x03)- световой сигнализатор разрешения использования проема (светофор)
SA - адрес устройства
Минимальное значение для адреса - 1, максимальное 127.
Программатор usbasp
make flush
Каждое устройство на линии ждет/отправляет 3 байта - пакет.
Входящий пакет [от центрального узла (ПК)]
1-й байт - адрес устройства (1 - 127 - индивидуальный, 128 - ширововещательный).
2-й байт - тип команды (SET (0x01) - отправка команды, STATUS (0x00) - запрос состояния устройства).
3-й байт - данные команды:
CMD_OFF (0x00)- отключить устройствоCMD_LEFT (0x01)- включить стрелку влевоCMD_RIGHT (0x02)- включить стрелку вправоCMD_STOP (0x01)- включить светофор в режиме стоп (запрет движения через проем)CMD_GO (0x02)- включить светофор в режиме идти (разрешение движения через проем)
В качестве широковещательной команды может быть только CMD_OFF (0x00)
Пример пакета для включения стрелки с адресом 1 вправо:
0x01 0x01 0x02
Исходящий пакет
Первые два байта возвращаются в том же виде, что и пришли. Полезная нагрузка в третьем байте. Он выполняет роль шины данных:
7 бит - устанавливается, если команда получена верно.
6 бит - для стрелки и светофора бит блокировки. Блокировка используется, чтобы избавиться от выбора режима на каждом тике.
5 бит - для стрелки и светофора бит состояния - вкл/выкл во время мигания.
4 бит - устанавливается, если нажата кнопка.
3 бит - устанавливается, если произведена запись пришедшей команды в энергонезависимую память.
2 бит - не задйествован
1 и 0 бит - команда
Пример исходящего пакета, который сообщает, что устройство с адресом 1 исполняет команду 0x02, записало эту информацию в энергонезависимую память и сейчас включено:
00000001 00000001 11101010