মাইক্রোকন্ট্রোলার (Microcontroller) এর প্রাথমিক ধারনা

ভূমিকাঃ

ইলেকট্রনিক প্রকৌশলে মাইক্রোকন্ট্রোলারের পদযাত্রা খুব বেশী দিনের পুরাতন নয়। মাত্র কয়েক দশক পূর্বে এর চর্চা শুরু হয়েছে। পুরাতন দিনে প্রকৌশলের অধিকাংশ প্রসেস ও প্রসেস কন্ট্রোল সিস্টেম ছিল যান্ত্রিক (Mechanical) এবং যা ছিল ব্যয়বহুল এবং কম সূক্ষতর। এই অসুবিধা দূরীকরনে অপেক্ষাকৃত অধিক সূক্ষ ও সস্তা কন্ট্রোলিং পদ্ধতি যুগের চাহিদা হয়ে দাঁড়ায়। এ চাহিদা মোকাবেলায় গবেষকগণ কন্ট্রোলিং পদ্ধতিতে যান্ত্রিক পদ্ধতির পরিবর্তে বৈদ্যূতিক পদ্ধতির অবতারণা করেন। প্রাথমিক সময়ে বৈদ্যূতিক কন্ট্রোল সিস্টেমসমূহ ডিজাইনও খুব বেশী সুবিধাজনক ছিল না। কারন প্রতিটি আলাদা প্রসেসের জন্য আলাদা বৈদ্যূতিক সার্কিট ডিজাইন করতে হতো এবং এগুলি ছিল বৃহৎ ও অত্যন্ত জটিল। তাই যুগের চাহিদানূযায়ী ধীরে ধীরে মাইক্রোকন্ট্রোলার কন্ট্রোল সিস্টেম উন্নত হয়। মাইক্রোকন্ট্রোলার কন্ট্রোল সিস্টেমের বড় সুবিধা হলো সার্কিট ডিজাইন সরল এবং একই মাইক্রোকন্ট্রোলার চীপে ভিন্ন ভিন্ন প্রোগ্রাম করে বিভিন্ন সার্কিট ডিজাইন করা যায় ফলে সিস্টেম ডিজাইনের ব্যয় কমে আসে। আজকের দিনে মাইক্রোকন্ট্রোলার বিষয়টি ইলেকট্রনিক প্রযুক্তির এক অবিচ্ছেদ্য অংশ হিসাবে গন্য তাই ইলেকট্রনিক্সের শিক্ষার্থীদের নিকট বিষয়টি খুবই গুরুত্ত্বপূর্ণ।

মাইক্রোকন্ট্রোলার কি?

মাইক্রোকন্ট্রোলার হলো বিশেষ ধরনের ইন্টিগ্রেটেড সার্কিট যা একক চীপ কম্পিউটার হিসাবে কাজ করে। আধুনিক ভিএলএসআই প্রযুক্তিতে মাইক্রোকন্ট্রোলার হলো একক চীপের অভ্যন্তরে জটিল লজিক সার্কিটসমূহের সমন্বয়ে গঠিত একটি ক্ষুদ্র প্রোগ্রামযোগ্য কম্পিউটার। একটি মাইক্রোকন্ট্রোলার চীপের অভ্যন্তরে পূর্ণাংগ কম্পিউটার সংগঠনের প্রায় সকল অংশই বিদ্যমান থাকে যেমনঃ ProcessorRAMROMI/O Port, ADC, Timer ইত্যাদি, ফলে ডিভাইসটি একটি কম্পিউটারের বিকল্প হিসাবে কাজ করতে পারে। এখানে Micro শব্দটির অর্থ ক্ষুদ্র অর্থাত মাইক্রোকন্ট্রোলার চীপের অভ্যন্তরে যে কম্পিউটারটি গঠিত হয়েছে তা আকৃতিতে ক্ষুদ্র এবং Controller শব্দটির অর্থ নিয়ন্ত্রনকারী অর্থাত ডিভাইসটি কোন বৈদ্যূতিক অবজেক্ট, প্রসেস বা ইভেন্টকে নিয়ন্ত্রন করতে পারে। অনেক সময় মাইক্রোকন্ট্রোলারকে Embedded Controller বলা হয় কারণ এটি যে সাপোর্ট সার্কিটসমূহকে নিয়ন্ত্রন করে তা তার সাথেই Embedded বা সংযুক্ত করা থাকে। Intel 8051, ATmega8, PIC 16F8 কয়েকটি জনপ্রিয় মাইক্রোকন্ট্রোলারের উদাহরণ।

মাইক্রোপ্রসেসরর কি?

মাইক্রোপ্রসসর একটি ডিজিটাল ইন্টিগ্রেটেড সার্কিট যা ইনপুট বাসের মাধ্যমে ডাটা ও নির্দেশ গ্রহন করে নির্দেশ অনুযায়ী ডাটা প্রকৃয়া করে ফলাফল তৈরী করে, উক্ত ফলাফল আউটপুট বাসের মাধ্যমে আউটপুট ডিভাইসে প্রেরণ করে এবং ইনপুট আউটপুট ডিভাইসসমূহকে নিয়ন্ত্রনের জন্য বিভিন্ন কন্ট্রোল সিগনাল তৈরী করে। একটি কম্পিউটার ব্যবস্থার যাবতীয় গাণিতিক ও যৌক্তিক কার্যাবলী মাইক্রোপ্রসেসরে সংঘটিত হয়। মাইক্রোপ্রসসর একটি কম্পিউটার ব্যবস্থার গুরুত্বপূর্ণ অংশ যা সেন্ট্রাল প্রসেসিং ইউনিট CPU হিসাবে কাজ করে। Intel 8085, MC68000, Z80 কয়েকটি জনপ্রিয় মাইক্রোপ্রসসরের উদাহরণ।

মাইক্রোকন্ট্রোলার উন্নয়নের ইতিহাস ও বিবর্তনঃ

