Melindungi laptop dari perangkat yang terhubung USB


11

Dalam beberapa bulan terakhir saya telah berhasil menghancurkan 2 laptop yang sangat baik melalui pemrograman pengembangan elektronik melalui USB. Saya bertanya-tanya apa yang bisa dilakukan untuk mencegah hal ini. Beberapa ide yang saya punya (tidak yakin seberapa praktis):

  1. Konektor / hub USB dengan dioda penjepit 5V zener pada saluran listrik dan data
  2. Konektor / hub USB dengan opto-isolator pada jalur data
  3. memasok koneksi usb dengan sumber daya eksternal plus ide yang disebutkan sebelumnya

Dalam kombinasi dengan ide-ide ini mungkin resistor pada 5v D + dan D-line untuk membatasi arus hingga 200mA (cukup untuk sebagian besar perangkat yang saya gunakan).

Hanya ingin tahu apa yang dipikirkan oleh beberapa insinyur yang lebih berpengalaman daripada saya tentang ide-ide ini dan implikasi praktisnya?


1
Mereka menjual adapter USB optoisolated khusus untuk tujuan ini.
Ignacio Vazquez-Abrams

3
Bagaimana tepatnya Anda mengatur ini? Apakah laptop Anda dibumikan dan Anda terhubung ke perangkat dengan tegangan di tanah? Apakah Anda memberi makan daya kembali pada saluran 5 V?
Transistor

1
@ KingDuken: Skema tidak cukup. USB juga membutuhkan perutean yang tepat agar tidak mengubah protokol menjadi tumpukan goop.
Ignacio Vazquez-Abrams

1
Saya terutama bekerja dengan Arduino dan pengembangan elektronik berbasis PIC untuk mengendalikan mesin cuci dan mesin penjual otomatis (Itu bukan perangkat yang sama yang menghancurkan kedua laptop). Karena terutama hanya risiko tegangan tinggi akan penggunaan dioda zener menjadi solusi murah sederhana atau akankah itu mengacaukan sisi data hal?
awsem_eng

1
Tidak, itu tidak akan terjadi - dioda ini harus mampu menahan daya penuh yang dapat disediakan oleh sumber tegangan tinggi Anda, atau mereka akan terbakar, dan kemudian dioda perlindungan laptop akan terbakar berikutnya. Itu semua akan terjadi dalam mili-, jika bukan mikrodetik, dengan anggapan bahwa mengganti mesin cuci membutuhkan pasokan agak gemuk untuk menggerakkan relais secara andal.
Marcus Müller

Jawaban:


10

Masalah sebenarnya bukanlah port USB yang tidak terlindungi, masalah sebenarnya adalah bahwa perangkat Anda menempatkan Anda dan perangkat Anda berisiko terhubung ke sumber tegangan tinggi, arus relatif tinggi.

Anda dapat mengatasi tegangan lebih sementara dengan dioda penjepit, tetapi ini tidak akan membantu jika catu daya Anda cukup kuat - mereka hanya akan gagal, dan kemudian Anda berada dalam situasi yang sama seperti sebelumnya, hanya milidetik dan aroma semikonduktor yang terbakar semakin jauh.

Masalah Anda adalah yang buruk, karena banyak alasan, dan laptop Anda adalah yang paling tidak:

USB dimaksudkan untuk ditangani secara manual (itu kata-kata yang berlebihan), jadi jika kesalahan ini membunuh laptop Anda, saya tidak memiliki keyakinan terkuat bahwa itu secara inheren disimpan untuk interaksi manusia.

Ada, untuk alasan yang baik, kriteria desain untuk sirkuit yang melibatkan perpindahan voltase lebih tinggi dengan voltase lebih rendah.

Secara umum: Anda perlu isolasi galvanis antara apa pun yang dapat disentuh manusia (bahkan teknisi servis) selama operasi dan voltase berbahaya.

Oleh karena itu: pisahkan pengontrol USB Anda dengan ketat dan hal-hal yang dihidupkannya. Merupakan praktik umum untuk menggerakkan muatan induktif atau tegangan tinggi menggunakan optocoupler, yang sisi sekundernya digerakkan oleh catu daya terpisah.

Tata letak papan harus membuat daerah bertegangan tinggi terpisah dari lingkungan 5V / MCU. Hanya optocoupler, core transformator, dan relay yang diizinkan melewati batas itu. Tidak ada kompromi.

Masalah khasnya adalah bahwa catu daya perangkat Anda memiliki potensi yang sama sekali berbeda dari ground USB - meskipun itu seharusnya tidak menjadi masalah untuk laptop, yang itu sendiri harus terpisah secara galvanis dari hal lain, ada banyak kasus di mana Anda mengalami masalah dengan itu (mis. ground laptop berakhir pada ground ethernet, ground audio, ground RS-232 ...). Pemisahan yang ketat (isolasi) antara pengontrol dan pengontrol menjadikannya tidak menjadi masalah.


