stringtranslate.com

CAN-шина

Сеть контроллеров ( CAN-шина ) — это стандарт автомобильной шины , предназначенный для обеспечения связи микроконтроллеров и устройств друг с другом. Это протокол на основе сообщений , первоначально разработанный для мультиплексной электрической проводки внутри автомобилей с целью экономии меди, но его также можно использовать во многих других контекстах. Для каждого устройства данные в кадре передаются последовательно, но таким образом, что если несколько устройств передают одновременно, устройство с наивысшим приоритетом может продолжить передачу, в то время как остальные отступают. Кадры принимаются всеми устройствами, в том числе передающим устройством.

История

Разработка шины CAN началась в 1983 году в компании Robert Bosch GmbH . [1] Протокол был официально опубликован в 1986 году на конференции Общества инженеров автомобильной промышленности (SAE) в Детройте , штат Мичиган . Первые чипы CAN-контроллера были представлены компанией Intel в 1987 году, а вскоре после этого — компанией Philips . [1] Выпущенный в 1991 году Mercedes-Benz W140 стал первым серийным автомобилем, оснащенным мультиплексной системой проводки на базе CAN. [2] [3]

Bosch опубликовал несколько версий спецификации CAN. Последней версией является CAN 2.0, опубликованная в 1991 году. Эта спецификация состоит из двух частей. Часть A предназначена для стандартного формата с 11-битным идентификатором, а часть B — для расширенного формата с 29-битным идентификатором. Устройство CAN, использующее 11-битные идентификаторы, обычно называется CAN 2.0A, а устройство CAN, использующее 29-битные идентификаторы, обычно называется CAN 2.0B. Эти стандарты можно бесплатно получить в компании Bosch вместе с другими спецификациями и техническими документами . [4]

В 1993 году Международная организация по стандартизации (ISO) выпустила стандарт CAN ISO 11898, который позже был реструктурирован на две части: ISO 11898-1, который охватывает уровень канала передачи данных , и ISO 11898-2, который охватывает физический уровень CAN для высокопроизводительных систем. скорость CAN. ISO 11898-3 был выпущен позже и охватывает физический уровень CAN для низкоскоростной и отказоустойчивой CAN. Стандарты физического уровня ISO 11898-2 и ISO 11898-3 не являются частью спецификации Bosch CAN 2.0.

В 2012 году Bosch выпустила CAN FD 1.0 или CAN с гибкой скоростью передачи данных. В этой спецификации используется другой формат кадра, который допускает различную длину данных, а также, при необходимости, переключение на более высокую скорость передачи данных после принятия решения об арбитраже. CAN FD совместим с существующими сетями CAN 2.0, поэтому новые устройства CAN FD могут сосуществовать в одной сети с существующими устройствами CAN. По состоянию на 2018 год компания Bosch активно расширяла стандарты CAN.

Шина CAN является одним из пяти протоколов, используемых в стандарте диагностики автомобилей бортовой диагностики (OBD)-II. Стандарт OBD-II является обязательным для всех автомобилей и легких грузовиков, продаваемых в США с 1996 года. Стандарт EOBD является обязательным для всех автомобилей с бензиновым двигателем, продаваемых в Европейском Союзе с 2001 года, и для всех автомобилей с дизельным двигателем с 2004 года. [5]

Приложения

Автомобильная промышленность

Современный автомобиль может иметь до 70 электронных блоков управления (ЭБУ) различных подсистем. [6] Обычно самым большим процессором является блок управления двигателем . Другие используются для автономного вождения, усовершенствованной системы помощи водителю (ADAS), трансмиссии , подушек безопасности , антиблокировочной системы тормозов/ABS , круиз-контроля , электроусилителя руля , аудиосистем, электрических стеклоподъемников , дверей, регулировки зеркал, аккумуляторной батареи и систем подзарядки для гибридных/электрических автомобилей. автомобили и т. д. Некоторые из них образуют независимые подсистемы, но связь между ними необходима. Подсистеме может потребоваться управлять исполнительными механизмами или получать обратную связь от датчиков. Стандарт CAN был разработан для удовлетворения этой потребности. Одним из ключевых преимуществ является то, что взаимосвязь между различными системами автомобиля может позволить реализовать широкий спектр функций безопасности, экономии и удобства с использованием только программного обеспечения - функциональность, которая увеличила бы стоимость и сложность, если бы такие функции были жестко реализованы с использованием традиционной автомобильной электрики. Примеры включают в себя:

