विषयसूची:

कैनबस के लिए एक सरल ट्यूटोरियल: 8 कदम
कैनबस के लिए एक सरल ट्यूटोरियल: 8 कदम

वीडियो: कैनबस के लिए एक सरल ट्यूटोरियल: 8 कदम

वीडियो: कैनबस के लिए एक सरल ट्यूटोरियल: 8 कदम
वीडियो: canvas painting 🌵 canvas painting ideas for beginners 🥀 mini canvas board painting #shorts 2024, जुलाई
Anonim
कैनबस के लिए एक सरल ट्यूटोरियल
कैनबस के लिए एक सरल ट्यूटोरियल

मैं तीन सप्ताह से CAN का अध्ययन कर रहा हूं, और अब मैंने अपने सीखने के परिणामों को मान्य करने के लिए कुछ एप्लिकेशन पूरे कर लिए हैं। इस ट्यूटोरियल में, आप सीखेंगे कि CANBUS संचार को लागू करने के लिए Arduino का उपयोग कैसे करें। यदि आपके कोई सुझाव हैं, तो संदेश छोड़ने के लिए आपका स्वागत है।

आपूर्ति:

हार्डवेयर:

  • मैडुइनो जीरो कैनबस
  • DHT11 तापमान और आर्द्रता मॉड्यूल
  • 1.3" I2C OLED 128x64- नीला;
  • DB9 से DB9 केबल (महिला से महिला)
  • ड्यूपॉन्ट लाइन

सॉफ्टवेयर:

अरुडिनो आईडीई

चरण 1: कैनबस क्या है

कैनबस क्या है
कैनबस क्या है
कैनबस क्या है
कैनबस क्या है

कैन के बारे में

CAN (कंट्रोलर एरिया नेटवर्क) एक सीरियल संचार नेटवर्क है जो वितरित वास्तविक समय नियंत्रण का एहसास कर सकता है। इसे ऑटोमोटिव उद्योग के लिए जटिल वायरिंग हार्नेस को टू-वायर बस से बदलने के लिए विकसित किया गया है।

CAN प्रोटोकॉल डेटा लिंक परत और OSI मॉडल में भौतिक परत के भाग को परिभाषित करता है।

CAN प्रोटोकॉल ISO11898 और ISO11519 के साथ ISO मानकीकृत है। ISO11898 CAN उच्च गति संचार मानक है जिसकी संचार गति 125kbps-1Mbps है। ISO11519 CAN कम गति का संचार मानक है जिसकी संचार गति 125kbps से कम है।

यहां हम हाई-स्पीड CAN पर ध्यान केंद्रित करते हैं।

ISO-11898 वर्णन करता है कि कैसे एक नेटवर्क पर उपकरणों के बीच सूचना को पारित किया जाता है और ओपन सिस्टम इंटरकनेक्शन मॉडल (OSI) के अनुरूप होता है जिसे परतों के संदर्भ में परिभाषित किया जाता है। भौतिक माध्यम से जुड़े उपकरणों के बीच वास्तविक संचार मॉडल की भौतिक परत द्वारा परिभाषित किया गया है।

  • बस से जुड़ी प्रत्येक CAN इकाई को नोड कहा जा सकता है। सभी CAN इकाइयाँ एक नेटवर्क बनाने के लिए 120 प्रतिरोधों के साथ प्रत्येक छोर पर समाप्त एक बस से जुड़ी होती हैं। बस में CAN_H और CAN_L लाइनें होती हैं। CAN नियंत्रक दोनों तारों पर बिजली के स्तर में अंतर के आधार पर बस के स्तर को निर्धारित करता है। बस स्तरों को प्रमुख और पुनरावर्ती स्तरों में विभाजित किया गया है, जो उनमें से एक होना चाहिए। प्रेषक बस स्तर पर परिवर्तन करके रिसीवर को संदेश भेजता है। जब तार्किक रेखा "और" को बस में निष्पादित किया जाता है, तो प्रमुख स्तर "0" होता है और पुनरावर्ती स्तर "1" होता है।
  • प्रमुख अवस्था में, CAN_H का वोल्टेज लगभग 3.5V है और CAN_L का वोल्टेज लगभग 1.5V है। पुनरावर्ती अवस्था में, दोनों लाइनों का वोल्टेज लगभग 2.5V होता है।
  • सिग्नल डिफरेंशियल है, यही वजह है कि कैन अपनी मजबूत नॉइज़ इम्युनिटी और फॉल्ट टॉलरेंस प्राप्त कर सकता है। संतुलित अंतर संकेत शोर युग्मन को कम करता है और मुड़-जोड़ी केबल पर उच्च सिग्नलिंग दरों की अनुमति देता है। प्रत्येक सिग्नल लाइन में करंट बराबर होता है लेकिन विपरीत दिशा में होता है और इसके परिणामस्वरूप एक फील्ड-कैंसलिंग प्रभाव होता है जो कम शोर उत्सर्जन की कुंजी है। बैलेंस्ड डिफरेंशियल रिसीवर्स और ट्विस्टेड-पेयर केबलिंग के इस्तेमाल से CAN बस के कॉमन-मोड रिजेक्शन और हाई नॉइज़ इम्युनिटी को बढ़ाया जा सकता है।

