TX और RX किसके सापेक्ष हैं?


11

मैं एक ऐसे डिवाइस के साथ काम कर रहा हूं जो पीसी में RS232 संचार का उपयोग करता है। कुछ भ्रम की स्थिति बन गई है क्योंकि उन्होंने डिवाइस के सापेक्ष अपने TX और RX पिन को परिभाषित किया है। अपनी परिभाषा में वे इसका मतलब है कि TX पिन है जो डिवाइस से डेटा भेजता है। मेरे दिमाग में यह आरएक्स लेबल होना चाहिए क्योंकि यह कंप्यूटर पर प्राप्त पिन है।

पिन को कैसे परिभाषित किया जाना चाहिए? क्या वे प्रत्येक डिवाइस के सापेक्ष हैं या "कंट्रोलर" के सापेक्ष हैं?


6
मैंने कभी भी TX / RX को भेजने वाले दल की तुलना में अन्य दृष्टिकोणों से नहीं देखा है। ताकि TX पिन है जिसे भेजने वाला हिस्सा भेजता है और RX प्राप्त होता है। मैंने कभी सुझाव नहीं दिया जैसे आप सुझाव देते हैं।
मोर्टेन जेन्सेन

13
RS232 पिन नामकरण एक विशेष मामले का एक सा है क्योंकि उन्होंने DTE (डेटा टर्मिनल उपकरण) और DCE (डेटा संचार उपकरण) के संदर्भ में चीजों को परिभाषित किया और पूरी तरह से भ्रम पैदा करने में कामयाब रहे। DCE में RX पिन पर डेटा आउटपुट और TX पिन पर इनपुट है, DTE इसके विपरीत है। सिद्धांत रूप में कनेक्टर्स का लिंग आपको बताना चाहिए कि क्या है, व्यवहार में पर्याप्त निर्माताओं ने इसे कम तब विश्वसनीय मार्गदर्शक बनाने के लिए गलत पाया। एक कारण है कि आप सामान्य सिग्नल लाइनों पर छोटे जम्पर तारों की किट और कुछ एलईडी के साथ विभिन्न लिंगों के डी 9 और डी 25 के साथ छोटे बक्से खरीदने में सक्षम थे।
दान मिल्स

1
जब यह आपका जन्मदिन होता है, तो मैं आपको एक उपहार नहीं देता।
ctrl-alt-delor

1
@MortenJensen अच्छी तरह से अगर वे भेजने वाले पक्ष के दृष्टिकोण से नामित हैं, तो दोनों को TX कहा जाना चाहिए।
user253751

2
@ TerryCarmen DCE के लिए सही नहीं है जहां पिन नाम और डेटा प्रवाह निर्देश मानक के अनुसार उलट हैं। DTE Tx -> DCE Tx और DTE Rx -> DCE Rx, yea, अजीब और बकवास है लेकिन यह है कि यह क्या है।
डैन मिल्स

जवाबों:


23

यह समझना आसान हो सकता है, अगर हम जल्दी से समीक्षा करते हैं कि मूल रूप से RS-232 मानक का उपयोग कैसे किया गया था।

नोट: नीचे दिए गए सभी पिन नंबर मूल 25-पिन डी कनेक्टर को संदर्भित करते हैं; बाद में पीसी पर उपयोग किए जाने वाले 9-पिन कनेक्टर पर नंबर बदल गया।

पृष्ठभूमि

DTE = डेटा टर्मिनल उपकरण - पुराने दिनों में, यह आमतौर पर एक टर्मिनल या एक प्रिंटर या उन उपकरणों का अनुकरण होगा।

DCE = डेटा संचार उपकरण - पुराने दिनों में, यह आमतौर पर एक मॉडेम या अन्य WAN इंटरफ़ेस होगा।

मूल 25-पिन डी कनेक्टर पर पिन 2 (मानक में "ट्रांसमिट डेटा", "सर्किट बीए", "वी 24। नंबर 103") के रूप में डीटीई से डीसीई तक डेटा होना चाहिए ।

