1. В основе как понял Atmega 32 (

)/
2. Судя по схеме цепи RX/TX разделены? Т.е по сути полный дуплекс.
3. Если мастер (т.е хаб) постоянно запрашивает (статус) то о какой коллизии идет речь?
Схема и программное обеспечение должны дополнять друг друга.
Скажу сразу я не силен в программировании как таковом (т.е PHP и подобное) но МК я освоил...
Коллизии, в структурной сети состоящей из однотипных по способу формирования запросов/ответов возможны только при условии если каждое из устройств имеющих возможность занимать общую линию в случайный момент времени с генерирует свой запрос с одновременным запросом другого устройства. Но тогда.
Если сеть состоит из разделенных каналов то по сути передатчики это сами устройства а приемник -мастер.
Если же, алгоритмика формирования запроса, строится как запрос/ответ с задержкой скажем 2-5 мс. то как правило коллизии это нестандартное точнее аварийное состояние.
Приведу пример.
Скажем массив счетчиков (RS485) мастер только и "кричит " в линию ID-DATA и все в ответ DATA +СRC//
Что может быть проще. Так же в основном и строятся алгоритмы обмена, поэтому на мой взгляд стоит не отвергать проверенные годами эксплуатации решения и на которые уже подведена как материальная так и программная база.
Уже указывалось выше что в основном сети которые строят владельцы систем УД это чаще всего витая пара (лучше ее что еще ? ) а раз так то под нее и стоит играть. Далее..варианты это либо звезда на которой присутствует мультиплексорное разделение либо многоканальный МК (например Arduino Mega) либо другое схемное решение. Либо это общая шина, что проще ...но все выше описанное к ней как раз и относится.
Теперь к металлу ..
Если брать несколько устройств датчик /мастер то проще делать по схеме (RX/TX) но в алгоритм заложить простую блокировку скажем передача только по запросу "Status" тогда используя такой механизм а также определенные коды скажем взаимного обмена можно в случае отсутствия сервера генерировать мультизапрос (типа Ststus 1 //2//3) и только на него будет конкретный ответ.
Я моделировал подобные ситуации в стимуляторе (Proteus) на примере двух плат контроллера ворот и контроллера освещения, а учитывая что данные устройства имеют COM (USART/RS232) порт (не USB) то мне очень просто его перевести в (стимуляторе) скажем в RS485 то закачав виртуально в процессоры код можно играть с возможными вариантами одновременно внося оперативные изменения в скетч (код).
Либо еще вариант ...использовать промышленное устройства. (Подходит не всем) а раз так .. следовательно тему нужно продолжать.
С Уважением!