Протокол can в авто

Ох эти три буквы… Спокойно, всё пристойно, я про CAN.

Протокол can в авто. Смотреть фото Протокол can в авто. Смотреть картинку Протокол can в авто. Картинка про Протокол can в авто. Фото Протокол can в авто

CAN шина, что же это такое? Много информации читал, но нихрена не понимал. А тут вот нашлось простое и доходчивое объяснение, которое поймёт и ребёнок. А может и не поймет…

В CAN сети все ЭБУ подключены к шине параллельно. Обмен данными производится короткими пакетами — сообщениями.

CAN сообщение
Каждое сообщение содержит идентификатор, который в сети является уникальным (например, «Температура двигателя 100 град» или «Скорость автомобиля 50 км/ч»). При передаче, все ЭБУ в сети получают сообщение и каждый из них проверяет идентификатор. Если сообщение имеет отношение к данному ЭБУ, то оно обрабатывается, в противном случае – игнорируется. Идентификатор может быть длиной 11 бит или 29 бит.

Протокол can в авто. Смотреть фото Протокол can в авто. Смотреть картинку Протокол can в авто. Картинка про Протокол can в авто. Фото Протокол can в авто

Арбитраж
В шине CAN биты 0 и 1 имеют ещё одно название: рецессивный уровень и доминантный уровень, соответственно. Если двумя разными передатчиками будет одновремнно передан рецессивный и доминантный уровни, то доминантный уровень подавит рецессивный. Этим механизмом подавления обеспечивается арбитраж на шине. Каждый передатчик одновремнено считывает то, что он предаёт в шину. Передатчик с более низким приоритетом вынужден отпустить шину, так как чужой доминантный уровень с более высоким приоритетом исказил его предачу. В то же время, пакет с более высоким уровнем остался неизменным. Передатчик, потерявший арбитраж, может повторить попытку через некоторе время.

Физический уровень
В автомобиле может применяться несколько типов шин CAN.

Высокоскоростной CAN (High speed) применяется в основном в сети управления двигателем и управления шасси. Там, где необходима высокая скорость реакции. Скорость обмена по этой шине 500 или 250 кбит/сек.

Схема подключения ЭБУ к высокоскоростной шине CAN

Протокол can в авто. Смотреть фото Протокол can в авто. Смотреть картинку Протокол can в авто. Картинка про Протокол can в авто. Фото Протокол can в авто

Протокол can в авто. Смотреть фото Протокол can в авто. Смотреть картинку Протокол can в авто. Картинка про Протокол can в авто. Фото Протокол can в авто

Низкоскоростной CAN (Low speed) применяется в сети управления кузова. Скорость обмена по этой шине, как правило, равняется 125 кбит/сек.

Схема подключения ЭБУ к низкоскоростной шине CAN

Протокол can в авто. Смотреть фото Протокол can в авто. Смотреть картинку Протокол can в авто. Картинка про Протокол can в авто. Фото Протокол can в авто

Однопроводный CAN (1-wire) Это удешевлённый варинат Low speed CAN, применяется в основном концерном GM. Используется для коммуникации между ЭБУ кузова машины. Работает на скорости 33,3 кбит/сек.

Схема подключения ЭБУ к однопроводной шине CAN

Протокол can в авто. Смотреть фото Протокол can в авто. Смотреть картинку Протокол can в авто. Картинка про Протокол can в авто. Фото Протокол can в авто

Протокол can в авто. Смотреть фото Протокол can в авто. Смотреть картинку Протокол can в авто. Картинка про Протокол can в авто. Фото Протокол can в авто

Надёжность
Двухпроводная шина сохраняет свою работоспособность при обрыве или замыкании одного из проводов (для двухпроводной шины).

Фазы работы
Шина CAN используется в автомобилях достаточно давно. Изначально шина CAN использовалась в простых конфигурациях. Например, для надёжной и быстрой связи между ЭБУ мотора и ЭБУ автоматической коробки передач. В этой конфигурации шина использовалась только для передачи данных. В ЭБУ заводилась линия питания и линия от замка зажигания, диагностика производилась по отдельным К-линиям, идущим из каждого ЭБУ.