১৯৭১ সালে Intel Corporation সর্বপ্রথম 4-bit মাইক্রোপ্রসেসর চীপ Intel 4004 তৈরী করে। পরবর্তী কয়েক বছরের মধ্যে Intel 8008 এবং অন্যান্য কার্যোপযোগী মাইক্রোপ্রসেসরসমূহ তৈরী হয়। এই সকল নব্য সৃষ্ট মাইক্রোপ্রসেসরসমূহ দ্বারা কর্যোপযোগী ইলেকট্রনিক সিস্টেম ডিজাইন করতে আরো কিছু অতিরিক্ত চীপ যেমনঃ RAM, ROM ইত্যাদি প্রয়োজন হতো, মাইক্রোপ্রসেসর চীপ এবং এই সকল RAM, ROM এর মধ্যে ডাটা আদান প্রদানের ক্ষেত্রে আরো কিছু ইন্টারফেসিং চীপও প্রয়োজন হতো যা ইলেকট্রনিক সিস্টেম ডিজাইনের ব্যয় বৃদ্ধি করতো। ফলে তৎকালীন গবেষকগণ এমন একটি ডিভাইস উদ্ভাবনের কথা ভাবছিলেন যাতে একটি চীপের মধ্যেই ROM, RAM, Microprocessor, Clock এই সবগুলি ব্যবস্থা সমন্বিত থাকে। এর ফলে সিস্টেমে ব্যবহৃত চীপের সংখ্যা কমে আসবে ও ডিজাইন ব্যয় কম হবে।
Smithsonian Institution এর মতে Texas Instruments এর গবেষক Gary Boone এবং Michael Cochran সর্বপ্রথম সফলভাবে মাইক্রোকন্ট্রোলার উদ্ভাবন করেন। তাদের কর্মকান্ডের ফল সরূপ ১৯৭৪ সালে প্রথম বাণিজ্যিকভাবে TMS1000 মাইক্রোকন্ট্রোলার বাজারে আসে, যাতে ROM, RAM, Microprocessor, Clock এই সবগুলি ব্যবস্থা একটি চীপেই সমন্বিত ছিল এবং চীপটি Embedded System ডিজাইনের জন্য তৈরী করা হয়েছিল।
TMS1000 বাজারে আসার পর ১৯৭৭ সালে Intel Corporation বাণিজ্যিকভাবে Intel 8048 চীপটি বাজারজাত করে। এটি ছিল একটি একক চীপের Computer System এবং ইহাতে ROM ও RAM সমন্বিত ছিল। ইহা বিভিন্ন ইলেকট্রনিক সিস্টেমকে নিয়ন্ত্রনের জন্য ব্যবহৃত হতো। Intel 8048 চীপটি তৎকালীন সময়ে প্রায় এক বিলিয়ন কম্পিউটার কিবোর্ডে এবং অন্যান্য ইলেকট্রনিক সিস্টেমে ব্যবহৃত হয়েছে। এই ব্যবসায়িক সাফল্যের পর Intel Corporation এর তৎকালীন প্রেসিডেন্ট Luke J. Valenter তার বিবৃতিতে বলেন, মাইক্রোকন্ট্রোলার তার কোম্পানীর ইতিহাসে একটি বড় ব্যবসায়িক সাফল্য।
ঐ সময়ে দুই ধরনের মাইক্রোকন্ট্রোলার দেখা যেত। এক ধরণের মাইক্রোকন্ট্রোলারে PROM ব্যবহার হতো যা শুধুমাত্র এক বার প্রোগ্রাম করা যেত এবং যা OTP বা One-Time Programmable মাইক্রোকন্ট্রোলার নামে পরিচিত ছিল। অন্য ধরণের মাইক্রোকন্ট্রোলারের উপরের পৃষ্ঠদেশে স্বচ্ছ Quartz Window বিশিষ্ট EPROM প্রোগ্রাম মেমোরী ছিল যাতে সঞ্চিত প্রোগ্রামসমূহ আলট্রা-ভায়োলেট রশ্নি প্রয়োগের মাধ্যমে একাধিকবার মোছা এবং প্রোগ্রাম করা যেত। OTP মাইক্রোকন্ট্রোলারসমূহ ছিল দামে সস্তা কিন্তু তা শুধু একবার মাত্র প্রোগ্রাম করা যেত ফলে ব্যবহার সুবিধাজনক ছিল না, পক্ষান্তরে EPROM মাইক্রোকন্ট্রোলারসমূহে একাধিকবার মোছা এবং প্রোগ্রাম করা যেত। এটির ব্যবহার সুবিধাজনক হলেও তা ছিল বেশ দামী ফলে অসুবিধা একটি রয়েই গেল। এই অসুবিধা দুর হয় EEPROM – Electrically Erasable Programmable Read Only Memory উদ্ভাবনের ফলে।
আশির দশকের সূচনালগ্নে ১৯৮০ হতে ১৯৮৩ সালের মধ্যে সেমিকন্ডাকটর মেমোরীর জগতে EEPROM মেমোরী উন্নয়ন ও বাণিজ্যিকভাবে উৎপাদন শুরু হলে মাইক্রোকন্ট্রোলারে EEPROM ব্যবহারের পথ সুগম হয়। ১৯৯৩ সালে Microchip কোম্পানী তাদের মাইক্রোকন্ট্রোলার চীপ PIC16x84 এ সর্বপ্রথম EEPROM ব্যবহার করে। একই বছর Atmel Corporation তাদের উৎপাদিত মাইক্রোকন্ট্রোলার চীপে Flash memory সংযুক্ত করে। Flash memory বিশেষ ধরণের EEPROM। মাইক্রোকন্ট্রোলার চীপে EEPROM ব্যবহারের ফলে দ্রুত প্রোগ্রাম লেখা এবং মোছা সম্ভব হয় এবং তা পূর্ববর্তী EPROM টেকনোলজির তুলনায় দামে অনেক সস্তা। এই সময়ে মাইক্রোকন্ট্রোলারে Flash memory খুব প্রাধান্য পায় এবং প্রায় সকল মাইক্রোকন্ট্রোলার নির্মাতা প্রতিষ্ঠান তাদের উৎপাদিত মাইক্রোকন্ট্রোলারে Flash memory ব্যবহার শুরু করে। মাইক্রোকন্ট্রোলারে ROM হিসাবে Flash memory ব্যবহারে হাজারো বার দ্রুত প্রোগ্রাম লেখা ও মোছা যায় মোমোরীর কোন ক্ষতি সাধন না করেই। ফলে একই চীপকে বার বার প্রোগ্রাম করার সুবিধা পাওয়া যায় যা এম্বেডেড সিস্টেম ডিজাইনারদের বিশেষ সুবিধা প্রদান করে এবং এম্বেডেড সিস্টেম উৎপাদনের ব্যয় অনেকাংশে কমে আসে।
আজকের দিনে মাইক্রোকন্ট্রোলার দামে অনেক সস্তা, বিভিন্ন ধরনের মাইক্রোকন্ট্রোলারকে কেন্দ্র করে বহু অনলাইন কম্যূনিটি রয়েছে যা ইলেকট্রনিক্সের হবিস্টদের জন্য উন্মুক্ত।
আগামী দিনগুলিতে মাইক্রোকন্ট্রোলারে MRAM – Magnetoresistive Random Access Memory ব্যবহারের সম্ভবনা রয়েছে যাতে আশা করা যায় মাইক্রোকন্ট্রোলারের উৎপাদন ব্যয় আরো কমে আসবে।

মাইক্রোকন্ট্রোলারের ব্যবহারঃ

