USB आस्टसीलस्कप को लागू करने के लिए सबसे अच्छा USB ट्रांसफर टाइप (बल्क, इंटरप्ट, Isochronous Transfers) क्या है?


20

मैं एक USB आस्टसीलस्कप बनाना चाहता हूं। मैं विभिन्न USB हस्तांतरण प्रकारों के बारे में पढ़ रहा था । किसी USB आस्टसीलस्कप से PC में एकत्रित ADC नमूने को स्थानांतरित करने के लिए कौन सा स्थानांतरण प्रकार सबसे अच्छा है?

नीचे मेरे कुछ निष्कर्ष दिए गए हैं। कृपया मुझे सही करें और यह भी अच्छा होगा कि कोई भी एक अच्छा हस्तांतरण प्रकार सुझा सके।

  1. Isochronous transfer - डेटा की संभावित हानि। एक आस्टसीलस्कप के लिए अच्छा नहीं है क्योंकि प्रत्येक डेटा आइटम मूल्यवान है। कितना डेटा खो सकता है?
  2. इंटरप्ट मोड - मुझे पता नहीं है कि यह यूएसबी कनेक्शन को बाढ़ देगा
  3. बल्क मोड - डेटा की हानि के बाद से मुझे सबसे अच्छा लगता है
  4. नियंत्रण स्थानांतरण - उपयुक्त नहीं है क्योंकि यह डेटा स्थानांतरित करने के लिए नहीं है

2
मैंने जो पढ़ा है, उसमें से अधिकांश स्कोप usb के साथ गुंजाइश के स्क्रीनशॉट भेजने के लिए बल्क मोड का उपयोग करते हैं।
राहगीर

संभवत: यदि आप समकालिक मोड के साथ जाते हैं, तो आप त्रुटि सुधार के लिए कुछ अतिरिक्त बैंडविड्थ आरक्षित कर सकते हैं।
user253751

या सकल ओवरकिल के लिए, PCIe DMA मेरे फैंस को गुदगुदी करता है।
मिच

जवाबों:


28

बल्क ट्रांसफ़र डेटा नहीं खोते हैं, लेकिन उनके पास न्यूनतम बैंडविड्थ की कोई गारंटी नहीं है। (दूसरी तरफ, वे उच्च गति तक पहुंच सकते हैं, क्योंकि वे सभी बैंडविड्थ का उपयोग करने में सक्षम हैं जो वास्तव में किसी अन्य स्थानान्तरण द्वारा उपयोग नहीं किया जाता है।)

क्या होता है जब आपके आस्टसीलस्कप के डेटा ट्रांसफर में देरी होती है (या तो त्रुटियों के कारण, या अन्य उपकरणों के कारण), और नया डेटा जमा हो रहा है? क्या आप डिवाइस को तब तक रोकते हैं जब तक पुराना डेटा संचारित नहीं हो जाता है, या क्या आप पुराने डेटा को फेंक देते हैं ताकि वर्तमान डेटा को संचारित किया जा सके?

Isochronous स्थानान्तरण 'वास्तविक समय' डेटा के लिए डिज़ाइन किए गए हैं। आपको त्रुटि से निपटने के बारे में कोई विकल्प नहीं है, लेकिन आपका बैंडविड्थ बस में आरक्षित है।

  • यदि आप वास्तविक समय में रिकॉर्ड किए गए डेटा को प्रदर्शित करना चाहते हैं, तो आपको समकालिक स्थानांतरण का उपयोग करना चाहिए।
  • यदि आप माप पूरा होने के बाद रिकॉर्ड किए गए डेटा को पीसी में स्थानांतरित करना चाहते हैं , तो आपको बल्क ट्रांसफर का उपयोग करना चाहिए।

10