В последние годы был введен стандарт шины LIN (локальная межсетевая сеть) в дополнение к CAN для некритических подсистем, таких как кондиционирование воздуха и информационно-развлекательная система, где скорость и надежность передачи данных менее критичны.

Другой

Архитектура

Физическая организация

CAN — это стандарт последовательной шины с несколькими ведущими устройствами для подключения электронных блоков управления (ЭБУ), также известных как узлы ( автомобильная электроника является основной областью применения). Для связи необходимы два или более узла на шине CAN. Узел может взаимодействовать с устройствами от простой цифровой логики, например PLD , через FPGA до встроенного компьютера, на котором установлено обширное программное обеспечение. Такой компьютер также может быть шлюзом, позволяющим компьютеру общего назначения (например, ноутбуку) обмениваться данными через порт USB или Ethernet с устройствами на шине CAN.

Все узлы соединены друг с другом через физически обычную двухпроводную шину . Провода представляют собой витую пару с характеристическим сопротивлением 120 Ом (номинальное) .

Эта шина использует дифференциальные проводные сигналы И. Два сигнала, CAN высокий (CANH) и CAN низкий (CANL), либо переводятся в «доминантное» состояние с CANH > CANL, либо не управляются и переводятся пассивными резисторами в «рецессивное» состояние с CANH ≤ CANL. Бит данных 0 кодирует доминантное состояние, а бит данных 1 кодирует рецессивное состояние, поддерживая соглашение проводного И, которое дает узлам с меньшими идентификационными номерами приоритет на шине.

Высокоскоростная CAN-шина. ИСО 11898-2.

В стандарте ISO 11898-2 , также называемом высокоскоростным CAN (скорость передачи данных до 1 Мбит/с в CAN, 5 Мбит/с в CAN-FD), используется линейная шина, на каждом конце которой имеется резистор сопротивлением 120 Ом.

Высокоскоростная передача сигналов CAN. ИСО 11898-2.

Высокоскоростная передача сигналов CAN приводит к тому, что провод CANH приближается к 3,5 В, а провод CANL — к 1,5 В, когда какое-либо устройство передает доминантный сигнал (0), а если ни одно устройство не передает доминантный сигнал, нагрузочные резисторы пассивно возвращают два провода к рецессивному. (1) состояние с номинальным дифференциальным напряжением 0 В. (Приемники считают любое дифференциальное напряжение менее 0,5 В рецессивным.) Доминирующим дифференциальным напряжением является номинальное значение 2 В. Доминирующее синфазное напряжение (CANH+CANL)/ 2 должно находиться в пределах 1,5–3,5 В от общего значения, а рецессивное синфазное напряжение должно находиться в пределах ±12 от общего значения.

Низкоскоростная отказоустойчивая CAN-шина. ИСО 11898-3.

ISO 11898-3 , также называемый низкоскоростной или отказоустойчивой шиной CAN (до 125 кбит/с), использует линейную шину, звездообразную шину или несколько звездообразных шин, соединенных линейной шиной, и завершается в каждом узле долей общее оконечное сопротивление. Общее сопротивление нагрузки должно быть около 100 Ом, но не менее.

Низкоскоростная передача сигналов CAN. ИСО 11898-3.

Низкоскоростная отказоустойчивая передача сигналов CAN работает аналогично высокоскоростной CAN, но с большими перепадами напряжения. Доминантное состояние передается путем направления CANH в сторону напряжения питания устройства (5 В или 3,3 В) и CANL в направлении 0 В при передаче доминантного состояния (0), в то время как согласующие резисторы переводят шину в рецессивное состояние с CANH в 0. V и CANL при напряжении 5 В. Это позволяет создать более простой приемник, который просто учитывает знак CANH-CANL. Оба провода должны выдерживать нагрузку от −27 до +40 В без повреждений.

Электрические свойства

Как при высокоскоростном, так и при низкоскоростном CAN, скорость перехода выше, когда происходит переход от рецессивного к доминантному, поскольку провода CAN активно управляются. Скорость доминантно-рецессивного перехода зависит, прежде всего, от длины сети CAN и емкости используемого провода.

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

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

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

Высокоскоростная CAN использует резистор сопротивлением 120 Ом на каждом конце линейной шины. Низкоскоростная CAN использует резисторы в каждом узле. Могут использоваться и другие типы оконечных нагрузок, например, схема замыкающего смещения, определенная в ISO11783 . [9]

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

