logo
Промышленная сеть CAN

3.2.3 Методы обнаружения ошибок

CAN протокол определяет пять способов обнаружения ошибок в сети:

· Bit monitoring;

· Bit stuffing;

· Frame check;

· ACKnowledgement Check;

· CRC Check.

Bit monitoring - каждый узел во время передачи битов в сеть сравнивает значение передаваемого им бита со значением бита, которое появляется на шине. Если эти значения не совпадают, то узел генерирует ошибку Bit Error. Естественно, что во время арбитража на шине (передача поля арбитража в шину) этот механизм проверки ошибок отключается.

Bit stuffing - когда узел передает последовательно в шину 5 бит с одинаковым значением, то он добавляет шестой бит с противоположным значением. Принимающие узлы этот дополнительный бит удаляют. Если узел обнаруживает на шине больше 5 последовательных бит с одинаковым значением, то он генерирует ошибку Stuff Error.

Frame Check - некоторые части CAN-сообщения имеют одинаковое значение во всех типах сообщений. Это означает, что протокол CAN точно определяет, какие уровни напряжения и когда должны появляться на шине. Если формат сообщений нарушается, то узлы генерируют ошибку Form Error.

ACKnowledgement Check - каждый узел, получив правильное сообщение по сети, посылает в сеть доминантный бит. Если же этого не происходит, то передающий узел регистрирует ошибку Acknowledgement Error.

CRC Check - каждое сообщение CAN содержит CRC сумму, и каждый принимающий узел подсчитывает значение CRC для каждого полученного сообщения. Если подсчитанное значение CRC суммы не совпадает со значением CRC в теле сообщения, принимающий узел генерирует ошибку CRC Error.

Контроль сообщений, использующий пять перечисленных механизмов проверки передаваемых сообщений, реализован на аппаратном уровне. CAN-контроллер регистрирует ошибки и оценивает их статистическими методами для принятия соответствующих мер - вплоть до отключения от сети ошибающегося узла.