Введение
Практически во всех современных автомобилях для управления двигателем, трансмиссией и другим оборудованием широко используется дифференциальная шина CAN (Controller Area Network). Эта шина и соответствующий протокол, разработанный компанией Bosch более 30 лет назад, до сих пор являются основным способом объединения в единую систему различных устройств управления автомобилем. Помимо этого, шина CAN также широко применяется в средствах управления промышленным и медицинским оборудованием.
Основным измерительным прибором для тестирования и отладки последовательной шины на физическом уровне является осциллограф. Несмотря на то что для отладки и тестирования систем CAN на более высоком логическом уровне абстракции (уровне конкретных приложений) широко используются анализаторы протокола CAN, такие как анализаторы сигналов шины CAN компании Vector Informatik GmbH, только осциллограф позволяет наблюдать форму сигнала, проверяя, таким образом, его качество (целостность) на физическом уровне. Электронное оборудование автомобиля работает в чрезвычайно неблагоприятной электромагнитной обстановке с высоким уровнем шумов и импульсных помех. Ключевым преимуществом осциллографа является то, что он позволяет запоминать и детально отображать эти случайные помехи и шумы, которые могут стать причиной появления ошибок в работе шины CAN.
Декодирование данных шины CAN и запуск по ним
Для облегчения синхронизации и идентификации необходимых CAN-кадров в большинстве современных осциллографов среднего и верхнего ценового диапазона предусмотрена возможность запуска по конкретным комбинациям сигналов шины CAN и декодирования данных протокола в шестнадцатеричном и/или двоичном формате. Однако, как правило, эти функции не входят в базовый набор, а предоставляются в качестве опции за дополнительную плату.

На рис. 1 показан пример того, как выглядит экран осциллографа при запуске по определённому коду и декодировании кадров шины CAN в шестнадцатеричном формате. Обратите внимание на то, что способность осциллографа запоминать и отображать аналоговые сигналы позволяет видеть шумы и неодинаковую амплитуду импульсных сигналов шины. Под каждым захваченным кадром расположены соответствующие ему по времени декодированные данные, отображающие содержащуюся в этом кадре информацию. В верхней части экрана отображается таблица с декодированными данными всех захваченных кадров, примерно так же, как это делается обычным анализатором протокола.
В данном примере измерения осциллограф настроен на запуск по кадру 0x201(HEX), что соответствует двоичному числу 010 000 0001. В 8-байтовом поле данных этого кадра (0x201) отображается «0B A8 00 00 27 10 00 00». Однако, что означает этот номер кадра — 0x201(HEX)? И что означает длинная строка шестнадцатеричных символов?
Декодирование символов шины CAN
Как упоминалось ранее, одно из преимуществ анализатора протокола шины CAN заключается в возможности отображения результатов анализа на более высоком (прикладном) уровне абстракции. Другими словами, анализатор отображает результаты измерений на человеческом языке (например, «скорость = 852 об/мин») вместо закодированных числовых значений. Некоторые современные осциллографы также могут представлять информацию в такой форме. На рис. 2 показано изображение экрана того же осциллографа, что и на рис. 1, но при включении режима символьного декодирования.

В этом примере осциллограф запускается по сообщению «Brake_Torque» (тормозящий момент), которое имеет идентификатор кадра (0x211). Вместо длинной строки шестнадцатеричных символов, представляющей поле данных в этом кадре/сообщении, осциллограф отображает наименования соответствующих «сигналов» вместе с их значениями, единицами измерения и/или кодами состояния, например: «On» (вкл.), «Off» (выкл.), «Reverse» (реверс) и т.д. На символьном языке шины CAN «сигналом» является не определённое движение электронов, а передаваемое значение физического параметра или состояния, например, как в этом примере, «Total_Torque (полный крутящий момент): 131.0640k ft/lbs» (1776989 Н×м). Так, как же осциллограф преобразует необработанные числовые значения в символьную форму?
Файлы с расширением .dbc
Разные автомобили могут использовать разные версии шины CAN, и для каждой модели автомобиля используется собственный файл с расширением .dbc, содержащий «базу данных CAN». Этот файл имеет текстовый формат и используется для описания данных, передаваемых по шине CAN. На рис. 3 приведён пример простейшего варианта такого файла, созданного компанией Agilent. Этот файл представляет собой демонстрационный вариант описания сигналов шины CAN, используемый для обучения работе с осциллографами Agilent.

