Для того, чтобы понять принципы работы CAN-шины мы решили написать/перевести ряд статей, посвященных этой тематике, как обычно, основываясь на материалах зарубежных источников.
Одним из подобных источников, который, как нам показалось, вполне подходящим образом иллюстрирует принципы работы CAN-шины, стал видеоролик-презентация учебного продукта CANBASIC компании Igendi Engineering (http://canbasic.com).
Также можете прочитать вторую нашу переводную статью Введение в CAN.
Добро пожаловать на презентацию нового продукта CANBASIC, учебной системы (платы), посвященной вопросу функционирования шины КАН (CAN).
Мы начнем с основ построения сети CAN-шины. На схеме приведен автомобиль с его системой освещения.
Показана обычная проводка, в которой каждая лампа напрямую подключена с каким-либо переключателем или контактом педали тормоза.
Теперь аналогичная функциональность показана с применением технологии CAN-шины. Передние и задние световые приборы подключены к контролирующим модулям. Контролирующие модули соединены параллельно с такими же проводами шины.
Этот небольшой пример демонстрирует, что объем электропроводки снижается. Вдобавок ко всему модули управления могут обнаруживать перегоревшие лампы и информировать об этом водителя.
Автомобиль на указанном виде содержит четыре модуля управления и четко отражает построение учебной системы (платы) CANBASIC
В вышеописанном указано четыре узла шины (CAN-узла).
Передний модуль контролирует передние световые приборы.
Узел сигнализации обеспечивает контроль внутренней части автомобиля.
Основной контрольный модуль соединяет все системы транспортного средства для диагностики.
Задний узел контролирует задние световые приборы.
На тренировочной доске CANBASIC вы можете увидеть маршрутизацию (расположение) трех сигналов: «Питание», «CAN-Hi» и «земли», соединяющихся в контрольном модуле.
В большинстве транспортных средств для подключения главного модуля управления к ПК с помощью диагностического программного обеспечения вам нужен OBD-USB конвертер.
Плата CANBASIC уже содержит в себе OBD-USB конвертер и может быть напрямую подключена к ПК.
Питается плата от интерфейса USB, поэтому дополнительные кабели не нужны.
Провода шины используются для передачи множества данных. Как это работает?
Как работает CAN-шина
Эти данные передаются последовательно. Вот пример.
Человек с лампой, передатчик, хочет отправить какую-то информацию человеку с телескопом, получателю (приемнику). Он хочет передать данные.
Для того, чтобы сделать это они договорились, что получатель смотрит за состоянием лампы каждые 10 секунд.
Это выглядит так:
Спустя 80 секунд:
Теперь 8 бит данных были переданы со скоростью 0,1 бит в секунду (т.е. 1 бит в 10 секунд). Это называется последовательной передачей данных.
Для использования этого подхода в автомобильном приложении интервал времени сокращается с 10 секунд до 0,000006 секунды. Для передачи информации посредством изменения уровня напряжения на шине данных.
Для измерения электрических сигналов шины КАН используется осциллограф. Две измерительных площадки на плате CANBASIC позволяют измерить этот сигнал.
Чтобы показать полное CAN-сообщение разрешение осциллографа уменьшается.
В результате одиночные CAN-биты больше не могут быть распознаны. Для решения этой проблемы CANBASIC-модуль оснащен цифровым запоминающим осциллографом.
Мы вставляем модуль CANBASIC в свободный разъем USB, после чего он будет автоматически обнаружен. Программное обеспечение CANBASIC можно запустить прямо сейчас.
Вы можете видеть вид программного осциллографа с прикрепленными значениями битов. Красным показаны данные, переданные в предыдущем примере.
Чтобы объяснить другие части CAN-сообщения мы раскрашиваем CAN-кадр и прикрепляем на него подписи с описанием.
Каждая раскрашенная часть CAN-сообщения соответствует полю ввода того же цвета. Область, отмеченная красным, содержит информацию о пользовательских данных, которая может быть задана в формате битов, полубайтов или шестнадцатиричном формате.
Желтая область определяет количество пользовательских данных. В зеленой зоне может быть установлен уникальный идентификатор.
Синяя область позволяет задать CAN-сообщение для удаленного запроса. Это означает, что будет ожидаться ответ от другого CAN-узла. (Разработчики системы сами рекомендуют не пользоваться удаленными запросами по ряду причин приводящих к глюкам системы, но об этом будет другая статья.)
Многие системы с шиной CAN защищены от помех вторым каналом CAN-LO для передачи данных, который является инвертированным относительно сигнала CAN-HI (т.е. идет тот же сигнал, только с обратным знаком).
Шесть последовательных битов с одинаковым уровнем определяют конец CAN-кадра.
Так совпало, что другие части CAN-кадра могут содержать более пяти последовательных битов с одинаковым уровнем.
Чтобы избежать этой битовой метки, если появляется пять последовательных битов с одинаковым уровнем, в конце CAN-кадра вставляется противоположный бит. Эти биты называют стафф-битами (мусорными битами). CAN-приемники (получатели сигнала) игнорируют эти биты.
С помощью полей ввода могут быть заданы все данные КАН-кадра и поэтому каждое КАН-сообщение может быть отправлено.
Вставленные данные немедленно обновляются в CAN-кадре, в данном примере длина данных будет изменена с одного байта на 8 байтов и сдвинута назад на один байт.
Текст описания показывает, что сигнал поворота будет управляться с помощью идентификатора «2С1» и бит данных 0 и 1. Все биты данных сбрасываются на 0.
Идентификатор установлен в значение «»2С1». Для активации сигнала поворотов бит данных должен быть установлен с 0 на 1.
В режиме «в салоне» вы можете управлять всем модулем с помощью простых щелчков мыши. Данные CAN устанавливаются автоматически в соответствии с желаемым действием.
Лампы поворотников могут быть установлены на ближний свет для работы в качестве ДХО. Яркостью будет управлять широтно-импульсная модуляция (ШИМ), в соответствии с возможностями современной диодной техники.
Теперь мы можем активировать фары ближнего света, противотуманные фары, стоп-сигналы и фары дальнего.
С отключением ближнего света противотуманные фары также отключаются. Логика управления световой системой CANBASIC соответствует автомобилям марки Volkswagen. Особенности зажигания и «возвращения домой» также включены.
С сигнальным узлом вы можете считывать сигнал датчика после инициирующего удаленного запроса.
В режиме удаленного запроса второй CAN-кадр будет принят и показан ниже отправленного CAN-кадра.
Байт данных CAN теперь содержит результат измерения датчика. С приближением к датчику пальца вы можете изменить измеренное значение.
Клавиша паузы замораживает текущий CAN-кадр и позволяет провести точный анализ.
Как уже было показано, различные части CAN-кадра могут быть скрыты.
Кроме того поддерживается скрытие каждого бита в КАН-кадре.
Это очень полезно, если вы хотите использовать представление CAN-кадра в ваших собственных документах, например в листе упражнений.