В более современных автомобилях, по шине CAN передаётся не только управляющая, но и диагностическая информация. Помимо этого, шина CAN стала управлять системой питания ЭБУ. В этой конфигурации все ЭБУ подключены к общему питанию и шине CAN. Замок зажигания является электронным блоком управления и информация о включении зажигания передаётся от него по CAN шине.

Можно выделить четыре основные фазы работы шины:

Спящий режим
В этом режиме все ЭБУ, кроме ЭБУ замка, находятся в выключенном состоянии. На драйвер CAN подается питание. Драйвер так же находится в спящем состоянии. При этом, его энергопотребление составляет около 0,3 мА.
Пробуждение
Когда вставляется ключ зажигания или открывается дверь, замок выдаёт доминантное состояние в шину CAN. Это приводит к пробуждению CAN драйверов в спящих ЭБУ. Драйверы при обнаружении активности на шине включают стабилизаторы питания в своих ЭБУ.
Активный режим
В активном режиме ЭБУ постоянно обмениваются информацией. Энергопотребление каждого предатчика при доминантных уровнях может достигать 80 мА.
Засыпание
В момент выключения зажигания, по шине CAN выдаётся команда на выключение, после чего каждый ЭБУ сам себя обесточивает и преходит в спящий режим.
Примечание:
Для однопроводной шины CAN сигнал пробуждения имеет уровень 12 В, обычный обмен 0-4 В.

Немного отступлю от первоисточника.
Самый главный плюс, это очень высокая помехозащищённость сигнала. В чём прикол? Одновременно идут два дублирующих сигнала, только один высокий, второй низкий. Ловят они помеху. Помеха воздействует одинаково на оба сигнала. А на выходе у нас одинаковый уровень. Два уровня сигнала компенсируют помеху. Наглядно это выглядит вот так:

Протокол can в авто. Смотреть фото Протокол can в авто. Смотреть картинку Протокол can в авто. Картинка про Протокол can в авто. Фото Протокол can в авто

Вот такие пироги. Наткнулся тут : quantexlab

Источник

CAN-технология BOSCH в диагностике автомобилей

Протокол can в авто. Смотреть фото Протокол can в авто. Смотреть картинку Протокол can в авто. Картинка про Протокол can в авто. Фото Протокол can в авто

CAN Технологии
Применяемая на автомобилях система CAN (Controller_Area_Network) позволяет установить связь между отдельными электронными блоками управления. При эксплуатации автомобиля и при диагностике его агрегатов эта система предоставляет возможность использования новых функций, которые не могут быть возложены на отдельно действующие блоки управления.
Применяемая на автомобилях система CAN позволяет объединить в локальную сеть электронные блоки управления или сложные датчики, как, например, датчик угла поворота рулевого колеса. Обозначение CAN является сокращением от выражения Controller:Area:Network (локальная сеть, связывающая блоки управления). Применение системы CAN на автомобиле дает следующие преимущества:
Обмен данными между блоками управления производится на унифицированной базе. Эту базу называют протоколом. Шина CAN служит как бы магистралью для передачи данных.
Независимо действующие системы, например, система курсовой стабилизации ESP, могут быть реализованы с меньшими затратами.
Упрощается подключение дополнительного оборудования.
Шина данных CAN является открытой системой, к которой могут быть подключены как медные провода, так и стекловолоконные проводники.
Диагностика электронных блоков управления производится посредством кабеля «К».
Диагностика некоторых компонентов оборудования салона автомобиля уже сегодня производится через шину CAN (например, это подушки безопасности и блоки управления в дверях автомобиля). В данном случае речь идет о так называемом виртуальном кабеле «К». В будущем необходимость в кабеле «К» должна отпасть.
Можно проводить одновременную диагностику нескольких блоков управления, входящих в систему.
CAN
Промышленная сеть CAN (Controller Area Network) была создана в конце 80-х годов фирмой Bosch как решение для распределенных систем, работающих в режиме реального времени. Первая реализация CAN применялась в автомобильной электронике, однако сейчас CAN находит применение практически в любых типах машин и промышленных установок, от простейших бытовых приборов до систем управления ускорителями элементарных частиц. В настоящий момент CAN-протокол стандартизован в международном стандарте ISO 11898.

