वास्तव में "सामान्य" प्रोटोकॉल नहीं है, जो आप उपयोग करते हैं, वह आवेदन पर अत्यधिक निर्भर करता है। हमें बेहतर उत्तर देने के लिए, हमें आपकी आवश्यकताओं को थोड़ा बेहतर समझने की आवश्यकता है। आप उल्लेख करते हैं कि आप सब-सिस्टम के रूप में एक-दूसरे से बात करने के लिए अलग-अलग माइक्रो-कंट्रोलर रखना चाहेंगे।
इस आवेदन के बारे में कुछ प्रश्न:
- क्या इस परियोजना में 2 से अधिक सूक्ष्म नियंत्रक होंगे?
- आपकी गति और थ्रूपुट आवश्यकताएं क्या हैं? सूचना कितनी तेजी से मिलती है और कितनी बार आप डेटा भेज / प्राप्त कर रहे हैं?
यदि आपने प्रश्न 1 का उत्तर नहीं दिया है:
यदि इस परियोजना में केवल 2 माइक्रो-नियंत्रक हैं, तो आप निश्चित रूप से उनके बीच UART का उपयोग कर सकते हैं। यदि वे दोनों संचार शुरू करने की जरूरत है, प्रवाह नियंत्रण का उपयोग करें, अन्यथा यह एक दिशा में डेटा भेजने के लिए तुच्छ होना चाहिए। अधिकांश भाग के लिए "तेज पर्याप्त" होना चाहिए, यह देखते हुए कि आप उच्च बॉड दरों में से एक का चयन करते हैं। I2C और SPI आमतौर पर केवल मास्टर / दास वास्तुकला के लिए अच्छे होते हैं।
यदि आपने प्रश्न 1 के लिए हाँ (2 से अधिक नियंत्रक) का उत्तर दिया है:
- यदि आपकी परियोजना में 2 से अधिक माइक्रो-नियंत्रक हैं, तो कौन सा संचार शुरू करता है? क्या यह केवल एक मास्टर कंट्रोलर (यानी मास्टर-स्लेव आर्किटेक्चर) होगा? या क्या कोई भी उपतंत्र किसी भी समय बोलने में सक्षम होगा?
- क्या एक दूसरे से बात करने के लिए किसी सबसिस्टम की जरूरत है? जैसे: ए, बी और सी के लिए उपकरण: ए बी और सी को भेज सकते हैं, और बी ए और सी दोनों को भेज सकते हैं, आदि।
तो अब आपको कुछ और अधिक स्केलेबल की आवश्यकता है जहां आप एक सामान्य बस पर पता करने योग्य उपकरणों को छोड़ सकते हैं। इन अनुवर्ती प्रश्नों का उत्तर आपको I2C और SPI (मास्टर-स्लेव) या CAN (मल्टी-मास्टर) जैसे कुछ के बीच का निर्णय लेने में मदद करेगा।
आपके माइक्रो-नियंत्रक में सबसे अधिक UART परिधीय है, अन्य (विशेषकर CAN) केवल अधिक उच्च अंत चिप्स पर उपलब्ध हो सकते हैं। किसी भी स्थिति में, बाइट्स को स्थानांतरित करने के लिए इन परिधीयों का उपयोग करने के तरीके के बारे में बहुत सारे दस्तावेज होने चाहिए।