|
Если слэйв имеет возможность отвечать на каждый байт от мастера (если есть гарантия, что байты не будут пропускаться) - тогда особого протокола не нужно, достаточно в ответ на команду запроса выдать байт статуса, в котором, например, содержатся биты готовности слэйва к приему данных, наличия данных для выдачи мастеру и т.п. Если же такой гарантии нет - то тогда придется реализовывать достаточно серьезный протокол.
Для примера:
- данные пересылаются пакетами, начинающимися и заканчивающимися определенными байтами;
- в теле пакета должна присутствовать длина пакета и контрольная сумма пакета;
- желательно, чтобы форматы пакетов от мастера к слэйву и обратно несколько различались (во избежание приема мастером собственных пакетов, в случае, если слэйв по какой-либо причине ничего не пишет в регистр данных SPI);
- в протоколе должны быть предусмотрены тайм-ауты для возврата в исходное состояние после возникновения ошибки на шине.
E-mail: info@telesys.ru