আজকের দিনে প্রায় সকল ইলেকট্রনিক ডিভাইসের অভ্যন্তরে মাইক্রোকন্ট্রোলারের ব্যবহার দেখা যায়। পরিমাপক যন্ত্র যেমনঃ ডিজিটাল থার্মোমিটার, গণনা যন্ত্র যেমনঃ ক্যালকুলেটর, ডিসপ্লে সিস্টেম যেমনঃ স্ক্রল মেসেজ ডিসপ্লে, বৈদ্যূতিক বিজ্ঞাপন ইত্যাদি ইলেকট্রনিক সিস্টেমের অভ্যন্তরে মাইক্রোকন্ট্রোলার ব্যবহৃত হয়। আধুনিক অটোমোবাইল টেকনোলজিতেও মাইক্রোকন্ট্রোলারের বহুল ব্যবহার রয়েছে। আজকের দিনে প্রায় সকল গাড়ী উৎপাদনকারী প্রতিষ্ঠান ইঞ্জিন নিয়ন্ত্রনকারী হিসাবে নূন্যতম একটি মাইক্রোকন্ট্রোলার এবং গাড়ীর অন্যান্য ব্যবস্থাসমূহ নিয়ন্ত্রনের জন্য অতিরিক্ত সংখ্যক মাইক্রোকন্ট্রোলার ব্যবহার করে। ডেস্কটপ কম্পিউটারের পেরিফেরালসমূহ যেমনঃ কিবোর্ড, মডেম, প্রিন্টার এবং অন্যান্য পেরিফেরালসমূহে মাইক্রোকন্ট্রোলারের ব্যবহার রয়েছে। বৈদ্যূতিক টেস্টিং ও মেজারিং ইকুইপমেন্টসমূহে মাইক্রোকন্ট্রোলার আধুনিক ফিচারসমূহ যুক্ত করেছে যেমনঃ পরিমাপের পাঠ সংরক্ষণ, ইউজার রুটিন সংরক্ষণ, ওয়েভফর্ম ও পরিমাপের ফলাফল ডিজিটাল ডিসপ্লেতে প্রদর্শন ইত্যাদি। আধুনিক টেলিভিশন রিসিভার এবং রিমোট কন্ট্রোলারেও মাইক্রোকন্ট্রোলারের ব্যবহার রয়েছে এছাড়া বহুতল ভবনে ব্যবহৃত লিফটকে নিয়ন্ত্রনের জন্য মাইক্রোকন্ট্রোলার একটি আদর্শ ডিভাইস। উল্লেখিত উদাহরণসমূহ মাইক্রোকন্ট্রোলারের প্রয়োগক্ষেত্রের সামান্য কিছু দৃষ্টান্ত মাত্র। ইলেকট্রনিক টেকনোলজির উন্নয়নের সাথে সাথে মাইক্রোকন্ট্রোলারের ব্যবহার এত বৃদ্ধি পাচ্ছে যে ভবিষ্যতে মাইক্রোকন্ট্রোলারের ব্যবহার ছাড়া হয়তো কোন ইলেকট্রনিক ডিভাইস খুজে পাওয়া যাবেনা, অর্থাত যেখানেই বৈদ্যূতিক নিয়ন্ত্রন ব্যবস্থা (Electrical Control System) থাকবে সেখানেই নূণ্যতম একটি মাইক্রোকন্ট্রোলার ব্যবহার হবে।

মাইক্রোকন্ট্রোলার এবং মাইক্রোপ্রসেসরের মধ্যে পার্থক্যঃ

মাইক্রোপ্রসেসর বলতে বুঝায় একটি ইন্টিগ্রেডে সার্কিট যা একটি কম্পিউটারের সেন্ট্রাল প্রসেসিং ইউনিট হিসাবে কাজ করে, এজন্য মাইক্রোপ্রসেসরকে কখনো কখনো CPU বলা হয়ে থাকে। যেমনঃ Intel x86 পরিবারভুক্ত মাইক্রোপ্রসেসরসমূহ 8086, 80186, 80286, 80386 ইত্যাদি। মাইক্রোপ্রসেসর কম্পিউটারের একটি প্রধান গুরুত্বপূর্ণ অংশ কিন্তু ইহা পূর্নাঙ্গ কম্পিউটার নয়।
পক্ষান্তরে মাইক্রোকন্ট্রোলার হলো একটি একক চীপ কম্পিউটার যাতে কম্পিউটারের বিভিন্ন উপাদান যেমন Processor, RAM, ROM, I/O Port ইত্যাদি একটি চীপের মধ্যেই ফেব্রিকেশন করা থাকে। এ ধরনের ইন্টিগ্রেটেড সার্কিটের মধ্যে রয়েছে Intel 8051, Atmel ATmega16 এবং আরো অনেক কোম্পানীর সমজাতীয় শ্রেনীভূক্ত মাইক্রোকন্ট্রোলার চীপ। মাইক্রোকন্ট্রোলার চিপ একটি পূর্নাঙ্গ কম্পিউটার।
একটি মাইক্রোপ্রসেসরের অভ্যন্তরে সাধারণতঃ ALU, General Purpose Register, Accumulator, Program Counter, Flag Register, Data and Control Bus ইত্যাদি অংশ থাকে।
পক্ষান্তরে একটি মাইক্রোকন্ট্রোলারের অভ্যন্তরে একটি পূর্ণাঙ্গ প্রসেসরসহ RAM, ROM, I/O Port ইত্যাদি ফেব্রিকেশন করা থাকে।
মাইক্রোপ্রসেসরের সাহায্যে কোন সিস্টেম ডিজাইন করতে বাহ্যিকভাবে কয়েকটি অতিরিক্ত চীপ যোগ করতে হয় যেমনঃ RAM, ROM, I/O Port ইত্যাদি।
পক্ষান্তরে একটি মাইক্রোকন্ট্রোলারের সাহায্যে কোন সিস্টেম ডিজাইন করতে বাহ্যিকভাবে RAM, ROM, I/O Port ইত্যাদি যোগ করার প্রয়োজন হয় না।
মাইক্রোপ্রসেসরের সাহায্যে কোন সিস্টেম ডিজাইন করতে প্রয়োজনীয় RAM, ROM এর পরিমান I/O Port এর সংখ্যা ইত্যাদি ডিজাইনার তার ইচ্ছামত নির্বাচন করতে পারে।
পক্ষান্তরে একটি মাইক্রোকন্ট্রোলারের অভ্যন্তরে নির্দিষ্ট পরিমান RAM, ROM, I/O Port ইত্যাদি ফেব্রিকেট করা থাকে, কোন সিস্টেম ডিজাইনার এই পরিমানের অতিরিক্ত RAM, ROM, I/O Port সংযুক্ত করতে পারে না।
কোন Embedded System ডিজাইনের জন্য একটি পূর্নাঙ্গ কম্পিউটার ব্যবহার খুবই ব্যয়বহুল। উদাহরণসরূপ একটি টিভি রিমোট কন্ট্রোলার তৈরী করতে একটি Dual Core প্রসেসর সম্বলিত কম্পিউটার ব্যবহার করা যাবে কিন্তু তা হবে বেশ ব্যয়বহুল এবং বোকামীপূর্ণ।
পক্ষান্তরে Embedded System ডিজাইনের জন্য মাইক্রোকন্ট্রোলার একটি আদর্শ ডিভাইস, যা কম্পিউটারের বিকল্প হিসাবে ব্যবহার করা যায় এবং তা খুবই সস্তা। ফলে Embedded System ডিজাইনের ব্যয় অনেক কমে আসে।

