ในสาย USB มันตกลงเพื่อสลับ D + และ D- สายไหม?


54

ฉันได้ยินมาว่า D + และ D- เป็นสัญญาณที่แตกต่างกันมันสำคัญไหมถ้าฉันสลับมันเมื่อเชื่อมต่ออุปกรณ์ USB กับคอมพิวเตอร์?


คำถามที่น่าสนใจ ... ใช้ได้สำหรับโปรโตคอลที่แตกต่างที่ถูกต้องทั้งหมด .. เช่น CAN!
Swanand

คำตอบ:


58

สรุป

เมื่อเข้าและออกจากสถานะว่างขั้วมีความสำคัญและการสลับเส้น D + และ D- จะทำให้เกิดปัญหา

การส่งข้อมูล

ข้อมูล USB มีรหัส NRZซึ่ง "One" ถูกแสดงโดยไม่มีการเปลี่ยนแปลงในระดับกายภาพและ "Zero" แสดงโดยการเปลี่ยนแปลงในระดับกายภาพ (ดูรูปด้านล่าง) ดังนั้นการสลับสัญญาณ (ตัวอย่างเช่นโดยการสลับ D + และ D-) ทำให้ไม่มีการเปลี่ยนแปลงการทำงานระหว่างการส่งข้อมูล แต่อาจมีปัญหาก่อนและหลังการส่งข้อมูลซึ่งสามารถฆ่าการสื่อสารกับอุปกรณ์

กำลังออกจากสถานะ Idle

โฮสต์ประกอบด้วยตัวต้านทานแบบพูลดาวน์ 15 kΩในแต่ละบรรทัดข้อมูล เมื่อไม่มีการเชื่อมต่ออุปกรณ์สิ่งนี้จะดึงข้อมูลทั้งคู่ลงในสถานะที่เรียกว่า "ศูนย์จบเดียว" (SE0 ในเอกสารประกอบ USB) และระบุการเชื่อมต่อที่รีเซ็ตหรือตัดการเชื่อมต่อ อุปกรณ์ USB ดึงหนึ่งในสายข้อมูลสูงด้วยตัวต้านทาน 1.5 kΩ การทำเช่นนี้จะทำให้ตัวต้านทานแบบดึงลงตัวใดตัวหนึ่งในโฮสต์และออกจากสายข้อมูลในสถานะว่างที่เรียกว่า "J" สำหรับ USB 1.x ตัวเลือกของสายข้อมูลจะระบุว่าอัตราสัญญาณใดที่อุปกรณ์สามารถใช้งานได้ อุปกรณ์แบนด์วิธแบบเต็มดึง D + สูงในขณะที่อุปกรณ์แบนด์วิธต่ำจะดึง D− สูง

ในขณะที่ข้อมูลถูกเข้ารหัส NRZI ลำดับการซิงโครไนซ์และ EoP ถูกกำหนดในแง่ของสถานะคงที่ (J / K / SE0) เมื่อ D + และ D- ถูกสลับสถานะ J จะถูกสลับกับ K และ SE0 ยังคงเป็น SE0 (ทั้งสองเส้นอยู่ในระดับต่ำ) ดังนั้นลำดับการซิงค์และ EoP จะไม่ถูกต้องในการผกผัน ใน USB 1.x หากสลับ D + และ D- อุปกรณ์แบนด์วิธเต็มจะรับรู้ว่าเป็นแบนด์วิดธ์ต่ำและในทางกลับกัน ดังนั้นอุปกรณ์จะไม่สื่อสารด้วยความเร็วเท่ากับโฮสต์

เข้าสู่สถานะว่าง

ปลายแพ็คเก็ต USB ที่เรียกว่า EOP (end-of-packet) ถูกระบุโดยเครื่องส่งสัญญาณที่ขับ SE2 2 เท่า (D + และ D− ทั้งสองด้านล่างสูงสุด) และเวลา 1 บิตของสถานะ J หลังจากนั้นตัวส่งสัญญาณจะหยุดการขับเคลื่อนเส้น D + / D− และตัวต้านทานแบบดึงขึ้นดังกล่าวถือในสถานะ J (ไม่ได้ใช้งาน)

