Por que não implementar 1 Gbps, quando tudo o que preciso é de 20 Mbps?

27

fundo

Estou trabalhando com um cliente em um grande projeto que exige que um chip de rede personalizado seja projetado para resolver os requisitos de transferência de dados no projeto. A rede pretende enviar pequenos pacotes a alguns centímetros de um PCB para outro através de um único cabo de par trançado. Iremos projetar e especificar o protocolo de rede, e outra empresa será responsável pela implementação do silício.

Eu estimo que a taxa de dados de 20 Mbps entre os nós lidará facilmente com a quantidade de dados que precisa ser enviada, com bastante espaço para a cabeça caso a quantidade de dados aumente no futuro.

Problema

O cliente está me perguntando por que estou especificando apenas 20 Mbps. Por que não algo como 1Gbps? Isso não seria melhor? Intuitivamente, acho que aumentar a taxa de dados massivamente além do necessário seria uma má idéia. Inicialmente, pensei que o cabeamento precisaria ser blindado (o que eu não quero), mas olhando para as categorias de cabos Ethernet, vejo que a Gigabit Ethernet pode ser executada no cabo Cat 6, que não precisa ser blindado.

Outras restrições

  • O projeto é desesperadamente limitado por espaço, e não temos espaço para coisas como magnetismo, a menos que seja um componente muito pequeno (0603 máx.).
  • Os cabos precisam ser o mais finos e flexíveis possível.
  • O dispositivo funcionará com a energia do plug-in, portanto, não há um requisito específico de baixa energia.

Questão

Quais são os problemas, em termos de design de silício, cabeamento e qualquer outra coisa, que possam ser enfrentados em 1Gbps, que não seriam tão ruins em 20Mbps? Devo seguir a sugestão do meu cliente de implementar a rede em 1 Gbps ou devo insistir em implementar apenas o que é necessário?

Como estamos sob uma NDA rigorosa, não posso fornecer muitos detalhes sobre nossos requisitos. Mas, por favor, deixe um comentário se precisar de esclarecimentos.

Rocketmagnet
fonte
3
Se o aplicativo precisar de uma taxa de transferência de 20 Mbps, provavelmente um padrão mais antigo de 100 Mbps seria suficiente, considerando toda a sobrecarga e tal. Portanto, a questão será do custo de implementação, disponibilidade futura de peças. Você verificou os custos correspondentes? Além disso, o que você quer dizer com "design de silício"? Você está planejando projetar seu próprio silício?
Ale..chenski
9
1Gbps pode ser um exagero ... 100Mbps pode ser um próximo passo mais adequado em velocidade .... se o cliente estiver preocupado em proteger o dispositivo para o futuro, talvez explore o uso da compactação de dados ... o cliente a quantidade de dados taxa de transferência é conseguido com 20Mbps ... mostrar-lhes um vídeo em HD youtube e explicar que a largura de banda é de apenas 8 Mbps ou assim
jsotola
12
Por que você deseja um protocolo de "rede" para uma conexão ponto a ponto?
O fóton
20
Projetar "um protocolo de rede" a partir do zero não parece uma idéia particularmente sábia. Pode ser bastante caro para o design, implementação da camada física, validação da camada física e, em seguida, camada de protocolo, todos os softwares associados e validação dos mesmos, etc. etc. Você já ouviu falar do HSIC, uma espécie de USB sobre 1.2VLVCMOS?
Ale..chenski 20/05/19
20
Por favor, junte uma demonstração com CIs de Ethernet da 100M sem magnetismo para demonstrar ao usuário e a si próprio o que pode ser feito com peças padronizadas prontas para uso. Não faça silício personalizado, protocolos personalizados, sem entender por que o padrão não funciona.
21418 Neil_UK

Respostas:

24

Alguns motivos:

Poder

Velocidade mais rápida significa mais potência. Você não precisa apenas de circuitos analógicos mais rápidos, que consumirão mais energia, todos os componentes eletrônicos ao seu redor precisam ser mais rápidos. Seus sistemas digitais, travas, gerenciamento de relógio etc. Se você obtiver esses 1 Gbps usando a sinalização multinível, agora precisará de ADCs e DACs melhores. Pode ser necessário começar a lidar com a filtragem mais complexa. Você pode começar a exigir o FEC, que também precisa acompanhar.

Tamanho do chip

Mais rápido significa mais acontecendo. Você precisa de uma melhor estabilidade do relógio, o que significa circuitos maiores. Você precisa de um tempo melhor, o que significa um sistema de recuperação de relógio mais complexo. Pode ser necessário mudar para o DSP para fazer a equalização do canal. Seu FEC potencialmente necessário precisa de espaço no chip.

Sensibilidade ao ambiente

Se você mudar de algumas dezenas de megabaud para o que for necessário para gigabit, ficará muito mais sensível ao meio ambiente. Pequenas incompatibilidades que podem ser imperceptíveis em algumas dezenas de MHz tornam-se rascunhos ressonantes em frequências mais altas. As reflexões podem começar a causar desempenho intermitente. Um cabo cortado devido a abuso ao longo dos anos (não conheço o ambiente de aplicativos do seu produto) pode ser bom para velocidades mais baixas, mas causa um desempenho ruim quando você sobe.

