Proteger una computadora portátil de dispositivos conectados por USB

En los últimos meses he logrado destruir 2 computadoras portátiles perfectamente buenas a través de la electrónica de desarrollo de programación 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ácticas):

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

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

Solo me preguntaba qué pensaban algunos ingenieros más experimentados que yo sobre estas ideas y sus implicaciones prácticas.

Venden adaptadores USB optoaislados específicamente para este propósito.
Estoy de acuerdo con @IgnacioVazquez-Abrams pero, sin embargo, si quieres hacer tu propio dispositivo, ¿podrías dibujar un circuito? Tenemos un complemento en este StackExchange que le permite dibujar circuitos.
¿Cómo lograste esto exactamente? ¿Está su computadora portátil conectada a tierra y usted está enchufado a un dispositivo con voltaje en el suelo? ¿Realimentaste energía en la línea de 5 V?
Sí, los he visto, pero tienden a ser bastante caros, ¡así que estaba buscando consejos de diseño para hacer los míos!
@KingDuken: un esquema no es suficiente. USB también requiere un enrutamiento adecuado para no convertir el protocolo en un montón de pegote.
Creo que hubo un cortocircuito a +12V en la placa que conecté a la computadora portátil
... por cierto, tengo curiosidad por saber qué dispositivo USB está conectando. Si rompió dos computadoras portátiles al hacer esto, hay una indicación obvia de algo que no debe conectar a la computadora... por lo tanto, hay hay algún problema con el dispositivo USB.
Principalmente trabajo con electrónica de desarrollo basada en Arduino y PIC para controlar lavadoras y máquinas expendedoras (no fue el mismo dispositivo el que destruyó ambas computadoras portátiles). Como es principalmente solo el riesgo de alto voltaje, ¿el uso de diodos zener sería una solución simple y barata o eso interferiría con el lado de los datos?
No, no lo haría: estos diodos tendrían que soportar toda la potencia que su fuente de alto voltaje puede suministrar, o se quemarán, y luego se quemarán los diodos de protección de la computadora portátil. Todo eso sucederá en milisegundos, si no en microsegundos, suponiendo que cambiar de lavadora requiera un suministro bastante fuerte para impulsar los relés de manera confiable.
¿Se está conectando directamente a la computadora portátil o a través de un concentrador? Incluso un concentrador con alimentación ordinaria brindaría cierta protección, ya que no habría una conexión directa a la computadora portátil y al dispositivo USB de destino.
¿Qué es eso de "programar electrónica de desarrollo a través de USB"? Divulgación completa, por favor: los ingenieros más experimentados exigen esto.
@IgnacioVazquez-Abrams, la mala programación puede "convertir el protocolo en un montón de pegote", pero un reinicio lo arreglará. Un reinicio no puede revivir un puerto quemado.
@Lenne: un reinicio no puede obligar al hardware externo a generar un patrón de ojo adecuado, que es el punto de mi comentario.
Tenga en cuenta que el problema PUEDE no ser USB per se, sino quizás tierra flotante en uno u otro dispositivo o diferentes potenciales de tierra. Examine los potenciales entre tierra con un osciloscopio/medidor de CA hi-Z/mano desnuda <tosiendo>. Reiniciar corazón. ¿Alguna diferencia de potencial?

Respuestas (5)

El problema real no es el puerto USB desprotegido, el problema real es que su dispositivo lo pone a usted y a sus dispositivos en riesgo de estar conectado a fuentes de corriente relativamente alta y de mayor voltaje.

Puede resolver la sobretensión transitoria con diodos de sujeción, pero estos no ayudarán 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 de semiconductores quemados más lejos.

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

El USB está destinado a ser manejado manualmente (esa es una redacción redundante), por lo que si esta falla mata a su computadora portátil, no tengo la confianza más fuerte de que sea inherentemente salvo para la interacción humana.

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

Generalmente: necesita aislamiento galvánico entre cualquier cosa 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 impulsar 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 5 V/MCU. Solo optoacopladores, núcleos de transformadores y relés pueden cruzar ese límite. 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 al de 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 con problema con eso (por ejemplo, la tierra de la computadora portátil termina en tierra de ethernet, tierra de audio, tierra RS-232 ...). La estricta separación (aislamiento) entre el controlador y el controlado hace que eso no sea un problema inherente.