ด้วยไดรเวอร์ที่สลับ D + / D- โฮสต์จะเห็นลำดับ (SE0, SE0, K) แทนการแก้ไขที่ถูกต้อง (SE0, SE0, J) จากนั้นโฮสต์อาจล้มเหลวในการจดจำจุดสิ้นสุดของแพ็กเก็ตซึ่งจะทำให้เกิดปัญหา

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

ข้อสรุป

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

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

ที่มา: วิกิพีเดีย

แก้ไข: ขอบคุณผู้ที่แสดงความคิดเห็น ฉันเพิ่มการเน้นและรายละเอียดจากบันทึกที่เป็นประโยชน์ของคุณ


2
ควรสังเกตว่าโฮสต์ทำการแยกความเร็วต่ำ / เต็มโดยบรรทัดที่ดึงขึ้นมา หากคุณสลับสาย D + / D- อุปกรณ์จะไม่สื่อสารด้วยความเร็วเท่ากับโฮสต์ นอกจากนี้ในขณะที่ข้อมูลมีการเข้ารหัส NRZI ลำดับการซิงค์และ EoP จะถูกกำหนดในแง่ของ J / K / SE0 และจะกลายเป็นไม่ถูกต้องในการผกผัน
avakar

2
ฉันสามารถพูดจากประสบการณ์ที่แลกเปลี่ยน D + / D- ผลลัพธ์ในอินเตอร์เฟส USB ที่ไม่ทำงาน ฉันต้องทำต้นแบบใหม่ที่มีฮับ USB ในตัว ไม่ค่อยสนุกเท่าไหร่
akohlsmith

@avakar ขอบคุณสำหรับรายละเอียด ฉันคิดว่าคำตอบนั้นครอบคลุมส่วนใหญ่ในเวลาสั้น ๆ แต่ฉันจะพยายามเพิ่มรายละเอียดเพื่อให้ชัดเจนยิ่งขึ้น
travisbartley

@Andrew Kohlsmith มันเป็นข้อมูลที่เป็นประโยชน์ หากคุณจำได้ฉันมีคำถามสำหรับคุณ อุปกรณ์หรือฮับมีการสลับพินหรือไม่? รายการข้อผิดพลาดเป็นอย่างไร เมื่อคุณเชื่อมต่ออุปกรณ์มันไม่ได้รับการยอมรับหรือได้รับการยอมรับว่าทำงานผิดปกติหรือไม่? คุณวินิจฉัยปัญหาได้อย่างไร รายละเอียดใด ๆ ที่จะช่วยฉันจะพยายามเพิ่มข้อมูลของคุณในคำตอบ
travisbartley

2
@ trav1s ฉันสลับ D + / D- บนฝั่งฮับ ปัญหาประจักษ์ตัวเองเป็นอุปกรณ์ไม่ปรากฏขึ้น คีย์ USB จะแสดงว่าได้รับพลังงาน แต่ไม่รู้จักคอมพิวเตอร์เลยทางด้านอัปสตรีมของฮับ (ซึ่งเชื่อมต่อกับโฮสต์อย่างถูกต้อง) การวินิจฉัยฉันอายที่จะเขียนเกี่ยวกับฉันใช้เวลามากคิดว่ามันเป็นปัญหาการกำหนดค่าฮับ / ซอฟต์แวร์ ในที่สุดฉันก็ตรวจสอบสาย แต่ฉันทำมันครั้งสุดท้ายเพราะฉันเชื่อว่า USB เป็นเหมือนอีเธอร์เน็ตและสามารถสลับพินได้โดยอัตโนมัติ ฉันผิดไป. :-)
akohlsmith

1

ฉันเคยเห็นอุปกรณ์เจรจาด้วยความเร็วต่ำเฉพาะเมื่อมีการสลับ d + และ d- นี่คือด้วยความเร็วเต็มอุปกรณ์ (12mbps) และพอร์ตตามชิปเซ็ต VIA


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