Интерфейс передачи данных CAN. CAN-шина не только для автомобилей. Введение в CAN

Помощь 14.07.2019
Помощь

Интерфейс CAN (Controller Area Network, локальная сеть контроллеров) предназначен для организации высоконадежных и недорогих каналов связи в распределенных системах управления. Он позволяет строить как дешевые мультиплексные каналы, так и высокоскоростные сети.

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

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

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

конфигурационная гибкость;

получение сообщений всеми узлами с синхронизацией по времени;

неразрушающий арбитраж доступа к шине;

режим мультимастер;

обнаружение ошибок и передача сигналов об ошибках;

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

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

работает по витой паре на расстоянии до 1 км.

Типичными примерами применения CAN-сети являются системы контроля и управления текстильным оборудованием, производимого компаниями Cezoma, Lindauer Dornier, Rieter,
Schlafhorst, Sulzer.

Среди других важных областей применения сети нужно отметить промышленную автоматизацию и системы управление роботами. ABB, Bosch, Engel и другие компании уже применяют CAN в своем оборудовании. Edeka использует CAN в своем центре логистики Не обходятся без применения CAN-технологий системы автоматизации и жизнеобеспечения зданий, где они используются в управлении кондиционированием (Colt
International), поддержания температуры (Buderus), интегрированного контроля состояния помещений и освещения.

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

Устройства в CAN-системе соединяются по шине, состоящей из трех проводов (2 сигнальных и одни общий).

Сообщения данных, передаваемые из любого узла по
CAN-шине, могут содержать от 1 до 8 байт. Каждое сообщение помечено идентификатором, который в сети является уникальным (например, «Нагрев до 240», «Отказ нагрева», «Бункер загружен» и т. д.). При передаче другие узлы сети получают сообщение, и каждый из них проверяет идентификатор. Если сообщение имеет отношение к данному узлу, то оно обрабатывается, в противном случае – игнорируется. CAN-контроллер каждого из устройств может обрабатывать одновременно несколько идентификаторов (например, контроллеры Siemens и Intel могут обрабатывать до 15 идентификаторов). Таким образом, в каждом из устройств можно легко организовать несколько виртуальных каналов обмена информацией с различными устройствами, включая каналы одновременного получения сообщении.


Идентификатор определяет тип и приоритет сообщения. Более низкому числовому значению идентификатора соответствует более высокое значение приоритета. Сообщение, имеющее более высокий приоритет, передается раньше сообщения, имеющего более низкий приоритет. После сообщения с высоким приоритетом передается сообщение с более низким приоритетом, если во время передачи не помнится сообщение с более высоким приоритетом; затем передается сообщение с еще более низким приоритетом и т. д.

CAN содержит 5-ступепчатый механизм обнаружения ошибок:

циклический контроль по избыточности (CRC);

контроль передаваемого поля битов;

контроль сигнала «Подтверждение приема»;

текущий контроль логического уровня битов;

контроль заполнения битов.

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

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

Например, типичные значения при напряжении питания +5 В приведены на рис. 5.18, причем доминирующим уровнем является нижний уровень, а рецессивным, соответственно, верхний;

максимальное расстояние между узлами – до 1 км;

скорость обмена до 1 Мбит/с при длине линии 60 м;

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


функции CAN, либо между микросхемой и остальной системой (рис. 5.19).

В CAN-протоколе определены следующие типы фреймов :

фрейм данных перемещает данные с передатчика на приемник (приемники);

удаленный фрейм запрашивает передачу фрейма данных, связанного с определенным идентификатором;

фрейм ошибки выражает, какой узел обнаружил ошибку шины/сети;

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

Рис. 5.18. Сигнальные уровни на CAN-шине

Рис. 5.19. Два типа гальванической развязки

Рассмотрим подробнее фрейм данных (рис. 5.20).

Рис. 5.20. Управляющее поле фрейма данных (окончание)

Он состоит из стартового поля SOF, поля арбитража Arbitration Field, управляющего поля Control Field, поля данных Data Field, поля контрольной суммы CRC, поля подтверждения ACK Field, поля конца фрейма EOF.

Поле SOF (Start of Frame) находится в начале фрейма данных и удаленного фрейма и содержит один доминирующий бит.

Поле арбитража Arbitration Field содержит 11-битовый идентификатор и RTR-бит, показывающий, является ли данный фрейм фреймом данных или удаленным фреймом. Идентификатор предназначен для адресации сообщений и используется механизмом арбитража.

Управляющее поле Control Field (см. рис. 5.20) содержит
6 битов, из которых 4 бита (DLC0-DLC4) составляют поле Data Length Code, показывающее количество байтов данных, которое будет передаваться в поле данных; два других бита зарезервированы для следующих редакций протокола.

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

Поле CRC обеспечивает механизм избыточного контроля по четности передаваемых данных.

Поле подтверждения ACK Field (см. рис. 5.21) содержит участки ACK Slot и ACK Delimiter и выполняет следующую функцию: передающий узел посылает по одному рецессивному биту на каждом из участков, а приемник, если он принял сообщение без сбоев, устанавливает на линии доминирующий бит в поле ACK Slot. При наложении рецессивного и доминирующего уровней на линии устанавливается доминирующий, и это событие сигнализирует передающему узлу о том, что передача прошла нормально и повтор не требуется.

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

Рис. 5.21. Поле подтверждения фрейма данных

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

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

Поле арбитража, включенное во все фреймы данных, состоит из: 11-битового поля идентификатора; RTR-бита.

RTR-бит указывает, является ли фрейм фреймом данных или удаленным фреймом.

11-битовое поле идентификатора передается от старшего к младшему значащему биту. Доминирующий уровень – логический 0. Одновременная передача бита с доминирующим уровнем (логический 0) и бита с рецессивным уровнем (логическая 1) дает в результате уровень логического 0.

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

Важно следующее: идентификатор с самым низким значением выигрывает арбитраж.

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

При этом адрес приемника устанавливается в самом приемнике путем настройки входных фильтров соответствующих микросхем.

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

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

фиксированные – фильтры, которые требуют, чтобы биты соответствовали точно один к одному (one-for-one);

Mask-and-Match (маскируемые) – фильтры, которые применяют маску к полю идентификатора, прежде чем он сравнивается с приемным регистром кода.

В настоящее время СAN-протокол активно используется в индустриальных сетях. Такие известные фирмы, как Hoheywell и Allan_Bradley, разработали и поддерживают сетевые протоколы верхнего уровня SDS и DeviceNet, причем последний является открытым и на данный момент более 200 фирм выпускают и разрабатывают свои изделия в этом стандарте. Кроме того, достаточно известными в Европе являются стандарты сети верхнего уровня CanOpen, CAL (Германия) и CanKingdom (Швеция). Все эти сети используют CAN-протокол на физическом и транспортном уровнях. Ряд отечественных фирм также выпускает изделия с CAN-протоколом, в том числе в популярном формате MicroPC.

Администратор

Необходимость последовательного соединения в автомобилях

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

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

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

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

Если мы также рассмотрим будущие разработки, направленные на общую оптимизацию транспортных средств, то необходимо преодолеть ограничения, существующие в связи с обычными устройствами управления. Это можно сделать только путем объединения в сеть компонентов системы с использованием последовательной шины данных. Bosch разработал для этой цели систему «Controller Area Network» (CAN), которая с тех пор была стандартизирована на международном уровне (ISO 11898) и была «отлита в камне (в кремнии)» несколькими производителями полупроводников.

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

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

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