ट्रांसीवर कर सकते हैं

कैन ट्रांसीवर तर्क स्तर और भौतिक संकेत के बीच रूपांतरण के लिए जिम्मेदार है। लॉजिकल सिग्नल को डिफरेंशियल लेवल या फिजिकल सिग्नल को लॉजिकल लेवल में बदलें।

नियंत्रक कर सकते हैं

CAN नियंत्रक CAN का मुख्य घटक है, जो CAN प्रोटोकॉल में डेटा लिंक परत के सभी कार्यों को महसूस करता है और CAN प्रोटोकॉल को स्वचालित रूप से हल कर सकता है।

एमसीयू

MCU फंक्शन सर्किट और CAN कंट्रोलर के नियंत्रण के लिए जिम्मेदार है। उदाहरण के लिए, जब नोड शुरू होता है तो CAN नियंत्रक मापदंडों को आरंभीकृत किया जाता है, CAN फ्रेम को CAN नियंत्रक के माध्यम से पढ़ा और भेजा जाता है, आदि।

चरण 2: CAN संचार के बारे में

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

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

CAN बस एक प्रसारण प्रकार की बस है। इसका मतलब है कि सभी नोड्स सभी प्रसारणों को 'सुन' सकते हैं। सभी नोड्स हमेशा सभी ट्रैफ़िक को उठाएंगे। CAN हार्डवेयर स्थानीय फ़िल्टरिंग प्रदान करता है ताकि प्रत्येक नोड केवल दिलचस्प संदेशों पर प्रतिक्रिया दे सके।

चरण 3: फ्रेम्स

फ्रेम्स
फ्रेम्स

CAN डिवाइस CAN नेटवर्क पर डेटा को पैकेट में भेज सकते हैं जिसे फ्रेम कहा जाता है। CAN के चार प्रकार के फ्रेम हो सकते हैं:

  • डेटा फ्रेम: ट्रांसमिशन के लिए नोड डेटा युक्त एक फ्रेम
  • रिमोट फ्रेम: एक विशिष्ट पहचानकर्ता के प्रसारण का अनुरोध करने वाला फ्रेम
  • त्रुटि फ़्रेम: किसी त्रुटि का पता लगाने वाले किसी भी नोड द्वारा प्रेषित एक फ़्रेम
  • ओवरलोड फ्रेम: डेटा या रिमोट फ्रेम के बीच देरी को इंजेक्ट करने के लिए एक फ्रेम

डेटा ढांचा

डेटा फ़्रेम दो प्रकार के होते हैं, मानक और विस्तारित।

