Анализ и измерения в шине CAN с использованием цифровых осциллографов LeCroy

№ 8’2005
В качестве первичного устройства, используемого для анализа протокола CAN, компания LeCroy предлагает использовать цифровой запоминающий осциллограф серии WaveRunner.

В качестве первичного устройства, используемого для анализа протокола CAN, компания LeCroy предлагает использовать цифровой запоминающий осциллограф серии WaveRunner.

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

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

В качестве первичного устройства, используемого для анализа протокола CAN, рациональнее всего использовать цифровой запоминающий осциллограф. Для этих целей компания LeCroy рекомендует использовать осциллографы серии WaveRunner — эти устройства обладают высокой частотой дискретизации (от 2,5 до 10 Гвыбс), большой длиной внутренней памяти — до 8М, имеют 2 или 4 канала (что достаточно как для наблюдения сигнала CAN, так и аналоговых сигналов), построены по принципу «открытой платформы» и обладают широкими возможностями для документирования полученных результатов.

Подключение входа осциллографа к источнику сигнала CAN может осуществляться несколькими способами:

  1. Подключение одного канала осциллографа к выводам CAN-L (низкий) или CAN-H (высокий). Это самый простой способ подключения, но он полностью исключает подавление синфазных сигналов на шине CAN.
  2. Подключение двух каналов осциллографа, одного к выводам CAN-L (низкий), а второго — к CAN-H (высокий). Этот способ подключения обеспечивает подавление синфазных сигналов, но задействует два аналоговых входа осциллографа.
  3. Подключение одного канала осциллографа к выводам CAN-L (низкий) и CAN-H (высокий) с помощью дифференциального пробника. Это самый корректный способ подключения, он прекрасно обеспечивает подавление синфазных помех, задействует один аналоговый вход осциллографа и позволяет получить максимальную длину внутренней памяти.

Пример отображения сигнала CAN-Н в осциллографическом режиме или его физическое отображение приведено на рис. 1.

Рис. 1

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

При анализе протокола CAN необходимо решить две задачи:

  1. Обеспечить CAN-синхронизацию.
  2. Обеспечить декодирование сигнала CAN для последующего анализа.

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

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

  1. ID (адрес) сообщения;
  2. DLC (число кодовых сообщений);
  3. значения данных в кодовом сообщении в формате шестнадцатеричного кода;
  4. CRC (контрольную сумму).

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

Рис. 2

Синхронизация CAN. Синхронизация сигнала может осуществляться по различным заданным условиям или без условия. Синхронизацию без условий, или режим «Все», обеспечивает синхронизацию любым сообщением CAN, находящимся на шине в настоящий момент времени — в этом режиме осциллограф поочередно отображает все сообщения CAN. Это удобно при оценке нагрузки на шине CAN или поиске ошибок. Длинная память осциллографов LeCroy позволяет одновременно зафиксировать на экране осциллографа несколько сотен сообщений CAN. Естественно, для того чтобы разглядеть отдельное сообщение в этом потоке, необходимо воспользоваться растяжкой осциллографа. На рис. 3 приведен пример захвата около 500 сообщений CAN. На верхней осциллограмме изображен поток сообщений CAN, на нижней применена растяжка, на которой видно декодированное сообщение. Кроме того, на верхней осциллограмме видно, что при обнаружении в потоке сообщений, содержащих ошибки, осциллограф выделяет их красным цветом и помечает флагом «Error».

Рис. 3

На рис. 4 приведен пример отображения обнаруженной ошибки формы.

Рис. 4

Синхронизация CAN может осуществляться по различным условиям:

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

Такая реализация синхронизации CAN позволяет из всего потока сообщений выделять только те, которые представляют интерес для конкретной задачи анализа, например имеющие определенный ID или содержащие необходимые данные. Например, в автомобиле необходимо анализировать только сообщения, передаваемые датчиком температуры масла двигателя, когда температура превышает определенный установленный порог. Или, например, в координатном фрезерном станке необходимо отображать только сообщения, передаваемые определенным датчиком положения. На рис. 5 приведен пример выделения из потока CAN сообщений только с ID = 0x7cf.