মাইক্রোকন্ট্রোলারের প্রাথমিক গাঠনিক কাঠামো বর্ণনাঃ

একটি মাইক্রোকন্ট্রোলার যে সকল মৌলিক অংশ নিয়ে গঠিত চিত্রের সাহায্যে তা উপস্থাপনকে উক্ত মাইক্রোকন্ট্রোলারের গাঠনিক কাঠামো বলা হয়। উৎপাদনকারী প্রতিষ্ঠানভেদে বিভিন্ন মাইক্রোকন্ট্রোলারের গাঠনিক কাঠামো ভিন্ন ভিন্ন হয়। কিন্তু শিক্ষার্থীদের পক্ষে প্রত্যেকটি মাইক্রোকন্ট্রোলারের গাঠনিক কাঠামো আলাদা ভাবে শেখা বেশ কষ্টকর। এজন্য একটি সরল ও প্রাথমিক গাঠনিক কাঠামো চিন্তা করা হয় যার সাহায্যে সার্বিকভাবে মাইক্রোকন্ট্রোলারের গঠন ও কার্যপ্রকৃয়া সম্পর্কে স্বচ্ছ আপাত ধারণা সৃষ্টি হয়। এরকম একটি প্রাথমিক গাঠনিক ও ফাংশনাল কাঠামোচিত্র নিচের চিত্রে উপস্থাপিত হলোঃ

উপরোল্লিখিত কাঠামোচিত্রে উপস্থাপিত বিভিন্ন অংশসমূহের কার্যগত বর্ণনাঃ

সিপিইউঃ

CPU এর অর্থ – সেন্ট্রাল প্রসেসিং ইউনিট বা কেন্দ্রীয় প্রকৃয়াকরণ অংশ। ইহা ALU, Accumulator, Control Unit, Flag, Stack Pointer ও কিছু General Purpose Register সমন্বয়ে গঠিত। একটি মাইক্রোকন্ট্রোলারের যাবতীয় গাণিতিক ও যৌক্তিক অপারেশনসমূহ সিপিইউ এর অন্তর্গত ALU তে সম্পন্ন হয়। এজন্য সিপিইউকে মাইক্রোকন্ট্রোলারের মস্তিস্ক বলা যায়। প্রসেসর প্রাথমিক চারটি কাজ করেঃ
১। Fatching: অর্থাৎ RAM হতে Instruction কে ইন্সট্রাকশন রেজিস্টারে স্থানান্তর করে।
২। Decoding: এসেম্বলি ল্যাংগুয়েজের ইন্সট্রাকশনকে মেশিন ল্যাংগুয়েজে রূপান্তর করে।
৩। Executing: এই ধাপে ইন্সট্রাকশন অনুযায়ী ALU তে প্রয়োজনীয় গাণিতিক এবং যৌক্তিক কার্যাবলী সম্পন্ন হয়।
৪। Storing: ফলাফল মেমোরীতে অর্থাৎ আউটপুট রেজিস্টারে প্রেরণ করে।

মেমোরিঃ

মাইক্রোকন্ট্রোলারের অভ্যন্তরে সেমিকন্ডাকটর মেমোরী ব্যবহৃত হয়। মেমোরী অংশে RAM, ROM (যেমনঃ EPROM এবং EEPROM) এবং কিছু সাধারণ Register থাকে। প্রোগ্রামের এক্সিকিউশন সরাসরি RAM ও CPU এর সংশ্লিষ্টতায় সম্পন্ন হয়। RAM হলো Volatile স্মৃতি, অর্থাৎ মাইক্রোকন্ট্রোলারে বিদ্যূৎ সরবরাহ বন্ধ হলে RAM এর ডাটা মুছে যায়। ROM এ প্রোগ্রাম স্থায়ীভাবে সংরক্ষণ করে রাখা হয়। মাইক্রোকন্ট্রোলারে ROM অভ্যন্তরীণ অথবা বাহ্যিক উভয় ধরণের হতে পারে। ROM এম্বেডেড হলে এর পরিমান হয় সীমিত আবার বাহ্যিক ROM সংযুক্ত করে এর পরিমান বৃদ্ধি করা গেলেও সেক্ষেত্রে সার্কিটের জটিলতা বৃদ্ধি পায়।

ইনপুট/আউটপুট পোর্টঃ

ব্যবহারিক বর্তনীতে মাইক্রোকন্ট্রোলারের সাথে বিভিন্ন পেরিফেরাল যেমনঃ এলসিডি ডিসপ্লে, সেভেন সেগমেন্ট ডিসপ্লে, স্টেপার মোটর, বিভিন্ন সেনসর ইত্যাদি যুক্ত থাকে। মাইক্রোকন্ট্রোলার হতে নির্গত কন্ট্রোল সিগনাল দ্বারা এগুলি নিয়ন্ত্রিত হয়। আবার বিভিন্ন সেনসর হতে নির্গত বৈদ্যূতিক সিগনাল মাইক্রোকন্ট্রোলারে গৃহীত হয়। মাইক্রোকন্ট্রোলারে এই সকল সিগনাল গ্রহণ ও নির্গমন বিশেষ ধরণের পোর্টের মাধ্যমে সম্পন্ন হয় যাদের ইনপুট আউটপুট পোর্ট বলা হয়। বাস্তবে এই সকল পোর্ট হলো মাইক্রোকন্ট্রোলারের অভ্যন্তরে গঠিত এক বা একাধিক রেজিস্টার, যার বিটসমূহ মাইক্রোকন্ট্রোলারের বাহ্যিক পিনসমূহের সাথে লজিক্যালি যুক্ত থাকে। পোর্টসমূহ ইউজার ডিফাইন্ড অর্থাৎ এগুলি ইউজার প্রোগ্রাম দ্বারা নিয়ন্ত্রন করা যায় এবং একই পোর্টকে ইউজার প্রোগ্রাম দ্বারা ইনপুট ও আউটপুট পোর্ট হিসাবে নির্ধারণ করা যায়। পোর্টসমূহ দুই ধরণের (১) সিরিয়াল পোর্ট এবং (২) প্যারালেল পোর্ট। সিরিয়ালি ডাটা কম্যুনিকেশনের জন্য সিরিয়াল পোর্ট এবং প্যারালালি ডাটা কম্যুনিকেশনের জন্য প্যারালেল পোর্ট ব্যবহৃত হয়।

