USB पोर्ट को कभी-कभी सीरियल पोर्ट के रूप में क्यों कहा जाता है और COM कहा जाता है?


13

जहाँ तक कंप्यूटर पोर्ट के बारे में मेरी समझ है,

  1. एक सीरियल पोर्ट एक 9 पिन प्लग है जैसे कि यहां दिखाया गया है और इसे COM पोर्ट भी कहा जाता है।
  2. USB पोर्ट सीरियल पोर्ट से एक अलग मानक है।

फिर मैं अक्सर USB पोर्ट को "सीरियल पोर्ट" क्यों कहता हूं और उदाहरण के लिए, Arduino IDE में, USB पोर्ट को COM उपसर्ग द्वारा पहचाना जाता है? यदि कोई सीरियल पोर्ट शामिल नहीं हैं, तो भी कभी-कभी वर्चुअल COM पोर्ट की आवश्यकता क्यों होती है? (उदाहरण: Prologix GPIB-USB एडाप्टर।)

मुझे लगता है कि दो अलग-अलग चीजों का वर्णन करने के लिए एक ही नाम का यह उपयोग थोड़ा भ्रमित कर सकता है।

Arduino IDE से स्क्रीनशॉट, मेनू कमांड टूल → सीरियल पोर्ट → COM14 दिखाया गया है


2
USB धारावाहिक है।

3
शायद इसलिए कि आपके पास एक यूएसबी डिवाइस है जो सीरियल पोर्ट के रूप में काम करता है ? कुछ है कि उन में से एक FTDI (FT232) या प्रोलिफिक (PL2303) USB से धारावाहिक चिप्स, या शायद एक MCU उसी के एक सॉफ्टवेयर कार्यान्वयन के साथ है? मदरबोर्ड पर तय सीरियल पोर्ट्स (या पीसीआई (ई) कार्ड्स में) के रूप में उन्हें उसी नामस्थान में दिखाया गया है, जो इंटरफ़ेस को सॉफ्टवेयर के लिए अधिक सीधा बनाता है: यह जानना जरूरी नहीं है कि पोर्ट को भौतिक रूप से कैसे लागू किया जाता है, बस एक सीरियल पोर्ट की तरह हमलों।
18लक्कचू

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

14
यूनिवर्सल क्या बस?
हॉब्स

4
@ ओह, यह सही यूनिवर्सल सीरियल बस है। एक बस। एक सीरियल पोर्ट से बहुत अलग है, है ना? मूर्खतापूर्ण बोल्ड पाठ के बिना भी।

जवाबों:


27

ये USB पोर्ट नहीं हैं जिन्हें सीरियल पोर्ट कहा जाता है। आपके उदाहरण में, Arduino में USB-to-serial डिवाइस है (या तो एक दूसरे माइक्रोकंट्रोलर के रूप में, या एक FTDI चिप)। यह कंप्यूटर के साथ संचार करने और बाहरी दुनिया के लिए एक वास्तविक सीरियल पोर्ट बनाने के लिए यूएसबी का उपयोग करेगा - यूएसबी वाई-फाई डोंगल, या यूएसबी लैन एडेप्टर, यूएसबी एसएटीए एडेप्टर, आदि के समान।

कुंजी यह है कि कई मामलों में, सीरियल पोर्ट सीधे उपयोगकर्ता के लिए उपलब्ध नहीं है, क्योंकि यह डिवाइस में "हार्ड वायर्ड" है (इस मामले में, सीधे माइक्रोकंट्रोलर से जुड़ा है जो आप प्रोग्रामिंग कर रहे हैं)।

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


10
किसी भी समय किसी को "सीरियल पोर्ट" के लिए संदर्भित किया जाता है वे लगभग निश्चित रूप से आरएस -232 का मतलब डीई -9 एम कनेक्टर के माध्यम से जुड़ा हुआ है। अगर लोगों को USB का मतलब है, तो वे USB कहना चाहते हैं। अन्य सीरियल प्रोटोकॉल जैसे RS-485 या GPIB या ईथरनेट के विभिन्न स्वादों के लिए भी।

5
@Felthry: "सीरियल" का अर्थ अक्सर अतुल्यकालिक सीरियल सिग्नलिंग ("UART" में "A") होता है, जिसका उपयोग RS-232 भी करता है, लेकिन मानक तर्क वोल्टेज स्तर पर, RS-232 नहीं। और हाथ मिलाने वाले पिन को शामिल कर सकते हैं या नहीं कर सकते हैं, जो 9 पिन (या 25-पिन, जो कि RS-232 के लिए मूल था) का नेतृत्व करते हैं।
बेन वोइगट