Рис. 5

Очевидно, что если сообщения CAN с определенным адресом будут передаваться в шину очень редко, достаточно высока вероятность потерять предыдущие сообщения из-за того, что линия развертки осциллографа находится в автоколебательном режиме и при каждом новом проходе предыдущая осциллограмма стирается с экрана. Для предотвращения этого осциллографы LeCroy имеют режим последовательной развертки, при котором после записи первого сигнала развертка останавливается и ожидает второго запуска, после второго запуска останавливается и ждет третьего, и т. д. В этом режиме осциллограф LeCroy Wave Runner может зафиксировать до 1000 отдельных сигналов, причем время между сигналами не имеет значения, а при использовании запуска по определенному ID — это 1000 последовательных сообщений с одним заданным адресом. Автоматический анализ декодированных данных, содержащихся в этих сообщениях, например построение графика, даст полную информационную картину о температуре масла двигателя, которая была зарегистрирована датчиком, выбранным нами в качестве примера. На рис. 5 приведен пример последовательной синхронизации 20 сообщений с адресом ID = 0x7с3 и их последующего декодирования, а на рис. 6 отображено декодирование 13-го сообщения.

Рис. 6

При последовательной синхронизации, поскольку запуск развертки «приостанавливается», существует опасность потери информации о времени между сообщениями CAN, особенно если это время очень большое. Но схема синхронизации осциллографов LeCroy построена так, что при последовательной развертке время между сегментами фиксируется в памяти осциллографа, и это впоследствии позволяет рассчитать частоту следования сообщений. На рис. 7 отображено окно времени между запусками развертки для сообщений, зафиксированных на рис. 6. Из рис. 7 видно, что сообщения с ID = 7с3 следуют неравномерно, и промежутки между первыми 10 сообщениями составляют от 482 мс до 9,98 с.

Рис. 7

Обнаружение и анализ ошибок. Программное обеспечение CAN-осциллографа LeCroy позволяет не только обнаруживать ошибки, как было показано на рис. 3 и 4, но анализировать типы обнаруженных ошибок. Так представляется возможным определять следующие типы ошибок:

  • ошибка формата (form error);
  • ошибка битстаффинга (stuff error);
  • ошибка контрольной суммы (CRC error);
  • ошибка на уровне бита (bit error).

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

Рис. 8

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

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

  1. Измерение временного интервала между аналоговым сигналом (сигналом возмущения) и цифровым сообщением CAN (реакцией системы).
  2. Измерение времени между двумя заданными сообщениями CAN. В этом режиме задаются ID начального сообщения, данные начального сообщения (при необходимости, а также условия совпадения для данных), ID конечного сообщения, данные конечного сообщения (при необходимости, а так же условия совпадения для данных). При обнаружении осциллографом двух сообщений, соответствующих заданным условиям, происходит измерение временного интервала между ними. Здесь также большое значение имеет длинна внутренней памяти. Поскольку измерение одиночного временного интервала производится в пределах одного экрана, то для сбора максимального числа сообщений CAN, содержащих, в том числе, сообщения, удовлетворяющие заданным условиям, необходима как можно более длинная память.
  3. Преобразование данных, содержащихся в сообщении CAN, в числовое значение с использованием ранжирования и единиц измерения.
  4. Измерение длительности сообщения, передаваемого по шине CAN, с заданным ID и условиями совпадения для данных.
  5. Расчет нагрузки сообщений CAN в процентах. Определяется как отношение длительности всех сообщений CAN с заданным ID и условиями совпадения для данных к времени сбора информации.

На рис. 9 приведен пример сигнала CAN и одновременного измерения (слева направо):

  • длительности между сообщениями с ID = 0x7c2 и с ID = 0x7b2;
  • длительности сообщения с ID = 0x7c2;
  • преобразование данных сообщения с ID = 0x7c2 в значение скорости;
  • расчет загрузки сообщения с ID = 0x7c2.
Рис. 9

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

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

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