USART, UART, RS232, USB, SPI, I2C, TTL, आदि ये सभी क्या हैं और ये एक दूसरे से कैसे संबंधित हैं?


165

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

मुझे इस बात की एक बुनियादी समझ है कि वे सभी कैसे काम करते हैं, लेकिन जब मैं उनमें से कई को देखता हूं तो मैं भ्रमित हो जाता हूं और यह समझने में कठिनाई हो रही है कि वे एक-दूसरे से कैसे संबंधित हैं। उदाहरण के लिए, UART USART का सबसेट है? RS232 और सीरियल के बीच अंतर क्या है? इन सभी संचार विधियों के बीच मुख्य अंतर क्या हैं: विश्वसनीयता, लागत, आवेदन, गति, हार्डवेयर आवश्यकताएं?

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


जवाबों:


253

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

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

लंबी दूरी के संचार के लिए (जिसमें सैकड़ों मीटर नहीं होना चाहिए) 5 V UART बहुत विश्वसनीय नहीं है, इसीलिए इसे उच्च वोल्टेज में परिवर्तित किया जाता है, आमतौर पर "0" के लिए +12 V और "-12 V" के लिए 1 "। डेटा प्रारूप समान रहता है। फिर आपके पास RS-232 है (जिसे आपको वास्तव में EIA-232 कहना चाहिए, लेकिन कोई नहीं करता है।)

सार्वभौमिक निर्भरता / अतुल्यकालिक रिसीवर ट्रांसमीटर के लिए समय निर्भरता UART की बड़ी कमियों में से एक है और इसका उपयोग USART है । यह UART कर सकता है, लेकिन एक सिंक्रोनस प्रोटोकॉल भी। सिंक्रोनस में न केवल डेटा है, बल्कि एक घड़ी भी संचारित है। प्रत्येक बिट के साथ एक घड़ी पल्स रिसीवर को बताता है कि उसे उस बिट को लैच करना चाहिए। तुल्यकालिक प्रोटोकॉल को या तो एक उच्च बैंडविड्थ की आवश्यकता होती है, जैसे मैनचेस्टर एन्कोडिंग के मामले में, या घड़ी के लिए एक अतिरिक्त तार, जैसे SPI और I2C।

एसपीआई (सीरियल पेरिफेरल इंटरफ़ेस) एक और बहुत ही सरल सीरियल प्रोटोकॉल है। एक मास्टर एक घड़ी संकेत भेजता है, और प्रत्येक घड़ी पल्स पर यह एक बिट को गुलाम से बाहर स्थानांतरित करता है, और एक बिट में दास से आता है। इसलिए सिग्नल के नाम घड़ी के लिए SCK, मास्टर आउट स्लेव में MOSI और मास्टर इन स्लेव आउट के लिए MISO हैं। एसएस (स्लेव सेलेक्ट) संकेतों का उपयोग करके मास्टर बस पर एक से अधिक दास को नियंत्रित कर सकता है। कई स्लेव डिवाइसेस को एक मास्टर से कनेक्ट करने के दो तरीके हैं, एक का उल्लेख ऊपर किया गया है अर्थात स्लेव सेलेक्ट का उपयोग करके, और दूसरा डेज़ी चेनिंग है, यह कम हार्डवेयर पिन (सेलेक्ट लाइन्स) का उपयोग करता है, लेकिन सॉफ्टवेयर जटिल हो जाता है।