Узлы

Узел CAN-шины

Каждый узел требует

Каждый узел может отправлять и получать сообщения, но не одновременно. Сообщение или кадр состоит в основном из идентификатора (идентификатора), который представляет приоритет сообщения, и до восьми байтов данных. CRC, слот подтверждения [ACK] и другие служебные данные также являются частью сообщения. Улучшенный CAN FD увеличивает длину раздела данных до 64 байтов на кадр. Сообщение передается последовательно на шину с использованием формата без возврата к нулю (NRZ) и может быть получено всеми узлами.

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

Передача данных

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

В спецификациях CAN используются термины «доминантные биты» и «рецессивные биты», где доминантный — это логический 0 (активно подключаемый к напряжению передатчиком), а рецессивный — это логическая 1 (пассивно возвращаемый к напряжению резистором). Состояние ожидания представлено рецессивным уровнем (логическая 1). Если один узел передает доминантный бит, а другой узел передает рецессивный бит, то возникает конфликт, и доминантный бит выигрывает. Это означает, что для сообщения с более высоким приоритетом нет задержки, и узел, передающий сообщение с более низким приоритетом, автоматически пытается повторно передать шестибитные тактовые сигналы после окончания доминирующего сообщения. Это делает CAN очень подходящим в качестве системы связи с приоритетами в реальном времени.

Точные напряжения для логического 0 или 1 зависят от используемого физического уровня, но основной принцип CAN требует, чтобы каждый узел прослушивал данные в сети CAN, включая сам передающий узел(-а). Если логическая 1 передается всеми передающими узлами одновременно, то логическую 1 видят все узлы, включая как передающий узел(и), так и принимающий узел(и). Если логический 0 передается всеми передающими узлами одновременно, то логический 0 виден всем узлам. Если логический 0 передается одним или несколькими узлами, а логическая 1 передается одним или несколькими узлами, то логический 0 виден всем узлам, включая узлы, передающие логическую 1. Когда узел передает логическая 1, но видит логический 0, понимает, что существует конфликт, и прекращает передачу. Используя этот процесс, любой узел, который передает логическую 1, когда другой узел передает логический 0, теряет арбитраж и выбывает. Узел, который проигрывает арбитраж, повторно ставит свое сообщение в очередь для последующей передачи, и битовый поток кадра CAN продолжает работать без ошибок до тех пор, пока не останется только один узел для передачи. Это означает, что узел, передающий первую единицу, теряет арбитраж. Поскольку 11-битный идентификатор (или 29 для CAN 2.0B) передается всеми узлами в начале кадра CAN, узел с наименьшим идентификатором передает больше нулей в начале кадра, и именно этот узел выигрывает арбитраж или имеет высший приоритет.

Например, рассмотрим сеть CAN с 11-битным идентификатором с двумя узлами с идентификаторами 15 (двоичное представление, 00000001111) и 16 (двоичное представление, 00000010000). Если эти два узла передают данные одновременно, каждый из них сначала передает стартовый бит, а затем передает первые шесть нулей своего идентификатора без принятия арбитражного решения.

Когда передается бит идентификатора 4, узел с идентификатором 16 передает 1 (рецессивный) для своего идентификатора, а узел с идентификатором 15 передает 0 (доминантный) для своего идентификатора. Когда это происходит, узел с идентификатором 16 знает, что он передал 1, но видит 0 и понимает, что произошел конфликт и он потерял арбитраж. Узел 16 прекращает передачу, что позволяет узлу с идентификатором 15 продолжить передачу без потери данных. Узел с наименьшим идентификатором всегда выиграет арбитраж и, следовательно, имеет наивысший приоритет.

Скорость передачи данных до 1 Мбит/с возможна при длине сети менее 40 м. Уменьшение скорости передачи данных позволяет увеличить расстояние в сети (например, 500 м при скорости 125 кбит/с). Улучшенный стандарт CAN FD позволяет увеличить скорость передачи данных после арбитража и увеличить скорость раздела данных до десяти и более раз от скорости передачи данных арбитража.

Распределение идентификатора

Идентификаторы сообщений должны быть уникальными [10] на одной шине CAN, иначе два узла продолжат передачу за пределами поля арбитража (ID), что приведет к ошибке.

