Про CAN-шину
- Сообщения: 151
- Зарегистрирован: Ср дек 01, 2021 15:09:09
Допустим у нас в устройстве есть несколько блоков управления. Они связаны между собой - CAN-шиной. К блокам управления подключены различные датчики. Блоки управления их постоянно опрашивают. И блоки управления постоянно шлют друг другу информацию о данных с датчиков. Допустим у нас пришла информация о температуре. В двоичном коде это пусть будет 1011. Пока эти данные передаются из одного блока управления в остальные блоки, у нас ничего больше между остальными блоками передаваться не будет? Получается, пока у нас один блок передает информацию, остальные молчат?
- Реклама
В CAN-шине присутствует арбитраж доступа, который как раз и занимается подобными ситуациями.
Большой опыт, порой, не даёт находить/видеть нам простые и очевидные решения. 
Всегда с уважением, Александр.
Всегда с уважением, Александр.
- Сообщения: 151
- Зарегистрирован: Ср дек 01, 2021 15:09:09
А почему у нас CANH соединен с передатчиком, а CANL с приемником ? Получается у нас осуществляется передача и прием сигналов одновременно? И уже по разнице этих сигналов получается результирующий сигнал?
- Вложения
-
- КЭН.gif
- (22.63 КБ) 62 скачивания
Чо??? Как это? На рисунке видно, что обе линии - и CANH, и CANL - подключены ко всему. Передача осуществляется дифференциально, то есть задействованы обе линии одновременно.
И хрюкотали зелюки,
Как мюмзики в мове.
На каждый РКН
Найдётся VPN.
Как мюмзики в мове.
На каждый РКН
Найдётся VPN.
- Сообщения: 4153
- Зарегистрирован: Ср ноя 21, 2018 17:16:52
- Реклама
[uquote="PenguinChik",url="/forum/viewtopic.php?p=4165167#p4165167"]А почему у нас CANH соединен с передатчиком, а CANL с приемником ?[/uquote]
Потому что это диффиренциальный интерфейс. Сигналы в линиях зеркальны относительно друг друга.
Потому что это диффиренциальный интерфейс. Сигналы в линиях зеркальны относительно друг друга.
- Сообщения: 7518
- Зарегистрирован: Вс мар 29, 2009 22:09:05
Да. Пока идет передача одного кадра, больше никто передавать по шине не может. Но зато все, кто хочет, могут принять передаваемые данные.Пока эти данные передаются из одного блока управления в остальные блоки, у нас ничего больше между остальными блоками передаваться не будет? Получается, пока у нас один блок передает информацию, остальные молчат?
Кто будет передавать следующим, определяется по результатам арбитража, который происходит каждый раз, когда два устройства (или большее количество) пытаются начать передавать одновременно. Устройство с более высоким приоритетом захватывает шину и передает, устройство с более низким приоритетом ждет, пока шина освободится, и пробует снова.
Разница между теорией и практикой на практике гораздо больше, чем в теории.
- Сообщения: 2516
- Зарегистрирован: Пт июл 12, 2019 22:52:01
[uquote="YS",url="/forum/viewtopic.php?p=4166609#p4166609"]Устройство с более высоким приоритетом захватывает шину и передает[/uquote]
В нормальном CAN нет приоритетов. Там все определяется последовательностью битов. У кого будет первый доминантный бит, тот и "победил".
В нормальном CAN нет приоритетов. Там все определяется последовательностью битов. У кого будет первый доминантный бит, тот и "победил".
Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда.
Я на гитхабе, в ЖЖ
Я на гитхабе, в ЖЖ
- Сообщения: 7518
- Зарегистрирован: Вс мар 29, 2009 22:09:05
Ага, именно так.У кого будет первый доминантный бит, тот и "победил".
А теперь представьте себе, как это будет работать с учетом того, что адреса двоичные.
Внезапно, побеждать будет стабильно устройство с численно меньшим адресом.
Последний раз редактировалось YS Пн янв 24, 2022 20:43:59, всего редактировалось 1 раз.
Разница между теорией и практикой на практике гораздо больше, чем в теории.
- Сообщения: 2516
- Зарегистрирован: Пт июл 12, 2019 22:52:01
YS, правильно. Только приоритета никакого нет. Это — просто приятная особенность нижнего уровня протокола.
Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда.
Я на гитхабе, в ЖЖ
Я на гитхабе, в ЖЖ
- Сообщения: 7518
- Зарегистрирован: Вс мар 29, 2009 22:09:05
Ну, как хотите. Так или иначе, чем меньше адрес устройства в численном представлении, тем больше у него шансов передать сообщение первым. Механизм арбитража был специально спроектирован таким образом, что де-факто дает приоритезацию адресов.
Разница между теорией и практикой на практике гораздо больше, чем в теории.


