Статьи
А.А. ДедюхинПрименение устройств на основе протокола передачи CAN, уже давно вышло за рамки первоначальной идеи использования в автомобильной промышленности. В настоящее время эти устройства широко применяются в железнодорожном транспорте, лифтовом хозяйстве, системах сигнализации и многих других. |
Применение устройств на основе протокола передачи CAN, уже давно вышло за рамки первоначальной идеи использования в автомобильной промышленности. В настоящее время эти устройства широко применяются в железнодорожном транспорте, лифтовом хозяйстве, системах сигнализации и многих других. Но, как и любая система, основанная на передаче электрического сигнала, система, построенная на основе CAN протокола, требует анализа физического сигнала передаваемого в среде распространения, декодирования передаваемого и принимаемого сигнала, поиска и анализа ошибок, проведения специфических для CAN шины измерений.
Потребность в такого типа средствах измерения возникает не только на стадии разработки CAN устройств или систем, но и при монтаже сложных CAN систем, техническом обслуживании систем уже находящихся в эксплуатации.
В качестве первичного устройства используемого для анализа протокола CAN, рациональнее всего использовать цифровой запоминающий осциллограф. Для этих целей компания LeCroy рекомендует использовать осциллографы серии WaveRunner – эти осциллографы обладают высокой частотой дискретизации (от 2,5 до 10 Гвыб\с), большой длинной внутренней памяти – до 8М, число каналов 2 или 4 (что достаточно как для наблюдения сигнала CAN, так и аналоговых сигналов), они построены на принципе «открытой платформы» и обладают широкими возможностями для документирования полученных результатов.
Подключение входа осциллографа к источнику сигнала CAN может осуществляться несколькими способами:
- Подключение одного канала осциллографа к выводам CAN- L (низкий) или CAN- H (высокий). Это самый простой способ подключения, но он полностью исключает подавление синфазных сигналов на шине CAN;
- Подключение двух каналов осциллографа, один к выводам CAN- L (низкий) второй CAN- H (высокий). Этот способ подключения обеспечивает подавление синфазных сигналов, но задействует два аналоговых входа осциллографа;
- Подключение одного канала осциллографа к выводам CAN- L (низкий) и CAN- H (высокий) с помощью дифференциального пробника. Это самый корректный способ подключения, он прекрасно обеспечивает подавление синфазных помех, задействует один аналоговый вход осциллографа и позволяет получить максимальную длину внутренней памяти;
Пример отображения сигнала CAN -Н в осциллографическом режиме или его физическое отображение приведен на рисунке 1.
Рисунок 1 (здесь и далее щелчок по изображению — увеличение) |
Очевидно, что такого отображения сигнала недостаточно, для оперативного анализа передаваемого сообщения — выделения адреса, данных, бита подтверждения и т.д. .Хотя, набравшись терпения и достаточным запасом времени это возможно сделать в ручную. Но если стоит задача анализа массива сообщений только с определенным ID или содержащих определенную информацию – то этот «дедовский» способ не подойдет.
При анализе протокола CAN необходимо решить две задачи:
- Обеспечить CAN синхронизацию;
- Обеспечить декодирование сигнала CAN для последующего анализа.
Синхронизация CAN обеспечивается специальным опционным модулем CAN- TDM, имеющем в своем комплекте кабели и аксессуары, необходимые для подключения к любому типу CAN шины и программным обеспечением осциллографа.
Декодирование сообщения CAN
Осуществляются специализированным программным обеспечением, интегрированным в оболочку цифрового запоминающего осциллографа и позволяет полностью идентифицировать информацию, содержащуюся в сообщении CAN, а именно:
- ID (адрес) сообщения;
- DLC (число кодовых сообщений);
- Значения данных в кодовом сообщении в формате шестнадцатеричного кода;
- CLC (контрольную сумму ).
При декодировании сигнала его отдельные составляющие выделяются разным цветом, а при необходимости возможно индицировать и дополнительные биты сообщения CAN, такие как – битстаффинг или бит подтверждения.
Так на рисунке 2 приведен пример декодированного сообщения CAN, на котором четко видны составные части сообщения CAN.
Рисунок 2 |
Синхронизация CAN
Синхронизация сигнала CAN может осуществляться по различным заданным условиям или без условия. Синхронизацию без условий, или режим «Все» обеспечивает синхронизацию любым сообщением CAN находящимся на шине в настоящий момент времени – в этом режиме осциллограф поочередно отображает все сообщения CAN. Это удобно при оценке нагрузки на шине CAN или поиске ошибок.
Длинная память осциллографов LeCroy (а это как уже упоминалось до 8 М), позволяет одновременно зафиксировать на экране осциллографа несколько сотен сообщений CAN. Естественно, для того чтобы разглядеть отдельное сообщение CAN в этом потоке, необходимо воспользоваться растяжкой осциллографа. Так на рис 3. приведен пример захвата около 500 сообщений CAN. На верхней осциллограмме изображен поток сообщений CAN, на нижней осциллограмме применена растяжка, на которой видно декодированное сообщение.
Так же на рисунке 3, на верхней осциллограмме видно, что при обнаружении в потоке сообщений содержащих ошибки, эти сообщения выделяются красным цветом и помечаются флагом « Error».
Рисунок 3 |
Так на рисунке 4 приведен пример отображения обнаруженной ошибки формы.
Рисунок 4 |
Синхронизация CAN может так же осуществляться по различным условиям, это:
- по заданному номеру ID (равен; не равен; больше; больше или равно; меньше; меньше или равно; в диапазоне; вне диапазона);
- по значению данных содержащихся как в целом сообщении, так и его отдельной части (равен; не равен; больше; больше или равно; меньше; меньше или равно; в диапазоне; вне диапазона);
Такая реализация синхронизации CAN, позволяет из всего потока сообщений CAN фиксировать только те, которые представляют интерес для конкретной задачи анализа, например имеющие определенный ID или содержащие данные необходимы для фиксации. Например, в автомобиле необходимо анализировать только сообщения передаваемые датчиком температуры масла двигателя и когда температура превысила определенный установленный порог. Или, например, в координатном фрезерном станке необходимо фиксировать только сообщения, передаваемые определенным датчиком положения. Так на рисунке 5 приведен пример выделения из потока CAN сообщений только с ID= 0 x7 cf.
Очевидно, что если сообщения CAN с определенным адресом будут передаваться в шину очень редко, достаточно высока вероятность потерять предыдущие CAN сообщения, из-за того, что линия развертки осциллографа находится в автоколебательном режиме и при каждом новом проходе развертки, предыдущая осциллограмма стирается с экрана. Для предотвращения этого явления осциллографы LeCroy имеют режим последовательной развертки, при котором после записи первого сигнала, развертка останавливается и ожидает второго запуска, после второго запуска останавливается и ждет третьего и т.д.
В этом режиме осциллограф LeCroy Wave Runner может зафиксировать до 1000 отдельных сигналов, причем время между сигналами не имеет значения (хоть 1 час! Или больше), а при использовании запуска по определенному ID — это 1000 последовательных CAN сообщений с одним заданным адресом. Автоматический анализ декодированных данных, содержащихся в этих CAN сообщениях, например построение графика, даст полную информационную картинную о температуре масла двигателя, регистрируемой датчиком, выбранным нами в качестве примера.
Так на рисунке 5, приведен пример последовательной синхронизации 20 сообщений с адресом ID=0 x7с3 и их последующего декодирования, на рисунке 6 отображено декодирование 13-го сообщения.
Рисунок 5 |
При последовательной синхронизации, поскольку запуск развертки «приостанавливается», существует опасность потери информации о времени между сообщениями CAN, особенно если это время очень большое.
Но схема синхронизации осциллографов LeCroy построена по такому принципу, что при последовательной развертке, время между сегментами фиксируется в памяти осциллографа и что в последствии позволяет рассчитать частоту следования сообщений.
Так на рисунке 6 отображено окно времени между запусками развертки для сообщений, зафиксированных на рисунке 6. Из рисунка 7 видно, что сообщения с ID=7с3, следуют не равномерно и время между первыми 10 сообщениями составляет от 482 мс до 9,98 с.
|
|
Обнаружение и анализ ошибок
Программное обеспечение CAN- bus осциллографа LeCroy позволяет не только обнаруживать ошибки, как было показано на рисунке 3 и 4, но анализировать типы обнаруженных ошибок. Так представляется возможным определять следующие типа ошибок:
- Ошибка формата (form error);
- Ошибка битстаффинга (stuff error)
- Ошибка контрольной суммы (CRC error)
- Ошибка на уровне бита(bit error)
Кадр, содержащий ошибку выделяется красным цветом, а тип обнаруженной ошибки индицируется в верхней части кадра. Так на рисунке 8 приведен пример ошибки контрольной суммы.
Рисунок 8 |
Пользовательский интерфейс анализатора шины CAN построен таким образом, что перемещение от зафиксированной ошибки к другой ошибке осуществляется нажатием всего на одну кнопку «Следующая ошибка», расположенную в поле управления растяжкой сообщения CAN, что существенно облегчает просмотр всей последовательности ошибок
Измерения на шине CAN
Очевидно, что без функций измерения различных параметров сигналов передаваемых по шине CAN, процесс анализа шины CAN был бы не полным. Помимо измерения традиционных параметров сигнала, присущих большинству цифровых осциллографов, таких как частота, период, длительность, время нарастания или спада, время между фронтами двух независимых сигналов, пиковое значение сигнала, минимальное или максимальное сигнала и многие другие. Осциллографы LeCroy имеют специфические функции измерения временных параметров, используемые только в режиме анализа шины CAN. Это следующие режимы измерения:
- Измерение временного интервала между аналоговым сигналом (сигналом возмущения) и цифровым сообщением CAN (реакцией системы).
- Измерение времени между двумя заданными сообщениями CAN. В этом режиме задаются ID начального сообщения, данные начального сообщения (при необходимости, а так же условия совпадения для данных), ID конечного сообщения, данные конечного сообщения (при необходимости, а так же условия совпадения для данных). При обнаружении осциллографом двух сообщений соответствующих заданным условиям, происходит измерение временного интервала между ними. Здесь так же большое значение имеет длинна внутренней памяти. Поскольку измерение одиночного временного интервала производится в пределах одного экрана, то для сбора максимального числа сообщений CAN, содержащих, в том числе, сообщения, удовлетворяющие заданным условиям, необходима как можно более длинная память.
- Преобразование данных содержащихся в сообщении CAN в числовое значение с использованием ранжирования и единиц измерения.
- Измерение длительности сообщения передаваемого по шине CAN с заданным ID и условиями совпадения для данных.
- Расчет нагрузки сообщений CAN в %. Определяется как отношение длительности всех сообщений CAN, с заданным ID и условиями совпадения для данных к времени сбора информации.
Так на рисунке 9 приведен пример сигнала CAN и одновременного измерения (с лева на право):
- длительности между сообщениями с ID=0 x7 c2 и с ID= 0 x7 b2;
- длительности сообщения с ID=0 x7 c2;
- преобразование данных сообщения с ID=0 x7 c2 в значение скорости;
- расчет загрузки сообщения с ID=0 x7 c2
Рисунок 8 |
Так же при анализе сообщений CAN доступны вертикальные и горизонтальные курсорные измерения в режиме абсолютных или дельта измерений.
Дедюхин А.А. 01.09.2005
У нас представлены товары лучших производителей
ПРИСТ предлагает оптимальные решения измерительных задач.
У нас вы можете купить осциллограф, источник питания, генератор сигналов, анализатор спектра, калибратор, мультиметр, токовые клещи, поверить средства измерения или откалибровать их. Также мы поставляем паяльно-ремонтное оборудование, антистатический инструмент, промышленную мебель. Мы имеем прямые контракты с крупнейшими мировыми производителями измерительного оборудования, благодаря этому можем подобрать то оборудование, которое решит Ваши задачи. Имея большой опыт, мы можем рекомендовать продукцию следующих торговых марок:
Источник: https://prist.ru/library/stati/analiz_i_izmereniya_v_shine_can_s_ispolzovaniem_cifrovyh_oscillografov_lecroy/
Введение в протокол CAN
Промышленная сеть реального времени CAN представляет собой сеть с общей средой передачи данных. Это означает, что все узлы сети одновременно принимают сигналы передаваемые по шине. Невозможно послать сообщение какому-либо конкретному узлу. Все узлы сети принимают весь трафик передаваемый по шине. Однако, CAN-контроллеры предоставляют аппаратную возможность фильтрации CAN-сообщений.
Каждый узел состоит из двух составляющих. Это собственно CAN контроллер, который обеспечивает взаимодействие с сетью и реализует протокол, и микропроцессор (CPU).
Рис. 1. Топология сети CAN.
CAN контроллеры соединяются с помощью дифференциальной шины, которая имеет две линии — CAN_H (can-high) и CAN_L (can-low), по которым передаются сигналы. Логический ноль регистрируется, когда на линии CAN_H сигнал выше, чем на линии CAN_L. Логическая единица — в случае когда сигналы CAN_H и CAN_L одинаковы (отличаются менее чем на 0.5 В).
Использование такой дифференциальной схемы передачи делает возможным работу CAN сети в очень сложных внешних условиях. Логический ноль — называется доминантным битом, а логическая единица — рецессивным. Эти названия отражают приоритет логической единицы и нуля на шине CAN. При одновременной передаче в шину лог.
нуля и единицы, на шине будет зарегестрирован только логический ноль (доминантный сигнал), а логическая единица будет подавлена (рецессивный сигнал).
Типы сообщений сети CAN
Данные в CAN передаются короткими сообщениями-кадрами стандартного формата. В CAN существуют четыре типа сообщений:
- Data Frame
- Remote Frame
- Error Frame
- Overload Frame
Data Frame — это наиболее часто используемый тип сообщения. Он состоит из следующих основных частей:
- поле арбитража (arbitration field) определяет приоритет сообщения в случае, когда два или более узлов одновременно пытаются передать данные в сеть. Поле арбитража состоит в свою очередь из:
- для стандарта CAN-2.0A, 11-битного идентификатора + 1 бит RTR (retransmit)
- для стандарта CAN-2.0B, 29-битного идентификатора + 1 бит RTR (retransmit)
Следует отметить, что поле идентификатора, несмотря на свое название никак не идентифицирует само по себе ни узел в сети, ни содержимое поля данных. Для Data кадра бит RTR всегда выставлен в логический ноль (доминантный сигнал).
- поле данных (data field) содержит от 0 до 8 байт данных
- поле CRC (CRC field) содержит 15-битную контрольную сумму сообщения, которая используется для обнаружения ошибок
- слот подтверждения (Acknowledgement Slot) (1 бит), каждый CAN-контроллер, который правильно принял сообщение посылает бит подтверждения в сеть. Узел, который послал сообщение слушает этот бит, и в случае если подтверждение не пришло, повторяет передачу. В случае приема слота подтверждения передающий узел может быть уверен лишь в том, что хотя бы один из узлов в сети правльно принял его сообщение.
Рис. 2. Data frame стандарта CAN 2.0A.
Remote Frame — это Data Frame без поля данных и с выставленным битом RTR (1 — рецессивные бит). Основное предназначение Remote кадра — это инициация одним из узлов сети передачи в сеть данных другим узлом. Такая схема позволяет уменьшить суммарный трафик сети. Однако, на практике Remote Frame сейчас используется редко (например, в DeviceNet Remote Frame вовсе не используется).
Error Frame — это сообщение которое явно нарушает формат солобщения CAN. Передача такого сообщения приводит к тому, что все узлы сети регистрируют ошибку формата CAN-кадра, и в свою очередь автоматически передают в сеть Error Frame.
Результатом этого процесса является автоматическая повторная передача данных в сеть передающим узлом. Error Frame состоит из поля Error Flag, которое состоит из 6 бит одинакового значения (и таким образом Error frame нарушает проверку Bit Stuffing, см. ниже), и поля Error Delimiter, состоящее из 8 рецессивных битов.
Error Delimiter дает возможность другим узлам сети обнаружив Error Frame послать в сеть свой Error Flag.
Overload Frame — повторяет структуру и логику работы Error кадра, с той разницей, что он используется перегруженным узлом, который в данный момент не может обработать поступающее сообщение, и поэтому просит при помощи Overload-кадра о повторной передаче данных. В настоящее время Overload-кадр практически не используется.
Контроль доступа к среде передачи (побитовый арбитраж)
Поле арбитража CAN-кадра используется в CAN для разрешения коллизий доступа к шине методом не деструктивного арбитража. Суть метода не деструктивного арбитража заключается в следующем. В случае, когда несколько контроллеров начинают одновременную передачу CAN кадра в сеть, каждый из них сравнивает, бит, который собирается передать на шину с битом, который пытается передать на шину конкурирующий контроллер.
Если значения этих битов равны, оба контроллера передают следующий бит. И так происходит до тех пор, пока значения передаваемых битов не окажутся различными. Теперь контроллер, который передавал логический ноль (более приоритетный сигнал) будет продолжать передачу, а другой (другие) контроллер прервёт свою передачу до того времени, пока шина вновь не освободится.
Конечно, если шина в данный момент занята, то контроллер не начнет передачу до момента её освобождения.
Рис. 3. Побитовый арбитраж на шине CAN.
Методы обнаружения ошибок
CAN протокол определяет пять способов обнаружения ошибок в сети:
- Bit monitoring
- Bit stuffing
- Frame check
- ACKnowledgement Check
- CRC Check
Bit monitoring — каждый узел во время передачи битов в сеть сравнивает значение передаваемого им бита со значением бита которое появляется на шине. Если эти значения не совпадают, то узел генерирует ошибку Bit Error. Естественно, что во время арбитража на шине (передача поля арбитража в шину) этот механизм проверки ошибок отключается.
Bit stuffing — когда узел передает последовательно в шину 5 бит с одинаковым значением, то он добавляет шестой бит с противоположным значением. Принимающие узлы этот дополнительный бит удаляют. Если узел обнаруживает на шине больше 5 последовательных бит с одинаковым значением, то он генерирует ошибку Stuff Error.
Frame Check — некоторые части CAN-сообщения имеют одинаковое значение во всех типах сообщений. Т.е. протокол CAN точно определяет какие уровни напряжения и когда должны появляться на шине. Если формат сообщений нарушается, то узлы генерируют ошибку Form Error.
ACKnowledgement Check — каждый узел получив правильное сообщение по сети посылает в сеть доминантный (0) бит. Если же этого не происходит, то передающий узел регистрирует ошибку Acknowledgement Error.
CRC Check — каждое сообщение CAN содержит CRC сумму, и каждый принимающий узел подсчитывает значение CRC для каждого полученного сообщения. Если подсчитанное значение CRC суммы, не совпадает со значением CRC в теле сообщения, принимающий узел генерирует ошибку CRC Error.
Механизм ограничения ошибок (Error confinement)
Каждый узел сети CAN, во время работы пытается обнаружить одну из пяти возможных ошибок. Если ошибка обнаружена, узел передает в сеть Error Frame, разрушая тем самым весь текущий трафик сети (передачу и прием текущего сообщения). Все остальные узлы обнаруживают Error Frame и принимают соответствующие действия (сбрасывают принятое сообщение). Кроме того, каждый узел ведет два счетчика ошибок: Transmit Error Counter (счетчик ошибок передачи) и Receive Error Counter (счетчик ошибок приема).
Эти счетчики увеличиваются или уменьшаются в соответствие с несколькими правилами. Сами правила управления счетчиками ошибок достаточно сложны, но сводятся к простому принципу, ошибка передачи приводит к увеличению Transmit Error счетчика на 8, ошибка приема увеличивает счетчик Receive Error на 1, любая корректная передача/прием сообщения уменшают соответствующий счетчик на 1. Эти правила приводят к тому, что счетчик ошибок передачи передающего узла увеличивается быстрее, чем счетчик ошибок приема принимающих узлов.
Это правило соответствует предположению о большой вероятности того, что источником ошибок является передающий узел.
Каждый узел CAN сети может находится в одном из трех состояний. Когда узел стартует он находится в состоянии Error Active. Когда, значение хотя бы одного из двух счетчиков ошибок превышает предел 127, узел переходит в состояние Error Passive. Когда значение хотя бы одного из двух счетчиков превышает предел 255, узел переходит в состояние Bus Off.
Узел находящийся в состоянии Error Active в случае обнаружения ошибки на шине передает в сеть Active Error Flags. Active Error Flags сотстоит из 6 доминантных бит, поэтому все узлы его регистрируют. Узел в состоянии Passive Error передает в сеть Passive Error Flags при обнаружении ошибки в сети. Passive Error Flags состоит из 6 рецессивных бит, поэтому остальные узлы сети его не замечают, и Passive Error Flags лишь приводит к увеличению Error счетчика узла. Узел в состоянии Bus Off ничего не передает в сеть (не только Error кадры, но вообще никакие другие).
Адресация и протоколы высокого уровня
В CAN не существует явной адресации сообщений и узлов. Протокол CAN нигде не указывает что поле арбитража (Identification field + RTR) должно использоваться как идентификатор сообщения или узла. Таким образом, идентификаторы сообщений и адреса узлов могут находится в любом поле сообщения (в поле арбитража или в поле данных, или присутствовать и там, и там). Точно также протокол не запрещает использовать поле арбитража для передачи данных.
Утилизация поля арбитража и поля данных, и распределение адресов узлов, идентификаторов сообщений и приоритетов в сети является предметом рассмотрений так называемых протоколов высокого уровня (HLP — Higher Layer Protocols). Название HLP отражает тот факт, что протокол CAN описывает только два нижних уровня эталонной сетевой модели ISO/OSI, а остальные уровни описываются протоколами HLP.
Рис. 4. Логическая структура протокола CAN.
Существует множество таких высокоуровневых протоколов. Наиболее распространенные из них это:
- DeviceNet
- CAL/CANopen
- SDS
- CanKingdom
Физичекий уровень протокола CAN
Физический уровень (Physical Layer) протокола CAN определяет сопротивление кабеля, уровень электрических сигналов в сети и т.п. Существует несколько физических уровней протокола CAN (ISO 11898, ISO 11519, SAE J2411).
В подавляющем большинстве случаев используется физический уровень CAN определенный в стандарте ISO 11898. ISO 11898 в качестве среды передачи определяет двухпроводную дифференциальную линию с импедансом (терминаторы) 120 Ом (допускается колебание импеданса в пределах от 108 Ом до 132 Ом. Физический уровень CAN реализован в специальных чипах — CAN приемо-передатчиках (transceivers), которые преобразуют обычные TTL уровни сигналов используемых CAN-контроллерами в уровни сигналов на шине CAN. Наиболее распространенный CAN приемо-передатчик — Phillips 82C250, который полностью соответствует стандарту ISO 11898.
Махимальная скорость сети CAN в соответствие с протоколом равна 1 Mbit/sec. При скорости в 1 Mbit/sec максимальная длина кабеля равна примерно 40 метрам. Ограничение на длину кабеля связано с конечной скоростью света и механизмом побитового арбитража (во время арбитража все узлы сети должны получать текущий бит передачи одновременно, те сигнал должен успеть распространится по всему кабелю за единичный отсчет времени в сети. Соотношение между скоростью передачи и максимальной длиной кабеля приведено в таблице:
скорость передачи | максимальная длина сети |
1000 Кбит/сек | 40 метров |
500 Кбит/сек | 100 метров |
250 Кбит/сек | 200 метров |
125 Кбит/сек | 500 метров |
10 Кбит/сек | 6 километров |
Разъемы для сети CAN до сих пор НЕ СТАНДАРТИЗОВАНЫ. Каждый протокол высокого уровня обычно определяет свой тип разъемов для CAN-сети.
Источник: http://can.marathon.ru/page/can-protocols/canbus/canintro
Шина CAN в автомобиле
Шина CAN в автомобиле — это сеть контроллеров, предназначенных для обеспечения подключения электронных устройств, которые способны передавать и получать определенную информацию. Такая схема подключения позволила снизить негативное влияние внешних электромагнитных полей и существенно увеличить скорость передачи данных.
Классификация шинных систем автомобиля
Шина CAN была признана стандартом с момента своего появления в серийно выпускаемых автомобилях в 1991 году. Но она также часто используется и в автоматизации. Основные особенности:
- Передача сообщений с ранжированием приоритетов и неразрушающим арбитражем;
- Снижение затрат благодаря использованию недорогой витой пары и простого протокола с невысокими требованиями к вычислительной мощности;
- Скорость передачи данных до 1 Тбит/с у высокоскоростной шины CAN и до 125 Кбит/с у низкоскоростной шины CAN (более низкие расходы на аппаратную часть);
- Высокая надежность передачи данных за счет распознавания и сигнализации спорадических и постоянных неисправностей и благодаря унифицированию сетевых процессов через acknowledge;
- Принцип много абонентской шины;
- Высокая степень готовности за счет обнаружения неисправных станций;
- Стандартизация по ISO 11898.
Логические состояния шин и шифрование
Для обмена данными шина CAN использует два состояния «доминантное» и «рецессивное», с помощью которых передаются информационные биты. Доминантное состояние соответствует «0», а рецессивное — «1». Для шифрования передачи используется процесс NRZ (без возврата на ноль), в котором нулевое состояние не всегда возвращается в промежуток между двумя одинаковыми состояниями передачи и, соответственно, необходимый для синхронизации временной интервал между двумя фронтами может оказаться слишком большим.
В основном используется двухпроводной кабель, в зависимости от окружающих условий, с витой или не витой парой. Две шинные линии называются CAN-H и CAN-L (рис. «Уровень напряжения передачи по CAN» ).
Двухпроводный кабель обеспечивает симметричную передачу данных, при которой биты передаются через обе шинные линии с использованием разных напряжений. Это уменьшает чувствительность к синфазным помехам, поскольку помехи влияют на обе линии и могут быть отфильтрованы путем создания разности (рис. «Фильтрация помех по шине CAN» ).
Однопроводный кабель представляет собой способ сокращения производственных затрат за счет экономии на втором кабеле. Однако общее подключение к массе, выполняющей функцию второго кабеля, должно быть доступно для этой цели всем пользователям шины. Поэтому однопроводный вариант шины CAN возможен только для системы связи с ограниченным монтажным пространством. Передача данных по однопроводному кабелю более чувствительна к излучаемым помехам — он не позволяет фильтровать импульсы помех так, как в двухпроводном кабеле.
В результате на шинной линии требуется сигнал более высокого уровня. Это, в свою очередь, отрицательно сказывается на излучении помех. Поэтому необходимо снизить крутизну фронта импульсов сигналов шины по сравнению с двухпроводным кабелем. Это связано с уменьшением скорости передачи данных. По этой причине однопроводной кабель используется только для низкоскоростной шины CAN в области кузова и электроники для функций комфорта. Например, низкоскоростная шина CAN с двухпроводным кабелем в случае обрыва кабеля должна продолжать работать как однопроводная система.
Однопроводное решение не описывается в спецификации CAN.
Уровни напряжения шины CAN
Высокоскоростные и низкоскоростные шины CAN используют разные уровни напряжения для передачи доминантных и рецессивных состояний. Уровни напряжения низкоскоростной шины CAN показаны на рис. а, «Уровень напряжения передачи по CAN», а высокоскоростной — на рис. Ь, «Уровень напряжения передачи по CAN».
Высокоскоростная шина CAN в рецессивном состоянии на обеих линиях использует номинальное напряжение 2,5 В. В доминантном состоянии на CAN-H и CAN-L подается номинальное напряжение 3,5 В и 1,5 В, соответственно. В низкоскоростной шине CAN в рецессивном состоянии на CAN-H подается напряжение 0 В (максимум 0,3 В), на CAN-L — 5 В (минимум 4,7 В). В доминантном состоянии на CAN-H напряжение составляет не менее 3,6 В, а на CAN-L не более 1,4 В.
Предельные значения
Для арбитражного метода в случае CAN важно, чтобы все узлы в сети видели биты идентификатора фрейма одновременно, чтобы узел, передавая бит, видел, передают ли их другие узлы. Задержки возникают из-за распространения сигнала в шине данных и обработки в трансивере. Таким образом, максимально допустимая скорость передачи данных зависит от общей длины шины. Стандарт ISO предусматривает скорость 1 Мбит/с для 40 м. У более длинных проводов возможная скорость передачи данных примерно обратно пропорциональна длине провода. Сети с дальностью 1 км могут работать со скоростью 40 кбит/с.
Конфигурация шины
CAN работает в соответствии с принципом многорежимного управления, при котором линейная структура шины подсоединяет несколько блоков управления равного приоритета ранжирования.
Адресация по содержанию CAN использует адресацию по содержанию сообщений. Каждому сообщению присваивается метка-идентификатор, который классифицирует содержание сообщения (например, о частоте вращения коленчатого вала двигателя). В каждой станции ведется обработка только тех сообщений, чьи идентификаторы накапливаются в приемочном списке сообщений. Это называется приемочной проверкой (рис. «Адресация и проверка приемки» ). Таким образом, CAN не требует адресов станции для передачи данных. Это облегчает адаптацию к различным уровням оборудования.
Логические состояния шины CAN
Протокол CAN основывается на двух логических состояниях: биты информации являются или «рецессивными» (логическое состояние 1), или «доминантными» (логическое состояние 0). Когда, по крайней мере, одной из станций передается доминантный бит, тогда перезаписываются рецессивные биты, одновременно посылаемые ото всех других станций.
Назначение приоритетов
Идентификатор присваивает адреса данным как содержания, так и приоритета посылаемых сообщений. Идентификаторы, соответствующие низким бинарным числам, используют высокий приоритет и наоборот.
Арбитраж шины CAN
Каждая станция может начать передачу сообщения только после освобождения шины. Когда несколько станций начинают передавать сообщения одновременно, для разрешения создаваемых конфликтов доступа к шине используется арбитраж «wired-and» (монтажное И). Сообщению с высшим приоритетом (наименьшим двоичным значением идентификатора) присваивается право первого доступа, без задержек и потерь битов (рис. «Побитовый арбитраж» ). Передатчики реагируют на невозможность получения доступа к шине путем автоматического переключения в режим приема; затем ими повторяется попытка передачи, как только шина снова освобождается.
Фрейм данных и формат сообщения Шина CAN поддерживает два разных формата сообщений, различающихся только длиной идентификаторов. Стандартный формат включает 11 битов, в то время как расширенная версия состоит из 29 битов. Таким образом, рамка передачи данных содержит максимум 130 битов стандартного или 150 битов расширенного формата. Это обеспечивает минимальное время ожидания до последующей передачи, которая может быть срочной. Фрейм данных состоит из семи последовательных полей (рис. «Фрейм данных» ). «Начало фрейма» показывает начало сообщения и синхронизирует все узлы.
Поле «арбитра» состоит из идентификатора сообщения и дополнительного контрольного бита. Во время передачи этого поля передающее устройство сопровождает передачу каждого бита проверкой о том, что сообщение более высокого приоритета, которое могло бы аннулировать санкционированный доступ, не передается. Контрольный бит определяет, будет ли сообщение классифицироваться как «фрейм данных» или «дистанционный фрейм».
Поле «контроля» содержит код, показывающий количество байтов данных в поле «данных».
Поле «данных» содержит от 0 до 8 байтов. Сообщение длиной 0 данных может быть использовано для синхронизации распределительных процессов.
Поле «CRC» (периодический резервный контроль) содержит контрольную сумму для обнаружения возможных помех при передаче.
Поле «АСК» (уведомление) содержит сигналы подтверждения, с помощью которых получатели подтверждают доставку сообщений.
«Конец фрейма» обозначает конец сообщения.
Затем идет «межфреймовый промежуток», отделяющий фрейм от следующего фрейма.
Инициация передатчика
Передатчик обычно инициирует передачу данных посредством отправки фрейма данных. Однако приемник также может запросить данные от передатчика, отправив дистанционный фрейм. Этот дистанционный фрейм имеет тот же идентификатор, что и соответствующий фрейм данных. Они различаются битом, стоящим после идентификатора.
Источник: http://press.ocenin.ru/shiny-can-v-avtomobilyah/