2
सच। मुझे लगता है कि शब्दावली का दुरुपयोग की एक और परत है, प्रोटोकॉल का एक कम-वोल्टेज संस्करण का मतलब 'आरएस -232' का उपयोग करना। मैंने डीबी -25 एम कनेक्टर का उल्लेख करने पर भी विचार किया, लेकिन यह वास्तव में यहां प्रासंगिक नहीं है।

7
@Felthry, क्षमा करें, लेकिन किसी भी समय "धारावाहिक पोर्ट" को संदर्भित करता है, वे लगभग निश्चित रूप से मतलब है कि RS-232 एक DE-9M कनेक्टर के माध्यम से जुड़ा हुआ है "एक पुराना पीसी-केंद्रित दृश्य है। और पीसी को कम से कम एक दशक के लिए पीठ पर 9-पिन कनेक्टर के साथ नहीं बनाया गया है। अपने उपयोगकर्ताओं के बड़े पैमाने पर आबादी ने उन्हें कभी नहीं छुआ जब वे थे। उत्पाद, उपकरण और PCBs सभी जगह सीरियल पोर्ट का उपयोग करते हैं, विभिन्न प्रकार के समर्पित कनेक्टर्स के माध्यम से और LVTTL स्तरों या RS-232C पर। और इस साइट के इंजीनियरों को सीरियल पोर्ट एक पुराने पीसी मानक की तुलना में कहीं अधिक तरीके से अनुभव करेंगे। उससे ज्यादा विविध दुनिया, मुझे डर है।

4
@ टोनी शायद मैं अभी भी बहुत पुराने स्कूल उपकरण के आसपास रहा हूँ। हालांकि, मैं ध्यान दूंगा कि कंप्यूटर अभी भी उन पर DE9 कनेक्टर्स के साथ बने हैं - उपभोक्ता बाजार के लिए नहीं। वे उद्योग और अनुसंधान में सर्वव्यापी हैं, क्योंकि आपको उन प्रणालियों के साथ इंटरफेस करने की आवश्यकता होगी जो 90 के दशक में या उससे पहले बने थे, जब वे आम थे। लोग अपने औद्योगिक उपकरणों को अपग्रेड नहीं करते हैं जैसे आप अपने फोन को अपग्रेड करते हैं, वैसे ही! जैसा मैंने कहा, यह शब्दावली का दुरुपयोग है। शायद "लगभग निश्चित रूप से" बहुत मजबूत शब्द था, लेकिन यह एक बहुत ही सामान्य उपयोग है।

18

यह भ्रामक है क्योंकि Windows COM: पोर्ट MS-DOS (b। 1980) में परिभाषित नामकरण प्रणाली से आते हैं। यह Unix से लिए गए कुछ विचारों के साथ CP / M (b। 1974) से बहुत कॉपी किया गया था। उन्होंने USB की तरह एक मध्यवर्ती 'परिवहन' बस को जोड़ने का अनुमान नहीं लगाया था।

Windows में कुछ चीजें CP / M-> MS-DOS विकास से बची हैं, जैसे अक्षर-नाम डिस्क ड्राइव, 3-अक्षर फ़ाइल नाम एक्सटेंशन, .EXE और .COM फाइलें और कमांड प्रॉम्प्ट कमांड इंटरफ़ेस।

एक और उपकरण का नाम है: आम तौर पर तीन पत्र, हमेशा एक बृहदान्त्र में समाप्त होते हैं। COM: एक सीरियल 'कम्यूनिकेशन पोर्ट' है, LPT: एक 'लाइन प्रिंटर' (आमतौर पर एक Centronics पोर्ट को बंद करके), NUL: जो भी इसे भेजा जाता है उसे डंप करता है, CON: 'कंसोल' (कीबोर्ड और स्क्रीन) है। कुछ है कि आप उन दोनों के बीच अंतर करने के लिए गिने जा सकते हैं। COM: पोर्ट करते हैं, जैसा कि एलपीटी करते हैं: पोर्ट, COM1 बन रहा है: और LPT1: और इसी तरह।

