मैं सोच रहा हूँ कि रास्पबेरी पाई पर GPIO पिन के माध्यम से 9600 बॉड धारावाहिक को चलाने के लिए बिटबैंगिंग का उपयोग करना कितना संभव है।
जाहिर है, लिनक्स बिटबैंगिंग के लिए बहुत अच्छा मंच नहीं है, क्योंकि बड़ी संख्या में ड्राइवर और अन्य व्यवधान हैं जो सीपीयू को विस्तारित अवधि (1-10ms) के लिए अवरुद्ध कर सकते हैं। हालांकि, हाल ही में स्थिति बहुत बेहतर हो गई है, और कुछ प्री-इमोशन अब नियमित रूप से कर्नेल में सक्षम हो गए हैं। मुझे यह भी संदेह है कि रास्पबेरी पाई पर आसानी से उपयोग किए जा सकने वाले रीयल-टाइम पैच कर्नेल का उपयोग किया जा सकता है, और कनेक्टेड हार्डवेयर और ड्राइवरों को सावधानी से चुना जा सकता है।
विश्वसनीयता के लिए मेरा मानक यह है कि यह ज्यादातर समय 9600 बॉड सीरियल सहिष्णुता के भीतर रहना चाहिए। मैं वर्तमान में अनिश्चित हूं कि व्यवहार में कितनी त्रुटियां सहन करने योग्य हैं, लेकिन प्रोटोकॉल में पुनरावृत्ति और स्वीकार्यताएं हैं, इसलिए यह कुछ हद तक सहनशील है।
तो, मेरे सवाल हैं:
- क्या यूजरलैंड सॉफ्टवेयर मज़बूती से बिट-बैंग 9600 बॉड स्पीड कर सकता है?
- क्या इसके लिए वास्तविक समय में पैच किए गए कर्नेल की आवश्यकता है?
- मुझे सामान्य रूप से कितनी त्रुटियों की अपेक्षा करनी चाहिए?
इसके अलावा, क्या कोई उदाहरण कोड GPIO बिट बैंगिंग के माध्यम से धारावाहिक कर रहा है? मुझे Arduino SoftSerial का पता है, लेकिन यह इसके बारे में है।
बस मामले में, सवाल को सीमित करने के लिए: यह एक मानक सीरियल इंटरफ़ेस नहीं है और रास्पबेरी पाई का UART पहले से ही एक अन्य सीरियल लिंक के लिए उपयोग किया जाता है। मैं ऐसे उत्तरों की कामना नहीं करता, जो बाहरी हार्डवेयर (जैसे गर्टबोर्ड या अरुडिनो) का सुझाव देते हैं और न ही ऐसे उत्तर जो यूएआरटी पर निर्भर करते हैं।
reliability
कार्रवाई और उम्मीदों पर निर्भर हो सकता है।