อุปกรณ์ USB ที่มี 2 พอร์ต - วิธีการป้องกันการเสียบของผู้ใช้ทั้งสอง


11

ฉันมีอุปกรณ์ USB ความเร็วเต็มซึ่งฉันต้องการให้ 2 พอร์ตสำหรับ - แต่ละอันอยู่ตรงข้ามปลายของกล่องหุ้ม นี่คือเพื่อให้สามารถเชื่อมต่อสายเคเบิลได้ทุกที่ที่สะดวกที่สุด My MCU (atmega32u4) มีเพียงหนึ่งอินเตอร์เฟสดังนั้นฟิสิคัลพอร์ตจะแบ่งใช้ แต่ควรเสียบเพียงหนึ่งครั้งเท่านั้น

แน่นอนว่าผู้ใช้ไม่น่าเชื่อถือที่จะไม่เสียบทั้งสองด้านพร้อมกัน จะป้องกันได้อย่างไร?

ความคิดที่ฉันคิดไว้:

  • เพียงแค่เชื่อมโยงพวกเขา "ตามที่เป็น" และหวังว่าโฮสต์สามารถจัดการกับหมุด D + / D- เข้าร่วม
  • เกท NAND ที่มีหมุด 5V แยกเป็นอินพุตเอาต์พุตไปยัง MOSFET ที่ตัดการเชื่อมต่อ Vcc เมื่อเสียบปลั๊กทั้งคู่

ตัวเลือกที่สองฟังดูสมเหตุสมผลหรือเป็นวิธีแก้ปัญหาที่ซับซ้อนกว่านี้หรือไม่?


คุณจะเสนอการเดินสายสองพอร์ตเพื่อเชื่อมต่อ D + และ D- เข้าด้วยกันได้อย่างไร คุณควรเพิ่มไดอะแกรมเพื่ออธิบายเค้าโครงที่คุณเสนอ
Solar Mike

@SolarMike ใช้ร่วมกันระหว่างสอง - ในสถานการณ์ "ถูกต้อง" ด้วยการเชื่อมต่อด้วยสายเคเบิลเพียงเส้นเดียว D + / D- ของตัวเชื่อมต่ออื่น ๆ จะถูกทิ้งให้ห้อยลง
monty

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

4
อย่าลืมเกี่ยวกับผู้ใช้ที่ค้นหาสายเคเบิล USB แบบตัวผู้และเสียบอุปกรณ์เข้ากับตัวเอง !!!
RozzA

คำตอบ:


23

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

อย่างไรก็ตามคุณยังมีปัญหาหากเสียบปลายด้านเดียวเท่านั้น USB โดยเฉพาะโหมดความเร็วสูง (480Mbps) จะถูกควบคุมความต้านทาน หากคุณเชื่อมต่อสายข้อมูลทั้งสองเข้าด้วยกันคุณจะได้สิ่งที่เรียกว่า stub ในการออกแบบความถี่สูง สายเคเบิลที่ไปยังขั้วต่อที่ไม่ได้ใช้จะทำให้ประสิทธิภาพของขั้วต่อที่ใช้งานลดลง

หากต้องการทำสิ่งนี้อย่างถูกต้องคุณต้องมีมัลติเพล็กเซอร์ คุณสามารถซื้อ multiplexers USB2.0 ทุ่มเทออกแบบมาโดยเฉพาะสำหรับการจัดเรียงของโปรแกรมนี้ - สิ่งที่ต้องการTS3USB30 ซึ่งจะช่วยให้คุณสามารถเชื่อมต่อสายข้อมูลจากทั้งสองพอร์ตเข้ากับอินพุต mux และเชื่อมต่อเอาต์พุตไปยังอุปกรณ์ของคุณภายใน mux จะตัดการเชื่อมต่อตัวเชื่อมต่อที่ไม่ได้ใช้ซึ่งจะตัดการเชื่อมต่อสายส่งสัญญาณ

สำหรับพลังงานฉันอาจใช้ power multiplexer เช่นวงจร diode หรือ -ing บรรทัด VBUS จากพอร์ตใดพอร์ตหนึ่ง (ก่อนที่จะใช้มัลติเพล็กเซอร์) สามารถใช้เป็นอินพุตไปยังมัลติเพล็กเซอร์ข้อมูลได้

กราวด์จะเป็นเรื่องปกติ (เชื่อมต่อ) ระหว่างสองพอร์ต USB และอุปกรณ์ของคุณ


1
ฉันไม่ได้พิจารณาสตับ - มัลติเพล็กเซอร์นั้น (รวมกับเพาเวอร์มัลติเพล็กซ์) ดูดีมาก!
monty

3
ต้นขั้วไม่ควรมีปัญหาที่ Full Speed ​​ซึ่งเป็นสิ่งที่คุณถามในคำถามของคุณ
Dave Tweed

1
@DaveTweed ฉันเพิ่มการชี้แจงความเร็วเต็มหลังจากที่ฉันรู้คำตอบนี้ครอบคลุมความเร็วสูง รู้ว่าฉันสามารถ "หนีไปกับมัน" เป็นสิ่งที่ดีสำหรับการออกแบบนี้ แต่ฉันรู้สึกซาบซึ้งที่ได้ทราบถึงผลกระทบที่ความเร็วสูง
monty