В начале 1990-х годов выбор идентификаторов сообщений осуществлялся просто на основе идентификации типа данных и узла-отправителя; однако, поскольку идентификатор также используется в качестве приоритета сообщения, это привело к снижению производительности в реальном времени. В этих сценариях обычно требовалось низкое использование шины CAN, около 30 %, чтобы гарантировать, что все сообщения будут соответствовать установленным срокам. Однако если вместо этого идентификаторы определяются на основе крайнего срока сообщения, то чем ниже числовой идентификатор и, следовательно, тем выше приоритет сообщения, то использование шины от 70 до 80% обычно может быть достигнуто до того, как какие-либо сроки сообщения будут пропущены. [11]

Битовая синхронизация

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

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

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

Пример синхронизации битов CAN с 10 тактами времени на бит

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

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

Слои

Протокол CAN, как и многие сетевые протоколы, можно разложить на следующие уровни абстракции :

Прикладной уровень
Слой объектов
Переносной слой

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

Физический слой
Пример электрической топологии шины CAN с терминаторными резисторами

Шина CAN ( ISO 11898-1 :2003) изначально определяла протокол канального уровня только с абстрактными требованиями для физического уровня, например, утверждая использование среды с множественным доступом на битовом уровне посредством использования доминантного и рецессивного состояний. Электрические аспекты физического уровня (напряжение, ток, количество проводников) были определены в стандарте ISO 11898-2 :2003, который сейчас широко принят. Однако механические аспекты физического уровня (тип и количество разъемов, цвета, метки, выводы) еще официально не определены. В результате автомобильный ЭБУ обычно имеет особый — часто специальный — разъем с различными типами кабелей, два из которых являются линиями шины CAN. Тем не менее, появилось несколько стандартов де-факто для механической реализации, наиболее распространенным из которых является 9-контактный штекер типа D-sub со следующей распиновкой:

Разъем DE-9 (штекер)

Этот фактический механический стандарт CAN может быть реализован с помощью узла, имеющего как вилку, так и гнездо 9-контактных разъемов D-sub, электрически подключенных друг к другу параллельно внутри узла. Питание шины подается на штекер узла, а шина получает питание от гнездового разъема узла. Это соответствует общепринятому электротехническому соглашению, согласно которому источники питания подключаются к гнездовым разъемам. Принятие этого стандарта позволяет избежать необходимости изготовления специальных разветвителей для подключения двух наборов проводов шины к одному разъему D в каждом узле. Такие нестандартные (нестандартные) жгуты проводов (разветвители), соединяющие проводники вне узла, снижают надежность шины, исключают взаимозаменяемость кабелей, снижают совместимость жгутов проводов и увеличивают стоимость.

Отсутствие полной спецификации физического уровня (механического в дополнение к электрическому) освободило спецификацию шины CAN от ограничений и сложности физической реализации. Однако это оставило реализации CAN-шины открытыми для проблем совместимости из-за механической несовместимости. Чтобы улучшить совместимость, многие производители транспортных средств разработали спецификации, описывающие набор разрешенных приемопередатчиков CAN в сочетании с требованиями к паразитной емкости линии. Допустимая паразитная емкость включает оба конденсатора, а также защиту от электростатического разряда (ESD [13] в соответствии с ISO 7637-3). Помимо паразитной емкости, системы 12 В и 24 В не предъявляют одинаковых требований к максимальному напряжению сети. Действительно, во время мероприятий по запуску от внешнего источника напряжение в линиях легковых автомобилей может достигать 24 В, а в системах грузовых автомобилей - до 36 В. Появляются новые решения, позволяющие использовать один и тот же компонент как для CAN, так и для CAN FD (см. [14] ).

Помехоустойчивость по ISO 11898-2 :2003 достигается за счет поддержания дифференциального сопротивления шины на низком уровне с помощью резисторов малого номинала (120 Ом) на каждом конце шины. Однако в режиме ожидания шина с низким импедансом, такая как CAN, потребляет больше тока (и мощности), чем другие сигнальные шины, работающие по напряжению. В системах шины CAN работа сбалансированной линии , при которой ток в одной сигнальной линии точно уравновешивается током противоположного направления в другом сигнале, обеспечивает независимый, стабильный опорный сигнал 0 В для приемников. Передовая практика определяет, что сигналы симметричной пары шины CAN передаются по витой паре экранированного кабеля, чтобы минимизировать радиочастотное излучение и снизить восприимчивость к помехам в и без того зашумленной радиочастотной среде автомобиля.