COM: पोर्ट एक 'एंडपॉइंट' है: विंडोज पीसी के दृष्टिकोण से संचार लिंक का दूर का छोर। कंप्यूटिंग में बहुत सी चीजों की तरह, वहाँ के पुल को अनदेखा किया गया है और यह आपके द्वारा यूएसबी के बारे में नहीं, बल्कि सबसे दूर के घटक के बारे में सोच रहा है। यह एक पीसी कीबोर्ड (CPU-PCIe-USB-kbd के रूप में जुड़ा हुआ) या नेटवर्क ड्राइव (CPU-PCIe-LAN-LAN-PCI-CPU-PCIe-SATA या समान) से जुड़ा हुआ है।

USB एंडपॉइंट के विचार का भी उपयोग करता है। एक USB नियंत्रक एक होस्ट पीसी को सभी प्रकार के हार्डवेयर से जोड़ सकता है और उन्हें संसाधन के रूप में प्रदान कर सकता है। इसलिए जब आप USB से जुड़े हार्डवेयर को देखते हैं, तो आप इन एंडपॉइंट्स को देखते हैं। एक आभासी COM: एक USB डिवाइस में पोर्ट बस एक सीरियल पोर्ट है जो उस USB गुलाम डिवाइस से एक समापन बिंदु के रूप में निकलता है। विंडोज इसे एक नंबर देगा (COM1 :, COM27: आदि) और उस सीरियल पोर्ट को COM: पोर्ट के लिए मानक विंडोज एपीआई का उपयोग करके किसी भी प्रोग्राम द्वारा पहचाना और इस्तेमाल किया जा सकता है।

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


4
मैंने कभी किसी कॉलन में समाप्त होने के लिए उपकरण के नाम नहीं देखे हैं। कमांड लाइन में आप type file.txt > lpt1बिना किसी कोलन के भी कहते हैं । और डिफ़ॉल्ट विंडोज फाइल मैनेजर, एक्सप्लोरर में, आप उदाहरण के लिए COM या LPT1 (कम से कम विंडोज एक्सपी में, शायद बाद में) नाम से एक फ़ाइल नहीं बना सकते। डिवाइस नाम के बाद कोई वास्तव में कोलन को कहां देख सकता है?
रुस्लान

2
@Ruslan, आप सही कह रहे हैं कि वे विंडोज में वैकल्पिक हैं जो उन्हें गिरा दिया है, यह एमएस-डॉस के विपरीत दोनों को स्वीकार करता है। लेकिन उन्हें कभी नहीं देखा ... (ए) एमएस-डॉस उपकरणों पर एक पाठ को देखो; (b) CP में, टाइप करें 'मोड /?' और COMn और LPTn: पोर्ट मापदंडों को सेट करने के लिए उपयोग किए जाने वाले कमांड के सिंटैक्स को देखें, यदि आपको पसंद है तो उन्हें आज़माएं; (c) कमांड प्रॉम्प्ट में, 'copy con: nul:' टाइप करें और यह काम देखें (Ctrl-C to end)।

1
@Ruslan Colon वहाँ है क्योंकि यह किसी अन्य की तरह एक उपकरण है। यह बृहदान्त्र नहीं है जो विशेष है - copy con:filename.txt nulबस ठीक काम करता है, बिल्कुल वैसा ही copy c:filename.txt nul। कम से कम MS-DOS 6.22 के रूप में, बृहदान्त्र को ज्यादातर मामलों में छोड़ा जा सकता है, क्योंकि यह किसी भी अस्पष्टता का परिचय नहीं देता है; ड्राइव नामों के विपरीत, इन उपकरणों को आरक्षित नाम दिए गए हैं, इसलिए आप समस्याओं में नहीं चलते हैं copy file.txt c(क्या मुझे फ़ाइल को c ड्राइव पर वर्तमान निर्देशिका में कॉपी करना चाहिए, या मेरी वर्तमान निर्देशिका में "c" नामक फ़ाइल में?) ।
लुआना

7

जोरेन वैस के उत्तर में जोड़ने के लिए : इस बात से अवगत रहें कि कुछ सॉफ़्टवेयर ऐप (जैसे अरड्यूनो आईडीई) एक विंडोज ड्राइवर स्थापित करते हैं जो "वर्चुअल कॉम" पोर्ट बनाता है। जब वे पोर्ट सक्रिय हो जाते हैं, तो ऑपरेटिंग सिस्टम उन प्रोग्रामों को बताता है कि एक COM पोर्ट उपलब्ध है, जो एक मानक सीरियल पोर्ट की तरह दिखता है [*], किन प्रोग्राम्स (जैसे Arduino IDE, बल्कि अन्य कोई भी) को बिट्स भेज और प्राप्त कर सकते हैं जैसे किसी भी सीरियल पोर्ट पर। हालांकि, हुड के तहत, उन बिट्स को एक यूएसबी केबल पर भेजा जाता है। Arduino बोर्ड के अंदर कुछ अनुरूप होता है।

