Протокол связи и стандарты проектирования CAN-шины

CAN-шина (Controller Area Network) — это сеть, предназначенная для установления эффективных каналов связи между микроконтроллерами через витую пару без участия хост-компьютера. Архитектура CAN гарантирует устойчивую передачу сигнала даже в сложных условиях высоких температур и вибраций. Такая особенность делает CAN-шину оптимальным выбором для применения в автомобилестроении. В статье, переведённой с английского специалистами А-КОНТРАКТ, рассматриваются преимущества применения CAN-шины при проектировании автомобильной электроники.

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

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

Что такое шина CAN?

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

Стандарты проектирования шины CAN

ISO 11898

Этот стандарт устанавливает, что шина CAN работает на основе модели взаимодействия открытых систем  (OSI — open systems interconnection), которая включает семь уровней:

  • физический уровень (physical);
  • уровень канала данных (канальный уровень — data link);
  • сетевой уровень (network);
  • транспортный уровень (transport);
  • уровень сессии (сеансовый — session);
  • уровень представления (presentation);
  • прикладной уровень (application layer).

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

ISO 11898–1

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

ISO 11898–2

Описывает требования к физическому уровню. Физический уровень включает стандарты для типов кабелей, уровней электрических сигналов,  требований к узлам и импедансу. ISO 11898–2 определяет следующие атрибуты:

  • Скорость передачи данных. Узлы должны быть связаны через двухпроводную шину со скоростью передачи данных до 1 Мбит/с (классическая CAN) или 5 Мбит/с (CAN FD). 
  • Длина кабеля. Максимальная длина кабеля для CAN должна находиться в пределах от 40 м (1 Мбит/с) до 500 м (125 кбит/с). 
  • Терминаторы. Шина CAN должна быть снабжена оконечным резистором 120 Ом на каждом конце шины для обеспечения надлежащего  шинного окончания. 

ISO 16845

Включает план проверки соответствия местной контроллерной сети CAN спецификации ISO 11898.

Обзор схемы CAN

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

Электронные блоки или узлы управления

Устройства, подключенные к линии CAN-шины, определяются как электронные блоки или узлы управления (ЭБУ/ECU — electronic control
units). Для обеспечения связи в сети CAN необходимо два или более ЭБУ. Количество требуемых узлов зависит от сложности схемы, то есть от  того, является ли это простым устройством ввода/вывода или встроенной системой с интерфейсом CAN. Все ЭБУ подключаются через  двухпроводную шину.

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

Согласно ISO 11898–1, трансивер устанавливает связь с физическим уровнем. Физические уровни, такие как высокоскоростные и  низкоскоростные CAN, требуют разных типов трансиверов. Трансиверы регулируют уровень сигнала отправляемых и получаемых данных на каждом конкретном узле, которые обмениваются данными друг с другом через сеть. Все узлы могут как передавать, так и получать данные, но не одновременно.

Линия шины CAN

Физический уровень сети шины CAN определяет фундаментальную связь между устройствами, подключенными к ней. В проводной схеме шины CAN задействованы два про вода, скрученных в витую пару: CAN high и CAN-low. CAN High обеспечивает более высокое напряжение, а CAN Low управляет более низким напряжением. Оба провода образуют дифференциальные пары и в режиме ожидания сети несут одинаковое напряжение. Во время передачи линия CAN High имеет более высокое напряжение, чем линия CAN Low. Связь по шине CAN устанавливается с помощью генерируемого дифференциального напряжения между линиями шины CAN. Кроме  того, схема обеспечивает устойчивость к индуктивным наводкам, электрическим полям и другим помехам.

Окончание линии шины CAN

Линия шины CAN должна быть оконцована подходящими резисторами (рис. 1).

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

Советы по проектированию печатной платы для создания надежной шины CAN

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

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

Как работает шина CAN?

Сообщения CAN передаются в так называемых кадрах. Существует четыре типа сообщений-кадров:

