Analizador de protocolo de bricolaje PCIe / paquete espía / monitor - proyecto [cerrado]

0

Estoy interesado en crear un dispositivo que pueda enchufar en una ranura PCIe que pueda capturar paquetes de protocolo PCIe. En la misma línea, encuentre una solución de bajo costo para que un aficionado pueda crear sus propios dispositivos de interfaz PCIe.

Por ahora, comenzaría con un x1 o un x4 y funcionaría hasta un dispositivo de carril x8. (Con un monitor de carril x1, ¿seguirá viendo paquetes x8?) ¿Existe una solución de bajo costo para esto, algún analizador lógico DIY que se pueda conectar al bus PCIe?

Hay soluciones comerciales para esto, pero están en algún lugar en el rango de $ 10,000 a $ 40,000 para un sistema x8 o x16. Supongo que son terriblemente complejos y, o para mantenerse en el negocio, para ser rentables, necesitan estar en este rango de precios para el mercado relativamente pequeño que probablemente tienen.

Sin embargo, en perspectiva, puedo ir a la tienda de electrónica y comprar una tarjeta (adaptador de red o USB, tarjeta de sonido barata, etc.) que tenga un controlador PCIe x8 que cuesta solo ~ $ 50.

Tiene que haber una solución donde pueda comprar un chip controlador PCIe y, o uno de estos, dichos tableros de productos y piratearlo / reutilizarlo para un analizador de protocolo / paquete de sistema espía / monitor. En particular, si alguno de estos controladores (si es "inteligente") puede ser reprogramado / flasheado.

¿Tal vez se pueda usar una placa prototipo FPGA existente para esto? Podrían estar en el rango de $ 1,500 a $ 5000, pero al menos eso se está acercando al presupuesto de un aficionado.

Desde una solución de bricolaje desde un principio, veo algún tipo de circuito que toma una placa prototipo PCIe (vista en el rango de $ 500), tiene una interfaz / buffer de bus mínimo requerido, conectado a un FPGA que está programado para transmitir Paquetes PCIe de alta velocidad en la memoria RAM interna incorporada, configuración para que la RAM pueda transmitirse por USB donde una segunda computadora (o microcontrolador, etc.) puede leerlos y almacenarlos. Entonces sí, también tendría que escribir el software de interfaz de usuario.

¿Alguna sugerencia, alguien hace su propia solución de bricolaje para esto ya?

Gracias,

    
pregunta Sirmabus

2 respuestas

1

Bueno, veo un analizador de 1.0 x4 por $ 1500 en eBay y sé que he visto que las versiones de tarjetas de pcie son aún más baratas. Al ver cómo todas las cartas deben poder retroceder a 1.0, pensaría que esto cumpliría con el requisito de un hobbiest, o al menos esto establecería un punto de partida para el costo.

Ahora, si quieres hacerlo tú mismo, supongo que una fpga sería el camino a seguir. No recuerdo haber visto tarjetas pcie con un conector de borde y una ranura para pcie, pero probablemente pueda obtener uno que tenga un conector de borde y un bus de expansión de alta velocidad y podría hacer una placa para convertirlo en un conector de pcie.

Probablemente querrá algo de RAM y quizás algo de SRAM allí también para almacenar sus capturas de paquetes. Entonces, creo que tienes que escribir algo de tiempo real para que tu fpga parezca un cambio al complejo de la podredumbre. Luego monitorea y almacena algo de tráfico en ambas direcciones.

Ah, y lo más útil del analizador son los disparadores, por lo que cuando lo especifiques deberías pensar en algún disparador y lógica de filtro para agregar como solo capturar paquetes tlp en este rango de direcciones.

Esto es un montón de trabajo frente a $ 1500; por otro lado, nuestro analizador de 3.0 x16 fue de $ 250k, por lo que si necesita algo en ese rango que sea específico para su producto, podría valer la pena.

    
respondido por el Some Hardware Guy
1

Es factible, pero es todo un proyecto. Especialmente si haces tus propias tablas.

Tendría que usar un FPGA con dos módulos de PCIe PHY y construir una tarjeta con un enchufe en un lado y una toma en el otro que funcionó como un puente / "interruptor" de PCIe. Eso estaría en condiciones de capturar todo el tráfico.

No necesariamente tendrías que enrutarlo a una segunda computadora; El puente en sí es un punto final, y usted podría interrogarlo desde el software.

Si quisiera realizar una ingeniería inversa de un controlador PCIe, no me molestaría con el hardware y me conectaría al sistema operativo.

    
respondido por el pjc50

Lea otras preguntas en las etiquetas