ทำไมความยาวสูงสุดของสาย USB ถึงสั้นกว่าใน RS232


9

ทำไมเราต้องบัฟเฟอร์สัญญาณ USB หากสายยาวเกิน 5m
นั่นเป็นเพราะแรงดันสัญญาณตกหรือไม่
นั่นเป็นเพราะมันขับกระแส


1
Rs232 ใช้ +/- 12 Volt, USB 0-5 volt
mischnic

คำตอบ:


16

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

(ฉันไม่สามารถหาการอ้างอิงได้ในวินาทีนี้ แต่เอกสารข้อมูลจำเพาะที่เกี่ยวข้องเป็นแบบสาธารณะ)

แก้ไข: ขอบคุณ psmears สำหรับการค้นหาส่วนนี้

สายเคเบิลและโซลูชันระยะไกล

  1. เหตุใดจึงมีข้อจำกัดความยาวของสายเคเบิลและมีอะไรบ้าง

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

  1. ฉันต้องการสร้างสายเคเบิลยาวกว่า 5 เมตรเหตุใดจึงไม่ทำงาน

ตอบ: แม้ว่าคุณจะละเมิดสเป็ค แต่ก็ไม่ได้ทำให้คุณไปไกลนัก สมมติว่าเวลาล่าช้ากรณีเลวร้ายที่สุดอุปกรณ์ความเร็วเต็มที่ด้านล่างของ 5 ฮับและสายเคเบิลมีระยะหมดเวลา 280ps การลดระยะขอบนี้เป็น 0ps จะให้คุณเพิ่มอีก 5 ซม. ซึ่งไม่คุ้มกับปัญหา

ดังนั้นคำตอบของฉันจึงเป็นเพียงครึ่งเดียว: ขีด จำกัด การเดินทางไปกลับสำหรับโซ่และฮับของสายเคเบิลที่เลวร้ายที่สุดสำหรับความลึกรวม 25 ม.

Dan Neely นั้นถูกต้องแล้วที่ USB ก็ควรจะเป็นโซลูชั่นที่มีต้นทุนต่ำที่สุดสำหรับอุปกรณ์ต่อพ่วง "ช้า" เช่นคีย์บอร์ด, เมาส์, เครื่องพิมพ์ ฯลฯ หากคุณต้องการเพล็กซ์เต็มรูปแบบเพื่อความเร็วที่เร็วขึ้นและระยะทางที่มากขึ้น


หมวกเป็นหนึ่งทำให้สาย USB 20m อะไรจะเกิดขึ้น? คุณบอกว่าแรงดันไฟฟ้าไม่ได้เปลี่ยนและเรื่องความเร็ว แล้วจะเกิดอะไรขึ้นในกล่องใส่สาย 20 เมตรและ USB ไม่ทำงาน
16307

2
โฮสต์ส่งคำขอไม่ได้รับคำตอบในเวลาและล้มเหลวในการระบุอุปกรณ์ในส่วนอื่น ๆ
pjc50

4
คุณแน่ใจเกี่ยวกับเรื่องนี้? ตามข้อมูลจำเพาะ USBความล่าช้าในการแพร่สัญญาณของสัญญาณตามสายเคเบิลจะต้อง <26ns (ตารางที่ 7-9) ดังนั้นสัญญาณจึงใช้เวลาน้อยกว่า 5.2 ns / m ในสายเคเบิลมาตรฐาน 5 ม. ขีด จำกัด สำหรับความล่าช้าในการเดินทางไปกลับคือประมาณ 1.5 μs ที่ความเร็วนั้นมีเวลามากมายสำหรับสัญญาณที่จะเดินทางไปและกลับผ่านสายเคเบิล> 100m ฟอรัม USB Implementers ให้เหตุผลที่แตกต่างสำหรับข้อ จำกัด 5 ม.
psmears

มีเหตุผลใดบ้างที่ USB 1.0-2.0 เป็นฮาล์ฟดูเพล็กซ์แทนฟูลดูเพล็กซ์ตั้งแต่วันแรก (เช่น USB 3.0) กล่าวอีกนัยหนึ่งมีข้อได้เปรียบในทางปฏิบัติของครึ่งหนึ่งของ full duplex หรือไม่?
tigrou

1
@tigrou กว้างขึ้น USB1 กอดตัวเลือกง่าย ๆ ทุกที่ที่ทำได้เพราะมันจำเป็นต้องมีราคาถูกพอที่จะทำให้มันสามารถแข่งขันกับพอร์ต RS232 / PS2 / LPT / เกมได้ หลายปีที่ผ่านมาซิลิคอนมีราคาถูกกว่ามาก แต่การมีราคาสูงกว่าขั้นต่ำจำเป็นต้องเป็น 'ดีพอ' สำหรับแอปพลิเคชันเป้าหมายส่งผลให้ USB2 สังหาร FireWire; และสายฟ้าก็ดูเหมือนจะไร้ผล
Dan Is Fiddling โดย Firelight