Кадр данных (data frame)

Кадры данных (рис. 2) используются для передачи данных от одного узла к другому или между несколькими узлами.

 

Они состоят из следующих значимых фрагментов:

  • Данные CAN классифицируются на два типа в зависимости от их длины: стандартные (2.0A) и расширенные (2.0B). Для расширенного типа в поле арбитража добавляется дополнительный 18-битный идентификатор.
  • Поле арбитража определяет приоритет, когда более одного узла хранят сообщения для шины. Это поле включает:
    – для CAN 2.0A: 11-битный идентификатор и бит RTR;
    – для CAN 2.0B: 29-битный (11-битный + 18-битный) идентификатор и бит RTR.
  • Поле данных, которое содержит 0–8 байт информации.
  • Поле CRC состоит из 15-битной контрольной суммы, которая используется для обнаружения ошибок.
  • Слот подтверждения используется, когда контроллер CAN получает сообщение корректно и отправляет бит подтверждения в конце каждого сообщения. Передатчик проверяет бит и повторно передает сообщение, если подтверждение не получено.
  • Поле арбитража состоит из идентификационного номера сообщения и бита запроса на удаленную передачу (RTR). С увеличением приоритета сообщения получают более низкие идентификационные номера (ID). Если несколько узлов одновременно передают данные, сообщение с наименьшим идентификатором сообщения получает приоритет через процесс арбитража. Бит RTR обеспечивает подтверждение передачи данных.

Удаленные кадры

Этот кадр (рис. 3) используется для запроса данных от других узлов. 

Например, если узел A передает уда ленный кадр с полем арбитража 234, то узел B может получить обратно кадр данных с полем арбитража, так же установленным на 234. Бит RTR имеет здесь наивысшее значение. В удаленном кадре нет поля данных.

Кадры ошибок

Кадр ошибки (рис. 4) передается, когда узел определяет ошибку и информирует другие узлы о необходимости проверки.

В случае обнаружения ошибки формируется и передается сообщение о ней. После этого передатчик повторяет попытку передачи сообщения.  Кадр ошибки состоит из 6-битного флага ошибки и разделителя, который представляет собой 8 рецессивных бит. Разделитель ошибок образует пространство, в котором другие узлы шины могут отправлять свои флаги ошибок.

Кадры перегрузки

Кадр перегрузки сообщает о состоянии переполнения. Подобно кадру ошибки, он передается узлом, в котором произошло переполнение количества задач.

История и развитие протокола CAN

Инфраструктура CAN изначально была разработана немецкой компанией Bosh в середине 1980-х гг. Со временем стандарт получил несколько улучшений и усовершенствований. В 1986 году стандарт был принят SAE (Society of Automotive Engineers) International. В 1987 году Intel  выпустила первую микросхему контроллера CAN — Intel 82526. Позже появилась схема Philips — 82C200. В 1991 году свет увидела версия CAN 2.0. Двумя годами позже Международная организация по стандартизации (ISO) выпустила стандарт ISO-11898, относящийся к спецификациям стандарта CAN. Сюда вошли напряжение CAN, интерфейсы разъемов и другие физические стандарты, такие как ISO-11898–1, относящийся к уровню канала передачи данных, и ISO-11898–2, который включает спецификации физического уровня высокоскоростного CAN.

Были разработаны и различные виды высокоуровневых протоколов, такие как CANopen и DeviceNet. Для нагруженных решений и низкоскоростной передачи данных на основе CAN были созданы решения с гибкой скоростью передачи данных (CAN FD). Благодаря скорости передачи данных до 8 Мбит/с (с использованием CAN SIC — Signal Improvement Capability) и полезной нагрузке размером 64 байт CAN FD в настоящее время очень популярен в коммерческом секторе. CAN XL — недавняя разработка, превосходящая по скорости своего предшественника, CAN FD, более чем в 2 раза (до 20 Мбит/с). CAN XL предлагает отличные безопасность, скорость передачи данных, размер полезной нагрузки, надежность и арбитраж. Примечательно, что CAN XL можно использовать совместно с CAN FD, создавая смешанные сети.