मूल 25-पिन डी कनेक्टर पर पिन 3 (मानक में "प्राप्त डेटा" के रूप में वर्णित है, "सर्किट बीबी", "वी 24। नंबर 104") डीसीई से डीटीई तक डेटा होना चाहिए ।

इसका मतलब यह था कि एक टर्मिनल और एक मॉडेम को जोड़ने वाली केबल "स्ट्रेट थ्रू" थी - केबल के एक छोर पर एक टर्मिनल (DTE) पर पिन 2 जहां डेटा की उत्पत्ति हुई, दूसरे पर एक मॉडेम (या इसी तरह) पर पिन 2 से जुड़ा था केबल का अंत (DCE) जहां वह डेटा प्राप्त हुआ था। मॉडेम ने उस लिंक के दूसरे छोर पर जो भी उपकरण थे, उस डेटा को संचार लिंक का उपयोग करके भेजा।

पिन 3 "प्राप्त डेटा" विपरीत दिशा में डेटा सिग्नल था - पिन 3 पर मॉडेम (डीसीई) द्वारा प्रेषित, और पिन 3 पर टर्मिनल (डीटीई) द्वारा प्राप्त किया गया था।

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

हालाँकि, इन दिनों हम उपयोग कर रहे उपकरणों के टुकड़े (भले ही वे RS-232 का उपयोग नहीं करते हैं और इसके बजाय एक TTL या अन्य वोल्टेज UART प्रोटोकॉल इंटरफ़ेस का उपयोग कर रहे हैं) आमतौर पर सभी प्रभावी रूप से DTE (एक अपवाद मॉडेम होने के साथ) हैं। डीटीई के एक टुकड़े पर पिन 2 (जो एक आउटपुट है) को कनेक्ट करना, डीटीई के रूप में कॉन्फ़िगर किए गए उपकरणों के दूसरे टुकड़े पर 2 (अन्य आउटपुट) को पिन करने के लिए, कोई मतलब नहीं है (और जब तर्क स्तर के संकेतों का उपयोग करते हैं, तो हार्डवेयर नुकसान भी हो सकता है)। यह वह जगह है जहां "पार" या "शून्य मॉडेम" (यानी कोई मॉडेम) केबल का उपयोग नहीं होता है।

आपका प्रश्न

मैं एक ऐसे डिवाइस के साथ काम कर रहा हूं जो पीसी में RS232 संचार का उपयोग करता है। कुछ भ्रम की स्थिति बन गई है क्योंकि उन्होंने डिवाइस के सापेक्ष अपने TX और RX पिन को परिभाषित किया है। अपनी परिभाषा में वे इसका मतलब है कि TX पिन है जो डिवाइस से डेटा भेजता है। मेरे दिमाग में यह आरएक्स लेबल होना चाहिए क्योंकि यह कंप्यूटर पर प्राप्त पिन है।

पिन को कैसे परिभाषित किया जाना चाहिए? क्या वे प्रत्येक डिवाइस के सापेक्ष हैं या "कंट्रोलर" के सापेक्ष हैं?

उपरोक्त पृष्ठभूमि जानकारी से, आप देख सकते हैं कि यदि उनकी डिवाइस डीटीई (जो कि एक मॉडेम या अन्य WAN इंटरफ़ेस नहीं है) के रूप में काम कर रही है, तो उनकी लेबलिंग सही है । DTE के एक टुकड़े पर, पिन लेबल "संचारित डाटा" (25 पिन कनेक्टर पर पिन 2) करता है डेटा भेजने। (और, जैसा कि ऊपर बताया गया है, DCE के एक टुकड़े पर (जैसे एक मॉडेम) पिन जिसे "ट्रांसमिटेड डेटा" (इसके 25 पिन कनेक्टर पर पिन 2) के रूप में जाना जाता है, वास्तव में एक इनपुट है, जो DTE से सिग्नल प्राप्त करता है।)

पीसी के सीरियल पोर्ट को डीटीई के रूप में भी कॉन्फ़िगर किया जाएगा (जब तक कि यह बहुत ही असामान्य सीरियल पोर्ट न हो - जो कि यहां लागू नहीं होगा, जैसा कि आपको पता होगा कि यह लागू होता है)।

