मैं एन माइक्रोकंट्रोलर्स (एन> = 2 एमसीयू) से मिलकर एक प्रणाली को लागू करना शुरू करना चाहता हूं, लेकिन मैं उन्हें एक दूसरे के साथ संवाद करने की संभावनाओं को जानना चाहूंगा।
आदर्श रूप से, (N-1) माइक्रोकंट्रोलर्स को घर के अंदर ग्राहकों के रूप में काम करने के लिए रखा जाता है, जबकि अंतिम ("सर्वर") एक USB के माध्यम से एक पीसी से जुड़ा होता है। मेरे पास अभी जो समस्याएं हैं, उन्हें इन (एन -1) माइक्रोकंट्रोलरों को "सर्वर" से कैसे जोड़ा जाए। क्लाइंट MCUs बहुत सरल कार्य करते हैं, इसलिए एआरएम का उपयोग करने के लिए यह एक अच्छा समाधान नहीं हो सकता है कि वे ऐसे सरल कार्य करें क्योंकि वे CAN / PHY-MAC प्रदान करते हैं ।
अधिकांश उपकरणों के लिए और दूसरों की मांग पर संचार हर कुछ मिनटों में एक बार से अधिक नहीं होगा। गति बहुत महत्वपूर्ण नहीं है (संदेश छोटा है): 1 Mbit / s मुझे लगता है कि मेरे उद्देश्यों के लिए WAY ओवरकिल है।
जिन MCU का उपयोग करने की मेरी योजना है, वे निम्नलिखित हैं।
- Atmel AVR टिनी / मेगा
- TI MSP430
- एआरएम कोर्टेक्स एम 3 / एम 4
- (संभवतः Atmel AVR UC3 - 32-बिट)
अगर संभव हो तो (व्यक्तिगत पसंद), मैं PIC से बचना चाहूंगा , क्योंकि उन्हें प्रोग्राम करने की संभावनाएं कम हैं (उपरोक्त सभी में अधिक या कम ओपन सोर्स टूल के साथ-साथ कुछ आधिकारिक टूल भी हैं)।
मुझे पता है कि कुछ एआरएम कैन को कार्यक्षमता प्रदान कर सकते हैं और दूसरों के बारे में इतना निश्चित नहीं हूं।
अभी मैं इन संभावनाओं के साथ आया हूं:
- साधारण GPIO डेटा भेजने के लिए (संदेश के प्रारंभ को इंगित करने के लिए उच्च पर 16 बिट्स,> संदेश के अंत को इंगित करने के लिए कम से कम 16 बिट्स)। हालाँकि, यह सभी बिट्स का पता लगाने में सक्षम होने के लिए एक मानक आवृत्ति << (frequency_client, frequency_server) पर होना चाहिए। केवल एक केबल प्रति क्लाइंट MCU की आवश्यकता है।
- RS-232 : मुझे लगता है कि यह अब तक का सबसे अधिक इस्तेमाल किया जाने वाला संचार प्रोटोकॉल है, लेकिन मुझे नहीं पता कि यह कितना अच्छा है। मैं अभी 64 क्लाइंट MCUs पर विचार कर रहा हूं (शायद बाद में)
- USB: AFAIK यह ज्यादातर RS-232 की तरह है, लेकिन मुझे नहीं लगता कि यह इस मामले में बहुत अच्छी तरह से मापता है (हालाँकि USB बहुत सारे उपकरणों का समर्थन करता है - 255 अगर मुझे सही याद है - यह इस एप्लिकेशन के लिए अत्यधिक जटिल हो सकता है)
- RJ45 / ईथरनेट: यह वह है जिसे मैं वास्तव में उपयोग करना पसंद करूंगा, क्योंकि यह एक समस्या के बिना लंबी दूरी पर संचरण की अनुमति देता है (कम से कम परिरक्षित> कैट 6 केबल)। समस्या लागत (PHY, MAC, ट्रांसफार्मर, ...) है। मैं नहीं जानता कि क्या आप वास्तव में घर पर इसे अच्छी तरह से मिलाप कर सकते हैं। इस तरह मुझे एक क्लाइंट MCU की आवश्यकता नहीं होगी
- वायरलेस / ZigBee : मॉड्यूल बहुत महंगे हैं, हालांकि यह डेस्क के पीछे "स्पेगेटी" से बचने के लिए जाने का तरीका हो सकता है
- आरएफ मॉड्यूल / ट्रांसीवर: मैं 300 मेगाहर्ट्ज - 1 गीगाहर्ट्ज बैंड में उन लोगों की बात कर रहा हूं, इसलिए उन्हें घर पर सोल्डर करना मुश्किल होना चाहिए। मॉड्यूल सभी बिल्ट-इन हैं, लेकिन वे ZigBee के रूप में काफी महंगे हैं (कम से कम RF के मॉड्यूल Mouser पर, स्पार्कफुन में सस्ते होते हैं)।
- कर सकते हैं? यह बहुत मजबूत लग रहा है। भले ही मैं इसे मोटर वाहन अनुप्रयोगों में उपयोग करने की योजना नहीं करता, फिर भी यह एक अच्छा विकल्प हो सकता है।
- I / C / SPI / UART ? फिर - यदि संभव हो तो केबलों के साथ "स्पेगेटी" से बेहतर बचें
- पीएलसी वास्तव में एक विकल्प नहीं हैं। लंबाई बढ़ने के साथ प्रदर्शन बहुत तेजी से घटता है और पावर नेटवर्क के कैपेसिटेंस लोड पर निर्भर करता है। मुझे लगता है कि मूल्य-वार ईथरनेट के समान है।
इसके अलावा, कौन सा प्रोटोकॉल एक साथ प्रसारण के मामले में "बेहतर" होगा (चलो दुर्लभ मामला मान लें कि बहुत ही तत्काल दो उपकरणों पर प्रसारण शुरू होता है: कौन सा प्रोटोकॉल सर्वोत्तम "संघर्ष प्रबंधन प्रणाली" / "टक्कर प्रबंधन प्रणाली" प्रदान करता है?
इसे योग करने के लिए : मैं यह सुनना चाहता हूं कि वितरित ग्राहक प्रणाली के लिए सबसे अच्छा समाधान क्या हो सकता है, जो बहुत ही हल्के डेटा संचार करता है, दोनों लचीलेपन (उपकरणों की अधिकतम संख्या, संघर्ष / टकराव प्रबंधन प्रणाली, ...), कीमत को देखते हुए। , घर पर बनाना आसान है (टांका लगाना), ... मैं सिर्फ संचार मॉड्यूल पर 20 डॉलर खर्च करने से बचना चाहूंगा, लेकिन एक ही समय में डेस्क के पीछे 30 तारों को चूसना होगा।
समाधान मैं अभी इमेजिंग कर रहा हूं, GPIO या RS-232 ( सस्ते !) द्वारा MCUs के पास बुनियादी संचार करना होगा और सर्वर ( महंगा) के साथ संवाद करने के लिए "MCU" पर एक MCU प्रति ईथरनेट / ZigBee / Wi-Fi का उपयोग करना होगा , लेकिन यह अभी भी प्रत्येक क्लाइंट MCU प्रति एक ईथरनेट मॉड्यूल से बहुत सस्ता है)।
केबलों के बजाय फाइबर ऑप्टिक / ऑप्टिकल फाइबर का उपयोग करना संभव हो सकता है। हालांकि अतिरिक्त रूपांतरण आवश्यक हैं, और मुझे यकीन नहीं है कि यह इस मामले में सबसे अच्छा समाधान होगा। मैं उन पर अतिरिक्त विवरण सुनना चाहूंगा।