Easyelectronics.ru • Просмотр темы - CAN шина. Помогите разобраться со статусом занятости

Easyelectronics.ru

Электроника для всех
Текущее время: 15 авг 2018, 22:05

Часовой пояс: UTC + 5 часов



    • JLCPCB - Прототипы 10 PCBs всего за 2$ (100*100mm, 2-layer)
    • Как мы делаем платы, смотрите на YouTube
    • Крупнейшая китайская фабрика прототипов. 300000+ заказчиков и 10000+ заказов в день!
    • LCSC - Крупнейший китайский онлайн магазин комплектующих.

Начать новую тему Ответить на тему  [ Сообщений: 4 ] 
Автор Сообщение
 Заголовок сообщения: CAN шина. Помогите разобраться со статусом занятости
СообщениеДобавлено: 15 май 2018, 13:01 
Здравствуйте!

Зарегистрирован: 15 май 2018, 12:49
Сообщения: 2
Итак. Все привет. Начал осваивать шину CAN.
И здесь возникло пару, может быть детских вопросов, но на которые я так и не нашел внятного ответа.

Факт 1, озвученный в литературе.
Любой узел перед тем как отправить сообщение проверяет шину на занятость.
Если шина занята, то узел ждет, пока она освободится.
Вопрос - как узел узнает о том что шина занята или свободна? На шине всего два состояния - рецессивное и доминантное. Причем по ним я в теории ну никак не могу определить, передается что-то в текущий момент или нет. Рецессивное состояние может быть банальной паузой в середине сообщения.

Факт 2. При пересылке сообщений от нескольких узлов, приоритет определяется с помощью поля арбитража. Всё понятно и доступно, в случае если узлы передают мессадж одновременно. Но..
Вопрос - где гарантия, что второй узел вдруг не начнет передавать сообщение на середине сообщения от первого узла? Ведь поля арбитража не совпадут в кадре. Или.. В общем, что будет, если второй нод (узел) начнет передавать сообщение не одновременно с первым, а спустя время (первый ещё не завершил передачу)?? А ещё прикольнее, если второй узел начнет вещать на другой скорости, много отличной от скорости работы первого. Что будет?

Помогите разобраться.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: CAN шина. Помогите разобраться со статусом занятости
СообщениеДобавлено: 15 май 2018, 13:17 
Старожил

Зарегистрирован: 10 окт 2014, 00:48
Сообщения: 4645
"Вопрос - как узел узнает о том что шина занята или свободна? "
По наличию импульсов обмена в шине. Каждый узел ВСЕГДА слышит то, что передается в шине, в том числе и собственную передачу. Если собственная передача искажается, то передача прерывается.
"Вопрос - где гарантия, что второй узел вдруг не начнет передавать сообщение на середине сообщения от первого узла? "
В протоколе. Перед началом передачи должна быть пауза обмена (простой шины). Без этого передача не начнется.

Почитайте материалы по CAN, всё очень подробно разжевано и на русском.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: CAN шина. Помогите разобраться со статусом занятости
СообщениеДобавлено: 15 май 2018, 13:23 
Здравствуйте!

Зарегистрирован: 15 май 2018, 12:49
Сообщения: 2
u37 писал(а):
"Вопрос - где гарантия, что второй узел вдруг не начнет передавать сообщение на середине сообщения от первого узла? "
В протоколе. Перед началом передачи должна быть пауза обмена (простой шины). Без этого передача не начнется.

Почитайте материалы по CAN, всё очень подробно разжевано и на русском.


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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: CAN шина. Помогите разобраться со статусом занятости
СообщениеДобавлено: 15 май 2018, 13:29 
Старожил

Зарегистрирован: 10 окт 2014, 00:48
Сообщения: 4645
Глюканет кто? Протокол заложен в трансивер и периферию MCU. Сбой на этом уровне несравнимо меньше всего, что может сделать "человек". Лучше обратите внимание на гнусное свойство автопередачи при ошибке, полностью блокирующую обмен или банальные замыкания линий обмена. Как ни странно, это тоже может исправить CAN - смотрите CAN low speed (Fault-Tolerant CAN).


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 4 ] 

Часовой пояс: UTC + 5 часов


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB