CAN Bus на следах печатной платы вместо кабеля витой пары - моменты, которые следует учитывать
Чтобы сэкономить на системе в одном из моих текущих проектов (без кабелей), я хотел бы удалить кабель 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-слойной печатной плате и как ее экранировать?
Ответы
Я не проектировал специально для шины 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 = мощность.
Если у вас есть медная заливка на других слоях, вы можете связать их с землей с помощью стыковых переходных отверстий. Не направляйте высокоскоростные сигналы параллельно дифференциальной паре, если они не разделены грунтовкой (экранированием). Если высокоскоростные сигналы должны пересекать соседние слои, сделайте их перпендикулярными.

Для разводки дифференциальных линий НЕ следует проектировать их как витую пару ... Перемычки действуют как индукторы, и любое изменение направления обычно вызывает отражения. Итак, что вы хотите и что является оптимальным, - это простая прямая линия.
Обычно вы размещаете дифференциальные линии бок о бок (если нет, это слабое соединение ... что также работает в некоторых случаях), БЕЗ поворотов на 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 м, но тогда вам нужно настроить значения. Оставайтесь со стандартом!