Цитата
Но сейчас висит на основном процессоре десяток слейвов и уже прото неприлично выглядит выдача команд а потом опрос по кругу -- кто же готов, чтобы из него вынуть информацию и пнуть дальше. Шина постоянно занята тупым опросом.
Какая-то ситуация не совсем логичная для I2C. Не понимаю , что мешает слейву , который готов отдать данные , назначить cебя мастером , захватить шину и передать данные. Пусть у Вас все будут слейвами , до тех пор пока они не готовы выдать информацию для остальных или основному процессору. Любое устройство ,с "мозгами", может быть мастером и слейвом и в зависимости от Вашей программы может работать в этих двух режимах.
А если Ваш слейв , от которого требует мастер данные , просто не готов их ему дать

, занят он чем то другим? Причём может быть более важным

, чем общение с мастером. Мастер при этом вместо того что бы выполнять свою работу тупо ждёт получение данных от этого слейва

, когда , например, остальные уже готовы дать ему информацию и продолжить свою работу.
Цитата
А так -- нет никаих проблем в формате данных в пакетах с комадой "дай" завести поля "вот-это" и "вон-тому", причём "вон-тому" может и не совпадать с адресом того, кто выдал саму команду
Вы посчитайте этот формат. И при этом посчитайте , что слейв должен отличать на шине команду ("дай" "вот-это" и "вон-тому" ) от просто данных , которые ему может посылать мастер. Поэтому нужен ещё и префикс , что идёт команда , а не данные. А в диапазоне 8 бит , очень сложно ( а практически невозможно) найти свободное число для префикса команды, т.к. любое число в одном байте можно интерпретировать как данные и как команду. Поэтому потребуется не один байт , а несколько , которые слейв "сложит" в понимание , что получает команду. И тут время опять удлиняется, слейв должен "расшифровать" , что он получает.