Основные положения стандарта CAN.
В качестве среды передачи в CAN используется дифференциальная линия связи — витая пара, сигналы по которой передаются в дифференциальном режиме.
Для контроля доступа к среде передачи используется метод недеструктивного арбитража.
Данные передаются короткими (максимальная длина поля данных — 8 байт) пакетами, которые защищены контрольной суммой.
В CAN отсутствует явная адресация сообщений. Вместо этого каждый пакет снабжен полем арбитража (идентификатор+RTR-бит), которое задает приоритет сообщения в сети.
CAN имеет исчерпывающую схему контроля ошибок, которая гарантирует повторную передачу пакета, в случае возникновения ошибок передачи/приема сообщения.
В CAN существует способ автоматического устранения узла, являющегося источником ошибочных пакетов в сети.
CAN контроллеры.
Протокол CAN полностью реализован аппаратно — в виде микросхем- CAN контроллеров или в виде стандартного периферийного устройства в составе микросхемы- микроконтроллера. Все производители современных микроконтроллеров по крайней мере в одном из семейств имеют микроконтроллеры со встроенным периферийным одним или несколькими CAN-контроллерами. Таким образом, сегодня, СAN-контроллер является таким же стандартным периферийным устройством как контроллер SPI, I2C или UART.
Что такое CAN-шина
Для повышения надежности в CAN-шине используется принцип дифференциальной передачи данных, требующий двух проводов, CAN-High (CAN-H) высокий и CAN-Low (CAN-L) низкий уровень напряжения.
Рецессивные и доминантные биты
Для повышения надежности в CAN-шине используется принцип дифференциальной передачи данных, требующий двух проводов, CAN-High (CAN-H) высокий и CAN-Low (CAN-L) низкий уровень напряжения.

Протокол can в авто. Смотреть фото Протокол can в авто. Смотреть картинку Протокол can в авто. Картинка про Протокол can в авто. Фото Протокол can в авто

Как это исполнено физически
Физически CAN-шина – система из специального кабеля с разветвителями для подключения электронных блоков и конечных устройств-терминаторов (резисторов).

Протокол can в авто. Смотреть фото Протокол can в авто. Смотреть картинку Протокол can в авто. Картинка про Протокол can в авто. Фото Протокол can в авто

Витая пара
Чаще всего шина CAN – скрученные (витые) пары проводов (по 30 витков на один погонный метр) с разветвителями для подключения ЭБУ (ECU) и конечными резисторами-терминаторами с номинальным сопротивлением 120 Ом на концах шины.
Сколько CAN-шин может быть на ТС
На ТС экологического уровня Евро-3 и выше может быть от 1 до 6 и более шин CAN, которые могут обозначаться как M-CAN, T-CAN, I-CAN, H-CAN, A-CAN, EBS-CAN и т.д.

Протокол can в авто. Смотреть фото Протокол can в авто. Смотреть картинку Протокол can в авто. Картинка про Протокол can в авто. Фото Протокол can в авто

Как найти CAN-шину
Признаками шины М-CAN и Т-CAN могут быть, например:
• наличие диагностического разъема OBD II;
• цвет и сечение проводов витых пар;
• связь витых пар с контактами в разъемах OBD II и ЭБУ.

Протокол can в авто. Смотреть фото Протокол can в авто. Смотреть картинку Протокол can в авто. Картинка про Протокол can в авто. Фото Протокол can в авто

Протокол can в авто. Смотреть фото Протокол can в авто. Смотреть картинку Протокол can в авто. Картинка про Протокол can в авто. Фото Протокол can в авто

