Proteger una computadora portátil de dispositivos conectados por USB

11

En los últimos meses, he logrado destruir 2 computadoras portátiles perfectamente buenas mediante la programación electrónica de desarrollo a través de USB. Me he estado preguntando qué se podría hacer para evitar esto. Un par de ideas que he tenido (no estoy seguro de cuán práctico):

  1. Conector / hub USB con sujeción de diodos zener de 5V en líneas de alimentación y datos
  2. Conector / hub USB con optoaisladores en líneas de datos
  3. Suministro de la conexión USB con fuente de alimentación externa más la idea mencionada anteriormente

En combinación con estas ideas, quizás resistencias en las líneas 5 + D + y D- para limitar la corriente a 200 mA (suficiente para la mayoría de los dispositivos que uso).

¿Me preguntaba qué pensaban algunos ingenieros más experimentados que yo sobre estas ideas y sus implicaciones prácticas?

awsem_eng
fuente
1
Venden adaptadores USB optoaislados específicamente para este propósito.
Ignacio Vazquez-Abrams
3
¿Cómo lo hiciste exactamente? ¿Está conectado a tierra su computadora portátil y está enchufado a un dispositivo con voltaje en el suelo? ¿Retroalimentó la alimentación en la línea de 5 V?
Transistor
1
@ KingDuken: Un esquema no es suficiente. USB también requiere un enrutamiento adecuado para no convertir el protocolo en un montón de trampas.
Ignacio Vazquez-Abrams
1
Principalmente trabajo con electrónica de desarrollo basada en Arduino y PIC para controlar lavadoras y máquinas expendedoras (no fue el mismo dispositivo que destruyó ambas computadoras portátiles). Como es principalmente el riesgo de alto voltaje, ¿sería el uso de diodos zener una solución simple y barata o eso afectaría el lado de los datos?
awsem_eng
1
No, no lo haría: estos diodos tendrían que soportar la potencia total que su fuente de alto voltaje puede suministrar, o se quemarán, y luego los diodos de protección de la computadora portátil se quemarán a continuación. Todo eso sucederá en mili, si no en microsegundos, suponiendo que el cambio de lavadoras requiere un suministro bastante robusto para conducir de manera confiable.
Marcus Müller

Respuestas:

10

El verdadero problema no es el puerto USB sin protección, el problema real es que su dispositivo lo pone a usted y a sus dispositivos en riesgo de estar conectados a fuentes de alto voltaje y corriente relativamente alta.

Puede resolver la sobretensión transitoria con diodos de sujeción, pero esto no ayudará si su fuente de alimentación es lo suficientemente fuerte: simplemente fallarán, y luego estará en la misma situación que antes, solo milisegundos y el olor a semiconductores quemados más.

Su problema es grave, por muchas razones, y sus computadoras portátiles son lo de menos:

El USB está diseñado para ser manejado manualmente (es una redacción redundante), por lo que si esta falla mata a su computadora portátil, no tengo la mayor confianza de que es inherentemente salvo para la interacción humana.

Hay, por una buena razón, criterios de diseño para los circuitos que implica cambiar voltajes más altos con voltajes más bajos.

En general: necesita aislamiento galvánico entre lo que cualquier humano (incluso un técnico de servicio) pueda tocar durante la operación y los voltajes peligrosos.

Por lo tanto: separe estrictamente su controlador USB y las cosas que cambia. Es una práctica común conducir cargas inductivas o de alto voltaje utilizando optoacopladores, cuyo lado secundario es impulsado por una fuente de alimentación separada.

El diseño de la placa debe separar las regiones de alto voltaje del entorno de 5V / MCU. Solo los optoacopladores, los núcleos de transformador y los relés pueden cruzar esa frontera. Sin compromisos.

Un problema típico es que la conexión a tierra de la fuente de alimentación de su dispositivo tiene un potencial completamente diferente a la conexión a tierra USB, aunque eso no debería ser un problema para una computadora portátil, que en sí misma debe estar separada galvánicamente de cualquier otra cosa, hay muchos casos en los que se encuentra problemas con eso (por ejemplo, la conexión a tierra del portátil termina en conexión a tierra de Ethernet, conexión de audio, conexión a tierra RS-232 ...). La estricta separación (aislamiento) entre controlador y controlado hace que no sea un problema inherente.