इसलिए आप DTE डिवाइस (इस डिवाइस को आपने उल्लेख किया है) को DTE डिवाइस (PC) से कनेक्ट कर रहे हैं, अर्थात "RS-232 शब्दावली में कोई DCE नहीं है, अर्थात कोई मॉडेम नहीं है, और" null मॉडेम "या" आरएस -232 "पार कर गया है" वायरिंग की आवश्यकता होगी। जो भी आरएस -232 "ट्रांसमिटेड डेटा" है (संभवत: आपने जो उल्लेख किया है, उन्हें TX के रूप में लेबल किया गया है), जो इस DTE डिवाइस पर है, जो आउटपुट होगा, RS-232 से कनेक्ट होने की आवश्यकता होगी आपके पीसी पर डेटा "पिन (एक डीटीई डिवाइस भी), जो एक इनपुट है (और स्पष्ट रूप से दूसरी दिशा में डेटा ट्रांसफर के लिए इसके विपरीत)।

यद्यपि यह आपके लिए लागू नहीं होता है, मैं अभी जोड़ूंगा: जीवन को अधिक जटिल बनाने के लिए, कुछ निर्माता अपने DTE उपकरण को प्रभावी ढंग से लेबल करके "सहायता" करने का प्रयास करते हैं जैसे कि यह DCE का एक टुकड़ा था। वे अपने डेटा को चिह्नित इनपुट टीएक्स के रूप में पिन ताकि उपयोगकर्ता केवल जोड़ता है "टीएक्स" बाहरी उपकरण (जो, अगर यह DTE है, से हो जाएगा पिन चिह्नित अपने उपकरणों पर "टीएक्स" (जो वे जानते हैं कि है वहाँ से डेटा उत्पादन) एक इनपुट )। जिससे उन्हें यह कहने की अनुमति मिलती है कि "हमारे डिवाइस पर टीएक्स को अपने डिवाइस पर टीएक्स से कनेक्ट करें"। उन्हें लगता है कि वे मदद करने की कोशिश कर रहे हैं, लेकिन इस तरह के लेबलिंग अक्सर भ्रम में शामिल होते हैं।

जैसा कि डैन मिल्स ने एक टिप्पणी में उल्लेख किया है, हममें से कई लोग जो RS-232 के साथ बड़े हुए हैं, उन्होंने "ब्रेकआउट बॉक्स" का उपयोग करते हुए विभिन्न उपकरणों को थोड़ा अलग RS-232 कार्यान्वयन के साथ जोड़ने के लिए कई घंटे बिताए । इन ब्रेकआउट बॉक्स में एल ई डी हैं, जो बताते हैं कि कौन से सिग्नल सक्रिय रूप से संचालित किए जा रहे हैं (यह आपको जल्दी से यह देखने की अनुमति देता है कि क्या उपकरण डीटीई या डीसीई के रूप में कॉन्फ़िगर किया गया है: क्या पिन 2 उस उपकरण पर संचालित है? हां = यह डीटीई है) और ऐसे स्थान हैं जहां छोटे जम्पर हैं? विभिन्न कनेक्टर पिंस को जोड़ने के लिए केबल का उपयोग किया जा सकता है।


सामान्य अभ्यास यदि चीजें काम नहीं करती हैं, तो केबल के एक छोर पर पिन 2 और 3 पर कनेक्शन स्वैप करना है (यह डे -9 और डीबी 25 दोनों कनेक्टरों पर काम करता है)
पीटर बेनेट

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

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

8

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

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

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

अद्यतन: यहाँ कुछ उदाहरण हैं जो इस बात को स्पष्ट करते हैं।

शायद आजकल लाखों लोग Arduinos का उपयोग कर रहे हैं, कुछ को बिना यह भी पता चले कि यह कैसे काम करता है। वे Tx को Rx, Rx से Tx, Gnd से Gnd से जोड़ते हैं और उनका जाना अच्छा है। वे अक्सर महसूस नहीं करते हैं, यह है कि वे तकनीकी रूप से अशक्त-मॉडेम बना रहे हैं, जो दो एमसीयू को एक-दूसरे से बात करने की अनुमति देता है।