Диагностический разъём OBD II и его распиновка
На большинстве ТС после 2003 года используется диагностический разъем OBD II или DLC (Diagnostic Link Connector), который находится под панелью приборов.

Протокол can в авто. Смотреть фото Протокол can в авто. Смотреть картинку Протокол can в авто. Картинка про Протокол can в авто. Фото Протокол can в авто

Протокол can в авто. Смотреть фото Протокол can в авто. Смотреть картинку Протокол can в авто. Картинка про Протокол can в авто. Фото Протокол can в авто

Как будем искать CAN-шину
С помощью мультиметра можно проверить любую витую пару проводов, чтобы убедиться в следующем:
1. Является ли проверяемая витая пара вообще CAN-шиной? (Проверка импеданса);
2. Если витая пара является CAN-шиной, то передаются ли в ней какие–либо сообщения? Проверка работоспособности);
3. Находится ли CAN-шина в работоспособном состоянии и какая из линий шины является CAN-L, а какая – CAN-H?

Внимание! Неосторожное обращение с включенной
CAN-шиной может привести к фиксации в ней ошибок!

Проверка импеданса
Проверка импеданса (полного сопротивления)

Протокол can в авто. Смотреть фото Протокол can в авто. Смотреть картинку Протокол can в авто. Картинка про Протокол can в авто. Фото Протокол can в авто

ВНИМАНИЕ!
Проверка должна производиться при полностью выключенном питании бортовой сети (выключенной массе).
Контрольное значение должно быть в пределах 60 Ом.

Проверка работоспособности CAN-шины
Находится ли CAN-шина в рабочем состоянии?

ВНИМАНИЕ! Проверка производится при включенном замке зажигания, работающем двигателе, нажатии и отпускании педали подачи топлива между проводами витой пары.
Контрольное значение напряжения должно быть в пределах 1,2-3,0 В.

Определение CAN-H и CAN-L
Какой из проводов является CAN-H, а какой CAN-L?

ВНИМАНИЕ! Проверка производится в состоянии рецессии (при включенном главном выключателе АКБ (кнопке массы), замок зажигания выключен!) и в доминантном состоянии (при включенном замке зажигания в положение «Приборы», при работающем и не работающем двигателе).
Проверка с помощью осциллографа
Учитывая возможные отклонения уровня напряжения от номинальных значений, состояние рецессии можно определить только с помощью осциллографа.

Протокол can в авто. Смотреть фото Протокол can в авто. Смотреть картинку Протокол can в авто. Картинка про Протокол can в авто. Фото Протокол can в авто

Цвет оболочки и цветовая маркировка проводов

Протокол can в авто. Смотреть фото Протокол can в авто. Смотреть картинку Протокол can в авто. Картинка про Протокол can в авто. Фото Протокол can в авто

CAN-шина. Что можно увидеть?
В зависимости от того, какую информацию заложил в CAN-шину производитель, могут распознавать:
Способы подключения:

Контактный способ:
Достоинства:
• просто и дешево;
• можно работать на считывание и передачу.
Недостатки:
• может оказывать мешающее влияние на CAN-шину; проблемы с возникновением и фиксацией ошибок;
• Проблемы с гарантией на ТС.

Безконтактный способ (CANCrocodile):

Протокол can в авто. Смотреть фото Протокол can в авто. Смотреть картинку Протокол can в авто. Картинка про Протокол can в авто. Фото Протокол can в авто

Достоинства:
• не оказывает мешающего воздействия на CAN-шину.
Недостатки:
• можно работать только на считывание.

Бесконтактныe считыватели Crocodile
CAN Crocodile – устройство для бесконтактного считывания данных с CAN-шины автомобиля. CAN Crocodile применяется для подключения к шине CAN систем GPS/ГЛОНАСС мониторинга, которые получают информацию о режимах работы двигателя, состоянии датчиков, уровне топлива, наличии неисправностей и т.д. CAN Crocodile не нарушает изоляцию проводов CAN и «слушает» обмен по шине с помощью специального беспроводного приемника. Применение CAN Crocodile абсолютно безопасно для автомобиля (!), незаметно для работы бортового компьютера, диагностического сканера и других электронных систем. Особенно актуально применение CAN Crocodile для гарантийных автомобилей, в которых подключение каких-либо электронных устройств к шине CAN часто служит поводом для снятия с гарантии.

