การแย่งแบนด์วิดท์ USB — ทำไมอุปกรณ์ช้าพร้อมกัน

ความเชื่อทั่วไปว่าพอร์ต USB แต่ละพอร์ตเป็นเลนอิสระเป็นเรื่องผิด อุปกรณ์ที่แชร์ลิงก์อัปสตรีม ฮับ โดเมนความเร็ว หรือทรัพยากรการกำหนดเวลาคอนโทรลเลอร์เดียวกันแย่งแบนด์วิดท์กัน ขณะที่อุปกรณ์บนเส้นทางแยกไม่แข่ง เมื่ออุปกรณ์ที่ใช้แบนด์วิดท์มากเช่นกล้องหรือไดรฟ์ภายนอกทำงานบนคอนโทรลเลอร์เดียวกับอุปกรณ์อื่น ทั้งหมดช้าลงได้ คู่มือนี้อธิบายโทโพโลยี USB จริง ระบุอาการของการแย่ง และให้กลยุทธ์เชื่อมต่อใหม่ที่ผู้ใช้ส่วนใหญ่ไม่เคยเรียนรู้ ตัวเลขและตัวอย่างเป็นค่าอ้างอิงทั่วไป ความเร็วจริงขึ้นกับคอนโทรลเลอร์ สาย อุปกรณ์ และระบบปฏิบัติการ

คนส่วนใหญ่สันนิษฐานว่าพอร์ต USB ทุกพอร์ตบนคอมพิวเตอร์เป็นเลนอิสระที่มีการเชื่อมต่อส่วนตัวไปยังระบบ เสียบไดรฟ์ในพอร์ตหนึ่งและกล้องในอีกพอร์ตหนึ่ง ความคาดหวังตามธรรมชาติคือทั้งสองไม่สามารถส่งผลต่อกันได้ ถามผู้ใช้สิบสองคนว่าทำไมอุปกรณ์ของพวกเขาช้าพร้อมกัน ส่วนใหญ่จะโทษอุปกรณ์ สาย หรือระบบปฏิบัติการ โมเดลความคิดนั้นผิด และเป็นเหตุผลที่การแก้ปัญหา USB หลายครั้งจบลงด้วยความผิดหวัง

พอร์ต USB ไม่ใช่อิสระ จัดกลุ่มใต้คอนโทรลเลอร์ และอุปกรณ์ทุกตัวที่ต่อกับคอนโทรลเลอร์เดียวแชร์บัสเดียวที่มีแบนด์วิดท์รวมคงที่ เมื่ออุปกรณ์บนบัสนั้นต้องการมากกว่าที่มันจ่ายได้ พวกมันแข่งกัน และทุกคนบนบัสช้าลง — รวมถึงอุปกรณ์ที่ใช้แบนด์วิดท์น้อยมาก การแข่งขันนั้นคือ การแย่งบัส

การแย่งอธิบายอาการลึกลับยาวๆ: เว็บแคมที่ดรอปเฟรมเมื่อไดรฟ์ภายนอกเริ่มคัดลอก เสียงแตกเมื่อปริ้นเตอร์เริ่มพิมพ์ MIDI คอนโทรลเลอร์ที่ตัดการเชื่อมต่อกลางการแสดง ในหลายกรณีอุปกรณ์ไม่เสีย — มันถูกอดอาหาร และการอดอาหารเกิดจากเลย์เอาต์การเชื่อมต่อไม่ใช่ฮาร์ดแวร์ ย้ายอุปกรณ์เดียวกันไปพอร์ตอื่นปัญหามักหาย ซึ่งเป็นเหตุผลที่อุปกรณ์ต่อพ่วงเหมือนกันทำงานได้สมบูรณ์บนเครื่องเพื่อน ข้อสังเกต: ความผิดปกติของ USB ยังอาจมาจากการจ่ายไฟ คุณภาพสาย บั๊กไดรเวอร์ การกำหนดเวลาคอนโทรลเลอร์ ขีดจำกัดการส่งแบบไอโซโครนัส การรบกวน RF ของ USB 3.x หรือปัญหาเฟิร์มแวร์ — การแย่งแบนด์วิดท์เป็นผู้สมัครหลักที่ควรตรวจก่อน ไม่ใช่คำอธิบายสากล

ข่าวดีคือการแย่งสามารถวินิจฉัยและมักแก้ได้โดยจัดเรียงพอร์ตที่มีอยู่ ตัวอย่างที่ยกบ่อย: Logitech C920 เว็บแคมดรอปเฟรมบน Dell XPS 15 แก้โดยย้าย Samsung T7 ไปคอนโทรลเลอร์อื่น — การแก้ไม่มีค่าใดๆ (นี่เป็นกรณีตัวอย่างที่ผู้ใช้รายงาน ไม่ใช่การวัดในห้องแลปควบคุมที่มีสกรีนช็อตโทโพโลยีหรือวันทดสอบ) หน้านี้อธิบายโทโพโลยี USB ทำงานจริงอย่างไร ทำไมรูปแบบการเชื่อมต่อบางรูปแบบทำให้อุปกรณ์อดอาหาร และจะจัดเรียงพอร์ตเพื่อลดหรือกำจัดปัญหาได้อย่างไร ตัวเลขแบนด์วิดท์ที่นี่มาจากการตั้งค่าทั่วไป — Realtek RTL8153 USB-to-Ethernet adapter บนบัส USB 2.0 ทำงานต่างจาก Samsung T7 drive บนคอนโทรลเลอร์ USB 3.0 มาก ความเร็วจริงขึ้นกับคอนโทรลเลอร์ สาย และเฟิร์มแวร์อุปกรณ์เฉพาะของคุณ แผนภาพโทโพโลยีบัส USB พร้อมคอนโทรลเลอร์ รูทฮับ และอุปกรณ์ที่เชื่อมต่อแสดงแบนด์วิดท์ร่วม

