समता से भी क्यों परेशान हो?


12

मैं अपने आवेदन में एक एसपीआई परिधीय का उपयोग कर रहा हूं। परिधीय रिटर्न पैकेट में 15 डेटा बिट्स होते हैं, साथ ही त्रुटि का पता लगाने के लिए एक समरूप बिट भी होता है।

एक एसपीआई परिधीय पर समानता

इसलिए सभी शून्य, और सभी लोग समता की जाँच करते हैं।

इसका मतलब है कि मेरे माइक्रोकंट्रोलर सबसे सामान्य प्रकार की त्रुटि का पता नहीं लगा सकते हैं: परिधीय डिस्कनेक्ट हो रहा है! इस मामले में, प्राप्त बिट्स सभी शून्य हैं, जो समता जांच पास करता है।

यह मानते हुए कि यह ओर्डिड समानता को लागू करने के लिए परिधीय के निर्माता के लिए उतना ही आसान होगा, मेरा सवाल है: उन्होंने इस मामले में भी समानता का उपयोग करने के लिए क्यों चुना होगा ? क्या इस मामले में भी समता का कुछ अन्य लाभ इस तथ्य के लिए है कि यह सबसे आम प्रकार की त्रुटि को पकड़ने में असमर्थ है?


6
कृपया ध्यान दें कि "समता", यहां तक ​​कि या विषम, डायनासोर तकनीक है, इसका उपयोग आधुनिक, पेशेवर प्रणालियों में नहीं किया जाना चाहिए। इसमें एकल बिट त्रुटियों को पकड़ने की संभावना 50% से कम है, और बहु-बिट त्रुटियों के लिए अभी भी बदतर है। केवल समानता का उपयोग करने के बारे में भूल जाओ, इसका उपयोग करना 1960 के दशक में भी एक नैतिक विचार था। यदि आपको SPI डेटा लाइन को मान्य करने की आवश्यकता है, तो आपको इनपुट कैप्चर टाइमर या समान का उपयोग करके डेटा को एक निचली परत पर देखरेख करना चाहिए। बफर ओवररन आदि के लिए एसपीआई झंडे की भी जांच करें
लुंडिन

39
@ लुंडिन "एकल बिट त्रुटियों को पकड़ने की संभावना 50% से कम है, और बहु-बिट त्रुटियों के लिए अभी भी बदतर है।" - अगर एक बिट गलत है, तो समता गलत होगी। सरल समानता में एकल-बिट त्रुटियों को पकड़ने का 100% मौका है, "50% से कम नहीं"। (इसी तरह, यह 2-बिट त्रुटियों को पकड़ने का 0% मौका है, और 3-बिट त्रुटियों को पकड़ने पर 100% फिर से है)।
13 दिसंबर को मार्सेल

7
@ लुंडिन - कृपया अपनी टिप्पणी को AMS के निर्माताओं को संबोधित करें, जो इन चिप्स को बनाते हैं।
रॉकेटमैग्नेट

26
@ लुंडिन यदि समता बिट फ़्लिप करता है, तो समता जाँच विफल हो जाती है।
एडम हुन

4
यह अभी भी ज्यादातर स्थितियों में बेकार है। ⁽ᶜᶦᵗᵃᵗᶦᵒᶰ d
दासिंगोन्सिन

जवाबों:


14

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

हालांकि, कई सिस्टम 1 की एक सतत श्रृंखला का उत्पादन करेंगे जब एक परिधीय मौजूद नहीं है और यह रिटर्निंग डेटा लाइन पर एक साधारण पुल-अप रोकनेवाला के साथ प्राप्त किया जा सकता है। यदि वास्तविक 8 बिट डेटा जुड़ा हुआ परिधीय द्वारा लौटाया जा रहा है तो समता बिट दशमलव 255 के लिए प्रेषित किया जाएगा। तो यहां तक ​​कि समता का पता लगा सकता है जब इन परिस्थितियों में एक परिधीय काट दिया जाता है।