Esforço de design

Penso que é óbvio por todas as questões adicionais discutidas acima que o tempo e o esforço de criar um link de comunicação mais rápido são significativos. Isso por si só deve ser motivo suficiente.

EMI

Uma velocidade mais rápida significa que atender aos requisitos de EMI pode ser mais difícil.

Joren Vaes
fonte
5
@Rocketmagnet: Também vale ressaltar que o 802.3 1000Base-T gig-E real sobre Cat5e envia sinais em ambas as direções ao mesmo tempo em 4 pares de fios, além de usar uma codificação em vários níveis, para manter as frequências baixas para os mesmos 125MHz como 100Base-T . Portanto, cada receptor precisa subtrair o que seu próprio transmissor está enviando, para obter apenas o sinal enviado pela outra extremidade.
Peter Cordes
2
@ PeterCordes - Isso é muito interessante, vou analisar isso. Mas parece uma complexidade consideravelmente maior que o LVDS básico.
Rocketmagnet
2
@Rocketmagnet: sim, o GigE parece uma escolha muito ruim para isso. Há uma razão pela qual os transceptores GigE usam mais energia que 100M.
Peter Cordes
24

Os sinais TTL (terminação única, não terminada) podem lidar facilmente com 20 Mbps ou mais - veja o SPI, por exemplo. Se você estiver apenas alguns centímetros, o cabo de fita e os conectores IDC (ou algum tipo de backplane) o levarão de placa em placa.

1 Gbps coloca você no campo de ter que lidar com traços, conectores e cabos controlados por impedância. Os receptores precisarão usar técnicas PLL / DLL para manter a sincronização e separar o relógio / dados, enquanto que na velocidade mais lenta, a lógica síncrona normal será suficiente. O excesso de 50 × e as dores de cabeça adicionais simplesmente não valem a pena, se você tiver certeza de que 20 Mbps serão suficientes para o futuro próximo.


Certa vez, projetei (há 25 anos ou mais) um protocolo de barramento serial personalizado para controle e status de placa a placa entre as placas de um rack de telecomunicações. Tipo de cruzamento entre I 2 C e SPI - sinais unidirecionais como SPI, mas endereços de dispositivos incorporados como I 2 C.

Dave Tweed
fonte
Supondo que já pretendemos usar traços, cabos e conectores controlados por impedância, existem outros problemas?
Rocketmagnet
11
Os receptores precisarão usar técnicas PLL / DLL para manter a sincronização e separar o relógio / dados. Na velocidade mais lenta, a lógica síncrona normal será suficiente.
Dave Tweed
10
Isso depende de detalhes sobre sua tecnologia de implementação que você provavelmente não tem a liberdade de divulgar. Se você estiver usando FPGAs (como está implícito no uso da tag), observe que todos os principais fornecedores possuem soluções enlatadas para comunicação chip a chip em várias velocidades. É aconselhável usá-lo para sua camada física e implementar seu protocolo personalizado.
Dave Tweed
11
Projetando um bloco PLL não é trivial e comprar o IP pode facilmente ajustar para trás um $ 50-100k
Mike
11
@Tustique Você acha que é trivial projetar seu próprio PLL em silício?
User253751
14

A pergunta óbvia é: "1 Gbps significa 1000BASET Ethernet?" Se é isso que o cliente está pensando, sua exigência de que "não temos espaço para coisas como magnetismo" exclui imediatamente. A Ethernet usa magnetismo na camada física, e quando eu projetei uma interface há alguns anos, os magnéticos faziam parte de um cubo de aproximadamente 1 polegada.

Você diz que está usando FPGAs, mas não diz de quem. Se você optar pelo Xilinx, saiba que os modelos atuais oferecem suporte nativo ao LVDS, o que pareceria ideal para o seu propósito. Os primeiros sistemas LVDS (televisores de alta definição) rodavam a 122 Mbps, e a tecnologia pode ultrapassar um Gbps se você realmente precisar. Sendo diferencial, e supondo que suas duas placas não usem áreas flutuantes, a imunidade ao ruído é excelente.

Quanto à sua escolha específica de frequências de clock, adicionar mais espaço do que você acha que precisa é uma daquelas decisões que podem salvar seu bacon no futuro, então eu não descartaria escolher algo como 100 MHz, mas isso é com você. Você pode familiarizar seu cliente com a lei de Roberge (Jim Roberge era um conhecido professor de engenharia elétrica no MIT há algumas décadas): "Aqueles que pedem mais largura de banda do que precisam merecem o que recebem". É verdade que ele estava falando de servo-sistemas, mas o princípio permanece bom em uma variedade notavelmente ampla de disciplinas.

WhatRoughBeast
fonte
7
A Ethernet não precisa do magnetismo se você estiver fazendo uma conexão não padrão. É bastante confiável se implementado sem o isolamento.
Jack Creasey
11
@JackCreasey, mas alguém ainda pode chamá-lo de Ethernet ?
Mels
2
Certamente não é compatível com IEEE 802.3. Ele não se conecta a um ponto final compatível, mas eu disse que não seria compatível sem o magnetismo. Duvido que passasse no conjunto de testes para sinais na conexão do backplane, mas deveria passar por tudo o mais, incluindo jitter. Eu ainda chamaria de Ethernet, mas você não pode.
Jack Creasey
2
FYI: o único resultado do Google para "Quem pede mais largura de banda do que precisa merece o que recebe". é essa resposta.
User253751
11