โทโพโลยี USB ทำงานจริงอย่างไร

การจราจร USB เป็นไปตามลำดับชั้นเข้มงวด ด้านบนสุดคือ โฮสต์คอนโทรลเลอร์ ชิปบนเมนบอร์ดที่รันโปรโตคอล USB ในนามของระบบ แต่ละคอนโทรลเลอร์เป็นเจ้าของหนึ่งหรือมากกว่า รูทฮับ ซึ่งสิ้นสุดที่พอร์ตทางกายภาพที่คุณเห็นบนแผงหลัง สายและ ดาวน์สตรีมฮับ ภายนอกขยายบัสออกไป และอุปกรณ์เชื่อมต่อที่ปลาย อุปกรณ์แข่งจริงหรือไม่ขึ้นกับว่าแชร์ลิงก์อัปสตรีม ฮับ โดเมนความเร็ว และทรัพยากรการกำหนดเวลาคอนโทรลเลอร์เดียวกันหรือไม่ อุปกรณ์บนโดเมนความเร็วแยก (USB 2.0 เทียบกับ USB 3.x) หรือบนสาขารูทฮับแยกใต้คอนโทรลเลอร์เดียวกันอาจไม่แข่งเลย — การเห็นชื่อคอนโทรลเลอร์เดียวกันไม่พิสูจน์ว่าดึงจากบัสเดียว อย่างไรก็ตาม การถือว่าทุกอย่างใต้คอนโทรลเลอร์หนึ่งเป็นส่วนร่วมเป็นสมมติฐานปลอดภัยเมื่อวินิจฉัยการแย่ง

ในระบบสมัยใหม่คอนโทรลเลอร์อยู่ในชิปเซตแทนที่จะเป็นชิปแยก ซึ่งเป็นเหตุผลที่เลย์เอาต์พอร์ตเมนบอร์ดดูไม่เป็นระเบียบ ผู้ผลิตกำหนดว่าพอร์ตทางกายภาพใดเชื่อมต่อกับคอนโทรลเลอร์ใด และการจัดกลุ่มนั้นไม่พิมพ์ที่ไหนบนเคส พอร์ตหลังสี่ตัวอาจอยู่ใต้คอนโทรลเลอร์เดียวขณะที่ส่วนหัวแผงหน้าเชื่อมต่ออีกตัว โดยไม่มีเครื่องหมายทางสายตา วิธีเดียวที่จะเรียนรู้การจัดกลุ่มคือตรวจสอบในซอฟต์แวร์

ฮับภายนอกขยายต้นไม้ลึกขึ้นอีกระดับ แต่ไม่สร้างบัสใหม่ — เพิ่มสาขาดาวน์สตรีมไปยังคอนโทรลเลอร์เดียวกัน และทุก hop เพิ่มเลเทนซีเล็กน้อย กฎปฏิบัติคือฮับเพิ่มตัวเลือกการเชื่อมต่อขณะแชร์งบประมาณแบนด์วิดท์เดียว

Windows Device Manager จัดกลุ่มการเชื่อมต่อ USB ใต้ Universal Serial Bus controllers แต่ละรายการ USB Root Hub เป็นสาขาของต้นไม้ USB แต่สังเกตว่าโฮสต์คอนโทรลเลอร์เดียวอาจจัดการหลายรูทฮับและ Device Manager ไม่เปิดเผยการจัดกลุ่มคอนโทรลเลอร์ทางกายภาพเต็ม สำหรับมุมมองโทโพโลยีที่แม่นยำกว่า เครื่องมือเช่น USB Device Tree Viewer หรือ USBView แสดงลำดับชั้นคอนโทรลเลอร์-ฮับ-อุปกรณ์จริง macOS แสดงข้อมูลเดียวกันใน System Report ใต้ USB และ Linux แสดงต้นไม้ด้วย lsusb -t

พิจารณาตัวอย่างจากเมนบอร์ดผู้บริโภคหลักๆ มักมีคอนโทรลเลอร์ USB 2-3 ตัว: คอนโทรลเลอร์ USB 2.0 ของชิปเซต คอนโทรลเลอร์ USB 3.x ของบุคคลที่สาม (มัก ASMedia หรือคล้ายกัน) และอาจมีคอนโทรลเลอร์ Thunderbolt ที่ยังรองรับ USB พอร์ตหลังจัดกลุ่มตามคอนโทรลเลอร์ ไม่ใช่ตามรุ่น การแม็ปที่แน่นอนแตกต่างกันไปตามผู้ผลิตและต้องตรวจสอบกับคู่มือเมนบอร์ดหรือเครื่องมือต้นไม้ USB

ลองจินตนาการสายไฟ: เว็บแคมบนพอร์ต USB 2.0 หลัง ไดรฟ์ภายนอกบนพอร์ต USB 2.0 หลังอีกตัว และรีซีเวอร์เมาส์บนตัวที่สาม ทั้งสามอยู่บนบัสเดียวกัน แข่งกันเพื่อประมาณ 280 Mbps ของความจุ ย้ายไดรฟ์ไปพอร์ต USB 3.0 บนคอนโทรลเลอร์ที่สอง และกล้องก็มีบัส USB 2.0 ให้ตัวเองทันที โทโพโลยี ไม่ใช่ฮาร์ดแวร์ เป็นคอขวด

นั่นคือประเด็นของการเรียนรู้โทโพโลยี: มันเปลี่ยนการสลับพอร์ตแบบสุ่มเป็นแผนตั้งใจ

แบนด์วิดท์ที่สำคัญจริง