Протокол can в авто. Смотреть фото Протокол can в авто. Смотреть картинку Протокол can в авто. Картинка про Протокол can в авто. Фото Протокол can в авто

Бесконтактным способом – без нарушения изоляционной оболочки проводов и электрического контакта.
Не нарушает изоляцию;
Не влияет на работу CAN-шины;
Не занимает диагностический разъём

Источник

Что такое CAN-шина в автомобиле (устройство и схема подключения)

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

Протокол can в авто. Смотреть фото Протокол can в авто. Смотреть картинку Протокол can в авто. Картинка про Протокол can в авто. Фото Протокол can в авто

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

Зачем нужна в машине CAN-шина

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

Далее наращивать объём оборудования простым добавлением управляющих и исполнительных устройств стало невозможно:

Протокол can в авто. Смотреть фото Протокол can в авто. Смотреть картинку Протокол can в авто. Картинка про Протокол can в авто. Фото Протокол can в авто

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

Электросхемы машин стали делать по принципам, заложенным в основах вычислительной техники и к тому времени уже достаточно устоявшимся и понятным.

Протокол can в авто. Смотреть фото Протокол can в авто. Смотреть картинку Протокол can в авто. Картинка про Протокол can в авто. Фото Протокол can в авто

Автомобиль стал представлять собой сеть из микрокомпьютеров, каждый из которых обслуживал свою систему или отдельный узел.

Например, двигатель, коробку передач, узлы трансмиссии, блок климата и даже отдельные фонари наружного освещения или стеклоподъёмники. Уже не надо было тянуть к каждому устройству медные провода в огромном количестве через весь автомобиль.

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

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

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

Протокол can в авто. Смотреть фото Протокол can в авто. Смотреть картинку Протокол can в авто. Картинка про Протокол can в авто. Фото Протокол can в авто

Более того, системе не нужен единый обрабатывающий и управляющий сервер, все ресурсы распределены по микроконтроллерам.

Схема и место расположения КАН-интерфейса

Сеть имеет выход наружу через диагностический OBD разъём, где на этот счёт стандартом чётко определена пара контактов.

Протокол can в авто. Смотреть фото Протокол can в авто. Смотреть картинку Протокол can в авто. Картинка про Протокол can в авто. Фото Протокол can в авто

Точнее, две пары, из дальнейшего рассмотрения станет понятно, что через диагностику можно подключаться к двум CAN-шинам различного вида и назначения.

Протокол can в авто. Смотреть фото Протокол can в авто. Смотреть картинку Протокол can в авто. Картинка про Протокол can в авто. Фото Протокол can в авто

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

Принцип работы

Работа CAN-шины определяется физическим и логическим протоколами, которые достаточно чётко стандартизованы, хотя и имеют целый ряд исполнений.

Физически это витая пара, каждый из проводов которой является сигнальным. Работают они в противофазе, один поэтому называется CAN-High, второй – CAN-Low.

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

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

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

Далее идёт идентификация приоритетного устройства, которое должно передать свою информацию первым в случае конфликта во времени. Протокол стандартный, каждый бит посылки расписан в даташитах ISO.

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

Виды CAN-шин

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

Первая применена для связи наиболее важных устройств, агрегатов двигателя, трансмиссии, тормозов, подвесок, систем безопасности. Вторая обслуживает второстепенные функции комфорта и сервиса.

Это не значит, что системы автономны. Они связаны между собой через шлюз, обычно находящийся в приборной панели. Низкоскоростная линия также имеет свои контакты в диагностическом разъёме, записанные в стандарт.

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

