Здесь принимаются все самые невообразимые вопросы... Главное - не стесняйтесь. Поверьте, у нас поначалу вопросы были еще глупее :)
Ответить

Про CAN-шину

Пт янв 21, 2022 13:03:27

Допустим у нас в устройстве есть несколько блоков управления. Они связаны между собой - CAN-шиной. К блокам управления подключены различные датчики. Блоки управления их постоянно опрашивают. И блоки управления постоянно шлют друг другу информацию о данных с датчиков. Допустим у нас пришла информация о температуре. В двоичном коде это пусть будет 1011. Пока эти данные передаются из одного блока управления в остальные блоки, у нас ничего больше между остальными блоками передаваться не будет? Получается, пока у нас один блок передает информацию, остальные молчат?

Re: Про CAN-шину

Пт янв 21, 2022 13:19:36

В CAN-шине присутствует арбитраж доступа, который как раз и занимается подобными ситуациями.

Re: Про CAN-шину

Пт янв 21, 2022 14:44:50

А почему у нас CANH соединен с передатчиком, а CANL с приемником ? Получается у нас осуществляется передача и прием сигналов одновременно? И уже по разнице этих сигналов получается результирующий сигнал?
Вложения
КЭН.gif
(22.63 KiB) Скачиваний: 42

Re: Про CAN-шину

Пт янв 21, 2022 14:54:27

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

Re: Про CAN-шину

Пт янв 21, 2022 17:42:45

Схерали, про захват линии по приоритетам не слышали чоли?

Re: Про CAN-шину

Пт янв 21, 2022 18:00:12

А почему у нас CANH соединен с передатчиком, а CANL с приемником ?


Потому что это диффиренциальный интерфейс. Сигналы в линиях зеркальны относительно друг друга.

Re: Про CAN-шину

Вс янв 23, 2022 19:50:08

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


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

Кто будет передавать следующим, определяется по результатам арбитража, который происходит каждый раз, когда два устройства (или большее количество) пытаются начать передавать одновременно. Устройство с более высоким приоритетом захватывает шину и передает, устройство с более низким приоритетом ждет, пока шина освободится, и пробует снова.

Re: Про CAN-шину

Вс янв 23, 2022 23:56:22

Устройство с более высоким приоритетом захватывает шину и передает

В нормальном CAN нет приоритетов. Там все определяется последовательностью битов. У кого будет первый доминантный бит, тот и "победил".

Re: Про CAN-шину

Пн янв 24, 2022 20:37:36

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


Ага, именно так.

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

Внезапно, побеждать будет стабильно устройство с численно меньшим адресом.
Последний раз редактировалось YS Пн янв 24, 2022 20:43:59, всего редактировалось 1 раз.

Re: Про CAN-шину

Пн янв 24, 2022 20:43:41

YS, правильно. Только приоритета никакого нет. Это — просто приятная особенность нижнего уровня протокола.

Re: Про CAN-шину

Пн янв 24, 2022 20:45:48

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