แบนด์วิดท์เป็นภาษาของการแย่ง และสองตัวเลขสำคัญกว่าอย่างอื่น บัส USB 2.0 ได้รับการจัดอันดับที่ 480 Mbps ในทางทฤษฎี (USB-IF: USB 2.0 Specification, Section 5.7.6) หลังโอเวอร์ฮีดโปรโตคอล เพดานทางปฏิบัติอยู่ในช่วง 250-280 Mbps ของ throughput ที่ใช้ได้ (ประมาณ 30-35 MB/s) (USB-IF: USB 2.0 Specification) ขึ้นกับคอนโทรลเลอร์และโหลดระบบ บัส USB 3.0 ได้รับการจัดอันดับที่ 5 Gbps สูงกว่าประมาณสิบเท่า ที่เพดานทางปฏิบัติประมาณ 300-400 MB/s ขึ้นกับคุณภาพคอนโทรลเลอร์และสาย สังเกตหน่วย: Mbps คือเมกะบิตต่อวินาที MB/s คือเมกะไบต์ต่อวินาที 1 MB/s เท่ากับ 8 Mbps

เปรียบเทียบกับสิ่งที่อุปกรณ์ของคุณใช้จริง Logitech C920 บนบัส USB 2.0 สตรีมที่ประมาณ 35 Mbps ต่อเนื่องสำหรับ 1080p30 MJPEG เหลือประมาณ 245 Mbps สำหรับอุปกรณ์อื่น — และนี่ก่อนโอเวอร์ฮีดโปรโตคอลบนการส่งแบบไอโซโครนัส:

  • เว็บแคม 1080p ที่ 30 fps ในรูปแบบบีบอัดเช่น MJPEG หรือ H.264 มักสตรีมที่ 20-50 Mbps ขึ้นกับคุณภาพการเข้ารหัสของกล้อง — ช่วงที่สอดคล้องกับ Logitech C920 สตรีมที่ ~35 Mbps สำหรับ 1080p30 MJPEG และ OBSBOT Tiny 4K ต้องการ ~40-50 Mbps สำหรับ 1080p30 H.264 (Logitech Support: C920 Specifications; OBSBOT: Tiny 4K Streaming Guide) สตรีม YUY2 ที่ไม่บีบอัดที่ความละเอียดเดียวกันสูงกว่ามาก — มักหลายร้อย Mbps ขึ้นไป — ดังนั้นถือว่าตัวเลขบีบอัดเป็นช่วงโดยประมาณสำหรับรูปแบบบีบอัดเท่านั้น
  • SSD ภายนอก ระหว่างคัดลอกไฟล์ใหญ่มักรันที่ 100-400 MB/s (เมกะไบต์ต่อวินาที) ขึ้นกับไดรฟ์และอินเทอร์เฟซ ไดรฟ์ระดับสูงบางรุ่นเกินค่านี้ ไดรฟ์เชิงกลเก่าช้ากว่ามาก
  • ปริ้นเตอร์ ส่งข้อมูลเป็นพัลส์สั้นหนักขณะพิมพ์
  • เมาส์ คีย์บอร์ด หรือรีซีเวอร์ไร้สาย ใช้ไม่กี่กิโลบิตต่อวินาที น้อยมาก

เลขคือการเปิดเผย เสียบกล้องและไดรฟ์ภายนอกบนบัส USB 2.0 เดียวกัน ไดรฟ์เพียงลำพังก็สามารถใช้แบนด์วิดท์ทางปฏิบัติทั้งหมด ทำให้กล้องเหลือแทบไม่มี เพิ่มอุปกรณ์ทำงานตัวที่สาม และคอนโทรลเลอร์ไม่สามารถตอบสนองทั้งหมดได้ จึงบริการคำขอตามลำดับ อุปกรณ์ทุกตัวบนบัสได้รับผลความล่าช้า: ไดรฟ์คัดลอกช้าลง กล้องดรอปเฟรม และแม้เมาส์ก็รู้สึกไม่ตอบสนองเพราะแพ็กเก็ตการโพลลิ่งเล็กๆ ของมันคิวอยู่หลังการส่งข้อมูลใหญ่กว่า

การเข้าใจว่างบไปที่ไหนสำคัญกว่าตัวเลขดิบ กล้องและอินเทอร์เฟซเสียงหลายตัวเจรจาการส่งแบบไอโซโครนัส: จองสไลซ์ที่เกิดซ้ำของบัสล่วงหน้า ปกป้องสตรีมของตัวเองโดยเสียสละพื้นที่ให้อุปกรณ์อื่นน้อยลง บางอุปกรณ์ใช้การส่งแบบ bulk แทน ซึ่งแข่งต่างกัน — แต่ผลทางปฏิบัติเหมือนกันเมื่อบัสแออัด เมื่อสไลซ์ที่จองบวกการส่ง burst เกินเพดาน คอนโทรลเลอร์ลดการส่งแบบ best-effort และในกรณีที่แย่ที่สุดล้มเหลวการจอง — ซึ่งเป็นจังหวะที่กล้องเริ่มดรอปเฟรม

ตัวเลขยังอธิบายทำไม USB 3.0 ราวกับเป็นการแก้ทุกอย่าง เพดานทางปฏิบัติสูงกว่าตามลำดับความ — ได้รับการจัดอันดับที่ 5 Gbps ทางทฤษฎี (USB-IF: USB 3.0 Specification, Section 5.6.6) ที่เพดานจริงประมาณ 300-400 MB/s (Samsung T7 Portable SSD, ทดสอบที่ ~350 MB/s การอ่านต่อเนื่องบน USB 3.2 Gen 1) — ดังนั้นอุปกรณ์หนักสองหรือสามตัวสามารถอยู่ร่วมกันบนบัส 5 Gbps เดียวโดยไม่มีการแย่งที่สังเกตได้ แต่ตรรกะเดียวกันขยายขึ้น: ไดรฟ์หลายตัวเขียนคู่ขนานสามารถอิ่มตัวบัส USB 3.0 ได้ การแย่งตามความต้องการ ไม่ใช่ป้ายบนพอร์ต

