Санёк76 0 6 марта, 2011 Опубликовано 6 марта, 2011 · Жалоба Добрый день, для организации CAN шины между AVR-контроллерами я использую связку MCP2510 + MCP2551. Подскажите каким образом в этом случае можно диагностировать следующие ситуации: 1. обрыв одной из линий CAN-шины 2. отсутствие на шине контроллера с заданным адресом Должен ли приёмник посылать ша шину какой-либо сигнал на шину при принятии пакета? Спасибо Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
codier 0 6 марта, 2011 Опубликовано 6 марта, 2011 (изменено) · Жалоба Добрый день, для организации CAN шины между AVR-контроллерами я использую связку MCP2510 + MCP2551. Подскажите каким образом в этом случае можно диагностировать следующие ситуации: 1. обрыв одной из линий CAN-шины 2. отсутствие на шине контроллера с заданным адресом Должен ли приёмник посылать ша шину какой-либо сигнал на шину при принятии пакета? Спасибо 1. Есть трансмиттеры, которые выдают такую диагностику (например TJA1041) 2. Когда принимающий CAN контроллер активен (не в sleep или listen only режиме), то он выдаёт ACK на каждый принимаемый пакет и так делают все приёмники на шине параллельно, при этом совершенно не обязательно что ACK-нутый пакет будет принят, т.к. он может быть отфильтрован по ID и маске. Если есть хоть один узел, который выдаёт ACK-и, то определить принял он пакет или нет невозможно, если только не делать это на протокольном уровне. Изменено 6 марта, 2011 пользователем codier Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Linker 6 17 марта, 2011 Опубликовано 17 марта, 2011 · Жалоба 2. отсутствие на шине контроллера с заданным адресом Должен ли приёмник посылать ша шину какой-либо сигнал на шину при принятии пакета? Кроме АСК ничего не должен. При условии, если это не запрос данных. Если узел на CAN-шине пропадет, то это беда. Узнать об этом можно путем разных программных ухищрений: 1. Заставить каждый узел периодически посылать пакет о своем присутствии на шине. Если по истечении заданного времени узел не ответил, то значит он пропал. При большом количестве узлов это перегружает шину. 2. Организовать периодический опрос всех узлов. Тогда система перестает быть децентрализованой. А это одна из фишек CANa. Может быть есть еще методы, но мне неизвестны. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться