COM पोर्ट में कच्चे डेटा पर कब्जा


11

मेरे पास एक ब्लूटूथ ट्रांसमिशन डिवाइस है और मेरा पीसी (विंडोज 7) इससे जुड़ा हुआ है और इसे कॉन्फ़िगर किया गया है जैसे कि यह RS232 सीरियल पोर्ट (COM4) के माध्यम से जुड़ा हुआ था। मैं ब्लूटूथ डिवाइस द्वारा प्रेषित कच्चे डेटा को कैसे पकड़ सकता हूं, या, बराबर रूप से, COM4 में प्राप्त कच्चे डेटा?


एक इलेक्ट्रॉनिक्स सवाल नहीं, जहां तक ​​मैं बता सकता हूं।
ब्रायन कार्लटन

5
मुझे वास्तव में लगता है कि यह विषय है। सॉफ्टवेयर के कुछ टुकड़े हैं जो COM पोर्ट से सीरियल डेटा कैप्चर कर सकते हैं (उनमें से कुछ तब भी जब एक अन्य एप्लिकेशन पोर्ट का उपयोग कर रहा है), और सॉफ्टवेयर वास्तव में पर्याप्त विशेष है कि ज्यादातर लोग यह नहीं जानते कि यह मौजूद है। नकारात्मक पक्ष यह है कि इस तरह के सॉफ्टवेयर की तलाश में कुछ समय बिताने के बाद, मुझे कोई भी ऐसा काम नहीं मिला जो XP कंप्यूटर पर ठीक काम करता हो।
आंद्रेजाको

क्या आप इस तरह एक उपकरण की तलाश कर रहे हैं? com0com.cvs.sourceforge.net/viewvc/com0com/hub4com/…
केनी

जवाबों:


9

आप विभिन्न स्वरूपों में डेटा को कैप्चर करने के लिए एक मानक टर्मिनल प्रोग्राम का उपयोग कर सकते हैं। मैं ब्रे के टर्मिनल का उपयोग करने का सुझाव देता हूं , यह वास्तव में आसान है और इसमें बहुत सारे विकल्प हैं!

या क्या आप किसी प्रकार के स्वयं के एप्लिकेशन में डेटा को कैप्चर करना और उसकी व्याख्या करना चाहते हैं?


धन्यवाद! मैं डेटा की व्याख्या करने के लिए नहीं देख रहा हूँ। मैं बस इतना चाहता हूं कि कच्चे डेटा को प्राप्त करूं और उन्हें एक फाइल में सहेज सकूं। मैं यह पता लगाने की कोशिश कर रहा हूं कि मेरा ब्लूटूथ डिवाइस वास्तव में क्या प्रसारित करता है। क्या ब्रे का टर्मिनल मेरे लिए ऐसा करेगा?
15:11 बजे user11395

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

धन्यवाद ओली। मैं ब्रे का टर्मिनल चला रहा हूं लेकिन कुछ गलत हो रहा है। मैं बंदरगाहों को "rescan" करता हूं, मुझे पोर्ट COM4 लगता है, मैं COM4 से जुड़ता हूं और फिर मैं डेटा को कैप्चर होते हुए देख सकता हूं। हालाँकि मुझे नहीं लगता कि वे सही हैं। मुझे यकीन नहीं है कि बॉड रेट / डेटा बिट्स / पैरिटी स्टॉप बिट्स / हैंडशेकिंग के मूल्यों का पालन करना चाहिए जो मुझे चुनना चाहिए। कोई सुझाव?
user11395

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

मैं ब्रे के टर्मिनल के साथ डेटा पर कब्जा करने में कामयाब रहा। कोई फर्क नहीं पड़ता कि मैं ब्रे के टर्मिनल पर 9600 या 115200 की बॉड दर का चयन करता हूं, मुझे वही डेटा मिलता है (जो सही प्रतीत होता है)। दोनों विकल्प समान परिणाम क्यों देते हैं? इसके अलावा, मुझे पता चला कि मेरे डिवाइस की बॉड दर 115200 है, लेकिन जहां तक ​​मैं अपने डिवाइस मैनेजर में देख सकता हूं, यह COM पोर्ट 9600 के बॉड रेट पर सेट है (मुझे डिफ़ॉल्ट रूप से अनुमान है)। क्या मुझे उसे बदलना चाहिए?
user11395

2

सबसे अच्छा समाधान मैंने पाया है, हालांकि थोड़ा कच्चा है, तेरा टर्म http://ttssh2.sourceforge.jp/index.html.en है

Bray विंडोज 8 के साथ अच्छी तरह से नहीं खेलता है। हालांकि यह बताना असंभव है कि यह वास्तव में स्रोत के बिना क्या कर रहा है, ऐसा प्रतीत होता है कि यह रजिस्ट्री सेटिंग के स्थान के बारे में कुछ धारणा बना रहा है।

पोर्टमोन ने भी विंडोज 8 पर मेरे लिए काम नहीं किया।


मैं विन के नवीनतम संस्करण में ब्रे का उपयोग कर रहा हूं, इसलिए यह अभी भी कम से कम कुछ मामलों में काम कर रहा है। मेरे कंप्यूटर में केवल COM3 स्थापित है।
क्रिस ड्रैगन

2

