А такой вариант:
Мастер посылает запрос "Кто есть на шине в таком-то диапазоне адресов?" Слейвы отвечают на это переводом шины в активное состояние (передача 0) на некоторое время. Т.е. мастер принимает break, как ответ что в этом диапазоне есть как минимум 1 слейв. Ну а опрос можно свести к подобию половинного деления. Т.е. для N разрядного адреса девайса: - и 1-ом слейве его адрес найдётся за N итераций. - и 2-х слейвах их адрес найдётся за от N+1 до 2N-1 итераций. и т.д.
Время передачи брейка слеймами должно быть больше чем один символ при выбранной скорости передачи плюс разброс времени реакции всех возможных слейвов на такой запрос.
Диапазон можно сделать как адрес, и маску деиствительных бит в нём.
ЗЫ немного похож на этот метод опрос всех девайсов в микролане от далласа, где идентификаторы слейвов унакальные 64-х разрядные прошитые при изготовлении.
|