एक Arduino के साथ हाई-स्पीड कंप्यूटर इंटरफ़ेस


10

मैं एक Arduino के साथ एक परियोजना की योजना बना रहा हूं जिसमें एक मेजबान कंप्यूटर से बहुत सारे अनुरोधों को संभालना शामिल है, और धारावाहिक पर 115200 अधिकतम बॉड पर्याप्त है। मैं यदि संभव हो तो 1Mbps पूर्ण द्वैध प्राप्त करने में सक्षम होना चाहता हूं, लेकिन 400Kbps + पूर्ण द्वैध स्वीकार्य होगा। मैं एक Arduino ड्यू का उपयोग कर रहा हूं, इसलिए इसे काफी उच्च संचार गति को संभालने में सक्षम होना चाहिए।

क्या धारावाहिक पर बॉड दर में उल्लेखनीय वृद्धि करने का एक तरीका है, या एक दूसरा विकल्प है जो मैं उच्च गति पर कंप्यूटर के साथ इंटरफेस करने के संदर्भ में जा सकता हूं?


FTDI FT232 डिवाइस बिना किसी समस्या के 3 एमबीपीएस तक जा सकते हैं, इसलिए यदि आपके पास एफटीडीआई-आधारित यूएसबी-सीरियल कनवर्टर है, तो यह एक आसान विकल्प होगा। मैं वास्तव में काश Arduino लोगों को उनके साथ अटक गया था, बल्कि ATmega16U2।
कॉनर वुल्फ

हो सकता है कि UART 1Mbps बिटरेट का समर्थन करेगा, लेकिन आपको इसे डेटा के साथ फ़ीड को माइक्रोकंट्रोलर की भी आवश्यकता है। यह किया जा सकता है, लेकिन आप अधिकतम आसानी से पहुंच सकते हैं।
जिप्पी

यदि आप 400 kbps पर "बहुत सारे अनुरोधों" के साथ एक AVR का नारा लगा रहे हैं, तो मुझे बहुत आश्चर्य होगा कि इसका उपयोग करने के लिए बहुत समय शेष है।
निक टी

जवाबों:


8

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

थोड़ी और जानकारी के लिए, Arduino फोरम पर इस थ्रेड को देखें ।

सेटअप के संदर्भ में, Arduino पर यह उतना ही आसान है जितना Serial.begin(1000000);कि या उस सीमा तक। यह उस डिवाइस के सेटअप के बारे में है जिसे आप संवाद करना चाहते हैं, और यह क्या संभाल सकता है।


क्या USB ड्राइवर पर मानक धारावाहिक ऐसी गति का समर्थन करता है? मैं एक स्क्रिप्ट के माध्यम से बात करने जा रहा हूं, आईडीई में धारावाहिक मॉनिटर नहीं।
बहुपद

मेरा मानना ​​है कि यह करता है। यदि आप एक स्क्रिप्ट का उपयोग कर रहे हैं, तो आपको अच्छे आकार में होना चाहिए। Arduino ड्यू पर UART हार्डवेयर UNO के समान है; यह ATmega16U को सीरियल के साथ इंटरफेस करने के लिए उपयोग करता है, जो कम से कम 1Mbps के लिए सक्षम है। USB ड्राइवर पर धारावाहिक को उस दर का भी समर्थन करना चाहिए।
जे ग्रीको

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

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

1

मैं Atmega16u2 के लिए कस्टम फर्मवेयर लिखना चाहूंगा जो USB इंटरफेस कर रहा है। वह चिप फुल-स्पीड USB (12 Mbit सिग्नल स्पीड तक) बोल सकती है और उस चिप का SPI आउटपुट पोर्ट ICSP हेडर पर आसानी से उपलब्ध है। हुक जो कि Arduino के SPI इनपुट (इसके ICSP हेडर पर भी उपलब्ध है) पर है और आप SPI को चला सकते हैं, मुझे लगता है, 4 Mbit / s (4 CPU घड़ियों प्रति बिट।)

मेगा पर Atmegas (16u2 और 128) अपने सीरियल पोर्ट को 2 Mbit / s तक चला सकते हैं। यदि आप 16u2 के लिए कस्टम फर्मवेयर लिखते हैं, तो आप अतुल्यकालिक धारावाहिक USART का उपयोग भी कर सकते हैं जो पहले से ही है।

इन दोनों मामलों में, आप संभवतः सीरियल पोर्ट प्रोग्रामेबिलिटी खो देंगे, इसलिए आपको एक यूएसबी-आधारित अलग प्रोग्रामर का उपयोग करना होगा।

एलयूएफए परियोजना में बहुत सारे नमूना कार्यक्रम हैं और वास्तव में एक एटमेगा चिप पर यूएसबी बोलने के लिए सहायक पुस्तकालय हैं। "libusb" धारावाहिक अनुकरण पर भरोसा करने के बजाय, USB उपकरणों से सीधे बात करने के लिए एक सुविधाजनक पुस्तकालय है।


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