สี่มายาคลาดเกี่ยวกับ USB

สี่ความเชื่อเกี่ยวกับแบนด์วิดท์ USB ทำให้เกิดการตั้งค่าผิดส่วนใหญ่ แต่ละข้อฟังสมเหตุผล แต่ละข้อถูกทำซ้ำบนฟอรัม และแต่ละข้อชี้ไปยังบทสรุปผิดเดียวกัน: โทษอุปกรณ์เมื่อเลย์เอาต์เป็นสาเหตุ

การแสดงการกระจายแบนด์วิดท์ USB แบบภาพแสดงวิธีที่อุปกรณ์หลายตัวแชร์คอนโทรลเลอร์บัสเดียว

มายาหนึ่ง: “USB 3.0 และ 2.0 เป็นอิสระ.” ทางไฟฟ้าแยก ใช่ — แต่บนเมนบอร์ดเท่านั้น ความซับซ้อนคือฮับ เสียบอุปกรณ์ USB 2.0 ในฮับ USB 3.0 ฮับที่ได้มาตรฐานมีเส้นทาง USB 2.0 และ SuperSpeed แยก ดังนั้นอุปกรณ์ 2.0 ทำงานที่ High-Speed 480 Mbps บนเส้นทาง USB 2.0 ตามที่คาด (USB-IF: USB 2.0 Specification) แต่ฮับเก่าบางตัวเจรจาอุปกรณ์ลงไป Full-Speed 12 Mbps (USB-IF: USB 2.0 Specification, Section 5.4.4) — ไม่มีคำเตือน ไม่มีข้อผิดพลาด ลดลงสิบเท่าหรือมากกว่าใน throughput โดยไม่มีข้อผิดพลาดหรือคำเตือน ตรวจความเร็วเจรจาใน Device Manager เสมอ

มายาสอง: “พอร์ตมาก แบนด์วิดท์มาก.” การเพิ่มฮับหรือเสียบอุปกรณ์ในพอร์ตที่เหลือไม่สร้าง throughput แผงหลังหกพอร์ตบนคอนโทรลเลอร์เดียวให้แบนด์วิดท์รวมเท่ากับพอร์ตเดียวบนคอนโทรลเลอร์นั้น พอร์ตมากเป็นความสะดวก ไม่ใช่แบนด์วิดท์ ฮับ USB 2.0 แปดพอร์ตยังส่งมอบประมาณ 280 Mbps ให้พอร์ตทั้งหมดรวมกัน — ฮับกำกับการเข้าถึงลิงก์อัปสตรีมเดียว ไม่ใช่งบต่อพอร์ต

มายาสาม: “รีซีเวอร์ไร้สายต้องการ USB 3.0 เพื่อความเร็ว.” รีซีเวอร์เมาส์หรือคีย์บอร์ดส่งไม่กี่กิโลบิตต่อวินาที — พอร์ต USB 2.0 มากกว่าพอหนึ่งพันเท่า ศัตรูตัวจริงคือการรบกวน RF สัญญาณ USB 3.0 สร้างสัญญาณกวงความถี่วิทยุประมาณ 2 ถึง 2.8 GHz (Logitech Support: USB 3.0 Interference Guide, 2013; Intel: USB 3.x Interference Whitepaper, 2015) ซึ่งทับซ้อนแบนด์ 2.4 GHz ที่รีซีเวอร์ใช้ เสียบข้างพอร์ต USB 3.0 และเสาอากาศอยู่ในโซนสัญญาณกวงวิทยุ ใช้พอร์ต USB 2.0 โดยตรงกับสายต่อจากกล่อง — สิ่งนี้มักแก้การสะดุดเมาส์ซ้ำๆ

มายาสี่: “การแย่งแบนด์วิดท์หายาก.” เป็นหนึ่งในสาเหตุที่มองข้ามบ่อยที่สุดของปัญหาอุปกรณ์ USB เพราะมันมองไม่เห็น อุปกรณ์ไม่ประกาศว่าถูกอดอาหาร มันดรอปเฟรม แตก สะดุด หรือตัดการเชื่อมต่อเป็นบางครั้ง — และอาการแต่ละอย่างถูกโทษอุปกรณ์ ผลคือสุสานของเว็บแคม อินเทอร์เฟซเสียง และไดรฟ์ที่ส่งคืน RMA ที่อาจทำงานสมบูรณ์บนเลย์เอาต์พอร์ตอื่น ถือว่าการแย่งเป็นผู้สมัครหลักที่ควรตรวจก่อนสำหรับความล้มเหลว USB แบบไม่ต่อเนื่อง — แต่ไม่ใช่สาเหตุที่เป็นไปได้เพียงอย่าง

แล็ปท็อปหรือเดสก์ท็อป? ปัญหาต่างกัน

แล็ปท็อปและเดสก์ท็อปล้มเหลวต่างกัน และโทโพโลยีอธิบายเหตุผล

แล็ปท็อปมี คอนโทรลเลอร์หนึ่งถึงสามตัว สำหรับทุกอย่าง: พอร์ต USB ทั้งหมด เว็บแคมในตัว และบลูทูธในตัว อุปกรณ์ต่อพ่วงทุกตัวที่คุณเสียบแข่งไม่เพียงกับอุปกรณ์ต่อพ่วงอื่นแต่กับฮาร์ดแวร์ในตัวบนบัสเดียวกัน แล็ปท็อปยังรวม Thunderbolt และ USB เข้าเป็นคอนโทรลเลอร์เดียวมากขึ้น ดังนั้นด็อกที่แบกรับจอ ไดรฟ์ และอุปกรณ์ต่อพ่วงส่งทุกอย่างผ่านบัสเดียว การจัดการพลังงาน BIOS ที่ก้าวร้าวยังสามารถพักหรือปิดคอนโทรลเลอร์แต่ละตัวเพื่อประหยัดแบตเตอรี่ ทำให้อุปกรณ์หายไปและกลับมาโดยไม่มีการเตือน