3
"mis. laptop pentanahan berakhir pada ethernet ground" Ethernet digabungkan dengan transformator. Kembali pada zaman 10-base-2 mereka memiliki jack BNC lengan plastik yang akan keluar dari slot backplane, sangat khusus tidak menyentuh tanah sasis.
Chris Stratton

@ ChrisStratton Ya, pensinyalan dipisahkan dengan benar oleh transformer, dan jika ada PoE, itu terjadi melalui keran tengah sisi-sisi utama itu, memang. Tetapi: Saya memiliki kartu NIC RTL8139 yang sangat umum di depan saya. Jack RJ45 memiliki casing logam, yang membuat kontak ke konektor RJ45 dan karenanya pelindung kabel. Di sisi kartu, yang terhubung langsung ke landasan sasis. Jadi, um ... Saya dapat memeriksa transceiver Gigabit-Ethernet-to-SFP saya untuk perisai kabel - konektivitas sasis juga, jika Anda mau. Dugaan saya adalah bahwa hal yang sama berlaku untuk dongle ethernet USB dan NIC on-board laptop.
Marcus Müller

Mungkin lebih jelas untuk secara eksplisit mengatakan papan USB isolasi-opto ada. Contohnya ada di sini adafruit.com/product/2107 - tanpa afiliasi, tautan pertama dari Google.
Abligh

@abligh meskipun saya setuju dengan fakta bahwa papan ini ada, saya tegaskan: memiliki papan seperti itu memecahkan masalah yang salah .
Marcus Müller

1
@ MarcusMüller Yang, seperti yang saya katakan, kasus tepi. Anda secara pribadi mungkin berinteraksi sebagian besar dengan STP, tetapi UTP masih merupakan pilihan yang lebih umum secara keseluruhan, AFAIK. Dalam kasus apa pun, STP biasanya hanya didasarkan pada satu ujung , jadi itu pun bukan masalah.
Bob

6

Saya terutama bekerja dengan Arduino dan pengembangan elektronik berbasis PIC untuk mengendalikan mesin cuci dan mesin penjual otomatis (Itu bukan perangkat yang sama yang menghancurkan kedua laptop). Karena terutama hanya risiko tegangan tinggi akan penggunaan dioda zener menjadi solusi murah sederhana atau akankah itu mengacaukan sisi data hal?

Baik. Karena Anda menyebutkan "penggunaan dioda zener" untuk melindungi dari "tegangan tinggi" yang tidak jelas, kami sekarang memiliki satu titik data yang andal: Anda tidak tahu apa yang sedang Anda lakukan.

Oleh karena itu, Anda memerlukan isolator USB untuk melindungi port laptop dari diri Anda. Saya merasa kasihan dengan laptop itu, btw.

Maksudku, laptop terisolasi dari tanah karena catu daya mereka tidak di-ground. Jadi, meniup port USB laptop itu seperti ... sulit ... Bagaimana tepatnya Anda bisa melakukannya? Apakah Anda mengirim tegangan listrik ke port USB atau sesuatu?


2
+1 untuk "tidak tahu tentang", dan saya ingin memberi +1 lain untuk "meniup port USB laptop seperti ... sulit ..."
Ale..chenski

Nah, jika mikro yang sedang diprogram ini ditenagai oleh penetes kapasitor langsung dari listrik atau semacam suplai yang tidak terisolasi ... Saya bahkan tidak yakin port USB akan meledak, ground internal laptop hanya akan berada di listrik tegangan (dan sangat berbahaya!) Sekarang, jika mikro digunakan untuk mengontrol mesin cuci (yaitu, beban induktif yang besar) maka, yah, hal-hal lain juga bisa salah!
peufeu

"Laptop terisolasi dari tanah karena catu daya mereka tidak di-ground." Tidak benar (setidaknya dalam satu contoh anekdotal). Saat menggunakan laptop dari vendor utama, dan adaptor pengganti yang memiliki reputasi baik (yang pertama mati), kabel USB saya terhubung ke ground. Saya hanya menemukan ini ketika saya mencoba menyelidiki rangkaian yang sedang diuji dengan cakupan yang juga terhubung ke ground, tetapi dengan klip ground yang salah pada simpul yang berbeda dari ground USB. Memutuskan hubungan pasokan laptop dan menghabiskan baterai memperbaiki semua ini.
nanofarad

6
-1 untuk 80% pesannya adalah ad-hominem dan sarkasme. Saya tahu itu meme dalam diskusi elektronik, tapi tolong.
AnoE

1
@AliChen Bukan itu masalahnya. Saya meniup sekring di sirkuit saya tepat sebelum monitor saat ini yang merupakan bagian dari sirkuit (dan di ground loop) merekam transien yang sangat tinggi. Ini jelas tidak berada dalam kisaran milliamp.
nanofarad