На низшем уровне могут работать ещё более простые шины, однопроводные и низкоскоростные. Они подключаются к общей CAN через свой контроллер.

Например, в двери могут стоять стеклоподъёмники, блок кнопок управления, различные датчики, всё это нет необходимости выводить на общую шину. Но и плодить множество проводов тоже. Используются простейшие контроллеры и однопроводная сеть.

Как подключиться и сделать диагностику автомобиля

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

Для связи используются специальные адаптеры USB-CAN, более сложные устройства и программное обеспечение.

Протокол can в авто. Смотреть фото Протокол can в авто. Смотреть картинку Протокол can в авто. Картинка про Протокол can в авто. Фото Протокол can в авто

До появления профессиональных CAN-анализаторов и тестеров пользовались скоростным запоминающим осциллографом и логическим анализатором.

Эти приборы тоже способны сохранять и предоставлять для изучения отдельные фреймы CAN, но в работе неудобны, требуют больших затрат времени.

Неисправности

Отказы шины обычно сводятся к нескольким типовым случаям:

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

Плюсы и минусы встроенных шин

Сейчас уже трудно представить себе автомобиль с достойным набором современных опций без информационной шины, а конкурентоспособность требует ещё и высокого быстродействия.

CAN-шина всё это обеспечивает:

Но со временем усугубляются и недостатки. Так, усложнение автомобилей привело к тому, что быстродействия даже самых последних версий уже не хватает.

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

Источник

Протокол CAN. Описание, формат кадра, контроль ошибок.

Протокол can в авто. Смотреть фото Протокол can в авто. Смотреть картинку Протокол can в авто. Картинка про Протокол can в авто. Фото Протокол can в авто

Протокол can в авто. Смотреть фото Протокол can в авто. Смотреть картинку Протокол can в авто. Картинка про Протокол can в авто. Фото Протокол can в авто

Приветствую всех на нашем сайте! Сегодняшняя статья будет целиком и полностью посвящена обзору протокола CAN. А в одной из следующих статей мы реализуем обмен данными по CAN на практике. Но не буду забегать вперед…

CAN (Controller Area Network) — это промышленный стандарт, позволяющий осуществить объединение в единую сеть различных узлов, механизмов, датчиков и т. п. Протокол является широковещательным, это значит, что все устройства в CAN-сети принимают все передаваемые по шине сигналы. Режим передачи данных — последовательный, при этом байты сообщений формируют кадры определенного вида. Структуру этих кадров данных мы также обязательно разберем в этой статье.

Основные характеристики протокола CAN:

Первоначально стандарт был разработан для автомобильной промышленности. И занималась этим компания Bosch в 1980-х годах. Основная идея заключалась в том, чтобы уйти от использования огромного количества проводов, соединяющих многочисленные узлы автомобиля. И протокол CAN позволил этого достичь! С тех пор CAN является основным механизмом соединения устройств, узлов и датчиков автомобиля между собой. Помимо этого, интерфейс CAN активно используется в промышленной автоматизации, а также в системах «умного дома».

Давайте перейдем к физическому уровню протокола. В интернете можно найти много противоречивой информации на этот счет, но истина тут одна 🙂 Стандарт CAN компании Bosch не регламентирует физический уровень передачи данных, поэтому могут использоваться абсолютно разные варианты, например, оптоволокно. На практике же чаще всего используется соединение посредством двухпроводной дифференциальной линии (витой пары). Ориентировочная максимальная длина линии для разных скоростей передачи данных составляет:

СкоростьДлина линии
1 Мбит/с50 м
500 кбит/с100 м
125 кбит/с500 м
10 кбит/с5 км

Важным условием работоспособности шины является наличие на концах витой пары согласующих резисторов, которые также называют терминаторами, с сопротивлением 120 Ом:

Протокол can в авто. Смотреть фото Протокол can в авто. Смотреть картинку Протокол can в авто. Картинка про Протокол can в авто. Фото Протокол can в авто