यदि विषम समता का उपयोग किया जाता है, तो 8 उच्च बिट्स (दशमलव 255) के परिणामस्वरूप एक उच्च समता बिट होगी ताकि परिधीय चिप के नुकसान का पता लगाने के साधन के रूप में विषम समता बेकार हो।

मैदान के लिए घोड़े।


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

1
@Rocketmagnet भी, आपके द्वारा अपने प्रश्न में जोड़ी गई तालिका डेटा के उस प्रारूप के लिए प्रतीत होती है जिसे परिधीय को भेजा जाता है - 14 वीं बिट के लिए "0 होना चाहिए" शब्द पर ध्यान दें - शायद आपको डिवाइस डेटा शीट से लिंक करना चाहिए ?
एंडी उर्फ

3
संशोधित तालिका त्रुटि ध्वज के रूप में बिट 14 को दिखाती है और मेरी सलाह यह है कि डेटा को सभी 1 बनाने के लिए सीरियल रिटर्न डेटा पर एक पुल-अप का उपयोग किया जाए, जब डिवाइस काट दिया जाता है क्योंकि तब डिकोड बिट 14 एक समस्या का संकेत देगा।
एंडी उर्फ

1
@Trevor_G ओप्सन हाँ। प्रगति में संशोधन।
एंडी उर्फ

1
उचित अपेक्षा वह सॉफ्टवेयर है जो स्पाई कंट्रोलर का उपयोग करता है जो कि जोखिम होने पर वापस आने वाले डेटा को मान्य करना चाहिए। यदि आपके पास एक या दूसरे पक्ष पर नियंत्रण नहीं है, तो आपको निश्चित रूप से उच्च स्तर के सॉफ़्टवेयर में ऐसा करने की आवश्यकता है। केवल समय आप यह दे सकते हैं कि यदि आप स्पाई डिजाइन के दोनों किनारों को नियंत्रित करते हैं और इसे अपनी बिट त्रुटि आवश्यकताओं को पूरा करते हैं, जो इस मामले में लगता है कि आप नहीं कर सकते। तो आपके सॉफ्टवेयर को सभी शून्य और सभी लोगों के लिए
जाँचना चाहिए

5

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

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

एक एकल समता बिट की त्रुटि का पता लगाने की दर अक्सर 50% से अधिक होती है। सटीक रूप से वह दर प्रोटोकॉल में डेटा खंड की उत्तराधिकारियों पर निर्भर करती है। कहते हैं कि आपके पास एक पैकेट है, (MSB) 1011010111011110, और अंतिम प्रेषित बिट में एक एकल बिट त्रुटि है, समता जाँच विफल हो जाएगी और सही ढंग से इसे पैकेट अस्वीकार कर देगा। इसी तरह, यदि आपके पास पहले बिट (समता बिट) में डेटा त्रुटि थी, तो पैकेट को अस्वीकार कर दिया जाएगा।

हार्डवेयर में यह जांच करना अत्यंत सरल है और इसके लिए किसी जटिल प्रक्रिया की आवश्यकता नहीं है। यह कचरा एकत्र करने वाले सॉफ़्टवेयर स्टैक्स चलाने वाले प्रोसेसर द्वारा उत्पन्न घड़ी तिरछी या घड़ी संकेतों जैसी खरपतवार की अपेक्षाकृत कम त्रुटि दर वाले अनुप्रयोगों में उपयोगी है।

एसपीआई एक भौतिक लिंक प्रोटोकॉल है जो छोटी विद्युतीय रूप से जुड़ी लाइनों के लिए डिज़ाइन किया गया है जहां एकल-बिट त्रुटि दर लाइन के नुकसान पर निर्भर नहीं करती है। यदि आप एक नुकसानदेह रेखा के पार कुछ चला रहे हैं, तो आपको समता की तुलना में अधिक मजबूत तरीके से कुछ करने की आवश्यकता है। यह वास्तव में एसपीआई क्या नहीं करता है।