2

Karena Anda menggunakan Arduino sebagai basis, solusinya mudah .... gunakan prosesor sekali pakai untuk pemrograman dan debugging. Lingkungan pengembangan Arduino sangat cocok dengan Raspberry Pi yang dapat Anda gunakan dari lingkungan tertanam Anda dan berbicara dengan nirkabel dari laptop Anda yang tersisa atau mungkin desktop.

Ini tidak akan mencegah Anda menggoreng Raspberry Pi, tetapi itu akan mengurangi biaya kegagalan sirkuit hingga sekitar $ 35.


2
Saya pikir sampai akar penyebab meledakkan port laptop didirikan, saran akan menjadi prematur. Kita tidak tahu seberapa gila pemasangan mesin cuci itu, kabel hitam dan putih bisa ditukar, dan bumi terlepas. Maka itu bisa menggoreng apa saja, Pi atau tidak. Saya harap OP memiliki asuransi jiwa yang bagus ...
Ale..chenski

Saya tidak setuju .... saran apa pun yang membuat lingkungan kurang mungkin untuk dikompromikan harus dipertimbangkan.
Jack Creasey

2
Itu memang ide baru - pada dasarnya argumennya adalah bahwa pi (lebih seperti $ 5 + $ 5 kartu + $ 5 wifi) mungkin sekarang lebih murah daripada isolator USB. Namun, tidak ada apa pun tentang bahaya yang mungkin terjadi dalam sistem yang dapat bertahan di luar fase rekayasa.
Chris Stratton

1
@ ChrisStratton Ini hanya tentang mengelola risiko. Dalam suatu sistem di mana Anda mungkin memiliki kegagalan perkembangan bencana Anda akan mengisolasi baik peralatan dan manusia dari risiko kegagalan potensial. Anda dapat membeli peralatan profesional atau roll sendiri ... Saya hanya menyarankan roll yang layak solusi Anda sendiri. Kritik Ali Chen adalah IMO tidak valid karena untuk beberapa kegagalan selama pengembangan akar penyebabnya mungkin berbeda. Sudah terlambat sekali api sudah mulai.
Jack Creasey

Maksud saya adalah jika kabel listrik tidak terisolasi dengan norma dalam kasus khusus ini, tidak ada jumlah Pis di depan laptop akan aman untuk port dan pengguna. Itu yang saya maksudkan.
Ale..chenski

0

Ok, setelah banyak klarifikasi dan berbagai kasus yang disajikan, izinkan saya menawarkan solusi untuk masalah bagaimana melindungi laptop dari penggorengan di lingkungan servis lapangan:

  1. Selalu sambungkan alat uji / diagnostik Anda ke objek layanan terlebih dahulu, dan nyalakan kembali.

  2. Sebelum menghubungkan peralatan ke laptop, periksa apakah ada tegangan yang mencurigakan antara pelindung USB menggunakan DMM impedansi rendah (standar 10-20k), antara port DUT, dan port laptop, baik dalam mode DC dan AC.

  3. Jika tegangan signifikan ditemukan (5 - 10 - 50 V), gunakan transformator isolasi sejati di salah satu ujungnya.


0

Menggunakan Pi / Beaglebone / Tinkerbox melalui WiFi akan menjadi murah dan mudah. CHIP terlihat bagus, lihat https://getchip.com/pages/chip . $ 5-9 per perangkat. Anda dapat membunuh 7 CHIP dengan harga 1 Pi3. Jelas Anda masih perlu mengatasi masalah yang mematikan tegangan mencapai port USB, tetapi setidaknya workstation Anda akan aman. Namun, jangan menghubungkannya ke LAN Anda dengan ethernet.

Mentransfer file hanyalah masalah menggunakan akses ssh tanpa kata sandi berbasis kunci ke file scp ke Pi / lainnya dan shell jarak jauh untuk mengunggah. Untuk arduino, ada paket arduino-mk, dan ada alat serupa untuk PIC. Tidak diragukan lagi Anda juga dapat hanya menyimpan file Anda pada pangsa SMB / CIFS yang diekspor, dan menggunakan remote shell untuk membuat dan mengunggahnya ke papan Anda.

Jika tegangan mati terjadi lagi, Anda hanya akan kehilangan $ 30-35.

Saya masih belum mengetahui bagaimana voltase ini bisa melintasi MCU Anda dan masuk ke port USB. Apakah ini singkat? Dari mana asalnya? Saya telah menghancurkan banyak klon arduino, dan saya benar-benar ingin tahu.

Juga, port USB biasanya disatukan dengan voltase sedang. Anda sebenarnya perlu menempatkan tegangan negatif pada pin 5V untuk mematikan port (atau positif ke pin GND), controller dan mungkin motherboard. Bagaimana Anda mengelola pembunuhan dua laptop? Mungkinkah itu keajaiban arus bolak-balik di tempat kerja?

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.