I2C(इंटर-इंटीग्रेटेड सर्किट, "I स्क्वेरड सी") का उच्चारण भी एक सिंक्रोनस प्रोटोकॉल है, और यह पहला है जो हम देखते हैं कि इसमें कुछ "खुफिया" है; अन्य लोगों ने विनम्रतापूर्वक बिट्स को अंदर और बाहर स्थानांतरित कर दिया, और वह था। I2C केवल 2 तारों का उपयोग करता है, एक घड़ी (SCL) के लिए और एक डेटा (SDA) के लिए। इसका मतलब है कि मास्टर और दास एक ही तार पर डेटा भेजते हैं, फिर से मास्टर द्वारा नियंत्रित किया जाता है जो घड़ी संकेत बनाता है। I2C एक विशेष उपकरण का चयन करने के लिए अलग-अलग स्लेव चयन का उपयोग नहीं करता है, लेकिन इसमें एड्रेसिंग है। मास्टर द्वारा भेजी गई पहली बाइट में 7 बिट का पता होता है (ताकि आप बस में 127 उपकरणों का उपयोग कर सकें) और एक रीड / राइट बिट, यह दर्शाता है कि अगला बाइट भी मास्टर से आएगा या नहीं। दास। प्रत्येक बाइट के बाद, बाइट के रिसेप्शन को स्वीकार करने के लिए रिसीवर को "0" भेजना होगा, जो गुरु एक 9 वीं घड़ी नाड़ी के साथ देता है। यदि मास्टर एक बाइट लिखना चाहता है, तो यही प्रक्रिया दोहराती है: मास्टर बस पर थोड़ा सा डालता है और हर बार एक घड़ी की नब्ज को संकेत देता है कि डेटा पढ़ने के लिए तैयार है। यदि मास्टर डेटा प्राप्त करना चाहता है तो यह केवल घड़ी की दाल उत्पन्न करता है। दास को ध्यान रखना पड़ता है कि घड़ी की नब्ज दिए जाने पर अगला बिट तैयार है। यह प्रोटोकॉल NXP (पूर्व में फिलिप्स) द्वारा पेटेंट कराया गया है, लाइसेंसिंग लागत को बचाने के लिए, Atmel शब्द TWI (2-वायर इंटरफ़ेस) का उपयोग करता है, जो बिल्कुल I2C के समान है, इसलिए किसी भी AVR डिवाइस में I2C नहीं होगा, लेकिन इसमें TWI होगा। यदि मास्टर डेटा प्राप्त करना चाहता है तो यह केवल घड़ी की दाल उत्पन्न करता है। दास को ध्यान रखना पड़ता है कि घड़ी की नब्ज दिए जाने पर अगला बिट तैयार है। यह प्रोटोकॉल NXP (पूर्व में फिलिप्स) द्वारा पेटेंट कराया गया है, लाइसेंसिंग लागत को बचाने के लिए, Atmel शब्द TWI (2-वायर इंटरफ़ेस) का उपयोग करता है, जो बिल्कुल I2C के समान है, इसलिए किसी भी AVR डिवाइस में I2C नहीं होगा, लेकिन इसमें TWI होगा। यदि मास्टर डेटा प्राप्त करना चाहता है तो यह केवल घड़ी की दाल उत्पन्न करता है। दास को ध्यान रखना पड़ता है कि घड़ी की नब्ज दिए जाने पर अगला बिट तैयार है। यह प्रोटोकॉल NXP (पूर्व में फिलिप्स) द्वारा पेटेंट कराया गया है, लाइसेंसिंग लागत को बचाने के लिए, Atmel शब्द TWI (2-वायर इंटरफ़ेस) का उपयोग करता है, जो बिल्कुल I2C के समान है, इसलिए किसी भी AVR डिवाइस में I2C नहीं होगा, लेकिन इसमें TWI होगा।

एक ही तार पर दो या अधिक संकेतों से टकराव हो सकता है, और अगर एक डिवाइस "1" भेजता है तो दूसरा एक "0" भेजता है, तो आपको समस्या होगी। इसलिए बस तार-रहित है: दो प्रतिरोधक बस को उच्च स्तर तक खींचते हैं, और उपकरण केवल निम्न स्तर भेजते हैं। यदि वे उच्च स्तर पर भेजना चाहते हैं तो वे बस को छोड़ देते हैं।

TTL (ट्रांजिस्टर ट्रांजिस्टर लॉजिक) एक प्रोटोकॉल नहीं है। यह डिजिटल तर्क के लिए एक पुरानी तकनीक है, लेकिन नाम का उपयोग अक्सर 5 वी आपूर्ति वोल्टेज को संदर्भित करने के लिए किया जाता है, जिसे अक्सर गलत तरीके से UART कहा जाना चाहिए।


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


केवल टीटीएल पर +1, मैं अनुमान लगा रहा हूं कि ओपी का मतलब सीरियल टीटीएल है जो मेरे अनुभव में आरएस 232 ट्रान्सीवर / बस चालक से पहले यूएआर संकेतों का वर्णन करता है।
केनी

4
@ केनी - लेकिन "धारावाहिक टीटीएल" जैसी कोई चीज नहीं है। वह UART है। क्या होगा अगर वोल्टेज 3.3 V है? TTL केवल
स्टीवनव

यही मैं बात कर रहा हूं, UART के I / O को अक्सर मेरे अनुभव TTL सीरियल में बुलाया जाता है।
केनी

अद्भुत प्रतिक्रिया! मैं इसे कुछ और बार पढ़ूंगा, और आपको बताऊंगा कि क्या मेरे पास कोई सवाल है। धन्यवाद, स्टीवन।
कैपकॉम

8
Uart उम्र के लिए मछली के लिए एक बेहतर शर्त होगी :-)
वैभव गर्ग

11

यह किसी ऐसी चीज़ के क्षेत्र के पास है जहाँ आप कस्टम प्रतिक्रियाओं के लिए प्रश्न पूछने से बेहतर लेख पढ़ सकते हैं, लेकिन एक प्रमुख बिंदु को संबोधित करने के लिए जो निर्माता के कभी-कभी धुंधले हो जाते हैं:

दो बुनियादी प्रकार के सीरियल इंटरफेस हैं: सिंक्रोनस और एसिंक्रोनस।

सिंक्रोनस इंटरफेस में एक स्पष्ट घड़ी के सापेक्ष इसके समय के साथ संचारित डेटा होता है, जो प्रदान भी किया जाता है। इसका उत्कृष्ट उदाहरण एसपीआई है, लेकिन विशेष रूप से आई 2 एस जैसे ऑडियो कन्वर्टर्स, जेटीएजी, एफपीजीए कॉन्फ़िगरेशन इंटरफेस आदि भी हैं। कई समानांतर संचार चैनल इस विचार को एक साथ अधिक बिट्स को आगे बढ़ाने के लिए विस्तारित किए गए हैं। अक्सर लेकिन हमेशा ये सबसे महत्वपूर्ण बिट पहले नहीं भेजते हैं।