ISO 11898-2 обеспечивает некоторую устойчивость к синфазному напряжению между передатчиком и приемником за счет наличия шины 0 В, проходящей вдоль шины, для поддержания высокой степени связи напряжений между узлами. Кроме того, в упомянутой выше механической конфигурации де-факто включена шина питания для распределения мощности на каждый из узлов приемопередатчика. В конструкции предусмотрено общее питание для всех трансиверов. Фактическое напряжение, подаваемое на шину, и узлы, подаваемые на нее, зависят от приложения и официально не указаны. Обычная конструкция узла предусматривает, что каждый узел оснащен приемопередатчиками, которые оптически изолированы от своего хоста узла и получают линейно регулируемое напряжение питания 5 В для приемопередатчиков от универсальной шины питания, обеспечиваемой шиной. Обычно это обеспечивает операционный запас на линии питания, достаточный для обеспечения совместимости между многими типами узлов. Типичные значения напряжения питания в таких сетях составляют от 7 до 30 В. Однако отсутствие формального стандарта означает, что ответственность за совместимость шин питания несут проектировщики систем.

ISO 11898-2 описывает электрическую реализацию, состоящую из конфигурации многоточечной одноконцовой симметричной линии с резисторной нагрузкой на каждом конце шины. В этой конфигурации доминирующее состояние утверждается одним или несколькими передатчиками, переключающими CAN- на подачу 0 В и (одновременно) переключающими CAN+ на напряжение шины +5 В, тем самым формируя путь тока через резисторы, которые завершают шину. По существу, согласующие резисторы являются важным компонентом системы сигнализации и включены не только для ограничения отражения волн на высокой частоте.

В рецессивном состоянии сигнальные линии и резистор(ы) остаются в состоянии с высоким импедансом по отношению к обеим шинам. Напряжения как на CAN+, так и на CAN- стремятся (слабо) к напряжению на полпути между шинами. Рецессивное состояние присутствует на шине только тогда, когда ни один из передатчиков на шине не утверждает доминантное состояние.

В доминирующем состоянии сигнальные линии и резистор(ы) переходят в состояние с низким импедансом по отношению к шинам, так что ток течет через резистор. Напряжение CAN+ стремится к +5 В, а напряжение CAN− стремится к 0 В.

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

Эта стратегия передачи сигналов существенно отличается от других технологий передачи по симметричной линии, таких как RS-422 /3, RS-485 и т. д., в которых используются драйверы/приемники дифференциальной линии и используется система сигнализации, основанная на напряжении дифференциального режима симметричной линии, пересекающей условную линию. 0 В. Множественный доступ в таких системах обычно опирается на среду, поддерживающую три состояния (активное высокое, активное низкое и неактивное три состояния) и рассматривается во временной области. Множественный доступ к шине CAN достигается за счет того, что электрическая логика системы поддерживает только два состояния, которые концептуально аналогичны проводной сети «И».

Рамки

Сеть CAN может быть настроена для работы с двумя различными форматами сообщений (или кадров ): стандартным или базовым форматом кадра (описанным в CAN 2.0 A и CAN 2.0 B) и расширенным форматом кадра (описанным только CAN 2.0 B). Единственная разница между этими двумя форматами заключается в том, что базовый кадр CAN поддерживает длину идентификатора 11 бит, а расширенный кадр CAN поддерживает длину идентификатора 29 бит, состоящую из 11-битного идентификатора (базовый идентификатор). и 18-битное расширение (расширение идентификатора). Различие между базовым форматом кадра CAN и расширенным форматом кадра CAN проводится с помощью бита IDE, который передается как доминантный в случае 11-битного кадра и передается как рецессивный в случае 29-битного кадра. Контроллеры CAN, поддерживающие сообщения расширенного формата кадра, также могут отправлять и получать сообщения в базовом формате кадра CAN. Все кадры начинаются с бита начала кадра (SOF), который обозначает начало передачи кадра.

CAN имеет четыре типа кадров:

Кадр данных

Кадр данных является единственным кадром для фактической передачи данных. Существует два формата сообщений:

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

Формат базового кадра

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

Формат кадра следующий: Значения битов описаны для сигнала CAN-LO.

  1. ^ Физически возможно передать значение от 9 до 15 в 4-битном DLC, хотя данные по-прежнему ограничены восемью байтами. Некоторые контроллеры допускают передачу или прием DLC размером более восьми, но фактическая длина данных всегда ограничена восемью байтами.

Расширенный формат кадра