चित्रा के बिट क्षेत्रों का अर्थ है:

  • SOF- फ्रेम का सिंगल डोमिनेंट स्टार्ट (SOF) बिट संदेश की शुरुआत को चिह्नित करता है, और निष्क्रिय होने के बाद बस में नोड्स को सिंक्रनाइज़ करने के लिए उपयोग किया जाता है।
  • पहचानकर्ता- मानक 11-बिट पहचानकर्ता संदेश की प्राथमिकता स्थापित कर सकता है। बाइनरी मान जितना कम होगा, उसकी प्राथमिकता उतनी ही अधिक होगी।
  • आरटीआर-एकल रिमोट ट्रांसमिशन अनुरोध (आरटीआर) बिट
  • आईडीई-एक प्रमुख एकल पहचानकर्ता विस्तार (आईडीई) बिट का अर्थ है कि बिना किसी विस्तार के एक मानक कैन पहचानकर्ता को प्रेषित किया जा रहा है।
  • R0-आरक्षित बिट (भविष्य के मानक संशोधन द्वारा संभावित उपयोग के लिए)।
  • DLC- 4-बिट डेटा लेंथ कोड (DLC) में संचारित होने वाले डेटा के बाइट्स की संख्या होती है।
  • डेटा- 64 बिट तक एप्लिकेशन डेटा प्रसारित किया जा सकता है।
  • सीआरसी- 16-बिट (15 बिट प्लस सीमांकक) चक्रीय अतिरेक जांच (सीआरसी) में त्रुटि का पता लगाने के लिए पिछले एप्लिकेशन डेटा का चेकसम (संचरित बिट्स की संख्या) होता है।
  • ACK–ACK 2 बिट है, एक पावती बिट है और दूसरा एक सीमांकक है।
  • ईओएफ-यह एंड-ऑफ-फ्रेम (ईओएफ), 7-बिट फ़ील्ड एक कैन फ्रेम (संदेश) के अंत को चिह्नित करता है और बिटस्टफिंग को अक्षम करता है, जो प्रमुख होने पर स्टफिंग त्रुटि का संकेत देता है। जब सामान्य ऑपरेशन के दौरान समान तर्क स्तर के 5 बिट उत्तराधिकार में होते हैं, तो थोड़ा विपरीत तर्क स्तर डेटा में भर जाता है।
  • IFS-इस 7-बिट इंटरफ्रेम स्पेस (IFS) में एक संदेश बफर क्षेत्र में सही ढंग से प्राप्त फ्रेम को उसकी उचित स्थिति में ले जाने के लिए नियंत्रक द्वारा आवश्यक समय होता है।

मध्यस्थता करना

बस निष्क्रिय अवस्था में, जो इकाई पहले संदेश भेजना शुरू करती है, उसे भेजने का अधिकार मिलता है। जब एक ही समय में कई इकाइयाँ भेजना शुरू करती हैं, तो प्रत्येक भेजने वाली इकाई मध्यस्थता खंड के पहले बिट से शुरू होती है। निरंतर आउटपुट प्रमुख स्तरों की सबसे बड़ी संख्या वाली इकाई भेजना जारी रख सकती है।

चरण 4: गति और दूरी

गति और दूरी
गति और दूरी

कैन बस एक बस है जो एक ही समय में कई इकाइयों को जोड़ती है। कनेक्ट की जा सकने वाली इकाइयों की कुल संख्या की सैद्धांतिक रूप से कोई सीमा नहीं है। व्यवहार में, हालांकि, कनेक्ट की जा सकने वाली इकाइयों की संख्या बस और विद्युत भार में समय की देरी से सीमित होती है। संचार की गति को कम करें, कनेक्ट की जा सकने वाली इकाइयों की संख्या में वृद्धि करें, और संचार की गति को बढ़ाएं, कनेक्ट की जा सकने वाली इकाइयों की संख्या घट जाती है।

संचार दूरी संचार की गति से विपरीत रूप से संबंधित है, और संचार दूरी जितनी दूर होगी, संचार गति उतनी ही कम होगी। लंबी दूरी 1 किमी या उससे अधिक हो सकती है, लेकिन गति 40kps से कम है।

चरण 5: हार्डवेयर

हार्डवेयर
हार्डवेयर

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

  • MCP2515 एक स्टैंड-अलोन CAN नियंत्रक है जो CAN विनिर्देश को लागू करता है। यह मानक और विस्तारित डेटा और रिमोट फ्रेम दोनों को प्रसारित और प्राप्त करने में सक्षम है।
  • MAX3051 CAN प्रोटोकॉल कंट्रोलर और कंट्रोलर एरिया नेटवर्क (CAN) में बस लाइनों के भौतिक तारों के बीच इंटरफेस करता है। MAX3051 बस को डिफरेंशियल ट्रांसमिट क्षमता और CAN कंट्रोलर को डिफरेंशियल रिसीव क्षमता प्रदान करता है।

