Про CAN-шину

Здесь принимаются все самые невообразимые вопросы... Главное - не стесняйтесь. Поверьте, у нас поначалу вопросы были еще глупее :)
Ответить
Нашел транзистор. Понюхал.
Аватара пользователя
Сообщения: 151
Зарегистрирован: Ср дек 01, 2021 15:09:09

Сообщение PenguinChik »

Допустим у нас в устройстве есть несколько блоков управления. Они связаны между собой - CAN-шиной. К блокам управления подключены различные датчики. Блоки управления их постоянно опрашивают. И блоки управления постоянно шлют друг другу информацию о данных с датчиков. Допустим у нас пришла информация о температуре. В двоичном коде это пусть будет 1011. Пока эти данные передаются из одного блока управления в остальные блоки, у нас ничего больше между остальными блоками передаваться не будет? Получается, пока у нас один блок передает информацию, остальные молчат?
Реклама
Друг Кота
Аватара пользователя
Сообщения: 6643
Зарегистрирован: Чт авг 09, 2012 01:09:39
Откуда: Ливны

Сообщение korob »

В CAN-шине присутствует арбитраж доступа, который как раз и занимается подобными ситуациями.
Большой опыт, порой, не даёт находить/видеть нам простые и очевидные решения. :(
Всегда с уважением, Александр.
Реклама
Нашел транзистор. Понюхал.
Аватара пользователя
Сообщения: 151
Зарегистрирован: Ср дек 01, 2021 15:09:09

Сообщение PenguinChik »

А почему у нас CANH соединен с передатчиком, а CANL с приемником ? Получается у нас осуществляется передача и прием сигналов одновременно? И уже по разнице этих сигналов получается результирующий сигнал?
Вложения
КЭН.gif
(22.63 КБ) 63 скачивания
Друг Кота
Аватара пользователя
Сообщения: 16984
Зарегистрирован: Пт мар 30, 2012 05:17:29
Откуда: Екатеринбург

Сообщение mickbell »

Чо??? Как это? На рисунке видно, что обе линии - и CANH, и CANL - подключены ко всему. Передача осуществляется дифференциально, то есть задействованы обе линии одновременно.
И хрюкотали зелюки,
Как мюмзики в мове.

На каждый РКН
Найдётся VPN.
Реклама
Эиком - электронные компоненты и радиодетали
Друг Кота
Сообщения: 4153
Зарегистрирован: Ср ноя 21, 2018 17:16:52

Сообщение Express »

Схерали, про захват линии по приоритетам не слышали чоли?
=
Реклама
Друг Кота
Аватара пользователя
Сообщения: 4651
Зарегистрирован: Ср сен 30, 2020 16:51:47
Откуда: РФ

Сообщение electroget »

[uquote="PenguinChik",url="/forum/viewtopic.php?p=4165167#p4165167"]А почему у нас CANH соединен с передатчиком, а CANL с приемником ?[/uquote]

Потому что это диффиренциальный интерфейс. Сигналы в линиях зеркальны относительно друг друга.
Реклама
YS
Друг Кота
Аватара пользователя
Сообщения: 7518
Зарегистрирован: Вс мар 29, 2009 22:09:05

Сообщение YS »

Пока эти данные передаются из одного блока управления в остальные блоки, у нас ничего больше между остальными блоками передаваться не будет? Получается, пока у нас один блок передает информацию, остальные молчат?
Да. Пока идет передача одного кадра, больше никто передавать по шине не может. Но зато все, кто хочет, могут принять передаваемые данные.

Кто будет передавать следующим, определяется по результатам арбитража, который происходит каждый раз, когда два устройства (или большее количество) пытаются начать передавать одновременно. Устройство с более высоким приоритетом захватывает шину и передает, устройство с более низким приоритетом ждет, пока шина освободится, и пробует снова.
Разница между теорией и практикой на практике гораздо больше, чем в теории.
Контактная информация:
Собутыльник Кота
Аватара пользователя
Сообщения: 2516
Зарегистрирован: Пт июл 12, 2019 22:52:01

Сообщение Eddy_Em »

[uquote="YS",url="/forum/viewtopic.php?p=4166609#p4166609"]Устройство с более высоким приоритетом захватывает шину и передает[/uquote]
В нормальном CAN нет приоритетов. Там все определяется последовательностью битов. У кого будет первый доминантный бит, тот и "победил".
Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда.
Я на гитхабе, в ЖЖ
Контактная информация:
YS
Друг Кота
Аватара пользователя
Сообщения: 7518
Зарегистрирован: Вс мар 29, 2009 22:09:05

Сообщение YS »

У кого будет первый доминантный бит, тот и "победил".
Ага, именно так.

А теперь представьте себе, как это будет работать с учетом того, что адреса двоичные.

Внезапно, побеждать будет стабильно устройство с численно меньшим адресом.
Последний раз редактировалось YS Пн янв 24, 2022 20:43:59, всего редактировалось 1 раз.
Разница между теорией и практикой на практике гораздо больше, чем в теории.
Контактная информация:
Собутыльник Кота
Аватара пользователя
Сообщения: 2516
Зарегистрирован: Пт июл 12, 2019 22:52:01

Сообщение Eddy_Em »

YS, правильно. Только приоритета никакого нет. Это — просто приятная особенность нижнего уровня протокола.
Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда.
Я на гитхабе, в ЖЖ
Контактная информация:
YS
Друг Кота
Аватара пользователя
Сообщения: 7518
Зарегистрирован: Вс мар 29, 2009 22:09:05

Сообщение YS »

Ну, как хотите. Так или иначе, чем меньше адрес устройства в численном представлении, тем больше у него шансов передать сообщение первым. Механизм арбитража был специально спроектирован таким образом, что де-факто дает приоритезацию адресов.
Разница между теорией и практикой на практике гораздо больше, чем в теории.
Контактная информация:
Ответить

Вернуться в «Теория»