[*] और, "मानक सीरियल पोर्ट" के द्वारा, हमारा मतलब है RS-232 प्रोटोकॉल, वह प्रकार जिसे पारंपरिक रूप से DB-9 या DB-25 कनेक्टर के माध्यम से ट्रेजेड किया गया था। हमारे संदर्भ में यह बिल्कुल भी मायने नहीं रखता है कि यूएसबी "धारावाहिक" भी है।


7

COM पोर्ट और USB पोर्ट के बीच अंतर के बारे में आपकी समझ सही है।

लघु उत्तरीय आपके प्रश्न का उत्तर देता है, कि क्यों कुछ USB पोर्ट को OS द्वारा "COM" पोर्ट के रूप में मैप किया जाता है, वह है: USB CDC (कम्युनिकेशन डिवाइस क्लास) को लागू करने वाले USB डिवाइस होते हैं। ये डिवाइस एक जटिल UART / RS-232 प्रकार के इंटरफ़ेस से भयानक जटिल USB इंटरफ़ेस से एक पुल प्रदान करते हैं। उपयोगकर्ताओं के लिए पारदर्शिता के लिए, ऑपरेटिंग सिस्टम USB ड्राइवरों को लोड करता है जो ट्रांसपोर्ट परत को COM पोर्ट, एक वर्चुअल COM पोर्ट के रूप में नकल करते हैं। कुछ ऐतिहासिक विवरण और इस दृष्टिकोण के औचित्य का पालन करते हैं।

COM पोर्ट DB-9 / DB-15 (उर्फ RS-232 धारावाहिक, या UART) कनेक्टर का उपयोग करता है, और इन पोर्ट के लिए नियंत्रकों को I / O स्पेस में विशिष्ट पते पर भौतिक रूप से पीसी हार्डवेयर में मैप किया जाता है। यह COM नियंत्रक आधुनिक पीसी में अप्रचलित हो रहा है, और विलुप्त हो जाता है।

एक ही समय में कई MCU अभी भी परिधीय दुनिया के साथ संवाद करने के लिए मुख्य साधन के रूप में RS-232 धारावाहिक संचार का उपयोग करते हैं। कारण यह है कि इस तरह के लिंक के लिए हार्डवेयर (और सॉफ़्टवेयर) बहुत सरल और लागू करने में आसान है। अधिक, सभी आधुनिक Android विकास / डिबग संचार COM-पोर्ट शैली में किया जाता है। इसके अलावा, कई "संचार" उपकरण (4 जी एलटीई और इसके बाद के संस्करण सहित मोडेम), अभी भी कई "COM" बंदरगाहों पर ASCII- प्रकार नियंत्रण प्रोटोकॉल के साथ UART- शैली इंटरफ़ेस का उपयोग करते हैं।

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

अब, इन MCUs के सभी मूल संचार अभी भी RS-232 प्रोटोकॉल के संदर्भ में व्यक्त किए जाते हैं, और अधिकांश एप्लिकेशन उदाहरण लिंक का उपयोग करने के लिए कुछ टर्मिनल एप्लिकेशन (TeraTerm, HyperTerminal, आदि) का उपयोग करते हैं। उपयोगकर्ता की सुविधा के लिए, USB-to-UART पुलों को ड्राइवरों के साथ प्रदान किया जाता है जो पोर्ट को वर्चुअल COM पोर्ट के रूप में दर्शाते हैं। सभी आधुनिक सॉफ़्टवेयर COM हार्डवेयर के वर्चुअलाइजेशन का उपयोग करते हैं, जो "COM-less" पीसी को सुचारू रूप से संक्रमण प्रदान करता है। MCU डेवलपमेंट प्लेटफ़ॉर्म पर UART पोर्ट्स के लिए समर्पित FTDI ब्रिज को जोड़ना या (USB पोर्ट को COM पोर्ट जैसा दिखाने के लिए होस्ट PC पर FTDI ड्राइवर्स का उपयोग करना) या MCU में ही उचित ब्रिज कोड एम्बेड करना एक आम बात हो गई है (यदि इसमें देशी USB कार्यक्षमता है)।

