ประเภทการถ่ายโอน USB แบบใดที่ดีที่สุด (แบบกลุ่มการขัดจังหวะการถ่ายโอนแบบ Isochronous) ที่จะใช้ในการติดตั้งออสซิลโลสโคปแบบ USB คืออะไร?


20

ฉันต้องการสร้างออสซิลโลสโคปของ USB ผมได้อ่านเกี่ยวกับประเภทการถ่ายโอน USB ที่แตกต่าง ประเภทการถ่ายโอนแบบใดที่ดีที่สุดในการถ่ายโอนตัวอย่าง ADC ที่รวบรวมจาก USB oscilloscope ไปยังพีซี

ด้านล่างนี้เป็นข้อค้นพบของฉัน โปรดแก้ไขฉันและมันจะดีถ้าใครสามารถแนะนำประเภทการถ่ายโอนที่ดี

  1. Isochronous transfer - การสูญเสียข้อมูลที่เป็นไปได้ ไม่ดีสำหรับออสซิลโลสโคปเนื่องจากแต่ละรายการข้อมูลมีค่า ข้อมูลอาจสูญหายได้มากแค่ไหน?
  2. โหมดขัดจังหวะ - ฉันไม่รู้ว่ามันจะทำให้การเชื่อมต่อ USB ล้น
  3. โหมดจำนวนมาก - ดูเหมือนดีที่สุดสำหรับฉันเนื่องจากไม่มีการสูญเสียข้อมูล
  4. การถ่ายโอนการควบคุม - ไม่เหมาะสมเนื่องจากไม่ได้มีไว้สำหรับการถ่ายโอนข้อมูล

2
จากสิ่งที่ฉันอ่านขอบเขตส่วนใหญ่ที่มี usb ใช้โหมดเป็นกลุ่มเพื่อส่งภาพหน้าจอของขอบเขต
Passerby

สันนิษฐานว่าถ้าคุณไปด้วยโหมด isochronous คุณสามารถจองแบนด์วิดท์เพิ่มเติมเล็กน้อยเพื่อแก้ไขข้อผิดพลาด
253751

หรือสำหรับ overkill ขั้นต้นPCIe DMA จะทำเครื่องหมายแฟนซีของฉัน
มิทช์

คำตอบ:


28

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

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

การถ่ายโอน Isochronous ถูกออกแบบมาสำหรับข้อมูล 'เรียลไทม์' คุณไม่มีทางเลือกเกี่ยวกับการจัดการข้อผิดพลาด แต่แบนด์วิดท์ของคุณสงวนไว้บนรถบัส

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

10

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

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

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


4

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


3

เพียงใช้การโอนเป็นกลุ่ม ออสซิลโลสโคปไม่ใช่อุปกรณ์อัตราข้อมูลสูงจริง ๆ นอกเสียจากว่าคุณวางแผนที่จะทำการออกแบบประเภทฟอสฟอร์เรสต์แบบดิจิตอลออสซิลโลสโคปจะเป็นเพียงส่วนเล็ก ๆ ของรูปคลื่น ตัวอย่างเช่นสมมติว่าคุณต้องการแสดง 1,000 พิกเซลแนวนอนและรีเฟรชจอแสดงผลที่ประมาณ 30Hz หากตัวอย่างมีขนาด 8 บิต (นี่เป็นเรื่องปกติ) และมีสองช่องคุณกำลังดูเพียง 60,000 ไบต์ / วินาที USB ความเร็วเต็มที่สามารถทำประมาณ 1,000,000 ไบต์ / วินาทีดังนั้นคุณจึงใช้งานบัสปริมาณน้อยกว่า 6% ที่ให้เวลามากมายในการปล่อยให้โหมดการถ่ายโอนข้อมูลจำนวนมากทำสิ่งที่ผิดพลาด (แก้ไขข้อผิดพลาดแก้ไขการรับส่งข้อมูลอื่น ๆ ของรถบัส) และไม่น่าเป็นไปได้ที่คุณจะพบกับการกำหนดค่าบัสในชีวิตจริง สำหรับข้อมูลจำนวนมาก

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