Формат кадра следующий, как показано в таблице ниже:

  1. ^ Физически возможно передать значение от 9 до 15 в 4-битном DLC, хотя данные по-прежнему ограничены восемью байтами. Некоторые контроллеры допускают передачу или прием DLC размером более восьми, но фактическая длина данных всегда ограничена восемью байтами.

Два поля идентификатора (A и B) объединяются, образуя 29-битный идентификатор.

Удаленная рамка

РТР = 0 ; ДОМИНАНТА в кадре данных
РТР = 1; РЕЦЕССИВ в удаленной рамке

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

Кадр ошибки

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

Существует два типа флагов ошибок:

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

В CAN имеется два счетчика ошибок:

  1. Счетчик ошибок передачи (TEC)
  2. Счетчик ошибок приема (REC)

Перегрузка кадра

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

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

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

Слот подтверждения

Слот подтверждения используется для подтверждения получения действительного кадра CAN. Каждый узел, получивший кадр, не обнаружив ошибки, передает доминантный уровень в слоте ACK и таким образом переопределяет рецессивный уровень передатчика. Если передатчик обнаруживает рецессивный уровень в слоте ACK, он знает, что ни один приемник не нашел действительный кадр. Принимающий узел может передать рецессивный сигнал, чтобы указать, что он не получил действительный кадр, но другой узел, который получил действительный кадр, может заменить его доминантным. Передающий узел не может знать, что сообщение было получено всеми узлами сети CAN.

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

Межкадровый интервал

Кадры данных и удаленные кадры отделяются от предыдущих кадров битовым полем, называемым межкадровым пространством. Межкадровое пространство состоит как минимум из трех последовательных рецессивных (1) битов. После этого, если будет обнаружен доминантный бит, он будет рассматриваться как бит начала кадра следующего кадра. Кадры перегрузки и кадры ошибок не предваряются межкадровым интервалом, а несколько кадров перегрузки не разделяются межкадровым интервалом. Межкадровое пространство содержит битовые поля перерыва и простоя шины, а также приостановки передачи при ошибке пассивной станции, которая была передатчиком предыдущего сообщения. [15]

Битовая начинка

Кадр CAN до и после добавления битов данных (фиолетового цвета). Неправильный CRC используется для иллюстрации вставки битов.

Чтобы обеспечить достаточное количество переходов для поддержания синхронизации, бит противоположной полярности вставляется после пяти последовательных битов одной и той же полярности. Эта практика называется вставкой битов и необходима из-за кодирования без возврата к нулю (NRZ), используемого в CAN. Заполненные кадры данных очищаются получателем.

Все поля в кадре заполняются, за исключением разделителя CRC, поля ACK и конца кадра, которые имеют фиксированный размер и не заполняются. В полях, где используется битовая вставка, ошибкой считаются шесть последовательных бит одной полярности (111111 или 000000). Флаг активной ошибки может быть передан узлом при обнаружении ошибки. Флаг активной ошибки состоит из шести последовательных доминантных битов и нарушает правило вставки битов.

Вставка битов означает, что кадры данных могут быть больше, чем можно было бы ожидать, просто перечислив биты, показанные в таблицах выше. Максимальное увеличение размера кадра CAN (базовый формат) после вставки битов имеет место в случае

11111000011110000...

который набит как (биты набивки выделены жирным шрифтом):

11111 0 0000 1 1111 0 0000 1 ...

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

Размер базовой рамы ограничен

где n — количество байтов данных, максимум 8.

Поскольку это размер кадра до заполнения, в худшем случае один бит будет добавлен через каждые четыре исходных бита после первого (отсюда и -1 в числителе), и из-за расположения битов заголовка только Из них 34 из 44 могут подвергаться битовой подстановке.

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

Стандарты нижнего уровня CAN

Серия ISO 11898 определяет физический уровень и уровень канала передачи данных (уровни 1 и 2 модели ISO/OSI ) категории последовательной связи, называемой сетью контроллеров, которая поддерживает распределенное управление в реальном времени и мультиплексирование для использования в дорожных транспортных средствах. [16]

Существует несколько физических уровней CAN и других стандартов:

ISO 11898-1:2015 определяет уровень канала передачи данных (DLL) и физическую сигнализацию сети контроллера (CAN). [17] В этом документе описывается общая архитектура CAN с точки зрения иерархических уровней в соответствии с эталонной моделью ISO для взаимодействия открытых систем (OSI), установленной в ISO/IEC 7498-1 , и приводятся характеристики для организации обмена цифровой информацией между модули, реализующие CAN DLL с подробной спецификацией подуровня управления логическим каналом (LLC) и подуровня управления доступом к среде (MAC) .

