সফ্টওয়্যার "ইউআরটি" ডিজাইন সম্পর্কে একটি সংক্ষিপ্ত নোট: প্রয়োজনীয়তার উপর নির্ভর করে কমপক্ষে গুণগতভাবে ভিন্ন ভিন্ন পদ্ধতি গ্রহণ করা যেতে পারে:
একটি "সবকিছু নিয়ে যান" বিট-ব্যাং ড্রাইভার সমস্ত বিঘ্ন অক্ষম করবে এবং প্রতিটি বিট ঘড়ির জন্য চক্র-গণিত কোড ব্যবহার করবে। "সমস্ত কিছুর উপর নজর রাখুন" ড্রাইভারের সাথে ডেটা প্রাপ্ত করা দরকার যে ডেটা এলে নিয়ন্ত্রণকারী তার জন্য অপেক্ষা করা ছাড়া কিছুই করে না।
একটি "টেক ওভার মেইন লুপ" বিট-ব্যাং চালক উপরের মতো আচরণ করবে এটি বাদে এটি চক্র গণনার চেয়ে বিট টাইমিংয়ের জন্য টাইমার সংস্থান ব্যবহার করবে। বাধা যা সেবায় বেশি সময় নেয় না তা সক্ষম থাকতে পারে। ক্রমিক সংক্রমণের জন্য, স্থির-হারের টাইমার সংস্থান অন্য উদ্দেশ্যে ভাগ করা যেতে পারে; ক্রমিক সংবর্ধনার জন্য, তবে, বিট-ব্যাং ড্রাইভারটি যখন স্টার্ট বিটটি আসবে তখন টাইমারটি পুনরায় লোড করতে সক্ষম হবে যাতে প্রতিটি আগত বিট সময়ের মধ্যে এটির মেয়াদ শেষ হয়ে যায়।
একটি সম্পূর্ণ-বিঘ্নিত-চালিত বিট-ব্যাং ড্রাইভার একটি স্থির হারের টাইমার ব্যবহার করে যা বেশিরভাগ ডেটার রেটে বেশিরভাগ চলমান থাকে (3x এবং 5x উভয়ই 4x এর চেয়ে ভাল) এবং সেই টাইমার দিয়ে সমস্ত কিছু করে। এই ধরনের ড্রাইভার অন্য সমস্ত কিছুর সাথে একযোগে চলতে পারে তবে পূর্বের ড্রাইভার ধরণের প্রয়োজনের চেয়ে দ্রুত সিপিইউ প্রয়োজন।
নিয়ামকের প্রথম দুটি শৈলী যাতে কখনও না আসতে পারে এমন ডেটার জন্য চিরকাল অপেক্ষা করে এড়াতে, পাঠ্য রুটিনগুলির একটি টাইমআউট মান অন্তর্ভুক্ত করা সাধারণ। নোট করুন যে যদি এএ কন্ট্রোলারের লুপটি উদাহরণস্বরূপ "এর জন্য 100 মাইল অপেক্ষা করার জন্য বাইট পান, কিছু না আসে তবে অন্য কিছু করুন, তারপরে পরবর্তী বাইট ইত্যাদি পাবেন" " এবং "বেট" রুটিন সময় বের হওয়ার সময়ের মধ্যে বাইট উপস্থিত হয় এবং নিয়ামক আবার অপেক্ষা শুরু করে, সেই বাইটটি হারিয়ে যাবে; যে ডিভাইসের সাথে এটি যোগাযোগ করছে সেটিকে সেই সম্ভাবনাটি আশা করতে হবে।
কেবলমাত্র তৃতীয় স্টাইলের ড্রাইভার কোনও ডেটা বাইট প্রেরণ করার সময় ডেটা বাইটের আগমন শুরু হওয়ার সম্ভাবনাটি পরিচালনা করতে সক্ষম হবে। প্রথম দুটি শৈলীর কিছু পূর্ণ গতির পূর্ণ-দ্বৈত যোগাযোগ প্রোটোকলের জন্য ব্যবহার করা যেতে পারে যদি কন্ট্রোলার সাথে কথা বলার সময় কেবল কথা বলতে হয়। কৌশলটি হ'ল "ডেটা পড়ুন এবং লেখুন" রুটিন যা একটি ইনকামিং স্টার্ট বিটের জন্য অপেক্ষা করবে এবং যখন একটি সনাক্ত করা যায় তখন একটি পঠনকে ওভারল্যাপ করে এবং এমনভাবে লিখুন যে নিয়ন্ত্রণকারী প্রতিটি বিট প্রেরণ করে ঠিক যেমন আগত তথ্যগুলি পরীক্ষা করার জন্য examine একবার নিয়ামক আগত প্রারম্ভিক বিটটি সনাক্ত করে ফেললে, ঠিক পরবর্তী সময় এটি 8 ডাটা বিট এবং স্টপ বিটটি সন্ধান করতে হবে তা ঠিক জানবে এবং এইভাবে জানবে যে এটি নিজের ডেটা আউটপুট দেওয়ার মধ্যে সময়টিকে নিরাপদে ব্যবহার করতে পারে।
একটি বিভাজন নোট: একটি কন্ট্রোলার যা তথ্য গ্রহণের জন্য বিট-ব্যাং উআর্টের প্রথম দুটি স্টাইলগুলির মধ্যে একটি ব্যবহার করে, ডেটা ক্ষতি এড়াতে পরবর্তী বাইটের স্টার্ট বিটের প্রান্তিক প্রান্তের আগে প্রতিটি বাইটের ডেটা প্রক্রিয়া করতে হবে। যদি নিয়ামক জানেন যে প্রসেসিংয়ে কমপক্ষে আধা বিট সময় নেবে, তবে স্টপ বিটের অপেক্ষা না করে সর্বশেষ ডেটা বিটটি গ্রহণ করার সাথে সাথে প্রতিটি বাইট গ্রহণের সাথে সাথে প্রসেসিংয়ের জন্য উপলব্ধ সময় সর্বাধিকতর করতে পারে। নিয়ামককে আরও বেশি সময় দেওয়ার আরও উপায় হিসাবে, তবে ডিভাইসটি এটির পরিবর্তে দুটি স্টপ বিটের সাহায্যে ডেটা সংক্রমণ সরবরাহ করা সহায়ক হতে পারে। যদি "মার্ক প্যারিটি" কনফিগার করা যায় তবে এটি আরও একটি বিট সময় যোগ করবে। উদাহরণস্বরূপ 115200-8-M-2 এ সংক্রমণ 57600-8-N-1 এর চেয়ে বেশি প্রক্রিয়াজাতকরণের অনুমতি দেবে, যদিও এটি 1.6 গুনের চেয়ে বেশি দ্রুত ডেটা ফিড করবে।