เดสก์ท็อปมักมี คอนโทรลเลอร์มากกว่า — สองถึงสี่ตัว — ซึ่งเป็นข้อได้เปรียบ อย่างไรก็ตาม เลย์เอาต์มักจัดกลุ่มพอร์ตหลังหลายตัวใต้คอนโทรลเลอร์เดียว และสายโซ่ฮับเดียวสามารถส่งอุปกรณ์กว่าโรงลงไปบัสเดียว ความล้มเหลวเดสก์ท็อปทั่วไปไม่ใช่การขาดคอนโทรลเลอร์แต่การกำหนดพอร์ตไม่ดี: อุปกรณ์หนักจบบนบัสเดียวกับทุกอย่างอื่น

ความแตกต่างทางปฏิบัติปรากฏในการแก้ บนแล็ปท็อป แก้การแย่งโดยจัดลำดับความสำคัญ: ตัดสินใจว่าอุปกรณ์ใดสมควรแบนด์วิดท์ที่ขาด และย้ายที่เหลือไปพอร์ต USB 2.0 ของด็อกหรือฮับมีพลัง บนเดสก์ท็อป แก้โดยกระจาย: แม็ปพอร์ตหลังและหน้าที่อยู่กับคอนโทรลเลอร์ใด แล้วกระจายอุปกรณ์หนักข้ามทั้งหมด

ตารางวินิจฉัยอาการ

แต่ละอาการด้านล่างชี้ไปยังสาเหตุที่เป็นไปได้มากที่สุด เปลี่ยนการเดาน่าผิดหวังเป็นสมมติฐานที่ตรวจได้

  • กล้องดรอปเฟรมแบนด์วิดท์อิ่มตัวบนคอนโทรลเลอร์ร่วม. กล้องสตรีมเป็นตัวบ่งชี้คลาสสิก: ใช้แบนด์วิดท์ต่อเนื่อง จึงเป็นอุปกรณ์แรกที่ล้มเห็นได้เมื่อมีอุปกรณ์อื่นบนบัสต้องการส่วนแบ่ง ถอดอุปกรณ์อื่นและกล้องกลับมาทันที นี่ก็เป็นเหตุผลที่ การทดสอบสตรีมจริงของเว็บแคม สามารถแสดงพรีวิวท้องถิ่นที่สะอาดในขณะที่สตรีมที่เข้ารหัสเสื่อมลง — บัสอาจทำให้กล้องอดตายก่อนที่ตัวเข้ารหัสจะทำงาน
  • เสียงแตกปัญหาแบนด์วิดท์หรือไฟบนฮับร่วม. อินเทอร์เฟซเสียงไวต่อเลเทนซี เมื่อบัสอิ่มตัว การส่งตามกำหนดเวลามาสาย และความล่าช้าปรากฏเป็นคลิกและแตก อาการมักปรากฏเฉพาะขณะอุปกรณ์ที่สองส่งข้อมูลอยู่
  • MIDI คอนโทรลเลอร์ตัดการเชื่อมต่อความไวต่อเลเทนซีบนบัสอิ่มตัว. MIDI พึ่งพาการส่งมอบเลเทนซีต่ำ เมื่อสล็อตการส่งของคอนโทรลเลอร์ถูกอดอาหาร โฮสต์ถือว่าอุปกรณ์ไม่ตอบสนองและตัดการเชื่อมต่อ เสียบใหม่กู้คืนจนกว่าจะเกิดการแย่งครั้งถัดไป
  • รีซีเวอร์ไร้สายสะดุดการรบกวน RF จาก USB 3.0 หรือการแย่งแบนด์วิดท์. หากรีซีเวอร์อยู่ข้างพอร์ต USB 3.0 สงสัย RF ก่อน หากทำงานตอนว่างแต่สะดุดภายใต้โหลด สงสัยบัส
  • ไดรฟ์ภายนอกคัดลอกช้าการแชร์แบนด์วิดท์กับอุปกรณ์ที่สองที่ทำงานอยู่. throughput ของไดรฟ์พังทลายเมื่อกล้องหรือไดรฟ์ตัวที่สองทำงานบนบัสเดียวกัน ไดรฟ์เดียวกันบนบัสว่างกลับสู่ความเร็วเต็มทันที
  • การตัดการเชื่อมต่อเป็นบางครั้งโหลดไฟหรือแบนด์วิดท์เกินขีดจำกัด. หากการตัดการเชื่อมต่อตามอุปกรณ์อื่นที่ยุ่ง สาเหตุคือแบนด์วิดท์ หากตามการเพิ่มอุปกรณ์ สาเหตุคือไฟ

การวินิจฉัยที่เร็วที่สุดคือเปลี่ยนโหลด อุปกรณ์ที่ทำงานสมบูรณ์เมื่อถอดอุปกรณ์อื่นทั้งหมด และทำผิดทันทีที่บัสยุ่ง เป็นเหยื่อการแย่ง การสังเกตเดียวนั้นแยกความล้มเหลวฮาร์ดแวร์จากความล้มเหลวเลย์เอาต์ในไม่กี่นาที

แม็ป แยก ทดสอบ

