Fondo
Estoy trabajando con un cliente en un proyecto grande que requiere un chip de red personalizado para ser diseñado para resolver los requisitos de transferencia de datos dentro del proyecto. La red está destinada a enviar paquetes pequeños a unas pocas pulgadas de una PCB a otra a través de un solo cable de par trenzado. Diseñaremos y especificaremos el protocolo de red, y otra compañía será responsable de la implementación del silicio.
Estimo que la velocidad de datos de 20Mbps entre nodos hará frente fácilmente a la cantidad de datos que deben enviarse, con mucho espacio para la cabeza en caso de que la cantidad de datos aumente en el futuro.
Problema
El cliente me pregunta por qué estoy especificando solo 20Mbps. ¿Por qué no algo como 1 Gbps? ¿No sería eso mejor? Intuitivamente, siento que aumentar la velocidad de datos masivamente más allá de lo que se necesitaría es una mala idea. Inicialmente, pensé que el cableado tendría que estar blindado (lo cual no quiero), pero al mirar las categorías de cable Ethernet, veo que Gigabit Ethernet puede ejecutarse en el cable Cat 6, que no necesita blindaje.
Otras restricciones
- El proyecto tiene un espacio desesperadamente limitado, y no tenemos espacio para cosas como el magnetismo, a menos que sea un componente muy pequeño (0603 máx.).
- Los cables deben ser lo más delgados y flexibles posible.
- El dispositivo funcionará con alimentación enchufable, por lo que no hay un requisito particular de baja potencia.
Pregunta
¿Cuáles son los problemas, en términos de diseño de silicio, cableado y cualquier otra cosa, que se puedan enfrentar a 1 Gbps, que no serían tan malos a 20 Mbps? ¿Debo seguir la sugerencia de mi cliente de implementar la red a 1 Gbps, o debería insistir en implementar solo lo que se requiere?
Estamos bajo estricta NDA, por lo que no puedo dar demasiados detalles sobre nuestros requisitos. Pero por favor deje un comentario si necesita aclaraciones.
fuente
Respuestas:
Algunas razones:
Poder
Una velocidad más rápida significa más potencia. No solo necesita circuitos analógicos más rápidos, que consumirán más energía, sino que todos sus dispositivos electrónicos que los rodean deben ser más rápidos. Sus sistemas digitales, sus pestillos, gestión de reloj, etc. Si obtiene ese 1 Gbps mediante la señalización multinivel, ahora necesita mejores ADC y DAC. Es posible que deba comenzar a lidiar con un filtrado más complejo. Podría comenzar a requerir FEC, que también necesita mantenerse al día.
Tamaño de la viruta
Más rápido significa más cosas. Necesita una mejor estabilidad del reloj, lo que significa circuitos más grandes. Necesita una mejor sincronización, lo que significa un sistema de recuperación de reloj más complejo. Es posible que deba cambiar a DSP para ecualizar el canal. Su FEC potencialmente necesaria necesita espacio en chips.
Sensibilidad al medio ambiente
Si cambia de unas pocas decenas de megabaudios a lo que sea necesario para gigabits, se volverá mucho más sensible al medio ambiente. Pequeños desajustes que pueden pasar desapercibidos a unas pocas decenas de MHz se convierten en trozos resonantes a frecuencias más altas. Las reflexiones pueden comenzar a causar un rendimiento intermitente. Un cable con muescas debido al abuso a lo largo de los años (no conozco el entorno de aplicación para su producto) puede estar bien para velocidades más bajas, pero puede causar un rendimiento deficiente cuando sube.
Esfuerzo de diseño
Creo que es obvio por todos los problemas adicionales que discutí anteriormente que el tiempo y el esfuerzo de diseñar un enlace de comunicación más rápido es significativo. Esto solo debería ser una razón suficiente.
EMI
Una velocidad más rápida significa que cumplir con los requisitos de EMI podría ser más difícil.
fuente
Las señales TTL (unipolares, no terminadas) pueden manejar fácilmente 20 Mbps o más; mire SPI, por ejemplo. Si solo va unas pocas pulgadas, el cable plano y los conectores IDC (o una placa posterior de algún tipo) lo llevarán de placa a placa.
1 Gbps te lleva al reino de tener que lidiar con trazas, conectores y cables controlados por impedancia. Los receptores necesitarán usar técnicas PLL / DLL para mantener la sincronización y separar el reloj / datos, mientras que a una velocidad más lenta, la lógica síncrona normal será suficiente. El exceso de 50 × y los dolores de cabeza adicionales simplemente no valen la pena, si está seguro de que 20 Mbps serán suficientes en el futuro previsible.
Una vez diseñé (hace unos 25 años) un protocolo de bus serie personalizado para el control de placa a placa y el estado entre placas en un estante de telecomunicaciones. Una especie de cruce entre I 2 C y SPI: señales unidireccionales como SPI, pero direcciones de dispositivo integradas como I 2 C.
fuente
La pregunta obvia es: "¿1 Gbps significa 1000BASET Ethernet?" Si eso es lo que está pensando el cliente, su requisito de que "no tenemos espacio para cosas como el magnetismo" lo descarta de inmediato. Ethernet usa imanes en la capa física, y cuando diseñé una interfaz hace algunos años, los imanes formaban parte de un cubo de aproximadamente 1 pulgada.
Dices que estás usando FPGA, pero no dices de quién. Si va a utilizar Xilinx, debe tener en cuenta que los modelos actuales son compatibles de forma nativa con LVDS, lo que parecería ideal para su propósito. Los primeros sistemas LVDS (televisores de alta definición) funcionaban a 122 Mbps, y la tecnología puede superar los Gbps si realmente lo necesita. Siendo diferencial, y suponiendo que sus dos tableros no estén usando terrenos flotantes, la inmunidad al ruido es excelente.
En cuanto a su elección específica de frecuencias de reloj, agregar más margen de lo que cree que necesita es una de esas decisiones que pueden salvar su tocino en el futuro, por lo que no descartaría elegir algo como 100 MHz, pero eso depende de usted. Puede familiarizar a su cliente con la Ley de Roberge (Jim Roberge fue un conocido profesor de ingeniería eléctrica en el MIT hace unas décadas): "Aquellos que piden más ancho de banda del que necesitan merecen lo que obtienen". Por supuesto, estaba hablando de servosistemas, pero el principio sigue siendo bueno en una amplia gama de disciplinas.
fuente
La aplicación que describe no tiene sentido saltar directamente a una solución de silicio personalizada. Las velocidades de datos que anticipa pueden manejarse fácilmente con la tecnología FPGA de precio moderado y el FPGA puede programarse para implementar el protocolo especial si realmente cree que ese protocolo es necesario.
Con mucha más frecuencia, debería considerar una capa física estándar y luego construir el protocolo personalizado además de eso. Para un ancho de banda de canal de comunicación neto de 20 Mbps, debe planificar una sobrecarga de protocolo de cierta cantidad porque el encuadre, la codificación de verificación de errores y la sincronización consumen parte de su ancho de banda. Entonces, tal vez considere un ancho de banda bruto más alto para acomodar esta sobrecarga.
Una vez que haya probado su diseño, puede dirigirse al proveedor de FPGA y hacer que produzcan un diseño de chip duro a partir de la programación FPGA. Este enfoque mitiga todos los riesgos de desarrollo temprano y reduce los costos generales de NRE en una cantidad tremenda sobre la "inmersión en el silicio personalizado solo porque parece genial".
fuente
La pregunta real es, ¿por qué diseñar un protocolo cuando todo ya existe?
Para las soluciones de Ethenet, usted toma 10/100 y no 1GbE porque todavía es un poco más barato y mucho más fácil de diseñar. Por cierto, Ethernet puede funcionar sin magnetismo. Pero sí requiere MAC, que puede ser IC adicional. ¿O tienes uno en un microcontrolador?
20Mbps es algo que se ajusta a Rs485 o una capa similar, que es aún más barata y simple. Los pares trenzados vienen con todo tipo de cables, más o menos flexibles, con conectores o simplemente soldados a su PCB.
Ah, lo más importante. Es más fácil equivocarse con 1Gb. Pero si necesitan espacio para un mayor crecimiento, limita menos.
En pocas palabras: debe comprender los requisitos de su sistema.
fuente
Sugeriría la ruta más simple con la mayor probabilidad de éxito y la menor sobrecarga de software sería implementar una conexión Ethernet de 100Mbps. Puede implementar esto sin ningún magnetismo involucrado cuando las distancias son pequeñas.
Aquí hay un comienzo con información sobre el controlador Intel 8255 PCI-Ethernet , y una nota de aplicación sobre conexiones sin el magnetismo.
No estoy sugiriendo que use el 8255, pero puede obtener IP (10/100 / 1000Mbps) para cualquiera de los FPGA que probablemente usará muy fácilmente, y está bien depurado.
Suponiendo que tiene un procesador en la mezcla, admitir un controlador Ethernet estándar es una forma muy baja de esfuerzo de software para implementar redes punto a punto.
Utilizamos un montón de este tipo de conexiones punto a punto en placas base especializadas en Intel, eran fáciles de depurar y muy confiables.
fuente
Las respuestas aquí son técnicas, doy una perspectiva de ingeniería de requisitos:
Mi punto de vista sobre esto es simple
Necesita al menos 20 Mbps para que funcione, así que no especifique 20 sino "20 o más" para la aplicación.
cualquier hardware más rápido también cumple con sus requisitos
si el HW más rápido es más barato / más fácil de desarrollar debido a los estándares existentes, entonces estos requisitos también pueden cumplirlo.
Si el cliente quiere más, intente averiguar si hay algo detrás de esto (podría ser que ya planean actualizaciones y quieren seguir siendo compatibles entre placas cuando intercambian)
fuente
Potencia, integridad de la señal y sincronización. Trabajé en un chip con una interfaz de 25 gbps y eso significó una velocidad de reloj de 1.6 GHz y una tonelada de potencia. Si pudiéramos haber corrido a 19,2, la velocidad del reloj habría sido de 1,2 GHz. Más de 200ps de margen adicional por período de reloj, eso habría sido de gran ayuda.
Nunca he hecho diseño de placa, pero espero que 20 Mbps no sea un problema. 1 Gbps todavía no es tan difícil, pero mucho más difícil que 20 Mbps.
fuente