ISO 11898-2:2016 определяет высокоскоростной (скорость передачи до 1 Мбит/с) модуль доступа к среде (MAU) и некоторые функции интерфейса, зависящего от среды (MDI) (согласно ISO 8802-3), которые включают в себя физический уровень контроллерной сети. ISO 11898-2 использует двухпроводную симметричную схему передачи сигналов. Это наиболее часто используемый физический уровень в приложениях силовых агрегатов транспортных средств и промышленных сетях управления.

ISO 11898-3:2006 определяет низкоскоростной, отказоустойчивый, зависящий от среды интерфейс для организации обмена цифровой информацией между электронными блоками управления дорожных транспортных средств, оснащенных CAN, при скоростях передачи от 40 кбит/с до 125 кбит. /с.

ISO 11898-4:2004 определяет синхронизированную по времени связь в CAN (TTCAN). Он применим для настройки синхронизированного по времени обмена цифровой информацией между электронными блоками управления (ЭБУ) дорожных транспортных средств, оснащенных CAN, и определяет объект кадровой синхронизации, который координирует работу как логического канала, так и средств управления доступом к среде в соответствии с ISO. 11898-1, чтобы обеспечить синхронизированное по времени расписание связи.

ISO 11898-5:2007 определяет физический уровень CAN для скорости передачи данных до 1 Мбит/с для использования в дорожных транспортных средствах. В нем описаны функции устройства доступа к среде, а также некоторые особенности интерфейса, зависящие от среды, в соответствии с ISO 8802-2. Это представляет собой расширение ISO 11898-2, касающееся новых функций для систем, требующих функций низкого энергопотребления при отсутствии активной связи по шине.

ISO 11898-6:2013 определяет физический уровень CAN для скорости передачи данных до 1 Мбит/с для использования в дорожных транспортных средствах. В нем описаны функции устройства доступа к среде, а также некоторые особенности интерфейса, зависящие от среды, в соответствии с ISO 8802-2. Это представляет собой расширение ISO 11898-2 и ISO 11898-5, определяющее механизм выборочного пробуждения с использованием настраиваемых кадров CAN.

ISO 16845-1:2016 предоставляет методологию и набор абстрактных тестов, необходимых для проверки соответствия любой реализации CAN CAN, указанной в ISO 11898-1.

ISO 16845-2:2018 устанавливает тестовые сценарии и требования к тестированию для реализации плана тестирования, проверяющего, соответствует ли приемопередатчик CAN с реализованными функциями выборочного пробуждения указанным функциям. Вид тестирования, определенный в ISO 16845-2:2018, называется тестированием на соответствие.

ДБК

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

Протоколы более высокого уровня на базе CAN

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

CAN in Automation (CiA) — это международная организация пользователей и производителей, которая разрабатывает и поддерживает протоколы более высокого уровня на основе CAN и их международную стандартизацию. [18] Среди этих характеристик:

Стандартизированные подходы

Другие подходы

CANopen Лифт

Группа специальных интересов CANopen (SIG) «Управление лифтом», основанная в 2001 году, разрабатывает профиль приложения CANopen CiA 417 для систем управления лифтом . Он работает над расширением функций, улучшением технического содержания и обеспечивает соблюдение действующих правовых стандартов для систем управления лифтами. Первая версия CiA 417 была опубликована (доступна для членов CiA) летом 2003 года, версия 2.0 — в феврале 2010 года, версия 2.1.0 — в июле 2012 года, версия 2.2.0 — в декабре 2015 года и версия 2.3.1 — в феврале 2020 года.

Йорг Хеллмих (ELFIN GmbH) является председателем этой SIG и управляет вики-сообществом лифтов CANopen, содержащим информацию о лифтах CANopen.

Безопасность

CAN — это протокол низкого уровня, который по своей сути не поддерживает никаких функций безопасности. В стандартных реализациях CAN также отсутствует шифрование, что делает эти сети открытыми для перехвата кадров «человек посередине». В большинстве реализаций ожидается, что приложения развернут свои собственные механизмы безопасности; например, для аутентификации входящих команд или присутствия определенных устройств в сети. Неспособность реализовать адекватные меры безопасности может привести к различного рода атакам, если противнику удастся вставить сообщения в шину. [19] Хотя для некоторых критически важных для безопасности функций, таких как изменение встроенного ПО, программирование ключей или управление приводами антиблокировочной тормозной системы, существуют пароли, эти системы не реализованы повсеместно и имеют ограниченное количество пар начального значения/ключа.

