क्या एक CAN बस को चलाने के लिए पर्याप्त माइक्रोकंट्रोलर सक्षम किया जा सकता है?


45

इन दिनों माइक्रोकंट्रोलर में निर्मित कई कैन मॉड्यूल हैं। PIC18F2480 इस बात का एक उदाहरण है। क्या वह माइक्रोकंट्रोलर (बिल्ट-इन कैन के साथ) अपने दम पर कैन बस चलाने में सक्षम है या बाहरी कैन ट्रान्सीवर / कंट्रोलर की आवश्यकता है?

मेरा मानना ​​है कि CAN में एक सॉफ्टवेयर और हार्डवेयर दोनों परत हो सकती हैं और इसके लुक से ये CAN- सक्षम माइक्रोकंट्रोलर के पास सिर्फ सॉफ्टवेयर होता है, लेकिन इसमें यह नहीं बताया गया है कि यह कैन बस को ड्राइव कर सकता है या नहीं कर सकता है।

मैं एक कैन बस के माध्यम से छह से अधिक माइक्रोकंट्रोलर को कनेक्ट करना चाह रहा हूं और यह जानना चाहूंगा कि क्या मुझे उन सभी में एक ट्रान्सीवर की जरूरत है या क्या अंतर्निर्मित सामान एक सॉफ्टवेयर और हार्डवेयर परिप्रेक्ष्य से संचार को संभाल सकता है।

मान लें कि मेरे पास आवश्यक समाप्ति प्रतिरोधक और अन्य छोटे असतत घटक (कैप्स, प्रतिरोधक आदि) होंगे।

जवाबों:


55

यह बहुत अच्छा प्रश्न है। एक सामान्य नियम के रूप में, प्रत्येक नोड के लिए ट्रांसीवर की आवश्यकता हो सकती है:

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

हालांकि, कुछ परिस्थितियों में, आप वास्तव में किसी भी ट्रांससीवर्स के बिना दूर हो सकते हैं! वे परिस्थितियाँ हैं:

  • छोटी बस की लंबाई (1 मीटर से कम)
  • अधिमानतः सभी माइक्रोकंट्रोलर एक ही पीसीबी पर हैं, या पीसीबी के ढेर।
  • बिट दर कम है
  • पर्यावरण बहुत अधिक शोर नहीं है

ये कठोर नियम नहीं हैं। यदि आपके पास वास्तव में छोटी बस (10cm) है तो आप अधिकतम बिट दर (1MB / s) के साथ भाग सकते हैं।

इसे प्राप्त करने के लिए, आपको ट्रान्सीवर क्या करता है, इसके बारे में थोड़ा जानने की आवश्यकता है। अधिकांश ट्रांससीवर्स की तरह, वे बस में उच्च या निम्न आउटपुट कर सकते हैं (1 और 0 का प्रतिनिधित्व करते हैं), लेकिन 0 एक हावी हो सकता है। 1. यदि दो ट्रांससेवर्स एक ही समय में बोलने की कोशिश करते हैं, और एक 1 कह रहा है और दूसरा 0 कह रहा है, फिर 0 जीत जाएगा। हम डायोड का उपयोग करके समान स्थिति को फिर से बना सकते हैं:

सिंपल कैन

सीमन्स एप्लिकेशन नोट देखें AP2921: ऑन-बोर्ड कम्युनिकेशन कैन विदाउट ट्रांसेवर

लेकिन यहाँ कुछ और भी दिलचस्प है: PIC वास्तव में ट्रांसीवर रहित कैन के लिए हार्डवेयर समर्थन है!

CIOCON रजिस्टर

आप CAN TX पिन को कॉन्फ़िगर कर सकते हैं ताकि ट्रांसीवर के समान व्यवहार हो। इसका मतलब है कि आप बिना डायोड के भी कैन बस को वायर कर सकते हैं। तुम अब भी रोकनेवाला की आवश्यकता होगी।

सरल कर सकते हैं


2
एकदम शानदार जवाब। आपने जवाब देने के लिए जो समय लिया, उसकी मैं बहुत सराहना करता हूं। मुझे ट्रांसीवर के साथ जाना पड़ सकता है क्योंकि बिजली के शोर का एक बहुत कुछ हो सकता है, और यद्यपि सब कुछ एक "बॉक्स" में रखा जाएगा, वे कई पीसी पर होंगे। एक बार फिर धन्यवाद!
efox29

@ efox29 - आपका स्वागत है। यदि आप कर सकते हैं तो ट्रांससीवर्स के साथ जाना निश्चित रूप से बेहतर है।
रॉकेटमैग्नेट

ट्रांसीवर रहित सेटअप मेरे लिए नया था और लंबी दूरी पर नियंत्रकों का एक सरल नेटवर्क स्थापित करने के लिए बहुत दिलचस्प लगता है। अच्छा!
0x6d64

@ 0x6d64 - यदि आपको इसकी आवश्यकता लंबे समय से है, तो कम बिट दर का उपयोग करना न भूलें, और स्लेव दर किनारों को सीमित करें।
रॉकेटमैग्नेट

1
ध्यान दें कि यह काम करेगा अगर बस के सभी उपकरण एक ही कॉन्फ़िगरेशन का उपयोग करते हैं, और एकल-तार CAN बस का उपयोग कर सकते हैं। यदि आप किसी ऐसी चीज़ के साथ इंटरफेस करना चाहते हैं जो वास्तव में "वास्तविक" आईएसओ है और दो-तार बस का उपयोग करता है, तो यह मोड काम नहीं करेगा।
जॉन वॉट

