2009-07-08 18 views
5

मेरे पास एक एम्बेडेड डिवाइस (Technologic TS-7800) है जो रीयल-टाइम क्षमताओं का विज्ञापन करता है, लेकिन 'हार्ड' या 'सॉफ्ट' के बारे में कुछ भी नहीं कहता है। जबकि मैं निर्माता से प्रतिक्रिया की प्रतीक्षा करता हूं, मुझे लगा कि यह सिस्टम को स्वयं परीक्षण करने में कोई दिक्कत नहीं होगी।हार्डनेस के लिए रीयल टाइम ऑपरेटिंग सिस्टम का परीक्षण

वास्तविक समय/निर्धारक व्यवहार (विलंबता और जिटर) के संबंध में किसी विशेष डिवाइस की 'कठोरता' निर्धारित करने के लिए कुछ स्थापित प्रक्रियाएं क्या हैं?

कॉलेज में होने के नाते, मेरे पास कुछ सुंदर साफ हार्डवेयर (अच्छा ऑसिलोस्कोप और सिग्नल जेनरेटर) तक पहुंच है, इसलिए मुझे नहीं लगता कि मैं परीक्षण उपकरण, केवल विशेषज्ञता के मामले में किसी भी मुद्दे में भाग लेगा।

उत्तर

1

मेरे पास काम पर एक ही बोर्ड है। यह थोड़ा-संशोधित 2.6 कर्नेल है, मुझे विश्वास है ... वास्तविक समय संस्करण नहीं।

मुझे नहीं पता कि मैंने दस्तावेज़ों में कुछ भी पढ़ा है जो इंगित करता है कि यह सख्त आरटीओएस काम के लिए है।

+0

बीटीडब्ल्यू, आप समर्थन कॉल कर सकते हैं। मुझे अब 3 बार "अनुदान" मिला है। वह बहुत उपयोगी है। –

+0

हार्ड रीयलटाइम बिट के लिए गेट सरणी का उपयोग करें। यही वह है। –

+0

टोपी जो हमने महसूस किया। अब एक अलग बोर्ड का उपयोग कर, VxWorks –

5

इस तरह के उपकरण के साथ, ओ-स्कोप को एक स्थिर घड़ी में सिंक करना काफी आसान होना चाहिए, हर बार रीयल-टाइम सिस्टम आउटपुट उत्पन्न करता है, यह देखते हुए कि यह स्पाइक केंद्र से कितना भिन्न होता है । भिन्नता, जितना अधिक कठोरता।

5

शायद बॉब जवाब स्पष्ट करने के लिए:

संकेत जनरेटर का प्रयोग कुछ अलग आवृत्ति पर एक पल्स उत्पन्न करने के लिए। कुछ सीमाओं में यादृच्छिक वितरण सबसे अच्छा होगा।

दायरे को शुरू करने के लिए सिग्नल जेनरेटर (ट्रिगर सिग्नल) का उपयोग करें।

आरटीओएस को जवाब देना है, इसे करना है और आउटपुट पल्स भेजना है।

आरओओएस आउटपुट को दायरे के इनपुट 2 में फ़ीड करें।

मोड को बनाए रखने/एकत्र करने का दायरा प्राप्त करें। ए पर शुरू करने का दायरा प्राप्त करें, यदि आप कर सकते हैं तो बी पर रोकें।

एक आदर्श कार्य में, इसे आपके लिए वितरण को मापने के लिए प्राप्त करें। एक LeCroy होगा। आप अपेक्षा से धीमे निशान के साथ शुरू करें। आपको धीमी गति से देखने में सक्षम होना चाहिए। आप वितरण को देखने में सक्षम होंगे।
सामान्य वितरण मानना ​​प्रतिक्रिया समय भिन्नता का एसडी सॉफ़्टनेस है। (यह वास्तव में अभ्यास में नहीं होगा, लेकिन अगर आपको आउटलाइर्स नहीं मिलते हैं तो यह उचित रूप से उपयोगी है।) यदि बड़ी विलंबता के आउटलेटर्स हैं, तो आरटीओएस बहुत कठिन नहीं है। अच्छी तरह से समय सीमा को पूरा नहीं करता है। अनुपयोगी तो यह कठिन वास्तविक समय के काम के लिए है। कई आरटीओएस जैसी चीजें वक्र के लिए एक अच्छा बायां किनारा है, जो 1/एफ वक्र की तरह नीचे गिरती है। संयुक्त jitters के संकेत संकेत। दायरे के दाहिनी छोर पर धीमी प्रतिक्रिया की स्पाइक्स देखने की बात है। ढलान की अच्छी छवि प्राप्त करने के लिए कोई आउटलेटर्स नहीं होने पर प्रयोग को तेजी से निशान के साथ दोहराएं। अपने पेपर में कुछ सट्टा निष्कर्ष के लिए अच्छा होना चाहिए।

