बहुत सटीक समय माप


13

मैं बहुत कम समय को यथासंभव सटीक रूप से मापने जा रहा हूं। डिवाइस को पहले एक पल्स मिलेगा और 150 माइक्रोसेकंड के भीतर छह और, प्रत्येक अपने तारों पर। पहले संकेत और छह अन्य संकेतों में से प्रत्येक के बीच के समय को यथासंभव सटीक रूप से मापा जाना चाहिए। सटीकता कम से कम 100 नैनोसेकंड होनी चाहिए लेकिन अधिक बेहतर है।

इसके लिए कौन सा माइक्रोकंट्रोलर सबसे अच्छा होगा? मैंने पाया यह । उन्हें लगता है कि 4 नैनोसेकंड की अवधि वाला एक टाइमर है। यह मेरे लिए काफी सटीक होगा।

क्या ऐसा करने के लिए कुछ अन्य माइक्रोकंट्रोलर बेहतर होंगे? क्या यह AVR के साथ किया जा सकता है?


2
मुझे लगता है कि आप सटीकता की बात कर रहे हैं, सटीकता की नहीं। क्या होगा यदि आपके पास नैनोसेकंड सटीक है, लेकिन अंतर्निहित घड़ी 10% से दूर है? फिर माप सही नहीं हैं।
काज

छह दालों के अलावा कितनी दूर हैं? क्या वे एक आम इनपुट पर या छह अलग-अलग लोगों पर आते हैं?
Starblue

उनके पास अपने सभी इनपुट हैं। दालें कभी-कभी सभी एक ही समय में आ सकती हैं लेकिन आमतौर पर वे अलग-अलग समय पर आती हैं।
केस्टिस

जवाबों:


8

माइक्रोकंट्रोलर की गति हमेशा सीमित कारक नहीं होती है। MSP430 एक उपयुक्त समाधान हो सकता है, इस तथ्य के कारण नहीं कि यह केवल 25MHz तक चलता है, बल्कि इसलिए कि कई MSP430 उपकरणों में टाइमर डी परिधीय है जो 4ns समय अवधि (256MHz) तक सक्षम बनाता है। यह वहाँ से बाहर लगभग सभी माइक्रोकंट्रोलर की तुलना में तेज़ है। यहां तक ​​कि STM32 अपने नवीनतम संस्करणों (F4) में केवल 180MHz ही कर सकता है।

टाइमर डी MSP430F51x1 और MSP43051x2 MSP430F5131 जैसे उपकरणों पर उपलब्ध है।

हालांकि, वह केवल समय को पकड़ने में सक्षम होने के लिए हल करता है। बड़ा सवाल यह है कि आप इसके साथ क्या करते हैं क्योंकि प्रसंस्करण स्वयं धीमा हो जाएगा। आप दो दालों के बीच के समय का नमूना ले सकते हैं, लेकिन आप उन दोनों के बीच कोई प्रसंस्करण नहीं कर पाएंगे, अगर आपका यही मतलब है।


मेरा बुरा, MSP430 की पूरी तरह से RTFM नहीं था, मुख्यतः क्योंकि TI की वेबसाइट नफरत के पावेलियन ऐंठन को ट्रिगर करती है।
जॉन यू

@ जॉन: कभी उस प्रतिक्रिया नहीं थी। सच्चाई यह है कि ओपी ने इस बारे में अधिक जानकारी नहीं दी है कि वह क्या कर रहा है इसलिए उचित सुझाव देना कठिन है।
गुस्तावो लिटोव्स्की

प्रसंस्करण समस्या नहीं है। कई बार गणना करने के बाद कई सेकंड होते हैं और एल्गोरिदम भी जटिल नहीं होते हैं। क्या एक MSP430 सभी छह दालों को संभाल सकता है या उनमें से अधिक होना चाहिए?
Kestis

@ केस्टिस: द टाइमर डी में रजिस्टरों की तुलना में 6 कैप्चर शामिल हैं, और कुछ MSP430 में एक से अधिक टाइमर डी मॉड्यूल हैं, इसलिए इसे आपकी आवश्यकता के अनुरूप होना चाहिए।
गुस्तावो लिटोव्स्की

4

100ns के रिज़ॉल्यूशन की टाइमिंग के लिए 10MHz पर टाइमर की आवश्यकता होती है। कई माइक्रोकंट्रोलर एक टाइमर को चलाने में सक्षम होना चाहिए जो तेजी से हो।

समस्या तब आती है जब आप 6 संकेतों के आने का समय निकालने की कोशिश कर रहे होते हैं। क्या ये संकेत सभी एक ही तार पर हैं, या प्रत्येक अलग तार पर हैं?