В таком файле «Messages» (сообщения) представляют собой метки, соответствующие идентификаторам различных типов кадров. Например, в рассматриваемом примере идентификатор кадра 2190911837 соответствует сообщению «EngineData» (данные двигателя). Представляющие собой передаваемые в кадре данные «Signals» (сигналы) строятся несколько сложнее. В сообщении «EngineData» имеется пять байтов данных (что задаётся в описании сообщения параметром счётчика длины слова данных DLC = 5), в которых содержатся три сигнала, обозначенные как «Fuel» (уровень топлива в баке), «Temp» (температура охлаждающей жидкости) и «Speed» (скорость). Для каждого сигнала задаётся номер бита начала и длина в битах. Например, сигнал «Temp» начинается с бита 24 и имеет длину 8 бит. С каждым заданным сигналом связаны коэффициенты пересчёта, единицы измерения, минимальное и максимальное допустимые значения и индикатор порядка следования битов (т.е. какой бит соответствует старшему разряду – самый левый или самый правый).
Далее в распечатке приведены примеры определений сигналов с дискретными значениями. Например, в сообщении ABS (АБС) сигнал «Frnt-R» начинается с бита 7 и имеет длину всего 1 бит. Это означает, что он может принимать только одно значение из двух – 0 или 1. Далее в листинге определяется текстовое представление значений этого сигнала. Если его значение равно «0», то на экране осциллографа отображается «Unlocked» (разблокирован), а при значении сигнала, равном «1», на экране осциллографа отображается «Locked» (блокирован).
Файлы .dbc, которые описывают шину CAN для конкретных автомобилей, значительно сложнее этого созданного компанией Agilent примера. К сожалению, в данной статье не представляется возможным рассмотреть используемый в реальном автомобиле файл .dbc. Дело в том, что производители автомобилей рассматривают эти файлы как интеллектуальную собственность, хранящуюся под грифом «совершенно секретно». Они не хотят, чтобы конкуренты знали, как устроены их сети.
Хотя в компании Agilent для создания файла .dbc, показанного на рис. 3, использовался простейший текстовый редактор (Windows NotePad), существуют гораздо более эффективные способы создания таких файлов, особенно для более сложных автомобильных систем. В настоящее время наиболее распространённым средством создания файлов .dbc стала программа CANdb++. Для получения подробной информации о ней следует обратиться в компанию Vector Informatik GmbH, разрабатывающую разнообразное ПО для работы с коммуникационными сетями.
Использование CAN-dbc для символьного декодирования и запуска в осциллографе
При наличии файла .dbc для шины CAN, подлежащей тестированию и отладке, импорт этого файла в осциллограф выполняется очень легко. Просто скопируйте соответствующий файл на флэш-накопитель USB, а затем загрузите его в память осциллографа. После анализа загруженного файла все основные параметры преобразования сохранятся в осциллографе. (Отметим, что осциллографы Agilent InfiniiVision серии 4000 X в действительности не запоминают содержимое самого файла .dbc.) После этого в меню запуска и декодирования сигналов шины CAN осциллографа появляется пункт для включения символьного декодирования и возможность отображения сообщений и значений сигналов в текстовом виде. На рис. 4 показан снимок экрана осциллографа Agilent, выполняющего запуск и декодирование сигнала встроенного генератора тестовых сигналов шины CAN с использованием файла .dbc, распечатка которого приведена на рис. 3. В нижней половине экрана осциллографа показан увеличенный вид кадра (сообщения) «EngineData» (данные двигателя) с сигналами «Fuel» (уровень топлива в баке), «Temp» (температура охлаждающей жидкости) и «Speed» (скорость).

Как уже говорилось ранее, большинство файлов .dbc, созданных для конкретного автомобиля, являются интеллектуальной собственностью компании-производителя. Работой осциллографов Agilent InfiniiVision серии 4000 X управляет собственная встроенная операционная система, не позволяющая скопировать файл из памяти осциллографа. Даже если осциллограф подключён к интернету через сетевой порт, пользователи не смогут получить доступ к внутренней памяти осциллографа. Кроме того, из памяти файл можно легко стереть с помощью стандартной функции надёжного стирания, наличие которой требуется большинством заказчиков из аэрокосмической и военной промышленности. Поскольку большинство файлов .dbc защищены и являются объектом интеллектуальной собственности разработчиков, эта функция очень важна и для заказчиков в автомобильной промышленности. В результате выполнения функции надёжного стирания в памяти осциллографа не остаётся никакой информации, связанной с удалённым файлом.
Заключение
В настоящее время разработчики автомобильной электроники используют множество средств тестирования и отладки систем, в которых применяется шина CAN. Основным инструментом для работы с этой шиной является осциллограф. Для ускорения тестирования и отладки целесообразно использовать осциллограф с возможностью декодирования данных шины CAN и запуска по коду нужного кадра. Применение же осциллографов, способных преобразовывать коды кадров и данные в них в осмысленный текст на основе данных специализированных файлов CAN-dbc делает процесс поиска конкретных кадров и данных в них ещё проще и понятнее. В конце концов, текстовое сообщение «EngineData» (данные двигателя) гораздо понятнее, чем шестнадцатеричное число 0x0296A95D. Осциллографы с функцией символьного декодирования и запуска, конечно, не могут полностью заменить специализированный анализатор протокола CAN, как и анализатор протокола CAN никогда не заменит осциллограф. В результате в большинстве случаев инженеры-автомобилестроители, занимающиеся разработкой и тестированием шин CAN для электронных систем управления автомобилем, для оптимизации процесса отладки будут использовать оба типа приборов.
© СТА-ПРЕСС
Если вам понравился материал, кликните значок — вы поможете нам узнать, каким статьям и новостям следует отдавать предпочтение. Если вы хотите обсудить материал —не стесняйтесь оставлять свои комментарии : возможно, они будут полезны другим нашим читателям!

