- Texas Instruments ISO1042 ISO105 SN6505 TPS76350
- Знакомство с CAN
- Необходимость изоляции
- Изоляция
- Защита шины CAN
- Материалы по теме
- Реверс-инжиниринг трафика на шине CAN
- Шина can гальванические развязки
- CAN — репитер
- Гальваническая развязка шины CAN
- Решение на специализированной микросхеме AMIS-42770
- Datasheet
- 🎥 Видео
Видео:Как ГАЛЬВАНИЧЕСКАЯ РАЗВЯЗКА может СПАСТИ ВАШУ ЖИЗНЬ!Скачать
Texas Instruments ISO1042 ISO105 SN6505 TPS76350
Используемые во многих системах для коммуникационных целей интерфейсы CAN уязвимы для высоковольтных бросков напряжения. Однако некоторые устройства могут помочь защититься от этих проблем.
CAN (Controller Area Network – сеть контроллеров) – это очень популярная последовательная шина, широко используемая в автомобилях, средствах промышленной автоматизации и других промышленных приложениях. Более новая усовершенствованная версия, названная CAN-FD (гибкая скорость передачи данных), обеспечивает более высокие скорости и другие улучшения.
Как обнаружили многие разработчики, CAN часто требует электрической изоляции между узлами и защиты от высоковольтных выбросов, которые регулярно происходят в автомобильном и промышленном оборудовании. Некоторые из недавно анонсированных приемопередатчиков CAN теперь поддерживают последнюю спецификацию CAN-FD, и, кроме того, имеют необходимую изоляцию. Решения для защиты могут также быть основаны на внешних дискретных компонентах, подключаемых к шине.
Видео:Шина CAN. Часть 1. Разбираемся как работает CAN bus, разберем кадр данных до "костей".Скачать
Знакомство с 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 байта данных.
Видео:лекция 403 CAN шина- введениеСкачать
Необходимость изоляции
Помимо широкого распространения в автомобильных приложениях, интерфейс CAN используется в системах промышленной автоматизации, драйверах двигателей переменного и постоянного тока, каналах обмена ПЛК, источниках питания телекоммуникационного оборудования, системах отопления и кондиционирования, лифтах, солнечных инверторах и зарядных станциях электрических автомобилей. В некоторых случаях в оборудовании имеются низко- и высоковольтные сегменты, которые должны быть изолированы друг от друга, чтобы защитить низковольтные компоненты от повреждения.
Высоковольтные двигатели, коммутаторы, источники питания и другое оборудование могут генерировать помехи амплитудой в сотни и тысячи вольт. Высоковольтный сигнал, попадающий в низковольтную подсистему, потенциально может уничтожить микроконтроллер. Способом решения этой проблемы является использование изолированных приемопередатчиков и отдельных источников питания с их собственными возвратными землями.
Видео:поиск нерабочей can шины, часть дваСкачать
Изоляция
В современных системах 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 выпускаются различные устройства, как дискретные, так и интегральные.
Видео:Гальваническая развязка для осциллографа, для чего и почему?Скачать
Защита шины CAN
Изолированные системы обеспечивают нормальную защиту микросхем. Однако в некоторых условиях могут возникать проблемы электростатических разрядов (ESD), высокий уровень которых способен повредить приемопередатчик. По этой причине шина должна быть каким-то образом защищена. При этом крайне важно, чтобы выбранное устройство защиты интерфейса было совместимо с приемопередатчиком.
Наилучшим решением для защиты является использование супрессоров (TVS-диодов), подключенных между каждой линией шины и землей (Рисунок 2). Эти диоды фактически представляют собой два встречно включенных стабилитрона с высоким пробивным напряжением. Максимально допустимое напряжение на выводах приемопередатчиков зависит от типа микросхемы.
Приемопередатчик ISO105 компании TI выдерживает напряжения в диапазоне от −27 В до +40 В. ISO1042 рассчитан на броски напряжения до ±70 В. Максимальное пробивное напряжение супрессоров должно быть меньше этих значений, но больше рабочего напряжения сигналов на шине. Обычно два логических уровня шины составляют менее половины напряжения питания «0» и напряжения питания «1».
Не забывайте, что добавление TVS-диодов обеспечивает защиту от ESD, но одновременно добавляет к шине емкость, ограничивающую верхние скорости передачи данных. Необходимо, чтобы дополнительная емкость была меньше 50 пФ.
Видео:Что такое ГАЛЬВАНИЧЕСКАЯ РАЗВЯЗКА? Передача энергии и сигнала без проводов... Понятное объяснение!Скачать
Материалы по теме
Перевод: AlexAAN по заказу РадиоЛоцман
Видео:Гальваническая развязка UART или ADuM1201Скачать
Реверс-инжиниринг трафика на шине 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 гальванические развязки
Видео:Компьютерная диагностика авто. K-линия и 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 компонентов упомянутых в статье:
🎥 Видео
STM32 CAN шина. Часть 1. Настройка и странности HALСкачать
Гальваническая развязка осциллографа Hantek DSO4202Скачать
Как проверить CAN шину Используем симулятор ElectudeСкачать
CAN Шина. Что такое протокол КАН. Часть 1Скачать
Как управлять автомобилем через CAN-шину?Скачать
Сканер не подключается: поиск неисправности CAN шины (видео 57)Скачать
ИГЛА замыкание CAN (кан) шины - Миф или реальность?Скачать
Энкодеры на CAN шине, по протоколу CANopenСкачать
Гальваническая развязка USB своими рукамиСкачать
Вебинар: Как найти любые данные из CAN-шины любого автомобиля?Скачать
Что такое CAN шинаСкачать