अध्याय 3 – “मास्टर पीसी” और “टार्गेट डिवाइस” के बीच सीरियल लिंक की स्निफिंग/मॉनिटरिंग
सीरियल के ज़रिए हार्डवेयर डिवाइस और पीसी के बीच संचार
मास्टर पीसी (दाएँ) टार्गेट डिवाइस से
सीरियल कम्युनिकेशन डिवाइस (आमतौर पर USB↔Serial कन्वर्टर:
UART/TTL, RS-232 या RS-485) के माध्यम से संचार करता है। स्निफिंग पीसी (बाएँ)
दो पोर्ट (COM5 और COM6) खोलता है और दो USB-to-serial एडेप्टर के साथ
लाइनों को निष्क्रिय रूप से सुनता है: COM5 पर RX को डिवाइस के TX से जोड़ें,
COM6 पर RX को पीसी के TX से। ग्राउंड (GND) कॉमन रहता है।
3.1 उद्देश्य और अवधारणाएँ
हम मास्टर पीसी के सॉफ़्टवेयर और टार्गेट डिवाइस के बीच यात्रा करने वाले बाइट्स को मॉनिटर और स्निफ करना चाहते हैं, बिना कम्युनिकेशन में हस्तक्षेप किए। यह एक सामान्य निष्क्रिय फिजिकल मैन-इन-द-मिडल सेटअप है:
केवल RX से जुड़े दो USB-to-serial एडेप्टर प्रत्येक दिशा को “पढ़ते” हैं।
यह डिबग, प्रोटोकॉल विश्लेषण और ऑडिट/रिवर्स इंजीनियरिंग के लिए लॉगर के रूप में उपयोगी है।
3.2 कनेक्शन (स्टेप-बाय-स्टेप)
- COM5 (स्निफिंग पीसी) → एडेप्टर का RX डिवाइस के TX से जोड़ें (टार्गेट क्या भेजता है, सुनें)।
- COM6 (स्निफिंग पीसी) → एडेप्टर का RX पीसी के TX से जोड़ें (मास्टर पीसी के कमांड सुनें)।
- दोनों एडेप्टर और दोनों डिवाइसों के बीच कॉमन GND रखें (साझा संदर्भ)।
- स्निफिंग पीसी के एडेप्टरों के TX न जोड़ें: हम लिसन-ओनली (हाई-इम्पीडेंस) रहते हैं, लाइन को बिना विचलित किए।
SerialTool में दो सेशन खोलें: COM5 और COM6। दोनों में
बौड रेट और फ़ॉर्मेट वही रखें जो मास्टर/डिवाइस उपयोग कर रहे हैं (उदा., 115200-8N1)। बौड ज्ञात नहीं तो
सामान्य मान आज़माएँ या ऑस्सिलोस्कोप/लॉजिक ऐनालाइज़र से बिट अवधि मापें।
3.3 समान प्रोटोकॉल, अलग स्तर: UART/TTL, RS-232, RS-485
असिंक्रोनस सीरियल प्रोटोकॉल (स्टार्ट, 7/8 डेटा बिट LSB-पहले, वैकल्पिक पैरिटी, 1+ स्टॉप) समान रहता है।
बदलता केवल भौतिक स्तर है जिस पर बिट्स चलते हैं:
- UART/TTL (3.3 V/5 V): सिंगल-एंडेड सिग्नल, “1” हाई / “0” लो।
- RS-232: उलटे और ± वोल्टेज स्तर (आमतौर पर ±3…±12 V), फिर भी सिंगल-एंडेड।
- RS-485: A/B जोड़ी पर डिफरेंशियल, अक्सर हाफ-डुप्लेक्स मल्टी-ड्रॉप; कॉमन रेफरेंस ग्राउंड अनुशंसित।
इसलिए उचित एडेप्टर का प्रयोग करें:
UART के लिए USB↔TTL, RS-232 के लिए USB↔RS-232, RS-485 के लिए USB↔RS-485। फ्रेम एक-सा रहता है, पर विद्युत स्तर और टोपोलॉजी (डिफरेंशियल/टर्मिनेशन) भिन्न होती है।
3.4 कहाँ उपयोग होता है (CNC, इंडस्ट्रियल, आदि)
यह सेटअप CNC, औद्योगिक मशीनरी, PLC/HMI, रोबोटिक्स,
स्केल, POS, सेंसर, माप उपकरण, बिल्डिंग ऑटोमेशन इत्यादि में सामान्य है—जहाँ पीसी/PLC सीरियल के माध्यम से डिवाइस नियंत्रित करता है।
वर्णित स्निफिंग विधि मॉनिटर/स्निफ/डिबग/लॉग करने देती है—कार्यात्मक विश्लेषण, फ़ॉल्ट डायग्नोसिस, कमांड ट्रेसिंग और वैलिडेशन हेतु।
3.5 सीरियल पर Modbus
सीरियल पोर्ट अक्सर Modbus RTU/ASCII वहन करते हैं—उद्योग में व्यापक मास्टर/स्लेव (अब क्लाइंट/सर्वर) प्रोटोकॉल।
मास्टर अनुरोध भेजता है ( coils और registers की पढ़ाई/लिखाई) और डिवाइस जवाब देता है।
SerialTool में तेज़ी से रजिस्टर क्वेरी हेतु Modbus क्लाइंट शामिल है,
तथा कच्चे फ्रेम (पता, फ़ंक्शन, डेटा, CRC) देखने हेतु मॉनिटर/HEX व्यू भी उपयोगी है।
3.6 फ़र्मवेयर अपडेट और पैरामीटराइज़ेशन
एम्बेडेड दुनिया में सीरियल का उपयोग फ़र्मवेयर अपडेट या टार्गेट को पैरामीटर पास करने के लिए खूब होता है।
उदाहरण: कस्टम बोर्ड पर बूटलोडर, Arduino जैसे इकोसिस्टम, विभिन्न माइक्रोकंट्रोलर। डेवलपर की दो ज़रूरतें हो सकती हैं:
- टार्गेट से बात करने वाले एप्लिकेशन का डिबग (कमांड, टाइमिंग, त्रुटियाँ जाँचना)।
- मौजूदा प्रोटोकॉल का रिवर्स इंजीनियरिंग (एक “बंद” मास्टर सॉफ़्टवेयर बोर्ड से बात करता है; मैं संदेश समझने को स्निफ करता/करती हूँ और फिर उन्हें अपने सॉफ़्टवेयर से दोहराता/दोहराती हूँ)।
3.7 व्यवहारिक नोट्स और टूल्स
- यह सेटअप आमतौर पर दो पीसी (मास्टर और स्निफिंग पीसी) और द्विदिश स्निफिंग के लिए कम से कम दो USB-to-serial कन्वर्टर्स मांगता है।
- RS-232 के लिए RS-232 टैप/कन्वर्टर का उपयोग करें; RS-485 के लिए A/B टर्मिनल पर केवल रिसीव-ओनली इंटरफ़ेस जोड़ें
(टर्मिनेशन और पोलैरिटी का सम्मान करते हुए)। RS-485 हाफ-डुप्लेक्स में दिशा टाइमिंग संदर्भ से पहचानेंगे।
- कंट्रोल पिन (RTS/CTS, DTR/DSR, DCD, RI) को हम शामिल नहीं कर रहे; यदि सिस्टम हार्डवेयर फ्लो-कंट्रोल उपयोग करता है तो समर्पित प्रॉब पर विचार करें।
- SerialTool में आप HEX व्यू, टाइमस्टैम्प सक्षम कर सकते हैं और बाद के विश्लेषण हेतु लॉगर (टेक्स्ट/CSV/pcap) के रूप में सेव कर सकते हैं।
संक्षेप में: सीरियल प्रोटोकॉल समान (असिंक्रोनस फ्रेम), भौतिक स्तर अलग (TTL/RS-232/RS-485)।
पैसिव दो-RX टैपिंग और SerialTool जैसे सॉफ़्टवेयर के साथ आप मास्टर पीसी और टार्गेट डिवाइस के बीच कम्युनिकेशन को विश्वसनीय रूप से मॉनिटर, स्निफ, डिबग और लॉग कर सकते हैं।