सीधे दृष्टिकोण बाहरी यूएसबी-टू-यूएआरटी बोर्ड का उपयोग करना है और विकास के तहत यूएआर को एमसीयू को तार करना है। या, यदि किसी बोर्ड में पहले से ही डीबी -9 कनेक्टर है, तो यूएसबी डोंगल हैं जो सीधे उससे जुड़े हो सकते हैं।

सभी मामलों में MCU का मूल UART नियंत्रण एक वर्चुअल COM पोर्ट के रूप में होस्ट करेगा, जो सभी मध्यवर्ती सिग्नल / प्रोटोकॉल परिवर्तनों को छोड़ देता है। यही कारण है कि आजकल लोग अक्सर यूएसबी-टू-यूएआर पुल और कॉम पोर्ट के बीच अंतर छोड़ देते हैं।


3

यह बहुत भ्रामक है, लेकिन आपको इसके बारे में चिंता करने की आवश्यकता नहीं है। सबसे पहले, एक UART के बारे में सोचें जो स्वयं एक सामान्य शब्द है, लेकिन एक ऐसा विचार करें जो एक शुरुआत बिट, एक या दो स्टॉप बिट्स के साथ एक प्रोटोकॉल का उत्पादन करता है, 7 या 8 आमतौर पर डेटा बिट्स, और कभी-कभी समता जो कि सम या विषम है; यह वहां से भिन्न हो सकता है जो इसे और भी बदतर बनाता है।

UART TTL के स्तर पर है, जो भी इसका मतलब है। यह 5 V और अब 3.3 V, 1.8 V या जो भी हुआ करता था; शायद TTL गलत शब्द है। जब आपके पास RS-232, RS-422 इत्यादि होते हैं, तो ये VOLTAGE AND PIN मानक होते हैं, प्रोटोकॉल मानक नहीं। जब आप UART के किसी प्रकार का अर्थ करते हैं तो शब्दों को मिलाना और RS-232 कहना गलत है।

दिन में वापस आपका UART आपके मदरबोर्ड पर था और आपने वोल्टेज स्तर के साथ बाहरी दुनिया के लिए किसी प्रकार के कनेक्टर को वांछित किया जो उस समय समझ में आए और कुछ प्रकार के मानक पिनआउट / केबल। इसलिए एक लोकप्रिय 25 और 9 पिन मानक अक्सर विभिन्न परिधीयों के लिए पाए जाते थे, और विंटेल पीसी की दुनिया में इसे कॉमम्युनिकेशन पोर्ट या कभी-कभी सीरियल पोर्ट कहा जाता था।

निश्चित रूप से, एक पोर्ट जो सीरियल डेटा ले जाता है और एक सीरियल पोर्ट कहलाता है, SPI, I ,C, MDIO, UART, HDLC, SDLC, आदि, और शायद USB और SCSI; आप इसके साथ पागल हो सकते हैं। आमतौर पर एक सीरियल पोर्ट का मतलब होता है कुछ पिन जो आप UART में प्राप्त कर सकते हैं।

यूनिक्स / लिनक्स दुनिया / / के ttyबजाय कहते हैं , लेकिन यह एक ही बात है।comserialuart

अब इम्प्लिमेंटेशन है। आप उस पर कुछ इंटरफ़ेस के साथ कुछ UART चिप खरीद सकते हैं (हाँ, आप एक SPI UART हो सकते हैं, जो दोनों सिरों पर धारावाहिक है, या I endsC UART या कुछ समर्पित बस या USB, आदि)। यहां तक ​​कि दिन में भी UART के पास एक तरफ कुछ बस थी जो अंततः सीपीयू के माध्यम से संचार कर रही थी। आज हमारे पास FTDI और अन्य विक्रेता हैं जो अच्छे USB UART समाधान बनाते हैं, यह सॉफ्टवेयर और UART के बीच इंटरफ़ेस की कुछ अलग परतों को नहीं बनाता है और फिर UART के दूसरे हिस्से में कुछ इंटरफ़ेस है, चाहे वह TTL / चिप स्तर हो या RS-232C या RS-422, आदि।