В отличие от многих других протоколов в CAN не рекомендуется описание битов данных как «логического нуля» и «логической единицы». Здесь используются понятия доминантный и рецессивный бит.

Важнейшим свойством является то, что если один из узлов сети хочет выставить на линии рецессивный бит, а другой доминантный, то в итоге на линии окажется доминантный бит. В общем-то отсюда и следует его название, от слова «доминировать» 🙂 Очень хорошо этот процесс иллюстрирует пример с оптоволоконной линией. Как вы помните, в оптоволокне для передачи данных используется «свет», либо он есть (единица), либо его нет (ноль). При использовании в CAN-сети «свет» — доминантный бит, соответственно, отсутствие света или «темнота» — рецессивный. Вспоминаем про важнейшее свойство передачи данных в сети…

Пусть один узел выставляет на линии рецессивный бит, то есть «темноту». Второй узел, напротив, выставляет доминантный бит — «свет». В итоге на линии будет «свет», то есть доминантный бит, что в точности соответствует требованиям сети!

Протокол can в авто. Смотреть фото Протокол can в авто. Смотреть картинку Протокол can в авто. Картинка про Протокол can в авто. Фото Протокол can в авто

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

Это свойство используется для арбитража в сети CAN. Пусть несколько устройств хотят передать данные. Каждый из этих передатчиков сравнивает значение, которое он передает, со значением, фактически присутствующим на линии. В том случае, если передаваемое значение совпадает со считанным, устройство продолжает высылать свои данные. Если значения совпали у нескольких устройств, то все они продолжают передачу как ни в чем не бывало.

Продолжается это до того момента, когда значения станут различными. Если несколько устройств хотят передать рецессивный бит, а одно — доминантный, то в соответствии с правилом, которое мы обсудили выше, на линии окажется доминантный бит. В таком случае отправленные и считанные значения для устройств, пытающихся выдать на линию рецессивное состояние, не совпадут. В этом случае они должны прекратить передачу. А тот узел, который в этот момент передавал доминантный бит, продолжит свою работу. Доминирование в чистом виде 🙂

Сигналы, которые передаются по витой паре, получили название CAN_H и CAN_L (High и Low). Доминантное состояние соответствует случаю, когда потенциал сигнала CAN_H выше потенциала CAN_L. Рецессивное — когда потенциалы равны (разница потенциалов не превышает допустимого отклонения, 0.5 В).

С этим вроде бы разобрались, давайте двигаться дальше!

Пришло время определить, как биты объединяются в кадры. Протокол CAN определяет 4 вида кадров:

Для кадра данных возможны два варианта — базовый формат и расширенный. Вот так выглядит структура базового формата:

ПолеДлинаОписание
Начало кадра (SOF)1 битНачало передачи кадра
Идентификатор (ID)11 битИдентификатор сообщения
Запрос на передачу (RTR)1 битДоминантный бит
Бит расширения идентификатора (IDE)1 битБит определяет длину идентификатора, для базового формата — доминантный бит
Зарезервированный бит1 битЗарезервировано
Длина данных (DLC)4 битаКоличество байт данных
Данные0 — 8 байтДанные
Контрольная сумма (CRC)15 битКонтрольная сумма
Разграничитель контрольной суммы1 битРецессивный бит
Промежуток подтверждения (ACK)1 битДля приемника — доминантный бит, для передатчика — рецессивный
Разграничитель подтверждения1 битРецессивный бит
Конец кадра (EOF)7 битВсе биты рецессивные

А это структура расширенного:

ПолеДлинаОписание
Начало кадра (SOF)1 битНачало передачи кадра
Идентификатор A (ID A)11 битПервая часть идентификатора
Подмена запроса на передачу (SRR)1 битРецессивный бит
Бит расширения идентификатора (IDE)1 битБит определяет длину идентификатора, для расширенного формата — рецессивный бит
Идентификатор B (ID B)18 битВторая часть идентификатора
Запрос на передачу (RTR)1 битДоминантный бит
Зарезервированные биты2 битаЗарезервировано
Длина данных (DLC)4 битаКоличество байт данных
Данные0 — 8 байтДанные
Контрольная сумма (CRC)15 битКонтрольная сумма
Разграничитель контрольной суммы1 битРецессивный бит
Промежуток подтверждения (ACK)1 битДля приемника — доминантный бит, для передатчика — рецессивный
Разграничитель подтверждения1 битРецессивный бит
Конец кадра (EOF)7 битВсе биты рецессивные