यदि वे सभी एक ही तार पर हैं, तो किसी भी MCU पर एक 10MHz टाइमर के साथ ऐसा करना संभव हो सकता है। Naively, ऐसा करने के लिए कोड कुछ इस तरह दिखेगा:

wait for trigger signal
reset timer

wait for first signal
save timer value
reset timer

....

wait for sixth signal
save timer value
reset timer

समस्या यह है कि टाइमर को रीसेट करने के लिए एक सीमित समय लगता है। यह दो समस्याओं का कारण बनता है:

  1. आपके क्रियान्वयन के आधार पर, मापा गया समय कुछ 100ns द्वारा गलत होगा। हालांकि, उन्हें लगातार गलत होना चाहिए। IE हर बार एक ही राशि से गलत। इसका मतलब है कि आप प्रत्येक माप में एक छोटी राशि जोड़कर आसानी से इसकी भरपाई कर सकते हैं।

  2. एक न्यूनतम समय होगा जिसे आप माप सकते हैं। यदि कोई पल्स पिछले एक के बाद 100ns पर आ गया, तो आप शायद इसे याद करेंगे। मुझे नहीं पता कि सॉफ्टवेयर में उस बारे में आप कुछ कर सकते हैं या नहीं। आपको एक माइक्रोकंट्रोलर ढूंढना होगा जो हार्डवेयर में कई दालों को संभाल सकता है।


कौन सा माइक्रोकंट्रोलर हार्डवेयर में कई दालों को संभाल सकता है? Cypress PSoC ! यह एक माइक्रोकंट्रोलर है जिसमें विन्यास योग्य डिजिटल ब्लॉक भी शामिल हैं, जिसका अर्थ है कि आप आसानी से 6 अलग-अलग टाइमर चला सकते हैं, प्रत्येक 60 मेगाहर्ट्ज पर, जो आपको 20 से अधिक रिज़ॉल्यूशन से बेहतर प्रदान करेगा।

6 टाइमर PSoC सरू

यहाँ एक उदाहरण है कि मैंने आपको जल्दी से दस्तक दी कि आप किस तरह की चीजों को दिखा सकते हैं। मुझे 6 अलग-अलग टाइमर मिले हैं, सभी बस घड़ी से दूर चल रहे हैं, जो 67MHz तक जा सकते हैं। एक ट्रिगर पिन है जो सभी टाइमर चलाने की शुरुआत करता है, और 6 अन्य पिन, जिनमें से प्रत्येक टाइमर में कैप्चर इवेंट का कारण बनता है। एक स्थिति रजिस्टर आपके कोड को यह निगरानी करने की अनुमति देता है कि किस टाइमर ने एक नाड़ी को पकड़ लिया है। कोड टाइमर से बाहर मूल्यों को पढ़ सकता है।


वह PSoC बहुत दिलचस्प लगता है। हालांकि मैं AVR या MSP430 पसंद करूंगा क्योंकि वे बहुत अधिक सामान्य हैं।
19

0

संशोधित उत्तर : एक तेज़ डिजिटल स्टोरेज ऑसिलोस्कोप या संभवतः फ़्रीक्वेंसी काउंटर डिवाइस।

पुराना उत्तर :

सरल शब्दों में, "सबसे तेज़ माइक्रोकंट्रोलर जो आप पा सकते हैं", इस आधार पर कि जितनी तेज़ी से आपकी घड़ी / नमूना, आप उतने ही सटीक होंगे। MSP430 तेज उपकरण नहीं हैं।

STM32 के 32-बिट हैं और तेजी से चलेंगे, साथ ही इसमें सस्ते देव बोर्ड और उपकरण भी उपलब्ध हैं, लेकिन यहां तक ​​कि उपलब्ध कुछ शक्तिशाली सामानों की तुलना में यह काफी धीमा है (रास्पबेरी पाई @ 800MHz - 1GHz (ओवरक्लॉकड))। आम तौर पर हालांकि, जितनी तेज़ी से आप प्रोसेसर को और अधिक जटिल करते जाते हैं, उतना ही सीखने की अवस्था में व्यापार बंद हो सकता है।

जोड़ा गया: बेंजी सही है, आपको (सटीक) माइक्रो के लिए एक सटीक थरथरानवाला की आवश्यकता है यदि आप बहुत सटीक माप चाहते हैं (आप वास्तव में अपने प्रश्न में त्रुटि सीमा निर्दिष्ट नहीं करते हैं)।


मौलिक रूप से, एक लूप में सिग्नल को नमूना करने वाले माइक्रोकंट्रोलर के अलावा अन्य प्रकार की टाइमर हैं।
निक एलेक्सीव

और यह मदद करेगा अगर माइक्रोकंट्रोलर में एक बहुत सटीक बाहरी थरथरानवाला / क्रिस्टल संलग्न है।
बेनजीवेबे

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