টাইমার এবং কাউন্টারঃ

অধিকাংশ মাইক্রোকন্ট্রোলারের কমপক্ষে একটি এবং কোন কোন ক্ষেত্রে একাধিক টাইমার/কাউন্টার রয়েছে যা ইভেন্টসমূহের সময় নির্ধারণ, বিরতি পরিমাপ, এবং ইভেন্টসমূহ গণনা করতে পারে। এই অংশের প্রধান কাজ হলো ফ্রেকুয়েন্সী পরিমাপ, ক্লক ফাংশন। ইহা বাহ্যিক পালস গণনা করতে পারে। বাহ্যিক পালস গণনার সময় ইহা কাউন্টার হিসাবে কাজ করে। ইহা মূলতঃ ৮ বা ১৬ বিটের রেজিস্টার।

ডিজিটাল-টু-এনালগ কনভার্টারঃ

ইহা একটি গুরুত্ত্বপূর্ণ অংশ। মাইক্রোকন্ট্রোলারে উৎপন্ন বিভিন্ন কন্ট্রোল সিগনাল ডিজিটাল ফর্মে থাকে যা দ্বারা এনালগ ডিভাইসকে ড্রাইভ করা সম্ভব নয় তাই এই সকল কন্ট্রোল সিগনালকে এনালগ ফর্মে রূপান্তরের প্রয়োজন হয়। এই অংশ ডিজিটাল সিগনালকে এনালগ সিগনালে রূপান্তর করে। ইহা বিভিন্ন এনালগ ডিভাইসকে নিয়ন্ত্রনের জন্য ব্যবহৃত হয়। অনেক মাইক্রোকন্ট্রোলারের এই অংশে পালস উইথ মডুলেটর থাকে যার সাহায্যে মোটর ড্রাইভ করা যায়।

এনালগ-টু-ডিজিটাল কনভার্টারঃ

এই অংশের মাধ্যমে বিভিন্ন এনালগ সেনসর ও এনালগ ডিভাইস হতে আগত এনালগ সিগনাল মাইক্রোকন্ট্রোলারে প্রবেশ করে। কিন্তু মাইক্রোকন্ট্রোলারের সিপিইউ এনালাগ ডাটার উপর অপারেশন করতে পারেনা। তাই উক্ত এনালগ সিগনালকে ডিজিটাল সিগনালে রূপান্তর করতে হয়। এই গুরুত্ত্বপূর্ণ কাজটি এই অংশে সম্পাদিত হয়।

ইন্টারাপ্ট কন্ট্রোলারঃ

একটি প্রোগ্রামের এক্সিকিউশন চলাকালে প্রোগ্রামের স্বভাবিক প্রবাহকে বাধাগ্রস্থ করে অন্য একটি সাবরুটিন এক্সিকিউশন করাকে ইন্টারাপ্ট বলা হয়। উক্ত সাবরুটিন এক্সিকিউশন শেষে প্রসেসর আবার মূল প্রোগামের এক্সিকিউশনে ফিরে আসে। মাইক্রোকন্ট্রোলারে ইন্টারাপ্ট বাহ্যিক বা অভ্যন্তরীণ উভয় ধরণের হতে পারে।

ওয়াচডগ টাইমারঃ

বিভিন্ন গুরুত্ত্বপূর্ণ এবং (Complex Security System) জটিল নিরাপত্তা ব্যবস্থায় মাইক্রোকন্ট্রোলার ব্যবহার হয়ে থাকে। মাইক্রোকন্ট্রোলার কার্যরত অবস্থায় প্রোগ্রাম অথবা হার্ডওয়্যারের ত্রুটির কারনে সিস্টেমের স্বাভাবিক অপারেশন ব্যহত হয়। ওয়াচডগ টাইমার সর্বদা এই অবস্থা পর্যবেক্ষণ করে এবং প্রোগ্রাম অথবা হার্ডওয়্যারের ত্রুটি সংঘটিত হলে মাইক্রোকন্ট্রোলারকে রিসেট করে ফলে প্রোগ্রামের এক্সিকিউশন পূনরায় চালু হয়।

মাইক্রোকন্ট্রোলারের প্রকারভেদঃ

প্রসেসিং ওয়ার্ডের সাইজ অনুসারেঃ
১। ৪ বিট মাইক্রোকন্ট্রোলার
২। ৮ বিট মাইক্রোকন্ট্রোলার
৩। ১৬ বিট মাইক্রোকন্ট্রোলার
৪। ৩২ বিট মাইক্রোকন্ট্রোলার
ইন্সট্রাকশন সেট অনুসারেঃ
১। RISC মাইক্রোকন্ট্রোলার
২। CISC মাইক্রোকন্ট্রোলার
মেমোরি সংযোগের পদ্ধতি অনুসারেঃ
১। অভ্যন্তরীণ মেমোরি মাইক্রোকন্ট্রোলার
২। বাহ্যিক মেমোরি মাইক্রোকন্ট্রোলার
মাইক্রোকন্ট্রোলারের মেমোরি আর্কিটেকচার অনুসারেঃ
১। হার্ভার্ড আর্কিটেকচার মাইক্রোকন্ট্রোলার
২। ভন-নিউম্যান আর্কিটেকচার মাইক্রোকন্ট্রোলার

হার্ভার্ড ও ভন-নিউম্যান আর্কিটেকচারঃ

ভন-নিউম্যান আর্কিটেকচারঃ

vnmaPrinceton University এর গবেষক গণিতবিদ John Von-Neumann ১৯৪৫ সালে Stored-Program Computer এর ডিজাইন মডেল উদ্ভাবন করেন। Sir John Von-Neumann এর নামানুসারে এই কম্পিউটার আর্কিটেকচারকে Von-Neumann আর্কিটেকচার বলা হয়। অনেকে Princeton University এর সাথে সংগতি রেখে একে Princeton Memory Architecture নামেও ডাকে। এই আর্কিটেকচার অনুসারে Instruction ও Data উভয়কেই Fetch করার জন্য শুধুমাত্র একটি সাধারণ বাস থাকে। শুধু তাই নয় Instruction ও Data উভয়কেই সংরক্ষণের জন্য একটি সাধারণ মেমোরী ব্যবহৃত হয়। মেমোরী ও বাস সাধারণ হওয়ার কারণে হার্ডওয়্যার কম লাগে এবং হার্ডওয়্যার কম হওয়ার কারণে কম্পিউটারের গঠন সরল হয়। কিন্তু সমস্যা সৃষ্টি হয় অন্য বিষয়ে। মেমোরী ও বাস সাধারণ হওয়ার করণে একই সময়ে দুটি কাজ যেমনঃ (ক) ডাটা ট্রান্সফার ও (খ) Instruction Fetch সম্পন্ন করা সম্ভব হয় না। এক্ষেত্রে প্রথমে Instruction Fetch হয় এবং পরে Instruction সম্পর্কিত Data Transfer হয়। দুটি Fetching অপারেশন কম্পিউটারের গতিকে কমিয়ে দেয়। মাইক্রোকন্ট্রোলারের জগতেও Von-Neumann Architecture এর বেশ গুরুত্ত্ব রয়েছে, কারণ Motorola 68HC11, MCS-51 এবং PIC পরিবার এই আর্কিটেকচার অনুসরনে তৈরী করা হয়েছে।

