CAN протокол |
Ответить |
Автор | |
Новичок Присоединился: 27 Март 2006 Категория: Russian Federation Online Status: Offline Публикации: 5 |
Опубликовано: 28 Сентябрь 2006 15:03 |
CAN протокол нижнего уровня, он дуплексный, или полудуплексный? В документации читал про защиту от коллизий и повторах посылки при ошибках, что вроде как говорит о том, что он дуплексный, а в документации на какой-то контроллер (не помню модели Advantech) написано сто он полудуплексный |
|
Действительный член Присоединился: 27 Сентябрь 2006 Online Status: Offline Публикации: 125 |
|
Полудуплексный Сначала узлы проверяют, свободна ли линия. Как только она станет свободна, они начинают писать сообщение. Во время записи каждого бита (стадия 1) происходит одновременно чтение (стадия 2). Нуль всегда забивает единицу. Сначала передаётся идентификатор. Во время записи идентификатора если контроллер записал 1, а прочитал 0, он понимает, что у другого (других) сообщение имеет больший приоритет и он прерывает запись. Поэтому сообщение с максимальным приоритетом будет передано без задержки и коллизии (если други узлы не используют такой же идентификатор). Все эти процедуры (а также CRC, бит подтверждение, вставка инверсного бита, если подряд 6 одинаковых и т.д. ) автоматически выполняется на уровне микросхем и, в основном, не требует вмешательство программиста. Его дело организовать протокол верхнего уровня (CANopen, DeviceNet, CANkingdom...) |
|
Ответить |
Переход на форум | Права доступа на форуме Вы не можете публиковать новые темы в этом форуме Вы не можете отвечать на сообщения в этом форуме Вы не можете удалять Ваши сообщения на этом форуме Вы не можете редактировать Ваши сообщения на этом форуме Вы не можете создавать голосования на этом форуме Вы не можете выражать своё мнение в голосованиях на этом форуме |