अब, वही लोग कभी-कभी अपने Arduinos में USB कनेक्टिविटी जोड़ना चाहते हैं। वे एडॉप्टर या कनवर्टर चिप पर TX से TX और RX से RX कनेक्ट करते हैं। ध्यान दें कि भ्रम से बचने के लिए जिन्हें अक्सर "TX-IN" और "RX-OUT" नाम दिया जाता है। फिर, जो स्पष्ट प्रतीत होता है, लेकिन शायद ही कभी इसके बारे में सोचा जाता है, तकनीकी रूप से यह यूएसबी एडाप्टर एक पास-थ्रू डिवाइस है। आरएक्स पिन पर यह "कहता है" एडॉप्टर से ही नहीं आ रहा है, यह लाइन के दूसरी तरफ डिवाइस से आ रहा है। और अंदाज लगाइये क्या? यह कहीं न कहीं TX पिन से जुड़ा है।


यह गलत है। मानक डीटीई और डीसीई (एक दूसरे से बात करने वाली दो चीजें) को निर्दिष्ट करता है, और TX / RX इनमें से एक के परिप्रेक्ष्य से निर्दिष्ट होता है (मैं भूल जाता हूं जो)। इस विवरण को वर्षों से खो दिया गया है और लेबल के उपयोग ने इतनी तेज़ी से पकड़ लिया है कि अनुभवी विद्युत इंजीनियर भी गलती करते हैं।
स्टीव

SamGibson का जवाब बहुत अच्छा है।
स्टीव

2
@ सच "विस्तार खो गया है" ?! RS232 का विनिर्देश पूरे वेब पर है! डीटीई पक्ष के लिए TX / RX निर्दिष्ट नाम क्योंकि DTE और DCE उन पिंस पर "एक दूसरे से बात नहीं कर रहे हैं ", वे इसके लिए कई नियंत्रण संकेतों का उपयोग करते हैं। मॉडेम और कंप्यूटर को अन्यथा एक दूसरे से कहने के लिए कुछ नहीं है। मॉडेम बस उन संकेतों से गुजरता है। लेकिन आप null-modem का उपयोग करके दो DTE को कनेक्ट कर सकते हैं और आप तब कहां हैं? वे दोनों कंप्यूटर हैं, वे एक-दूसरे से बात कर रहे हैं और यही स्थिति ओपी प्रश्न में वर्णित है।
मेपल

DTE से DTE जरूर काम करता है। मुझे आश्चर्य है कि आपने अपने उत्तर में DTE और DCE के बारे में कोई जानकारी शामिल नहीं की, हालांकि, यह समझने की ओर बहुत कुछ जाता है कि आपका उत्तर सही क्यों है। मुझे लगता है कि जब मैंने कहा कि मैंने गलत उत्तर दिया है तो मैंने कहा कि आपका उत्तर गलत है, लेकिन यह दूसरी गलतफहमी को दूर करता है - "विस्तार से खो गया है" से मेरा मतलब है कि ज्यादातर इंजीनियर इस बारे में सोचते भी नहीं हैं और बस "इसे आजमाएं" ", या डीटीई उपकरण को डीटीई सिग्नल नामों के साथ लेबल करें। और, उस विवरण को शामिल करने में यह थोड़ा सा मदद नहीं करता है ...
स्टीव

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

6

वे आमतौर पर डिवाइस के सापेक्ष होते हैं, क्योंकि RS232 डिवाइस में "मास्टर / दास" या "क्लाइंट / सर्वर" संबंध नहीं होता है। SPI प्रोटोकॉल में एक मास्टर / स्लेव आर्किटेक्चर होता है, इसलिए उन्हें "MISO" (मास्टर इन स्लेव आउट) और "MOSI" (छात्र के लिए एक अभ्यास के रूप में छोड़ दिया गया) लेबल दिया जाता है। यह डिवाइस स्तर पर है; मैं यह नहीं कह सकता कि व्यक्तिगत सर्किट डिजाइनर नेट नामों के रूप में क्या चुन सकते हैं।