"por ejemplo, la conexión a tierra de la computadora portátil termina en la conexión a tierra de Ethernet" Ethernet está (supuestamente) acoplada a un transformador. En los días de 10-base-2, tenían estos conectores BNC con funda de plástico que sobresalían de la ranura del backplane, muy específicamente sin tocar la tierra del chasis.
@ChrisStratton Sí, la señalización está correctamente separada por transformadores, y si hay PoE, eso sucede a través de los grifos 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, con el blindaje del cable. En el lado de la tarjeta, que está conectado directamente a la tierra del chasis. Entonces, um... Puedo verificar mi transceptor Gigabit-Ethernet-a-SFP para ver si hay blindaje de cable, conectividad del chasis también, si lo desea. Mi conjetura es que lo mismo se aplica a los dongles Ethernet USB y las NIC integradas en las computadoras portátiles.
Podría ser más claro decir explícitamente que existen placas USB con optoaislamiento. Un ejemplo está aquí adafruit.com/product/2107 - sin afiliación, primer enlace de Google.
@abligh, aunque estoy de acuerdo con el hecho de que existen estos tableros, reitero: tener un tablero de este tipo resuelve el problema equivocado .
@MarcusMüller A menos que estas placas estén integradas permanentemente en la unidad controlada.
@MarcusMüller La gran mayoría de los cables de Ethernet no están blindados de todos modos, por lo que probablemente se encuentre en un caso un poco extremo.
@Bob error. ¿qué? Tengo una caja llena de cables de red listos para usar, unos 200 m en total. De estos, unos 4m en total son UTP. El resto está blindado.
@MarcusMüller Que es, como dije, un caso límite. 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 conecta a tierra en un extremo , por lo que incluso eso no es un problema.
Los condensadores de desacoplamiento de clase Y (que no fallarán en cortocircuito) también pueden cruzar el límite.
@Bob, sé que sería correcto conectar a tierra solo un extremo de STP, pero eso no es lo que he visto en ninguna red doméstica con> 1 PC de escritorio; el conmutador/enrutador es "flotante", pero une todos los terrenos. Además: esta es una NIC que compré en 2002 (por unos 5€), se vendía en cada esquina. Este es uno de los cables que un antiguo ISP mío envió a los clientes con su WiFi AP. i.imgur.com/PKfSxWn.jpg la resistencia distinta de cero se debe principalmente a un mal contacto entre la sonda y el conector externo. Es difícil tomar fotografías con una mano y ejercer una cantidad controlada de presión con la otra.

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

Bueno. Dado que 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 esa computadora portátil, por cierto.

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

+1 por "no tengo idea", y deseo dar otro +1 por "volar el puerto USB de una computadora portátil es como... difícil..."
Bueno, si el micro que se está programando está alimentado por un cuentagotas de condensador vivo de la red eléctrica o algún tipo de suministro no aislado... Ni siquiera estoy seguro de que el puerto USB explotaría, la conexión a 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 lavadoras (es decir, gran carga inductiva), entonces, bueno, ¡otras cosas también pueden salir mal!
"Las computadoras portátiles están aisladas de la tierra 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 confiable (el primero murió), mi conexión a tierra USB estaba conectada a tierra. Solo descubrí esto cuando traté de probar 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 del USB. Desconectar el suministro de la computadora portátil y quedarse sin baterías arregló todo esto.
-1 porque el 80% del mensaje es ad-hominem y sarcasmo. Sé que es un meme en la discusión sobre electrónica, pero por favor.
@hexafraction, lo que descubrió es que su adaptador de reemplazo (como cualquier otro) tiene una "fuga", que encontró con el alcance, y probablemente solo un alcance pueda verlo. Si no recuerdo mal, la fuga puede ser de hasta 1 mA incluso en un equipo certificado, lo que equivale a unos 100k de resistencia a un cable de CA activo. Esto no es suficiente para matar un puerto USB.
@AliChen Ese no es el caso. Soplé un fusible en mi circuito justo antes de que un monitor de corriente que era parte del circuito (y en el bucle de tierra) registrara un transitorio muy alto. Esto definitivamente no estaba en el rango de miliamperios.

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 encaja muy bien en una Raspberry Pi que puede alimentar desde su entorno integrado y comunicarse de forma inalámbrica desde sus computadoras portátiles restantes o tal vez una computadora de escritorio.

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

Creo que hasta que se establezca la causa raíz de la explosión de los puertos de la computadora portátil, cualquier consejo sería prematuro. No sabemos qué tan loca puede ser la conexión de la lavadora, los cables blanco y negro se pueden intercambiar y la conexión a tierra está suelta. Entonces podría freír cualquier cosa, Pi o no. Espero que el OP tenga un buen seguro de vida...
No estoy de acuerdo ... seguramente se debe considerar cualquier consejo que haga que el medio ambiente sea menos probable que se vea comprometido.
De hecho, es una idea novedosa: esencialmente, el argumento es que un pi (más como $ 5 + tarjeta de $ 5 + wifi de $ 5) ahora es probablemente más barato que un aislador USB. Sin embargo, tampoco dice nada sobre posibles peligros en el sistema que podrían persistir más allá de la fase de ingeniería.
@ChrisStratton Se trata simplemente de administrar el riesgo. En un sistema en el que puede tener fallas de desarrollo catastróficas, aislaría tanto al equipo como al ser humano de cualquier riesgo potencial de falla. Puede comprar equipo profesional o rodar por su cuenta... Simplemente sugerí una solución viable de rodar su propia solución. La crítica de Ali Chen es inválida en mi opinión, 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.
Mi punto es que si el cableado de alimentación no está aislado de la norma en este caso 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.

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 del servicio de campo:

  1. Siempre conecte primero su equipo de prueba/diagnóstico al objeto de servicio 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 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 verdadero transformador de aislamiento en uno de los extremos.

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 matar 7 CHIP por el precio de 1 Pi3. Obviamente, aún debe abordar el problema de que los voltajes de corte llegan a los puertos USB, pero al menos su estación de trabajo estará segura. Sin embargo, no lo conecte a su LAN con ethernet.

Transferir los archivos es simplemente una cuestión de usar acceso ssh sin contraseña basado en clave a archivos scp a Pi/otro y un shell remoto para cargar. Para arduino, existe el paquete arduino-mk y existen 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 crearlo y cargarlo en sus tableros.

Si vuelve a ocurrir un voltaje de corte, 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 tengo mucha curiosidad.

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