Marcus Müller
fuente
3
"por ejemplo, la conexión a tierra del portátil termina en la conexión a tierra de Ethernet" Ethernet está (supuestamente) acoplada por transformador. En los días de 10-base-2 tenían estas tomas BNC con funda de plástico que sobresalían de la ranura del plano posterior, muy específicamente sin tocar la tierra del chasis.
Chris Stratton
@ChrisStratton Sí, la señalización está separada adecuadamente por transformadores, y si hay PoE, eso sucede a través de los toques centrales de los lados primarios de esos, de hecho. Pero: tengo una tarjeta NIC RTL8139 extremadamente común frente a mí. El conector RJ45 tiene una carcasa de metal, que hace contacto con el conector RJ45 y, por lo tanto, el blindaje del cable. En el lado de la tarjeta, eso está directamente conectado a la tierra del chasis. Entonces, um ... puedo verificar mi transceptor Gigabit-Ethernet-a-SFP para blindaje de cables - conectividad de chasis, también, si lo desea. Supongo que lo mismo se aplica a los dongles de ethernet USB y las NIC integradas para computadoras portátiles.
Marcus Müller
Podría ser más claro decir explícitamente que existen placas USB con aislamiento óptico. Un ejemplo es aquí adafruit.com/product/2107 : sin afiliación, primer enlace de Google.
Abligh
@abligh, aunque estoy de acuerdo con el hecho de que existen estos tableros, reitero: tener un tablero de este tipo resuelve el problema incorrecto .
Marcus Müller
1
@ MarcusMüller Que es, como dije, un caso extremo. Usted personalmente puede interactuar principalmente con STP, pero UTP sigue siendo, con mucho, la opción más común en general, AFAIK. En cualquier caso, STP generalmente solo se basa en un extremo , por lo que incluso eso no es un problema.
Bob
6

Principalmente trabajo con electrónica de desarrollo basada en Arduino y PIC para controlar lavadoras y máquinas expendedoras (no fue el mismo dispositivo que destruyó ambas computadoras portátiles). Como es principalmente el riesgo de alto voltaje, ¿sería el uso de diodos zener una solución simple y barata o eso afectaría el lado de los datos?

Bueno. Como menciona el "uso de diodos zener" para protegerse contra un "alto voltaje" mal definido, ahora tenemos un punto de datos confiable: no tiene idea de lo que está haciendo.

Por lo tanto, necesita un aislador USB para proteger el puerto de la computadora portátil de usted mismo. Lo siento por ese portátil, por cierto.

Quiero decir, las computadoras portátiles están aisladas del suelo debido a que sus fuentes de alimentación no están conectadas a tierra. Entonces, volar el puerto USB de una computadora portátil es como ... difícil ... ¿Cómo exactamente lograste hacer eso exactamente? ¿Enviaste voltaje de red por el puerto USB o algo así?

peufeu
fuente
2
+1 para "no tengo idea", y deseo dar otro +1 para "volar el puerto USB de una computadora portátil es como ... difícil ..."
Ale..chenski el
Bueno, si el micro que se está programando está alimentado por un gotero de condensador activo de la red eléctrica o algún tipo de suministro no aislado ... Ni siquiera estoy seguro de que el puerto USB explote, la tierra interna de la computadora portátil simplemente estaría en la red eléctrica. voltaje (¡y extremadamente peligroso!) Ahora, si el micro se usa para controlar las lavadoras (es decir, una gran carga inductiva), entonces, ¡otras cosas también pueden salir mal!
peufeu
"Las computadoras portátiles están aisladas del suelo debido a que sus fuentes de alimentación no están conectadas a tierra". No es cierto (al menos en un ejemplo anecdótico). Mientras usaba una computadora portátil de un proveedor importante y un adaptador de reemplazo de buena reputación (el primero murió), mi tierra USB estaba conectada a tierra. Solo descubrí esto cuando intenté sondear el circuito bajo prueba con un alcance también conectado a tierra, pero con el clip de tierra por error en un nodo diferente a la tierra USB. Desconectar el suministro de la computadora portátil y agotar las baterías solucionó todo esto.
nanofarad
66
-1 para el 80% del mensaje es ad-hominem y sarcasmo. Sé que es un meme en la discusión de electrónica, pero por favor.
AnoE
1
@AliChen Ese no es el caso. Apagué un fusible en mi circuito justo antes de que un monitor de corriente que formaba parte del circuito (y en el circuito de tierra) registrara un transitorio muy alto. Esto definitivamente no estaba en el rango de miliamperios.
nanofarad
2

