В узле CAN-шины есть три основных компонента:
Контроллер CAN-шины реализует все низкоуровневые функции сетевого протокола ISO 11898–1, в то время как трансивер обеспечивает связь с физическим уровнем. Для разных физических уровней требуются разные трансиверы, например, для высокоскоростной CAN, низкоскоростной отказоустойчивой CAN или высокоскоростной CAN с переменной скоростью передачи данных.
В типичной реализации контроллер CAN-шины и микропроцессор объединяются в микроконтроллер с поддержкой CAN. На рынке доступны внешние контроллеры CAN-шины с интерфейсом SPI, в основном производства Microchip, но они часто могут добавлять ненужные затраты и сложность.
В этой статье мы рассмотрим проектирование схемы от трансивера до разъема CAN-шины. Пришло время засучить рукава и спроектировать нашу схему CAN-шины!
Все трансиверы CAN-шины работают похожим образом, поскольку они расположены между микроконтроллером (или FPGA), реализующим контроллер CAN-шины, и самой CAN-шиной. Тем не менее, есть несколько различий, которые вам следует тщательно рассмотреть.
Быстрый поиск в соответствующей категории Octopart показывает, что ведущими производителями приемопередатчиков CAN-шины являются, в порядке убывания по количеству предлагаемых ИС, NXP Semiconductors, Microchip, Texas Instruments, Maxim Integrated, Analog Devices и ST Microelectronics.
Все эти приемопередатчики выглядят похоже, но отличаются по своим функциям и производительности.
Первые приемопередатчики CAN-шины на рынке имели очень мало защиты от событий ЭСР (электростатический разряд). Для защиты всех входов/выходов требовалось использование внешних компонентов.
К счастью, сейчас это уже не так. Вот несколько случайных ИС и их устойчивость к ЭСР (модель человеческого тела) на штырьках шины:
Номер детали |
Производитель |
Устойчивость к ЭСР HBM |
ST Microelectronics |
6кВ |
|
Infineon |
6кВ |
|
NXP Semiconductor |
8кВ |
|
Linear Technology |
25кВ |
|
Maxim Integrated |
22кВ |
Более высокая устойчивость к ЭСР может позволить вам сэкономить на внешней защите, но вы должны знать, что несколько дополнительных центов, потраченных на качественные диоды TVS, могут значительно повысить надежность.
Если ваше приложение ограничено по пространству и вам не нужно справляться с большим количеством ЭСР, то все-в-одном - это то, что нужно. В моем случае я выбрал внешний TVS и более доступный трансивер.
Большинство трансиверов на рынке работают на 5В, но также чрезвычайно популярны ИС, разработанные для 3,3В. Более низкие напряжения питания невозможны без использования преобразователей постоянного тока в постоянный. Некоторые ИС, такие как MAX14883E от Maxim Integrated, включают в себя вход питания логического уровня, позволяющий обеспечить совместимость с устройствами на 1,8В независимо от напряжения питания трансивера.
В моем случае мой МК работает на 3,3В, поэтому я также выберу это напряжение для трансиверов CAN-шины.
Все трансиверы CAN-шины высокой скорости могут работать до 1Мбит/с в небольших сетях. Трансиверы CAN-FD могут работать на скорости до 5Мбит/с, но многие из них ограничены более низкими скоростями, такими как 2Мбит/с.
Конечная скорость передачи данных системы будет ограничена ёмкостью шины, распределением идентификаторов CAN-шины и типом передаваемых кадров CAN. В худшем случае обычно эффективная скорость передачи составляет одну треть от максимальной.
Изолированный приёмопередатчик CAN-шины может потребоваться либо для выполнения требований безопасности. Например, введение гальванической изоляции может защитить низковольтную часть ваших схем в случае, если шина окажется под воздействием опасных напряжений. Та же изоляция также может улучшить коммуникацию, разрывая земляные петли и позволяя более значительные различия в потенциале земли между узлами.
Конечно, изолированные приёмопередатчики CAN-шины потребуют аналогично изолированного источника питания.
Многие приёмопередатчики включают вход выбора режима, который может быть использован для перевода микросхемы в режим низкого потребления энергии и отключения передатчика. Как правило, приёмник остаётся активным, и вывод RXD может быть использован для активации прерывания пробуждения в микроконтроллере.
Вход выбора режима иногда также служит для управления наклоном сигнала, когда он подтягивается вверх или вниз через резистор минимум в несколько кОм. Снижение наклона сигнала, хотя это и может ограничить полосу пропускания, позволяет приёмопередатчику ограничить количество производимых электромагнитных помех.
Все приемопередатчики, соответствующие стандарту ISO 11898–2, должны выдерживать постоянные напряжения на CANH и CANL в диапазоне от -3В до +32В относительно земли без поломки, выдерживать переходные процессы от -150В до 100В и работать при напряжении общего режима шины между -2В и +7В.
Практически все интегральные схемы на рынке превосходят эти требования, идет неформальное соревнование, кто может продемонстрировать наиболее значительные показатели.
Вот несколько примеров:
Номер детали |
Производитель |
Постоянное напряжение на CANH и CANL |
ST Microelectronics |
-5В до +36В |
|
Infineon |
-40В до +40В |
|
NXP Semiconductor |
-58В до +58В |
|
Linear Technology |
+60В до +60В |
|
Maxim Integrated |
+63В до +63В |
Напряжения выше 50В теперь стандартны, поскольку многие транспортные средства используют гибридные силовые установки, работающие на 48В, и приемопередатчик должен выдерживать короткое замыкание шины на более высоковольтную шину питания системы.
Нет строгих правил относительно того, сколько узлов можно разместить в сети, но одним из наиболее критических параметров будет входное сопротивление между CANH и CANL на вашем приемопередатчике.
Высокое входное сопротивление будет оказывать незначительное влияние на шину и позволит подключить большее количество узлов.
Некоторые приемопередатчики реализуют обширные функции защиты, такие как:
Большинство приемопередатчиков CAN-шины включают режим только прослушивания, который передает сигнал TXD на RXD, не управляя при этом шиной. Эта функция часто используется для автоматического определения скорости передачи данных шины.
В своем проекте я выбрал TJA1051, главным образом потому что я экономлю, и это одна из самых доступных микросхем на рынке. Страницу продукта можно найти здесь.
Используя панель "Поиск по номеру производителя", я сразу нашел модели компонентов, включая печатную плату и 3D, и разместил их на схеме. Модель была автоматически загружена из облачных библиотек Altium 365™.
Не нужно говорить, что нам понадобятся локальные конденсаторы обхода, верно?
Кроме того, несколько дополнительных конденсаторов малых номиналов, обычно от 40 до 100 пФ, на линиях CANH и CANL, подключенных к земле, могут помочь поглотить энергию ЭСР и улучшить устойчивость к ЭМИ. Как всегда, с увеличением емкости шины снижается скорость шины, увеличивается нагрузка на выходную стадию передатчика и увеличивается потребление энергии.
CAN-шину следует терминировать на каждом конце резистором на 120 Ом. Конечно, мы могли бы правильно рассчитать мощность (стандарт 1/4 Вт, 1/2 Вт, если мы параноики), установить наш милый маленький резистор и закончить на этом. Но почему делать все просто?
Более сложная техника, принятая почти во всех проверенных промышленных платах CAN-шины, которые я видел до сих пор, - это разделенное завершение.
При разделенном завершении используются два резистора по 60 Ом, соединенных последовательно, в сумме дающих 120 Ом. Электрический узел между двумя резисторами подключается к земле через конденсатор, обычно на 4.7нФ.
Значение конденсатора было рассчитано для получения частоты среза -3дБ на основной частоте сети.
В моем случае сеть должна иметь скорость передачи данных 1мбит/с. Исходя из худшего сценария, когда сеть передает последовательность чередующихся битов (01010101), сигнал будет квадратной волной частотой 500кГц, или равной половине скорости передачи данных.
Зная сопротивление в 60 Ом, мы можем таким образом рассчитать конденсатор.
Если нам нужно приблизительно определить значение нашего конденсатора, немного меньшее значение будет меньше мешать нашему ценному сигналу. Следовательно, 4.7нФ, что является наиболее широко принятым значением.
Если вам нужна библиотека пассивных компонентов, я всем сердцем рекомендую Celestial Library от Марка Харриса. Она бесплатная, обширная и тщательно отобранная.
Если ваша система не подвержена сильным электростатическим разрядам (ESD), встроенной защиты в микросхеме приемопередатчика может быть вполне достаточно.
Диоды TVS (Transient Voltage Suppressor) являются популярным выбором из-за их низкой эквивалентной параллельной емкости.
Другие устройства защиты от перенапряжения, такие как MOV, часто обладают высокой паразитной емкостью, которая может ограничивать скорость передачи данных по шине, особенно для шин с большим количеством узлов.
На рынке доступно несколько диодов TVS, специально разработанных для CAN-шины, например, NUP2105L от ON Semiconductor, который я решил использовать в этом проекте.
Что касается приемопередатчика, я разместил модель одним кликом из библиотек Altium 365, используя панель поиска производителей, без необходимости рисовать символ схемы и посадочное место.
Если бы ваша схема не была защищена, весь ток ЭМИ пошел бы прямо в ваш приемопередатчик от вашего разъема, а затем обратно через земляную плоскость. Вот что ток хочет делать, потому что это путь наименьшего сопротивления.
Все ваши компоненты защиты должны быть расположены как можно ближе к этому пути, чтобы избежать увеличения площади петли. Кроме того, вся защита должна быть расположена как можно ближе к разъему и краю платы, чтобы предотвратить проникновение помех в остальную часть схемы.
Естественно, невозможно уместить все в непосредственной близости к разъему, поэтому мы должны определить приоритеты. Общее правило - размещать компонент, который должен справляться с «худшим» источником ЭМИ в первую очередь.
В нашем случае диоды TVS должны справляться с событиями высокой скорости и высокого тока. Поскольку быстрые импульсы богаты компонентами высокой частоты, если не контролировать их проникновение на наши платы, они будут связываться с каждым доступным проводником и нарушать работу.
Поэтому TVS устанавливается первым.
Если бы у нас не было терминационных резисторов посередине, общий дроссель помех установили бы на втором месте.
На нашей примерной печатной плате все еще есть место для улучшения. Диод TVS можно было бы повернуть на 180 градусов, чтобы еще больше уменьшить площадь петли ЭСР. Конденсаторы C5 и C6 также можно было бы повернуть на 180 градусов и немного сдвинуть вправо.
В каждом руководстве по разводке печатных плат написано что-то вроде "земляные плоскости это" или "земляные плоскости то", и если вы хотите держать электромагнитные помехи подальше от уязвимых мест ваших плат, от этого не уйти.
Под любым сигналом, который вы заземляете, должна быть земляная плоскость, чтобы путь с наименьшим импедансом был как можно короче. Ваши диоды TVS должны разряжать импульсы непосредственно на земляную плоскость, соединенную с экраном кабеля (если таковой имеется) через соединение с низкой индуктивностью.
Не имеет большого смысла тратить все наши кровно заработанные деньги на конденсаторы, если их эффект будет нивелирован индуктивностью земляных дорожек.
В этом дизайне я использовал виас на окраине площадки. В отличие от техники виас в площадке, это не требует дополнительного шага в производстве печатной платы и, следовательно, не увеличивает стоимость. Виас должен быть закрыт; в противном случае, паяльная паста потечет внутрь, и площадка не будет должным образом смочена.
Документацию по свойствам виас в Altium Designer можно найти здесь.
Допустим, мы теперь потратили часы на чтение статей, написанных сомнительными личностями, изучение трансиверов, тестирование и подтверждение нашей идеальной подсхемы CAN-шины. Что теперь?
Первый шаг - это проектирование вашей схемы в одном схематическом документе, используя порты для входов и выходов, аналогично тому, как вы бы делали это для иерархического проектирования.
Используя панель обозревателя, создайте новую папку «Управляемые схематические листы».
После создания вашей папки, все пользователи в вашей организации получат к ней доступ, и вы можете приступить к загрузке схематического листа.
Теперь вы можете разместить ваш управляемый схематический лист в любом проекте.
Ваш новый управляемый схематический лист будет отличаться зеленым символом «повторного использования».
Если вы хотите знать, почему все синее вместо желтого и красного, проверьте мою предыдущую статью о стилизации дизайна.
Необязательное «слабое» завершение, например, 1.3 кОм, может помочь улучшить устойчивость к ЭМИ узлов с длинным расстоянием ответвления. Однако то же сопротивление способствует нагрузке на сеть, сокращая количество узлов, уменьшая окончательное номинальное сопротивление шины и снижая максимальную скорость.
Если вам не ограничены средства и защита входов для вас превыше всего, стоит рассмотреть добавление второго уровня защиты:
MOV (варистор на основе оксида металла) или GDT (газоразрядная трубка), чтобы "поглотить" большее количество энергии, чем может справиться TVS.
Некоторое устройство ограничения тока между MOV/GDT и приемопередатчиком, такое как резистор с высоким импульсным сопротивлением, варистор или TBU® (особый полупроводниковый варистор, продаваемый компанией Bourns).
Однако вам всегда следует помнить, что эти устройства могут увеличить эквивалентную ёмкость вашей шины и снизить скорость передачи данных, а также увеличить потребление тока.
Стандартные дроссели - самый распространенный тип фильтра, используемый на CAN-шине, и они отлично работают, но у них есть некоторые недостатки, которые вам следует учитывать.
Дроссели общего режима могут создавать резонансы с паразитной емкостью шины CAN-bus, что приводит к увеличению шума в нескольких конкретных частотных диапазонах. Этот эффект может сделать ЭМП характеристики устройств CAN-bus непредсказуемыми, поскольку индуктивность в дросселях общего режима редко указывается точно, а паразитная емкость может сильно варьироваться в зависимости от длины кабеля. Если используется незащищенный кабель, емкость может варьироваться в зависимости от близости кабеля к заземленным металлическим поверхностям.
Как мы все знаем, дроссели общего режима ведут себя как индуктивности в общем режиме. Ну да. Некоторые условия неисправности, такие как короткое замыкание на питание или землю, могут вызвать высокие переходные токи общего режима. В некоторых случаях перенапряжение, создаваемое индуктивностью дросселя общего режима, может повредить передатчики CAN-bus. Эти перенапряжения могут быть довольно неприятными для диагностики, поскольку они создаются после защиты от перенапряжения, которая обычно размещается на краю платы.
Третий недостаток дросселей… они могут быть дорогими. Высокоскоростные дифференциальные сигналы требуют очень низкой утечки тока.
Некоторые производители интегральных схем, в частности Texas Instruments, продвигают изолированные и высокоустойчивые к ЭМП устройства для сетей CAN-bus без дросселей.
Мне они очень нравятся, поэтому я решил выбрать дроссель общего режима, специально разработанный для приложений CAN-шины.
Должно быть, я влюблен в CAN-шину. Благодаря ее неограниченной гибкости и высокой устойчивости к электромагнитным помехам, она, без сомнения, один из самых захватывающих стандартов в мире.
С Altium Concord Pro вы можете без проблем делиться своими схематическими листами внутри организации, что позволяет повторно использовать дизайн и минимизировать инженерные усилия для запуска новых продуктов.
Остались вопросы? Звоните эксперту из Altium.