Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Диагностика ошибок CAN шины
Форум разработчиков электроники ELECTRONIX.ru > Интерфейсы > Форумы по интерфейсам > Controller Area Network (CAN)
Санёк76
Добрый день,

для организации CAN шины между AVR-контроллерами я использую связку
MCP2510 + MCP2551.

Подскажите каким образом в этом случае можно диагностировать следующие ситуации:
1. обрыв одной из линий CAN-шины
2. отсутствие на шине контроллера с заданным адресом

Должен ли приёмник посылать ша шину какой-либо сигнал на шину при принятии пакета?

Спасибо
codier
Цитата(Санёк76 @ Mar 6 2011, 11:27) *
Добрый день,

для организации CAN шины между AVR-контроллерами я использую связку
MCP2510 + MCP2551.

Подскажите каким образом в этом случае можно диагностировать следующие ситуации:
1. обрыв одной из линий CAN-шины
2. отсутствие на шине контроллера с заданным адресом

Должен ли приёмник посылать ша шину какой-либо сигнал на шину при принятии пакета?

Спасибо


1. Есть трансмиттеры, которые выдают такую диагностику (например TJA1041)
2. Когда принимающий CAN контроллер активен (не в sleep или listen only режиме), то он выдаёт ACK на каждый принимаемый пакет и так делают все приёмники на шине параллельно, при этом совершенно не обязательно что ACK-нутый пакет будет принят, т.к. он может быть отфильтрован по ID и маске. Если есть хоть один узел, который выдаёт ACK-и, то определить принял он пакет или нет невозможно, если только не делать это на протокольном уровне.
Linker
Цитата(Санёк76 @ Mar 6 2011, 14:27) *
2. отсутствие на шине контроллера с заданным адресом

Должен ли приёмник посылать ша шину какой-либо сигнал на шину при принятии пакета?

Кроме АСК ничего не должен. При условии, если это не запрос данных.
Если узел на CAN-шине пропадет, то это беда. Узнать об этом можно путем разных программных ухищрений:
1. Заставить каждый узел периодически посылать пакет о своем присутствии на шине. Если по истечении заданного времени узел не ответил, то значит он пропал. При большом количестве узлов это перегружает шину.
2. Организовать периодический опрос всех узлов. Тогда система перестает быть децентрализованой. А это одна из фишек CANa.
Может быть есть еще методы, но мне неизвестны.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.