Interfaz con el conector USB en la simulación

3

Estoy creando un prototipo de una placa que tiene un conector USB, en Spice o en cualquier otra tecnología de simulación de circuitos. La placa de producción se conectará a la PC y habrá algún software que se comunica a través de USB. Me gustaría hacer muchos prototipos en el software antes de meterme con el espacio de la carne, porque la velocidad.

¿Es / cómo es posible conectar el software a una simulación de la placa? ¿Qué software de simulación hace esto?

En otras palabras, sería genial lograr que se realice la simulación y hacer que actúe como si estuviera conectado a uno de los puertos USB de la computadora (uno real o virtual), para que pueda probar la interacción con mi Código del lado del PC.

    
pregunta Purrell

3 respuestas

1

Aquí hay un simulador que lo hace:

enlace

Afirman ser los únicos que lo hacen, lo cual es desafortunado porque el software es caro y la interfaz de usuario está fechada como IMO, y es una buena idea. Funciona para PIC y AT90, que es lo que estoy haciendo.

Estoy sorprendido por las respuestas de no-tú-no puedes. Amigos - es 2013 :). Podemos simular equipos completos , incluidas sus interfaces USB en el software. Estoy escribiendo esto dentro de una VM de Windows que se ejecuta en una Macbook Pro. Los USB dentro de la VM son completamente simulados, "en tiempo real", y se conectan a la máquina host como si fueran locales.

De hecho, además de que el software Lab Center funciona a la perfección y simula la interfaz USB, estoy ejecutando una máquina virtual porque este software solo se ejecuta en Windows. Así que tengo un código en mi máquina OSX host que se conecta a un puerto USB virtual en la máquina de Windows VM, que está conectada a una interfaz USB virtual desde la simulación del circuito. Esa es una "capa de virtualización" en su totalidad encima de la que me está diciendo que no debo hacer. ¡Dame cerveza!

    
respondido por el Purrell
2

Me temo que la respuesta a tu pregunta es que probablemente no sea posible.

Si describe su sistema y sus objetivos con más detalle, alguien puede sugerir una posible alternativa. Algunas dudas y preguntas que vienen a mi mente son (perdón si he entendido mal su situación):

  • ¿Qué simulador estás usando?
  • ¿Realmente tiene un modelo de trabajo para el controlador USB? Los dispositivos USB suelen ser un microcontrolador que ejecuta una cantidad de código no trivial, que es muy complicado de simular a nivel de Spice, o incluso Verilog.
  • Si tiene una simulación de trabajo, ¿qué tan rápido se ejecuta? Los controladores USB de PC son sensibles al tiempo y esperan respuestas rápidas del dispositivo USB. Yo esperaría una simulación de comportamiento de un microcontrolador ejecutando código de una ROM para ejecutarse en el orden de 10 minutos en tiempo real por tiempo de simulación de 1 milisegundo.
respondido por el Justin
2

Usted está mucho más allá del nivel de complejidad del sistema, donde SPICE es una herramienta significativa.

SPICE es un simulador analógico . Puede escalar a unos pocos miles de transistores. Los circuitos integrados que desea simular tienen muchas decenas o cientos de miles de transistores.

Además, SPICE realiza una evaluación dispersa cuando puede determinar que está resolviendo el dV / dT con suficiente precisión. Dado que es probable que su IC micro / otro-complejo-lógico tenga un reloj interno rápido, SPICE tendrá que simular el dispositivo con una precisión considerable, lo que haría que la simulación sea incluso más lenta que los circuitos analógicos simples.

Además, SPICE no es una herramienta en tiempo real. Los modelos simples pueden ejecutarse en ~ \ $ \ frac {1} {1,000} \ $ - \ $ \ frac {1} {1,000,000} \ $ en tiempo real. Esto es aceptable para la mayoría de las simulaciones, donde puede establecer correctamente las condiciones iniciales y ejecutar el simulador durante un corto período de tiempo para evaluar su comportamiento.

Si combina los factores anteriores y el hecho de que necesitará muchos cientos de milisegundos de tiempo de simulación para que su MCU se inicie y se conecte correctamente, probablemente necesitará varios días en tiempo real (!) para su simulación para incluso enumerar! Además, algo tendrá que implementar correctamente el host USB al que está conectado el dispositivo. No puede simplemente reenviar al host una conexión USB que se ejecuta en una millonésima (o más) de tiempo real y esperar que funcione.

La forma en que las simulaciones como la que @Purrell vincula en su respuesta es que tienen modelos simplificados de los distintos dispositivos. La MCU se simula como algo similar a una MCU VHDL o Verilog, puramente en el dominio digital (nota: esto no es SPICE), y las interfaces se almacenan en la simulación analógica ( y eso suponiendo que estén haciendo simulación analógica. Creo que es bastante improbable).

Obviamente, esto también está limitado por la precisión de los modelos. Incluso SPICE no es una herramienta perfecta, y cuanto más se aleje de la naturaleza real de los dispositivos, es probable que las imprecisiones de simulación afecten su resultado simulado.

Realmente, parece que estás pensando demasiado en esto. Incluso los simuladores como SPICE son generalmente poco considerados, ya que tienden a ser muy susceptibles a los casos de esquina, y en realidad solo valen la pena como herramienta de diseño analógico verificación .

Realmente no hay herramientas para este tipo de cosas, ya que serían más o menos inútiles. El conocimiento profundo de un dispositivo específico requerido para escribir un modelo utilizable, si no perfecto, de dicho dispositivo haría que la simulación fuera innecesaria, y la simulación todavía no siempre se modela perfectamente el hardware real.

La razón por la que no hay mucho interés o productos que hacen lo que quieres es porque es inútil. Hasta que podamos simular todo el chip con una resolución de unos pocos átomos, seguirá siendo inútil fuera de algunas aplicaciones específicas.

Realmente, solo tienes que superarlo y construir el hardware real.

    
respondido por el Connor Wolf

Lea otras preguntas en las etiquetas