यदि आपके आवेदन के लिए, 1uS का डेल्टा ठीक है, और आप 0.5us मापते हैं, तो यह सब अच्छा है।

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

लिंक।

+1

अतिरिक्त जानकारी के लिए धन्यवाद। मैं आपको यह बताने दूंगा कि इस सब के बारे में क्या जवाब है, शायद इस सवाल का एक और जवाब। –

+1

यदि आप वितरण को नहीं जानते हैं तो एसडी ज्यादा नहीं कहता है। गैर-वास्तविक समय प्रणाली की विशेषता यह है कि कार्य आमतौर पर 0.5 यूएस लगता है, लेकिन कभी-कभी एक पूर्ण 1 सेकंड - यदि 1 सेकंड स्पाइक्स शायद ही कभी होता है तो एसडी बहुत कम हो सकता है, लेकिन वास्तविक प्रदर्शन भी स्वीकार्य नहीं होगा नरम वास्तविक समय। – ima

+0

आईएमए: इंप्रेशन को सही करने के लिए संपादित किया गया है कि मैं सामान्य परिणामों की अपेक्षा करता हूं। –

-2

मैं गीक होने के बारे में समझता हूं, लेकिन ईथरनेट/यूएसबी/अन्य डिजिटल बंदरगाहों और विशाल आंतरिक स्थिति (रैम) वाले कंप्यूटर का परीक्षण करने के लिए ऑसिलोस्कोप का उपयोग करना अप्रभावी और अविश्वसनीय दोनों है।

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

स्थापित प्रक्रिया (यदि इनपुट सिग्नल प्रकृति द्वारा एनालॉग है) कई विशेष इनपुट - परंपरागत रूप से स्पाइक्स, चरण कार्य और विभिन्न आवृत्तियों की साइन लहरों के खिलाफ सिस्टम का परीक्षण करना है - और प्रत्येक इनपुट प्रकार के लिए चरण शिफ्ट और भिन्नता को मापना है। सबसे खराब मामला तब सिस्टम के विनिर्देशों में उपयोग किया जाता है।

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

अब, ओएस वास्तविक समय होने के बारे में कुछ भी नहीं कहेंगे - यह वेनिला लिनक्स या यहां तक ​​कि विन सीई चला सकता है और हार्डवेयर परीक्षण पर्याप्त होने पर उन परीक्षणों में अच्छे और स्थिर परिणाम उत्पन्न कर सकता है।

तो, आपको प्रोसेसर, मेमोरी और सभी बंदरगाहों पर भारी और अलग-अलग भार अनुकरण करने की आवश्यकता है, इसे गर्म करने दें और कुछ घंटों तक स्मृति खाएं, और फिर परीक्षण दोहराएं। यदि विलंबता स्थिर रहता है, तो यह कठिन वास्तविक समय है। यदि यह किसी भी भार और इनपुट सिग्नल प्रकार के तहत नहीं है, तो स्वीकार्य सीमा से ऊपर वृद्धि, यह नरम है। अन्यथा, यह विज्ञापन है।

पीएस .: प्रभाव यह है कि महत्वपूर्ण प्रणालियों के लिए भी आपको हार्डवेयर होने पर वास्तव में कठिन वास्तविक समय की आवश्यकता नहीं होती है।

+0

क्या आप इनमें से किसी भी स्थापित प्रक्रियाओं (कोड या विवरण) से लिंक कर सकते हैं? 'मानक' बंदरगाह क्या हैं? –

+0

http://www.merriam-webster.com/dictionary/standard[2] – ima

+1

वास्तव में, "तेज़" हार्डवेयर के लिए विलंबता विलंब है, और आधुनिक पीसी हार्डवेयर वास्तविक समय करने के लिए डिज़ाइन नहीं किया गया है। आप माप शासन मानते हैं कि मापने वाला पीसी वास्तविक समय में माप कर सकता है। प्रैक्टिस में जिटर अनुभव आरटीओएस विचार के लिए इस तरह के समय के लिए असंभव बनाता है। पीसी हार्डवेयर के लिए इंटरप्ट विलंबता लगभग 20uS है। एक ओएस के साथ, लगभग 50-60uS। एक गुंजाइश की तरह टेस्ट गियर को प्रति सेकंड या उच्चतर 1 गिगासमूह की स्थिर दरों पर नमूना करने में सक्षम होने के लिए डिज़ाइन किया गया है; यहां तक ​​कि सस्ते स्कॉप्स प्रति सेकंड 100 मेगागामल्स करते हैं, बिना जिटर के। –