प्रश्न आपके आस्टसीलस्कप के रूप में आपके उपयोग से लगभग पूरी तरह से स्वतंत्र है, और पूरी तरह से संचार के प्रकार से नियंत्रित होता है जिसे आप यूएसबी से करने के लिए कह रहे हैं। उदाहरण के लिए:

  • एक आस्टसीलस्कप जिसमें आंतरिक रूप से एक बड़ा (मल्टी-मेगाबाइट) बफर होता है और इसे पहले लघु परीक्षण चलाने के लिए डिज़ाइन किया जाता है, फिर डेटा अपलोड करता है, पूरी तरह से बल्क ट्रांसफर का उपयोग करेगा। इसकी गारंटी बैंडविड्थ की कोई आवश्यकता नहीं है, इसलिए थोक स्थानांतरण की त्रुटि जांच के साथ उच्च मात्रा सबसे अच्छी होगी।
  • एक आस्टसीलस्कप जिसे निरंतर आधार पर परीक्षण के तहत सर्किट तक लगातार हुक करने के लिए डिज़ाइन किया गया है और इसे "वास्तविक समय" में संचालित किया जाना चाहिए (पढ़ें: नियतात्मक रन टाइम) isochronus का चयन करेगा। बल्क कोई नियतात्मक रनटाइम गारंटी प्रदान नहीं करता है, और आप आरक्षित बैंडविड्थ के लिए अपना पाइप सेट नहीं कर सकते हैं। आपको अपनी स्वयं की त्रुटि सुधार करना होगा, लेकिन कम से कम उन्हें निर्धारक रूप से किया जा सकता है।
  • मानव देखने के लिए "लाइव" फ़ीड के साथ एक आस्टसीलस्कप और एक ट्रिगर पर एक उच्च गति पर कब्जा ट्रिगर डेटा के लिए लाइव फीड और बल्क ट्रांसफर के साथ रखने के लिए दो एंडपॉइंट्स, एक आइसोक्रोनस सेट कर सकता है। मानव उपभोग के लिए, एक फ्रेम या दो को खोना कोई बड़ी बात नहीं है, इसलिए आइसोक्रोनस पर त्रुटि जाँच की कमी के बारे में चिंता करने का कोई कारण नहीं है। हालाँकि, जब वास्तविक डेटा की बात आती है, तो आप इसे त्रुटि सुधार के लिए बल्क में स्थानांतरित करते हैं।
  • हो सकता है कि इस सर्किट का उपयोग लाइव सिस्टम के हिस्से के रूप में किया जाए। यह न केवल आस्टसीलस्कप हो सकता है, बल्कि संकेतों के विरुद्ध एक सुरक्षा भी है जो संकेत देता है कि सर्किट ऑपरेटिंग रेंज को छोड़ रहा है और कंप्यूटर द्वारा बंद करने की आवश्यकता है। इस मामले में, आप सर्किट को तोड़ने से पहले समस्या को सुनिश्चित करने के लिए गारंटी लेटेंसी (और कुछ अच्छी तरह से परिभाषित त्रुटि हैंडलिंग) प्राप्त करने के लिए, सिस्टम में एक बाधा समापन बिंदु जोड़ सकते हैं।

एक बार जब आप जान जाते हैं कि आप किस प्रकार के डेटा को संचारित कर रहे हैं, और सेवा की गुणवत्ता (क्यूओएस) उन शर्तों को पूरा करती है, जिनके तहत डेटा को आने की जरूरत है, तो आप यह तय कर सकते हैं कि कौन सा यूएसबी ट्रांसफर तंत्र है। आपको पता चल जाएगा कि आप ये निर्णय लेने के लिए तैयार हैं जब शब्द "ऑसिलोस्कोप" को अब उस डेटा का वर्णन करने की आवश्यकता नहीं है और क्यूओ की आपको आवश्यकता है। तब आप जानते हैं कि इन मुद्दों को संबोधित करना शुरू करना उद्देश्यपूर्ण शब्दों में है।


4

एक आस्टसीलस्कप के लिए, स्थानांतरण की बैंडविड्थ वह पैरामीटर है जिसे आप अधिकतम करना चाहते हैं। बल्क ट्रांसफर विशेष रूप से उच्च बैंडविड्थ के लिए डिज़ाइन किया गया है, इसलिए यह सही विकल्प है। जबकि समकालिक और रुकावट स्थानान्तरण विलंबता पर सीमा लगाते हैं, वे केवल कम-से-मध्यम-बैंडविड्थ डेटा धाराओं के लिए अभिप्रेत हैं।


3

बस बल्क ट्रांसफर का उपयोग करें। एक आस्टसीलस्कप वास्तव में एक उच्च डेटा दर डिवाइस नहीं है। जब तक आप एक डिजिटल फास्फोर प्रकार की डिजाइन बनाने की योजना नहीं बना रहे हैं, तब तक एक आस्टसीलस्कप एक तरंग के बहुत छोटे हिस्से में सिर्फ एक खिड़की है। उदाहरण के लिए, मान लें कि आप 1000 क्षैतिज पिक्सेल दिखाना चाहते हैं और प्रदर्शन को लगभग 30 हर्ट्ज़ पर ताज़ा करना चाहते हैं। यदि नमूने 8-बिट प्रत्येक (यह विशिष्ट है) और दो चैनल हैं, तो आप केवल 60,000 बाइट्स / सेकंड देख रहे हैं। पूर्ण गति USB लगभग 1,000,000 बाइट्स / सेकंड कर सकता है, इसलिए आप 6% से कम बस थ्रूपुट क्षमता का उपयोग कर रहे हैं। बल्क ट्रांसफर मोड को अपना काम करने देने में बहुत समय देता है (सही त्रुटियों, अन्य बस ट्रैफ़िक के आसपास काम करना), और यह संभावना नहीं है कि आप कभी भी वास्तविक जीवन बस कॉन्फ़िगरेशन का सामना करेंगे जो आपको पर्याप्त बैंडविड्थ आवंटित करने में सक्षम नहीं होगा। उस डेटा के लिए।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.