Dado que está utilizando Arduino como base, la solución es fácil ... use un procesador desechable para programar y depurar. El entorno de desarrollo de Arduino se adapta muy bien a una Raspberry Pi que puede alimentar desde su entorno integrado y comunicarse a través de la red inalámbrica desde las computadoras portátiles restantes o tal vez desde una computadora de escritorio.

Esto no le impedirá freír una Raspberry Pi, pero reducirá el costo de una falla del circuito a aproximadamente $ 35.

Jack Creasey
fuente
2
Creo que hasta que se establezca la causa raíz de volar los puertos de la computadora portátil, cualquier consejo sería prematuro. No sabemos cuán loca puede ser la conexión de la lavadora, los cables blancos y negros se pueden intercambiar y la tierra se suelta. Entonces podría freír cualquier cosa, Pi o no. Espero que el OP tenga un buen seguro de vida ...
Ale..chenski
No estoy de acuerdo ... seguramente se debe considerar cualquier consejo que haga menos probable que el medio ambiente se vea comprometido.
Jack Creasey
2
De hecho, esa es una idea novedosa, esencialmente el argumento es que un pi (más como $ 5 + $ 5 tarjeta + $ 5 wifi) probablemente ahora sea más barato que un aislador USB. Sin embargo, tampoco hay nada sobre posibles peligros en el sistema que se cree que pueda persistir más allá de la fase de ingeniería.
Chris Stratton
1
@ChrisStratton Se trata simplemente de gestionar el riesgo. En un sistema donde puede tener fallas catastróficas del desarrollo, aislaría tanto al equipo como al ser humano de cualquier riesgo potencial de falla. Puedes comprar equipos profesionales o rodar tu propio ... Simplemente sugerí un rollo viable tu propia solución. La crítica de Ali Chen es IMO inválida ya que para múltiples fallas durante el desarrollo la causa raíz puede ser diferente. Es demasiado tarde una vez que el fuego ha comenzado.
Jack Creasey
Mi punto es que si el cableado de alimentación no está aislado de la norma en este caso en particular, ninguna cantidad de Pis frente a una computadora portátil será segura para los puertos y los usuarios. Eso es todo lo que quise decir.
Ale..chenski
0

Ok, después de una multitud de aclaraciones y varios casos presentados, permítanme ofrecer una solución al problema de cómo proteger una computadora portátil de la fritura en el entorno de servicio de campo:

  1. Siempre conecte su equipo de prueba / diagnóstico al objeto de servicio primero y enciéndalo.

  2. Antes de conectar el equipo a la computadora portátil, verifique si hay voltajes sospechosos entre los blindajes USB utilizando un DMM de baja impedancia (estándar de 10-20k), entre el puerto DUT y el puerto de la computadora portátil, tanto en modo CC como CA.

  3. Si se encuentra un voltaje significativo (5 - 10 - 50 V), use un transformador de aislamiento verdadero en uno de los extremos.

Ale..chenski
fuente
0

Usar un Pi / Beaglebone / Tinkerbox a través de WiFi sería barato y fácil. CHIP se ve bien, consulte https://getchip.com/pages/chip . 5-9 $ por dispositivo. Puedes asesinar 7 CHIP por el precio de 1 Pi3. Obviamente, aún debe abordar el problema de que los voltajes de corte alcanzan los puertos USB, pero al menos su estación de trabajo estará segura. Sin embargo, no lo conecte a su LAN con ethernet.

La transferencia de archivos es simplemente una cuestión de usar el acceso ssh sin contraseña basado en clave para archivos scp a Pi / other y un shell remoto para cargar. Para arduino, existe el paquete arduino-mk, y hay herramientas similares para PIC. Sin duda, también puede guardar sus archivos en un recurso compartido SMB / CIFS exportado y usar el shell remoto para crearlos y cargarlos en sus tableros.

Si se produce un voltaje de muerte nuevamente, solo perderá 30-35 $.

Todavía no he descubierto cómo estos voltajes logran atravesar sus MCU e ingresar al puerto USB. ¿Es un corto? ¿De dónde viene? He destruido muchos clones de arduino, y sinceramente tengo curiosidad.

Además, los puertos USB suelen estar polifundidos contra tensiones moderadas. En realidad, debe colocar un voltaje negativo en el pin de 5V para matar el puerto (o positivo al pin de GND), el controlador y quizás la placa base. ¿Cómo te las arreglas para asesinar dos computadoras portátiles? ¿Podría ser la magia de la corriente alterna en el trabajo?

user2497
fuente