ভন-নিউম্যান আর্কিটেকচারের সুবিধাসমূহঃ

১। এই আর্কিটেকচারে হার্ডওয়্যারের পরিমান কম লাগে।
২। একটি একক পেরিফেরাল ব্যবহার করেই সহজভাবে প্রোগ্রাম পরিবর্তন করা যায় যা সিস্টেমের সামর্থ্যকে বৃদ্ধি করে।

ভন-নিউম্যান আর্কিটেকচারের অসুবিধাসমূহঃ

১। প্রধান অসুবিধা হলো এর Bottleneck সমস্যা।
২। Instruction execution হতে সময় বেশি লাগে কারণ একই মেমোরিতে অবস্থিত ডাটা ও ইন্সট্রাকশন একটিমাত্র বাস ব্যবহার করে Retrive করতে হয়।
৩। Fetch-decode-execute-reset সাইকেলে কিছু কিছু রেজিস্টার অলস অবস্থায় থাকে।

Bottleneck সমস্যাঃ

ভন-নিউম্যান আর্কিটেকচারে সমস্ত ইন্সট্রাকশন এবং ডাটা একটি কমন মাল্টিপ্লেক্সড বাসকে ভাগাভাগি করে প্রসেসর এবং মেমোরির মধ্যে স্থানান্তরিত হয়। সাধারণতঃ কম্পিউটারের প্রসেসরের ডাটা ট্রান্সফার হার মোমোরীর তুলনায় বেশি ফলে প্রসেসর এবং মোমোরির মধ্যে গড় ডাটা ট্রান্সফার হার বা Throughput অনেক কম। তাই দেখা যায় একটি ডাটা ও ইন্সট্রাকশন মেমোরি হতে একসেস করার পর পরবর্তি কাজের ডাটা ও ইন্সট্রাকশনের জন্য অপেক্ষা করতে হয় অর্থাত এই সময়ে প্রসেসর অলস থাকে। এতে প্রসেসরের কাজের গতি মন্থর হয়ে পড়ে। বিশেষ করে প্রসেসর যখন বড় ডাটার উপর সংক্ষিপ্ত কাজ করে তখন এই সমস্যা প্রকট হয়। এই সমস্যা সমাধানে কিছু প্রচেষ্টা রয়েছে যার মাধ্যমে Bottleneck সমস্যা কিছুটা দুর করা যায়। যেমনঃ (ক) Caching (খ) Prefetching (গ) Multithreading (ঘ) RAMBUS ইত্যাদি।
(ক) Caching: Cache মেমোরি হলো এক ধরণের হাই স্পিড বাফার মেমোরী যা প্রসেসর এবং মেমোরির মাঝে স্থাপন করা হয়। বার বার ব্যবহৃত ডাটা ও ইন্সট্রাকশনসমূহকে কিছুসময়ের জন্য Cache মেমোরিতে জমা রাখা হয় যাতে সহজে Access করা যায়।
(খ) Prefetching: কোন Request এর জন্য একসেসের পূর্বেই কিছু ডাটা Cache এ জমা রাখা।
(গ) Multithreading: একই সময়ে ভিন্ন ভিন্ন থ্রেডে একাধিক Request কে ব্যবস্থা করা।

হার্ভার্ড আর্কিটেকচারঃ

হার্ভার্ড আর্কিটেকটারে ইন্সট্রাকশন এবং ডাটার জন্য দুটি পৃথক মোমোরি থাকে এবং দুটি ভিন্ন ভিন্ন ডাটা ও ইন্সট্রাকশন বাস থাকে। ফলে ডাটা প্রসেসিং সমান্তরালে সম্পন্ন হয় অর্থাত ইন্সট্রাকশন পঠন আর ডাটা লিখন/পঠন একই সময়ে ঘটে। ফলে কম্পিউটার অনেক দ্রুতগতির হয়। এই দুই মেমোরীতে ডাটা ট্রান্সফারের জন্য মাইক্রোকন্ট্রোলারের দুটি পৃথক নির্দেশনা এবং ফলে দুটি ভিন্ন কন্ট্রোল সিগনাল থাকে। যখন কোন Instruction Pre-fatch হয় তখন বর্তমান ইন্সট্রাকশন ডাটাবাসে সম্পাদিত হয়। যখনই বর্তমান নির্দেশনা সম্পাদন শেষ হয় তখনই পরবর্তি নির্দেশনায় যাওয়ার জন্য প্রস্তুত হয়। এই Pre-fetch প্রক্রিয়াই তাত্ত্বিকভাবে Von-Neuman আর্কিটেকচারের তুলনায় এতে সম্পাদন ক্রিয়া দ্রুত করে। এটা Von-Neuman আর্কিটেকচারের তুলনায় কম ইন্সট্রাকশন সাইকেলে নির্দেশনা সম্পাদন করে। প্যারালাল অপারেশনের জন্য এটি খুবই জনপ্রিয়। হার্ভার্ড আর্কিটেকচারে ইন্সট্রাকশন এড্রেস ও ডাটা এড্রেসের জন্য পৃথক ক্ষেত্র আছে। তাই একটি মেমোরী এড্রেস দ্বারা একক ভাবে একটি লোকেশনকে চিহ্নিত করা যায় না। অর্থাত ইন্সট্রাকশন এড্রেস জিরো এবং ডাটা এড্রেস জিরো এক নয় কারণ ইন্সট্রাকশন এড্রেস জিরো ২৪ বিটের মান প্রকাশ করে কিন্তু ডাটা এড্রেস জিরো ৮ বিটের মান প্রকাশ করে যা ২৪ বিটের মানের কোন অংশ নয়। এই আর্কিটেকচার অধিক ইন্সট্রাকশন সমর্থন করে, ফলে হার্ডওয়্যারের প্রয়োজনীয়তা কমে আসে। Intel MCS-51 মাইক্রোকন্ট্রোলার পরিবার, PIC পরিবার এবং AVR মাইক্রোকন্ট্রোলার পরিবার Harvard Architecture ব্যবহার করে।
কোন কোন সিস্টেমে ইন্সট্রাকশন মেমোরী ডাটা মেমোরীর চেয়ে বড় ফলে ইন্সট্রাকশন এড্রেস ডাটা এড্রেসের চাইতে বড়। সিপিইউ এর স্পীড মেমোরী একসেস স্পীডের চেয়ে অনেক বেশী। যদি সিপিইউ এর প্রত্যেক ইন্সট্রাকশন মোমেরী একসেস করে তাহলে সিপিইউ এর স্পীড কোন কাজে আসে না। এই সমস্যাকে Memory bound বলা হয়। এর সমাধান হলো একটি দ্রুতগতির মেমোরী যা প্রোগ্রাম চলাকালীন অস্থায়ী ডাটা ধারন করে। একে ক্যাশ মেমোরী বলা হয়। সিপিইউ ক্যাশ মেমোরীকে ইন্সট্রাকশন ক্যাশ ও ডাটা ক্যাশ এই প্রকারে ভাগ করা হয়। Shared Cache ব্যবহার করলে এর দক্ষতা কমে যায়। হাই স্পীড ক্যাশ খুবই কার্যকর কারণ তখন মেমোরী সমানুপাতিকভাবে হ্রাস পায়। হার্ভার্ড আর্কিটেকচারে সর্বদা ক্যাশ মেমোরী ব্যবহার করা হয়।

