Используемые во многих системах для коммуникационных целей интерфейсы CAN уязвимы для высоковольтных бросков напряжения. Однако некоторые устройства могут помочь защититься от этих проблем.
CAN (Controller Area Network – сеть контроллеров) – это очень популярная последовательная шина, широко используемая в автомобилях, средствах промышленной автоматизации и других промышленных приложениях. Более новая усовершенствованная версия, названная CAN-FD (гибкая скорость передачи данных), обеспечивает более высокие скорости и другие улучшения.
Как обнаружили многие разработчики, CAN часто требует электрической изоляции между узлами и защиты от высоковольтных выбросов, которые регулярно происходят в автомобильном и промышленном оборудовании. Некоторые из недавно анонсированных приемопередатчиков CAN теперь поддерживают последнюю спецификацию CAN-FD, и, кроме того, имеют необходимую изоляцию. Решения для защиты могут также быть основаны на внешних дискретных компонентах, подключаемых к шине.
Видео:лекция 403 CAN шина- введениеСкачать
Знакомство с CAN
CAN – это стандарт последовательного интерфейса, разработанный компанией Robert Bosch и одобренный Собществом автомобильных инженеров (SAE) еще в 1980-х годах. С тех пор, благодаря своей гибкости и надежности, он стал широко использоваться в транспортных средствах и многих промышленных приложениях. Топология интерфейса представляет собой дифференциальную шину с экранированной или неэкранированной витой парой, к которой может быть подключено до 127 узлов. Все узлы являются приемопередатчиками, способными посылать и получать данные. Выпускаются стандартные микросхемы приемопередатчиков, но многие микроконтроллеры имеют интегрированный интерфейс CAN (Рисунок 1).
Рисунок 1. | Топология шины CAN, к которой подключены микроконтроллер с интерфейсом CAN и другие приемопередающие узлы. |
Данные передаются кадрами, состоящими из 8 байт данных, адресного поля, поля контрольной суммы CRC и других служебных полей. Скорость передачи данных не фиксирована и, начинаясь с 5 кбит/с, может достигать 1 Мбит/с. Максимальная длина шины при скорости 1 Мбит/с равна 40 м. Используется множественный доступ к шине с прослушиванием несущей и обнаружением коллизий (CSMA/CD). CAN имеет ряд разновидностей, таких как CAN-FD, CANopen и SAE J1939. Используются также обозначения ISO-11898 и ISO-11519, присвоенные Международной организацией по стандартизации (ISO).
CAN-FD (ISO-11898-1) – это новейшая версия, которая увеличивает скорость передачи данных до 5 Мбит/с и выше, что делает систему более адаптированной к приложениям реального времени, требующим более низкой задержки и большего детерминизма. Кадр большего размера теперь вмещает 64 байта данных.
Видео:Как ГАЛЬВАНИЧЕСКАЯ РАЗВЯЗКА может СПАСТИ ВАШУ ЖИЗНЬ!Скачать
Необходимость изоляции
Помимо широкого распространения в автомобильных приложениях, интерфейс CAN используется в системах промышленной автоматизации, драйверах двигателей переменного и постоянного тока, каналах обмена ПЛК, источниках питания телекоммуникационного оборудования, системах отопления и кондиционирования, лифтах, солнечных инверторах и зарядных станциях электрических автомобилей. В некоторых случаях в оборудовании имеются низко- и высоковольтные сегменты, которые должны быть изолированы друг от друга, чтобы защитить низковольтные компоненты от повреждения.
Высоковольтные двигатели, коммутаторы, источники питания и другое оборудование могут генерировать помехи амплитудой в сотни и тысячи вольт. Высоковольтный сигнал, попадающий в низковольтную подсистему, потенциально может уничтожить микроконтроллер. Способом решения этой проблемы является использование изолированных приемопередатчиков и отдельных источников питания с их собственными возвратными землями.
Видео:Шина CAN. Часть 1. Разбираемся как работает CAN bus, разберем кадр данных до "костей".Скачать
Изоляция
В современных системах CAN необходимо изолировать как сигналы, так и питание. Изоляция реализуется в приемопередатчике, но ее эффект пропадет, если блоки питания по разные стороны изолирующего барьера будут просто соединены друг с другом.
Во многих новых приемопередатчиках CAN используется емкостная изоляция между входами и выходами данных и цепями подключения шины. Два слоя двуокиси кремния образуют два последовательно соединенных конденсатора, через которые передаются данные между схемами, расположенными на двух разных кристаллах, соединенных внутри корпуса.
Читайте также: Что за шины dunlop winter maxx sj8
Примером может служить ISO1042 – выпущенный компанией Texas Instruments новый изолированный приемопередатчик CAN, обеспечивающий емкостную изоляцию и защиту практически любых промышленных и автомобильных конструкций. Устройство, отвечающее требованиям стандартов физического уровня ISO 11898-2 и ISO 11898-5, поддерживает стандарты CAN до 1 Мбит/с и CAN-FD до 5 Мбит/с. Защита шины выдерживает напряжения ±70 В и синфазные напряжения ±30 В. Диапазон напряжений питания составляет от 1.7 В до 5.5 В. Поддерживаются логические уровни 1.8, 2.5, 3.3 и 5.0 В. Микросхема ISO1042 выпускается в корпусах SOIC-8 или SOIC-16.
Реализация разделенного источника обеспечивает дополнительный уровень изоляции. Один из подходов с использованием устройства Texas Instruments показан на Рисунке 2. Микросхема генератора/драйвера SN6505 формирует 100-килогерцовый сигнал для трансформатора, выходное напряжение которого, преобразованное до требуемого уровня, затем выпрямляется и фильтруется. Трансформатор обеспечивает необходимую изоляцию питания. Отфильтрованное напряжение стабилизируется LDO регулятором (таким, скажем, как TPS76350) и питает приемопередатчик CAN. Узловые приемопередатчики и выводы интерфейса CAN микроконтроллера подключаются к шине через дифференциальные линии CANL и CANH.
Рисунок 2. | Так выглядит изолированный узел CAN с изолированным источником питания и изолированным приемопередатчиком. |
Для упрощения процесса проектирования изолированных подсистем CAN и изоляции сигналов и питания CAN выпускаются различные устройства, как дискретные, так и интегральные.
Видео:Гальваническая развязка UART или ADuM1201Скачать
Защита шины CAN
Изолированные системы обеспечивают нормальную защиту микросхем. Однако в некоторых условиях могут возникать проблемы электростатических разрядов (ESD), высокий уровень которых способен повредить приемопередатчик. По этой причине шина должна быть каким-то образом защищена. При этом крайне важно, чтобы выбранное устройство защиты интерфейса было совместимо с приемопередатчиком.
Наилучшим решением для защиты является использование супрессоров (TVS-диодов), подключенных между каждой линией шины и землей (Рисунок 2). Эти диоды фактически представляют собой два встречно включенных стабилитрона с высоким пробивным напряжением. Максимально допустимое напряжение на выводах приемопередатчиков зависит от типа микросхемы.
Приемопередатчик ISO105 компании TI выдерживает напряжения в диапазоне от −27 В до +40 В. ISO1042 рассчитан на броски напряжения до ±70 В. Максимальное пробивное напряжение супрессоров должно быть меньше этих значений, но больше рабочего напряжения сигналов на шине. Обычно два логических уровня шины составляют менее половины напряжения питания «0» и напряжения питания «1».
Не забывайте, что добавление TVS-диодов обеспечивает защиту от ESD, но одновременно добавляет к шине емкость, ограничивающую верхние скорости передачи данных. Необходимо, чтобы дополнительная емкость была меньше 50 пФ.
Видео:Гальваническая развязка для осциллографа, для чего и почему?Скачать
Материалы по теме
Перевод: AlexAAN по заказу РадиоЛоцман
Видео:Что такое ГАЛЬВАНИЧЕСКАЯ РАЗВЯЗКА? Передача энергии и сигнала без проводов... Понятное объяснение!Скачать
Реверс-инжиниринг трафика на шине CAN
Необработанный сигнал шины CAN
Шина CAN (Controller Area Network) стала стандартом в автомобилестроении: все новые автомобили обязаны поддерживать CAN (с 2001 в Европе и с 2008 в США). Кроме автомобилей, CAN применяется и в широком ряде других устройств. Производители диагностического оборудования для CAN рекламируют его применение, кроме разнообразной автомобильной техники, в мотоциклах, автопогрузчиках, судах, шахтных поездах, батискафах, беспилотных самолетах и пр. Давайте разберемся, что из себя представляет CAN.
В автомобилях используется несколько CAN; например, в Ford Focus таких шин четыре — три высокоскоростных (500 kbps) для управления мотором, тормозами, приборной панелью и т.п., и одна низкоскоростная (125 kbps) для управления дверьми, фарами, подушками безопасности, аудиосистемой, кондиционером и всем прочим. Подключившись к CAN, можно имитировать сигналы от любых устройств в автомобиле — например, управлять кондиционером с приложения на телефоне или накручивать одометр без движения автомобиля. Подключив к шине Arduino и реле, можно управлять с приборной панели дополнительной парковочной камерой. Даже стартапы, работающие над беспилотными автомобилями, такие как Voyage, начинают создание прототипа с того, что в обычном серийном автомобиле подключаются к CAN и учатся имитировать сигналы от педалей и руля.
Читайте также: Шины хэнкок новинка зимние
Для подключения к CAN в автомобиле обычно возле руля имеется разъем OBD-II (On-Board Diagnostics).
Адаптеры OBD2-USB для подключения компьютера к CAN стоят от $5, и позволяют отслеживать весь трафик внутри автомобиля. Иногда разъем OBD-II защищен «аппаратным фаерволом», позволяющим принимать пакеты от устройств, подключенных к CAN, но не позволяющим передавать пакеты обратно на шину. В этом случае достаточно вывинтить разъем, и подключиться к проводам CAN вместо него.
Каждый пакет, передаваемый по шине CAN, состоит из ID передающего устройства (11 либо 29 бит), и до 8 байт передаваемых данных. Трафик, проходящий по шине при включении зажигания, может выглядеть как-то так:
Для анализа трафика CAN существует большое число инструментов — как коммерческих, так и OpenSource. Пакет can-utils для Linux включает утилиту cansniffer , которая отображает для каждого CAN ID только последний отправленный пакет, и тем самым позволяет отслеживать изменения показаний каждого датчика на шине:
Для реверс-инжиниринга трафика CAN сингапурские исследователи, из доклада которых я взял этот трейс, записали на видео приборную доску подопытного автомобиля, и затем соотнесли изменения на приборной доске с одновременными изменениями в трафике. Определив таким образом CAN ID датчика скорости и формат передаваемых им данных, они научились «подделывать» его пакеты, передавая на спидометр и на тахометр показания, не соответствующие действительности.
Надо понимать, что параллельно с передачей «поддельных» пакетов по шине продолжают передаваться и настоящие сигналы от датчика скорости. Чтобы тахометр показывал сфабрикованные показания, надо отслеживать передачу по шине настоящих показаний, и каким-либо образом их подавлять — например, сразу после обнаружения передачи CAN ID датчика скорости физически «глушить» шину, закорачивая линии данных. Более простой, чисто программный метод подавления настоящих показаний — сразу же после их передачи, пока тахометр еще не успел отреагировать, передавать «поддельные» пакеты. Например, следующий простой шелл-скрипт отслеживает передачу с CAN и сразу же после нее передает сфабрикованный пакет при помощи утилиты cansend из состава все тех же can-utils:
Даже хотя все устройства в автомобиле подключены к CAN, далеко не все их функции управляются через CAN. Например, на CAN в Ford Escape передаются сигналы о степени нажатия педалей газа и тормоза — но используются эти сигналы только блоком ABS, тогда как приводы дроссельной заслонки и тормозов соединены с педалями напрямую, минуя CAN.
C точки зрения безопасности ни о какой уязвимости в докладе сингапурцев речи не идет, потому что для передачи «поддельных» CAN-пакетов нужен физический доступ к шине. Кроме того, пакеты могут быть защищены контрольной суммой — например, в автомобилях Toyota последний байт каждого пакета должен равняться сумме всех предыдущих (по модулю 256). Кроме этого, в Toyota для защиты от нежелательных пакетов используется фильтрация получателем — например, игнорируются повороты руля более чем на 5% от текущего значения.
Тем не менее исследователям безопасности удавалось получить к CAN и удаленный доступ: вначале на небольшом расстоянии — через уязвимости в Bluetooth-модуле, подключенном к той же самой шине; а затем через сотовую сеть Sprint, через которую внедорожники нескольких американских производителей получали данные о пробках на дорогах. Исследователи, продемонстрировавшие перехват управления Jeep Cherokee с расстояния в несколько миль, получили от Управления перспективных исследовательских проектов Министерства обороны США (DARPA) вознаграждение в 80 тысяч долларов. С тех пор многие автопроизводители объявили о собственных bounty-программах, обещающих выплаты от $1500 за каждую обнаруженную уязвимость. Таким образом, реверс-инжиниринг трафика на шине CAN может не только добавить вашему автомобилю новые возможности, но и существенно пополнить ваш кошелек.
Читайте также: Можно ли устанавливать разные шины по осям
Видео:Кан шина, что это? Поймет школьник! принцип работыСкачать
Шина can гальванические развязки
Видео:поиск нерабочей can шины, часть дваСкачать
CAN — репитер
Разработчику использующему в своих проектах CAN шину рано или поздно придется использовать в своих проекта топологию шины типа «звезда», или включить на шину больше устройств, чем позволяет нагрузочная способность примененного приемопередатчика, или использовать гальванически развязанную CAN шину. Я расскажу как решить эту задачу используя репитер CAN шины. Репитер можно разработать несколькими способами, под катом способ первый — на специализированных микросхемах.
Гальваническая развязка шины CAN
Обычно требуется два вида гальванической развязки:
- Гальваническая развязка шины CAN и приемопередатчика от управляющего контроллера (рис. 1).
- Гальваническая развязка одного сегмента шины от другого сегмента (рис. 2).
Рис. 1. Изоляция CAN от MCU
На рис. 1 показан самый простой вариант, так как сигналы CAN между приемопередатчиком (CAN1…3) и микроконтроллерами (MCU) являются однонаправленными и их достаточно пропустить через оптроны. При этом не забываем, что скорость шины CAN обратно-пропорциональна времени задержки распространения сигнала по всей шине, т.е. оптроны желательно ставить быстродействующие. Например 6N137. Если требуется решение в одном корпусе — достаточно применить микросхему ISO1050 или IL41050.
Не буду вдаваться в подробности по поводу гальванически развязанных приемопередатчиков ISO1050, IL41050, поскольку выполняемые ими функции итак понятны. Тем не мнее предоставлю возможность скачать их datasheet в конце статьи.
Рис. 2. Изоляция сегментов CAN шины
На рис. 2 показан более сложный вариант изоляции. В этом случае невозможно подключить к разным сегментам шины приемопередатчики и соединить их RX-TX пины, так как это приведет к защелкиванию приемопередатчиков в доминантном состоянии. В этом случае применяют либо однокристальные решения описанные ниже, либо самостоятельно сконструированные хабы с гальваничекой развязкой, либо устанавливают микроконтроллер с двумя CAN на «борту» и обвешивают его необходимыми гальваническими развязками.
Решение на специализированной микросхеме AMIS-42770
Это решение что называется «в лоб». Сейчас имеется целый класс микросхем, одна из которых называется AMIS-42770. Эта микросхема является двухканальным контроллером CAN шины, основные характеристики можно найти на многих сайтах рунета, тем не менее повторим их:
- напряжение питания: 5 В (4,75В…5,25В);
- напряжение питания CAN (синфазное напряжение на входе): ±45 В;
- напряжение дифференциального выхода: 1,5 В…3 В;
- скорость передачи данных: до 1 Мбит/с;
- рабочий диапазон температур: -40 C…+125 C;
- корпус: SOIC-20;
- не содержит свинца.
На рис. 3 показана блок-схема AMIS-42770:
Рис. 3. Блок схема микросхемы AMIS-42770
На основе одной микросхемы AMIS-42770 не получится реализовать гальванически развязанное решение, но поскольку у микросхемы есть логические выходы Text и Rint, то используя две микросхемы, возможно построить гальванически развязанный интерфейс, что показано на рис. 6.
Типовые включения микросхемы показаны ниже:
Рис. 4. Двухканальный приемо-передатчик CAN шины.
Двухканальное включение микросхемы на рис. 4. Обычно используется для построения топологии шины CAN типа «звезда».
Рис. 5. CAN репитер на микросхеме AMIS-42770
Классический репитер CAN шины можно построить по схеме на рис. 5.
Рис. 6. Гальванически развязанная CAN шина на AMIS−42770
Datasheet
Ссылки на datasheet компонентов упомянутых в статье:
📺 Видео
Как проверить CAN шину Используем симулятор ElectudeСкачать
Компьютерная диагностика авто. K-линия и CAN шинаСкачать
Гальваническая развязка осциллографа Hantek DSO4202Скачать
CAN Шина. Что такое протокол КАН. Часть 1Скачать
STM32 CAN шина. Часть 1. Настройка и странности HALСкачать
Энкодеры на CAN шине, по протоколу CANopenСкачать
ИГЛА замыкание CAN (кан) шины - Миф или реальность?Скачать
Гальваническая развязка USB своими рукамиСкачать
Сканер не подключается: поиск неисправности CAN шины (видео 57)Скачать
Как управлять автомобилем через CAN-шину?Скачать
Вебинар: Как найти любые данные из CAN-шины любого автомобиля?Скачать
Что такое CAN шинаСкачать