Использование CAN сети в автомобилях

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

Сетевые контроллеры для синхронизации двигателя, трансмиссии, шасси и тормозов. Скорости передачи данных находятся в диапазоне - типичном для систем реального времени от 200 кбит /с до 1 Мбит /с.
Сетевые компоненты общей электроники и электроники шасси, которые делают автомобиль более комфортным. Примерами таких мультиплексных применений являются управление освещением, кондиционирование воздуха и центральный замок, а также регулировка сиденья и зеркала. Особое значение здесь должно быть уделено стоимости компонентов и требованиям к проводке. Типичная скорость передачи данных составляет около 50 кбит / с.
В ближайшем будущем последовательная связь также будет использоваться в области мобильной связи, чтобы связать такие компоненты, как автомобильные радиоприемники, автомобильные телефоны, навигационные средства и т. д., с центральной более эргономичной панелью управления. Функции, определенные в проекте «Прометей», такие как связь между транспортным средством и транспортным средством, будут в большой степени зависеть от последовательной связи.
В настоящее время CAN используется для первых трех приложений, но для диагностики предпочтительным решением является интерфейс в соответствии со стандартом ISO 9141.

Промышленные применения сети CAN

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

Стандартное использование CAN в «S-классе» Mercedes-Benz и принятие CAN коммерческими автопроизводителями США для быстрой передачи (до 1 Мбит / с) заставляли промышленных пользователей навострить уши. Не только производители мобильных и стационарных сельскохозяйственных и морских машин и оборудования выбрали CAN, но и выбор производителей медицинской аппаратуры, текстильных машин, а также специальной техники и элементов управления лифтами. Система последовательной шины особенно хорошо подходит для сетевых «интеллектуальных» устройств ввода-вывода, а также датчиков и исполнительных механизмов внутри машины или завода.

Промышленность текстильного машиностроения является одним из пионеров CAN. Один производитель оснастил свои ткацкие станки модульными системами управления, сообщающимися в режиме реального времени через сети CAN еще в 1990 году. Тем временем несколько производителей текстильных машин объединились в группу «CAN Textile Users Group», которая, в свою очередь, является членом международной группы пользователей и производителей «CAN in Automation». Аналогичные требования к текстильному оборудованию имеются в упаковочных машинах и машинах для производства и обработки бумаги.

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

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

Как функционируют CAN-сети

Принципы обмена данными

Когда данные передаются по CAN, никакие станции не адресуются, но вместо этого содержание сообщения (например, скорость вращения или температура двигателя) обозначается идентификатором, который является уникальным во всей сети. Идентификатор определяет не только содержимое, но и приоритет сообщения. Это важно для распределения шины, когда несколько станций конкурируют за доступ к шине. Если ЦПУ данной станции желает отправить сообщение одной или нескольким станциям, он передает данные и их идентификаторы в назначенный CAN-чип (стостояние «Готово»). Это все, что должен сделать ЦП, чтобы инициировать обмен данными. Сообщение формируется и передается с помощью CAN-чипа. Как только CAN-чип получает выделение шины (состояние «Send Message»), все остальные станции в сети CAN становятся получателями этого сообщения (состояние «Receive Message»). Каждая станция в сети CAN, правильно приняв сообщение, выполняет приемный тест (тест получения), чтобы определить, относятся ли полученные данные к этой станции (состояние «Выбор»). Если данные имеют значение для соответствующей станции, они обрабатываются (состояние «Принято»), в противном случае они игнорируются. Высокая степень гибкости системы и конфигурации достигается благодаря схеме адресации, ориентированной на содержание. Очень просто добавлять станции в существующую сеть CAN без внесения каких-либо изменений в аппаратные или программные средства для существующих станций при условии, что новые станции являются чисто приемниками. Поскольку протокол передачи данных не требует физических адресов назначения для отдельных компонентов, он поддерживает концепцию модульной электроники, а также допускает множественный прием (широковещательный, многоадресный) и синхронизацию распределенных процессов: могут быть переданы измерения, необходимые в качестве информации несколькими контроллерами через сеть таким образом, что для каждого контроллера не требуется иметь свой собственный датчик.



1. Передача вещания и входная фильтрация узлами CAN на предмет того подходящие ли данные для того или иного узла

Неразрушающая побитовая проверка:

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



2. Принцип неразрушающего побитового проверки(оценки, считывания)

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

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

Эффективность распределения шины:

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

Распределение по фиксированному графику. Распределение производится последовательно каждому участнику для максимальной продолжительности независимо от того, нужена ли этому участнику шина в данный момент или нет (примеры: маркерная ячейка или передача маркера).
Распределение шины на основе необходимости. Шина назначается одному участнику на основании невыполненных запросов на передачу, то есть система распределения учитывает только участников, желающих передать (примеры: CSMA, CSMA / CD, управляющий полет, циклическая или побитовая проверка). Для CAN распределение шины согласовано исключительно между сообщениями, ожидающими передачи. Это означает, что процедура, определенная CAN, классифицируется как распределение на основе необходимости.

Еще одним средством оценки эффективности систем проверки(оценки) шины является метод доступа к шине:

Неразрушающий доступ к шине. С помощью методов этого типа шина назначается одной и только одной станции либо немедленно, либо в течение определенного времени после одного доступа к шине (одной или несколькими станциями). Это гарантирует, что каждый доступ к шине одной или несколькими станциями приводит к однозначному распределению шины (примеры: : маркерная ячейка, передача маркера, циклическая обработка, побитовая проверка.
Разрушающее распределение шины. Одновременный доступ к шине более чем одной станцией приводит к прерыванию всех попыток передачи и, следовательно, успешное распределение шины отсутствует. Для распределения шины может потребоваться более одного доступа к шине, количество попыток до успешного распределения шины является чисто статистической величиной (примеры: CSMA / CD, Ethernet). Чтобы обрабатывать все запросы на передачу сети CAN, соблюдая ограничения времени ожидания при как можно более низкой скорости передачи данных, CAN-протокол должен реализовывать метод распределения шины, который гарантирует, что всегда имеется однозначное распределение шины, даже если есть одновременныё доступ к шине с разных станций.

Метод поразрядной проверки с использованием идентификатора сообщений, которые должны передаваться, однозначно разрешает любое столкновение между несколькими станциями, которые хотят передавать, и он делает это самое позднее в течение 13 (стандартного формата) или 33 (расширенного формата) битовых периодов для любого периода доступа к шине. В отличие от проверки по сообщениям, используемого методом CSMA / CD, этот неразрушающий метод разрешения конфликтов гарантирует, что пропускная способность шины не используется без передачи полезной информации.

Даже в ситуациях, когда шина перегружена, связь приоритета доступа к шине с содержимым сообщения оказывается полезным атрибутом системы по сравнению с существующими протоколами CSMA / CD или токенными(маркерными) протоколами: несмотря на недостаточную пропускную способность шины, все невыполненные запросы на передачу обрабатываются в порядке их важности для всей системы (как определено приоритетом сообщения).

Имеющаяся пропускная способность эффективно используется для передачи полезных данных, так как «пробелы» в распределении шины остаются очень маленькими. Падение всей системы передачи из-за перегрузки, что может произойти с протоколом CSMA / CD, невозможен при CAN. Таким образом, CAN позволяет реализовать быстрый, трафик-определенный доступ к шине, который является неразрушающим из-за побитовой проверке на основе используемого приоритета сообщения.

Неразрушающий доступ к шине можно разделить на:

Централизованное управление доступом к шине и
Децентрализованное управление доступом к шине

В зависимости от того, присутствуют ли механизмы управления в системе только один раз (централизованный) или более одного раза (децентрализованный).

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

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

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

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



3. Кадр сообщения для стандартного формата (CAN Specification 2.0A)

Форматы сообщений.

Протокол CAN поддерживает два формата фреймов (кадров) сообщения, единственное существенное отличие заключается в длине идентификатора (ID). В стандартном формате длина идентификатора равна 11 битам, а в расширенном формате длина равна 29 битам. Кадр сообщения для передачи по шине содержит семь основных полей.

Сообщение в стандартном формате начинается с стартового бита «начало кадра», за ним следует «поле проверки», которое содержит идентификатор и бит «RTR» (запрос удаленной передачи), который указывает, является ли это кадр с данными или кадр запроса без каких-либо байтов данных (кадр удаленного запроса).

«Поле управления» содержит бит расширения IDE (идентификатор расширения), который указывает либо стандартный формат, либо расширенный формат, бит зарезервирован для будущих расширений и - в последних 4 битах - счет байтов данных в поле данных.

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

Поле «ACK» содержит слот ACK (1 бит) и разделитель ACK (один рецессивный бит). Бит в слоте ACK отправляется как рецессивный бит и перезаписывается в качестве доминантного бита теми приемниками, которые на этот момент времени приема данных приняли их корректно(правильно) (положительное подтверждение). Правильные сообщения подтверждаются приемниками независимо от результата приемочной проверки. Конец сообщения обозначается «конец кадра». «Перерыв» - это минимальное количество периодов битов, разделяющих последовательные сообщения. Если какой-либо станции нет следующего доступа к шине, шина остается бездействующей («bus idle»).

Обнаружение и сигнализация об ошибках.

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

Циклическая проверка избыточности (CRC) CRC защищает информацию в кадре путем добавления избыточных проверочных битов на конце передачи. На конце приемника эти биты повторно вычисляются и проверяются на соответствие принятым битам. Если они не согласны, произошла ошибка CRC. Проверка кадра - этот механизм проверяет структуру передаваемого кадра, проверяя битовые поля на фиксированный формат и размер фрейма. Ошибки, обнаруженные при проверке кадров, обозначаются как «ошибки формата».
Ошибки ACK. Как уже упоминалось выше, полученные кадры подтверждаются всеми получателями посредством «положительного подтверждения». Если не получено подтверждение передатчиком сообщения (ошибка ACK), это может означать, что есть ошибка передачи, которая была обнаружена только получателями, что поле ACK было повреждено или что нет приемников.

Протокол CAN также реализует два механизма обнаружения ошибок на уровне битов.

Мониторинг. Способность передатчика обнаруживать ошибки основана на контроле сигналов шины: каждый узел, который передает, также наблюдает за уровнем шины и, таким образом, обнаруживает различия между отправленным битом и полученным битом. Это обеспечивает надежное обнаружение всех глобальных ошибок и ошибок, локальных для передатчика.
Набивка бит - кодирование отдельных битов проверяется на уровне битов. Битовое представление, используемое CAN, - это кодирование NRZ (non-return-to-zero), которое гарантирует максимальную эффективность в кодировании битов. Края синхронизации генерируются посредством заполнения битов, то есть после пяти последовательных равных битов отправитель вставляет в поток битов бит информации с дополнительным значением, которое удаляется приемниками. Проверка кода ограничивается проверкой соблюдения правила заполнения. Если одна или несколько ошибок обнаруживаются по меньшей мере одной станцией (любой станцией) с использованием указанных выше механизмов, текущая передача прерывается отправкой «флага ошибки». Это предотвращает прием другими станциями сообщений и, таким образом, обеспечивает согласованность данных на протяжении всей сети.

После прекращения передачи ошибочного сообщения отправитель автоматически повторяет попытку передачи (автоматический запрос повторения). Может снова возникнуть конкуренция за распределение шины. Как правило, повторная передача начинается в течение 23-битных периодов после обнаружения ошибки; В особых случаях время восстановления системы составляет 31 бит.

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

Надежность данных протокола CAN:

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

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



4. Вероятность остаточной ошибки как функция вероятности ошибки бита

Вычисление вероятности остаточной ошибки требует классификации ошибок и того, что весь путь передачи описывается моделью. Если мы определим вероятность остаточной ошибки CAN как функцию вероятности ошибки в битах для длин сообщений от 80 до 90 бит, для системных конфигураций, например, пяти или десяти узлов и с частотой ошибок 1/1000 (ошибка в одном сообщении из каждой тысячи), то максимальная вероятность ошибки в битах составляет приблизительно от 0,02 – до порядка 10^-13. Исходя из этого, можно рассчитать максимальное количество необнаруживаемых ошибок для данной сети CAN.

Например, если сеть CAN работает со скоростью передачи данных 1 Мбит/с, при среднем использовании пропускной способности шины 50%, при общем сроке службы 4000 часов и при средней длине сообщения 80 бит, то общее число Передаваемых сообщений составляет 9x10^10. Статистическое число необнаруженных ошибок передачи в течение срока эксплуатации, таким образом, составляет менее чем порядка 10^-2. Или, иначе говоря, с продолжительностью работы восемь часов в день на 365 дней в году и частотой ошибок каждые 0,7 с, одна необнаруженная ошибка происходит раз в тысячу лет (статистическое среднее значение).

Сообщения CAN расширенного формата

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

Чтобы поддержать эти усилия, протокол CAN был расширен за счет введения 29-битного идентификатора. Этот идентификатор состоит из существующего 11-битного идентификатора (базового ID) и 18-битного расширения (ID-расширения). Таким образом, протокол CAN позволяет использовать два формата сообщений: StandardCAN (Версия 2.0A) и ExtendedCAN (Версия 2.0B). Поскольку два формата должны сосуществовать на одной шине, устанавливается, какое сообщение имеет более высокий приоритет на шине в случае коллизий доступа к шине с форматами сглаживания и одним и тем же базовым идентификатором: стандартное сообщение всегда имеет приоритет над сообщением в расширенном формате.

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

Различие между стандартным форматом и расширенным форматом осуществляется с использованием бита IDE (бит расширения идентификатора), который передается как доминирующий в случае кадра в стандартном формате. Для кадров в расширенном формате это рецессивно. Бит RTR передается доминантно или рецессивно в зависимости от того, передаются ли данные или запрашивается конкретное сообщение от станции. Вместо бита RTR в стандартном формате бит SRR (замена удаленного запроса) передается для кадров с расширенным идентификатором. Бит SRR всегда передается как рецессивный, чтобы гарантировать, что в случае проверки стандартный кадр всегда имел приоритетное распределение шины к расширенному кадру, когда оба сообщения имеют одинаковый базовый идентификатор.

В отличие от стандартного формата, в расширенном формате за битом IDE следует 18-битный ID-номер, бит RTR и зарезервированный бит (r1).

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



5. Кадр сообщения для расширенного формата (CAN Specification 2.0A)

Реализации протокола CAN

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

CAN-контроллер с промежуточным буфером

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

Как правило, CAN-контроллеры с промежуточным буфером имеют два приема и один буфер передачи. 8-разрядные регистры кода и маски допускают ограниченную фильтрацию принятия (8 MSB идентификатора). Подходящий выбор этих значений регистра позволяет считывать группы идентификаторов или, в пограничных случаях, выбирать все идентификаторы. Если для дифференцирования сообщений требуется более 8 ID-MSB, тогда микроконтроллер, следующий за CAN-контроллером в схеме, должен дополнять фильтрацию принятия программным обеспечением.

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

CAN-контроллер с хранилищем объектов.

Объекты CAN состоят в основном из трех компонентов: идентификатора, кода длины данных и фактических полезных данных.

CAN-контроллеры с хранилищем объектов (ранее называемые fullCAN) функционируют как CAN-контроллеры с промежуточными буферами, но также управляют определенными объектами. Там, где есть несколько одновременных запросов, они определяют, например, какой объект должен быть передан первым. Они также выполняют фильтрацию принятия для входящих объектов. Интерфейс к следующему микроконтроллеру соответствует ОЗУ. Данные, подлежащие передаче, записываются в соответствующую область ОЗУ, полученные данные считываются из области ОЗУ, соответственно. Микроконтроллер должен управлять только несколькими битами (например, запросом передачи).

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

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

CAN подчиненные контроллеры для функций ввода / вывода.

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

Физическое соединение CAN

Скорости передачи данных (до 1 Мбит / с) требуют достаточно крутого наклона импульса, который может быть реализован только с использованием силовых элементов. В принципе возможно несколько физических соединений. Тем не менее, пользователи и производители группы «CAN in Automation» рекомендуют использовать схемы драйверов в соответствии с ISO 11898.

Встроенные микросхемы драйверов в соответствии с ISO 11898 доступны от нескольких компаний (Bosch, Philips, Siliconix и Texas Instruments). Международная группа пользователей и производителей (CiA) также определяет несколько механических соединений (кабель и разъемы).



6. Physical CAN Connection according to ISO 11898

С уважением, перевод предоставлен коллективом мастерской

Многие сетевые протоколы описываются с помощью семиуровневой модели взаимодействия открытых систем OSI (Open System Interconnection ), как показано на Рис. 1 . Протокол CAN (Controller Area Network - контроллерная локальная сеть ) определяет канальный уровень (Data Link Layer ) и часть физического уровня (Physical Layer ). Оставшаяся часть физического уровня и все остальные вышележащие уровни не входят в спецификацию CAN и могут либо определяться разработчиком системы, либо реализовываться с помощью существующих высокоуровневых протоколов (Higher Layer Protocols - HLPs ) и физических уровней.

Как сказано выше, канальный уровень определяется спецификацией CAN. Подуровень управления логической связью (Logical Link Control - LLC ) обеспечивает управление перегрузкой и уведомление о ней, фильтрацию сообщений и функции управления восстановлением. Подуровень управления доступом к среде (Medium Access Control - MAC ) выполняет инкапсуляцию/декапсуляцию (расформирование) данных, обнаружение ошибок и защиту от них, битстаффинг/дестаффинг (битовое наполнение/удаление наполняющего бита), функции преобразования в последовательную форму и обратно.

Подуровни соединения с физической средой (Physical Medium Attachment - PMA ) и среда-зависимого интерфейса (Medium Dependent Interface - MDI ) - две части физического уровня, не определённые в CAN. Подуровень физической сигнализации (Physical Signaling - PS ), наоборот, определён в спецификации CAN. Разработчик может выбрать любой драйвер/приёмник и среду передачи, если они соответствуют требованиям PS-подуровня.

Международная организация по стандартизации (International Standards Organization - ISO ) определила стандарт, который включает спецификацию CAN в качестве физического уровня. Стандарт ISO-11898 изначально был создан для высокоскоростной связи в транспортных средствах, использующей CAN. ISO-11898 определяет физический уровень для обеспечения совместимости между приёмопередатчиками CAN.

Контроллер CAN обычно реализует всю спецификацию CAN аппаратно, как показано на Рис. 1 . PMA-подуровень не определяется CAN, однако, он определён в ISO-11898. Данный пример применения рассматривает приёмопередатчик CAN MCP2551 и то, насколько он удовлетворяет требованиям спецификации ISO-11898.

Рис. 1. CAN и модель OSI

Краткий обзор ISO11898-2

ISO11898 - международный стандарт для высокоскоростной связи CAN, применяемой в транспортных средствах. ISO-11898-2 определяет PMA и MDI подуровни физического уровня. Общее представления узлов и шины CAN, описанное в ISO-11898 приведено на Рис. 3 .

Уровни шины

CAN определяет два логических состояния: рецессивное (recessive ) и доминантное (dominant ). ISO-11898 определяет дифференциальное напряжение для представления рецессивного и доминантного состояний (или битов), как показано на Рис. 2 .

В рецессивном состоянии (то есть логическая "1" на входе TXD MCP2551) дифференциальное напряжение на CANH и CANL меньше минимального порог (Рис. 4).

В доминантном состоянии (то есть логический "0" на входе TXD MCP2551) дифференциальное напряжение на CANH и CANL больше минимального порога. Доминантный бит перекрывает рецессивный бит на шине для достижения неразрушающего поразрядного арбитража.

Рис. 2. Дифференциальная шина

Разъёмы и провода

В ISO-11898-2 не определены механические провода и разъёмы. Однако спецификация требует, чтобы провода и разъёмы соответствовали электротехническим требованиям.

Спецификация также требует наличие резисторов-терминаторов номиналом 120 Ом на каждом конце шины. На Рис. 3 показан пример шины CAN, основанной на ISO-11898.

Рис. 3. Шина CAN

Рис. 4. Номинальные уровни шины по ISO-11898

Помехоустойчивость

Спецификация ISO11898-2 требует, чтобы приёмопередатчик, соответствующий спецификации или совместимый с ней, соответствовал ряду электротехнических требований. Некоторые из этих требований предусмотрены, чтобы гарантировать, что приёмопередатчик сможет выдержать жёсткие электрические условия, таким образом защищая узел CAN. Входы приёмопередатчика должны выдерживать напряжение от -3 В до +32 В и кратковременное воздействие напряжения от -150 В до +100 В. Таблица 1 показывает главные электрические требования ISO11898-2 в сравнении со спецификацией MCP2551.

Таблица 1. Сравнение спецификаций MCP2551 и ISO11898-2.

Параметр ISO-11898-4 MCP2551 Единица измерения Комментарии
минимум максимум минимум максимум
Постоянное напряжение на CANH и CANL -3 +32 -40 +40 В Превышает ISO-11898
Кратковременное воздействие напряжений на CANH и CANL -150 +100 -250 +250 В Превышает ISO-11898
Напряжение синфазного сигнала шины -2.0 +7.0 -12 +12 В Превышает ISO-11898
Выходное напряжение шины в рецессивном состоянии +2.0 +3.0 +2.0 +3.0 В Соответствует ISO-11898
Дифференциальное выходное напряжение рецессивного состояния -500 +50 -500 +50 мВ Соответствует ISO-11898
Внутреннее сопротивление 10 100 20 100 кОм Соответствует ISO-11898
Входное сопротивление 5.0 50 5.0 50 кОм Соответствует ISO-11898
Дифференциальное выходное напряжение доминантного состояния +1.5 +3.0 +1.5 +3.0 В Соответствует ISO-11898
Выходное напряжение доминантного состояния на CANH +2.75 +4.50 +2.75 +4.50 В Соответствует ISO-11898
Выходное напряжение доминантного состояния на CANL +0.50 +2.25 +0.50 +2.25 В Соответствует ISO-11898
Обнаружение постоянного доминанта (драйвер) Не требуется 1.25 - мс
Сброс при включении питания (POR) и обнаружение кратковременного падения напряжения (BOD) Не требуется Да -

Длина шины

ISO11898 определяет, что приёмопередатчик должен быть способен управлять шиной длиной 40 м на скорости 1 Мбит/с. Большая длина шины достигается при уменьшении скорости передачи данных. Самое большое ограничение на длину шины накладывает задержка распространения приёмопередатчика.

Задержка распространения

Протокол CAN определяет рецессивное (логическая "1") и доминантное (логический "0") состояния для реализации схемы поразрядного неразрушающего арбитража. Именно на эту методологию арбитража больше всего воздействуют задержки распространения. Каждый узел, вовлечённый в арбитраж, должен быть способен осуществлять выборку уровня каждого бита в пределах одного и того же времени передачи бита. Например, если два узла на противоположных концах шины начали передавать сообщения в одно и то же время, они должны выполнить арбитраж для захвата управления шиной. Арбитраж будет эффективен, только если оба узла способны сделать выборку в течение одного и того же времени передачи бита. На Рис. 5 показана односторонняя задержка распространения между двумя узлами. Чрезмерные задержки распространения (вне точки выборки) приведут к ошибочному арбитражу. Это означает, что длина шины ограничена для заданной скорости передачи данных.

Задержка распространения в системе CAN вычисляется как удвоенная сумма времени прохождения сигнала по физической шине туда и обратно (t BUS ), выходной задержки драйвера (t DRV ) и входной задержки компаратора (t CMP ). Приняв, что все узлы в системе имеют одинаковые задержки компонентов, получим задержку распространения:

t PROP = 2·(t BUS + t CMP + t DRV ).

Рис. 5. Односторонняя задержка распространения

MCP2551 - приёмопередатчик CAN

Микросхема MCP2551 - приёмопередатчик CAN, который реализует физический уровень, описанный в спецификации ISO-11898-2. Он поддерживает скорость передачи данных до 1 Мбит/с и подходит для систем с напряжениями питания 12 В и 24 В. MCP2551 обеспечивает защиту от короткого замыкания до ±40 В и защиту от кратковременных напряжений до ±250 В.

Дополнительно, будучи совместим с ISO-11898-2, MCP2551 обеспечивает сброс при включении питания (power-on reset - POR ) и защиту от кратковременного падения напряжения (brown-out protection ), а также обнаружение постоянного доминанта (permanent dominant detection ), чтобы гарантировать, что обесточенный или неисправный узел не будет мешать работе шины. Устройство реализует настраиваемую наклонную регулировку усиления (slope control ) на выводах шины для уменьшения излучения радиопомех (RFI ). На Рис. 6 представлена блок-схема MCP2551.

Рис. 6. Блок-схема MCP2551

Основная работа MCP2551

Передача

Контроллер протокола CAN выдаёт поток последовательных данных на логический вход TXD MCP2551. Соответствующее рецессивное или доминантное состояние выдаётся на выводы CANH и CANL.

Приём

MCP2551 принимает доминантное или рецессивное состояния на те же выводы CANH и CANL, с которых осуществляется передача. Эти состояния выдаются в виде соответствующих логических уровней на вывод RXD, чтобы контроллер протокола CAN принял кадр CAN.

Рецессивное состояние

Логическая "1" на входе TXD отключает драйверы от вводов CANH и CANL, и выводы "подтягиваются" к номиналу 2.5 В через резисторы смещения.

Доминантное состояние

Логический "0" на входе TXD включает драйверы выводов CANH и CANL. На CANH подаётся на ~1 В больше, чем номинал рецессивного состояния 2.5 В, таким образом увеличивая напряжение до ~3.5 В. На CANL подаётся на ~1 В меньше, чем номинал рецессивного состояния, таким образом уменьшая напряжение до ~1.5 В.

Режимы работы

Существует три режима работы, которые управляются извне через вывод RS:
1. Высокоскоростной режим.
2. Режим наклонной регулировки усиления.
3. Режим ожидания (Standby )

Высокоскоростной режим

Высокоскоростной режим выбирается подключением вывода RS к V SS . В этом режиме выходные драйверы имеют быстрое время нарастания и спада, что обеспечивает наивысшие скорости передачи до 1 Мбита/с и/или максимальную длину шины, а также обеспечивая минимальные циклические задержки приёмопередатчика.

Режим наклонной регулировки усиления

Если требуется уменьшить излучаемые драйвером электромагнитные помехи, MCP2551 можно установить в режим наклонной регулировки усиления подключением резистора (R EXT) от вывода RS на общий минус. В режиме наклонной регулировки усиления скорость нарастания выходного напряжения на одном проводе (на CANH или CANL) в основном пропорциональна выходному току на выводе RS. Ток должен быть в диапазоне от 10 мкА Уменьшение скорости нарастания выходного напряжения приводит к уменьшению скорости передачи данных CAN при заданной длине шины, либо к сокращению длины шины при заданной скорости передачи данных.

Режим ожидания

Режим ожидания (или спящий режим (sleep )) устанавливается подключением вывода RS к V DD . В спящем режиме передатчик отключен, а приёмник работает в режиме пониженного энергопотребления. Принимающий вывод (RXD) по-прежнему функционирует, но на более низкой скорости.

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

Обнаружение постоянного доминанта на передатчике

Если на передатчике обнаруживается состояние постоянного доминанта, MCP2551 отключает передатчик от CANH и CANL. Эта возможность предотвращает постоянное разрушение шины CAN неисправным узлом (контроллером CAN или самим MCP2551).

Драйверы отключаются, если низкий уровень присутствует на TXD в течение более чем ~1.25 мс (минимум) (см. Рис. 7).

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

Рис. 7. Обнаружение постоянного доминанта на TXD

Сброс при включении питания и защита от кратковременного снижения питания

MCP2551 имеет способность сброса при включении питания (Power-On Reset - POR ) и обнаружения кратковременного снижения напряжения питания (Brown-Out Detection - BOD ) (см. Рис. 8 ).

Сброс при включении питания (POR)

Когда на MCP2551 подаётся питание, выводы CANH и CANL остаются в высокоимпедансном состоянии до тех пор, пока VDD не достигнет высокого напряжения POR (POR high voltage - VPORH ). Кроме того, если при включении питания на выводе TXD низкий уровень, выводы CANH и CANL остаются в высокоимпедансном состоянии до тех пор, пока на TXD не установится высокий уровень. После чего драйвер будет функционировать нормально.

Обнаружение кратковременного снижения напряжения питания (BOD)

BOD происходит, когда VDD опускается ниже низкого напряжения сброса при включении питания (power-on reset low voltage - VPORL ). В этой точке выводы CANH и CANL входят в высокоимпедансное состояние и остаются в нем, пока не будет достигнуто напряжение VPORH.

Рис. 8. Сброс при включении питания и обнаружение кратковременного снижения напряжения питания

Смещения земли

Поскольку не требуется обеспечивать общую землю между узлами, то возможно возникновение смещений земли между ними. То есть каждый узел может наблюдать разные однопроводные напряжения шины (напряжения синфазного сигнала шины), в то же время поддерживая одинаковое дифференциальное напряжение. В то время как MCP2551 предусмотрен для управления смещениями земли от -12 В до +12 В, спецификация ISO-11898 требует только от -2 В до +7 В. На Рис. 9 и 10 показано, как между узлами возникают смещения земли.

Рис. 9 показывает передающий узел с положительным смещением земли относительно принимающего узла. Приёмник MCP2551 может работать с CANH = +12 В. Максимальное выходное напряжение доминанта CAN (V O(CANH)) от передающего узла составляет 4.5 В. Вычитание этого максимума даёт смещение земли (относительно принимающего узла) в 7.5 В для передающего узла. В рецессивном состоянии каждый узел пытается притянуть выводы CANH и CANL к их основным уровням (обычно 2.5 В). Однако результирующее напряжение синфазного сигнала в рецессивном состоянии принимает значение 6.25 В для принимающего узла и -1.25 В для передающего.

Рис. 10 показывает передающий узел с отрицательным смещением земли относительно принимающего узла. Приёмник MCP2551 может работать с CANL = -12 В. Минимальное выходное напряжение доминанта CAN (V O(CANL)) из передающего узла составляет 0.5 В. Вычитание этого минимума даёт фактическое смещение земли относительно принимающего узла в -12.5 В. Напряжение синфазного сигнала для рецессивного состояния составляет -6.25 В для принимающего узла и 6.25 В для передающего.

Поскольку все узлы работают как передатчики для части каждого сообщения (то есть каждый приёмник должен подтверждать (ACK) правильные сообщения в течение временного интервала ACK), наибольшее смещение земли, допускаемое между узлами составляет 7.5 В, как показано на Рис. 9 .

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

Рис. 9. Земля принимающего узла ниже земли передающего

Рис. 10. Земля принимающего узла выше земли передающего

Оконечная нагрузка шины

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

1. Стандартная оконечная нагрузка.
2. Разделённая оконечная нагрузка.
3. Смещённая разделённая оконечная нагрузка.

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

Стандартная оконечная нагрузка

Как подразумевает название, эта оконечная нагрузка состоит из одинарных резисторов номиналом в 120 Ом на каждом конце шины. Этот метод приемлем во многих системах CAN.

Разделённая оконечная нагрузка

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

Смещённая разделённая оконечная нагрузка

Этот метод оконечной нагрузки используется для поддержания синфазного напряжения рецессивного сигнала на постоянном значении, таким образом увеличивая EMC. Эта схема аналогична схеме разделённой оконечной нагрузки, но добавлена дополнительная схема делителя напряжения для достижения напряжения V DD /2 между двумя резисторами по 60 Ом (см. Рис. 11 ).

Примечание : Номиналы резисторов смещения на Рис. 11 , также как и резисторов разделённой оконечной нагрузки, должны как можно меньше отличаться друг от друга.

Рис. 11. Схемы оконечной нагрузки

последовательная магистраль, обеспечивающая увязку в сеть "интеллектуальных" устройств ввода/вывода, датчиков и исполнительных устройств некоторого механизма или даже предприятия. Характеризуется протоколом, обеспечивающим возможность нахождения на магистрали нескольких ведущих устройств, обеспечивающим передачу данных в реальном масштабе времени и коррекцию ошибок, высокой помехоустойчивостью. Система CAN обеспечена большим количеством микросхем, обеспечивающих работу подключенных к магистрали устройств, разработку которых начинала фирма BOSH для использования в автомобилях, и в настоящее время широко используемых в промышленности и жилом секторе в составе автоматизированных систем контроля и учета электроэнергии (АИС КУЭ)

Предназначен для организации высоконадежных недорогих каналов связи в распределенных системах . Интерфейс широко применяется в промышленности, энергетике и на транспорте. Позволяет строить как дешевые мультиплексные каналы, так и высокоскоростные сети. Скорость передачи задается программно и может быть до 1 Мбит/с. Пользователь выбирает скорость, исходя из расстояний, числа абонентов и емкости линий передачи.
Расстояние, м 25 50 100 250 500 1000 2500 5000
Скорость, Кбит/с 1000 800 500 250 125 50 20 10
  • Максимальное число абонентов, подключенных к данному интерфейсу фактически определяется нагрузочной способностью примененных приемопередатчиков. 
  • Протокол CAN использует оригинальную систему адресации сообщений. Каждое сообщение снабжается идентификатором, который определяет назначение передаваемых данных, но не адрес приемника. Любой приемник может реагировать как на один идентификатор, так и на несколько. На один идентификатор могут реагировать несколько приемников. 
  • Протокол CAN обладает развитой системой обнаружения и сигнализации ошибок. Для этих целей используется поразрядный контроль, прямое заполнение битового потока, проверка пакета сообщения CRC-полиномом, контроль формы пакета сообщений, подтверждение правильного приема пакета данных. Хемминговый интервал d=6. Общая вероятность необнаруженной ошибки 4.7x10-11
  • Система арбитража протокола CAN исключает потерю информации и времени при "столкновениях" на шине. 
  • Интерфейс с применением протокола CAN легко адаптируется к физической среде передачи информации. Это может быть дифференциальный сигнал, оптоволокно, просто открытый коллектор и т.п. Несложно делается гальваническая развязка. 
  • , поддерживающие CAN, широко выпускается в индустриальном исполнении. И встречаются повсеместно, как на промышленных предприятиях, так и в структурах ЖКХ, жилом секторе, в частных домах, садоводческих товариществах (СНТ) и тд.

Примерный перечень счетчиков электроэнергии поддерживающих интерфейс CAN

Шина CAN – Введение

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

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

Протокол CAN

Протокол CAN описан в стандарте ISO 11898–1 и может быть кратко охарактеризован следующим образом:

Физический уровень использует дифференциальную передачу данных по витой паре;

Для управления доступом к шине используется неразрушающее bit–wise разрешение конфликтов;

Сообщения имеют малые размеры (по большей части 8 байт данных) и защищены контрольной суммой;

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

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

Протоколы более высоких уровней

Сам по себе протокол CAN определяет всего лишь, как малые пакеты данных можно безопасно переместить из точки A в точку B посредством коммуникационной среды. Он, как и следовало ожидать, ничего не говорит о том, как управлять потоком; передавать большое количество данных, нежели помещается в 8–байтное сообщение; ни об адресах узлов; установлении соединения и т.п. Эти пункты определяются протоколом более высокого уровня (Higher Layer Protocol, HLP). Термин HLP происходит из модели OSI и её семи уровней.

Протоколы более высокого уровня используются для:

Стандартизации процедуры запуска, включая выбор скорости передачи данных;

Распределения адресов среди взаимодействующих узлов или типов сообщений;

Определения разметки сообщений;
обеспечения порядка обработки ошибок на уровне системы.

Пользовательские группы и т.п.

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

Продукты CAN

На низком уровне принципиально различают два типа продуктов CAN, доступных на открытом рынке – микросхемы CAN и инструменты разработки CAN. На более высоком уровне – другие два типа продуктов: модули CAN и инструменты проектирования CAN. Широкий спектр данных продуктов доступен на открытом рынке в настоящее время.

Патенты в области CAN

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

Системы распределённого управления

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

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

Сообщения CAN

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

Адресация сообщений CAN

CAN использует относительно короткие сообщения – максимальная длина информационного поля составляет 94 бита. В сообщениях отсутствует явный адрес, их можно назвать контентно–адрессованными: содержимое сообщения имплицитно (неявным образом) определяет адресата.

Типы сообщений

Существует 4 типа сообщений (или кадров), передающихся по шине CAN:

Кадр данных (Data Frame);

Удаленный кадр (Remote Frame);

Кадр ошибки (Error Frame);

Кадр перегрузки (Overload Frame).

Кадр данных

Кратко: «Всем привет, есть данные с маркировкой X, надеюсь вам понравятся!»
Кадр данных – самый распространенный тип сообщения. Он содержит в себе следующие основные части (некоторые детали не рассматриваются для краткости):

Поле арбитража (Arbitration Field), которое определяет очередность сообщения в том случае, когда за шину борятся два или более узла. Поле арбитража содержит:

В случае CAN 2.0A, 11–битный идентификатор и один бит, бит RTR который является определяющим для кадров данных.

В случае CAN 2.0B, 29–битный идентификатор (который также содержит два рецессивных бита: SRR и IDE) и бит RTR.

Поле данных (Data Field), которое содержит от 0 до 8 байт данных.

Поле CRC (CRC Field), содержащее 15–битную контрольную сумму, посчитанную для большинства частей сообщения. Эта контрольная сумма используется для обнаружения ошибок.

Слот распознавания (Acknowledgement Slot). Каждый контроллер CAN, способный корректно получить сообщение, посылает бит распознавания (Acknowledgement bit) в конце каждого сообщения. Приемопередатчик проверяет наличие бита распознавания и, если таковой не обнаруживается, высылает сообщение повторно.

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

Примечание 2: Идентификатор в поле арбитража, несмотря на свое название, необязательно идентифицирует содержимое сообщения.

Кадр данных CAN 2.0B («cтандартный CAN»).

Кадр данных CAN 2.0B («расширенный CAN»).

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

Кратко: «Всем привет, кто–нибудь может произвести данные с маркировкой X?»
Удаленный кадр очень похож на кадр данных, но с двумя важными отличиями:

Он явно помечен как удаленный кадр (бит RTR в поле арбитража является рецессивным), и

Отсутствует поле данных.

Основной задачей удаленного кадра является запрос на передачу надлежащего кадра данных. Если, скажем, узел A пересылает удаленный кадр с параметром поля арбитража равным 234, то узел B, если он должным образом инициализирован, должен выслать в ответ кадр данных с параметром поля арбитража также равным 234.

Удаленные кадры можно использовать для реализации управления трафиком шины типа «запрос–ответ». На практике, однако, удаленный кадр используется мало. Это не так важно, поскольку стандарт CAN не предписывает действовать именно так, как здесь обозначено. Большинство контроллеров CAN можно запрограммировать так, что они будут автоматически отвечать на удаленный кадр, или же вместо этого извещать локальный процессор.

Есть одна уловка, связанная с удаленным кадром: код длины данных (Data Length Code) должен быть установлен длине ожидаемого ответного сообщения. В противном случае разрешение конфликтов работать не будет.

Иногда требуется чтобы узел, отвечающий на удаленный кадр, начинал свою передачу как только распознавал идентификатор, таким образом «заполняя» пустой удаленный кадр. Это другой случай.

Кадр ошибки (Error Frame)

Кратко (все вместе, громко): «О, ДОРОГОЙ, ДАВАЙ ПОПРОБУЕМ ЕЩЁ РАЗОК»
Кадр ошибки (Error Frame) – это специальное сообщение, нарушающее правила формирования кадров сообщения CAN. Он посылается, когда узел обнаруживает сбой и помогает остальным узлам обнаружить сбой – и они тоже будут отправлять кадры ошибок. Передатчик автоматически попробует послать сообщение повторно. Наличествует продуманная схема счетчиков ошибок, гарантирующая, что узел не сможет нарушить передачу данных по шине путём повторяющейся отсылки кадров ошибки.

Кадр ошибки содержит флаг ошибки (Error Flag), который состоит из 6 бит одинакового значения (таким образом нарушая правило вставки битов) и разграничителя ошибки (Error Delimiter), состоящего из 8 рецессивных бит. Разраничитель ошибки предоставляет некоторое пространство, в котором другие узлы шины могут отправлять свои флаги ошибки после того, как сами обнаружат первый флаг ошибки.

Кадр перегрузки (Overload Frame)

Кратко: «Я очень занятой 82526 маленький, не могли бы вы подождать минуточку?»
Кадр перегрузки упоминается здесь лишь для полноты картины. По формату он очень похож на кадр ошибки и передается занятым узлом. Кадр перегрузки используется нечасто, т.к. современные контроллеры CAN достаточно производительны, чтобы его не использовать. Фактически, единственный контроллер, который будет генерировать кадры перегрузки – это ныне устаревший 82526.

Стандартный и расширенный CAN

Изначально стандарт CAN установил длину идентификатора в поле арбитража равной 11 битам. Позже, по требованию покупателей стандарт был расширен. Новый формат часто называют расширенным CAN (Extended CAN), он позволяет использовать не менее 29 бит в идентификаторе. Для различения двух типов кадров используется зарезервированный бит в поле управления Control Field.

Формально стандарты именуются следующим образом –

2.0A – только с 11–битными идентификаторами;
2.0B – расширенная версия с 29–битными или 11–битными идентификаторами (их можно смешивать). Узел 2.0B может быть

2.0B active (активным), т.е. способным передавать и получать расширенные кадры, или

2.0B passive (пассивным), т.е. он будет молча сбрасывать полученные расширенные кадры (но, смотрите ниже).

1.x – относится к оргинальной спецификации и её ревизиям.

В настоящее время новые контроллеры CAN обычно относятся к типу 2.0B. Контроллер типа 1.x или 2.0A прибудет в замешательство, получив сообщения с 29 битами арбитража. Контроллер 2.0B пассивного типа примет их, опознает, если они верны и, затем – сбросит; a контроллер 2.0B активного типа сможет и передавать, и получать такие сообщения.

Контроллеры 2.0B и 2.0A (равно, как и 1.x) совместимы. Можно использовать их все на одной шине до тех пор, пока контроллеры 2.0B будут воздерживаться от рассылки расширенных кадров.

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

Основной CAN (Basic CAN) и полный CAN (Full CAN)

Термины Basic CAN и Full CAN берут начало в «детстве» CAN. Когда–то существовал CAN–контроллер Intel 82526, предоставлявший программисту интерфейс в стиле DPRAM. Потом появился Philips с моделью 82C200, в котором применялась FIFO–ориентированная модель программирования и ограниченные возможности фильтрации. Для обозначения различия между двумя моделями программирования, люди стали называть способ Intel – Full CAN, а способ Philips – Basic CAN. Сегодня большинство контроллеров CAN поддерживают обе модели программирования, поэтому нет смысла в использовании терминов Full CAN и Basic CAN – фактически, эти термины могут вызвать неразбериху и стоит воздержаться от их употребления.

В действительности, контроллер Full CAN может взаимодействовать с контроллером Basic CAN и наоборот. Проблемы с совместимостью отсутствуют.

Разрешение конфликтов на шине и приоритет сообщения

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

Любой контроллер CAN может начать передачу, когда обнаружит, что шина простаивает. Это может привести к тому, что два или более контроллеров начнут передачу сообщения (почти) одновременно. Конфликт решается следующим образом. Передающие узлы осуществляют мониторинг шины в процессе отправки сообщения. Если узел обнаруживает доминантный уровень в то время, как сам он отправляет рецессивный уровень, он незамедлительно устранится от процесса разрешения конфликта и станет приемником. Разрешение конфликтов осуществляется по всему полю арбитража, и после того, как это поле отсылается, на шине остается только один передатчик. Данный узел продолжит передачу, если ничего не случится. Остальные потенциальные передатчики попытаются передать свои сообщения позже, когда шина освободится. В процессе разрешения конфликта время не теряется.

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

Поскольку, CAN–шина является шиной с подсоединением устройств по типу «монтажное И» (wired–AND) и доминантный бит (Dominant bit) является логическим 0, следовательно сообщение с самым низким в численном выражении полем арбитража выиграет в разрешении конфликта.

Вопрос: Что произойдет в случае, если единственный узел шины попытается отослать сообщение?

Ответ: Узел, разумеется, выиграет в разрешении конфликта и успешно проведет передачу сообщения. Но когда наступит время распознавания… ни один узел не отправит доминантный бит области распознавания, поэтому передатчик определит ошибку распознавания, пошлет флаг ошибки, повысит значение своего счетчика ошибок передачи на 8 и начнет повторную передачу. Этот цикл повторится 16 раз, затем передатчик перейдет в статус пассивной ошибки. В соответствии со специальным правилом в алгоритме ограничения ошибок, значение счетчика ошибок передачи не будет более повышаться, если узел имеет статус пассивной ошибки и ошибка является ошибкой распознавания. Поэтому узел будет осуществлять передачу вечно, до тех пор, пока кто–нибудь не распознает сообщение.

Адресация и идентификация сообщения

Повторимся, нет ничего страшного в том, что в сообщениях CAN нет точных адресов. Каждый контроллер CAN будет получать весь траффик шины, и при помощи комбинации аппаратных фильтров и ПО, определять – «интересует» его это сообщение, или нет.

Фактически, в протоколе CAN отсутствует понятие адреса сообщения. Вместо этого содержимое сообщения определяется идентификатором, который находится где–то в сообщении. Сообщения CAN можно назвать «контентно–адрессовнными».

Определённый адрес работает так: «Это сообщение для узла X». Контентно–адресованное сообщение можно описать так: «Это сообщение содержит данные с маркировкой X». Разница между этими двумя концепциями мала, но существенна.

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

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

Примечание о значениях идентификатора

Мы говорили, что идентификатору доступны 11 (CAN 2.0A) или 29 (CAN 2.0B) бит. Это не совсем верно. Для совместимости с определенным старым контроллером CAN (угадайте каким?), идентификаторы не должны иметь 7 старших бит установленных в логическую единицу, поэтому 11–битным идентификаторам доступны значения 0..2031, а пользователи 29–битных идентификаторов могут использовать 532676608 различных значений.

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

Физические уровни CAN

Шина CAN

Шина CAN использует код без возвращения к нулю (NRZ) с вставкой битов. Существуют два разных состояния сигнала: доминантное (логический 0) и рецессивное (логическая 1). Они соответствуют определенным электрическим уровням, зависящим от используемого физического уровня (их несколько). Модули подключены к шине по схеме «монтажное И» (wired–AND): если хотя бы один узел переводит шину в доминантное состояние, то вся шина находится в этом состоянии, вне зависмости от того, сколько узлов передают рецессивное состояние.

Различные физические уровни

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

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

Другая часть того же стандарта ISO 11898–3 описывает другую двухпроводную сбалансированную сигнальную схему – для менее скоростной шины. Она устойчива к сбоям, поэтому передача сигналов может продолжаться даже в том случае, когда один из проводов будет перерезан, замкнут на «землю» или в состоянии Vbat. Иногда такая схема называется low–speed CAN.

SAE J2411 описывает однопроводной (плюс «земля», разумеется) физический уровень. Он используется в основном в автомобилях – например GM–LAN.

Существуют несколько проприетарных физических уровней.

В былые времена, когда драйверов CAN не существовало, использовались модификации RS485.

Различные физические уровни как правило не могут взаимодействовать между собой. Некоторые комбинации могут работать (или будет казаться, что они работают) в хороших условиях. Например, приемопередатчики high–speed и low–speed могут работать на одной шине лишь иногда.

Абсолютное большинство микросхем приемопередатчиков CAN произведено компанией Philips; в число других производителей входят Bosch, Infineon, Siliconix и Unitrode.

Наиболее распространен приемопередатчик 82C250, в котором реализован физический уровень, описываемый стандартом ISO 11898. Усовершенствованная версия – 82C251.

Распространенный приемопередатчик для «low–speed CAN» – Philips TJA1054.

Максимальная скорость передачи данных по шине

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

Low–speed CAN (ISO 11898–3, см. выше) работает на скоростях до 125 кбит/с.

Однопроводная шина CAN в стандартном режиме может передавать данные со скоростью порядка 50 кбит/с, а в специальном высокоскоростном режиме, например для программирования ЭБУ (ECU), около 100 кбит/с.

Минимальная скорость передачи данных по шине

Имейте в виду, что некоторые приемопередатчики не позволят вам выбрать скорость ниже определенного значения. Например, при использовании 82C250 или 82C251 вы можете без проблем установить скорость 10 кбит/с, но если вы используете TJA1050, то не сможете установить скорость ниже 50 кбит/с. Сверяйтесь со спецификацией.

Максимальная длина кабеля

При скорости передачи данных 1 Мбит/с, максимальная длина используемого кабеля может составлять порядка 40 метров. Это связано с требованием схемы разрешения конфликтов, согласно которому фронт волны сигнала должен иметь возможность дойти до самого дальнего узла и вернуться назад прежде чем бит будет считан. Иными словами, длина кабеля ограничена скоростью света. Предложения по увеличению скорости света рассматривались, но были отвергнуты в связи с межгалактическими проблемами.

Другие максимальные длины кабеля (значения приблизительные):

100 метров при 500 кбит/с;

200 метров при 250 кбит/с;

500 метров при 125 кбит/с;
6 километров при 10 кбит/с.

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

Оконечное прерывание шины

Шина CAN стандарта ISO 11898 должна заканчиваться терминатором. Это достигается путем установки резистора сопротивлением 120 Ом на каждом конце шины. Терминирование служит двум целям:

1. Убрать отражения сигнала на конце шины.

2. Убедиться, что получает корректные уровни постоянного тока (DC).

Шина CAN стандарта ISO 11898 обязательно должна терминироваться вне зависимости от её скорости. Я повторю: шина CAN стандарта ISO 11898 обязательно должна терминироваться вне зависимости от её скорости. Для лабораторной работы может хватить и одного терминатора. Если ваша шина CAN работает даже при отсутствии терминаторов – вы просто счастливчик.

Заметьте, что другие физические уровни , такие как low–speed CAN, однопроводная шина CAN и другие, могут требовать, а могут и не требовать наличия оконечного терминатора шины. Но ваша высокоскоростная шина CAN стандарта ISO 11898 всегда будет требовать наличия хотя бы одного терминатора.

Кабель

Стандарт ISO 11898 предписывает, что волновое сопротивление кабеля номинально должно равнятся 120 Ом, однако допускается интервал значений сопротивления Ом.

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

ISO 11898 описывает витую пару, экранированную или неэкранированную. Идёт работа над стандартом однопроводного кабеля SAE J2411.



Рекомендуем почитать

Наверх