10

ดูหน้านี้/superuser/64744/maximum-length-of-a-usb-cable

Q1: ฉันสามารถใช้สายเคเบิลเชื่อมต่อกับอุปกรณ์ของฉันได้นานแค่ไหน? A1: ในทางปฏิบัติข้อมูลจำเพาะ USB จำกัดความยาวของสายเคเบิลระหว่างอุปกรณ์ความเร็วสูงถึง 5 เมตร (น้อยกว่า 16 ฟุต 5 นิ้วเล็กน้อย) สำหรับอุปกรณ์ความเร็วต่ำขีด จำกัด คือ 3 เมตร (9 ฟุต 10 นิ้ว)

Q2: ทำไมฉันไม่สามารถใช้สายเคเบิลที่ยาวกว่า 3 หรือ 5 เมตรได้? A2: การออกแบบไฟฟ้าของ USB ไม่อนุญาต เมื่อ USB ได้รับการออกแบบการตัดสินใจที่จะจัดการการแพร่กระจายของสนามแม่เหล็กไฟฟ้าในสายข้อมูล USB ในลักษณะที่จำกัดความยาวสูงสุดของสายเคเบิล USB ให้อยู่ในช่วง 4 ม. วิธีนี้มีข้อดีหลายประการและเนื่องจาก USB มีไว้สำหรับสภาพแวดล้อมเดสก์ท็อปข้อ จำกัด ของช่วงจึงถือว่ายอมรับ หากคุณคุ้นเคยกับทฤษฎีสายส่งสัญญาณและต้องการรายละเอียดเพิ่มเติมในหัวข้อนี้ให้ดูที่ส่วนสัญญาณ USB ของคำถามที่พบบ่อยของนักพัฒนา


1
ผู้ใช้ยังคงไม่อธิบายข้อมูลหมอกจำนวนมากเลย
user16307

10
อาจมีหมอกในตัวคุณ แต่ไม่มีวิธีง่ายๆที่จะอธิบายทฤษฎีสัญญาณในห้องที่รูปแบบนี้อนุญาต
Wouter van Ooijen

5
ฉันคิดว่าคำตอบนี้ชี้ให้เห็นเหตุผลบางประการว่าทำไมถึงมีข้อ จำกัด มันค่อนข้างง่ายต่อการสำรวจพื้นที่เหล่านี้โดยทำการค้นหาเว็บ ตัวอย่างเช่นในทฤษฎีสายส่ง นั่นคือเหตุผลที่ฉันโพสต์คำตอบนี้
Mattias Johansson

1
ฉันไม่ค่อยลงคะแนนดังนั้นฉันรู้สึกถูกบังคับให้ต้องพิสูจน์ในตอนนี้ ตรงกันข้ามกับความคิดเห็นของ Wouter van Ooijen ฉันไม่รู้สึกว่าคำตอบนี้ให้อะไรที่เป็นรูปธรรมมากไปกว่าคำแนะนำที่เป็นไปได้ในการค้นหา "ข้อ จำกัด ความยาวสายเคเบิล USB" นอกจากนี้คำตอบที่คุณอ้างถึงมีลิงค์ที่ตายแล้วดังนั้นคำแนะนำสำหรับการอ่านเพิ่มเติมก็ไม่ได้มีประโยชน์ หากคุณพบแหล่งต้นฉบับที่ถูกต้องและอ้างอิงจากแหล่งนั้นอย่างที่ psmears และ pjc50 ทำมันจะเป็นเรื่องที่แตกต่าง - เพราะจริง ๆ แล้วให้รายละเอียดว่าทำไมข้อ จำกัด นี้จึงมีอยู่
Oleksandr R.

5

เป็นไปไม่ได้ที่จะ "บัฟเฟอร์" USB อย่างน้อยที่สุดก็ไม่ได้อยู่ในความหมายของคำ โดยทั่วไปการบัฟเฟอร์หมายถึงการขยายสัญญาณไฟฟ้าและบางทีการสร้างสัญญาณใหม่

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

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