เมื่อคุณแม็ปคอนโทรลเลอร์และยืนยันอาการแล้ว การแก้คือการเชื่อมต่อใหม่ตั้งใจ ตัวอย่างทั่วไป: อินเทอร์เฟซเสียงแตกทุกครั้งที่ปริ้นเตอร์ทำงานเพราะทั้งสองแชร์บัส USB 2.0 เดียวกัน การทำตามลำดับนี้มักแก้ได้ในสิบนาที:

  1. ระบุคอนโทรลเลอร์ของคุณ. เปิด Device Manager และขยาย Universal Serial Bus controllers สังเกตว่า USB Root Hub แต่ละรายการเป็นสาขาของต้นไม้ USB ไม่ใช่คอนโทรลเลอร์แยกเสมอ โฮสต์คอนโทรลเลอร์เดียวอาจจัดการหลายรูทฮับ ใช้เครื่องมือโทโพโลยีเฉพาะเช่น USB Device Tree Viewer หรือ USBView สำหรับการแม็ปคอนโทรลเลอร์-อุปกรณ์ที่แม่นยำที่สุด
  2. จัดกลุ่มอุปกรณ์ที่ใช้แบนด์วิดท์มากบนคอนโทรลเลอร์แยก. ใส่กล้องบนคอนโทรลเลอร์หนึ่งและไดรฟ์ภายนอกบนอีกตัว บนเดสก์ท็อปมักหมายถึงคอนโทรลเลอร์หลังสำหรับกล้องและส่วนหัวแผงหน้า — มักเป็นคอนโทรลเลอร์ต่างกัน — สำหรับไดรฟ์
  3. ใช้พอร์ตเมนบอร์ดโดยตรงสำหรับอุปกรณ์สำคัญ. สำหรับเมาส์เกมมิ่ง อินเทอร์เฟซเสียง หรือ MIDI คอนโทรลเลอร์ ข้ามฮับและแผงหน้า เสียบตรงเข้า I/O หลังด้วยสายที่สั้นที่สุดที่สอดถึง
  4. ใช้ฮับมีพลังสำหรับอุปกรณ์ที่หิวไฟ ไม่ใช่แบนด์วิดท์. ฮับมีพลังทำให้อุปกรณ์ที่ดรอปจากไฟไม่เพียงพอเสถียร แต่ไม่เพิ่ม throughput อุปกรณ์หนักอยู่บนพอร์ตโดยตรง อุปกรณ์เสริมที่หิวไฟอยู่บนฮับ
  5. ย้ายรีซีเวอร์ไร้สายออกจาก USB 3.0. ใช้พอร์ต USB 2.0 หลัง หรือสายต่อของรีซีเวอร์ เพื่อให้เสาอากาศอยู่ห่างจากสัญญาณรบกวน USB 3.0
  6. ทดสอบใหม่ภายใต้โหลดหลังทุกการเปลี่ยนแปลง. เริ่มสตรีมกล้องและคัดลอกไดรฟ์พร้อมกัน เลย์เอาต์ถูกต้องเมื่อไม่มีอุปกรณ์ใดเสื่อม

เปรียบเทียบข้างกันแสดงเลย์เอาต์ USB ที่เหมาะสมกับเลย์เอาต์ที่มีปัญหาพร้อมการแย่งแบนด์วิดท์

การเชื่อมต่อใหม่ไม่มีค่าใดๆ และสามารถแก้กรณีการแย่งได้หลายกรณี หากอาการยังคงอยู่หลังเลย์เอาต์ถูกต้อง เพียงเท่านั้นอุปกรณ์เองสมควรการตรวจสอบ พร้อมการจ่ายไฟ คุณภาพสาย และการตั้งค่าไดรเวอร์

เบราว์เซอร์ไม่ใช่เครื่องมือโทโพโลยี

ในบรรดา API ที่เกี่ยวข้องกับ USB ของเบราว์เซอร์ WebHID เป็นสิ่งที่ไซต์นี้ใช้ มันสามารถระบุอุปกรณ์ HID ที่เชื่อมต่อเช่นคีย์บอร์ด เมาส์ และเกมคอนโทรลเลอร์ หลังได้รับอนุญาตจากผู้ใช้อย่างชัดเจน (API ของเบราว์เซอร์อื่นเช่น WebUSB จัดการอุปกรณ์ต่อพ่วงที่ไม่ใช่ HID แต่อุปกรณ์จัดเก็บข้อมูลและกล้องส่วนใหญ่ยังไม่เปิดเผยตัวเองผ่าน API ของเบราว์เซอร์ใดๆ) มันสามารถเปิดเผยข้อมูลอุปกรณ์พื้นฐานเช่นรหัสผู้ผลิตและรหัสผลิตภัณฑ์ แต่ ไม่ แสดงโทโพโลยีคอนโทรลเลอร์ USB แบบเต็ม การใช้แบนด์วิดท์ต่ออุปกรณ์ หรือลำดับชั้นคอนโทรลเลอร์-ฮับ-อุปกรณ์ WebHID ต้องการอนุญาตต่ออุปกรณ์และอุปกรณ์ต่อพ่วงหลายตัว — รวมถึงอุปกรณ์จัดเก็บข้อมูลและกล้องส่วนใหญ่ — ไม่เปิดเผยตัวเองผ่านเบราว์เซอร์เลย เครื่องมือข้อมูลอุปกรณ์ USB บนไซต์นี้ใช้ WebHID เพื่อแสดงอุปกรณ์ HID ที่เชื่อมต่อและรหัสผู้ผลิตและผลิตภัณฑ์ เป็นเครื่องมือช่วยระบุอุปกรณ์ ไม่ใช่ตัววิเคราะห์โทโพโลยี

สำหรับการแม็ปโทโพโลยีแบบสมบูรณ์ ใช้ USB Device Tree Viewer (Windows), USBView หรือ system_profiler SPUSBDataType (macOS) เครื่องมือระบบเหล่านี้แสดงต้นไม้คอนโทรลเลอร์-รูทฮับ-ฮับ-อุปกรณ์จริงและช่วยระบุอุปกรณ์ใดแชร์บัสเดียวกัน