Инструменты разработки

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

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

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

Лицензирование

Bosch владеет патентами на эту технологию, хотя срок действия патентов, связанных с оригинальным протоколом, уже истек. Производители CAN-совместимых микропроцессоров платят компании Bosch лицензионные сборы за использование товарного знака CAN и любых новых патентов, связанных с CAN FD, и они обычно переходят к покупателю в цене чипа. Производителям продуктов со специальными ASIC или FPGA , содержащими CAN-совместимые модули, необходимо заплатить плату за лицензию протокола CAN, если они хотят использовать торговую марку CAN или возможности CAN FD. [20]

Смотрите также

Рекомендации

  1. ^ ab «История CAN». CAN в автоматизации.
  2. ^ "Мерседес-Бенц S-Класс W 140" . mercedes-Benz.com . 23 февраля 2016 г. Архивировано из оригинала 10 июня 2019 г. . Проверено 27 октября 2017 г.
  3. ^ «CAN в автоматизации - Mercedes W140: первый автомобиль с CAN» . can-newsletter.org . Проверено 27 октября 2017 г.
  4. ^ "Литература Bosch Semiconductor CAN" . Архивировано из оригинала 23 мая 2017 г. Проверено 31 мая 2017 г.
  5. ^ Строительный адаптер для бортовой диагностики автомобиля. Архивировано 14 мая 2018 г. на Wayback Machine , obddiag.net, по состоянию на 9 сентября 2009 г.
  6. ^ Сравнение концепций, запускаемых по событию и по времени, применительно к распределенным системам управления А. Альберт, Robert Bosch GmbH Embedded World, 2004, Нюрнберг
  7. ^ «NISMO увеличивает функциональность GPS-регистратора данных GT6 и количество треков» . www.gtplanet.net . 25 октября 2014 г.
  8. ^ «Что такое DiveCAN и почему меня это должно волновать?». 22 марта 2016 г.
  9. ^ «ISO11783: стандартизированный интерфейс трактора и агрегата» (PDF) .
  10. ^ ISO 11898-1:2015 – Транспорт дорожный. Сеть контроллеров (CAN). Часть 1. Уровень канала передачи данных и физическая сигнализация.
  11. ^ Дайгморте, Хьюго; Бойер, Марк (2017), «Оценка допустимой нагрузки шины CAN при слабом механизме синхронизации», Учеб. 24-го Междунар. Конф. по сетям и системам реального времени (RTNS 2017) , Гренобль, Франция: ACM
  12. ^ «Понимание синхронизации битов модуля CAN Microchip» (PDF) .
  13. ^ «Защита диодов ISO7637-3 для шины CAN» .
  14. ^ «Защита от электростатического разряда по CAN-шине» .
  15. ^ «КАДРЫ СООБЩЕНИЙ CAN-ШИНЫ - Кадр перегрузки, межкадровое пространство» . 18 ноября 2009 г.
  16. ^ «Сеть контроллеров (CAN)» . Векторная группа. Архивировано из оригинала 25 апреля 2016 года . Проверено 25 сентября 2013 г.
  17. ^ «ISO 11898-1:2003. Транспорт дорожный. Сеть контроллеров (CAN). Часть 1. Уровень канала передачи данных и физическая сигнализация». ИСО.
  18. ^ CiA: Международная стандартизация.
  19. ^ «Мы водили машину, пока ее взломали» . www.vice.com . 29 мая 2014 г. Архивировано из оригинала 8 ноября 2019 г.
  20. ^ «Условия лицензии Протокол CAN и Протокол CAN FD» (PDF) . Архивировано из оригинала (PDF) 16 марта 2016 г. Проверено 15 марта 2016 г.

Внешние ссылки

Технические характеристики
  • Стандарт ISO 11898-1 (2015 г.) - включает спецификации CAN и CAN-FD.
  • Спецификация Bosch CAN версии 2.0 (1991, 1997) — также известная как Classical CAN и CAN-Classic
  • Спецификация Bosch CAN-FD, версия 1.0 (2012 г.) — увеличение скорости передачи данных до 8 Мбит/с.
  • Bosch CAN-FD-Light (будущее) — экономичная подсистема CAN-FD
  • Bosch CAN-XL (будущее) — увеличение скорости передачи данных до 20 Мбит/с
Другой