มีวิธีแก้ไขปัญหาสองระดับ:

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

    1. คุณสามารถแทรกฮับเดียวพอร์ตทุก ๆ 4 เมตรของสายเคเบิลที่มีมากถึง 7 ฮับในซีรีส์ ข้อ จำกัด คือฮับ 7 ระดับจากโฮสต์ไปยังอุปกรณ์ขั้นสูงสุดดังนั้นหากมีฮับใด ๆ ที่อยู่เหนือการคุมกำเนิดของคุณคุณจะต้องลดจำนวนฮับตามลำดับ โฮสต์ USB หลายแห่งมีฮับภายในระดับเดียวดังนั้นข้อ จำกัด ที่สมจริงคือสายเคเบิลยาว 28 ม. พร้อมฮับ 6 ชุด ฮับทั้งหมด แต่อันแรกจะต้องแกล้งทำเป็นขับเคลื่อนด้วยตนเอง

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

  2. วิธีแก้ปัญหาที่เลียนแบบอุปกรณ์ที่ปรากฏ "ช้า" ที่ระดับโปรโตคอลที่สูงขึ้น นั่นคือการทำงานของ "Extender" ของ Cat-5 USB มีห้าคู่ค้าที่นี่: โฮสต์จริง (rHost), อุปกรณ์จำลองที่เห็นโดยมัน (eDev), สายยาว, โฮสต์จำลอง (eHost) และอุปกรณ์ที่มองเห็นที่ปลายสุดของสายเคเบิล (rDev) .

    เริ่มแรก eDev แสร้งทำเป็นไม่อยู่ที่นั่น ในบางครั้ง eHost จะเห็นว่าเสียบ rDev เข้าไปแล้วมันจะระบุและส่งต่อข้อมูลไปยัง eDev จากนั้น eDev จำลองเหตุการณ์ปลั๊กอินและ rHost แจกแจง rHost เชื่อว่าเห็น rDev แต่เป็น eDev เท่านั้นที่ทำอยู่ ในทำนองเดียวกัน rDev คิดว่าเห็น rHost แต่เพียง eHost อยู่ที่นั่นทำท่า

    ในที่สุด rHost ต้องการออกการถ่ายโอนบางส่วนไปยัง rDev ที่เชื่อว่ามีอยู่เพื่อใช้ประโยชน์จากมัน สำหรับการถ่ายโอน IN eDev อ้างว่าไม่มีข้อมูล (ตอบกลับด้วย NAK) คำขอโอนจะถูกส่งต่อไปยัง eHost ซึ่งเรียกใช้อีกครั้งด้วย rDev ผลลัพธ์ของสิ่งนี้จะถูกส่งต่อกลับไปยัง eDev ซึ่งจะใช้ผลลัพธ์ในครั้งถัดไปที่โฮสต์พยายามถ่ายโอน

    สำหรับการถ่ายโอน OUT eDev จะต้องเดาว่าพฤติกรรมของ rDev จะเป็นอย่างไร มีฮิวริสติกและพฤติกรรมที่สามารถลองได้ที่นี่ วิธีหนึ่งคือให้ eDev รับข้อมูลและตอบกลับด้วย ACK เสมอ การโอนจะถูกส่งต่อไปยัง eHost ซึ่งจะโอนการโอนไปยัง rDev ในอุดมคติแล้ว rDev จะกินข้อมูลและ ACK ในที่สุด หากสิ่งนี้ไม่สำเร็จหรือหาก rDev ตอบกลับด้วย STALL สิ่งที่ดีที่สุดที่ eDev สามารถทำได้คือทำแบบนี้ในการถ่ายโอนครั้งต่อไปจากโฮสต์ อีกทางหนึ่ง eDev สามารถทำการโอนย้ายได้เสมอโดยมีข้อสันนิษฐานที่ถูกต้องว่าโฮสต์จะลองถ่ายโอนซ้ำอีกครั้งในภายหลัง แม้ว่าการถ่ายโอนดั้งเดิมคือ NAK-ed แต่จะถูกส่งต่อไปยัง eHost ซึ่งจะดำเนินการถ่ายโอนด้วย rDev ไม่ว่าคำตอบของ rDev คืออะไรกลายเป็นคำตอบของ eDev ทันทีที่เรียนรู้

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


ฮับอื่นไม่สามารถทำเป็นแกล้งขับเคลื่อนได้หรือไม่ ฉันคิดว่าฮับที่ขับเคลื่อนด้วยบัสสามารถขับเคลื่อนฮับที่ขับเคลื่อนด้วยตัวเองได้ใช่ไหม
supercat

ไม่มีอะไรเกี่ยวข้องกับการขับเคลื่อนด้วยบัส - มันคือความล่าช้าทั้งหมดในการตอบสนองต่อ ACK
pjc50

@supercat ใช่อาจมีฮับที่แกล้งทำเป็นทางเลือก ไม่สำคัญว่าคุณจะทำอย่างไรตราบใดที่ทรีอุปกรณ์แกล้งปรากฏตามโฮสต์
Reinstate Monica

@ pjc50 ตามข้อกำหนด USB ความล่าช้าสูงสุดของ ACK คือประมาณ 400ns สัญญาณเวลาสามารถเดินทางทองแดงได้ 40 เมตรในทั้งสองทิศทาง นี่ไม่ใช่ปัจจัย จำกัด ที่นี่
ZAB


2