পরিবর্তিত হার্ভার্ড আর্কিটেকচারঃ

পরিবর্তিত হাভার্ড আর্কিটেকচার অনেকটা বিষুদ্ধ হাভার্ড আর্কিটেকচারের মত কিন্তু ইহা নির্দেশনা ও ডাটার অন্তবর্তী কঠিন বিচ্ছিন্নতা শিথিল করে, যদিও সিপিইউ দুই বা ততোধিক মেমোরী বাসকে একই সময়ে একসেস করে। এর প্রধান পরিবর্তন হলো একটি সাধারণ একসেস ক্ষেত্র দ্বারা সমর্থিত ভিন্ন ইন্সট্রাকশন ক্যাশ ও ডাটা ক্যাশ মেমোরী। সিপিইউ যখন ক্যাশ থেকে প্রোগ্রাম নির্বাহ করে তখন ইহা বিষুদ্ধ হার্ভার্ড আর্কিটেকচারের মত ক্রিয়া করে। আবার যখন সমর্থিত মেমোরী (backed memory) একসেস করে তখন ইহা ভন-নিউম্যান আর্কিটেকচারের মত ক্রিয়া করে। আধুনিক প্রসেসরে ইহা বহুল ব্যবহৃত হয়। উদাহরণঃ ARM Architecture এবং x86 প্রসেসর। এদের সরলভাবে হার্ভার্ড আর্কিটেকচার বলা হলেও প্রকৃতপক্ষে এরা পরিবর্তিত হার্ভার্ড আর্কিটেকচার।

হার্ভার্ড আর্কিটেকচারের সুবিধাঃ

১। দক্ষ পাইপলাইনিং- অপারেন্ড ও ইন্সট্রাকশন একই সাথে সংঘটিত হয়।
২। ডাটা বাস ও ইন্সট্রাকশন বাস পৃথকভাবে সমান্তরালে অপারেশন হয় এবং প্রসেসরের গতি বৃদ্ধি পায়।
৩। ইন্সট্রাকশন বেশী, হার্ডওয়্যার কম।

হার্ভার্ড আর্কিটেকচারের অসুবিধাঃ

১। এর পিন সংখ্যা বেশী
২। বাস্তবায়ন করা অনেক জটিল।

CISC ও RISC এর তুলনাঃ

Salient ফীচারসহ বাণিজ্যিক মাইক্রোকন্ট্রোলারের তালিকাঃ

MCS Family এর কয়েকটি মাইক্রোকন্ট্রোলারের বৈশিষ্ট্য

4

Atmel Family এর কয়েকটি মাইক্রোকন্ট্রোলারের বৈশিষ্ট্য

5

PIC Family এর কয়েকটি মাইক্রোকন্ট্রোলারের বৈশিষ্ট্য

6

মাইক্রোকন্ট্রোলার নির্বাচনে বিবেচ্য বিষয়সমূহঃ