उनका "डीटीई / डीसीई" संबंध है, लेकिन जैसा कि @Maple का वर्णन है, वे वहां रुक गए। वास्तव में कुछ गहरे इतिहास बता सकते हैं कि उन्होंने क्या किया।
गबरी

यह उत्तर, वर्तमान में लोगों द्वारा RS-232 के इलाज के तरीके का सही-सही वर्णन करते हुए, तकनीकी रूप से गलत है (जैसा कि @gbarry फिर से DCE / DTE बताते हैं)।
स्टीव

4

दुर्भाग्य से, इंजीनियरों के लिए यह अरहर के दो स्लाइस के बीच एक पहेली है।

कोई वास्तविक तार्किक समाधान नहीं है, दोनों तरीके तार्किक अर्थ बना सकते हैं।

मैं पिन, पीसी, आईसी लेआउट, कनेक्शन की तालिकाओं, सॉफ्टवेयर, को IN / OUT और / या दिशा दिखाने वाले तीरों के साथ लेबल करने का प्रयास करता हूं। "स्की-आउट" "आरएक्सटी-इन" "सीटीएस-आउट" "आरटीएस-इन" शब्द का उपयोग अपनी योजना पर आदि करें। यह पूरी तरह से अस्पष्टता को हल करता है। [मुझे आमतौर पर लगता है कि TX और RX को सही ढंग से नाम दिया जाना चाहिए यानी TX का आउटपुट होना चाहिए]।

यहां एक पीसीबी है जहां सिग्नल एक आइसोलेशन बैरियर को पार करते हैं। तीरों पर ध्यान दें, इसलिए कोई इसे डिबग कर रहा है, या एक कनेक्टर को फिट करने की कोशिश कर रहा है यह स्पष्ट रूप से जानता है कि सिग्नल किस तरीके से जा रहे हैं।

यहाँ छवि विवरण दर्ज करें

नियंत्रण संकेत और भी बदतर हैं। (और साथ ही एक विद्युत दिशा, उनके पास एक तार्किक नियंत्रण दिशा भी है)

नियंत्रण संकेतों में स्पष्ट रूप से फ़ंक्शन बिछाने का एक दस्तावेज होता है: 'CTS (आउट) कंप्यूटर को संकेत देता है कि डिवाइस डेटा प्राप्त करने के लिए तैयार है'

कभी-कभी दोनों तरीके एक ही समय में समझ में आते हैं: मेरे पास एक चिप है जहां RX और TX को सही ढंग से अपने स्वयं के फ़ंक्शन (चिप्स के दृष्टिकोण से) के साथ नाम दिया गया है। लेकिन हैंडशेक पिंस को सीटीएस और आरटीएस नाम दिया गया है जो पीसी पिन से मेल खाते हैं, क्योंकि वे सॉफ्टवेयर और स्टेटस लाइट से संबंधित हैं।

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


1
आप पिन से दूर जाने RXD>वाले तीर के साथ दिखा रहे हैं , जिसका अर्थ है कि उस पिन से एक संकेत निकल रहा है - मैं निश्चित रूप से उम्मीद करूंगा कि आउटपुट हो , इनपुट नहीं!
पाइप

@ पाइप यदि आप मानते हैं कि कनेक्टर के सापेक्ष सर्किट बोर्ड पर चिप कहां है, तो यह किसी ऐसे व्यक्ति के लिए बिल्कुल भी नहीं है जो उत्पाद पर काम कर रहा है, जिसमें कोई दस्तावेज नहीं है। तीर संकेत प्रवाह का सटीक रूप से प्रतिनिधित्व करता है। [दिलचस्प भाषाई बिंदु: "आउट" / "इन" के विपरीत, तीर का केवल स्थानिक संदर्भ में आंतरिक अर्थ होता है]
हेनरी क्रून
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.