Измерения
Информация\Измерения\Цифровые осциллографы\Диагностика последовательных шин CAN
Диагностика последовательных шин CAN
Шина CAN изначально была разработана в 1980-x годах компанией Robert Bosch GmbH как недорогая шина обмена данных между устройствами в окружении c повышенным уровнем помех. Впервые шину CAN в автомобильных системах стала использовать компания Mercedes-Benz в 1992 г. Сегодня почти все производители автомобилей используют контроллеры и сети CAN для управляющих устройств, например, для контроллеров двигателя стеклоочистителей, датчиков дождя, подушек безопасности, замков дверей, распредсистемы двигателя, противоблокировочной тормозной системы, управления трансмиссией и электроподъемников стекол. Благодаря допуску по электрическим помехам, минимальной проводки, отличным функциям по определению ошибок и высокой скорости передачи данных, шина CAN вскоре стала использоваться в других отраслях, например, в области промышленного контроля, морской, медицинской, аэрокосмической и др.
Шина CAN является сбалансированным (разностным) 2-проводным интерфейсом на экранированной витой паре (STP), неэкранированной витой паре (UTP) или на плоском кабеле. B каждом узле используется 9-контактный D-paзъeм. Кодирование бита без возврата к нулю (NRZ) используется c заполнением битов для обеспечения компактности сообщений c минимальным количеством переходов и высокой помехоустойчивостью. Интерфейс CAN используется в схемах асинхронной передачи данных, в которой любой узел может передавать данные в любое время, когда шина не занята. Сообщения передаются на все узлы в сети. Если несколько узлов инициируют сообщения одновременно, для определения сообщения c более высоким приоритетом используется побитное разрешение конфликтов. Имеется четыре типа сообщений: кадр данных, кадр запроса на удаленную передачу (RTR), кадр ошибки и кадр перегрузки. Любой узел шины при определении ошибки передает кадр ошибки, по которому все узлы рассматривают текущее сообщение как неполное и передают сигнал на повторную отправку сообщения. Кадры перегрузки инициируются приемными устройствами и указывают, что устройства не готовы к приему данных. Кадры данных используются для передачи данных, удаленные кадры — для запроса данных. Удаленные кадры и кадры данных управляются стартовым и стоповым битами в начале и конце каждого кадра и включают следующие поля: поле разрешения конфликтов, поле управления, поле данных, поле контрольной суммы и поле подтверждения приема (см. рис. 14).
Рис. 14. Кадр шины CAN Data/Remote (Данные/Удалённый).
— SOF — Кадр начинается с бита начала кадра (SOF)
— Arbitration — Поле разрешения данных включает идентификатор (адрес) и бит запроса на удаленную передачу (RTR), используемый для различения между кадром данных и кадром с запросом данных, называемый удаленным кадром. Идентификатор может иметь стандартный формат (11 бит — версия 2.0B) или расширенный формат (29 бит — версия 2.0B).
— Control — Поле управления состоит из шести битов, включая бит расширения идентификатора (IDE), который используется для различения стандартного кадра CAN 2.0А (идентификатор 11 бит) и расширенного кадра CAN 2.0В (идентификатор 29 бит). Поле управления также включает код длины данных (DLC). DLC представляет собой четырехбитную индикацию количества байтов в поле данных кадра данных или количество байтов, запрашиваемых в удаленном кадре.
— Data — Поле данных состоит из 0-8 байт данных.
— CRC — 15-битный код циклического избыточного контроля и один бит рецессивного разделителя.
— АСК — Поле подтверждения длиной 2 бита. Первый бит — тактовый, передается как рецессивный, затем перезаписывается основными битами, переданными из любого узла, успешно принявшего переданное сообщение. Второй бит — рецессивный разделитель.
— EOF — Семь рецессивных бит, указывающих конец кадра (EOF).
Поле прерывания (INT) состоит из 3 рецессивных бит, указывающих, что шина свободна. Время ожидания шины может быть произвольной длины, включая ноль. Скорость передачи данных — от 5 кбит/c до 1 Мбит/c. Все модули должны поддерживать по меньшей мере скорость передачи 20 кбит/c. Длина кабеля зависит от скорости передачи данных. Как правило, все устройства в системе передают информацию c одной фиксированной скоростью. Максимальная длина линии для низких скоростей передачи данных может составлять тысячи метров. Для скорости 1 Мбит/c, как правило, используются кабели длиной 40 метров. На концах кабеля устанавливаются согласующие резисторы.
Рис. 15. Меню настройки шины CAN.
Модуль последовательного запуска и анализа DPO4AUT0 позволяет использовать эти функции для шины САN. С помощью кнопок B1 и B2 на передней панели можно определить шину CAN простым вводом основных параметров шины, включая тип тестируемого сигнала в шине САN и выбор канала, битовую скорость передачи, пороги и элемент выборки (в виде % от времени прохождения бита) (см. рис. 15). Представим, что требуется выполнить измерение синхронизации, связанной с задержкой между нажатием водителем кнопки опускания окна в двери пассажира и временем выдачи модулем CAN соответствующей команды в двери пассажира, a также времени фактического начала перемещения окна в двери пассажира. Определив идентификатор модуля CAN в двери водителя, а также данные, связанные с командой "опускания окна", можно выполнить точный запуск по нужному кадру данных. Благодаря одновременному тестированию нажатия кнопки на двери водителя и двигателя стеклоподъемника в двери пассажира, измерение синхронизации становится исключительно простым (см. рис. 16).
Рис. 16. Запуск по определенному идентификатору и кадру данных в шине CAN, и декодирование всех сообщений в зарегистрированной осциллограмме.
Белые треугольники на рисунке соответствуют маркерам, установленным на осциллограмме в качестве опорных точек. Эти маркеры добавляются или удаляются с помощью кнопки Set/Clear Mark (Установить/Удалить маркер), расположенной на передней панели осциллографа. Кнопки Previous (Назад) и Next (Далее) на передней панели используются для перехода между маркерами, что облегчает просмотр нужных событий.
Теперь представим, как надо бы было выполнить эту задачу без таких функциональных возможностей. Без запуска в шине CAN пришлось бы вы полнять запуск по нажатию кнопки, регистрировать сигнал достаточно длительное время, затем вручную декодировать кадр за кадром, пока не будет найден правильный кадр. Поиск нужного кадра может занять десятки минут или часов.
Функция запуска в шине CAN осциллографов серии DРO4000 включает следующие типы:
— Начало кадра - запуск по полю SOF.
— Тип кадра - можно выбрать кадр данных, удаленный кадр, кадр ошибки и кадр перегрузки.
— Идентификатор - запуск по 11- или 29-битному значению идентификатора с определением чтения/записи.
— Данные - запуск по 1-8 байтам заданных пользователем данных.
— Отсутствие подтверждения - запуск, если устройство не подтверждает прием.
— Конец кадра - запуск по полю EOF.
Такие типы запуска позволяют без усилий выделить практически все нужные события в шине CAN. Запуск - это только начало. Диагностика часто требует проверки содержимого сообщений до и после события запуска. Простой способ просмотра содержимого нескольких сообщений в зарегистрированной осциллограмме — использование таблицы событий осциллографов серии DPO4000 (см. рис. 17).
Рис. 17. Таблица событий для шины CAN.
B таблице событий представлено декодированное содержание всех сообщений зарегистрированной осциллограммы c метками времени. Это позволяет не только легко просмотреть весь трафик в шине, но и выполнить измерения синхронизации между сообщениями. Таблицы событий доступны для шин I2C и SPI.
Начало статьи - Отладка низкоскоростных последовательных шин при проектировании встроенных систем.
Комментарии