কোন নির্দিষ্ট সিস্টেম ডিজাইনের জন্য সঠিক মাইক্রোকন্ট্রোলার নির্বাচন খুবই গুরুত্ত্বপূর্ণ বিষয় কেননা সিস্টেমের পারফরমেন্স ব্যবহৃত মাইক্রোকন্ট্রোলারের উপর নির্ভরশীল। সঠিক মাইক্রোকন্ট্রোলার নির্বাচন না হলে সিস্টেমের পারফরমেন্স খারাপ হতে পারে। আবার প্রতিটি সিস্টেম একটি ব্যবসায়িক উদ্দেশ্যকে লক্ষ্য করে উন্নয়ন করা হয়। তাই অজ্ঞতাবশতঃ অধিক দামী মাইক্রোকন্ট্রোলার ব্যবহার করলে সিস্টেম ডিজাইনের ব্যয় বৃদ্ধি পাবে ফলে ব্যবসায়িক সাফল্য ব্যহত হবে, আবার খুব সস্তা চীপ ব্যবহার করলে অনেক হার্ডওয়্যার সুবিধা হতে বঞ্চিত হতে হবে। এক্ষেত্রে কাজের চাহিদা ও দামের দিকে লক্ষ্য রেখে সবচে কম খরচে শুধুমাত্র প্রয়োজনীয় হার্ডওয়্যার সুবিধা সম্বলিত, সহজে প্রোগ্রামযোগ্য একটি মাইক্রোকন্ট্রোল চীপ নির্বাচন করা জরুরী যা সিস্টেমের প্রয়োজনীয় কার্য সম্পাদনে সমর্থ।
১। হার্ডওয়্যারের যোগ্যতাঃ মাইক্রোকন্ট্রোলার নির্বাচনে যে সকল হার্ডওয়্যার কনফিগারেশন বিবেচনা করা প্রয়োজন তার সাধারণ দিক নির্দেশনা নিম্নে উল্লেখিত হলোঃ
প্রসেসরের ওয়ার্ড সাইজঃ একটি মাইক্রোকন্ট্রোলারের ALU একটি সিঙ্গেল ইন্সট্রাকশনে যত বিট ডাটার উপর গাণিতিক ও যৌক্তিক কার্য সম্পাদন করতে পারে তাকে উক্ত মাইক্রোকন্ট্রোলারের ওয়ার্ড সাইজ বলা হয়। ওয়ার্ড সাইজ বেশী হলে প্রসেসিং স্পীড বেশী হবে। ব্যবহারিকভাবে বাজারে 4 বিট, 8 বিট, 16 বিট, 32 বিট ওয়ার্ড সাইজের মাইক্রোকন্ট্রোলার পাওয়া যায়। ডিজাইনকৃত সিস্টেমের চাহিদানুযায়ী উপযুক্ত ওয়ার্ড সাইজের মাইক্রোকন্ট্রোলার নির্বাচন করা উচিত।
কাজের গতিঃ একটি মাইক্রোকন্ট্রোলার সর্বোচ্চ যে ক্লক ফ্রেকুয়েন্সী সাপোর্ট করে তা দ্বারা এর কাজের গতি নির্ধারন হয়। সিস্টেমের চাহিদানুযায়ী উপযুক্ত ক্লক ফ্রেকুয়েন্সীর মাইক্রোকন্ট্রোলার নির্বাচন করা উচিত।
অভ্যন্তরীণ মেমোরির পরিমানঃ RAM এবং ROM এর পরিমান বিবেচনা করতে হবে। ROM এর পরিমান বেশী হলে বড় প্রোগ্রাম সংরক্ষণ করা সম্ভব আবার RAM এর পরিমান বেশী হলে মাইক্রোকন্ট্রোলারের প্রসেসিং স্পীড বৃদ্ধি পায়। সিস্টেমের চাহিদানুযায়ী সঠিক পরিমান ROM ও RAM বিশিষ্ট মাইক্রোকন্ট্রোলার নির্বাচন করা উচিত।
I/O পিনসমূহ ও টাইমারের সংখ্যাঃ মাইক্রোকন্ট্রোলারসমূহে I/O পিনসমূহ ও টাইমারের সংখ্যার ভিন্নতা রয়েছে। Input, Output পিনের সংখ্যা বেশী হলে একসাথে অধিক ডিভাইসকে নিয়ন্ত্রণ করা সম্ভব এবং টাইমারের সংখ্যা বেশী হলে প্রোগ্রামিং সুবিধা বেশী পাওয়া সম্ভব। ডিজাইনকৃত সিস্টেমের চাহিদানুযায়ী সঠিক মাইক্রোকন্ট্রোলার নির্বাচন করা উচিত।
প্যাকেজের ধরণঃ বাজারে DIP (Dual in Line Package) এবং QFP (Quad Flat Package) উভয় ধরণের মাইক্রোকন্ট্রোলার পাওয়া যায়। তৈরীকৃত প্রজেক্টের স্পেস বা স্থান, এসেম্বলি এবং প্রোটোটাইপের উপর ভিত্তি করে সঠিক প্যাকেজ নির্বাচন করতে হবে।
পাওয়ার খরচঃ যে সকল স্থানে সরবরাহকৃত বিদ্যূৎ নেই এবং ব্যাটারীতে সঞ্চিত শক্তি হতে সিস্টেম চালানোর প্রয়োজন হয় সেসব অঞ্চলে মাইক্রোকন্ট্রোলার ভিত্তিক সিস্টেম চালানোর প্রয়োজন হলে এই বিষয়টি বিবেচনা করতে হবে। যে মাইক্রোকন্ট্রোলারের পাওয়ার খরচ সবচে কম তা অগ্রগণ্য।
২। ব্যবহারের সহজসাধ্যতাঃ মাইক্রোকন্ট্রোলার নির্বাচনের পূর্বে তার ব্যবহারিক সহজসাধ্যতা যাচাই করতে হবে। আর এ বিষয়টি নিম্নোক্ত বিষয়সমূহের উপর নির্ভর করেঃ
বাজারে সহজলভ্যতাঃ যে চীপটি বাজারে বর্তমানে সহজলভ্য এবং ভবিষ্যতে দীর্ঘকাল সহজলভ্য থাকার সম্ভাবনা রয়েছে, যার অনেক সরবরাহকারী বা ভেন্ডর রয়েছে সেটি নির্বাচন করতে হবে, দুস্প্রাপ্য চীপ দিয়ে সিস্টেম ডিজাইন করা উচিত নয়, কেননা এতে ডিজাইন পরবর্তী কার্যক্রম যেমনঃ তৈরীকৃত ও ব্যবহৃত ত্রুটিপূর্ণ সিস্টেমসমূহ রিপেয়ারিং করতে না পারলে সেগুলি বাতিল করার প্রয়োজন হবে যা অর্থনৈতিক ক্ষতির কারন।
প্রোগ্রামিং সহজসাধ্যতাঃ আমরা জানি মাইক্রোকন্ট্রোলার একটি প্রোগ্রামেবল চীপ। ব্যবহার পূর্ববর্তী সময়ে একে প্রোগ্রাম করতে হয়। মাইক্রোকন্ট্রোলারকে এসেম্বলী ও হাইলেভেল উভয় ভাষায় প্রোগ্রাম করা যায়। এই সকল প্রোগ্রাম রচনা, ডিবাগ ও লোড করার জন্য বিভিন্ন এসম্বলার, কম্পাইলার ও বার্নার সফটওয়্যার রয়েছে। মাইক্রোকন্ট্রোলার নির্বাচনের ক্ষেত্রে সে সকল চীপ নির্বাচন করা উচিৎ যাদের প্রচুর এসম্বলার, কম্পাইলার, বার্নার সফটওয়্যার ও টেকনিক্যাল সাপোর্টের জন্য অনলাইন কম্যূনিটি রয়েছে যার ফলে প্রোগ্রামিং এর ক্ষেত্রে অধিক সুবিধা পাওয়া যায়।
৩। দামের তফাত বিবেচনাঃ Atmel, Motorola, Intel, Microchip এছাড়া আরো অনেক বিশ্ববিখ্যাত কোম্পানীগুলি মাইক্রোকন্ট্রোলার চীপ তৈরী করে। বাস্তব ক্ষেত্রে দেখা যায় বিভিন্ন কোম্পানী কর্তৃক উৎপাদিত প্রায় একই হার্ডওয়্যার স্পেসিফিকেশনবিশিষ্ট চীপসমূহের মধ্যে দামে পার্থক্য হয়। সেক্ষেত্রে সস্তা চীপটি অগ্রগণ্যতা পাবে।
** নোটঃ উপরোক্ত সকল সুবিধা একটি সিঙ্গেল চীপে পাওয়া সম্ভব নাও হতে পারে সেক্ষেত্রে ডিজাইনারের সুবিধানুযায়ী আপাত দৃষ্টিতে যে চীপটিতে অধিকাংশ সুবিধা বিদ্যমান আছে মনে হবে সেটিই নির্বাচন করতে হবে।

সূত্রঃ

[1] Microcontrollers: Theory and Applications – Ajay V. Deshmukh
[2] Digital Logic and Computer Design – M. Morris Mano
[3] Microcontroller and Embedded Systems – Engineer Mridul Kanti Debnath


EmoticonEmoticon