2

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

विनिर्देश से अधिक लोडिंग के तहत भी एक कठिन वास्तविक समय प्रणाली असफल हो जाएगी (उम्मीद है कि उचित विफलता संकेत के साथ) जबकि कम लोडिंग वाले मुलायम वास्तविक समय प्रणाली कठिन वास्तविक समय के परिणाम देगी। समय में कितनी प्रसंस्करण होनी चाहिए और कितनी प्री/पोस्ट प्रोसेसिंग की जा सकती है वह हार्ड/सॉफ्ट रीयल-टाइम की असली कुंजी है।

कुछ वास्तविक समय के अनुप्रयोगों में कुछ डेटा हानि विफलता नहीं है, यह केवल एक निश्चित स्तर से नीचे होनी चाहिए, फिर एक सिस्टम मानदंड।

आप बोर्ड में इनपुट जेनरेट कर सकते हैं और एक छोटा सा आवेदन उन्हें गिन सकते हैं और जांच सकते हैं कि किस स्तर का डेटा खो जाएगा। लेकिन यह आपको उस एप्लिकेशन को चलाने वाले सिस्टम के लिए विशिष्ट रेटिंग देता है। जैसे ही आप अपने कम्प्यूटेशनल लोड में अधिक प्रसंस्करण करना शुरू करते हैं और अब आपके पास एक अलग हार्ड रीयल-टाइम सीमा है।

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

Edit after comment
सबसे कुशल और आसान तरीका मैं अपने सॉफ्टवेयर के प्रदर्शन को मापने के लिए इस्तेमाल किया है (यह मानते हुए कि आप एक schedular का उपयोग करें) मेरी शुरुआत और मेरे चक्र के अंत पर मुहर लगा बोर्ड पर और समय के लिए एक मुक्त चल हार्डवेयर टाइमर का उपयोग करके किया गया है । या यदि आप एक पूर्ण आरटीओएस टाइम स्टैम्प चलाते हैं तो आप अधिग्रहण और संक्रमण करते हैं। अपना अधिकतम समय बचाएं और एक सेकंड में मानों पर औसत चलाएं। यदि आपका औसत लगभग 50% है और आप अधिकतम अपने औसत के 20% के भीतर हैं तो आप ठीक हैं। यदि नहीं, तो यह आपके आवेदन को दोबारा करने का समय है। जैसे ही आपका आवेदन बढ़ता है चक्र का समय बढ़ेगा। आप अपने चक्र समय पर अपने सभी सॉफ़्टवेयर परिवर्तनों के प्रभाव की निगरानी कर सकते हैं।

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

ये समाधान आउटपुट की निगरानी करने के लिए एक दायरे को हुक करने की आवश्यकता को भी खत्म करते हैं क्योंकि समय की जानकारी पृष्ठभूमि कार्य द्वारा किसी भी प्रकार के टर्मिनल में प्रदर्शित की जा सकती है। यदि यह निगरानी करना आसान है तो आप अंत में समय की समस्याओं को हल करने से बचते हैं, लेकिन जैसे ही उन्हें पेश किया जाता है।

आशा है कि इससे

+0

क्या ऐसी प्रक्रिया विकसित करना संभव होगा जो अनुप्रयोग विकास के विभिन्न चरणों में चलाया जा सके? मैं आधारभूत आधार बनाना चाहता हूं, और सिस्टम को मॉनिटर करते समय सिस्टम की निगरानी करता हूं। परियोजना में बहुत बाद तक हमारे पास वास्तविक हार्डवेयर परिधीय नहीं होंगे। तब तक, हम सभी को डेस्कटॉप पीसी द्वारा अनुकरण किया जाएगा। कुल मिलाकर, मुझे स्पष्ट रूप से इस क्षेत्र में अधिक अनुभव नहीं है, लेकिन मुझे लगता है कि बाधाएं तंग हैं। हमारे पास एक कार्य है जो निष्पादन से पहले ताजा सेंसर डेटा के साथ 100-250 हर्ट्ज पर चलाना चाहिए, और परिणामी एक्ट्यूएटर कमांड अगले चक्र से पहले भेजे जाने चाहिए। –

+0

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

1

मुझे लगता है कि यह एक कठिन वास्तविक समय डिवाइस नहीं है, क्योंकि यह कोई आरटीओएस नहीं चलाता है।

+0

चला रहा है यही हमने महसूस किया। अब एक अलग बोर्ड का उपयोग कर, VxWorks चल रहा है –

संबंधित मुद्दे