реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> Диагностика ошибок CAN шины
Санёк76
сообщение Mar 6 2011, 08:27
Сообщение #1





Группа: Новичок
Сообщений: 7
Регистрация: 6-03-11
Пользователь №: 63 428



Добрый день,

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

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

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

Спасибо
Go to the top of the page
 
+Quote Post
codier
сообщение Mar 6 2011, 09:44
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 29
Регистрация: 21-01-05
Пользователь №: 2 113



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

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

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

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

Спасибо


1. Есть трансмиттеры, которые выдают такую диагностику (например TJA1041)
2. Когда принимающий CAN контроллер активен (не в sleep или listen only режиме), то он выдаёт ACK на каждый принимаемый пакет и так делают все приёмники на шине параллельно, при этом совершенно не обязательно что ACK-нутый пакет будет принят, т.к. он может быть отфильтрован по ID и маске. Если есть хоть один узел, который выдаёт ACK-и, то определить принял он пакет или нет невозможно, если только не делать это на протокольном уровне.

Сообщение отредактировал codier - Mar 6 2011, 09:48
Go to the top of the page
 
+Quote Post
Linker
сообщение Mar 17 2011, 08:49
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 210
Регистрация: 15-01-08
Из: Новосибирск
Пользователь №: 34 105



Цитата(Санёк76 @ Mar 6 2011, 14:27) *
2. отсутствие на шине контроллера с заданным адресом

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

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


--------------------
Я здесь и сейчас...
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 8th July 2025 - 07:48
Рейтинг@Mail.ru


Страница сгенерированна за 0.01385 секунд с 7
ELECTRONIX ©2004-2016