10

LPC11Cxx माइक्रोकंट्रोलर्स के परिवार (एआरएम कॉर्टेक्स-एम 0 के आधार पर) पर चिप CAN ट्रांसीवर शामिल हैं।


3
हाँ। सही। ओपी PIC18 के बारे में पूछता है। यह वास्तव में उपयोगी नहीं है।
फेडरिको रूसो

4
@FedericoRusso वह PIC18 के साथ एक उदाहरण देता है, और timrorr ने अंतर्निहित चालक के साथ एक समाधान दिया है। इसमें गलत क्या है?
clabacchio

8
@FedericoRusso - इतना गुदा मत बनो। यह जवाब बहुत दिलचस्प है।
रॉकेटमग्नेट

1
@Rocketmagnet: तो क्यू: "मैं एक्स कैसे करूँ?" A: "Do Y." सब ठीक है? (अपने स्वयं के उत्तर से)
फेडेरिको रूसो

2
@FedericoRusso - यदि प्रश्न को ओपी की संतुष्टि के लिए अच्छी तरह से उत्तर दिया गया है, और किसी ने कुछ दिलचस्प संबंधित जानकारी का उल्लेख किया है, तो निश्चित रूप से, क्यों नहीं?
रॉकेटमैग्नेट

9

हां, आपको ट्रान्सएवर की जरूरत है। माइक्रो पर कैन पिन प्राप्त होते हैं और संचारित होते हैं। CAN बस स्वयं एक मुड़-जोड़ी का उपयोग करता है जिसमें दो तारों पर उच्च और LOW नामक अंतर सिग्नलिंग होता है।

ट्रांसीवर के कामों में से एक है कि आप TX पर मौजूद लॉजिक लेवल को कैन बस सिग्नल में बदल दें।

  • एक तर्क '1' को बस को नहीं चलाने का प्रतिनिधित्व किया जाता है, इसलिए उच्च और निम्न रेखाएं 2.5V में "फ्लोट" कर सकती हैं - जिसे कैन शब्दावली में "रिकेसिव बिट" कहा जाता है।
  • एक तर्क '0' को हाई लाइन हाई और LOW लाइन लो ड्राइविंग द्वारा दर्शाया गया है - जिसे "प्रमुख बिट" कहा जाता है क्योंकि यह किसी भी निष्क्रिय बिट्स को प्रेषित करता है।

दूसरे को बस में क्या लेना है, और आरएक्स पिन से अपने माइक्रो में वापस भेजने के लिए इसे एक तर्क-स्तर में बदल दें।


8

आपको CPU और CAN बस के बीच CAN ट्रांसीवर चिप की आवश्यकता होगी। MCP2551 की जाँच करें।

अपडेट 17 अगस्त 2017:

मैं अभी माइक्रोचिप मास्टर्स सम्मेलन में हूँ। माइक्रोचिप इंजीनियरों द्वारा मुझे बताया गया कि Atmel अधिग्रहण के परिणामस्वरूप नए भागों में से एक MCP2551 से सस्ता और बेहतर दोनों है।


1
माइक्रोचिप 2551 से अधिक अब 2561 की सिफारिश कर रही है । NXP में कुछ दिलचस्प CAN चिप्स भी हो सकते हैं। अधिकांश MCU को ट्रान्सीवर की आवश्यकता होती है।
लुडविग श्रेयर

2

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

एनालॉग का सर्किट

समर्पित आईसी कैन ट्रांसीवर का उपयोग करने के फायदे यह है कि वे आपके लिए मध्यस्थता को संभाल लेंगे और आपको बस के साथ हस्तक्षेप करने के बारे में चिंता करने की ज़रूरत नहीं है। यदि आप केवल बस का अवलोकन कर रहे हैं और यह एक महत्वपूर्ण गंभीर वातावरण नहीं है, तो सर्किट ठीक हो सकता है। जबकि mcp2551 बहुत लोकप्रिय है, इंटरफ़ेस चिप्स के लिए कई विकल्प हैं।

एक नया विकास सिस्टम बेस प्रकार के चिप्स हैं जिनमें वोल्टेज विनियमन, बिजली मोड और बस से ESD सुरक्षा शामिल है।

जैसा कि टिमर ने ऊपर कहा है, NXP का LCP11C24 इस मायने में अद्वितीय है कि प्रोसेसर में CAN ट्रांसीवर शामिल है। इसके साथ एक डेमो बोर्ड केवल $ 19 है। एक और कम लागत समाधान $ 9.38 सरू PSOC5 डेमो बोर्ड, CY8CKIT-059 का उपयोग करना है। PSoC5 में CAN नियंत्रक नहीं है; यह एक और आगे बढ़ता है: नियंत्रक FPGA की तरह सार्वभौमिक ब्लॉकों में लागू किया जाता है। नियंत्रक के रजिस्टर को IDE के GUI के माध्यम से कॉन्फ़िगर किया गया है, जिससे फ़िल्टरिंग और R & D बहुत आसान है।

एक मुख्य विधि जो मैंने पाया है कि जब डेटा शीट को भ्रमित किया जाता है तो mcu TTL को CAN-Tx और CAN-Rx कहा जाता है, जबकि बस में ट्रांससीवर्स की डेटा लाइनों को हमेशा CAN-H और CAN-L लेबल किया जाता है। मैं दूसरे उत्तर में आरेखों को नापसंद करता हूं जहां टीएक्सआरएक्स को बस से जुड़ा हुआ दिखाया गया है; यह सम्मेलन के खिलाफ जाता है और भ्रम में योगदान देता है।

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