โครงร่างการส่งผ่านสายเคเบิลส่วนใหญ่มีมาตรฐานที่เป็นที่ยอมรับในระดับสากลซึ่งอธิบายถึงวิธีการใช้งานรวมถึงข้อกำหนดสำหรับ "ลักษณะความต้านทาน" ของสายเคเบิล (คิดว่านี่เป็นความต้านทาน แต่ใช้กับ AC), อิมพีแดนซ์ 'ความต้านทาน' ในตอนท้ายของการเชื่อมต่อที่จำเป็นเพื่อหลีกเลี่ยงการสะท้อนสัญญาณของคุณที่กระเด้งกลับสายเคเบิลไปทางผู้ส่ง) มักจะเป็น 'อัตราการฆ่าที่ระบุ' (เวลาที่ใช้ในการเปลี่ยนสัญญาณจาก 0-state เป็น 1-state หรือโอละพ่อ) และด้วยเหตุนี้จำนวนสูงสุดของการเปลี่ยนระหว่าง 0/1 ต่อวินาที (เช่น kbps / Mbps / Gbps) และด้วยเหตุนี้สายเคเบิลสามารถนานก่อนที่ความสมบูรณ์ของสัญญาณจะลดลง & สิ่งที่หยุดทำงานถูกต้อง

เมื่อเทียบกับ USB นั้น RS232 มีคุณสมบัติของ bugger ทั้งหมดในประเภทสายเคเบิลความต้านทานลักษณะอัตราการฆ่าความยาวสายเคเบิลชนิดตัวเชื่อมต่อ แน่นอนว่าการเชื่อมต่อ 25-pin & 9-pin 'D' เป็นเรื่องปกติ แต่ในความเป็นจริง RS232 ได้รับการออกแบบในทุกประเภทของ connenctors & สายเคเบิลและผลิตภัณฑ์ที่ไม่มีข้อกำหนดจริงที่จะพูดเป็นอย่างอื่น ในทางปฏิบัติด้วย RS232 คุณจะสามารถไปได้ไกลขึ้นโดยการวางอัตราบิตต่อวินาที (aka 'baud') ที่ต่ำกว่า ระยะทางสูงสุดที่คุณสามารถทำได้จะถูกกำหนดในส่วนที่สำคัญเกี่ยวกับความต้านทานของสายเคเบิลของคุณไม่ว่าจะมีการป้องกันหรือไม่ก็ตามการสิ้นสุดที่จุดสิ้นสุดและอื่น ๆ

และในการเปรียบเทียบ RS232 กับ USB คุณกำลังเปรียบเทียบ 'มาตรฐาน' จากทศวรรษ 1960 ที่มีค่าสูงสุดที่ 115k2 (มีข้อยกเว้นที่หายาก) กับหนึ่งในช่วงทศวรรษ 1990 และ 2000 ที่เริ่มต้นที่ 1.5Mbps ลำดับความเร็วขึ้น แล้ว 12Mbps (เกือบ 100x เร็วกว่า) แล้ว 480Mbps (เกือบ 5000X เร็วขึ้น) แต่ซึ่งหมายความว่าพารามิเตอร์สายเคเบิลและสายเคเบิลความยาวเล่นเป็นส่วนสำคัญในการทำให้มันทำงานได้อย่างน่าเชื่อถือ มันถูกออกแบบมาให้เป็นมาตรฐานการเชื่อมต่ออุปกรณ์ต่อพ่วงเดสก์ท็อปดังนั้น 5m จึงถือว่าเป็นที่ยอมรับได้และจากนั้นพารามิเตอร์ทั้งหมดของสายเคเบิลและตัวเชื่อมต่อ & ความเร็วนั้นวางลงจากจุดนั้น หากมีวิธีที่จะทำให้ USB ทำงานช้าลงคุณอาจทำให้มันทำงานบนสายเคเบิลที่ยาวขึ้นได้


2
RS232 อาจมี "topped out" ที่ 115K แต่ฉันจำได้เมื่อมันเป็นลิงค์110 หรือ 300 บิตต่อวินาทีระหว่าง teleprinter และโมเด็ม สัญญาณไม่สมดุลกันแรงดันไฟฟ้าหมุนจาก -12V ถึง + 12V และไม่มีคู่บิดหรือการเลิกจ้างหรือการป้องกัน ด้วยความเร็วนั้นและในระยะทางสั้น ๆ เช่นนี้ลักษณะของเส้นลวดจึงไม่มีความหมายอะไรเลย ต่อมาเมื่อผู้คนต้องการที่จะส่งด้วยความเร็วสูงกว่าหลายร้อยเมตรเราจะได้ RS422 และ RS485 ซึ่งกล่าวเพิ่มเติมเกี่ยวกับสาย wire-as-transmission
โซโลมอนช้า
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.