अतुल्यकालिक इंटरफेस में डेटा स्ट्रीम में ही इनकोडिंग टाइम है। "सीरियल पोर्ट्स" और संबंधित मानकों जैसे कि RS232 के लिए, शब्द का समय स्टार्ट बिट के सापेक्ष है, और इसके बाद रिसीवर केवल सही अंतराल पर लाइन का नमूना लेता है। अन्य इंटरफेस थोड़े अधिक जटिल हो सकते हैं और चरण बंद लूप और एल्गोरिदम का उपयोग करके कट्टर घड़ी वसूली की आवश्यकता होती है। एक UART एक "यूनिवर्सल एसिंक्रोनस रिसिवर ट्रांसमीटर" है - वास्तव में एक कार्यात्मक ब्लॉक के लिए नाम का उपयोग अक्सर "फ्लेक्सिबिलिटी" के साथ कुछ लचीलेपन के साथ शब्द की लंबाई, दर, और प्रारंभ / समाप्ति स्थितियों को लागू करने के लिए किया जाता है। RS232, RS422, आदि जैसी चीजें ऑफ-बोर्ड इलेक्ट्रिकल सिगनलिंग के लिए मानक हैं जो आपको इन आंकड़ों से मिलेंगी - वोल्टेज, सिंगल एंड या डिफरेंशियल, यदि कोई 1 उच्च या निम्न है, आदि।

"USART" एक वैध भ्रम का स्रोत हो सकता है, क्योंकि यह एक प्रकार का हाइब्रिड उपकरण है, "Unversal Synchronous / Asynchronous Receiver Transmitter" अनिवार्य रूप से, यह एक UART के रूप में सबसे अधिक उपयोग किया जाता है, लेकिन इसे कॉन्फ़िगर भी किया जा सकता है। डेटा के लिए एक अलग घड़ी उत्पन्न (या विचार), और बिट क्रम को उलटने में सक्षम हो सकता है। यह आमतौर पर एसपीआई के साथ इंटरोपर्ट करने योग्य है, लेकिन यह बिट्स को शुरू / बंद करने के लिए समर्पित समय को दूर करने में सक्षम नहीं हो सकता है इसलिए I2S जैसी किसी चीज के साथ काम करने में सक्षम नहीं हो सकता है जो शब्दों के बीच अंतराल के बिना लगातार डेटा बहने की उम्मीद कर सकता है।


बहुत अच्छी व्याख्या (Y) संक्षिप्तता से प्यार करती थी। थैंक्यू @ क्रिस
एवी मेहेंवाल

8

RS-232 एक बहुत ही सरल सीरियल प्रोटोकॉल है जो मूल रूप से मोडेम और टेलेटिप के लिए उपयोग किया जाता था। यह वही है जिसे आमतौर पर एक सीरियल पोर्ट (या एमएस-विंडोज में एक COM पोर्ट) कहा जाता है। यह नाममात्र लाइन पर V 12V स्तरों का उपयोग करता है, लेकिन वे व्यापक रूप से भिन्न हो सकते हैं क्योंकि पता लगाना। 3V में निर्दिष्ट है। हमेशा एक लाइन ड्राइवर होता है (आजकल आम तौर पर MAX232 परिवार से) जो इन स्तरों को कंप्यूटर या माइक्रोकंट्रोलर के आंतरिक डिजिटल सिग्नल स्तरों से और उससे परिवर्तित करता है।

टीटीएल का अर्थ है ट्रांजिस्टर-ट्रांजिस्टर-लॉजिक और इसका स्तर तार्किक शून्य के लिए 0 वी के पास और तार्किक 5 वी के पास है। अक्सर किसी भी 5V तर्क को TTL कहा जाता है, हालाँकि आजकल अधिकांश सर्किट CMOS के रूप में बनाए जाते हैं। आज कई ऐसे सर्किट भी हैं जो 3.3V पर काम करते हैं, जो अब TTL नहीं है।

आंतरिक स्तरों के संबंध में RS-232 लाइन पर स्तर उल्टे हैं, + 12 V तार्किक निम्न से मेल खाता है और -12 V तार्किक उच्च से मेल खाता है, जो भ्रामक हो सकता है।

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

एक UART (यूनिवर्सल अतुल्यकालिक रिसीवर ट्रांसमीटर) एक कंप्यूटर या माइक्रोकंट्रोलर में एक उपकरण है जो इस तरह के अतुल्यकालिक संचार करता है।

एक USART (यूनिवर्सल एसिंक्रोनस सिंक्रोनस रिसिवर ट्रांसमीटर) एक उपकरण है जो इसके अलावा सिंक्रोनस ट्रांसमिशन के कुछ प्रकार (ओं) को कर सकता है, इसलिए अतिरिक्त एस। किस तरह बदलता है, आपको इसे डेटा शीट में देखने की आवश्यकता है।

SPI, I SPC और USB भिन्न हैं (और USB के मामले में बहुत लंबी) कहानियां।


1

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

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