डिबगिंग के लिए मेरा व्यक्तिगत पसंदीदा टर्मिनल एमुलेटर RealTerm है जिसमें एम्बेडेड सिस्टम के लिए प्रदर्शन विकल्पों की एक अच्छी श्रृंखला है। RS-232 और TCP / IP दोनों विंडोज 7 x64 और नीचे के तहत ठीक काम करते हैं (मैंने विन 8 के तहत कोशिश नहीं की है, लेकिन यह सोचने का कोई कारण नहीं है कि यह काम नहीं करेगा)। कुछ विशेषताएं जो मुझे विशेष रूप से उपयोगी लगती हैं:

  • ASCII / HEX डेटा का दृश्य
  • कैप्चर फ़ाइलों में टाइमस्टैम्प शामिल हो सकते हैं
  • बाइनरी डेटा अनुक्रम भेजने का एक आसान तरीका है
  • हार्डवेयर प्रवाह नियंत्रण पिनों की आसानी से निगरानी / परिवर्तन किया जा सकता है

I2C, SPI, डलास 1-वायर और GPIB के लिए कुछ अन्य विकल्प भी हैं। मैंने व्यक्तिगत रूप से उन सुविधाओं का उपयोग नहीं किया है, लेकिन ऊपर SourceForge पृष्ठ पर एक अच्छा सारांश है। यहां मुख्य प्रदर्शन टैब दृश्य की स्क्रीन कैप्चर की गई है:

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


1

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


मैं ब्रे के टर्मिनल के साथ डेटा पर कब्जा करने में कामयाब रहा। कोई फर्क नहीं पड़ता कि मैं ब्रे के टर्मिनल पर 9600 या 115200 की बॉड दर का चयन करता हूं, मुझे वही डेटा मिलता है (जो सही प्रतीत होता है)। दोनों विकल्प समान परिणाम क्यों देते हैं? इसके अलावा, मुझे पता चला कि मेरे डिवाइस की बॉड दर 115200 है, लेकिन जहां तक ​​मैं अपने डिवाइस मैनेजर में देख सकता हूं, यह COM पोर्ट 9600 के बॉड रेट पर सेट है (मुझे डिफ़ॉल्ट रूप से अनुमान है)। क्या मुझे उसे बदलना चाहिए?
user11395

1

नहीं है portmon : एक sysinternals उपकरण है जो COM पोर्ट के लिए एक datascope के रूप में काम करते हैं।


1
मेरे अनुभव में x64 विंडोज़ सिस्टम पर काम नहीं करता है।
जॉनकेज

1

आपकी सटीक आवश्यकताओं के आधार पर, यह एक माइक्रोकंट्रोलर का उपयोग करने में सहायक हो सकता है जो डेटा को कैप्चर और टाइम-स्टैम्प कर सकता है और फिर इसे पीसी पर अग्रेषित कर सकता है। UART के ऐतिहासिक पीसी पर ऐतिहासिक रूप से केवल सटीक समय की जानकारी दर्ज करने या 9-बिट डेटा को कैप्चर करने में सक्षम रहा है, प्रोसेसर को प्रत्येक बाइट को हड़पने के रूप में प्राप्त करता है, बिना बफरिंग के; बाद में ऑपरेटिंग सिस्टम और ड्राइवर आमतौर पर ऐसा करने के लिए सुसज्जित नहीं होते हैं, और UART-to-USB चिप्स उस संबंध में निराशाजनक हैं। यदि आपका पीसी आपकी वांछित डेटा दर से दोगुना डेटा प्राप्त कर सकता है, तो आप एक माइक्रोकंट्रोलर को डेटा के बाइट्स प्राप्त कर सकते हैं और प्रत्येक बाइट के लिए दो बाइट भेजते हैं। पहले बाइट में MSB सेट होता है, आने वाले डेटा में MSB (या दो MSB के अगर 9-बिट) की रिपोर्ट करें, तो और पिछले बाइट के स्टॉप बिट (जैसे एक बिट समय की इकाइयों में मापा जाता है) के मध्य से समय की मात्रा (0-30 या 0-14) की रिपोर्ट करने के लिए नीचे 5 (या 4) बिट्स का उपयोग करें। दूसरी बाइट में MSB स्पष्ट होता और शेष 7 बिट डेटा होता। जब कोई डेटा प्रेषित नहीं किया जा रहा है, तो एफएफ पेसिंग वर्ण हर 30 (या 14) बिट बार भेजे जाएंगे। इन रिपोर्टों को प्राप्त करने वाले सॉफ़्टवेयर इस प्रकार आने वाले डेटा की सटीक समय सीमा (एक बिट समय के भीतर) को बहुत सटीक रूप से समेटने में सक्षम होंगे। यदि पीसी को खिलाने वाले डेटा दर की निगरानी की जा रही डेटा दर का चार गुना था, तो कोई इस सामान्य योजना का उपयोग दो प्राप्त करने वाले चैनलों को एक पीसी पोर्ट में मल्टीप्लेक्स करने के लिए कर सकता है (यह पहचानने के लिए हेडर बाइट का एक सा उपयोग करें कि इसमें पहले या दूसरे के लिए डेटा था या नहीं। बंदरगाह)। जबकि एक बिट समय के लिए सटीक चीजें अत्यधिक लग सकती हैं, कई बार यह उपयोगी हो सकता है,

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