придумался метод исключения коллизий ответов на броадкаст запрос
адреса по методу дихотомии: - устройства начинают ответ не сразу, а
в соответствии с таймаутом, который равен интервалу передачи байта,
помноженному на "константа минус две последних цифры DevID". Все
клиенты слушают шину, и видя, что кто-то даёт ответ, - лезть со
своими пакетами на шину нe будут. "константа-минус" - это, чтобы быстрее отвечали те, кто со старшими номерами. Остальные, если видят валидный пакет ответа - не дёргаются. Ну и должен быть повторный контрольный запрос и финальная подтверждающая транзакция с ответившим.
В случае монотонно взрастающей/убывающей нумерацией, не будет коллизий в пределах сотни устройств ) а можно взять не два, а три последних знака DevID. На скорости 115200 сдвиг ответа для двузначного ожидания составит менее 10mS, а для трёхзначного - менее 100mS. За 10 итераций (1секунда, можно определиться в диапазоне 1000 устройств) Куда уж лучше :) Ну с контрольными и подтверждающими транзакциями время утроится, но всё равно время автоконфигурации в три секунды - вполне себе, а на более высоких скоростях, да хоть тех же 230400 (не говоря уже про мегабит) - от полутора секунд и меньше. Ляпота по-моему :))