จับคู่มุมมองเครื่องมือระบบกับ Device Manager สำหรับการแม็ปคอนโทรลเลอร์และกับ HWiNFO สำหรับ throughput ต่ออุปกรณ์ เครื่องมือระบบตอบว่าเชื่อมต่ออย่างไรและทำงานหนักแค่ไหน — ยืนยันการวินิจฉัยการแย่งก่อนถอดสายใดๆ

บทสรุป

USB เป็นแชร์ ไม่ใช่เฉพาะตัว พอร์ตทุกตัวบนคอมพิวเตอร์ของคุณเป็นประตูเข้าสู่บัสที่มีแบนด์วิดท์คงที่ และอุปกรณ์ทุกตัวที่เสียบเข้าบัสนั้นแบ่งกำลังการผลิตกัน เมื่ออุปกรณ์ช้าลงพร้อมกัน มักไม่ใช่อุปกรณ์เสีย — มักกำลังแย่งกัน

การแก้ไม่ค่อยต้องการฮาร์ดแวร์ใหม่ — และบางครั้งซ้อนทวน สิ่งที่ดีที่สุดคือถอด ไม่ใช่เพิ่ม ตัวอย่างที่รายงานบ่อย: Logitech C920 ที่ดรอปเฟรมตลอด แก้โดยถอดแฟลชไดรฟ์ที่แชร์คอนโทรลเลอร์เดียวกัน ซ้อนทวนแต่สมเหตุผล: การตั้งค่า USB ที่เร็วที่สุดมักมีอุปกรณ์น้อยลงบนแต่ละบัส ไม่ใช่มากขึ้น แม็ปโทโพโลยีของคุณ แยกอุปกรณ์ที่ใช้แบนด์วิดท์มากข้ามคอนโทรลเลอร์ต่างกัน รักษาอุปกรณ์ต่อพ่วงสำคัญบนพอร์ตเมนบอร์ดโดยตรง และให้รีซีเวอร์ไร้สายการเชื่อมต่อ USB 2.0 ที่สะอาด จากนั้นทดสอบเส้นทางการเชื่อมต่อจริง: รันสตรีมกล้องและคัดลอกไดรฟ์พร้อมกันและดูว่าสิ่งใดพัง เลย์เอาต์ที่ผ่านการทดสอบนั้นคือเลย์เอาต์ที่คุ้มรักษา

คำถามที่พบบ่อย

ทำไมกล้องวิดีโอดรอปเฟรมเมื่อฉันเสียบเมาส์?

อุปกรณ์ทั้งสองอาจเชื่อมต่อคอนโทรลเลอร์ USB เดียวกัน ไม่ว่าโดยตรงบนเมนบอร์ดหรือผ่านสายโซ่ฮับเดียวกัน สตรีมกล้อง 1080p ใช้ประมาณสามสิบถึงห้าสิบเมกะบิตต่อวินาที และบัส USB 2.0 มี throughput ทางปฏิบัติเพียงประมาณสองร้อยแปดสิบเมกะบิตหลังโอเวอร์ฮีดโปรโตคอล ที่ 30-50 Mbps กล้องปล่อยบัสส่วนใหญ่ของ 280 Mbps ให้ว่าง — แต่สไลซ์ไอโซโครนัสที่จองไว้บวกกับการส่งข้อมูลแบบ burst จากอุปกรณ์อื่นสามารถดันบัสเข้าใกล้เพดานทางปฏิบัติ เมื่อเกิดขึ้น คอนโทรลเลอร์ลดการส่งแบบ best-effort ทำให้เมาส์ แม้ใช้แบนด์วิดท์น้อยมาก รู้สึกไม่ตอบสนอง อุปกรณ์ทุกตัวบนบัสนั้นได้รับผลกระทบ

พอร์ต USB 3.0 เป็นอิสระจากพอร์ต USB 2.0 จริงหรือไม่?

ทางไฟฟ้า ใช่และไม่ใช่ USB 3.0 และ USB 2.0 ใช้เลนไฟฟ้าแยกบนคอนเนกเตอร์เดียวกัน ดังนั้นอุปกรณ์ USB 3.0 บนพอร์ต USB 3.0 ไม่แข่งกับอุปกรณ์ USB 2.0 สำหรับแบนด์วิดท์โดยตรง บนฮับ USB 3.0 ที่ได้มาตรฐาน เส้นทาง USB 2.0 และ SuperSpeed จัดการแยกกัน และอุปกรณ์ USB 2.0 มักทำงานที่ High-Speed 480 Mbps อย่างไรก็ตาม ฮับเก่าหรือคุณภาพต่ำ หรือปัญหาคุณภาพสายและสัญญาณเฉพาะ อาจทำให้อุปกรณ์เจรจาที่ความเร็วต่ำกว่าที่คาด เช่น Full-Speed 12 Mbps ตรวจความเร็วเจรจาจริงใน Device Manager เสมอ พอร์ตแยกทางไฟฟ้า แต่สถาปัตยกรรมฮับยังสร้างคอขวดที่ไม่คาดได้

USB hub แบ่งแบนด์วิดท์ให้อุปกรณ์ที่เชื่อมต่อหรือไม่?

USB hub ไม่แบ่งแบนด์วิดท์เหมือนสวิตช์เครือข่ายแบ่งพอร์ต อุปกรณ์ทั้งหมดที่เชื่อมต่อฮับเดียวกันแชร์ลิงก์อัปสตรีมเดียวไปยังคอนโทรลเลอร์ ฮับทำหน้าที่กำกับการเข้าถึงลิงก์อัปสตรีม หมายความว่าแบนด์วิดท์รวมที่พอร์ตปลายทางทั้งหมดรวมกันไม่สามารถเกินความจุพอร์ตอัปสตรีม USB hub 2.0 อัปสตรีมไปคอนโทรลเลอร์ให้สูงสุดสองร้อยแปดสิบเมกะบิตสำหรับพอร์ตรวมทั้งหมด ไม่ว่าเสียบอุปกรณ์กี่ตัว