Результирующий идентификатор получается в результате объединения полей «Идентификатор A» и «Идентификатор B«.

Кадр удаленного запроса (remote frame) представляет из себя кадр данных, описанный выше, но без поля данных и с рецессивным битом RTR. Он используется в случае, когда один узел хочет запросить данные у другого узла.

Кадр ошибки (error frame) передает устройство, обнаружившее ошибку в сети. Фрейм ошибки имеет наивысший приоритет и принимается всеми устройствами сети в обязательном порядке.

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

А давайте вернемся чуть назад, к арбитражу данных, и рассмотрим, что это может означать на практике! Итак, несколько устройств начинают передачу сообщения, а точнее кадра данных. Передается бит начала кадра и затем начинается передача идентификатора сообщения. Как вы помните, приоритет будет у того устройства, которое будет передавать доминантный бит, в тот момент, когда все остальные будут передавать рецессивный. То есть чем «позже» среди битов идентификатора появится «рецессивный бит», тем выше будет его приоритет! Другими словами: более высокий приоритет при использовании интерфейса CAN имеют сообщения с меньшим значением идентификатора.

Первые два типа кадров — кадр данных и кадр удаленного запроса — отделяются от других кадров специальным межкадровым промежутком (паузой). А для фреймов ошибки и перегрузки предусмотрена передача без пауз, чтобы обеспечить их скорейшую обработку узлами сети.

Итак, что у нас на очереди теперь? Конечно же контроль ошибок — важнейший аспект работы протокола CAN! Стандарт предусматривает несколько механизмов контроля ошибок.

Благодаря всем этим механизмам, вероятность необнаружения ошибки является очень низкой, что, конечно же, не может не радовать 🙂

Кроме того, если один из узлов обнаружил ошибку в сообщении, он сообщает об этом в сеть CAN при помощи фрейма ошибки. А поскольку сеть у нас широковещательная, то о возникновении ошибки становится известно всем участникам коммуникации. И если в сообщении была обнаружена ошибка, его передача будет осуществлена еще раз.

И на этом еще не все! Каждый узел может находиться в одном из трех состояний:

Протокол CAN предусматривает, что изначально, после старта, узел находится в первом из этих состояний — Error Active. Каждое устройство имеет два счетчика ошибок:

Существуют определенные правила обслуживания этих счетчиков, которые сводятся к следующему. Передатчик, обнаруживший ошибку, увеличивает свой счетчик ошибок передачи быстрее, чем приемники увеличивают свои счетчики ошибок приема. Это связано с предположением, что при ошибке, вероятность того, что сбой произошел именно в передатчике, а не в приемнике, достаточно велика. На практике ошибка передачи увеличивает соответствующий счетчик на 8, а ошибка приема лишь на 1. При приеме или передаче корректного сообщения как счетчик ошибок передачи, так и счетчики ошибок приема уменьшаются на 1.

Если значение любого из этих двух счетчиков узла превысит значение 127, то узел переходит в состояние Error Passive. А если величина одного из счетчиков превысит 255, то узел перейдет в состояние Bus Off.

Разница между этими состояниями заключается в действиях узла при диагностировании ошибки:

Как видите, протокол CAN крайне интересен для изучения, надежен, безопасен, и удобен в использовании 🙂

И на этой позитивной ноте на сегодня заканчиваем, скоро займемся практической реализацией протокола, также поговорим о микросхемах и устройствах, обеспечивающих работу с CAN. Так что подписывайтесь на обновления, буду рад снова видеть вас на нашем сайте!

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *