Четность, или любое обнаружение ошибок блока, предназначена для обнаружения ошибок в самой передаче данных. Четность не предназначена для определения того, происходит ли передача данных.
Учитывая линию передачи, есть несколько различных видов проблем. Здесь важны два: 1) полный отказ самой линии и 2) блокировка ошибок данных в конкретной передаче. Другими менее значимыми являются, например, неправильные линейные напряжения, ошибки протокола или ошибки безопасности. Четность помогает с 2, но не с 1. Для подсистемы на любом конце линии передачи, чтобы справиться с 1 (прямой сбой соединения), требуется другая функция протокола.
Частота обнаружения ошибок одного бита четности часто превышает 50%. Точно эта скорость зависит от эвристики сегмента данных в протоколе. Скажем, у вас есть пакет (MSB) 1011010111011110, и в последнем переданном бите есть ошибка в один бит, проверка на четность не будет выполнена, и пакет будет корректно отклонен. Точно так же, если у вас была ошибка данных в первом бите (бит четности), пакет был бы отклонен.
Выполнение этой проверки на оборудовании чрезвычайно просто и не требует сложной обработки. Это полезно в приложениях с относительно низким уровнем ошибок по битам, чтобы отсеять такие вещи, как искажение тактового сигнала или тактовые сигналы, генерируемые процессорами, выполняющими программные стеки, собираемые мусором.
SPI - это протокол физического канала, разработанный для коротких линий с электрическим соединением, где частота ошибок в одном бите не сильно зависит от потери линии. Если вы проводите что-то через линию с потерями, вам понадобится что-то более надежное, чем четность. Это не совсем то, что делает SPI.
Чтобы проверить, подключено ли устройство, попробуйте что-нибудь выше в стеке. Для сравнения, TCP / IP (в частности, IP) не определяет биты четности, в отличие от многих спецификаций Ethernet 802.x. У IP, с другой стороны, есть сложное, "ты там?" протокол. Что вы используете поверх SPI? Ответ на управление каналом передачи данных, вероятно, там.