मुझे पता है कि धारावाहिक संचार में समता बिट वैकल्पिक है, लेकिन स्टार्ट बिट और स्टॉप बिट (ओं) के बारे में क्या वे वैकल्पिक हैं?
मुझे पता है कि धारावाहिक संचार में समता बिट वैकल्पिक है, लेकिन स्टार्ट बिट और स्टॉप बिट (ओं) के बारे में क्या वे वैकल्पिक हैं?
जवाबों:
धारावाहिक संचार में प्रारंभ बिट और स्टॉप बिट (वैकल्पिक) हैं?
नहीं।
प्रकल्पित RS232 (या एक TTL संस्करण)
प्रत्येक पर विचार करें " दिशा "स्वतंत्र रूप से, प्रवाह नियंत्रण रेखाओं को अनदेखा करना। एक संकेत है, जो किसी भी तरह व्यक्त करना चाहिए" डेटा ", लेकिन यह भी बताने में सक्षम होना चाहिए" कोई आकड़ा उपलब्ध नहीं है "।
संप्रेषित करने के लिए " कोई आकड़ा उपलब्ध नहीं है ", हम केवल संकेत को उच्च - तर्क 1 से छोड़ते हैं। यह अनिश्चित काल के लिए ऐसा हो सकता है, और हर कोई खुश है।
जैसे ही हम संदेश देना चाहते हैं " डेटा "हमें केवल एक बाइनरी सिग्नल का उपयोग करके दूरस्थ अंत को सूचित करना चाहिए, वह डेटा आने वाला है।
अगर हम एक शुरुआत बिट और संचारित का उपयोग नहीं किया 0b11110000
, यह कुछ इस तरह दिखेगा (जहां ग्रे निष्क्रिय है, और हरा सक्रिय डेटा है):
लेकिन ... रिसीवर कैसे प्राप्त करना शुरू करना जानता है? यह समान दिखता है 0b00111100
:
इसलिए, इसके बजाय, हम एक ज्ञात जगह " यह शुरुआत है "बिट सामने:
प्रतिभाशाली!
लेकिन अब हम एक और समस्या में भाग लेते हैं ... कोई भी दो घड़ियां एक ही दर पर टिक नहीं पाती हैं। विनम्र UART के मामले में, यह कुछ ऐसा है जो समय से पहले सहमत है - लिंक के दोनों छोर हैं " बात कर रहे "लगभग उसी गति से ...
लिंक को काम करने का बेहतर मौका देने के लिए, हम एक परिचय देते हैं " थोड़ा रुक जाओ ", जो प्रभाव में है, बस आराम ... एक ठहराव। दो स्टॉप बिट्स अक्सर पुराने हार्डवेयर पर उपयोग किए जाते हैं जो प्राप्त बाइट को संसाधित करने में अधिक समय लेते हैं - एक स्टॉप बिट आज लगभग सर्वव्यापी है।
जैसा कि @sawdust ने मुझे याद दिलाया है, यह सुनिश्चित करने के लिए एक स्टॉप बिट भी महत्वपूर्ण है कि हम सफलतापूर्वक एक फ्रेम के अंत में पता लगा सकते हैं और सिंक्रनाइज़ कर सकते हैं, और अगले की शुरुआत। यह मुश्किल होगा अगर फ्रेम एक शून्य में समाप्त होता है, तुरंत फ्रेम दो के शुरुआती बिट के बाद।
... एंड देयर वी हैव इट! डेटा का एक अच्छी तरह से तैयार टुकड़ा।
समानता वैकल्पिक है क्योंकि यह डेटा की अखंडता को आश्वस्त करने से संबंधित है - भ्रष्टाचार का पता लगाने की सुविधा। दुनिया में कुछ भी सही नहीं है (कभी-कभी मुझे आश्चर्य होता है कि कुछ भी काम करता है), और यह जानना कि क्या आपके द्वारा प्राप्त किया गया डेटा वैध है सहायक है।
दुर्भाग्य से, विनिर्देश बहुत पुराना है, और समानता बिट हमें केवल एक का पता लगाने की अनुमति देता है बिट flips की विषम संख्या । यदि समान संख्या में बिट फ़्लिप हैं, तो समता नही सकता इसका पता लगाएं।
आज हमारे पास बहुत अधिक उन्नत त्रुटि का पता लगाने वाला है, यहां तक कि सुधार तकनीकों का भी अंत है, जो भ्रष्टाचार की मात्रा का पता लगाने (या सही भी) करने में सक्षम हैं।
आज UARTs पर चलने वाले प्रोटोकॉल आमतौर पर समता बिट का उपयोग नहीं करते हैं, और बदले हुए डेटा की अखंडता को सुनिश्चित करने के लिए एक चेकसम का उपयोग करना पसंद करते हैं।
आप अक्सर यह भी देखेंगे कि UARTs किसी डिवाइस के साथ इंटरफ़ेस करने के लिए उपयोग किया जाता है - एक सीरियल कंसोल। इस मामले में, डिवाइस एक मानव के साथ हस्तक्षेप कर रहा है, जो या तो ध्यान नहीं देगा या परवाह नहीं करेगा कि डेटा भ्रष्ट है (वे बस कमांड को फिर से चला सकते हैं)।
अंत में, UARTs आज आम तौर पर बहुत कम लिंक पर उपयोग किया जाता है, अच्छे मजबूत ड्राइवरों के साथ - भौतिक (विद्युत) स्तर पर शोर और भ्रष्टाचार को चिंता का विषय बना देना।
sometimes I'm amazed that anything works
- मुझे लगा कि यह केवल मैं ही हूं।
प्रारंभ और स्टॉप बिट्स दोनों अनिवार्य हैं, और वे एक सरल उद्देश्य की सेवा करते हैं - डेटा को संचारित करना।
डेटा लाइन आमतौर पर एक निश्चित बिट पर सेट होती है (उदाहरण के लिए, 0) जब प्रेषक निष्क्रिय होता है। एक बार जब यह संचार करना शुरू कर देता है, तो यह उल्टे बिट (प्रारंभ बिट, 1) के लिए डेटा लाइन सेट करेगा। यह रिसीवर को राज्यों की एक श्रृंखला में प्रवेश करने का संकेत देता है। अंतिम स्थिति में, डेटा लाइन फिर से निष्क्रिय हो जाती है, और वापस अपने मूल बिट (स्टॉप बिट, 0) पर रीसेट हो जाती है। रिसीवर फिर से शुरू बिट के लिए सुनता है, और चक्र दोहराता है।