Цитата(Dubov @ Jul 11 2012, 20:35)

а как обычо с spi дела обстоят?
SPI аппаратно выглядит как два сдвиговых регистра прием\передача (посмотрите структуру SPI в любом микроконтроллере).
Каких либо специальных схемотехнических коррекций ошибок в регистрах не предусматривают.
Назначение SPI - быстро передать данные между двумя (иногда больше) микросхемами на небольшом расстоянии. При такой передаче обычно принимается - что помех во время передачи нет и информация не искажается. На практике - помехи бывают, и приемник можент не успевать - в итоге - некоторые биты в посылке искажаются приемником.
В просетйшем случае отправляют данные в "собственном" формате - байты данных + байты CRC.
Приемная сторона начинает разбирать данные с проверки CRC, если приняли с ошибкой - корректируем или запрашиваем данные повторно.
Каким боком SPI появился в USB? Мост между протоколами?
Рекомендую почитать "Сетевая модель OSI", станет понятно об уровнях протоколов при передаче данных.