ดูแบนด์วิดท์ USB ใน Device Manager ได้หรือไม่?

ไม่ได้ และนี่สำคัญ: Device Manager ไม่รายงานการใช้แบนด์วิดท์ แสดงเพียงว่าแต่ละอุปกรณ์ต่อกับคอนโทรลเลอร์ใดและทำงานที่ความเร็วใด แต่ไม่บอกว่าแบนด์วิดท์ที่มีถูกใช้ไปเท่าใดในขณะใดๆ ต้องใช้เครื่องมือของบุคคลที่สามเช่น USB Device Tree Viewer หรือ HWiNFO ซึ่งแสดง throughput ต่ออุปกรณ์ Device Manager มีประโยชน์สำหรับการแม็ปโทโพโลยี — ดูว่าอุปกรณ์ใดแชร์คอนโทรลเลอร์ — แต่ไม่ใช่การตรวจสอบแบนด์วิดท์แบบเรียลไทม์

ทำไมรีซีเวอร์เมาส์ไร้สายทำงานไม่ดีเมื่อเสียบใน hub USB 3.0?

สัญญาณ USB 3.0 สร้างการรบกวนความถี่วิทยุุในช่วงสองถึงสองจุดแปดกิกะเฮิรตซ์ ซึ่งทับซ้อนความถี่ที่รีซีเวอร์เมาส์และคีย์บอร์ดไร้สายส่วนใหญ่ใช้ การเสียบรีซีเวอร์ไร้สายในพอร์ตหรือฮับ USB 3.0 โดยเฉพาะผ่านสายสั้น วางเสาอากาศรีซีเวอร์ในโซนสัญญาณรบกวนที่ทำให้การเชื่อมต่อเสื่อม ใช้พอร์ต USB 2.0 บนเมนบอร์ดโดยตรง หรือใช้สายต่อที่มากับรีซีเวอร์ไร้สายเพื่อเคลื่อนมันออกจากพอร์ต USB 3.0

การเพิ่ม hub มีพลังแก้ปัญหาแบนด์วิดท์หรือไม่?

hub มีพลังช่วยเรื่องการจ่ายไฟ แต่ไม่เพิ่มแบนด์วิดท์ อุปกรณ์ทั้งหมดบนฮับเดียวกันยังแชร์ลิงก์อัปสตรีมเดียวไปยังคอนโทรลเลอร์ ดังนั้นการเพิ่ม hub มีพลังไปยังบัสที่อิ่มตัวไม่สร้าง throughput เพิ่ม hub มีพลังมีประโยชน์เมื่ออุปกรณ์ดรอปเพราะไฟไม่เพียงพอ ซึ่งเป็นปัญหาต่างจากการแย่งแบนด์วิดท์ เพื่อแก้การแย่งแบนด์วิดท์ ต้องย้ายอุปกรณ์ไปคอนโทรลเลอร์อื่น ไม่ใช่เพิ่มฮับไปยังคอนโทรลเลอร์เดียวกัน

ใช้พอร์ต USB เดียวสำหรับปริ้นเตอร์และกล้องพร้อมกันได้หรือไม่?

ทางเทคนิคได้ แต่ผลลัพธ์จริงขึ้นกับว่าแชร์คอนโทรลเลอร์หรือไม่และต้องการแบนด์วิดท์เท่าใด ปริ้นเตอร์มักส่งข้อมูลเป็น burst สั้นๆ ระหว่างพิมพ์แล้วพัก ขณะที่กล้องสตรีมต่อเนื่อง หากทั้งสองอยู่บนคอนโทรลเลอร์ USB 2.0 เดียวกัน สตรีมต่อเนื่องของกล้องอาจทำให้ปริ้นเตอร์อดแบนด์วิดท์ระหว่างพิมพ์ ทำให้พิมพ์ช้าหรือขาดการเชื่อมต่อ ทำงานได้ดีที่สุดบนคอนโทรลเลอร์แยก โดยเฉพาะถ้างานพิมพ์ใหญ่หรือกล้องสตรีมความละเอียดสูง

รู้ได้อย่างไรว่าคอมพิวเตอร์มีคอนโทรลเลอร์ USB กี่ตัว?

บน Windows เปิด Device Manager และขยาย Universal Serial Bus controllers แต่ละรายการที่ชื่อ USB Root Hub เป็นสาขาของต้นไม้ USB ไม่ใช่คอนโทรลเลอร์แยกเสมอ — โฮสต์คอนโทรลเลอร์เดียวอาจจัดการหลายรูทฮับ และ Device Manager ไม่เปิดเผยการจัดกลุ่มเต็มเสมอ อุปกรณ์ที่ระบุใต้ฮับแต่ละตัวแชร์แบนด์วิดท์บนบัสเดียวกัน บนเดสก์ท็อปทั่วไปจะเห็นสองถึงสี่คอนโทรลเลอร์ บนแล็ปท็อปหนึ่งถึงสาม macOS แสดงข้อมูลคอนโทรลเลอร์ใน System Report ใต้ USB และ Linux แสดงต้นไม้ผ่าน lsusb -t ข้อเข้าใจสำคัญคือพอร์ตที่จัดกลุ่มใต้โฮสต์คอนโทรลเลอร์เดียวกันแชร์แบนด์วิดท์ ขณะที่พอร์ตใต้คอนโทรลเลอร์ต่างกันไม่แชร์

บทความที่เกี่ยวข้อง