Протокол CAN регламентирует сообщения, с помощью которых устройства в сети обмениваются данными. Он был первоначально разработан для применения в автомобильной промышленности.
Разработка шины CAN была запущена в начале 80-х годов. В 1986 г. система последовательной шины Controller Area Network (CAN) была представлена на конгрессе Ассоциации инженеров автомобилестроения (SAE), что ознаменовало появление одного из самых успешных когда-либо созданных сетевых протоколов.
Сегодня протокол CAN, позволяющий объединять в единое целое различные контрольные блоки и системы управления, используется во всех современных автомобилях и в других транспортных средствах, от поездов до кораблей, а также в промышленных системах управления (где он называется DeviceNet).
Шина CAN, адаптированная для применения на морских судах, известна как сеть NMEA 2000.
Протокол CAN является сегодня одним из доминирующих и возможно даже основным во всем мире инструментом системы последовательной шины, используемым для соединения всех видов приборов и оборудования в одной сети.
CAN — это широковещательный стандарт последовательной шины для соединения нескольких ведущих электронных устройств. Этот тип соединения известен как multi-master, что означает отсутствие центрального узла управления.
Каждый узел (электронное устройство) шины может отправлять и получать сообщения, но не одновременно. Сообщение состоит, прежде всего, из идентификатора (ID), который обычно выбирается для определения типа сообщения или отправителя и включает до восьми байтов данных. Он передается в шину последовательно. Все узлы (устройства) имеют процессор узла и интерфейс CAN, через который они подключаются к шине. Если шина свободна, любой узел может начать передачу. Если два и более узлов начнут отправку сообщений одновременно, сообщение с более доминирующим ID (который имеет больше доминирующих битов, то есть нулей) переписывает менее доминирующие ID других узлов. Таким образом, в конечном счете (после ID-арбитража) остается только доминирующее сообщение, которое получается всеми узлами. Приемные узлы затем определяют, представляет ли значение идентификатора какой-либо интерес для них или нет.
После завершения передачи доминирующего сообщения все «проигравшие стороны» в арбитражном процессе пытаются отправить свои сообщения еще раз. Это так называемый недеструктивный арбитраж, при котором сообщение с самым высоким приоритетом не уничтожается.
Протокол CAN является событийно-управляемым в противоположность протоколу с инициацией по времени. Архитектура шины не предполагает ограничений в отношении того, когда узлы могут отправлять сообщения в сеть.
Помехоустойчивость
Информация передается по шине как разность потенциалов между двумя сигнальными линиями CAN_H и CAN_L. Если обе линии имеют одинаковое напряжение, сигналом является рецессивный бит. Если потенциал линии CAN_H выше, чем потенциала линии CAN_L на 0,9 В, сигнал линии является доминантным битом. Никакой независимой опорной точки заземления для этих двух линий не существует. Таким образом, шина оказывается неуязвима для любых фоновых шумов.
Сигналы двух линий CAN подвергаются тем же самым электромагнитным наводкам, следовательно, разность потенциалов между этими двумя линиями будет оставаться неизменной. Поэтому шина неуязвима также для электромагнитных помех.
NMEA 2000 Network
В этом разделе будут рассмотрены следующие вопросы:
- Топология сети NMEA 2000
- Кабели сети NMEA 2000 и их длина
- Соединители сети MNEA 2000 и терминальные согласующие устройства
- Питание и заземление сети NMEA 2000
Сетевая топология
В кабельной системе NMEA 2000 используется топология магистрали с отводами и линиями снижения.
Чтобы сетевые кабели можно было использовать в качестве линии передачи данных и для питания постоянного тока, они должны отвечать определенным требованиям в отношении волнового сопротивления, задержки распространения и сечения провода.
В сетях NMEA 2000 должен использоваться отдельный водонепроницаемый кабель, включающий одну витую пару сигнальных проводов, одну витую пару проводов питания и провод заземления. Провод заземления экранирует сигнальные провода и провода питания от внешних радиочастотных помех, а также снижает собственное радиоизлучение кабеля.
Допускается использование трех видов кабелей: мини-кабель (Mini cable), который обычно используется для сетевой магистрали из-за способности выдерживать токи до 8 A, средний кабель (Mid cable), обычно используемый в качестве магистрали в малых сетях, и микро кабель (micro cable), обычно используемый в качестве кабельных отводов для подключения устройств к магистрали (оба последних кабеля выдерживают токи до 4 A). Чем тоньше кабель, тем большей гибкостью он обладает при установке.
Длина сетевых кабелей
Поскольку все устройства в сети должны получать одни и те же биты данных в те же самые интервалы времени, максимальной длина сети NMEA 2000 между двумя конечными точками не должна превышать 200 м, что теоретически соответствует максимальный скорости передачи данных 250 кб/с.
Ограничения проводов питания по току могут, однако, еще больше снизить максимальную длину кабеля.
Поскольку устанавливать терминальные резисторы на устройствах, подключенных к сети не требуется, длина линии снижения не должна превышать 6 м, чтобы не вызвать отражения сигналов в сеть. К сети можно подключать до 50 устройств, однако совокупная длина линий снижения в сети не может превышать 78 м.
Для подключения устройств к магистрали используются тройниковые соединители.
Объединение устройств в гирляндную цепь не допускается!
Соединители
Для подключения кабелей к устройствам или другим компонентам сети стандарта NMEA2000 используются 5-контактные промышленные соединители, превращающие сеть в систему plug.and-play.
Разводка контактов соединителя и цветовая маркировка проводов показаны ниже.
Цвет | Наименование | Назначение |
Модель | FCV-295 | CVS-1410 |
Белый | CAN_H | Сигнал |
Синий | CAN_L | Сигнал |
Оголенный | SHIELD | Экран/заземление |
Черный | Power-C | Общий провод питания |
Красный | Power-S | Питание |
Cетевые оконечные устройства
Чтобы уменьшить отражения сигналов в сети, необходимо установить согласованную нагрузку
на каждом конце соединительной линии. Если сеть не будет оборудована терминальными резисторами, она не будет работать должным образом.
Терминальный резистор обычно подключается к последнему тройниковому соединителю магистрали как внутренний резистор линии, то есть резистор встраивается в разъем и подключается непосредственно к тройнику.
Терминальный резистор можно также установить в устройстве, подключенном к последнему тройнику магистрали.
Подключение питания
Рабочий диапазон напряжения питания для совместимых узлов в сети NMEA 2000 составляет 9-16 В постоянного тока.
Подключение питания к сети обычно выполняется через отвод питания. Если сеть запитывается в середине (или в любой точке, кроме концевой), кабельная система может выдерживать нагрузку, превышающую максимально допустимое значение для кабеля, при условии что максимальный ток не превышается ни в одном сегменте магистрали.
Сети с концевым питанием обычно используются при наличии в них малого числа устройств.
Подключение питания в середине применяется тогда, когда число подключенных устройств требует более высокого тока, чем в конфигурации с концевым питанием.
Сеть NMEA 2000 должна заземляться только в одном месте, чтобы избежать возникновения петель заземления, которые могут вызвать проблемы со связью в сети. Провод заземления/экран должен подключаться только к заземлению источника питания.
- Соединение контроллеров по шине CAN
- Внимание!
- Топология
- Ответвления
- Терминирующий резистор
- Защита CAN-шины
- Кабели
- Соединение «звездой»
- Ножевой микроразъем SmartWeb
- Клеммы Kromschröder
- Диагностика
- Мост CAN-Ethernet-CAN
- Пример
- Русские Блоги
- [Аппаратный протокол связи] 4. Подробный анализ протокола связи CAN-шины.
- 1. Обзор CAN-шины
- 2. Стандарт CAN-шины
- 3. Физический уровень CAN-шины
- 3.1 Топология CAN
- 3.2 CAN-трансивер
- 3.3 Дифференциальный сигнал
- 3.4 Разъем CAN-шины
- 4. Канальный уровень шины CAN.
- 4.1 Механизм связи
- 5. Типы и структура сообщений CAN
- 5.1 Типы сообщений
- 5.2 Кадр данных
- 6. Синхронизация
- 7. Примеры практического применения CAN-шины.
- 7.1 Сборка узла CAN
- 7.2 Обзор прикладного уровня протокола CAN
- 7.3 CAN-трансивер
- 7.4 Настройка скорости передачи
- 7.5 Передача кадра CAN
- Интеллектуальная рекомендация
- PAT Class B 1090 Упаковка для опасных грузов
- Клавиша ярлыка терминатора Ubuntu1804
- Конфигурация резервного копирования библиотеки Postgresl под WIN окружающей среды
- Каркас TensorFlow для машинного обучения
- Компьютерная графика (семь) Кривая Безье (Bessel) и исходный код
Видео:CAN шина👏 Как это работаетСкачать
Соединение контроллеров по шине CAN
Расстановка точек над соединением по шине контроллеров SmartWeb и Kromschröder E8.
Внимание!
Контроллеры SmartWeb и Kromschröder E8 соединяются по шине CAN, к этому соединению есть определенные требования.
Если эти требования не выполнять, то может быть система будет работать.
Но, если что-то не работает, то прежде всего надо убедиться, что требования соблюдены
Видео:Экспресс диагностика CAN шины на автомобиле. №21Скачать
Топология
Все участники сети (в т.ч. SmartWeb, Kromschröder E8, Datalogger, Caleon и TM-E8) должны быть соединены друг с другом последовательно, в линейной топологии.
“Звездой”, “кругом”, “паутинкой” соединять нельзя.
Видео:Мерседес разьем CAN шины, как выглядит и где?Скачать
Ответвления
Ответвления от основной “линии” длиной до 3 м — допустимы. Общая длина проводов не должна превышать 500 м.
Видео:Как определить скорость CAN шины. Диагностика Mitsibushi ASX SRS на столе.Скачать
Терминирующий резистор
На обоих концах линии должен быть терминирующий резистор 120 Ом, между проводами H и L.
На контроллерах SmartWeb резистор можно вставить в свободный парный порт шины CAN.
На контроллерах Kromschröder E8 резистор можно включить или выключить, используя настройку ТЕХНИК — СХЕМА — ИЗОЛ ШИНЫ.
Видео:Рич-трак. Множественные ошибки логики и CAN - шины. Причина найдена.Скачать
Защита CAN-шины
Несмотря на то, что европейские производители не устанавливают защиту CAN-шины от всплесков напряжения на свои контроллеры, на практике в России это точно лучше делать. Для этого, воспользуйтесь модулем защиты CAN-Z.
Этот модуль также можно использовать и в качестве терминирующего резистора.
Видео:MCP2515, контроллер CAN шины с интерфейсом SPIСкачать
Кабели
Видео:Анализ CAN-шины Гранта. CAN-hacker.Скачать
Соединение «звездой»
Если “звезды” не избежать, то можно использовать следующую схему.
Так как обычно используется кабель с 4-мя витыми парами, можно использовать одну из них для прохода сигнала “туда”, а вторую для прохода сигнала “обратно”.
Таким образом, можно сохранить линейную топологию даже при физически проложенном кабеле “звездой”.
Видео:тестирование разветвителя CAN-шиныСкачать
Ножевой микроразъем SmartWeb
На контроллерах SmartWeb обычно нет клемм для подключения CAN-проводов, вместо них там парный ножевой микроразъем.
Поэтому, в комплекте с каждым контроллером SmartWeb идет небольшой кусок провода, обжатого таким микроразъемом с одной стороны и свободными концами с другой стороны.
Читайте также: Соединитель для шины потолочной что это
Для соединения контроллеров используйте следующую схему:
Кроме того, желательно найти на контроллере слаботочный минус (GND) и объединить этот минус с другими контроллерами сети CAN, отдельным проводом.
Видео:Шина CAN. Часть 1. Разбираемся как работает CAN bus, разберем кадр данных до "костей".Скачать
Клеммы Kromschröder
Полюсы “+” и “-” на клемме шины данных Кромшредера нужны только для питания Lago FB и BM8, но лучше всегда их прокладывать вместе с CAN-шиной, для объединения минусов и усиления питания на клемме «+».
“+” и “-” можно прокладывать по соседней витой паре с шиной данных.
Видео:Подробно про CAN шинуСкачать
Диагностика
При проблемах проверьте следующее:
Видео:Вебинар: Как найти любые данные из CAN-шины любого автомобиля?Скачать
Мост CAN-Ethernet-CAN
Вы можете объединить несколько групп контроллеров SmartWeb, находящихся в разных CAN-сетях, одной локальной сетью Ethernet. Для этого в каждой группе должно находиться по одному контроллеру DataLogger (или SmartWeb X).
Соответственно, такие контроллеры DataLogger должны находиться в одной сети Ethernet. В настройках DataLogger должна быть включена опция «Режим CAN-UDP моста».
Такая функция может пригодиться в том случае, когда нет возможности проложить кабель для шины данных CANbus, чтобы соединить контроллеры SmartWeb.
Пример
Например, требуется соединить два контроллера (две группы) SmartWeb при помощи радиоканальной связи. В этом случае потребуется два Wi-Fi-маршрутизатора.
Установите их в местах соединения контроллеров SmartWeb. Убедитесь, что эти маршрутизаторы могут быть соединены по Wi-Fi.
Разные маршрутизаторы имеют разную мощность радиосигнала, и, соответственно, разную дальность действия. В некоторых случаях для усиления сигнала может потребоваться дополнительное оборудование. Подключите к маршрутизаторам по одному контроллеру DataLogger. В свою очередь, к ним подключите контроллеры SmartWeb.
Аналогично можно объединить контроллеры SmartWeb уже имеющейся на объекте проводной локальной сетью Ethernet.
Видео:Универсальная плата CAN шиныСкачать
Русские Блоги
Видео:CAN Считывание и определение данных уровня топлива из CAN шиныСкачать
[Аппаратный протокол связи] 4. Подробный анализ протокола связи CAN-шины.
Основано на знании CAN-шины, но никогда не использовалось в проекте. В целях повышения грамотности, пользуюсь случаем, чтобы организовать и разобраться в CAN-шине. Спасибо другим авторам (ссылка в конце статьи) за подробное знакомство с CAN-шиной, с учетом личного понимания я реорганизую ее в случае крайней необходимости.
Видео:поиск нерабочей can шины, часть дваСкачать
1. Обзор CAN-шины
С 1980-х годов появляется все больше и больше автомобильных блоков управления двигателем, таких как ABS, двери и окна с электронным управлением, а также электронные устройства впрыска топлива. Если по-прежнему используется традиционный метод двухточечной проводки, то есть один конец провода подключается к переключателю, а другой конец — к электрическому оборудованию, это приведет к резкому увеличению количества проводов в автомобиле, что приведет к дублированию жгута проводов и увеличению затрат на техническое обслуживание. Это выдвигает более высокие требования к распределению жгутов проводов и передаче информации в автомобилях. Технология шины может реализовать обмен информацией в реальном времени и решить проблемы, связанные с множеством жгутов проводов, сложной проводкой и высокой стоимостью традиционных методов подключения.Шина CAN (сеть контроллеров) появилась в исторический момент.
Шина CAN была разработана немецкой компанией BOSCH, известной своими исследованиями, разработками и производством автомобильной электронной продукции, и в конечном итоге стала международным стандартом (ISO11519), который является одним из наиболее широко используемых полевых шин в мире. Шина CAN — это система шин с несколькими ведущими (Multi-Master). Традиционные шинные системы, такие как USB или Ethernet, реализуют передачу больших объемов данных от узла A к узлу B под управлением контроллера шины. Сетевые сообщения CAN передаются в широковещательном режиме, то есть данные, обнаруживаемые всеми узлами в сети одновременно, являются одинаковыми.Это шина последовательной связи, основанная на режиме широковещательной передачи сообщений.
Многие преимущества CAN-шины делают ее широко используемой, например скорость передачи до 1 Мбит / с, расстояние связи до 10 км, механизм битового арбитража без потерь и структура с несколькими мастерами.
Видео:Проверка исправности CAN шиныСкачать
2. Стандарт CAN-шины
Стандарт шины CAN определяет физический уровень и уровень канала передачи данных, а уровень приложения должен быть настроен пользователем. Различные стандарты CAN различаются только на физическом уровне. Физический уровень и уровень канала передачи данных: ISO11898; Уровень приложения: разные области приложения используют разные стандарты уровня приложения.
Видео:CAN Сканер: получение данных о повороте руля из CAN-шиныСкачать
3. Физический уровень CAN-шины
Видео:лекция 403 CAN шина- введениеСкачать
3.1 Топология CAN
Устройство, подключенное к шине CAN, называется узловым устройством (узлом CAN), а топология сети CAN обычно линейна. Чаще всего используется жгут проводов — витая пара, а передача по проводам — симметричный сигнал дифференциального уровня. На рисунке ниже представлена схематическая диаграмма сети CAN-шины. Узлы в основном включают в себя хост, контроллер и приемопередатчик. Хост часто интегрируется с контроллером CAN, который отвечает за обработку функций, связанных с протоколом, чтобы снизить нагрузку на хост. Приемопередатчик CAN соединяет контроллер со средой передачи. Обычно контроллер и приемопередатчик шины изолированы с помощью оптопары или магнитной муфты, так что даже если приемопередатчик поврежден перенапряжением на шине, контроллер и хост-устройство могут быть защищены.
При отправке данных контроллер CAN отправляет двоичный код для отправки в трансивер CAN по линии CAN_Tx, а затем трансивер преобразует этот обычный сигнал логического уровня в дифференциальный сигнал и выводит его на шину CAN через дифференциальные линии CAN_High и CAN_Low. Интернет. Процесс получения данных противоположный. Использование дифференциальных сигналов может улучшить эффекты электромагнитной совместимости. Следовательно, для физической среды передачи CAN-шины требуется только два провода.
Максимальная скорость передачи сигнала высокоскоростной CAN-шины составляет 1 Мбит / с, а максимальное расстояние — 40 м. ISO11898-2 требует установки в двух секциях высокоскоростной шины CAN.Конечное сопротивлениеRL (оконечное сопротивление обычно составляет 120 Ом, поскольку характеристическое сопротивление кабеля составляет 120 Ом, чтобы имитировать бесконечную линию передачи.) Для устранения отражения. Максимальная скорость низкоскоростной CAN составляет всего 125 Кбит / с, поэтому ISO11898-3 не требует оконечной нагрузки.
Поскольку чем больше расстояние передачи, тем больше задержка сигнала.Чтобы гарантировать правильную выборку сообщений, скорость сигнала на шине также должна быть соответственно уменьшена. На следующем рисунке показано соотношение между рекомендованной скоростью сигнала и расстоянием.
Видео:Сканер не подключается: поиск неисправности CAN шины (видео 57)Скачать
3.2 CAN-трансивер
Шина CAN делится на высокоскоростную CAN и низкоскоростную CAN, а трансиверы также делятся на высокоскоростные трансиверы CAN (1 Мбит / с) и низкоскоростные трансиверы CAN (125 Кбит / с). Низкоскоростная CAN также называется Fault Tolerance CAN, что означает, что даже если один провод на шине выходит из строя, шина все еще может обмениваться данными. Поскольку MAX3232 в последовательном порту используется для преобразования уровня, роль трансивера CAN заключается в преобразовании логических сигналов в дифференциальные сигналы.
Видео:Как проверить CAN шину Используем симулятор ElectudeСкачать
3.3 Дифференциальный сигнал
Шина CAN принимает дифференциальную передачу сигнала.Обычно для нормальной связи необходимы только два сигнальных провода. В дифференциальных сигналах логический 0 и логическая 1 представлены разностью напряжений между двумя линиями дифференциального сигнала. Когда он находится на уровне логической 1, когда разница напряжений между CAN_High и CAN_Low меньше 0,5 В, это называется рецессивным уровнем; когда он находится на уровне логического 0, разница напряжений между CAN_High и CAN_Low больше 0,9 В, и это называется доминирующим уровнем (доминирующим). .
Высокоскоростной CAN:
Низкоскоростная отказоустойчивая CAN (Fault Tolerance CAN):
Шина CAN работает по механизму «провод-и»: «доминантные» биты могут перекрывать «рецессивные» биты, и только когда все узлы отправляют «рецессивные» биты, шина находится в «рецессивном» состоянии. Этот механизм «провод и» заставляет шину CAN показывать доминирующий приоритет.
Видео:Поиск уровня топлива в CAN шине Toyota Camry 2017Скачать
3.4 Разъем CAN-шины
4. Канальный уровень шины CAN.
В связи SPI четыре сигнала выбора кристалла, тактовый сигнал, ввод данных и вывод данных имеют отдельные сигнальные линии. Но CAN использует две линии дифференциального сигнала, которые могут выражать только один сигнал. Краткий физический уровень определяет, что CAN должен быть оснащен более сложным протоколом. Как использовать канал сигнала для достижения тех же или даже более мощных функций, ответ заключается в упаковке данных или команд операций.
4.1 Механизм связи
Мульти-мастер
Чувствительные к безопасности приложения (например, автомобильная энергетика) предъявляют высокие требования к надежности систем связи. Приписывать нормальную работу шины одному узлу очень опасно, более разумным решением является децентрализация доступа к шине, то есть каждый узел имеет возможность доступа к шине. Это также причина, по которой шина CAN использует линейную топологию с несколькими ведущими (Multi-Master).
На шине CAN каждый узел имеет возможность отправлять сообщения на шину, и отправка сообщений не обязательно должна следовать заранее установленному времени. Связь управляется событиями. Только при передаче новой информации шина CAN находится в состоянии занятости, что делает доступ узла к шине очень быстрым. Теоретическая максимальная скорость передачи данных по CAN-шине составляет 1 Мбит / с, она быстро реагирует на асинхронные события и практически не имеет проблем для приложений реального времени на уровне мс.
Механизм адресации
В отличие от шин других типов, шина CAN не устанавливает адрес узла, а различает сообщения по идентификатору сообщения. Хотя этот механизм увеличит сложность сообщения (увеличит идентификатор), в этом случае узлы могут работать независимо друг от друга, не зная состояния других узлов. При добавлении узлов к шине необходимо учитывать только тип сообщения, а не состояние других узлов в системе. Такой способ адресации по идентификатору сообщения делает добавление узлов на шину более гибким.
Читайте также: Шины michelin в сургуте
Доступ к шине CSMA / CD + AMP
Принцип связи по шине CAN можно описать просто как многоканальное определение несущей + обнаружение конфликтов на основе приоритета сообщения и механизма неразрушающего арбитража (CSMA / CD + AMP). CSMA (Carrie Sense Multiple Access) означает, что все узлы должны ждать, пока шина не станет свободной, прежде чем отправлять сообщения на шину; CD + AMP (обнаружение конфликтов + арбитраж по приоритету сообщений) означает, что если несколько узлов отправляют сообщения на шину При отправке сообщений на шину попадает сообщение с наивысшим приоритетом.
- Многоканальное определение несущей: все узлы в сети подключены к одной шине в режиме многоточечного доступа, и отправленные данные передаются широковещательно. Перед отправкой данных каждый узел в сети должен проверить, есть ли передача данных по шине: если есть данные в сети, не отправлять данные временно и подождать, пока сеть будет в режиме ожидания, перед отправкой; если в сети нет данных, немедленно отправьте подготовленные данные.
- Обнаружение конфликта: когда узел отправляет данные, он должен постоянно проверять отправленные данные, чтобы определить, не конфликтуют ли они с передачей данных другим узлом.Если есть конфликт, убедитесь, что сообщение с более высоким приоритетом отправлено первым.
- Механизм неразрушающего арбитража: через арбитраж идентификатора, чем меньше значение идентификатора, тем выше приоритет сообщения.
После того, как узел, отправляющий сообщение с низким приоритетом, выйдет из арбитража, он автоматически повторно отправит сообщение в следующий раз, когда шина будет свободна.
Сообщения с высоким приоритетом не могут прерывать передачу сообщений с низким приоритетом.
Фильтрация приема сообщений
Большинство контроллеров CAN имеют функцию фильтрации сообщений по идентификатору, то есть получают только сообщения с определенными идентификаторами. Узел фильтрует полученные сообщения: сравнивает идентификатор сообщения с селектором (Accepter) и совпадают ли соответствующие биты фильтра приема. Если то же самое, согласитесь, если нет, отфильтруйте.
5. Типы и структура сообщений CAN
5.1 Типы сообщений
Добавьте тег начала передачи, тег выбора (идентификации) чипа и тег управления перед исходным сегментом данных, а затем добавьте тег проверки CRC, тег ответа и тег конца передачи в конец сегмента данных. Упакуйте это содержимое в определенный формат, и тогда канал можно будет использовать для передачи различных сигналов. Различные метки играют роль в совместной передаче. Когда весь пакет данных передается на другие устройства, если эти устройства интерпретируют формат в соответствии с форматом, исходные данные могут быть восстановлены. Такие пакеты данных называются кадрами данных CAN. Для более эффективного управления связью CAN предусматривает в общей сложности 5 типов кадров, которые также называются сообщениями.
5.2 Кадр данных
Фрейм данных является наиболее важным и самым сложным в связи по CAN. Фрейм данных начинается с доминирующего бита (логический 0) и заканчивается 7 последовательными рецессивными битами (логическая 1). Фрейм данных CAN-шины имеет различие в стандартном формате (Standard Format) и расширенном формате (Extended Format).
Фрейм данных можно разделить на семь сегментов:
Отметьте начало кадра данных и исправьте доминирующий бит.
Для синхронизации любой переход из рецессивного режима в доминирующий во время периода бездействия шины заставит узлы выполнять жесткую синхронизацию. Только когда шина простаивает, узел может отправить SOF.
Содержимое раздела арбитража — это в основном информация идентификатора кадра данных. Фрейм данных делится на два типа: стандартный формат и расширенный формат.Разница заключается в длине информации идентификатора: идентификатор стандартного формата составляет 11 бит, расширенный формат — 29 бит. В протоколе CAN идентификатор определяет приоритет передачи кадра данных, а также определяет, будут ли другие устройства получать этот кадр данных.
В дополнение к идентификатору сообщения в секции арбитража также есть биты RTR, IDE и SRR.
В секции управления r1 (зарезервировано1) и r0 (зарезервировано0) являются зарезервированными битами и по умолчанию установлены как доминирующие биты. Наиболее важным является сегмент DLC (код длины данных), который использует двоичный код, чтобы указать, сколько байтов содержит сегмент данных в этом сообщении. Сегмент DLC состоит из 4 битов, DLC3-DLC0, и представленные числа 0-8.
Основное содержимое кадра данных имеет длину 0-8 байтов и определяется DLC.
Чтобы гарантировать правильную передачу сообщения, сообщение CAN содержит 15-битный контрольный код CRC. Как только код CRC, вычисленный принимающей стороной, отличается от полученного кода CRC, сообщение об ошибке будет возвращено на отправляющую сторону и повторно отправлено . Вычисление и обработка ошибок части CRC обычно выполняются аппаратным обеспечением контроллера CAN, или максимальное количество повторных передач контролируется программным обеспечением. После контрольного кода CRC идет разделитель CRC, который представляет собой рецессивный бит, основная функция которого заключается в отделении контрольного кода CRC от следующего сегмента ACK.
Содержит слот ACK и разделитель (разделитель,
DEL). ACK — это рецессивный бит при отправке отправляющим узлом. Когда принимающий узел правильно принимает сообщение, оно закрывается доминирующим битом. Разделитель DEL также является рецессивным битом для разделения.
Конец кадра указывается отправителем, отправляющим 7 рецессивных битов.
6. Синхронизация
Шина CAN использует битовую синхронизацию для обеспечения синхронизации связи и правильной выборки уровня шины.
6.1 Битовая синхронизация
Прежде чем говорить о битовой синхронизации, сначала познакомьтесь с несколькими основными концепциями.
Time Quantum tQ: наименьшая единица времени, в течение которой работает CAN-контроллер, обычно получаемая путем деления системных часов.
Скорость передачи: биты данных передаются за единицу времени (1 с), формула: 1 / бит времени. Например, если системная тактовая частота составляет 36 МГц, а коэффициент предварительного делителя равен 4, тогда тактовая частота CAN составляет 9 МГц, тогда Tq = 1 / 9M. Предполагая, что бит CAN содержит 10 Tqs, тогда период битов T = 10Tq, поэтому скорость передачи данных составляет 1 / T = 0,9 МГц.
Для достижения битовой синхронизации протокол CAN разделяет синхронизацию каждого бита на четыре сегмента, как показано на рисунке ниже. Общая длина этих четырех сегментов равна длине одного бита данных CAN. Полный бит состоит из 8-25 Tq.
- Синхронизация (SS, сегмент синхронизации)
Вывод одного бита начинается с сегмента синхронизации. Если переходный край шины включен в диапазон сегмента SS, это означает, что синхронизация узла и шины синхронизирована. Когда узел синхронизируется с шиной, уровень шины, собранный точкой выборки, может быть определен как потенциал этого уровня. Размер сегмента SS — 1Tq.
- Сегмент времени распространения (PTS, сегмент времени распространения)
Он используется для компенсации физического времени задержки распространения сигнала в сети и узлах, которое в два раза превышает сумму задержки входного компаратора и выходного драйвера на шине. Обычно 1-8Tq
- Фазовый буферный сегмент 1 (PBS1, фазовый буферный сегмент 1)
Он в основном используется для компенсации погрешности пограничного каскада, и его продолжительность может быть увеличена при ресинхронизации. Начальный размер 1-8Тк.
- Фазовый буферный сегмент 2 (PBS2, фазовый буферный сегмент 2)
Он также используется для компенсации ошибки фазы фронта, и его продолжительность может быть сокращена при повторной синхронизации. Начальный размер 2-8Тк.
Синхронизация CAN делится на жесткую синхронизацию и ресинхронизацию.
- Разрешен только один метод синхронизации за один бит
- Любой переход от «рецессивного» к «доминантному» может быть использован для синхронизации.
- Жесткая синхронизация происходит в фазе SOF, и все принимающие узлы корректируют сегмент синхронизации своего текущего бита так, чтобы он находился в пределах отправленного бита SOF.
- · Повторная синхронизация происходит в других фазах кадра, то есть, когда край перехода выходит за пределы сегмента синхронизации.
Жесткая синхронизация
Когда сигнал начала кадра (SOF, рецессивный к доминирующему фронту) появляется на шине, контроллеры других узлов корректируют свою битовую синхронизацию в соответствии с задним фронтом на шине и включают задний фронт в сегмент SS. Внутри. Такая синхронизация на основе начального кадра называется жесткой синхронизацией.
Видно, что когда на шине появляется сигнал начала кадра, исходная битовая синхронизация узла не синхронизирована с синхронизацией шины, поэтому данные, собранные в точке выборки в этом состоянии, неверны. Таким образом, узел настраивается жестко синхронизированным образом и сдвигает сегмент SS в своей собственной битовой последовательности в ту часть, где появляется задний фронт шины, чтобы обеспечить синхронизацию. В это время данные, собранные в точке выборки, являются правильными данными.
Повторная синхронизация
Поскольку жесткая синхронизация работает только при наличии сигнала начала кадра, она не может гарантировать, что последующие серии битовых таймингов будут синхронизированы, поэтому CAN вводит метод повторной синхронизации. Когда обнаруживается разность фаз между синхронизацией на шине и синхронизацией, используемой узлом (т. Е. Фронт перехода на шине не находится в пределах диапазона SS-сегмента синхронизации узла), синхронизация достигается путем расширения сегмента PBS1 или сокращения сегмента PBS2. Этот метод называется Повторная синхронизация.
Читайте также: Размер шин мицубиси аутлендер 2003
Возможны две ситуации: в первой узел обнаруживает, что его синхронизация относительно отстает от синхронизации шины на 2 Tq во время краевого перехода шины. Это время, в течение которого контроллер увеличивает сегмент PBS1 на 2 Tq в следующей последовательности синхронизации. Повторно синхронизируйте синхронизацию узла и шины.
Во втором случае узел обнаруживает, что его синхронизация относительно опережает на 2Tq от краевого перехода шины. В это время контроллер сокращает временную длительность 2Tq в сегменте PBS2 предыдущей битовой синхронизации, чтобы получить синхронизацию.
При повторной синхронизации допустимое удлинение или сокращение сегментов PBS1 и PBS2 определяется как ширина компенсации повторной синхронизации (SJW, ширина скачка повторной синхронизации). Максимальный период времени, в течение которого PBS1 и PBS2 могут быть увеличены или уменьшены здесь, составляет SJW = 2Tq. Если настройка SJW слишком мала, скорость настройки ресинхронизации будет медленной; если она слишком велика, это повлияет на скорость передачи.
7. Примеры практического применения CAN-шины.
7.1 Сборка узла CAN
Создавайте узлы и реализуйте соответствующее управление, которое разделено снизу вверх на четыре части: схема узла CAN, драйвер контроллера CAN, протокол прикладного уровня CAN, прикладная программа узла CAN.
Хотя функции, выполняемые разными узлами, различны, все они имеют одинаковую аппаратную и программную структуру.
Приемопередатчик CAN и контроллер соответствуют физическому уровню и уровню канала передачи данных CAN, соответственно, для завершения отправки и получения сообщений CAN; функциональная схема выполняет определенные функции, такие как получение сигнала или управление периферийными устройствами; основной контроллер и прикладное программное обеспечение следуют CAN Формат сообщения анализирует сообщение и завершает соответствующий контроль.
Драйвер оборудования CAN — это программа, работающая на главном контроллере (например, P89V51) .Она в основном выполняет следующие задачи: операции на основе регистров, инициализацию контроллера CAN, отправку сообщений CAN и получение сообщений CAN;
Если вы используете драйвер оборудования CAN напрямую, вам нужно изменить приложение верхнего уровня при смене контроллера, что приведет к плохой переносимости. Добавление уровня виртуального диска к уровню приложения и уровню аппаратного диска может скрыть различия между различными контроллерами CAN.
В дополнение к выполнению функции связи узел CAN также включает в себя некоторые специфические функциональные схемы аппаратного обеспечения: функциональная схема движется вниз и напрямую управляет функциональными цепями, а вверх обеспечивает прикладной уровень с функциональным интерфейсом схемы функции управления. Конкретные функции включают прием сигналов, отображение человек-машина и т. Д.
Приемопередатчик CAN должен реализовывать обмен логического уровня контроллера CAN и дифференциального уровня на шине CAN. Существует две схемы реализации трансиверов CAN: одна — использовать ИС трансивера CAN (необходимо добавить изоляцию питания и электрическую изоляцию), а другая — использовать модуль трансивера развязки CAN. Рекомендуется второй тип.
Контроллер CAN является основным компонентом CAN. Он реализует все функции уровня канала передачи данных в протоколе CAN и может автоматически выполнять анализ протокола CAN. Обычно существует два типа контроллеров CAN: один — это контроллер IC (SJA1000), а другой — MCU (LPC11C00), интегрированный с контроллером CAN.
MCU отвечает за управление функциональной схемой и контроллером CAN: при запуске узла он инициализирует параметры контроллера CAN; считывает и отправляет кадры CAN через контроллер CAN; когда контроллер CAN прерывается, обрабатывает исключение прерывания контроллера CAN. ; Вывести управляющий сигнал в соответствии с полученными данными;
Логика управления интерфейсом: интерпретировать инструкции MCU, адресовать регистровый блок каждого функционального модуля в контроллере CAN и предоставлять информацию о прерываниях и информацию о состоянии главному контроллеру.
Буфер отправки и буфер приема могут хранить полную информацию о сети CAN-шины.
Приемная фильтрация заключается в сравнении сохраненного проверочного кода с идентификационным кодом сообщения CAN, и только кадр CAN, который соответствует проверочному коду, будет сохранен в приемном буфере.
Ядро CAN реализует все протоколы канала передачи данных.
7.2 Обзор прикладного уровня протокола CAN
Шина CAN предоставляет только надежные услуги передачи, поэтому, когда узел получает сообщение, он должен использовать протокол прикладного уровня, чтобы определить, кто отправил данные и каково значение этих данных. Распространенные протоколы прикладного уровня CAN: CANOpen, DeviceNet, J1939, iCAN и т. Д.
Драйвер протокола прикладного уровня CAN — это программа, работающая на главном контроллере (например, P89V51). Она определяет сообщение CAN в соответствии с протоколом прикладного уровня и завершает анализ и сборку сообщения CAN. Например, мы используем идентификатор кадра, чтобы указать адрес узла. Когда полученный идентификатор кадра не передает собственный идентификатор узла, он напрямую отбрасывается, в противном случае он передается на верхний уровень для обработки; при отправке идентификатор кадра устанавливается на адрес принимающего узла.
7.3 CAN-трансивер
У SJA1000 есть много режимов вывода, наиболее часто используемый — нормальный режим вывода.Режим ввода обычно не выбирает режим компаратора, который может увеличить расстояние связи и уменьшить ток в спящем режиме.
Трансивер делится на высокоскоростной CAN-трансивер и отказоустойчивый CAN-трансивер в зависимости от скорости передачи данных.
Один и тот же трансивер CAN должен использоваться в одной сети.
На линии подключения CAN будет много сигналов помех, и необходимо добавить в оборудование фильтры и схемы защиты от помех.
Также можно использовать трансивер с изоляцией CAN (встроенный фильтр и цепь защиты от помех)
Режим подключения CAN контроллера и MCU
SJA1000 можно рассматривать как внешнее ОЗУ, ширина адреса составляет 8 бит, и он поддерживает до 256 регистров.
Постоянно записывать данные из буфера в регистр
Непрерывно считывать несколько регистров в буфер
Заголовочный файл содержит схему:
Каждая программа содержит используемые файлы заголовков
Каждая программа содержит общий файл заголовка, который включает все остальные файлы заголовков.
SJA1000 находится в состоянии сброса после включения и должен быть инициализирован, прежде чем он сможет работать.
(1) Установите бит 0 регистра режима, чтобы войти в режим сброса;
(2) Установите регистр деления тактовой частоты для выбора тактовой частоты и режима CAN;
(3) Установите фильтр приема, установите код подтверждения и код защиты;
(4) Установите регистры таймера шины 0 и 1, чтобы установить скорость передачи данных CAN;
(5) Установите режим вывода;
(6) Очистите бит 0 регистра режима, чтобы выйти из режима сброса;
Только обнаруживать режим: SJA1000 не проверяет бит ответа при отправке кадров CAN;
Режим только прослушивания: В этом режиме SJA1000 не будет посылать кадры ошибок для автоматического определения скорости передачи; SJA1000 принимает кадры CAN с разными скоростями передачи.При получении кадров CAN это указывает, что текущая скорость передачи совпадает со скоростью передачи данных по шине.
7.4 Настройка скорости передачи
Шина CAN не имеет часов и использует асинхронную последовательную передачу; скорость передачи — это биты данных, отправленные за 1 секунду;
7.5 Передача кадра CAN
Шаги для отправки кадра CAN:
- Проверьте регистр состояния и дождитесь, пока станет доступен буфер отправки;
- Заполнить сообщение в буфер отправки;
- Начать отправку.
SJA1000 имеет 12-байтовый буфер, отправляемое сообщение может быть отправлено через регистры 16-28.Напишите, Или через регистр 96-108Пишите или читайте
Установите режим отправки:
Почему идентификатор кадра равен 0x753? Это связано с форматом хранения кадра CAN в буфере.
Сопротивление клемм очень важно.Когда скорость передачи высока и сопротивление клемм не добавлено, выброс сигнала очень серьезен.
SJA1000 имеет 64-байтовый буфер приема (FIFO), который может снизить требования к MCU. MCU может подтвердить, что SJA1000 читает сообщение после получения сообщения по запросу или прерыванию.
Справочные материалы: «Базовый курс Project Driver-CAN-bus Fieldbus» Guangzhou Zhouligong Microcontroller Technology Co., Ltd.
Интеллектуальная рекомендация
PAT Class B 1090 Упаковка для опасных грузов
При транспортировке товаров в контейнерах нужно быть очень осторожным, чтобы не упаковать несовместимые товары в ящик. Например, окислитель не должен находиться в одной емкости с легковоспламеняющейся.
Клавиша ярлыка терминатора Ubuntu1804
Установить Рендеринг горячая клавиша Ctrl + Shift + E Вертикальное сегментационное окно Ctrl + Shift + O Горизонтальное сегментационное окно Ctrl + Shift + N Свободно переключите каждое окно сегментац.
Конфигурация резервного копирования библиотеки Postgresl под WIN окружающей среды
1. Изменение основного сервера и в режиме ожиданияИзмените разрешение подключения файла pg_hba.conf базы данных: изменился на: В это время, вы должны убедиться, что вы можете подк.
Каркас TensorFlow для машинного обучения
TensorFlow рамки 1. Введение TensorFlow — это система обучения искусственному интеллекту второго поколения, разработанная Google на основе DistBelief, и ее название происходит от ее собственного принц.
Компьютерная графика (семь) Кривая Безье (Bessel) и исходный код
Загрузка исходного кода:Нажмите меня, чтобы скачать «Кривая Безье» была изобретена французским математиком Пьером Безье, который заложил основы компьютерной векторной графики. Его основное.
- Свежие записи
- Нужно ли менять пружины при замене амортизаторов
- Скрипят амортизаторы на машине что делать
- Из чего состоит стойка амортизатора передняя
- Чем стянуть пружину амортизатора без стяжек
- Для чего нужны амортизаторы в автомобиле
- Правообладателям
- Политика конфиденциальности
Автоподбор © 2023
Информация, опубликованная на сайте, носит исключительно ознакомительный характер