प्रारंभिक Arduinos आपने अक्सर एक FTDI USB-to-UART बोर्ड का उपयोग किया था जो Arduino को शक्ति प्रदान करता था। कुछ में स्वयं Arduino बोर्ड पर USB पावर और सीरियल / UART है और फिर AVR चिप पर UART को बोर्ड भर में हुक दिया जाता है (उसी तरह कुछ प्रोसेसर के साथ बसों की कुछ परतों के साथ सॉफ़्टवेयर को UART से संवाद करने की अनुमति देता है) इसके दूसरी तरफ कुछ इंटरफ़ेस, इस मामले में एवीआर के किनारे पर चिप वोल्टेज स्तरों, टीटीएल पर)।

चूंकि UART की कार्यक्षमता दशकों में नहीं बदली है, इसलिए सॉफ़्टवेयर शब्दावली या यहां तक ​​कि सॉफ़्टवेयर एप्लिकेशन को एप्लिकेशन स्तर पर क्यों बदलना चाहिए? अपने मदरबोर्ड पर एक UART चिप के खिलाफ 10-15 साल पहले लिनक्स / यूनिक्स टीटीवाई एप्लिकेशन लिखें, और एक अच्छा मौका है जो आज भी USB से TTL स्तर या USB से RS-232C स्तर या RS-422 या जो भी पिन के साथ काम करता है / स्तर परिभाषा। वही विंडोज के लिए चला जाता है, और मेरे पास कोड पुराना है जो अभी भी दोनों पर काम करता है। विंडोज की दुनिया में COM शब्द का इस्तेमाल किया जाता है।

मैंने थोड़ी देर में Arduino सैंडबॉक्स का उपयोग नहीं किया है और यदि ऐसा है तो लिनक्स पर होगा, लेकिन मुझे आश्चर्य नहीं होगा कि क्या वह प्रोग्राम जो जावा है, अगर मुझे सही याद है, सामान्य है और सिस्टम नाम का उपयोग करता है इसलिए ttyS2लिनक्स और COM2 खिड़कियों पर।

आपके प्रश्न को फिर से पढ़ना यह बहुत आगे जा सकता है, जो पहले से मौजूद सॉफ़्टवेयर का लाभ उठा रहा है जो इन एपीआई कॉल का उपयोग करता है। दशकों के लिए फिर से कोई कारण नहीं है कि आप सॉफ्टवेयर में एक आभासी पोर्ट नहीं बना सकते हैं जो इस द्विदिश डेटा को बहुत अधिक नीचे ले जाता है जिसके बारे में आप सोच सकते हैं। UART से ईथरनेट एक बहुत ही आम है, और सर्वर रूम में जहां सर्वर अभी भी COM / TTY / RS-232 पोर्ट का उपयोग करते हैं, आपके पास एक टर्मिनल सर्वर हो सकता है जिसमें कई इंटरफेस हैं जिन्हें आप कई सर्वर से कनेक्ट कर सकते हैं, फिर दूसरी तरफ ईथरनेट, फिर यदि आप टेलनेट को नहीं चुनते हैं, तो आप एक वर्चुअल COM पोर्ट ड्राइवर स्थापित कर सकते हैं।

तब आपके कंप्यूटर पर आपका अनुप्रयोग सोचता है कि यह COM पोर्ट से बात कर रहा है, लेकिन वास्तव में बाइट्स की धारा ईथरनेट पर बंद हो रही है, फिर टर्मिनल सर्वर, THEN, को UART से RS-232C स्तर (लेकिन जरूरी नहीं कि पिनआउट) केबलों से टकराना हो। सर्वर और वापस उसी तरह।

कभी-कभी वास्तव में इसे वास्तविक UART में बनाने का कोई कारण नहीं है, जो भी कारण के लिए COM पोर्ट को वर्चुअलाइज करता है ताकि जो सॉफ़्टवेयर उन एपीआई कॉल के लिए लिखा गया था, वे अभी भी काम कर सकें। आप शायद उस प्राचीन बैंकिंग सॉफ्टवेयर के बारे में सोच सकते हैं जिसका हम अभी भी उपयोग करते हैं, जिसमें एक UART इंटरफ़ेस के लिए एक डंब टर्मिनल है जो शायद दिन में वापस हार्ड हो गया था या अंततः एक सर्वर में मॉडेम में चला गया था। आप इसे ऐसा बना सकते हैं कि सॉफ्टवेयर अभी भी काम करता है, वर्चुअल COM पोर्ट सहित विभिन्न मात्रा में अनुकरण के माध्यम से, जो आज संभवतया ईथरनेट को सीरियल स्ट्रीम (उदाहरण के लिए टीसीपी / आईपी) के रूप में सर्वर तक ले जाता है।

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