O aplicativo que você descreve não faz sentido pular diretamente para uma solução de silício personalizada. As taxas de dados que você antecipa podem ser facilmente manipuladas pela tecnologia FPGA com preço moderado e o FPGA pode ser programado para implementar o protocolo especial se você realmente acredita que esse protocolo é necessário.

Com muito mais frequência, você deve considerar uma camada física padrão e, em seguida, construir o protocolo personalizado. Para uma largura de banda líquida de 20 Mbps do canal de comunicação, você deve planejar uma sobrecarga de protocolo de alguma quantia, porque o enquadramento, a codificação de verificação de erros e a sincronização consomem parte de sua largura de banda. Então, talvez considere uma largura de banda bruta mais alta para acomodar essa sobrecarga.

Depois de ter seu projeto testado, você pode ir ao fornecedor do FPGA e fazer com que ele produza um design de chip rígido a partir da programação do FPGA. Essa abordagem atenua todos os riscos de desenvolvimento inicial e reduz os custos gerais de NRE em uma quantidade tremenda ao longo do "mergulho no silício personalizado apenas porque parece legal".

Michael Karas
fonte
Essa é exatamente a rota que pretendemos seguir.
Rocketmagnet
11

A questão real é: por que projetar um protocolo quando tudo já existe.

Para soluções Ethenet, você usa 10/100 e não 1GbE porque ainda é um pouco mais barato e muito mais fácil de fazer o layout. A propósito, a Ethernet pode funcionar sem magnetismo. Mas exige MAC, que pode ser um IC extra. Ou você tem um em um microcontrolador?

20 Mbps é algo que se encaixa em Rs485 ou outra camada, que é ainda mais barata e mais simples. Os pares trançados vêm com todos os tipos de cabos, mais ou menos flexíveis, com conectores ou apenas soldados ao seu PCB.

Ah, o mais importante. É mais fácil estragar tudo com 1Gb. Mas se eles precisam de espaço para um crescimento adicional, isso limita menos.

Conclusão: você precisa entender os requisitos do sistema.

Gregory Kornblum
fonte
10

Eu sugeriria que a rota mais simples com a melhor probabilidade de sucesso e menos sobrecarga de software seria implementar uma conexão Ethernet de 100 Mbps. Você pode implementar isso sem nenhum magnetismo envolvido quando as distâncias são pequenas.

Aqui está um começo com informações sobre o controlador Intel 8255 PCI-Ethernet e uma nota de aplicação sobre conexões sem o magnético.
Não estou sugerindo que você use o 8255, mas você pode obter IP (10/100 / 1000Mbps) para qualquer um dos FPGAs que provavelmente usará com muita facilidade e está bem depurado.

Supondo que você tenha um processador no mix, o suporte a um controlador Ethernet padrão é uma maneira muito baixa de esforço de software para implementar redes ponto a ponto.
Usamos um monte desse tipo de conexões ponto a ponto em placas-mãe especializadas da Intel, elas eram fáceis de depurar e muito confiáveis.

Jack Creasey
fonte
4
Embora a ethernet possa fazer o protocolo, a ethernet 100 Base possui um requisito de distância mínima de 1 metro (isso aconteceu há alguns anos usando uma implementação de ethernet sobre backplane). O OP mencionou que a distância era de alguns centímetros, o que exclui a Ethernet na camada física.
Peter Smith
11
@ PeterSmith, a distância mínima NÃO se aplica à Ethernet sem os magnéticos. Isso funcionará apenas em alguns centímetros.
Jack Creasey
5

As respostas aqui são técnicas, dou uma perspectiva de engenharia de requisitos:

Minha opinião é simples

  • Você precisa de pelo menos 20 Mbps para fazê-lo funcionar; portanto, não especifique 20, mas "20 ou mais" para o aplicativo.

  • qualquer hardware mais rápido também cumpre sua exigência

  • se o HW mais rápido for mais barato / mais fácil de desenvolver devido aos padrões existentes, seu requisito também poderá ser cumprido por esses.

  • Se o cliente quiser mais, tente descobrir se há algo por trás dele (pode ser que ele já planeje atualizações e queira permanecer compatível entre as placas ao trocar)

Sascha
fonte
3

Potência, integridade do sinal e tempo. Eu trabalhei em um chip com uma interface de 25 gbps e isso significava uma taxa de clock de 1,6 GHz e uma tonelada de energia. Se pudéssemos rodar em 19,2, a taxa de clock teria sido de 1,2 GHz. Mais de 200ps de margem extra por período de relógio, isso teria sido uma grande ajuda.

Eu nunca fiz o design da placa, mas espero que 20 Mbps não seja um problema. 1 Gbps ainda não é tão difícil, mas muito mais difícil que 20 Mbps.

Matt
fonte