USB como un bus local en un sistema integrado

3

¿El USB es una opción razonable para un bus local?

¿Cuáles son los pros y los contras?

¿Qué preocupaciones de confiabilidad hay?

Espec. de bus recuento de dispositivos ~ 4; los dispositivos periféricos están conectados permanentemente al mismo PCB que el host (soldado o mediante encabezados).

Algunos dispositivos son insignificantes, por ejemplo, puerto serie o sensor de temperatura, algunos son complejos, por ejemplo, Un módem LTE o Ethernet o wifi. Los dispositivos periféricos son aquellos que están disponibles como dispositivos USB independientes o se utilizan los mismos chips en dichos dispositivos. Se supone que Linux ya tiene todos los controladores.

Lo ideal sería utilizar solo un bus (con hubs si fuera necesario) para simplificar y eventualmente realizar modificaciones sin algunos componentes y con otros componentes de baja velocidad.

Especificación del sistema ARM, Linux, DC alimentado, aproximadamente equivalente a una tableta Android.

    
pregunta

4 respuestas

3

Lo que está viendo es un problema que me gusta llamar jerarquía de bus .

Tiene dispositivos de alta velocidad que necesitan una ruta rápida de baja latencia a la CPU (como el módem LTE) y dispositivos lentos como el sensor de temperatura. La conexión de un módem LTE completo a través de I2C causará graves problemas al sistema. Y conectar un sensor de temperatura en el USB es una seria exageración. Necesitas priorizar.

¿A qué dispositivos se puede acceder con más frecuencia? ¿Cuáles deben responder rápidamente? ¿Y cuál no necesita tanto ancho de banda?

Siéntase libre de editar su pregunta.

Editar:

El USB puede no ser tan excesivo después de todo. Solo en las últimas versiones (2.0, 3.0) se ha llegado a la idea de estar dirigido a periféricos rápidos solamente. Antes de eso, era simplemente un Universal Serial Bus .

Esto no cambia nada en el hecho de que su costo de implementación es a menudo demasiado alto.

    
respondido por el Dzarda
1

A menos que el dispositivo ya tenga una interfaz USB, como un teclado o un mouse, esto implicará mucho trabajo y hardware adicional. Por ejemplo, la conexión a un sensor de temperatura que solo tiene una interfaz I2C. No podrá agregar una interfaz USB al sensor, por lo que tendrá que agregar un pequeño microcontrolador, como un PIC18 que tenga un dispositivo USB y una interfaz I2C. Luego, el PIC devuelve el USB a su host y I2C al sensor de temperatura. Pero, ¿por qué no simplemente conectar el sensor de temperatura directamente al microcontrolador de su host?

    
respondido por el tcrosley
0

Según sus necesidades, sí, usb es ideal. Tenga en cuenta que la U significa universal. Puede tener dispositivos USB, wifi, mouse / teclado / touchpad / pantalla táctil, tarjetas de sonido, cámaras web, infierno, incluso pantallas USB. No es el más eficiente, pero para dos nics, un sensor de temperatura y un dispositivo serie, está diseñado para ello. Tanto que la mayoría de los fabricantes de dispositivos informáticos confían en ello en gran medida. ** No solo en dispositivos o tabletas de bajo costo, sino que incluso los más grandes como Apple y Dell lo usan para pantallas táctiles y teclados, cámaras web y puertos wifi y bluetooth e ir en todas sus computadoras portátiles. . **

USB es ubiquitos, fácil de implementar y tiene un costo de placa muy bajo en términos de enrutamiento y piezas.

Si bien puede obtener dispositivos de brazo de 4 puertos, la mayoría tiene uno o dos puertos raíz (buses) y luego se conecta a un hub ic. Su cuello de botella más grande mezclará dispositivos de alta velocidad con dispositivos de velocidad completa o baja en un solo concentrador. Los IC de hub baratos tienen un Traductor de Transacción Único, que puede llevar un solo dispositivo descendente de velocidad baja o media a un enlace ascendente de alta velocidad. Los mejores tendrán un MTT, múltiples traductores de transacciones, por lo que múltiples dispositivos de baja velocidad se pueden salvar a alta velocidad. O simplemente asegúrese de que la velocidad baja esté en un concentrador mientras que la velocidad alta en otro.

Pero ya que tiene el brazo como SOC previsto, tendrá acceso a los buses adecuados para sonido o i2c o spi (para el sensor de temperatura o serie) o incluso a un controlador de Ethernet incorporado incorporado menos el magnetismo. Los chips ARM de gama superior, comparables a las tabletas o enrutadores baratos de Android, están completamente cargados.

    
respondido por el Passerby
0

SPI

Pros

  • bueno para 50Mhz
  • puede comunicarse con múltiples esclavos
  • protocolo simple
  • dúplex completo Contras
  • No es una interfaz estándar

I2C

Pros

  • muchos chips lentos usan I2C
  • protocolo de transmisión donde varios esclavos pueden residir en el bus

Contras

  • velocidad lenta
  • más complicado que spi

USB

Pros

  • interfaz estándar
  • probablemente el controlador está listo y probado

Contras

  • muy complicado de depurar
  • con hub, los periféricos compartirán el ancho de banda

Otras interfaces incluyen SDIO, UART, etc.

Nuevamente, como ya se mencionó, deberá definir la jerarquía de bus con sus requisitos de ancho de banda. Probablemente el módem LTE requeriría una interfaz de memoria directa o una interfaz PCI.

También hay traductores phy como FTD232 ( enlace ) que pueden hacer USB-Spi, usb-uart, etc. ampliamente utilizado

    
respondido por el user41763

Lea otras preguntas en las etiquetas