ตอนนี้ผมกำลังสนใจอย่างแท้จริงวิธีที่จะทำให้การสนับสนุน atmega32u4 480Mbps :)
Dmitry Grigoryev

9

เครื่องมัลติเพล็กเซอร์ตามที่ Tom Carpenter แนะนำเป็นวิธีแก้ปัญหาที่ดี

แต่สำหรับ USB ความเร็วเต็มที่ (12 Mbps) สัญญาณที่ไม่สมบูรณ์นั้นไม่สำคัญเป็นพิเศษ หากระยะห่างระหว่างปลายต้นขั้วยังคงต่ำกว่า 1 / 10th ของความยาวคลื่นเช่นต่ำกว่า ~ 2 เมตรการสะท้อนกลับจะไม่บิดเบือนรูปคลื่นมากนัก

นอกจากนี้ระดับแรงดันไฟฟ้าของ D + และ D- หมุดจะยังคงอยู่ในช่วงที่ยอมรับได้ดังนั้นจึงไม่มีความเสี่ยงที่จะเกิดความเสียหายทางอิเล็กทรอนิกส์กับโฮสต์ทั้งสอง

ปัญหาหลักที่ยังคงอยู่คือถ้าคุณเชื่อมต่อหมุด + 5V จากโฮสต์ทั้งสองเข้าด้วยกันอาจมีกระแสขนาดใหญ่เข้ามาเกี่ยวข้อง คุณสามารถใช้ไดโอดจากขา + 5V ของขั้วต่อ USB แต่ละตัวเพื่อให้กระแสเข้ามาเท่านั้น


4

วิธีการออกแบบอิเลคตรอนแบบขี้เกียจจะใช้สวิตช์ตัวเชื่อมต่อหลายตัวเพื่อเลือกว่าจะใช้ตัวใด

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


2

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

ที่ดีที่สุดคุณสามารถใช้มัลติเพล็กเซอร์ USB หรือสวิตช์ IC ด้วย GPIO เพื่อตรวจสอบว่ามีการเชื่อมต่อตัวเชื่อมต่อใด คุณจะต้องตัดสินใจว่าการเชื่อมต่อ USB ใดที่มีความสำคัญเนื่องจากทั้งสองไม่สามารถเชื่อมต่อกับอินเตอร์เฟส USB ของคุณได้ในเวลาเดียวกัน

หรือดูทางเลือกอื่น ให้คอมพิวเตอร์เครื่องหนึ่งสื่อสารกับอีกเครื่องหนึ่ง หรือใช้บลูทู ธ หรือใช้ Wi-Fi หรือประเภทการเชื่อมต่ออื่น


ฉันได้เพิ่มความกระจ่างให้กับคำถาม - มีเพียงหนึ่งพอร์ตเท่านั้นที่จะถูกใช้ในครั้งเดียวและ (หวังว่า) ประตู NAND สามารถแก้ไขปัญหาที่มีมาก่อนได้โดยง่าย ๆ โดยปฏิเสธ "สถานการณ์ทั้งสองเสียบ"
monty

สถานการณ์แบบหายนะแบบไหนที่คุณคิดว่านำไปสู่
jpa

1
@jpa สมมติว่าทั้งสองระบบมีศักยภาพ "กราวด์" ที่แตกต่างกัน 50V การเชื่อมต่อพวกเขาทั้งสองเข้ากับ D- อาจเป็น "น่าสนใจ" แม้ว่าศักยภาพจะแตกต่างกันเพียง 50mV คุณอาจสร้าง "กราวด์กราวด์" ที่สร้างเสียงรบกวน
alephzero

1
@alephzero แน่นอน แต่แม้แต่มัลติเพล็กเซอร์ทั่วไปหรือสวิทช์ IC ก็ไม่สามารถจัดการได้ การเชื่อมต่อภาคพื้นดินก่อนในตัวเชื่อมต่อ USB ส่วนใหญ่จะขจัดปัญหาดังกล่าว
jpa

2

ฉันมีแท็บเล็ต Wacom พร้อมคุณสมบัตินี้ พวกเขาจัดการกับปัญหาที่คุณอธิบายโดยใช้ลูกโซ่เชิงกล

มีแถบเลื่อนพลาสติกที่กั้นพอร์ตหนึ่งพอร์ตหรือพอร์ตอื่นขึ้นอยู่กับตำแหน่งของพอร์ต

ป้อนคำอธิบายรูปภาพที่นี่


1

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

อีกทางเลือกหนึ่งคือการค้นหาทั้งสองพอร์ตที่ด้านหนึ่งของตู้ (ที่ปลายตรงข้าม) และเพิ่มต้นขั้วเลื่อนภายในสิ่งที่แนบซึ่งผู้ใช้สามารถย้ายเพื่อเปิดพอร์ตหนึ่งหรืออื่น ๆ 12 MHz USB มีโอกาสที่ดีในการทำงานกับพอร์ตที่ไม่ได้เชื่อมต่อเป็นพิเศษ

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.