Quiero construir un osciloscopio USB. Estaba leyendo sobre diferentes tipos de transferencia USB . ¿Qué tipo de transferencia es mejor para transferir las muestras de ADC recopiladas desde un osciloscopio USB a una PC?
A continuación se presentan algunos de mis hallazgos. Corríjame y también sería bueno si alguien pudiera sugerir un buen tipo de transferencia.
Las transferencias masivas no pierden datos, pero no tienen un ancho de banda mínimo garantizado. (Por otro lado, pueden alcanzar velocidades más altas, porque pueden usar todo el ancho de banda que no usan otras transferencias).
¿Qué sucede cuando las transferencias de datos de su osciloscopio se retrasan (ya sea por errores o por otros dispositivos) y se acumulan nuevos datos? ¿Detiene el dispositivo hasta que se transmiten los datos antiguos, o tira los datos antiguos para poder transmitir los datos actuales?
Las transferencias isócronas están diseñadas para datos en "tiempo real". No tiene elección sobre el manejo de errores, pero su ancho de banda está reservado en el bus.
La pregunta es casi completamente independiente de su uso como osciloscopio y se rige por completo por los tipos de comunicaciones que le pide al USB que haga. Por ejemplo:
Una vez que sepa qué tipo de datos está transmitiendo y los términos de calidad de servicio (QoS) bajo los cuales deben llegar los datos, puede decidir qué mecanismo de transferencia USB usar. Sabrá que está listo para tomar estas decisiones cuando la palabra "osciloscopio" ya no sea necesaria para describir los datos y la QoS que necesita. Entonces sabes que es en palabras lo suficientemente objetivas como para comenzar a abordar estos problemas.
Para un osciloscopio, el ancho de banda de la transferencia es el parámetro que desea maximizar. La transferencia masiva está diseñada específicamente para un gran ancho de banda, por lo que es la elección correcta. Si bien las transferencias isócronas y de interrupción imponen límites a la latencia, solo están destinadas a flujos de datos de ancho de banda bajo a medio.
Solo usa transferencias masivas. Un osciloscopio no es en realidad un dispositivo de alta velocidad de datos. A menos que esté planeando hacer un diseño de tipo de fósforo digital, un osciloscopio es realmente solo una ventana a una parte muy pequeña de una forma de onda. Por ejemplo, supongamos que desea mostrar 1000 píxeles horizontales y actualizar la pantalla a unos 30 Hz. Si las muestras son de 8 bits cada una (esto es típico) y hay dos canales, solo verá 60 000 bytes/segundo. El USB de velocidad máxima puede generar alrededor de 1 000 000 de bytes/seg, por lo que está utilizando menos del 6 % de la capacidad de rendimiento del bus. Eso le da mucho tiempo para dejar que el modo de transferencia masiva haga su trabajo (corregir errores, evitar otro tráfico de bus), y es poco probable que alguna vez encuentre una configuración de bus de la vida real que no pueda asignarle suficiente ancho de banda. por tantos datos.
Transeúnte
usuario253751
mitch