¿Por qué usb tiene inicio de paquetes de marco?

4

Estoy desarrollando un firmware USB de alta velocidad para STM32F746VG , y en la página 1411 (en la sección 37.16.3, paso 2), me dice que debo habilitar el inicio de interrupciones de trama.

Sé que los hosts USB envían un inicio de paquete de marco una vez cada 125 uS en modo de alta velocidad, pero ¿por qué debería mi dispositivo preocuparse por los paquetes SOF, aparte del cronometraje? ¿Qué podría hacer en una rutina de servicio de interrupción que se activaría en cada inicio del paquete de tramas?

    
pregunta johnny_boy

1 respuesta

6

Creo que el inicio original de 1 ms (1 kHz) de interrupción del cuadro fue para dar a los dispositivos una sincronización barata pero precisa. La precisión de la especificación es bastante estricta.

Si no necesita hacer una sincronización precisa, o tiene su propio cristal, entonces no necesita saber cuándo comienzan los marcos USB. El host inicia todas las transacciones, incluso cuando las envía, por lo que su hardware y firmware sabrán de esa manera cuándo hacer qué.

He creado una gran cantidad de dispositivos USB, y hasta ahora no he usado la detección de inicio de trama. Si está utilizando una biblioteca enlatada, es posible que la biblioteca utilice SOF para algún tiempo interno o para saber cuándo hacer el mantenimiento. Si los documentos de la biblioteca dicen que necesita SOF, entonces necesita SOF.

    
respondido por el Olin Lathrop

Lea otras preguntas en las etiquetas