Barramento CAN em traços de PCB em vez de cabo de par trançado - pontos a serem considerados
Para economizar custos no sistema em um dos meus projetos atuais (sem cabos), gostaria de eliminar o cabo CAN e adicionar traços ao PCB (um par da esquerda para a direita para conectar os conectores + 1 par stub ao CAN Transceptor em cada placa). Como eu tenho uma cadeia contínua de PCBs conectados por um conector com pinos livres, isso parece bastante razoável de se fazer. Estou planejando implementar o CAN com uma velocidade bastante baixa (125kbits/seg).
Cada PCB se parece mais ou menos com isso:

O sistema é montado assim e tem cerca de 50m de comprimento!

Eu li algumas outras perguntas (por exemplo , aqui , aqui e aqui ) e artigos e notas de aplicação (como este , este e este ). Mas estou longe de entendê-lo completamente.
Eu tenho algumas perguntas para isso:
A primeira é sobre a impedância da linha de transmissão.
- O padrão de 120 Ohm é impedância diferencial ou terminação única para cada CAN_H e CAN_L?
- como atingir a impedância de 120 Ohm em uma placa de 4 camadas? (Eu uso empilhamento de 4 camadas padrão JLCPCB e com a calculadora deles não chego a 120 Ohm para terminação única e para diferencial só chego perto com traço de 3,5 mil + espaçamento de 4 mil - que está próximo do mínimo absoluto).
- Posso/devo adicionar componentes extras nos rastros do barramento, para atingir os 120Ohm?
Sobre blindagem:
- Apesar do tópico de impedância, na especificação CAN é recomendado um cabo de par trançado blindado. Devo, nesse caso, rotear melhor as linhas CAN em uma das camadas internas e protegê-la por um plano GND acima, ao lado e abaixo?
Em relação ao par trançado:
- Faria sentido modelar os traços no PCB semelhante a um par trançado (por exemplo, algo assim
No geral, as perguntas podem ser resumidas em:
Qual largura de traço, espaçamento em qual camada me dá o melhor resultado para traços CAN longos em um PCB de 4 camadas e como faço para protegê-lo?
Respostas
Eu não projetei especificamente com barramento CAN, mas implementei pares diferenciais USB e linhas de transmissão de terminação única WiFi (2,4 Ghz).
Seu problema parece uma linha de transmissão diferencial clássica. 125kbits/seg deve ser bastante indulgente. 1Mb/s é mais difícil.
Se você tiver o luxo de uma placa de 4 camadas, roteie definitivamente os sinais CAN nas camadas internas. Isso lhe dará o equivalente a um cabo blindado. As camadas externas devem ser planos de terra ou de energia. Os planos de terra e energia devem ser acoplados capacitivamente entre si, tornando-os aproximadamente equivalentes para fins de blindagem.
Sua ideia de traçados cruzados para criar um par "trançado" é intrigante, mas suspeito que isso lhe causará mais dores de cabeça: 1) reflexões de sinal em cada via 2) cada via enterrada é um ponto de defeito potencial para a fabricação da placa. # 2 depende da qualidade da sua casa de bordo. Eu implementaria um par diferencial tradicional (Zo=120ohms).
Para calcular o espaçamento da linha de transmissão, descobri que o kit de ferramentas do Saturn PCB é bastante útil:http://saturnpcb.com/pcb_toolkit/Observarei que, para atingir sua impedância característica de 120, você provavelmente precisará de traços mais largos.
De acordo com este documento da TI, uma incompatibilidade nos comprimentos dos cabos pode causar problemas de reflexão com o barramento CAN.https://www.ti.com/lit/an/slla279a/slla279a.pdf.
Lembre-se de fornecer resistores de terminação de 120ohm (através das linhas de barramento) na extremidade de transmissão e no último receptor no barramento.
Conector: deve estar bom, desde que os contatos estejam limpos. Separe os pinos do can bus de outros pinos de alta velocidade com um pino de aterramento no meio. Pessoalmente, eu também incluiria blocos de solda ou um conector CAN caso você precise recorrer ao fio entre as placas de circuito. Nesse caso, eu colocaria resistores de 0 ohm em série com as linhas CAN no conector principal. Isso lhe dará a flexibilidade de desabilitar as linhas CAN no conector e voltar ao fio. Projetar um plano B é barato ao projetar a placa de circuito.
A largura e o espaçamento do traço dependem da sua pilha de PCB. Use o kit de ferramentas do Saturn PCB com a guia "Differential Pairs".
Eu usaria um empilhamento como
L1=Terra, L2=linhas de sinal/transmissão, L3=Potência, L4=sinal ou
L1=Terra, L2=linhas de sinal/transmissão, L3=sinal, L4=Potência.
Se você tiver preenchimento de cobre em outras camadas, poderá amarrá-las ao solo com vias de costura. Não roteie sinais de alta velocidade em paralelo com o par diferencial, a menos que eles estejam separados por um preenchimento de solo (blindagem). Se os sinais de alta velocidade devem se cruzar em camadas adjacentes, torne-os perpendiculares.

Para traçar linhas diferenciais você NÃO deve projetá-las como fios de par trançado... Vias agem como indutores e qualquer mudança de direção normalmente causa reflexões. Portanto, o que você deseja e o que é ideal é uma linha reta simples.
Normalmente, você traça as linhas diferenciais lado a lado (se não o fizer, é um acoplamento frouxo ... o que também funciona em alguns casos), SEM curvas de 90 °, você precisa manter os dois traços no mesmo comprimento (quase) e os stubs curtos ( no caso podemos falar de alguns cm - acho que você pode encontrar os valores no padrão). A distância entre as linhas e a largura dos traços precisa ser calculada, portanto, com o material da placa de circuito impresso e a espessura da camada, você mantém a impedância de 120 Ohm necessária...
você pode tentarhttps://sourceforge.net/projects/atlc/ouhttp://www.hdtvprimer.com/KQ6QV/atlc2.htmlpara calcular linhas de transmissão diferenciais.
O Kicad também vem com uma Calculadora de Linha de Transmissão, ou o bom e velhohttp://www.hp.woodshot.com/HP AppCad... Você até encontra coisas para as calculadoras programáveis normais.
Se você seguir regras para sistemas muito mais sofisticados como LVDS, o CAN nunca deve decepcioná-lo - é bastante robusto mesmo em ambientes muito hostis.
https://www.ti.com/lit/an/snla302/snla302.pdf
Não verifiquei, mas pelo que me lembro, esses números estão OK Para uma certa velocidade de ônibus, você tem o comprimento da linha de ônibus e o comprimento de um stub ... acho que em um PCB você nunca terá problemas com o CAN
- 1 MBit/s 40m 0,3m
- 500 kBit/s 100m 0,8m
- 250 kBit/s 200 m 1,5 m
- 100 kBit/s 500m 3,0m
- 57 kBit/s 1000m 5,0m
- 38 kBit/s 2000 m 7,0 m
PS: Como afirmou Mr_Engineer: Você precisa encerrar. Mas ambas as extremidades (é um barramento real, então qualquer nó escuta e transmite)! ambos com 120 Ohm (são 60Ohm em dc, mas 120Ohms para a frequência média/dominante do barramento...) - temos um produto com apenas um lado terminado e funciona para mais de 20m de comprimento de linha, mas aí você precisa ajustar os valores. Fique com o padrão!