सबसे सरल स्तर पर, आप कह सकते हैं कि एक साधारण संचार प्रोटोकॉल में तीन परतें हैं: भौतिक, परिवहन और अनुप्रयोग। ( 7 के साथ OSI जैसे मॉडल हैं या 7 के साथ टीसीपी / आईपी । 4. इस प्रश्न के संदर्भ में परतों की संख्या बहुत महत्वपूर्ण नहीं है।)
एप्लिकेशन लेयर वह परत है जो आप सीधे अपने कोड में, और प्रश्न पर केंद्रित करते हैं। जहां तक ट्रांसपोर्ट लेयर की बात है, तो आपने जो बाइट सेंड_डाटा में दी थी, वह सिर्फ एक द्विआधारी पैटर्न है, लेकिन आप इसे अपने एप्लिकेशन कोड में 'ए' अक्षर के रूप में व्याख्या कर सकते हैं। सीआरसी या चेकसम की गणना समान होगी चाहे आप बाइट को 'ए', '0x41, या 0b01000001 मानते हों।
परिवहन परत पैकेट स्तर है, जहां आपके पास अपने संदेश हेडर हैं, और त्रुटि की जांच है, चाहे वह सीआरसी हो या एक बुनियादी चेकसम हो। फर्मवेयर के संदर्भ में, आपके पास send_data जैसे एक फ़ंक्शन हो सकता है, जहां आप इसे भेजने के लिए एक बाइट पास करते हैं। उस फ़ंक्शन के अंदर वह एक पैकेट में डालता है जो कहता है, "अरे यह एक सामान्य संदेश है, एक पावती की आवश्यकता है, और चेकसम 0x47 है, वर्तमान समय एक्स है।" यह पैकेट भौतिक परत पर प्राप्त नोड को भेजा जाता है।
भौतिक परत वह जगह है जहां इलेक्ट्रॉनिक्स और इंटरफ़ेस को परिभाषित किया गया है: कनेक्टर्स, वोल्टेज स्तर, समय, आदि। यह परत एक पीसीबी पर एक बुनियादी UART के लिए TTL संकेतों को चलाने वाले कुछ निशानों से लेकर पूरी तरह से अलग अंतर जोड़ी के रूप में हो सकती है। कार्यान्वयन कर सकते हैं।
प्राप्त नोड पर, पैकेट भौतिक परत पर आता है, परिवहन परत पर अनपैक किया जाता है, और फिर आपका बाइनरी पैटर्न एप्लिकेशन परत पर उपलब्ध होता है। यह पता करने के लिए कि क्या उस पैटर्न को 'ए,' 0x41, या 0b01000001 के रूप में समझा जाना चाहिए और इसके साथ क्या करना है, यह प्राप्त करने के लिए नोड एप्लिकेशन लेयर पर निर्भर है।
अंत में, एएससीआईआई के पात्रों को भेजने के लिए यह हमेशा स्वीकार्य होता है कि क्या आवेदन की आवश्यकता है। महत्वपूर्ण बात यह है कि अपनी संचार योजना को समझें, और एक त्रुटि जाँच तंत्र शामिल करें।