यह जांचने के लिए कि क्या कोई उपकरण अभी भी जुड़ा हुआ है, स्टैक में कुछ उच्च प्रयास करें। तुलना करके, टीसीपी / आईपी (आईपी, विशेष रूप से) समानता बिट्स को निर्दिष्ट नहीं करता है जबकि 802.x ईथरनेट विनिर्देशों में से कई करते हैं। दूसरी ओर, आईपी एक जटिल है, "क्या आप वहां हैं?" मसविदा बनाना। आप SPI के शीर्ष पर क्या चल रहे हैं? डेटा लिंक प्रबंधन का जवाब शायद है।


1
802.3 और .11 CRC32 का उपयोग करते हैं; आईपी ​​और टीसीपी और (वैकल्पिक रूप से) यूडीपी 16-बिट्स-सप्लीमेंट राशि का उपयोग करता है, जो इस तथ्य के कारण है कि बहुत कम मशीनें या यहां तक ​​कि एएलयू आज 1sC हैं जो ज्यादातर बिना किसी अतिरिक्त प्लस कैरी-इर्द-गिर्द लागू किए गए हैं।
dave_thompson_085

मुद्दा यह है कि समानता आसानी से लाइन की एकमुश्त विफलता का पता लगा सकती है। अगर मुझे सभी 1s या सभी 0s वापस मिल जाते हैं, तो यह विफलता होनी चाहिए।
Rocketmagnet

4

वहाँ भी समता पर विषम का कोई स्पष्ट लाभ है। संचार और भंडारण योजनाओं में, समता ध्रुवीयता (विषम या सम) को सबसे अधिक संभावना या उच्चतम-विफलता विफलता मोड में फंसाने के लिए चुना जाना चाहिए।

जैसा कि आप कहते हैं, एक अनुत्तरदायी लक्ष्य या टूटा हुआ डेटा प्राप्त तार के परिणामस्वरूप MISO लाइन अच्छी तरह से उच्च या निम्न अटक सकती है।

जब बिट्स की संख्या, जैसे कि SPI पर बाइट्स, का संचार करते हैं, तो एक विषम समता बिट इस सभी -1 या all-0 के डेटा में एक गलती का पता लगाएगा, लेकिन समता नहीं होगी।

हालाँकि, बिट्स की एक विषम संख्या को संप्रेषित करते समय ऐसा कोई स्पष्ट विजेता नहीं है, जैसे कि SPI पर 15 बिट्स के साथ आपके आवेदन में। यहां तक ​​कि समता सभी -1 के मामले में एक गलती का पता लगाती है, लेकिन सभी 0 के मामले को याद करती है। इसके विपरीत, विषम समता सभी -० के मामले में एक गलती का पता लगाती है लेकिन सभी -1 के मामले को याद करती है।


दरअसल, हां, इस मामले में स्पष्ट रूप से है । जैसा कि मैंने सवाल में बताया, अजीब समानता का पता लगाने में सक्षम होगा: लापता, दोषपूर्ण चिप्स और केबल विफलताओं, जबकि समता नहीं कर सकते।
राकेटमग्नेट

0

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


0

यह सवाल करना सही है, मेरी समता की भी यही आलोचना है। समता बिट के अलावा, आपके उदाहरण के अनुसार, और जैसा कि आम है, डेटा बिट्स की एक विषम संख्या के साथ, यहां तक ​​कि समता सभी 0s और सभी 1s को वैध प्रेषित शब्दों के रूप में अनुमति देता है, जो एक मृत लिंक या मृत चिप का पता लगाने में बेकार है। टोनी एम द्वारा पूर्व का जवाब इस संबंध में गलत है। प्रमाण के लिए यहाँ 7bit डेटा उदाहरण तालिका देखें: - https://en.wikipedia.org/wiki/Parity_bit

विषम समरूपता सभी 0s या सभी 1s मामले में एक विपरीत स्थिति को सम्मिलित करेगी, इस प्रकार यह साबित होता है कि लिंक और चिप जीवित हैं, और इस मामले में एक बेहतर विकल्प होगा।

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