यूएआर सीरियल अनुभव के आधार पर, अनुसंधान नहीं।
मुझे निम्नलिखित संचार शामिल होने पर कम संचार समस्याएं मिली हैं - या दूसरे शब्दों में, दोनों एसओएफ/ईओएफ और (लंबाई - शायद)/चेककोड करें। फ़्रेम:
- SOFrame
- (लंबाई शायद)
- डाटा (पता, करने के लिए, से, प्रकार, अनुक्रम #, opcode, बाइट्स, आदि)
- CheckCode
- EOFrame
अनिवार्य रूप से, प्राप्त "फ़ेम्स" में शामिल हैं:
- अच्छे वाले - कोई समस्या नहीं।
- प्रेषक के कारण भ्रष्ट कारण एक पूरा संदेश नहीं भेज रहा है (यह लटका हुआ है, संचालित है, या पंप-ऑन ट्रांसमिशन पर रंप) (रिसीवर को समय-समय पर अपूर्ण संदेशों को रोकना चाहिए।)
- शोर या संचरण हस्तक्षेप के कारण भ्रष्ट। (बाइट फ्रेमिंग त्रुटियों, समानता, गलत डेटा)
- प्रेषक के कारण एक प्रेषित संदेश के बीच में शुरू हो रहा है या इनपुट बफर ओवर-रन के कारण कुछ बाइट्स गुम हो गया है।
- साझा बस टक्कर।
- ब्रेक - यह आपके सिस्टम में वैध है?
जो कुछ भी आप तैयार करते हैं, बीमा करना इन बीमा प्रकारों को संबोधित करने के लिए मजबूत है, तुरंत # 1 को सत्यापित करें और तेजी से 2-5 की पहचान करें और अगले फ्रेम के लिए तैयार हो जाएं।
SOF इसे फिर से शुरू करने के लिए, अगर रिसीवर खो दिया है आसान यह के पिछले बकवास फ्रेम की वजह से, आदि भारी फायदा है
लंबाई अच्छा है, लेकिन कम से कम IMHO उपयोगी। यदि संदेश की शुरुआत में लंबाई की आवश्यकता होती है, तो यह थ्रू-पॉट को सीमित कर सकता है। कुछ कम विलंबता संचालन ट्रांसमिशन शुरू करने के लिए तैयार होने से पहले लंबाई को नहीं जानते हैं।
सीआरसी 2-बाइट से अधिक की सिफारिश करें। एक छोटा चेक-कोड मेरे लिए पर्याप्त चीजों में सुधार नहीं करता है। मैं 1-बाइट एक की तुलना में कोई चेक कोड नहीं होगा। यदि समय-समय पर त्रुटियां केवल चेक-कोड द्वारा पकड़ी जाती हैं, तो मुझे 2-बाइट के 99 से बेहतर कुछ चाहिए।999% समय, मुझे 4-बाइट का 99.9 99 99 997%
ईओएफ बहुत उपयोगी है!
Btw: आप प्रोटोकॉल ASCII (बाइनरी के बजाय) है, तो नहीं उपयोग cr
या lf
EOFrame के रूप में करने के लिए सलाह देते हैं। शायद उन्हें केवल फ्रेम के बाहर उपयोग करें जहां वे एक संदेश का हिस्सा नहीं हैं।
बीटीडब्ल्यू 2: यदि आपका रिसीवर बॉड को स्वतः पहचान सकता है, तो यह कई कॉन्फ़िगरेशन समस्याओं को बचाता है।
बीटीडब्लू 3: एक प्रेषक उचित एसओएफ सिंकिंग बीमा करने के लिए "कुछ नहीं" बाइट (एसओएफ से पहले) भेजने पर विचार कर सकता है।
धन्यवाद! अच्छा तर्क! – user2479653
मिस्ड-मैच बॉड, बिट्स प्रति शब्द, समानता, अप्रत्याशित सिग्नल स्तर भी मुद्दों का कारण बनता है। – chux