Цитата(Herz @ Apr 13 2009, 09:48)

Не могу согласится. Если их не более двух - вообще нет никаких проблем. Если более ... О каком протоколе Вы говорите? А что, в случае с IIC - нет?
С точки зрения аппаратной, если рассматривать несколько устр-в, реализуются все интерфейсы с теми или иными ограничениями.
Если брать SPI и пускать кольцо, то пропускная способность падает пропорционально колличеству учитывая % протокола. Если параллелить, то требуются линии выборки.
Если брать UART, то требуются драйверы.
И лишь I2C и 1-wire допускают подключение дополнительных устр-в без внесения аппаратных изменений в линию.
Если учесть, что мы находимся в разделе для начинающих, то я и посоветовал так.
В случае с I2C есть протокол. Но он, фактически, определён самим стандартом. В случае SPI - этого нет. Разработчику самому придётся выдумывать протокол для связи своих устр-в. Причём если предполагается приём/передача данных/команд, то протокол будет - как положено. Обязательно байтстаффинг + адрес устройства + контроль целостности пакета и т.д.
Приведу пример, просто по приколу, реализации протокола с учётом передачи данных и команд.
Передача комманд
St-AdW-Ar-Cmd-Ar-Par1-Ar-Par2-Ar-....ParN-Ar-Sp
Передача данных
St-AdW-Ar-01-Ar-Dat1-Ar-Dat2-Ar-....DatN-Ar-Sp
Чтение данных
St-AdW-Ar-Cmd-Ar-Sp St-AdR-Ar-Dat1-Aw-Dat2-Aw-....DatN-Sp
Где
St - старт
Sp - стоп
AdW/AdR - адрес с битами записи/чтения соответственно
Cmd - команда
Ar/Aw - ASK
Par/Dat - параметры/данные