যেহেতু আজকাল অ্যাসিঙ্ক্রোনাস সিরিয়াল যোগাযোগ ব্যাপকভাবে বৈদ্যুতিন ডিভাইসের মধ্যে ছড়িয়ে পড়েছে, আমি বিশ্বাস করি আমাদের মধ্যে অনেকে সময়ে সময়ে এই জাতীয় প্রশ্নের মুখোমুখি হয়েছিল। একটি ইলেকট্রনিক ডিভাইস D
এবং PC
সিরিয়াল লাইনের সাথে সংযুক্ত কম্পিউটার (আরএস -232 বা অনুরূপ) বিবেচনা করুন এবং অবিচ্ছিন্নভাবে তথ্য আদান প্রদানের প্রয়োজন । অর্থাৎ PC
প্রত্যেকটি কমান্ড ফ্রেম প্রেরণ করছে X ms
এবং প্রতিটি D
স্থিতি প্রতিবেদন / টেলিমেট্রি ফ্রেমের Y ms
সাথে জবাব দিচ্ছে (প্রতিবেদনটি অনুরোধের প্রতিক্রিয়া হিসাবে বা স্বাধীনভাবে পাঠানো যেতে পারে - এখানে আসলে কিছু আসে যায় না)। যোগাযোগের ফ্রেমগুলিতে যেকোন স্বেচ্ছাসেবী বাইনারি ডেটা থাকতে পারে । ধরে নিচ্ছি যোগাযোগের ফ্রেমগুলি নির্দিষ্ট দৈর্ঘ্যের প্যাকেটগুলি।
সমস্যাটি:
প্রোটোকল অবিচ্ছিন্ন থাকায়, গ্রহণকারী দিকটি চলমান প্রেরিত ফ্রেমের মাঝখানে সিঙ্ক্রোনাইজেশনটি শিথিল করতে পারে বা কেবল "যোগদান" করতে পারে, সুতরাং ফ্রেমের শুরু (এসওএফ) কোথায় রয়েছে তা কেবল এটিই জানতে পারে না। এসওএফের তুলনায় তুলনামূলকভাবে এসএফ-এর অবস্থানের ভিত্তিতে ডেটাটির আলাদা অর্থ রয়েছে, প্রাপ্ত ডেটা সম্ভাব্য চিরতরে দূষিত হয়ে যাবে।
প্রয়োজনীয় সমাধান
স্বল্প পুনরুদ্ধারের সময়ের সাথে এসওএফ সনাক্তকরণের জন্য নির্ভরযোগ্য সীমিতকরণ / সিঙ্ক্রোনাইজেশন স্কিম (যেমন এটি পুনরায় সংশ্লেষ করতে 1 ফ্রেমের চেয়ে বেশি লাগবে না)।
বিদ্যমান কৌশলগুলি সম্পর্কে আমি সচেতন (এবং কিছু ব্যবহার করে):
1) শিরোনাম / চেকসাম - পূর্বনির্ধারিত বাইট মান হিসাবে এসওএফ। ফ্রেমের শেষে চেকসাম।
- পেশাদাররা: সরল।
- কনস: নির্ভরযোগ্য নয়। অজানা পুনরুদ্ধারের সময়।
2) বাইট স্টাফিং:
- পেশাদাররা: নির্ভরযোগ্য, দ্রুত পুনরুদ্ধার, যে কোনও হার্ডওয়ারের সাথে ব্যবহার করা যেতে পারে
- কনস: স্থির আকারের ফ্রেম-ভিত্তিক যোগাযোগের জন্য এটি উপযুক্ত নয়
3) 9 ম বিট চিহ্নিতকরণ - প্রতিটি বিট অতিরিক্ত বিট সহ প্রিপেন্ড করুন, এসওএফ দ্বারা চিহ্নিত করা হয়েছে 1
এবং ডেটা বাইটগুলি চিহ্নিত রয়েছে 0
:
- পেশাদাররা: নির্ভরযোগ্য, দ্রুত পুনরুদ্ধার
- কনস: হার্ডওয়্যার সমর্থন প্রয়োজন। বেশিরভাগ
PC
হার্ডওয়্যার এবং সফ্টওয়্যার দ্বারা সরাসরি সমর্থিত নয় ।
4) 8 ম বিট চিহ্নিতকরণ - উপরের অনুকরণের ধরণ, 9 তম পরিবর্তে 8 তম বিট ব্যবহার করার সময়, যা প্রতিটি ডেটা শব্দের জন্য কেবল 7 বিট রেখে চলেছে।
- পেশাদাররা: নির্ভরযোগ্য, দ্রুত পুনরুদ্ধার, যে কোনও হার্ডওয়ারের সাথে ব্যবহার করা যেতে পারে।
- কনস: 7-বিট উপস্থাপনের / থেকে প্রচলিত 8-বিট উপস্থাপনা / থেকে / এনকোডিং / ডিকোডিং স্কিমের প্রয়োজন। কিছুটা অপব্যয়।
5) টাইমআউট ভিত্তিক - এসওএফটিকে কিছু বদ্ধ নির্ধারিত সময়ের পরে প্রথম বাইট হিসাবে ধরে নেওয়া উচিত।
- পেশাদাররা: কোনও উপাত্ত নেই, সহজ,
- কনস: এটি নির্ভরযোগ্য নয়। উইন্ডোজ পিসির মতো দুর্বল টাইমিং সিস্টেমগুলির সাথে ভাল কাজ করবে না। সম্ভাব্য থ্রুপুট ওভারহেড।
প্রশ্ন: সমস্যা সমাধানের জন্য অন্যান্য সম্ভাব্য কৌশল / সমাধান কী কী? আপনি কি উপরের তালিকার কনসগুলিতে ইঙ্গিত করতে পারেন যা সহজেই চারপাশে কাজ করা যেতে পারে, যাতে এগুলি সরিয়ে দেওয়া হয়? আপনি কীভাবে (বা আপনি) আপনার সিস্টেম প্রোটোকল ডিজাইন করবেন?