Различные типы шины  CAN

Согласно стандарту ISO 11898, определено несколько версий шины CAN. Наиболее важные из них описаны в этом разделе.

  • Низкоскоростной CAN (Low-speed CAN). Протокол низкоскоростного CAN наиболее эффективен при обнаружении ошибок. Максимальная поддерживаемая скорость передачи данных составляет 125 кбит/с, что позволяет использовать экономичную проводку. Этот протокол реализован в дисплеях, диагностике, управлении приборной панелью и электрических стеклоподъемниках автомобилей.
  • Высокоскоростной CAN (High speed CAN). Высокоскоростной CAN используется в критически важных подсистемах, требующих высокой точности данных. Чаще всего его применяют в подушках безопасности, антиблокировочной системе тормозов, электронной системе стабилизации и блоках управления двигателем. Протокол поддерживает скорость передачи данных 1 кбит/с — 1 Мбит/с. 
  • CAN FD. Требования к полосе пропускания современных технологий растут с каждым днем. Последняя версия — CAN FD — предлагает гибкую скорость передачи данных с большим количеством данных на сообщение и более высокой скоростью. Стандартный CAN обеспечивает длину данных 8 байт, а с CAN FD можно получить на 800% больше, то есть 64 байт данных (рис. 5).

Максимальную скорость передачи данных также можно увеличить с 1 до 8 Мбит/с. Поэтому вполне понятно, почему CAN FD постепенно становится выбором номер один для производителей автомобильного оборудования.

Сравнение шины CAN и USB/ETHERNET

CAN устанавливает распределенную связь, похожую на USB и Ethernet. И USB, и Ethernet передают данные от источника к месту назначения
с использованием протокола «точка-точка». Служба обмена сообщениями CAN не поддерживает двухточечное соединение.
В отличие от USB и Ethernet, протокол CAN работает без поддержки хост-компьютера. Устройства, подключенные к сети CAN, могут отправлять и принимать сообщения по витой паре.

Преимущества шины CAN

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

  • Недорогая микросхема 
    Физический уровень и уровень канала передачи данных могут быть встроены в недорогие микросхемы в нескольких конфигурациях. 
  • Устойчивость к помехам
    Защищает сложные и чувствительные схемы от электрических и электромагнитных помех, следовательно, подходит для критически важных конструкций, таких как автомобили и медицинская техника.
  • Способность обнаружения ошибок
    Шина CAN способна обнаруживать ошибки перед передачей данных по нужному адресу.
  • Централизованная сеть
    Обеспечивает регистрацию данных с эффективной связью между всеми блоками управления автомобильным двигателем в сети.
  • Связь с указанием приоритета
    Данные с наивысшим приоритетом получают немедленный доступ к шине, не прерывая передачу других кадров. 
  • Менее сложный и затратный протокол
    Устанавливает канал связи через единую сеть вместо массива электрической проводки, тем самым уменьшая вес, сложность и общую стоимость схемы.

Области применения шины CAN

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

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

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


Комментирует Сергей Шихов, директор по управлению проектами, «А-КОНТРАКТ»

Стандарт CAN является одним из самых распространенных при построении систем промышленной автоматики. Он хорошо документирован, электронные компоненты, необходимые для его реализации, доступны. Наличие интерфейсных устройств типа Ethernet-CAN обеспечивает сравнительно простую интеграцию средств промышленной автоматики в локальную сеть предприятия. Таким образом, если отсутствует необходимость в передаче больших объемов данных, применение CAN — оправданное решение.


Эта статья была опубликована в журнале «Технологии в электронной промышленности», №  3’2025  при поддержке  А-КОНТРАКТ. Скачать статью в формате pdf можно по ссылке ниже.

Задать вопрос