चरण 6: कनेक्शन

संबंध
संबंध

DHT11 मॉड्यूल को CAN संचार का समर्थन करने के लिए एक उपकरण के रूप में उपयोग किए जाने वाले तारों के साथ Maduino Zero CAN-BUS मॉड्यूल से कनेक्ट करें। इसी तरह, डेटा प्राप्त करने और उसे प्रदर्शित करने के लिए डिस्प्ले को मॉड्यूल से कनेक्ट करें।

Maduino Zero CANBUS और DHT11: के बीच संबंध

मैडुइनो जीरो कैनबस -- DHT11

3v3 ------ VCC GND ------ GND D10 ------ डेटा

मैडुइनो जीरो कैनबस और ओएलईडी के बीच संबंध:

मैडुइनो जीरो कैनबस -- OLED

3v3 ------ वीसीसी जीएनडी ------ जीएनडी एससीएल ------ एससीएल एसडीए ------ एसडीए

दो Maduino Zero CANBUS मॉड्यूल को जोड़ने के लिए DB9 केबल का उपयोग करें।

चरण 7: कोड

MAX3051 अंतर स्तरों को तार्किक संकेतों में परिवर्तित करता है। MCP2515 डेटा एन्कोडिंग और डिकोडिंग जैसे CAN कार्य को पूरा करता है। MCU को केवल कंट्रोलर को इनिशियलाइज़ करने और डेटा भेजने और प्राप्त करने की आवश्यकता होती है।

  • जीथब:
  • Arduino स्थापित करने के बाद, बोर्ड (Arduino शून्य) का समर्थन करने के लिए कोई पैकेज नहीं है जिसे स्थापित करने की आवश्यकता है।
  • उपकरण चुनें -> बोर्ड -> बोर्ड प्रबंधक, "Arduino शून्य" खोजें और "Arduino SAMD बोर्ड" स्थापित करें।
  • टूल्स चुनें -> बोर्ड -> अरुडिनो जीरो (नेटिव यूएसबी पोर्ट), टूल्स चुनें -> पोर्ट -> कॉम…
  • GitHub से प्रोग्राम प्राप्त करने के बाद, आपको यह सुनिश्चित करने की आवश्यकता है कि सभी फ़ाइलें प्रोजेक्ट निर्देशिका में हैं, जिसमें लाइब्रेरी फ़ाइलें हैं जो CANBUS का समर्थन करती हैं।
  • Adafruit द्वारा DHT सेंसर लाइब्रेरी स्थापित करें, जिसका उपयोग तापमान और आर्द्रता प्राप्त करने के लिए DHT11 को चलाने के लिए किया जाता है।
  • Test_DHT11.ino कोड में अलग-अलग तापमान और आर्द्रता भेजने के लिए अलग-अलग पतों का उपयोग करें।

CAN.sendMsgBuf (0x10, 0, stmp1.length (), stmp_send1);

देरी (500); CAN.sendMsgBuf(0x11, 0, stmp2.length(), stmp_send2); देरी (500);

"0x10" का मतलब संदेश आईडी है, "0" का मतलब मानक फ्रेम है, "stmp1.length ()" का मतलब संदेश की लंबाई है, "stmp_send1" भेजा गया डेटा है।

  • Test_OLED.ino कोड में, CANBUS पर सभी संदेश क्वेरी द्वारा प्राप्त किए जाते हैं और आवश्यक जानकारी OLED पर प्रदर्शित होती है।
  • प्रोग्राम Maduino-CANbus-RS485/Test_DHT11_OLED/Test_DHT11/Test_DHT11.ino को उस मॉड्यूल में अपलोड करें जो सेंसर से जुड़ा है, और प्रोग्राम Maduino-CANbus RS485/Test_DHT11_OLED/Test_OLED/Test_OLED.ino को OLED से जुड़े दूसरे मॉड्यूल पर अपलोड करें।

चरण 8: दिखाएँ

प्रदर्शन
प्रदर्शन
प्रदर्शन
प्रदर्शन

प्रदर्शन पर दो मॉड्यूल, तापमान और आर्द्रता पर शक्ति प्रदर्शित की जाएगी।

सिफारिश की: