CAN Bus на следах печатной платы вместо кабеля витой пары - моменты, которые следует учитывать

Aug 16 2020

Чтобы сэкономить на системе в одном из моих текущих проектов (без кабелей), я хотел бы удалить кабель CAN и добавить следы на печатную плату (одна пара слева направо для подключения разъемов + 1 пара шлейфа к CAN Приемопередатчик на каждой плате). Поскольку у меня в любом случае есть непрерывная цепочка печатных плат, соединенных разъемом со свободными контактами, это кажется вполне разумным. Я планирую реализовать CAN с довольно низкой скоростью (125 кбит / с).

Каждая печатная плата выглядит примерно так:

Система настроена вот так и имеет длину около 50 метров!

Я прочитал еще пару вопросов (например, здесь , здесь и здесь ), а также статьи и примечания к приложениям (например, this , this и this ). Но я еще далек от того, чтобы полностью это понять.

У меня есть пара вопросов по этому поводу:

Первый касается импеданса линии передачи.

  • Стандарт 120 Ом - это дифференциальный импеданс или отдельный конец для каждого CAN_H и CAN_L?
  • как достичь импеданса 120 Ом на 4-х слойной плате? (Я использую стандартный 4-слойный стек JLCPCB , и с их калькулятором я не достигаю 120 Ом для несимметричного сигнала, а для дифференциального я приближаюсь только с 3,5 мил следа + 4 мил интервала - что близко к их абсолютному минимуму).
  • Могу ли я / должен добавить дополнительные компоненты к дорожкам шины, чтобы достичь 120 Ом?

Относительно экранирования:

  • Несмотря на тему импеданса, в спецификации CAN рекомендуется использовать экранированную витую пару. Должен ли я в этом случае лучше провести линии CAN на одном из внутренних слоев и экранировать его плоскостью GND сверху, сбоку и снизу?

По витой паре:

  • Имеет ли смысл моделировать дорожки на печатной плате аналогично витой паре (например, что-то вроде этого

В целом вопросы можно свести к следующему:

Какая ширина трассы, интервал на каком слое дает лучший результат для длинных трассировок CAN на 4-слойной печатной плате и как ее экранировать?

Ответы

1 Mr_Engineer Aug 22 2020 at 02:05

Я не проектировал специально для шины CAN, но я реализовал дифференциальные пары USB и несимметричные линии передачи WiFi (2,4 ГГц).

Ваша проблема выглядит как классическая дифференциальная трансмиссия. 125 кбит / сек должно быть довольно щадящим. 1Мб / сек жестче.

Если у вас есть роскошь четырехслойной платы, определенно маршрутизируйте сигналы CAN на внутренние слои. Это даст вам эквивалент экранированного кабеля. Внешние слои должны быть заземленными или электрическими. Плоскости заземления и питания должны быть связаны друг с другом емкостным соединением, что делает их примерно эквивалентными для целей экранирования.

Ваша идея пересечения трасс для создания «витой» пары интригует, но я подозреваю, что это вызовет у вас еще больше головной боли: 1) отражения сигнала на каждом переходном отверстии 2) каждое скрытое переходное отверстие является потенциальным дефектом для производства плат. №2 зависит от качества вашего пансионата. Я бы реализовал традиционную дифференциальную пару (Zo = 120 Ом).

Для расчета расстояния между линиями передачи я обнаружил, что набор инструментов Saturn PCB весьма полезен: http://saturnpcb.com/pcb_toolkit/ Замечу, что для достижения вашего характеристического импеданса 120 вам, вероятно, потребуются более широкие трассы.

Согласно этому документу TI несоответствие длины кабеля может вызвать проблемы с отражением на шине CAN. https://www.ti.com/lit/an/slla279a/slla279a.pdf.

Не забудьте предусмотреть согласующие резисторы 120 Ом (через линии шины CAN) на передающем конце и последнем приемнике на шине.

Разъем: все должно быть в порядке, пока контакты чистые. Отделите штифты шины CAN от других штифтов высокоскоростного двигателя с помощью штифта заземления между ними. Лично я бы также включил паяльные площадки или разъем CAN на случай, если вам понадобится вернуться к проводу между печатными платами. Если это так, то я бы поставил резисторы 0 Ом последовательно с линиями CAN на главном разъеме. Это даст вам возможность отключить линии CAN на разъеме и снова переключиться на провод. Разработка плана B при раскладке монтажной платы обходится недорого.

Ширина и интервал дорожек зависят от стека вашей печатной платы. Используйте набор инструментов Saturn PCB с вкладкой «Differential Pairs».

Я бы использовал стек вроде

L1 = земля, L2 = линии сигнала / передачи, L3 = мощность, L4 = сигнал или

L1 = земля, L2 = сигнал / линии передачи, L3 = сигнал, L4 = мощность.

Если у вас есть медная заливка на других слоях, вы можете связать их с землей с помощью стыковых переходных отверстий. Не направляйте высокоскоростные сигналы параллельно дифференциальной паре, если они не разделены грунтовкой (экранированием). Если высокоскоростные сигналы должны пересекать соседние слои, сделайте их перпендикулярными.

1 schnedan Aug 22 2020 at 03:30

Для разводки дифференциальных линий НЕ следует проектировать их как витую пару ... Перемычки действуют как индукторы, и любое изменение направления обычно вызывает отражения. Итак, что вы хотите и что является оптимальным, - это простая прямая линия.

Обычно вы размещаете дифференциальные линии бок о бок (если нет, это слабое соединение ... что также работает в некоторых случаях), БЕЗ поворотов на 90 °, вам нужно, чтобы обе дорожки были одинаковой длины (почти), а шлейфы были короткими ( в случае, можно ли говорить о каких-то сантиметрах - думаю, можно найти значения в стандарте). Расстояние между линиями и ширину дорожек необходимо рассчитать, чтобы с учетом материала печатной платы и толщины слоя вы поддерживали требуемый импеданс 120 Ом ...

Вы можете попробовать https://sourceforge.net/projects/atlc/ или же http://www.hdtvprimer.com/KQ6QV/atlc2.html для расчета дифференциальных линий передачи.

Kicad также поставляется с калькулятором линии передачи или старым добрым http://www.hp.woodshot.com/ HP AppCad ... Вы даже найдете вещи для обычных программируемых калькуляторов.

Если вы следуете правилам для гораздо более сложных систем, таких как LVDS, CAN никогда не должен вас подвести - он довольно надежен даже в очень суровых условиях.

https://www.ti.com/lit/an/snla302/snla302.pdf

Не проверял, но насколько я помню, эти числа в порядке. Для определенной скорости шины у вас есть длина шины и длина одного шлейфа ... думаю, на печатной плате у вас никогда не будет проблем с CAN

  • 1 Мбит / с 40 м 0,3 м
  • 500 кбит / с 100 м 0,8 м
  • 250 кбит / с 200 м 1,5 м
  • 100 кбит / с 500 м 3,0 м
  • 57 кбит / с 1000 м 5,0 м
  • 38 кбит / с 2000 м 7,0 м

PS: Как сказал Mr_Engineer: вам нужно прекратить работу. Но оба конца (это настоящая шина, поэтому любой узел слушает и передает)! оба на 120 Ом (это 60 Ом при постоянном токе, но 120 Ом для средней / доминирующей частоты шины ...) - у нас есть продукт с только одной оконечной стороной, и он работает для линии длиной более 20 м, но тогда вам нужно настроить значения. Оставайтесь со стандартом!